Skip to main content

AMW Use Case - Metamodel Annotation for Ontology Design

AMW Logo

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

Model Validation

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 model.


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.

Annotate model by using AMW

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.

Resulting OWL Document

Download and examples

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.

Related use cases

ODM Implementation

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.

General Information

Back to the top