- From: Ian Horrocks <horrocks@cs.man.ac.uk>
- Date: Wed, 16 Oct 2002 19:00:29 +0100
- To: Dan Connolly <connolly@w3.org>
- Cc: Jos De_Roo <jos.deroo.jd@belgium.agfa.com>, Pat Hayes <phayes@ai.uwf.edu>, www-webont-wg@w3.org
On October 16, Dan Connolly writes: > > On Tue, 2002-10-15 at 16:47, Jos De_Roo wrote: > > > > >> >> Range(P, A) -> (forall x,y P(x,y) -> A(y) ) > > >> >> > > >> >> You want > > >> >> > > >> >> Range(P,A) <-> (forall x,y P(x,y) -> A(y) ) > > >> >> > > >> >> They are about equally clear and intuitive; but the latter rules out > > >> >> some possibilities which the former permits. I believe that all the > > >> >> 'intuitive' entailments that people want in fact hold in both these > > >> >> cases; and that the former is therefore to be preferred. > > >> > > > >> >I am agnostic about which of these is to be preferred - as a humble > > >> >engineer, all I need to know is which one it is so that I have a clear > > >> >spec to which I can build my systems. > > > > > >I'm kinda agnostic too... I was leaning toward the IF, rather > > >than the IFF... > > > > I'm not agnostic at all... > > i.e. I can't see how to write > > (forall x,y P(x,y) -> A(y)) -> Range(P,A) > > in Horn-clauses or in Datalog > > (although I like nested implications > > in propositional proof arguments) > > Oohh; that's quite compelling... currently, you can > implement a complete RDFS reasoner with a > horn/datalog reasoner. If we changed range to IFF, > it's not clear that this property would hold. > > Likewise for subClassOf. If you use a direct encoding such as the one Benjamin and I have been suggesting (i.e., classes as unary predicates, properties as binary predicates), then you can check if subClassOf(C,D) holds simply by inventing a new individual i and checking if C(i) -> D(i) holds. Similarly for Range(P,A), you can invent two new individuals i1 and i2 and check if P(i1,i2) -> A(i2) holds. Ian > > -- > Dan Connolly, W3C http://www.w3.org/People/Connolly/ > >
Received on Wednesday, 16 October 2002 13:59:06 UTC