On UML as a presentation syntax for OWL

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