Re: a blank node issue

>>>>> Pat Hayes <phayes@ihmc.us> writes:

[…]

 > But before you label this an "issue", let me turn the scenario
 > around.

[…]

 > Now serialize these "identical" graphs into two identical
 > serializations and send them to a common source and ask it to
 > deserialize them into a single graph. Should it merge these blank
 > nodes into one? It may well be that if more information had been
 > sent, it would have been clear that these were two different
 > people. But even if not, it is clear that can be no general warrant
 > to presume that two different blank nodes must co-refer, unless of
 > course one knows that the provenance of the information guarantees
 > that they do.

 Actually, the question I'm concerned with is exactly the
 opposite one: is there any practical necessity to /preserve/
 blank node identity when used /as an object/?

 To repeat myself, while serializing subgraphs, it's easy, given
 the current standards and implementations, to “break” the
 following graph:

foo bar _:blank .
baz qux _:blank .

 into the one where the subjects of the triples aren't the same:

foo bar _:blank1 .
baz qux _:blank2 .

 (Though the respective descriptions of the blank nodes are the
 same.)

 Now, I wonder, what would be the negative consequences in
 practice should we assume that such a “breakage” is not an
 exception, but a rule.  Or, in other words, that the blank node
 identity /as an object/ is of no semantic value.

 Immediately, it becomes possible:

 • to re-create any graph from the set of concise bounded
   descriptions [1] of its respective (non-blank) subjects;

 • to assign each blank node a content-based identifier (e. g.,
          as per [2].)

 (Leaving cyclic subgraphs involving blank nodes aside for now.)

 Both of the above are of importance to the distribution of the
 descriptions, since data distribution all too often relies on
 the ways to split the data and name the chunks.

 The feasibility of such an approach depends on what the blank
 nodes are used in practice for.  The first blank node example in
 RDF Primer [3] is all about a blank node that is “defined” by
 its own properties: it doesn't matter whether particular
 addresses are given by the same blank node or not — it's the
 /properties/ of these nodes (or node) that matter.  Also, [1]
 argues against overuse of the blank nodes.

 … There's a distant, yet vaguely similar, aspect of the IEEE
 floating point arithmetics.  Namely, certain operations may give
 a “not a number” (or NaN) result.  The core property of NaN is
 that it isn't equal to itself.  That is, if x = sqrt (-1), then
 x == x is false.  Perhaps, a blank node is just a Semantic NaN?

 But, honestly, I'm not sure.

PS.  Is there any good example of when a cyclic subgraph involving a
 blank node may be reasonable, BTW?

[…]

[1] http://www.w3.org/Submission/CBD/
[2] http://www.hpl.hp.com/techreports/2002/HPL-2002-216.pdf
[3] http://www.w3.org/TR/rdf-primer/

-- 
FSF associate member #7257

Received on Tuesday, 1 March 2011 18:09:55 UTC