- From: Andy Seaborne <andy.seaborne@epimorphics.com>
- Date: Sun, 06 Mar 2011 18:10:10 +0000
- To: RDF Working Group WG <public-rdf-wg@w3.org>
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