[CL] Questions/Comments/Recommendations regarding XMDR proposals

John F. Sowa sowa at bestweb.net
Fri Nov 4 13:02:06 CST 2005


Leo and Ed,

One of the major problems with UML has been the
lack of a formally defined semantics.  In fact,
the informal semantics of the original UML 1.0
diagrams was inconsistent.  Statements, which
seemed to say "the same thing" in different
diagrams, had slightly different interpretations
so that it was impossible to guarantee that the
overall model, as expressed in the conjunction of
multiple diagrams, was consistent.

I realize that the UML designers have been aware of
the inconsistencies, and they are working toward a
resolution.  But the most general solution, is to
formalize the entire UML framework in some version
of logic.  There are three obvious choices:

  1. OCL, which is already a version of first-order
     logic expressed in a notation that looks somewhat
     like typical O-O languages.

  2. Z, which is already an ISO standard designed for
     the formal specification of software.

  3. Common Logic, which is a proposed ISO standard for
     sharing information represented in various versions
     of logic.

These three choices are actually compatible.  The first
step would be to formalize all UML diagrams in terms of
OCL, and then to formalize Z in either Z or CL.  But
since Z is quite easy to translate to CL, it would be
possible to translate any formalization in Z to a
logically equivalent formalization in CL.

The result of these definitions would be to make OCL and
all of the UML diagrams into official CL dialects, which
could be automatically translated to other CL dialects of
equal or greater expressivity.

LO> I assume UML is being used because the actual developers
 > are more conversant with that modeling language, rather
 > than say an ontology language like OWL or Common Logic?
 > Unfortunately, I think that very soon UML models will need
 > to be converted to the more expressive semantic models,
 > i.e., real ontologies. Conceptual models only get you so far.
 > If it's a human interpreted picture you want, UML is fine.
 > Just not for much else, i.e., eventually machine-interpreted
 > models or models which can be machine-reasoned with.

EB> Normally, I would agree with Leo here.  When we are trying
 > to model domains of "real-world" information, we should start
 > with "true" semantic models, and not with engineering models
 > phrased in software design languages like UML....
 >
 > But ... a model of a metadata registry is, by definition, an
 > engineering model.  And I see no reason why we should not use
 > a software modeling language (UML) to capture an engineering
 > design.

There is no necessary conflict between these two points.  If UML
is defined as a family of CL dialects, then they would have the
same status with regard to CL as CLIF, CGIF, or any other CL
dialect.  Since RDF(S) and OWL are already defined in terms of
the CL semantics, anything stated in any of these languages
could be mapped to a common CL form and be processed by any
of the CL tools.

LO> Even if your goal is clarity for humans, logic is the best bet.

EB> That is both true and false.  The problem is to define the level
 > of abstraction at which you want to achieve "clarity".

Again, there is no conflict between these two positions.  If UML
is formally defined in terms of CL, then it would be reasonable
for software engineers to use any or all of the UML diagrams as
supplementary notations for an ontology, a formal specification,
or anything else for which logic is used.

John Sowa



More information about the CL mailing list