21 November 2009

On RDF Triples

    W3C (WWW Consortium) created RDF (Resource Description Framework) as an extensible XML-based simple data model with formal semantics capabilities in order to define web metadata, allowing machines to "understand", create, exchange and process information. At the heart of RDF stands the triple, referred also as RDF triple, representing a subject-predicate-object relation indicating that a relationship represented by predicate exists between subject and object. It sounds like it’s possible to describe relationships between concepts, allowing thus to represent the information in (web) documents, resulting a nice set of triples, in which subjects, objects and predicates might be repeated several times. Even nicer, RDFs can be represented visually, the resulting structure having the form of a graph, also referred as RDF graph, in which subjects and objects are represented as nodes and predicates as arcs, arcs’ direction always pointing towards objects. The graph-like structures allow RDF to take advantage of a whole set of algorithms and models developed over ages in Theory of Graphs, including searching, comparisons, representation and data mining, a nice asset isn’t it?

   Having the possibility to describe documents in triple-like fashion is an important step of W3C, though, on the other side, using a syntagm I heard some time ago in OOP (Object Oriented Programming), how many triples it takes to describe the world, with all its beauty and knowledge accumulated over the years? How about expressing complex mathematical relations like the ones defined in algebra. Imagine a relation between a set of m elements and another one of n elements, how would you express that using triples, how about if there are a set of p relations?! How about defining more complex algebra structures? How would you express multidimensionality or hyper-relations using triples? Of course, for the current needs triples suffice, anyway we still ramble in acquiring simple relations in the clouds, no need to go so far away.

    Coming to more simplistic representation models, I wonder if it’s possible to model all types of knowledge maps with RDF triples, models that make use of additional attributes like weight, cost, rules, sequencing, time delays, etc. Why am I launching such questions in the dark? We have developed a huge collection of mathematical models, how are we putting them into use?! It’s also possible that I’m missing the overall point over triples, even if I actually used them during schools in Algebra and Graph Theory, it’s true, at basic level compared with the current state of art, though I hope I have an idea of what all it’s about.