$Id: daml-ont.daml,v 1.2 2000/11/14 06:16:00 connolly Exp $ThingThe most general class in DAML.the class with no things in it.disjointWithfor disjointWith(X, Y) read: X and Y have no members
in common.
Disjointfor type(L, Disjoint) read: the classes in L are
pairwise disjoint.
i.e. if type(L, Disjoint), and C1 in L and C2 in L, then disjointWith(C1, C2).
unionOf
for unionOf(X, Y) read: X is the union of the classes in the list Y;
i.e. if something is in any of the classes in Y, it's in X, and vice versa.
cf OIL ORdisjointUnionOf
for disjointUnionOf(X, Y) read: X is the disjoint union of the classes in
the list Y: (a) for any c1 and c2 in Y, disjointWith(c1, c2),
and (b) i.e. if something is in any of the classes in Y, it's
in X, and vice versa.
cf OIL disjoint-covered
for intersectionOf(X, Y) read: X is the intersection of the classes in the list Y;
i.e. if something is in all the classes in Y, then it's in X, and vice versa.
cf OIL AND
for complementOf(X, Y) read: X is the complement of Y; if something is in Y,
then it's not in X, and vice versa.
cf OIL NOTfor oneOf(C, L) read everything in C is one of the
things in L;
This lets us define classes by enumerating the members.
for item(L, I) read: I is an item in L; either first(L, I)
or item(R, I) where rest(L, R).cardinalityfor cardinality(P, N) read: P has cardinality N; i.e.
everything x in the domain of P has N things y such that P(x, y).
maxCardinalityfor maxCardinality(P, N) read: P has maximum cardinality N; i.e.
everything x in the domain of P has at most N things y such that P(x, y).
for minCardinality(P, N) read: P has minimum cardinality N; i.e.
everything x in the domain of P has at least N things y such that P(x, y).
for inverseOf(R, S) read: R is the inverse of S; i.e.
if R(x, y) then S(y, x) and vice versa.UniquePropertycompare with maxCardinality=1; e.g. integer successor:
if P is a UniqueProperty, then
if P(x, y) and P(x, z) then y=z.
aka functional.
UnambiguousPropertyif P is an UnambiguousProperty, then
if P(x, y) and P(z, y) then x=z.
aka injective.
e.g. if nameOfMonth(m, "Feb")
and nameOfMonth(n, "Feb") then m and n are the same month.
restrictedByfor restrictedBy(C, R), read: C is restricted by R; i.e. the
restriction R applies to c;
if onProperty(R, P) and toValue(R, V)
then for every i in C, we have P(i, V).
if onProperty(R, P) and toClass(R, C2)
then for every i in C and for all j, if P(i, j) then type(j, C2).
for onProperty(R, P), read:
R is a restriction/qualification on P.for toValue(R, V), read: R is a restriction to V.for toClass(R, C), read: R is a restriction to C.qualifiedByfor qualifiedBy(C, Q), read: C is qualified by Q; i.e. the
qualification Q applies to C;
if onProperty(Q, P) and hasValue(Q, C2)
then for every i in C, there is some V
so that type(V, C2) and P(i, V).
hasValuefor hasValue(Q, C), read: Q is a hasValue
qualification to C.OntologyAn Ontology is a document that describes
a vocabulary of terms for communication between
(human and) automated agents.
versionInfogenerally, a string giving information about this
version; e.g. RCS/CVS keywords
importsfor imports(X, Y) read: X imports Y;
i.e. X asserts the* contents of Y by reference;
i.e. if imports(X, Y) and you believe X and Y says something,
then you should believe it.
Note: "the contents" is, in the general case,
an il-formed definite description. Different
interactions with a resource may expose contents
that vary with time, data format, preferred language,
requestor credentials, etc. So for "the contents",
read "any contents".
for equivalentTo(X, Y), read X is an equivalent term to Y.
defaultdefault(X, Y) suggests that Y be considered a/the default
value for the X property. This can be considered
documentation (ala label, comment) but we don't specify
any logical impact.