GUIDE: UML syntax mapping

Included is a sketch of a OWL Lite to UML mapping.
Guus

-- 
A. Th. Schreiber, SWI, University of Amsterdam
http://www.swi.psy.uva.nl/usr/Schreiber/home.html
UML presentation syntax for OWL Lite
Guus Schreiber
Sep 26, 2002

0. Introduction

This note contains a textual description of a possible mapping from
OWL Lite to UML. In a follow-up version, example diagrams will be
added. For the moment, consult the previous version [1] to get a feeling
for the UML look-and-feel of OWL Lite. 

Compared to the previous version, more use is being made of
stereotypes. This is related to the planned efforts to define a UML
profile for OWL. Such profiles make heavy use of the stereotype
mechanism. 

The problems in defining this mapping lay mainly in defining global
characteristics of properties, as UML has a context-specific
interpretation of attributes and associations. 

Although this mapping may look complicated, it should be noted that in
practice most the major part of an ontology can be represented with
natural UML equivalents. 


1. RDF constructs

rdf:Class
  UML class <<rdf:class>

rdf:Property
  For object properties: 
    UML association <<rdf:property>> with navigability arrow on object side
    Optional: upgrade to association class
  For datatype properties:
    Define as UML attribute of the domain class
    Note: if you want to use subPropertyOf, you'll have to "promote"
    the attribute to an association (class)

  NOTE: strong preference  to model all properties with 
  global features (domain, range, functional, ...) as a UML
  association class!  

rdfs:subClassOf
  UML generalization <<rdf:subClassOf>> between classes involved

rdfs:subPropertyOf
  UML generalization <<rdf:subPropertyOf>> between properties involved
  In this case there should be a strong preference to model the
  property as a UML association class (makes the diagram easier to
  understand) 

rdfs:domain
  add <<rdf:domain>> to domain side of the association

rdfs:range
  add <<rdf:domain>> to domain side of the association

owl:Individual
  UML object notation


2. OWL Lite Equality and Inequality Synopsis

owl:sameClassAs
owl:samePropertyAs
owl:sameIndividualAs
owl:differentIndividualFrom
  - create constraint with the corresponding equality/inequality,
    e.g. {sameClassAs} 
  - link this constraint with dependency relation to the elements
    involved
 

3. OWL Lite Property Characteristics Synopsis

owl:inverseOf
  Draw dependency link between the two associations involved with
  stereotype <<owl:inverseOf>>

owl:TransitiveProperty
owl:SymmetricProperty
owl:FunctionalProperty (unique)
owl:InverseFunctionalProperty (unambiguous)
  - add constraint with corresponding name to the UML attribute c.q
    association involved. 
  - alternative 1: stereotype or class-scoped features of property as
    UML association class
  - alternative 2: link property with dependency link to an explicit
    meta property of the corresponding type (see previous version)

owl:allValuesFrom
  This is the default UML interpretation; one could add the
  corresponding stereotype to the range argument of the association
  for clarity

owl:someValuesFrom
  Add stereotype <<owl:someValuesFrom>> to the range side of the
  association. 


4. Restricted cardinality

owl:minCardinality
owl:maxCardinality
owl:cardinality
   For object properties: use standard UML association notation: 
   0..1, 1..1, 0..*,etc. 
   For datatype properties:  attribute cardinality notation, e.g. 
   "phoneNumber[0..*]: xsd:string"


5. OWL Lite Datatypes

See previous version. For non-basic types, the UML convention for
modelling datatypes as classes <<datatype>> can be used.


6 OWL Lite Header Information Synopsis

owl:imports
  - Draw ontologies as packages with <<owl:ontology>> stereotype
  - Show import through dependency link with the standard UML
    stereotype <<import>> 
  
Dublin Core Metadata
versionInfo
   Include UML tagged values for this in the package diagram
   These can have the obvious stereotypes

[1] http://www.swi.psy.uva.nl/usr/Schreiber/docs/owl-uml/owl-uml.html

Received on Thursday, 26 September 2002 10:42:06 UTC