[XML-SIG] XMI question

Michael McLay mclay@nist.gov
Wed, 29 Dec 1999 19:41:08 -0500 (EST)


Thanks for the reply.  It was most helpful.

uche.ogbuji@fourthought.com writes:
 > > It would be helpful to here about the pros and cons of various object
 > > modeling notations.  The DTD notation is not sufficient when modeling
 > > engineering data that is to be encoded using XML.  This maillist has
 > > had references to XML Schema, DTDs, adn RDF, but the focus of the
 > > discussion hasn't made it clear which is the right choice for
 > > representing engineering design data.
 > 
 > This is an on-going discussion across industries and communities, and
 > any discussion here would merely point to more cogent discussion in
 > the worlds of the OMG, W3C, Dublin Core, ISO, etc.  The candidates
 > include as diverse entrants as RDF, UML (of which XMI is just a
 > serialization), ISO Basic Semantic Repository, and groves.  Note that
 > there are various differences in the core domain of all these
 > examples, and that is part of the debate.  The world has discovered
 > intelligent data and the fruit is falling in bunches.
 > 
 > > The lead candidate for me is the XML Metadata Interchange (XMI)
 > > format.
 > 
 > I would quite disagree.  First of all, I think that for most purposes,
 > UxF, a David against the XMI Goliath, is a better (certainly simpler)
 > serialization of the UML meta-model for several purposes.  But even if
 > you are merely advocating UML, I would claim that even though I'm an
 > experienced OO developer and a strong advocate of OO over other
 > methodologies for _application_ design, I think it is woefully
 > inadequate for generalized data modeling.

The perception of these technologies vary with personal experience.
That is why I asked the question.  I was interested in hearing a
Python community discussion of the topic because I need some sense of
what is important for Python.  Why it is important is also of keen
interest.  I hadn't heard of UxF before this.  I took a quick look and
I agree with you on the subject of serialization.  It looks like it
would be much easier to extract the relevant data from the UxF
representation.  Do any UML tools output UxF?  I suspect it should be
pretty easy to add it as an output format from ObjectDomain.

 > True, some of its shortcomings help present brain explosion (for
 > instance, even RDF avoids N-ary relationships) but it often imposes
 > unnatural constraints on data, such as those encoded in traditional OO
 > sub-typing.  The solution is to go one step lower.  OO builds a model
 > specialized for app development on top of such more fundamental models
 > as conceptual graphs and RDF.  For general data modeling, I suggest
 > these latter models, since they are more general and powerful than the
 > OO sub-set.

The RDF capabilities may be well suited to document representation,
but the mapping of data from a CAD or CAM tool to the RDF notation
doesn't look very appealing.  I agree with the comment about unnatural 
constraints.

 > > It provides an XML based notation for spelling "integer" and
 > > "attribute".  My concern with making this choice is that I haven't
 > > seen any discussion of XMI on this list.  I would expect XMI to be a
 > > good candidate for use in the Python XML toolkit considering the
 > > pedigree of XMI?
 > 
 > Not a fraction of the pedigree of RDF, which builds on work of the
 > W3C, IETF, ISO, Dublin Core, etc.

IETF and W3C are important to web publishing, but but OMG and the UML
communities are important to other sectors of technology.  The
representation of engineering data is one example.

 > > The OMG is developing the XMI for exchanging model
 > > information between UML modeling tools.  IBM has a tool[1] for moving
 > > data from Rational Rose to XMI and back.  There web site is a bit out
 > > of date but they have an active mailing list.
 > 
 > I will admit that RDF visualization tools need to progress a bit.  The
 > one at the W3C absolutely bites.  It would be a neat coup for Python
 > if we could create the first usable RDF visualization system.  Any
 > graphic layout wizards out there?

It's not the visualization tools that are troublesome.  I'm concerned
that the focus of the technology may not be well suited to encoding
the manufacturing information that is required to manufacture a
printed circuit board or printed circuit assembly.  I'm still
investigating the RDF documents so maybe I haven't found what I'm
looking for.
 > 
 > FourThought actually uses Argo/UML and thus XMI, but we have a
 > preliminary style-sheet to convert it to UxF, which we'll use as a
 > primary format.  Again, this is purely for app-development.  For data
 > and meta-data, it won't do.

Cool, is the style-sheet available?  What do you mean by it is purely
for app-development?  

My primarily interest is in defining a product data file format that
would be read in by an application like a CAM tool.  Are you saying
UxF "won't do" for this type of problem?  It looks like UxF contains
exactly the data I need.

My application's import/export format consists of several hundred
entities that are heavily intertwined.  The model is completed and I
have a Python program that can read in the meta-data from the current
BNF-like notation.  There is also an Express model of the same
entities.  The Express model was manually created using an Express-G
tool.  Recreating the model in Express was a painful task and
post-processing tools for Express are primitive at best.  My hope is
to improve the reuse of the model information by dumping the current
meta-data out of the Python tool into XMI or UxF.  The model would
then be read into a tool like Argo/UML or ObjectDomain.  Once the
conversion is complted future changes would be maintained using UML
and the old BNF-like notation would be abandoned. Using UML tools
should make it much easier to create a tool chain that transforms the
model into software for manipulating the manufacturing design data.

Time to head for the Y2K bunker.  Assuming society doesn't melt down
I'll be back on Monday.