Hi Paul,

On 9 Nov 2012, at 15:44, Paul Gearon wrote:
> Triples don't "belong to" a graph per se, but in general it's fine for the 
> same triple to appear in more than one graph.

True.

> The exception to this is for those triples that contain a blank node. In that 
> case it may be possible to have equivalent triples in different graphs, but 
> not the same triple. What I mean is that the blank nodes will be different

That's actually an (incredibly common!) misconception. The same blank node may 
occur in different graphs.

I have myself written W3C Recommendations under the impression that blank nodes 
cannot be shared between graphs, so even being a member of the RDF Working 
Group does not grant immunity against that misconception!

There is nothing in the RDF specs that forbids sharing blank nodes between 
graphs. The misconception is probably caused by confusion between blank node 
*identifiers* in RDF files (which have file scope) and *blank nodes* in the 
abstract syntax (whose scope is not limited by the specs).

SPARQL Update has forced the issue by allowing blank nodes to be copied between 
different slots in a graph store.

The current Editor's Draft of RDF Concepts and Abstract Syntax, which now 
includes Named Graphs, makes this clear:
http://dvcs.w3.org/hg/rdf/raw-file/default/rdf-concepts/index.html#section-dataset

The upcoming TriG and N-Quads W3C Recommendations will follow this too by 
giving file scope to the blank node IDs, and hence allowing them to be shared 
between graphs in the serialized dataset.

If you want more (very gory/boring) details on this, there's a long thread 
called “shared bnodes” on the RDF-WG mailing list:
http://lists.w3.org/Archives/Public/public-rdf-wg/2012Aug/thread.html

And more pointers here, where the whole thing was tracked:
http://www.w3.org/2011/rdf-wg/track/issues/21

All the best,
Richard

Reply via email to