From W3C Wiki

This comes out of DiffAndPatch

It's (at least) an argument against using bNodes (BlankNodes, NodeIds) in RDF.

If you do, then when you go to change your RDF data, you're vaguely stuck.

In English:

  • "Hey, I just saw a guy run by with a bag of $20 bills, throwing handfulls into the air!"
  • "Oh, no, wait, they're fake money."

But you can't issue that second one, that retraction in RDF, unless you gave the guy a URI or other identifying qualities. The best you could say would be:

  • "Every guy about which I said I had been run by with a bag of $20 bills, throwing handfulls into the air,
 was actually throwing fake money" 

but then what if it really happens? You're stuck.

I don't understand the analogy.

The problem seems to me that if you are MergingGraphs, you have difficulty figuring out what to do with the BlankNodes. Because they could be the same node, with additional or conflicting or duplicate (as in additional) or duplicate (as in redundant) information, or they could be different nodes (that share or do not share the same data), and you have no way of knowing which, without additional help. (Additional help, such as the "InverseFunctionalProperty," or something like that.)

Is that correct?

-- LionKimbro DateTime(2004-06-06T05:37:04)

Sort of, but I don't quite understand your terms. Two bnodes are always different nodes, they just might denote the same thing (they might be owl:sameAs each other). This is also true of any two URIs (non-blank nodes). The problem is that one can never say they are owl:sameAs each other if they are bnodes and occur in different graphs. Or, more generally, when you leave the nodes blank, lots of RDF operations become more difficult and some become impossible.

-- SandroHawke DateTime(2004-06-07T14:35:51)

Time to be clear in what we mean. :)

Okay- two BlankNodes are always different nodes.

They could refer to the same thing, though-

By that, we mean that BlankNodes #1 and #2 could both give some information about LionKimbro.

  • #1--likes-->Anime
  • #2--name is-->Lion Kimbro

They're both talking about me, but we have no way of knowing that.

(Is that owl:sameAs? If so, I'd like to write that up in OwlSameAs.)

If you used URIs for the two BlankNodes, then the URI's would (presumably) point to the same target. So you'd be able to see that they were the same thing, and you could merge your graphs (MergingGraphs) so that you had one, integrated graph in the end.

Is this the distinction that you are making? That it is hard to merge graphs, and do other things, if you don't have uniquely identified nodes?

-- LionKimbro DateTime(2004-06-07T14:38:45)

Okay, I think I understand the problem, but I disagree with your conclusions.

The problem is: If you have a BlankNode without uniquely identifying characteristics, it's next to impossible to re-address it.


So, then, I agree with the general idea- "Identify Everything."

But I disagree with the specific idea- "Have no BlankNodes."

It would seem to me, that if you uniquely identify your BlankNodes, you are still okay. Using the "InverseFunctionalProperty," or whatever they like to call it.

-- LionKimbro DateTime(2004-06-15T03:30:53)