Back to DAML homepage
Some Notes on the Differences Between DAML+OIL and OIL
Feedback to www-rdf-logic,
Ian Horrocks (editor)
Contributors: Tim Berners-Lee, Dan Brickley, Dan Connolly, Mike Dean,
Stefan Decker, Frank van Harmelen, Pat Hayes, Jeff Heflin, Jim Hendler,
Deb McGuinness, Lynn Andrea Stein
$Revision: 1.4 $ of $Date: 2001/01/10 20:00:00 $
RDF syntax, most notably in the use of lists in DAML+OIL.
Arbitrary RDF cannot be used in OIL ontologies.
OIL has concrete data types; concrete data types have yet to be defined
OIL has explicit "OIL" instances; DAML+OIL relies on RDF for instances.
OIL has better "backwards compatibility" with RDFS for defined (non-primitive)
concepts, as the subClassOf half of the two way implication is still accessible
to RDFS agents. DAML+OIL, on the other hand, requires more complex definitions
to be embedded in a boolean expressions using a list constructor which
will make their meaning opaque to applications that are not "DAML+OIL-aware".
In OIL a transitive property cannot be functional, nor can it (or any of
its superproperties) be used in a cardinality constraint. This restriction
is required in order for class consistency to be decidable. This restriction
does not apply to DAML+OIL, but to quote from daml+oil.daml:
<!-- Note that cardinality restrictions on transitive properties, or -->
<!-- properties with transitive sub-properties, compromise decidability. -->
DAML+OIL has a "versionInfo" property; OIL has a (Dublin Core compliant)
DAML+OIL has an explicit "samePropertyAs" property; OIL can express this
DAML+OIL provides both a "disjointWith" property that can be used to assert
that two classes are disjoint and a "Disjoint" class that can be used to
assert pairwise disjointness amongst all the classes in a list. OIL simply
uses "disjoint" to assert disjointness amongst two or more classes.
DAML+OIL has no direct equivalent to OIL's "covered" axiom. However,
the same effect can be achieved using a combination of "unionOf" and "subClass".
In OIL the covered class is a subclass of the union of the covering classes
whereas in DAML+OIL the covered class is exactly equal to the union of
the covering classes. The converse effects can be achieved by using an
"equivalent" assertion in OIL and a combination of "disjointUnionOf" and
"subClass" in DAML+OIL.
OIL can assert equivalence between an arbitrary number of classes, whereas
DAML+OIL only allows equivalence to be asserted between two classes. However,
a corresponding effect can obviously be achieved by the use of multiple
DAML+OIL currently does not support SymmetricProperty. However, the
same effect can be achieved simply by asserting that the property is a
subproperty of its inverse and vice versa (i.e., that the property and
its inverse are equivalent).
OIL does not support UnambiguousProperty. However, the same effect can
be achieved simply by asserting that the inverse of the property is functional.