commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andy Seaborne <>
Subject Re: [RDF] Local Scope and BlankNode internalIdentifier (was: github Commons RDF vs. Apache Commons Sandbox RDF)
Date Wed, 28 Jan 2015 09:53:22 GMT
On 27/01/15 17:11, Stian Soiland-Reyes wrote:
> I agree that "local scope" should be clarified

"local scope" is a piece of terminology used only for RDF syntax.  Once 
away from syntax, there is no "scope" to a blank node.

It is described in:

The scope is the file for the purposes of reading that file once.

A bnode "_:a" is the same bNode everywhere in that file at the time it 
is read (i.e. parsed).

If the file is read twice, "_:a" generates a different blank nodes.

The only things you can do with blank nodes are:

* Create a new one ("a fresh one"), different from every other blank node.

* See if it is the same as another (java's .equals) because all RDF 
terms are distinguishable [1].

* Put them in triples and hence into graphs.

That has the implications that they can be put into several datastructures.

The description in the javadoc:
They are always locally scoped to the file or RDF store
is not right.  They are not scoped to the RDF store.

The nearest concept is that one store must have created it in the first 
place but once created, the blank node is just a thing and a rather 
simple, boring thing at that.

This analogy might help (or not):

There is a table with 4 metal spheres on it in a line across it.  Each 
sphere is exactly kind of material, the same mass, the same colour and 
the same shininess.  You can ask "is that sphere the same as that other 
one?" by pointing to two of them.  If you put them in a bag, shake the 
bag and take one out, you can't tell whether this chosen one is the same 
as the one that was on the right-hand end of the line.



To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message