- 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