From: pat hayes ([email protected])
Date: 10/09/00
In DAML-ONT:
</Property> <Property ID="disjointUnionOf">
<label>disjointUnionOf</label>
<domain resource="#Class"/>
<range resource="#List"/>
<comment>
for unionOf(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
</comment> </Property> <Property ID="intersectionOf">
<! COMMENT: This isnt the usual notion of 'disjoint-union'. The usual
one is the union of two disjoint copies of the arguments. Imagine
replacing A and B by A' and B' where A' differs from A in having all
the elements of its intersection with B marked as 'first copy', and
similarly for B' but marked 'second copy', then the disjoint union of
A and B is the union of A' and B'. So for example the disjoint union
of a set with itself is a set with two copies of everything in the
original set. >
<! QUESTION: what is the value of your disjoint-union when the
classes arent disjoint?>
</Property> <Property ID="complementOf">
<comment>
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 NOT</comment>
<! COMMENT: It might be safer to use relative complement, ie
subtraction of one class from another. Then complement is relative
complement from the universal class. The reason this might be safer
is that for many people there is no universal class, so (absolute)
complement isnot exactly well-defined. In any case relative
complement is often handy in its own right. >
<Property ID="oneOf">
<comment>for oneOf(C, L) read everything in C is one of the things in L;
This lets us define classes by enumerating the members.
</comment>
<! QUESTION: Does this mean that C and L have exactly the same members? >
<Property ID="imports">
<label>imports</label>
<comment>for 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".
</comment> </Property>
<! COMMENT: I'm sure you know this is a can of worms,and I won't ask
about 'content', but what (kind of thing) is X supposed to be here?
(A class??) >
In DAML-NUM
<Class ID="Numeral"> <label>Numeral</label> <comment>a sequence
of digits (perhaps a sign? decimal place?). Radix 10, I guess.
Note that "10" is a numeral, but the corresponding number is
something else: "10" is a label for that number; i.e.
daml:label(n, "10"). @@hmm... is label unambiguous over Numbers?
or do we allow, e.g. "010" and "10" to denote the same number?
<! I'd suggest allowing leading zeros, but they don't change the
denotation. But note, people often do want to distinguish 10 from
10.0 as being different kinds of thing, so be careful, if you allow
decimals, to let people keep integers and reals separate. Similarly
for signs and negative numbers. Usual class distinctions for
mathematicians are: naturals (positive
only)/integers/rationals/reals; for geeks are: integers/reals.
Naturals are natural for counting things. >
<Property ID="min"> <domain
resource="http://www.w3.org/2000/08/daml-ont#Class"/> <range
resource="#Integer"/> <comment>for min(S, x) read: x is the minimum
of s; i.e. x is in S and every y in S is not less than x
<! Might be better to phrase this as every y in S is greater or
equal. The way you have it, S could contain some non-integers and
still have a minimum. Similarly for max.>
<Class ID="Range"> <label>Range</label> <comment> a set
(class) of integers ranging from some min to some max. @@Hmm...
how to say that each instance of Range is a subclass of Integer?
<! You could say that the range was the powerset of Integer, ie set
of all subsets of Integer, maybe? Powerset (powerclass?) is likely to
be generally useful.>
<! Why not have this a function from a pair of integers to a class?>
From DAML-EX
<Class ID="Person"> <subClassOf resource="#Animal"/>
<restrictedBy> <Restriction> <onProperty
resource="#parent"/> <toClass resource="#Person"/>
</Restriction> </restrictedBy></Class>
<! Well, this isnt wrong exactly, but its also not a very good
definition since it is a nonterminating recusion. Does this matter in
this framework?>
<UniqueProperty ID="mother"> <subProperty resource="#parent"/>
<range resource="#Woman"/></UniqueProperty>
<! Is father a UniqueProperty also, or are you making some biological
point here?>
<! Does it follow from the above that father and mother between them
constitute all the parents? How would that conclusion be derived in
DAML?>
<TransitiveProperty ID="ancestor"> <comment>@@need a property to
relate this to parent</comment>
<! This is actually quite tricky. What you want to say is that
ancestor is the transitive closure of parent, which means that 1. a
parent is an ancestor, 2. that ancestor is transitive, and 3. that
ancestor is the smallest (least true) property satisfying 1. and 2.
This last part is the trickiest part and is hard to state properly
even in full first-order logic. It might be a good idea to actually
have transitiveClosure in the language as a primitive if you really
think it is going to be used a lot, rather than try to define it.>
<Class ID="Car"> <comment>no car is a person</comment>
<subClassOf> <Class> <complementOf resource="#Person"/>
<That seems to say that a car is *anything* that is not a person.
What you should say is that it is a subclass of the complementOf, or
just say they are disjoint. Or you can say the relativecomplement is
unchanged. >
<Class ID="Height"> <oneOf parseType="daml:collection"> <Height
ID="short"/> <Height ID="medium"/> <Height ID="tall"/>
</oneOf></Class>
<! I guess it is churlish to point out that this is meaningless,
since a tall man is shorter than short building?>
---------------------------------------------------------------------
IHMC (850)434 8903 home
40 South Alcaniz St. (850)202 4416 office
Pensacola, FL 32501 (850)202 4440 fax
[email protected]
http://www.coginst.uwf.edu/~phayes
This archive was generated by hypermail 2.1.4 : 03/26/02 EST