blob: 6baba624199622e643ab6ca192ca69d4d4161abf [file] [log] [blame]
<?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include($App->getProjectCommon()); # All on the same line to unclutter the user's desktop'
#*****************************************************************************
#
# template.php
#
# Author: Freddy Allilaire
# Date: 2005-12-07
#
# Description: Type your page comments here - these are not sent to the browser
#
#
#****************************************************************************
#
# Begin: page-specific settings. Change these.
$pageTitle = "AMW Use Case - Metamodel Annotation for Ontology Design";
$pageKeywords = "OWL, Ontology, Annotation, MOF, model weaving";
$pageAuthor = "Guillaume Hillairet";
# End: page-specific settings
#
# Paste your HTML content between the EOHTML markers!
$html = <<<EOHTML
<!-- Main part -->
<div id="midcolumn">
<h1><font color='#280882'>AMW Use Case - Metamodel Annotation for Ontology Design</font> </h1>
<a name="goals"></a> <img align="right" src="../../resources/amwLogoSmall.png" valign="top" style="padding-left: 10px;" alt="AMW Logo" />
<blockquote>
<ul>
<li><a href="#overview"><b>Overview</b></a></li>
<li><a href="#download"><b>Download and examples</b></a></li>
<!--<li><a href="#acknowledgement"><b>Acknowledgements</b></a></li>-->
<!--<li><a href="#reference"><b>References</b></a></li>-->
</ul>
</blockquote>
<hr class="clearer" />
<table>
<COLGROUP>
<COL width="2%">
<COL width="98%">
<tr>
<td>
</td>
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 <a href="mailto:g.hillairet@gmail.com">Guillaume Hillairet</a> from the
<a href="http://www.univ-lr.fr/labo/l3i/site_statique/Index.html">L3I</a> Lab in La Rochelle (France).
<p/>
<h4 STYLE="font-size: 10pt; padding: 0; border-bottom: 2px solid #49457C; background-position: top left; background-repeat; repeat-x;">
<a name="overview">Overview</a></h4>
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
<a href="http://wiki.eclipse.org/index.php/AMW#Core_weaving_metamodel">core weaving metamodel</a>. 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.
<p align="center">
<img src="img/Scenario.png"/>
<br /><br />
<b>Metamodel annotation for ontology design</b>
</p>
<h3>Ontology Annotation Metamodel</h3>
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.
<p align="center">
<img src="img/ExtraitOAM.png"/>
<br /><br />
<b>OAM Metamodel excerpt</b>
</p>
<h3>Model Validation</h3>
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.
<h3>Execution</h3>
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.
<p align="center">
<img src="img/SampleWeaver.png"/>
<br /><br />
<b>Annotate model by using AMW</b>
</p>
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.
<p align="center">
<img src="img/owloutput.png"/>
<br /><br />
<b>Resulting OWL Document</b>
</p>
<h4 STYLE="font-size: 10pt; padding: 0; border-bottom: 2px solid #49457C;
background-position: top left; background-repeat; repeat-x;">
<a name="download">Download and examples</a></h4>
<table>
<COLGROUP>
<COL width="25%">
<COL width="75%">
<tr>
<td align="center">
<a href="OAMUserGuide.pdf"><h3>A user guide</h3></a>
</td>
<td>
This is a user guide that helps to understand the principle of this use case and how to use the Ontology Annotation Metamodel.
<p/>
</td>
</tr>
<td align="center">
<a href="MOF_OAM2OWL.zip"><h3>Example</h3></a>
</td>
<td>
A complete example.
<p/>
</td>
</tr>
</table>
<h4 STYLE="font-size: 10pt; padding: 0; border-bottom: 2px solid #49457C;
background-position: top left; background-repeat; repeat-x;">
<a name="related">Related use cases</a></h4>
<table>
<COLGROUP>
<COL width="25%">
<COL width="68%">
<tr>
<td align="center">
<a href="http://www.eclipse.org/m2m/atl/usecases/ODMImplementation/"><h3>ODM Implementation</h3></a>
</td>
<td>
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.
</td>
</tr>
</table>
<p/>
</div><p/>
<div id="rightcolumn">
<div class="sideitem">
<h6>General Information</h6>
<ul>
<li style="list-style:none">April 2007</li>
<li style="list-style:none">By <a href="mailto://g.hillairet@gmail.com">Guillaume Hillairet</a> (L3I)</li>
</ul>
</div>
</div>
EOHTML;
# Generate the web page
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>