W3C home > Mailing lists > Public > public-rdf-wg@w3.org > November 2012

Re: [Concepts] Editorial changes to Blank Nodes (ISSUE-107)

From: Antoine Zimmermann <antoine.zimmermann@emse.fr>
Date: Mon, 12 Nov 2012 10:09:05 +0100
Message-ID: <50A0BCB1.3000807@emse.fr>
To: Richard Cyganiak <richard@cyganiak.de>
CC: RDF Working Group WG <public-rdf-wg@w3.org>
Le 09/11/2012 16:49, Richard Cyganiak a écrit :
> RDF Concepts has a pretty much re-written section on Blank Nodes:
> http://dvcs.w3.org/hg/rdf/raw-file/default/rdf-concepts/index.html#section-blank-nodes
>
>
> For reference, here's what Concepts says informatively about blank nodes in the Introduction (I didn't change anything there):
>
> [[
> Unlike IRIs and literals, blank nodes do not denote specific resources. Statements involving blank nodes say that something with the given relationships exists, without explicitly naming it.
> ]]
> http://dvcs.w3.org/hg/rdf/raw-file/default/rdf-concepts/index.html#resources-and-statements
>
>
> Then here's the new normative text:
>
> [[
> The *blank nodes* in an RDF graph are drawn from some arbitrary infinite
> set that fulfils the following conditions:
>
> • It is disjoint from the set of IRIs and the set of all literals.
> • Equality within the set is well-defined (*blank node equality*).

What does the second item mean? Isn't equality well defined, in any set? 
It is the same as saying "Given two blank nodes, it is possible to 
determine whether or not they are the same." The later say that in an 
implementation, either the set of bnodes is explicitly known, or the 
implementation knows an isomorphism from a well known set to the set of 
bnodes. E.g., assign a bnode id to all bnodes, then one decides if two 
occurrences of bnodes involve the same bnode by simply comparing the 
identifiers.


>
> Allocating a *fresh blank node* is the action of drawing a new node from the set.
> ]]
> http://dvcs.w3.org/hg/rdf/raw-file/default/rdf-concepts/index.html#section-blank-nodes

It is not quite clear in what way it is "new". It has to be new wrt a 
given RDF graph (that is, a bnode that is not already used in a given 
RDF graph).

>
>
> For comparison, this was the old text:
>
> [[
> The blank nodes in an RDF graph are drawn from an infinite set. This set is disjoint from the set of all IRIs and the set of all literals. Otherwise, this set of blank nodes is arbitrary.
>
> Given two blank nodes, it is possible to determine whether or not they are the same. Besides that, RDF makes no reference to any internal structure of blank nodes.
> ]]
> http://www.w3.org/TR/rdf-concepts/#section-blank-nodes
>
>
> The normative text is followed by an informative note:
>
> [[
> *Blank node identifiers* are local identifiers that are used in some concrete RDF syntaxes or RDF store implementations. They are always locally scoped to the file or RDF store, and are not persistent or portable identifiers for blank nodes. Blank node identifiers are not part of the RDF abstract syntax, but are entirely dependent on the concrete syntax or implementation. The syntactic restrictions on blank node identifiers, if any, therefore also depend on the concrete RDF syntax or implementation.
> ]]
>
> I have now added some more sentences:
>
> [[
> Since RDF systems generally refer to blank nodes only via such local identifiers, it is necessary to “standardize apart” the blank node identifiers when incorporating data that originates from an external source. This may be done by systematically replacing the blank node identifiers in incoming data with freshly allocated blank node identifiers.
> ]]

In fact, if the bnode IDs had global scope, this would still be 
necessary. The "standardisation apart" is part of the merge operation 
and is independent of the way bnodes are identified. The 
"standardisation apart" has to be made at the abstract syntax level, 
that is, the bnodes themselves, not the IDs, have to be changed.

[As a side note, I think things would have been simpler, IMHO, if all 
bnodes had a globally unique identifier. It would also have made the 
discussions on the scope of bnodes easier, since we would have avoided 
discussing the scope of *identifiers*, and confusing the two types of 
scopes.]

>
>
> I believe this resolves ISSUE-107, hence I'm marking it PENDINGREVIEW.
> http://www.w3.org/2011/rdf-wg/track/issues/107
>
> Best,
> Richard
>


-- 
Antoine Zimmermann
ISCOD / LSTI - Institut Henri Fayol
École Nationale Supérieure des Mines de Saint-Étienne
158 cours Fauriel
42023 Saint-Étienne Cedex 2
France
Tél:+33(0)4 77 42 66 03
Fax:+33(0)4 77 42 66 66
http://zimmer.aprilfoolsreview.com/
Received on Monday, 12 November 2012 09:08:04 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 16:25:52 GMT