- From: Peter F. Patel-Schneider <pfps@research.bell-labs.com>
- Date: Thu, 12 Oct 2000 09:30:40 -0400
- To: www-rdf-logic@w3.org
I think that it would be very useful to get some sort of information on the basic decisions underlying DAML-ONT. For example, I would like to know whether there is a basic decision in DAML-ONT to not allow necessary and sufficient conditions for classes. The reason that I ask this is that DAML-ONT does not have a direct mechanism to allow such ``defined'' classes. However, in many cases, one can indeed create classes that contain exactly those individuals that meet a particular condition. For example, suppose we want to create the class of individuals who have a rich friend. We start by defining the property ``friend'' and the class ``Rich''. <Property ID="friend"/> <Class ID="Rich"/> Then we create the complement of ``Rich''. <Class ID="notRich"> <complementOf resource="#Rich> </Class> Now we define a subclass of the desired class, ``SomeRichFriend''. <Class ID="SomeRichFriend"> <qualifiedBy> <Qualification> <onProperty resource="#friend"/> <toClass resource="#Rich"/> </Qualification> </qualifiedBy> </Class> Finally we create a subclass of complement of the desired class, which we can do because the complement of a qualification to a class is a restriction to the complement of the class, and assert that it and ``SomeRichFriend'' are complements. <Class ID="AllNotRichFriends"> <restrictedBy> <Restriction> <onProperty resource="#friend"/> <toClass resource="#notRich"/> </Restriction> </restrictedBy> <complementOf resource="#SomeRichFriend"> </Class> Because ``AllNotRichFriends'' is a subset of the complement of the desired class, therefore its complement, ``SomeRichFriend'', is a superset of the desired class. However, ``SomeRichFriend'' was already defined as a subset of the desired class, therefore ``SomeRichFriend'' is precisely the desired class. So, it now follows from <Rich ID="DaddyWarbucks"/> <Thing ID="Annie"> <friend resource="DaddyWarbucks"> </Thing> that ``Annie'' belongs to ``SomeRichFriend''. More complicated examples can be created using unionOf and the other ``[t]erms for building classes from other classes''. Peter Patel-Schneider
Received on Thursday, 12 October 2000 09:32:02 UTC