- From: Paul Gearon <gearon@ieee.org>
- Date: Fri, 9 Nov 2012 20:29:14 -0500
- 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>
- Message-ID: <CAGZNPFnX=GSKu8Z4AvOVhAYYFyYN5C-CvYaF_bmTCkCz6=1B_g@mail.gmail.com>
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. Regards, Paul
Received on Saturday, 10 November 2012 01:29:43 UTC