This use case presents a Model Driven solution for annotating models in order to obtain ontologies. Ontology design can
be seen as a difficult task for people who are not aware of ontology concepts. By annotating already made models
we expected to reduce the time for producing ontologies. This use case is part of a work for a complete ontology development
environment based on Model Driven Engineering made by Guillaume Hillairet from the
L3I Lab in La Rochelle (France).
Ontology development is usually made with dedicated tools like Protégé or with API like Jena. Another method is to use UML tools with
dedicated UML Profiles like the Ontology UML Profile (OUP) defined in the Ontology Definition Metamodel (ODM) specification. The last
method is to define a transformation between the UML metamodel and an ontology metamodel like the one for OWL.
In this use case we propose a different way for ontology design. This use case uses model annotations and model
transformations to produce ontologies conforming to the OWL language. The benefit of this method is due to the
fact that the annotated models and the annotations are two models clearly distinct; each one conforms to their own metamodel.
Thanks to AMW we can define a weaving method to associate an annotation to a model element and then use ATL to write
transformation rules that takes into account these annotations.
We define an annotation metamodel called Ontology Annotation Metamodel (OAM) that extends the
core weaving metamodel. This
metamodel lets us to annotate MOF models to manage the generation of OWL ontologies. The annotation and transformation process
is shown in figure below.
Metamodel annotation for ontology design
Ontology Annotation Metamodel
The Ontology Annotation Metamodel contains concepts from OWL like Class, Object Property, Datatype Property, Restriction, etc.
These concepts are defined as annotations. An excerpt of the OAM metamodel is provided below. We can see that an AnnotationModel
contains several annotations and one referenced model. This latter is a MOF model in this use case but it can be any kind of models.
An Annotation is related to a model by a reference called annotatedModelElement. These concepts are the basis for defining
an annotation metamodel.
OAM Metamodel excerpt
The creation of an annotation model can be designed incorrectly, causing errors in the execution of the transformation. To avoid this we define
some constraints that must be respected by an OAM model. These constraints are implemented as OCL constraints. The validation is made by an ATL
transformation on an OAM Model that checks if the model respect all these constraints. This method checks the correctness of a model.
For example we can verify if an OWL Class annotation refers to a MOF!EClass, an ObjectProperty annotation to a MOF!EReference
or if the ontology namespace is well formed. This transformation produces a Problem model containing errors found in the annotation
The annotation model is created with the AMW wizard and it is associated to a MOF model. The annotations are applied with the
assistance of the AMW interface by drag and drop of elements from the left model to the annotation model on the right, as we can
see in the screenshot below.
The ontology model is produced by an ATL transformation that takes as input the MOF model and the annotation model.
This ontology model conforms to the OWL metamodel. An OWL/XML extractor transforms this model into an OWL document
according to the RDF/XML syntax.
Annotate model by using AMW
Resulting OWL Document
A user guide
This is a user guide that helps to understand the principle of this use case and how to use the Ontology Annotation Metamodel.
A complete example.
This use case presents an implemented solution to the OMG Ontology Definition Metamodel (ODM) specification.
The present solution supports the UML 2.0 metamodel and the OWL metamodel as defined in ODM.