| <?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); |
| ?> |