Re: dia2owl -- convert UML diagram from dia to OWL using XSLT

Dan Connolly wrote:
> Guus and everybody,
> 
> A bit of implementation experience and review
> of...
> 
>   A UML Presentation Syntax for OWL Lite
>   Author: Guus Schreiber
>   Created:: April 3, 2002
>   Last update: April 19, 2002 
> http://www.swi.psy.uva.nl/usr/Schreiber/docs/owl-uml/owl-uml.html
> 
> How did you make those diagrams, by the way?
> Can your tool make XMI? Would you please make
> it available?

I constructed the diagrams with VISIO, which has no XMI export 
functionality. In fact, when going through a list of UML tools
(http://www.objectsbydesign.com/tools/modeling_tools.html) it seems 
difficult to find a tool that completely supports UML diagrams AND has 
XMI export functionality.

> Anyway...
> 
> I got this idea that I could reproduce them
> using Dia, an open source diagramming tool that
> uses XML for its storage format and has UML support.
>   http://www.lysator.liu.se/~alla/dia/

DIA is a nice tool, but unfortunately it only supports a base subset of 
UML class diagrmas.

> Then I'd convert from their XML format to
> ours, using XSLT.
> 
> It worked great for the first example,
> the class with two subclasses:
> 
> XML created with Dia:
>   http://www.w3.org/2002/03owlt/umlp/clsTwoSub.xml
> dia2owl XSLT transformation:
>   http://www.w3.org/2002/03owlt/umlp/dia2owl.xsl
> OWL/RDF output:
>   http://www.w3.org/2002/03owlt/umlp/clsTwoSub.rdf
> 
> (details:
> http://www.w3.org/2002/03owlt/umlp/Makefile )
> 
> Viewed thru RDF/n3 glasses, the output
> looks like this:
> 
>     :O0     a s:Class;
>          s:label "Animal" .
>     
>     :O1     a s:Class;
>          s:label "Male";
>          s:subClassOf :O0 .
>     
>     :O2     a s:Class;
>          s:label "Female";
>          s:subClassOf :O0 .
> 
> OK, so far, so good.
> 
> But I didn't get any interesting results for the
> 2nd example: dia doesn't seem to support
> multiplicity/cardinality on attributes, and as you
> noted, the notation you used for the enumeration
> was a little goofy.

Well, it is correct UML, but just not used that often.


> 
> The third example was pretty straightforward:
>   http://www.w3.org/2002/03owlt/umlp/objProp.xml
> =>
>   http://www.w3.org/2002/03owlt/umlp/objProp.rdf
> 
> i.e.
>     :O0     a s:Class;
>          s:label "Animal" .
>     
>     :O1     a s:Class;
>          s:label "Animal";
>          owl:hasAtLeastOne :O3 .
>     
>     :O3     a r:Property;
>          s:domain :O1;
>          s:label "HasParent";
>          s:range :O0 .
> 
> By the way... do you mean to have two classes
> with the same "Animal" label, or are UML
> class label/names unambiguous? (1/2 ;-)
> i.e. should my conversion conclude that
> classes with the same name are identical?

I should have used one class symbol here, or alternatively, link the 
class to a  class reference (a box with just the class name). BTW UML 
tools typically make a unique name assumption.

> Dia doesn't grok "UML association class"es, so
> I couldn't do the subProperty example.
> 
> I got tired and quit there.

Nice result. Would be nice if there was an open source UML tool with 
more than baseline class-diagram support + XMI export.

> The examples
> under "Disjointness and identity" look straightforward.
> 
> I dunno about defined classes... how do you expect
> that diagram would convert to OWL?
> 
> Here's a possible interpretation:
> 
> 	:Man rdfs:subClassOf :Male, :Person.
> 
> 	[ ont:unionOf (:Male :Person) ] rdfs:subClassOf :Man.
> 
> or, perhaps equivalently,
> 
> 	:Man owl:intersectionOf (:Male :Person).

I had furst intended the UML presentation syntax to cover only OWL Lite, 
  so this was in fact a bit outside my charter. To resolve this 
properly, OWL-specific stereo-types will have to be defined. Then one 
can map these stereotypes in the way you indicate.


> Has anybody else played around with mechanical conversion
> of OWL and UML?

I haven't, but hope to find some time to do that..

> Sergey Melnik did some RDF/UML/XMI stuff a while ago...
> http://www-db.stanford.edu/~melnik/rdf/uml/

This is relevant, but it is the other direction ...

> I should probably be using XMI rather than Dia's XML
> format, but I don't have any handy tools that generate
> XMI.
> 
> 
> Another relevant bit of work is:
> 
>   Objects by Design: Transforming XMI to HTML
>   Copyright © 1999-2001 Objects by Design, Inc.
>   http://www.objectsbydesign.com/projects/xmi_to_html.html
> 

Yes, there site is very good, see also their tool criteria checklist.

Guus
-- 
A. Th. Schreiber, SWI, University of Amsterdam,
Home page: http://www.swi.psy.uva.nl/usr/Schreiber/home.html

Received on Wednesday, 17 July 2002 09:08:32 UTC