W3C home > Mailing lists > Public > semantic-web@w3.org > October 2010

Re: Is there a systematic method for naming bnodes?

From: Pat Hayes <phayes@ihmc.us>
Date: Sat, 9 Oct 2010 13:06:32 -0500
Cc: Semantic Web <semantic-web@w3.org>
Message-Id: <AD8685AA-E40D-48C1-AB80-1C46019EF6C4@ihmc.us>
To: Melvin Carvalho <melvincarvalho@gmail.com>

On Oct 8, 2010, at 7:06 AM, Melvin Carvalho wrote:

> On 4 October 2010 00:21, Pat Hayes <phayes@ihmc.us> wrote:
>> I'll try to answer this one...
>> 
>> On Oct 2, 2010, at 5:02 AM, Melvin Carvalho wrote:
>> 
>>> The Semantic Web was based on the principle of using global variables.
>> 
>> Well, not exactly. One of the foundational ideas, certainly, is the existence of global *names*, in the form of URIs (or URI references or IRIs, whatever), but these are not *variables*. They correspond more to constant names than to variables in logic, a sign of which is that they have nothing to bind them and they have no local scope rules.
>> 
>>> It seems to me that bnodes kind of break this pattern.
>> 
>> Im not sure what pattern you mean, but certainly bnodes aren't names or identifiers. In fact, they are in effect local variables, bound to the graph in which they occur. As the RDF semantics points out, they are exactly like existential variables. Think of each bnode as being a word like 'someone' or 'something', to see how different they are from true names.
>> 
>>> I was wondering if there was a systematic method for naming bnodes
>>> (e.g. take a hash of the content)
>> 
>> Well, the very idea of a *blank* node is one that has no name, so this idea seems to be rather against the spirit of the bnode, so to speak. Of course, concrete syntaxes do use bnode identifiers, but these are really just an artifact of the need to represent a graph in a linear character sequence. These bnode identifiers are purely local to the graph.
>> 
>> If bnodes were given some kind of 'global' name, then they would be essentially the same as URI references. (And in fact, one can always use a URIref rather than a bnode, and write bnode-free RDF. Several authorities have urged this as a good practice, though I disagree.)  It would be analogous to prohibiting the use of words like 'someone' in English, and requiring instead that a name be used, even if the name is coined just for this purpose. A global naming scheme for bnodes would be like a convention that one had to say 'person-<hash-identifier>' rather than simply 'someone'.
>> 
>>> Seems to me you could solve a lot of the problems of RDF with this
>>> were the case?
>> 
>> What problems?
> 
> Three problems come to mind:
> 
> One problem is the canonicalization of RDF seriealizations, and hence,
> ability to sign it with DSIG.  It seems quite hard to canonicalize
> bnodes, right now.

I have to confess that I have only the vaguest idea what you are talking about here. But a particular serialization syntax could indeed adopt a special bnode-ID convention to make canonicalization (and checking for isomorphism, etc.) easier, yes. That would be up to the designers of that serialization syntax, though, not a matter for the basic RDF model. 

> Another is referring to data in another graph, say I wanted to
> annotate, access control, transform etc.

I see no reason why you cannot do this now. 

> Another that I was personally trying to solve was an easy way to diff
> elements in a triple store cross domain, e.g. for sync purpose

How reliable does it have to be? You could just treat all bnodeIDs as identical and I bet you wouldn't get many false positives in practice. (But if anyone asks, I never said that.) 

> 
> But also it 'feels' like it would make things more elegant, and to my
> instincts, solve a number of issues that I havent considered.

To me, it 'feels' quite alien and ugly. The whole idea of bnodes is that they aren't identified by their textual form but instead by their 'position' in the graph syntax. They are like a knot in a fishing net or a mark on a piece of paper. 

Pat

> 
>> 
>> Pat Hayes
>> 
>>> 
>>> 
>> 
>> ------------------------------------------------------------
>> IHMC                                     (850)434 8903 or (650)494 3973
>> 40 South Alcaniz St.           (850)202 4416   office
>> Pensacola                            (850)202 4440   fax
>> FL 32502                              (850)291 0667   mobile
>> phayesAT-SIGNihmc.us       http://www.ihmc.us/users/phayes
>> 
>> 
>> 
>> 
>> 
>> 
> 

------------------------------------------------------------
IHMC                                     (850)434 8903 or (650)494 3973   
40 South Alcaniz St.           (850)202 4416   office
Pensacola                            (850)202 4440   fax
FL 32502                              (850)291 0667   mobile
phayesAT-SIGNihmc.us       http://www.ihmc.us/users/phayes
Received on Saturday, 9 October 2010 18:37:20 UTC

This archive was generated by hypermail 2.4.0 : Tuesday, 5 July 2022 08:45:20 UTC