Thursday, August 10, 2006

Making statements about statements in RDF

This SWIG thread "Reifying Triples as unique URIs" is one of the most interesting I have read in weeks. It explores the question of how do you best make statements about other statements in RDF, in particular how do you best make statements about triples.

This W3C Working Note has a pretty good introduction to the problem and its solutions, so I suggest reading that then reading the SWIG mailing list thread.
One other thing that pops on the list but not in the working note is using Named Graphs.
Named Graphs add URIs to collections of rdf statements (graphs). For example we could write (in TRIG)

http://example.org/bob
{
_:a foaf:name "Bob" .
_:a foaf:mbox .
}

Since this graph is named with a URI we can write statements about this graph.
This approach can be used to make statements about triples by putting each triple in its own named graph, however this has the following drawbacks
  • It requires using Named Graphs which is still an immature technology.
  • Named graphs contain only statements, not other graphs, so if we name our triples (so that they are quads) we can't name our graphs of quads e.g. We can't have
    :G3{
    :G1
    {
    :s1 :p1 :o1
    }

    :G2
    {
    :s2 :p2 :o2
    }
    }

0 comments: