Re: a quick remark about blank nodes

Pat Hayes wrote:
> (Purely for information purposes, not wanting to start any more debates or trouble...)
> 
> Let me explain a central problem with blank nodes in the current RDF specs (specifically, the Concepts document.) Suppose someone creates a brand new RDF graph which uses a blank node. How do they know that this blank node is a new blank node that hasn't already been used in another graph? For example, could it be a blank node that had already been used somewhere else, and perhaps occurs in another RDF graph, say one stored in a triple store on a server in Indonesia created five years ago? Now, this question seems ridiculous, on the face of it: how could a blank node from Indonesia get itself into my brand-new graph? But the problem is, that there is nothing in the RDF specs which specify that this can NOT happen, so we had to consider the possibility that it MIGHT happen. And this is why we have all the stuff in there about 'graph merging' and 'standardizing apart' and so forth. We couldn't just say that two different graphs don't share a blank node, since they obviously 
can, for example if one is a subgraph of the other. 
> 
> When all we had was the 'abstract conceptual' picture of a graph as a *set* of triples, there simply wasn't anything 'concrete' enough to be the thing that a blank node would be local to. Now we have Sandro's excellent terminology, and can say that a blank node is local to a g-box or a g-text, and cannot occur in more then one of them, we are on much more secure ground for a sensible revision of the Concepts picture. If my g-box is brand new, and all its blank nodes are definitely in it, then they are also new, and not in some other g-box in Indonesia. G-boxes, unlike sets, can be in actual places. 

Indeed, I'd suggest this is the core issue, the core problem with blank 
nodes in the community, is that the community already has the notion of 
named-g-box, and for blank nodes not be scoped at this level creates 
unexpected functionality.

I'd suggest that if we adopt g-boxes, and named-g-boxes (named graphs, 
quads, whatever) then blank node identifier scoping is a new issue which 
has not been resolved, and would need addressed.

It appears to me, that we can "fix" the issue the community has, in a 
backwards and forwards compatible way, by having blank node identifiers 
scoped at g-box level, and g-text level where no g-box is known. This 
would mean no change in the triple only world views, and fix the main 
issues in quad/ng world views.

Best,

Nathan

Received on Thursday, 3 March 2011 11:02:15 UTC