W3C home > Mailing lists > Public > www-webont-wg@w3.org > May 2002

More on a UML based presentation syntax for OWL

From: Evan Wallace <ewallace@cme.nist.gov>
Date: Tue, 21 May 2002 11:32:04 -0400 (EDT)
Message-Id: <200205211532.LAA03187@clue.msid.cme.nist.gov>
To: www-webont-wg@w3.org

Here are some comments on Guus Schrieber's UML based presentation
syntax document [1] per my action item.

First, it is worth noting that there has been considerable work done
exploring the potential to use UML for ontology development.  [2]
provides a short survey of this work (including the work of Sandpiper,
LMC, CODIP, etc.) with extensive web references.  A number of these
efforts defined mappings from UML to DAML.  One such mapping can be
found in [3] and another can be found directly on the UBOT website 
<http://ubot.lockheedmartin.com/ubot/details/uml_to_daml.html>.  We
should definitely compare our mapping to these if we continue to 
pursue this presentation syntax.  (BTW - the issue regarding the
mapping for property to UML associations was mentioned in both [2] and
[3], and is being discussed in the ongoing work for UML V2 --
see http://www.omg.org/uml for more on UML 2).

Second, my perspective on this mapping comes from experiences using
UML and its predecessors for conceptual modeling for the manufacturing
domain.  Important aspects of the mapping would therefore relate to
how natural the use of this presentation syntax would be for a person
with similar experience to my own.  In short, I think Guus' mapping
succeeds from this perspective.  But another important issue for me is
the exact form of the mapping.  I would like to see us define a UML
profile for OWL so that existing UML tools could be used to model OWL
ontologies which then could generate XMI renderings of the model
mappable to OWL transfer syntax.  Otherwise we may run into
intellectual property issues if we try to co-opt certain UML graphical
constructs for our own independent use (particularly if they have
different meaning from UML).

Specific comments on [1] follow:

UML reference

The "UML User Guide" mentioned at the end of the "Purpose of this
document" section is a tutorial and not a reference.  While the
canonical reference for UML 1.x is the OMG specification[4], I suggest
we use the "UML Reference Manual" [5] which is a sister publication to
the UML User Guide.  This is what I used to check the semantics and
notation for UML constructs used in [1].  

Primitive class note

UML classes are primitiveClasses.  After all the discussion regarding
primitive and defined classes on the webont list, I am unsure that a
notion of primitive class will exist at all in OWL.  This seems like
it could be a problem for a UML presentation syntax.  At a minimum,
the issue will need to be clearly identified and explained for users
of the UML presentation syntax.

UML notation for generalization relationships

A minor comment: There are two more common notations for representing
a set of generalization relationships (the UML construct for defining
subclasses) than that shown in the figure labelled "A class with two
subclasses."  These are: the tree notation and a set of individual
straight arrows.  The mapping document should state that notation
shown are just examples and that the mapping doesn't prohibit other
UML notational options unless specifically stated.

Multiple appearances of a class

Many of the examples in [1] show a given class appearing multiple
times in a single diagram.  As Chris Welty pointed out, it is unusual
for this to occur in a single UML diagram.  It is, however; expected
that objects _will_ appear in multiple Class diagrams (making up a
single model) and that such appearances can introduce "additional
relationships and attachments to a class."  Furthermore, I didn't find
anything in the description of Class or Class Diagram in [5] which
precludes the style that Guus used in his examples.

Chris's cycle issue exists whether or not use of this style is
permitted.  Associations that "loop" like this (i.e. domain and range
are restricted to instances of the same class) are not uncommon in UML
models.  If OWL has a problem with this, then we would need to clearly
explain the problem and its work-around in the mapping document.

Cardinality on UML associations and OWL subset

UML allows a pretty flexible specification of cardinality
(UML:multiplicity range) for each side of an association.  This
flexibility is widely exploited in UML based domain models.
Therefore, whatever OWL language set is used to support the UML
presentation syntax should also fully support this expressiveness in
specifying local cardinality.

Association generalization relationships

According to [5] a pair of associations need not be association
classes in order to create a generalization (subtype) relationship
between them.  Thus it is not obvious that "The clearest way of
modelling a subproperty relation is to model the associations involved
as a UML association class" as claimed in [1] (perhaps this choice was
actually motivated more by the capabilities of particular tools then
by the features of UML).  It is true that modelling properties this
way would get us closer to representing this with a first class
object, but it fails to address the key concern motivating that goal.
Even association classes must have their end points tied to particular
classes (i.e. they still can't have an identity independent of the
classes that they will associate).

Having said all that, I don't disagree with this choice (modelling
properties with association classes).  Besides it still would be
necessary to do this in order to make use of the scheme for modelling
metaproperties shown in the "Transitive property" section of [1].

Notation for transitive metaproperty

This section states, "The instance-of relation is shown in UML through
a dependency with an <<instance>> stereotype."  According to [5,p412]
the terms here are switched.  It should read, "The instance
relationship is shown in UML through a dependency with an
<<instanceOf>> stereotype."  Note also that "<<instanceOf>>" should be
substituted in place of "<<instance>>" in all the figures where it

Disjoint constraint

The discussion and example using the predefined UML constraint
"disjoint" may be misleading to many readers.  This UML constraint
actually applies to a set of generalization relationships to a common
parent and not to a set of classes per se.  As such, it would normally
be shown as an annotation on a set of generalizations (again,
represented as a tree or a set of straight arrows).  Furthermore,
since UML classes don't all share common ancestry, applying such
constraints across arbitrary classes would not ordinarily be valid.


As I mentioned before, I think that [1] is an excellent start at
creating a UML based presentation syntax for OWL.  The efforts noted in
[2] show that there is sufficient interest to justify developing such
a syntax.  A discussion of issues encountered when mapping between the
languages is covered in section 5 of [3] (in a few pages).  A couple
of the authors of these papers have offered to review the next
generation of Guus' paper when we are ready.  Finally, there is even 
mechanism and a constituency at OMG through which we could formalize the
mapping between these languages as a UML profile.  This would be done
after OWL was released as a proposed recommendation.

[1] "Scheiber. "A UML Presentation Syntax for OWL Lite".

[2] Kogut, Cranefield, Hart, Dutra, Baclawski, Kokar, and Smith.
"UML for Ontology Development"
to appear in Knowledge Engineering Review Journal Special Issue on
Ontologies in Agent Systems

[3] Baclawski, Kokar, Kogut, Hart Smith Holmes, Letkowski, and Aronson
(2001) "Extending UML to Support Ontology Engineering for the Semantic Web"
Proc. of the Fourth International Conference on UML (UML2001),

[4] OMG (2001). "Unified Modeling Language (UML) version 1.4."

[5] Rumbaugh, Jacobson, and Booch (1999).
"The Unified Modeling Language Reference Manual"
Addison-Wesley. ISBN 0-201-30998-X


Evan K. Wallace
Manufacturing Systems Integration Division
Received on Tuesday, 21 May 2002 11:32:09 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:56:43 UTC