- From: Christopher Welty <welty@us.ibm.com>
- Date: Tue, 14 May 2002 09:37:00 -0400
- To: www-webont-wg@w3.org
In my PhD. thesis which used Classic to represent a simply ontology of object-oriented program constructs, I pointed out three subtle but important differences in the way description logics and object-oriented languages structure and represent information. While the semantics of UML is still not completely clear, the link to OO languages has set a de-facto semantics on the subclass relation (unfortunately called "inheritance" in that community). Most of this de-facto semantics comes from the way UML tools generate code in OO languages such as Java and especially C++. Unfortunately, this semantics is not logical. The more obvious of the three differences is that there is no notion of "primitive" vs. "defined" classes as there is in DLs. Generally, primitive classes state only-necessary conditions and defined classes state necessary and sufficient conditions for class membership. In this sense, all OO classes are DL primitive-classes. There is no notation in UML to make such a differentiation. The second difference is that "associations" in UML are not global. They explicitly link two classes, thus defining both domain and range restrictions. A more subtle point, however, is that in the negative case - that is the case in which an association is not present in a class - the association CAN NOT be present on instances of the class. This may seem like an obvious extension of the previous point about domain/range restrictions, except in the presence of the final difference. The final difference is in the way the introduction of associations is treated in subclasses. This is the most confusing point, and does not fit into any intuitive logical understanding of the subclass relation. Normally, we think of subclass to be, quite simply, if P is a subclass of Q, then, logically (using the KIF FOL serialization): (FORALL x (=> (P x) (Q x))). So if we defined class Q such that all instances have an association R1, we implicitly define that all instances of P have the association R1. HOWEVER: if we define class P (the subclass) such that all instances of P have an association R2, instances of Q that are not instances of P CAN NOT have the association R2. So, "direct instances" of Q (the superclass) can not have the association R2. I will respond directly to Guus' article on UML as a presentation syntax later today. My comments will be based on this one: if we use UML as a presentation syntax for OWL, then we must acknowledge the places where the semantics of UML and OWL do not match. -Chris Dr. Christopher A. Welty, Knowledge Structures Group IBM Watson Research Center, 19 Skyline Dr. Hawthorne, NY 10532 USA Voice: +1 914.784.7055, IBM T/L: 863.7055 Fax: +1 914.784.6078, Email: welty@us.ibm.com
Received on Tuesday, 14 May 2002 09:37:36 UTC