- From: Ian Horrocks <horrocks@cs.man.ac.uk>
- Date: Wed, 25 Jul 2001 08:05:58 +0100 (BST)
- To: pat hayes <phayes@ai.uwf.edu>
- Cc: "Tim Berners-Lee" <timbl@w3.org>, "www-rdf-logic" <www-rdf-logic@w3.org>
On July 24, pat hayes writes: > (Pat, to Tim B-L:) > > > > Obviously, > > > there are cases where one wants to be able to say this, to be able to > > > give necessary and sufficient conditions. We do this when we say two > > > names are equivalent, for example, in effect. But I think your point > > > arises in the form: how can we adopt this open-ended attitude, and > > > state necessary conditions on restrictions *without* saying they are > > > sufficient? That would be easy to characterise semantically, but I > > > suspect might place a burden on a DAML+OIL reasoner which would break > > > decideability. (? Any DL expert care to comment?) > > (Ian:) > > >I'm not sure I understand your concern here. If C is an arbitrary > >class and R is a restriction, then In DAML+OIL we can state any or all > >of C -> R, R -> C, or C <-> R (i.e., subClassOf C R, subClassOf R C, > >sameClassAs C R). This does not have an adverse effect on > >decidability, and modern DL reasoners (such as FaCT) can easily cope > >with this. > > I'm not sure I understand it either, but the issue is not in saying > these things for class relationships, but saying the analogous > things for restrictions. The answer may be obvious, and if so I > apologise, but how would I state necessary but not sufficient > conditions on a restriction, in such a way that further conditions > could be added monotonically by further statements? I'm still not clear about the question, but I will do my best... A restriction is a class constructor (like conjunction, negation etc.), the result of which is a class. Because of the way the syntax works it is possible to name a restriction directly, as in: <daml:Restriction rdf:ID="R"> ... which is equivalent to: <daml:Class rdf:ID="R"> <daml:sameClassAs> <daml:Restriction> ... Either of these would have the the effect of making the restriction a N&S condition for R. If you want the restriction to be only an N condition of R you can say: <daml:Class rdf:ID="R"> <daml:subClassOf> <daml:Restriction> ... If you want it to be only an S condition of R you can say: <daml:Restriction> <daml:subClassOf rdf:resource="#R"/> ... I hope this is the right answer to the right question :-) Ian p.s. N&S were useful terms in old style logical KR systems where each class name had a unique "definition" (i.e., an inclusion or equivalence axiom with the class name on the l.h.s.). In this context it made sense to talk about each of these axioms as stating either the N or N&S conditions for instances of the named class. In modern systems like D+O, which support arbitrary inclusion/equivalence axioms, I think talk of N&S conditions is more confusing than otherwise - I would prefer simply to talk of inclusion (subClassOf) and equivalence (sameClassAs) axioms.
Received on Wednesday, 25 July 2001 03:14:44 UTC