Re: FW: Proposal and Test cases (Re: skolems: visible differences?)

[Bijan - there is a part I would be interested in your response, some of 
the way down - labelled [[Bijan]] ]

Michael Schneider wrote:
> Jeremy Carroll wrote:
> 
>> TEST 5:
>>     ObjectPropertyAssertion(:p :x _:y)
>>
>> does not entail
>>
>>     ObjectPropertyAssertion(:p :x _:y)
> 
> For my understanding: Is the purpose of this testcase to show that each
> occurrence of the same bNode under skolem semantics actually stands for a
> fresh variable? 

No - it shows that the _:y is a local name, scoped to a single ontology.
The significance is that the two instances of the same ontology in the 
entailment, are different scopes for the local name so that the two 
instances of that local name do not co-refer.



So even an additional axiom
> 
>   SameIndividuals(_:y _:y)
> 

This is trivially true.

> wouldn't help, since this is not better than stating
> 
>   SameIndividuals(<u> <w>)
> 

This is not.

> for otherwise unused URIs '<u>' and '<w>'. Is this right?

No.

> 
> Ok, this is actually how I understand skolems. And this is also the way how
> I would best understand the term "anonymous variable". So for me, this means
> (at the moment) that anonymous variables are properly represented by
> skolems.
> 
> However: Using bNodes for this purpose is *very* confusing for me, and I
> don't believe that it really matches user expectations (from the user
> expectation's point of view, this is no big progress compared to seeing
> bNodes as existentials, IMHO).


[[Bijan]]
I really don't get the 'user expectation' argument.

I don't see a single test case in which a 'user expectation' of a blank 
node acting as an 'anonymous resource' (i.e. like a resource named with 
a URI, but without a name), is misleading.
The formal semantics of bnodes as existentials is intended to capture 
appropriate user expectations for anonymous resources in a formally 
compelling way.

The one place where user expectations will be regularly undermined is in 
the lack of a unique names assumption - but that has nothing to do with 
whether the nodes are blank (i.e. locally scoped names) or labelled with 
URIs (i.e. globally scoped names).




> 
> A particular problem would arise with RDF syntax, when people use bNodes in
> their assertions, like in
> 
>   _:x foaf:name "John Doe" .
>   _:x foaf:homepage <http://www.ex.org/johndoe> .
> 
> That's common use in FOAF (although often the bNode is hidden behind a "[]"
> in Turtle syntax, and there is also normally no explicit mentioning of the
> bNode in RDF/XML). The 1.1-DL semantics of this RDF graph would then be
> given by inverse-mapping it to Abstract Syntax. It would result in
>  
>   DataPropertyAssertion(foaf:name _:x "John Doe") .
>   ObjectPropertyAssertion(foaf:homepage _:x <http://www.ex.org/johndoe>) .
> 
> But with skolem semantics for the bNode(s) '_:x' this would be totally
> different from what was intended by the RDF version's author.

No - the skolem semantics is that the _:x is the same thing in both 
assertions, and hence not hugely different from the RDF version.

>   
> An alternative suggestion would be to use a special "dummy" variable like
> "_", as in Haskell. Then, the above test would become
> 
>   TEST 5':
>      ObjectPropertyAssertion(:p :x _)
> 
>   does not entail
> 
>      ObjectPropertyAssertion(:p :x _)  
> 
> And my sameness axiom would be
> 
>   SameIndividuals( _ _ )
> 
> I would not be confused by this, since I would know about the special
> meaning of "_" (easy to remember, since there is no precedence for the use
> of "_" somewhere else in the SemWeb).


No it is not intended as a fresh variable on every occurrence.


> 
> The RDF mapping would then have to build fresh names (bNodes, probably) for
> each occurrence of a "_". This is not very nice, but I think it would be
> simple to implement. But roundtripping would perhaps become a problem: One
> would need to know somehow, which bNode may be mapped to a "_" and which
> not. Perhaps this is a point, where roundtripping shouldn't be enforced by
> the spec. The alternative, to simply map each bNode in RDF to the same bNode
> in the Abstract Syntax would at least bring no problems, AFAICT.
> 
> More discussion needed, esp. whether anonymous variables in Abstract Syntax
> are important enough to force the WG coping with this topic at all.
> 

Jeremy

Received on Thursday, 17 January 2008 11:16:26 UTC