- From: Jeff Z. Pan <jpan@csd.abdn.ac.uk>
- Date: Fri, 25 Jan 2008 21:44:52 +0000
- To: "Peter F. Patel-Schneider" <pfps@research.bell-labs.com>
- CC: ivan@w3.org, public-owl-wg@w3.org
Hi Peter, Ivan, Bijan, Thanks for joining the discussions. It seems that we also need an example to illustrate the difference of the two semantics in terms of entailment checking. Let me extend the example as follows. Given an ontology O (about friends) which consists of the following axioms: hasFriend(Bob,Chris) hasFrinnd(Bob,:_1) hasAge(:_1,"26"^^xsd:integer) Now the question is to check if O entails that Bob has at least two friends. - Under semantic 1) (existentially quantified variables), the answer of the above entailment checking is false. - Under semantic 2) (skolem constants), the answer of the above entailment checking is true. Comments/Further examples are welcome. Jeff Peter F. Patel-Schneider wrote: > From: Ivan Herman <ivan@w3.org> > Subject: Re: Action-67 some examples on b-nodes issues and their impact on users > Date: Wed, 23 Jan 2008 10:24:04 +0100 > > >> Peter F. Patel-Schneider wrote: >> [snip] >> >>>> Example: >>>> >>>> Given an ontology O about friends (suppose there are no anonymous >>>> individuals in O). Let us consider the following extra individual >>>> axioms (where :_1 is an anonymous individual): >>>> >>>> hasFriend(Bob,:_1) >>>> hasAge(:_1,"26"^^xsd:integer) >>>> >>>> With both semantics, the axioms both roughly say "Bob has some >>>> friend aged 26" with some subtle difference: under semantics 1), >>>> the friend aged 26 could be someone already mentioned in O, while >>>> under semantics 2), the friend is someone new and cannot be >>>> someone mentioned in O. >>>> >>> I do not believe that this is an accurate English gloss of the actual >>> formal situation. >>> >>> [I'm going to use an FOL syntax below to emphasize the difference >>> between the two situation.] >>> >>> If we have a KB that does not mention some constant, say fB, then the >>> difference between >>> Ex hasFriend(Bob,x) & hasAge(x,26) >>> and >>> hasFriend(Bob,fB) & hasAge(fB,26) >>> is not that fB is or is not equal to any other constant in the KB. >>> >>> With only the above information, there would be interpretations in which >>> the denotation of x is the same as the denotation of some (other) >>> constant and interpretations where the denotation of x is different from >>> that of all (other) constants and similarly for fB. >>> > > NB: I was being a bit sloppy above, beyond the issue that Ivan mentioned. > > > >> Peter, >> >> I must admit I have some difficulties to fully parse this sentence, >> primarily the 'and similarly for fB' part. >> > > >>> With only the above information, there would be interpretations in which >>> the denotation of fB is the same as the denotation of some other >>> constant and interpretations where the denotation of fB is different from >>> that of all other constants >>> > > >> Sorry, I am not versed in >> logic as you are... Can you expand the difference between the two a >> little bit more? >> >> Thanks a lot >> >> ivan >> > > Well, it is difficult. The best way would be to just go to the > denotational semantics of FOL. > > However, basically the story is that in FOL there is really very little > difference between a KB that has > Ex ( hasFriend(Bob,x) & hasAge(x,26) ) > and one that has > hasFriend(Bob,fB) & hasAge(fB,26) > *if fB is not mentioned anywhere else*! Certainly there is no > difference in whether there has to be *another* friend of Bob. > > The "very little difference" is why Skolemization works in a KB (but > note that Skolemization does not work the same in a query); the "not > mentioned anywhere else" is one reason why you have to be careful with > Skolemization. > > peter > >
Received on Friday, 25 January 2008 21:53:18 UTC