Re: bNodes wanted

From: Sandro Hawke <>
Subject: Re: bNodes wanted 
Date: Fri, 24 May 2002 21:45:33 -0400

> > From: Sandro Hawke <>
> > 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.

Au contraire, determining whether A entails B certainly does use A in an
assertional context.  As the first triple above does not entail the second,
but the second (a skolemization of the first) does entail the first,
skolemization does change meaning in assertional contexts.

> 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)

None of these work.  As soon as any other agent sees the skolem URIrefs
then it can use the URIrefs, resulting in them possibly being used in other

> 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.

As soon as the URI ref is used by someone else, even later, the
requirements for non-dangerous Skolemization are lost.

> 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?

Lets see:

1/ containers that cannot be added to by other parties
2/ resources that cannot be referred to by name, only in terms of their
relationships to other resources

>     -- sandro
> [1]


Received on Friday, 24 May 2002 23:40:07 UTC