W3C home > Mailing lists > Public > semantic-web@w3.org > November 2012

Re: Current agreement upon named graphs

From: Paul Gearon <gearon@ieee.org>
Date: Fri, 9 Nov 2012 20:29:14 -0500
Message-ID: <CAGZNPFnX=GSKu8Z4AvOVhAYYFyYN5C-CvYaF_bmTCkCz6=1B_g@mail.gmail.com>
To: Richard Cyganiak <richard@cyganiak.de>
Cc: Olivier Rossel <olivier.rossel@gmail.com>, Semantic Web <semantic-web@w3.org>, "public-lod@w3.org" <public-lod@w3.org>
On Fri, Nov 9, 2012 at 12:20 PM, Richard Cyganiak <richard@cyganiak.de>wrote:

> On 9 Nov 2012, at 15:44, Paul Gearon wrote:
> > 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.

So this made me look at the formal model, where I see it is indeed this
way. That led me to check through the WG archives. It turns out that I was
aware of this in November of last year. At the time I commented that I
thought it HAD not been like that (blank nodes are unique to graphs), but
that it had subsequently changed (blank nodes may be shared). I don't know
if I was correct in it being the other way at any time, but there was
certainly discussion on it. Andy responded by pointing out that:

"If it's not the same blank node, then

  DELETE { GRAPH <g1> { ?x :p ?v } } WHERE { ?x :p ?v }

will not work for blank nodes."

I recall now that I was very happy with this decision. When the issue was
being discussed I was worried about the implications of having unique nodes
for each graphs, since it would lead to performance problems for
INSERT/WHERE as well as making it very hard to track which blank nodes from
graph A were mapped to blank nodes in graph B if you wanted to perform
inserts from one to the other on more than one occasion.

Sorry for forgetting.

Received on Saturday, 10 November 2012 01:29:44 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 1 March 2016 07:42:37 UTC