Re: bNodes wanted

> From: Sandro Hawke <sandro@w3.org>
> Subject: Re: bNodes wanted 
> Date: Fri, 24 May 2002 11:48:33 -0400
> 
> [...]
> 
> > The only time you change the meaning of
> > RDF via Skolemization is when the RDF is not asserted.   As I think
> > you pointed out it is nice to know no-one else has the node, but
> > that's just an engineering convenince.
> 
> >     -- sandro
> 
> The above is not true.

Perhaps I haven't worded it precisely enough, but I believe it is.

> Skolemization does change the meaning of RDF.   For example, an RDF
> interpretation can satisfy 
> 
> _:0 <http://a.b/x> "hi" .
> 
> without satisfying
> 
> <http://a.b/new> <http://a.b/x> "hi" .
> 
> This difference in meaning has entailment consequences, as the first triple
> is entailed by the second, but does not entail the second.

I specifically restricted my claim to an assertional context.  Talking
about whether KB entails X is not using X as an assertion.  When you
say A entails B but B does not entail A, then you're not using either
one solely as an assertion.

If I send you a message, stating some facts (as I believe them) in
N-Triples, and some intermediary replaces some bNodes with
properly generated Skolem constants, it wont change what you learn
from the message in any significant way.

> Also, if u is a URIREF that does not occur in RDF graphs P and C, then P
> RDF-entails C exactly and only when P-with-some-bnode-in-it-skolemized-as-u
> RDF-entails C.  However, remember that there is no way that you, as an
> author of some part of P, can ensure that any particular URIREF will never
> occur elsewhere, so every time you Skolemize a bnode, you are changing
> its meaning in ways that can be observed from the outside.

It seems like the question is whether I can properly generate a Skolem
constant.  There are several ways to generate URIs that no one else
will ever generate; you can pick one that meets your needs:

    - the tag: URI algorithm for human-readable ones [1]
    - the UUID algorithm for easy machine generation
    - a cryptographicaly secure random number if you're
      seriously concerned about duplicate generation
      (such as by malicious 3rd parties)

In each of these cases you have certain assurances that the only RDF
using the same URI is RDF generated after your message by parties who
have seen or heard of your message.   Those assurances appear sufficient
for all the Semantic Web use cases I know of.

If you also want to make sure no one can use it after the fact, then
you certainly need bNodes.  But I don't know why you'd want that.  Use
cases?

    -- sandro

[1] http://www.taguri.org

Received on Friday, 24 May 2002 21:46:32 UTC