RDF datasets and graph literals

RDF Datasets and graph literals have strong similarities and some 
differences.

One common use of RDF datasets in SPARQL is to make the default graph 
the union of the named graphs and query of the default graph is a query 
over all the graphs.

Graph literals can't express that directly.  There is no place that is 
the collection of graphs.  You could add it by encoding in some way, but 
it isn't there without additional structure.



Graph literals can be arbitrarily nested (depending on definition):

:s :p { :a :b {:x :y :z } } .

It's graph literals all the way down (to preempt anyone else saying 
that) because they are a change to RDF.

If it's for quoting or little more than
   :s :p "{ :a :b :c }"^^rdf:synTurtle .
then the nesting isn't very relevant.

If it's for log:includes assertions, then maybe nesting does matter 
more.  Applications may be unbundling graphs a lot, implementations may 
need to handle that efficiently, and it might have deep repercussions 
for toolkits.


RDF datasets don't nest.

Graphs are the fundamental unit on the web.

Currently, working with single graphs, and at most working with multiple 
graphs locally, collected as single graphs from across the web, is the 
norm.

So far, RDF datasets don't need to nest - because you don't get RDF 
datasets on the web very much, so you don't get working with collections 
of RDF datasets.  You can merge RDF datasets but the application is 
producing another RDF dataset and is responsible

RDF datasets don't address the assertions about graphs UC very well.

They can - with careful graph naming (naming the g-snap, not the g-box), 
the default graph can contain assertions about the properties of a 
graph, just like graph literals can be used for RDF datasets.  It's just 
there is "some assemble required".

	Andy

Received on Sunday, 6 March 2011 18:10:48 UTC