$Id: daml+oil-ex.daml,v 1.2 2003-07-24 15:30:37 ian_dickinson Exp $
An example ontology, with data types taken from XML Schema
Animal
This class of animals is illustrative of a number of ontological idioms.
shoesize is a DatatypeProperty whose range is xsd:decimal.
shoesize is also a UniqueProperty (can only have one shoesize)
age is a DatatypeProperty whose range is xsd:decimal.
age is also a UniqueProperty (can only have one age)
1
Animals have exactly two parents, ie:
If x is an animal, then it has exactly 2 parents
(but it is NOT the case that anything that has 2 parents is an animal).
hasAncestor
no car is a person
every person is a man or a woman
Adam
Adam is a person.
shirtsize is a DatatypeProperty whose range is clothingsize.
BigFoots (BigFeet?) are exactly those persons whose shosize is over12.
Ian is an instance of Person. Ian has shoesize 14 and age 37. From
the range restrictions we know that these are of type xsd:decimal
and xsd:nonNegativeInteger respectively. Ian also has shirtsize 12,
the type of which is the union type clothingsize; the discriminating
type "string" has been specified, so the value is to be taken as the
string "12" rather than the integer 12. We may be able to infer
that Ian is an instance of BigFoot (because 14 is a valid value for
xsd:over12).
14
37
Peter is an instance of Person. Peter has shoesize 9.5 and age 46. From the
range restrictions we know that these are of type xsd:decimal and
xsd:nonNegativeInteger respectively. Peter also has shirtsize 15, the type
of which is the union type clothingsize; no discriminating type
has been specified, so the value may be either a string or an integer.
9.5
46
15
associatedData is a DatatypeProperty without a range restriction.
Persons have at most 1 item of associatedData
1
Santa is an instance of Person. Santa has two pieces of
associatedData, one of which is the real number 3.14159 and the
other of which is the string "3.14159". We may be able to infer a
logical inconsistency (because Persons can have at most 1 item of
associatedData, and a value cannot be both a string and a real
number).