12.7 Designing the Properties 305
moment, one can only state this in the informal description of the prop-
erty. However, it is useful to classify properties this way since it affects
the design of the ontology. We will see examples in the rest of this section.
There is a notion ofsubpropertythat is similar to the notion ofsubclass.
Mathematically, both are subset relationships. As a result, properties can be
organized as a hierarchy, just as classes can be so organized. However, the
subproperty relationship is not an important one in RDF and OWL ontolo-
gies, and it is not used very often. Unlike classes, which are often defined
by their position in the class hierarchy, properties are most often defined by
their relationships with classes. Usage examples are especially important for
determining which properties will be needed in an ontology. The goal is to be
able to express every usage example using a property. In the rest of this sec-
tion we discuss the main issues involved in the design of properties: domain,
range, and cardinality constraints. However, before discussing the features
of properties, we first address whether one should introduce a property at
all.
12.7.1 Classes vs. Property Values
Although properties and classes are very different notions, there are cases
in which one must decide whether to use one or the other. In the medi-
cal chart ontology, the Event concept was subclassified into four subclasses:
Admission, Test, Prescription, and Operation. In the XML DTD these were
represented as child elements of the Event element. In RDF or OWL, these
were represented as subclasses of the Event class. An alternative to subclas-
sification is to use an XML attribute or an RDF property which can take four
possible values. For example, if Test is a class, then one would define an
instance of a test using aTestelement, whereas if Test is a property value,
then an instance of a test would look like this:
<Event eventType="Test">
...
</Event>
TheeventTypeattribute is defined in the XML DTD like this:
<!ATTLIST Event
eventType
(Admission|Test|Prescription|Operation) #REQUIRED>