$Id: daml+oil-ex.daml,v 1.4 2001/12/18 18:34:13 dom 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).