Re: Proposed change to the OWL-2 Direct Semantics entailment regime

Hi Chimezie!

On 30 Nov 2010, at 16:45, Chimezie Ogbuji wrote:

> Pardon my naïve questions, but I'm having a hard time understanding why the
> current OWL-2 Direct Semantics ER would not provide any answers to this
> example.

Crib sheet: 
	There are at least three issues:
	1) Whether bnodes in BGPs bind to "unnamed elements" of the domain
		"Unnamed" elements can be introduced in several ways, e.g., by bNodes treated as existentials or by someValuesFrom.
	2) How to interpret bnodes in data
	3) What the answers should contain.

> On 11/30/10 4:57 AM, "Enrico Franconi" <franconi@inf.unibz.it> wrote:
>> ..snip..
>> A = R some Thing
>> B = R max 0 Thing
>> 
>> Consider the following data:
>> 
>> :john :friend :mary
>> :john friend :andrea
>> :mary :loves :andrea
>> :andrea :loves :paul
>> 
>> :mary rdf:type A
>> :paul rdf:type B
> 
> Ok, I don't see any BNodes in the data.
[snip]
Right, so we're just looking at issue 1.

>> Consider the query:
>> {?X friend _:y, _:y rdf:type A, _:y loves _:z, _:z rdf:type B}
> 
>> If the bnodes in the query are interpreted as genuine existential variables,
>> the answer should be:
>> {{?X -> :john}}.
> 
> I would expect this same answer even if _:y and _:z are treated as
> variables.

I see why, but that's not correct. There are two models (as enrico points out) and in one _:y corresponds to andrea and in the other _:y coresponds to mary (and _:z to :andrea). So there's no *one* individual in *all* models we can bind to _:y. So if we change it to ?Y we'll get no answer.

To demonstrate this, I coded up enrico's example:
	<http://www.cs.man.ac.uk/~bparsia/2010/test/1sparqltest.owl>

You can see the result with the undistinguished vars:
	http://bit.ly/fB4sSw

and the distinguished vars:
	http://bit.ly/h4CGtG 

As you can see, the first returns John and the second does not.

It's essentially the same as the Oedipus example. (Incidently, Enrico, that's why neither Birte nor I find your example compelling. It's a toy example. We too can construct toy examples where the difference is significant. The trouble is finding sufficient examples such that the total cost of the feature becomes worth it.)
[snip]
> This my point of confusion, maybe if you spell it out further, I would see
> something I'm currently missing.  In the first 'completion', _:y would be
> bound to :Andrea and _:z to :Paul.  In the second, _:y would be bound to
> :Mary and _:z to :Andrea.

Yep.

>  In both cases, the Bnodes in the queries are
> (consistently) bound to individuals

But not the same individual in all models. There's no *ground* binding *entailed*.

> and the instantiation of the solutions
> WRT the query are entailed

No. The first tuple is true in one model but not the other. Thus that solution isn't entailed by the data.

> by the data and the OWL axioms.
> 
> So, my intuitive understanding is that there are two unique solutions

There's only one solution *per model*, thus no solutions *in all models*.

> (prior
> to 'projecting out' the Bnodes from the solutions), but there is only one
> (once you do).  Is it there something in this ER specification about how
> this projection/stripping happens that is the culprit here?
[snip]
It's not the projection, it's considering all the models at once.

Hope that helps.

Cheers,
Bijan.

Received on Tuesday, 30 November 2010 17:31:13 UTC