From: pat hayes (phayes@ai.uwf.edu)
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 phayes@ai.uwf.edu http://www.coginst.uwf.edu/~phayes
This archive was generated by hypermail 2.1.4 : 03/26/02 EST