blob: ea19b0ea494f6388945e2a6d92b7f983023e81a0 [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 = "ATL Use Case - Production of UML class diagrams from syntactical models of english text or SBVR models";
$pageKeywords = "UML, SBVR, syntactical analysis, parsing";
$pageAuthor = "Mathias Kleiner";
# End: page-specific settings
#
# Paste your HTML content between the EOHTML markers!
$html = <<<EOHTML
<!-- Main part -->
<div id="midcolumn">
<h1>$pageTitle</h1>
<img align="right" src="../../images/atlLogoSmall.png" valign="top" style="padding-left: 10px;" alt="ATL Logo" />
<blockquote>
<ul>
<li><a href="#keywords"><b>Keywords</b></a></li>
<li><a href="#overview"><b>Overview</b></a></li>
<li><a href="#relatedUseCases"><b>Related Use Cases</b></a></li>
<li><a href="#download"><b>Download</b></a></li>
</ul>
</blockquote>
<hr class="clearer" />
<div>
<p align="justify">
This work presents a case study of obtaining a UML class diagram from a syntactical analysis of a text using SBVR as an intermediate layer. We show how it is possible, with the help of model engineering, to realize two transformations:
from a syntactical model into a SBVR model, and from a SBVR model into a UML model.
This work has been done in collaboration between the <a href="http://www.emn.fr/x-info/atlanmod">ATLANMOD team</a>
in Nantes and the <a href="http://www.ilog.fr/">ILOG company</a>.
</p>
<h4 STYLE="font-size: 10pt; padding: 0; border-bottom: 2px solid #49457C; background-position: top left; background-repeat; repeat-x;"><a name="keywords"></a>Keywords</h4>
<table width="100%">
<COLGROUP>
<COL width="2%" />
<COL width="98%" />
</COLGROUP>
<tr>
<td></td>
<td>
<p align="justify">
Syntactical analysis, parsing,
<a href="http://www.omg.org/spec/SBVR/1.0/">SBVR</a>,
<a href="http://www.omg.org/technology/documents/formal/uml.htm">UML class diagrams</a>.
</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="overview"></a>Overview</h4>
<table width="100%">
<COLGROUP>
<COL width="2%" />
<COL width="98%" />
</COLGROUP>
<tr>
<td></td>
<td>
<p align="justify">
In this usecase, we present a scenario for producing conceptual schemas in UML class diagrams out of a syntactically analyzed english text.
The usecase chains two transformations and uses three metamodels (two of them from existing OMG's specifications).
The first transformation produces SBVR models from Syntax models, where Syntax is an originally proposed metamodel for capturing syntax, grammatical dependencies and semantics of english sentences.
The second transformation produces UML models from SBVR models.
Each transformation can be used separately or chained depending on the scenario.
These transformations have been successfully used in an application that first generates a syntax model from plain english text using constraint-based parsing techniques.
The automatic syntactical analysis is however outside the scope of this usecase. The Syntax models can be either created manually or obtained using any language parsing technique.
The packaged Eclipse project contains the three metamodels in KM3 and ECORE format, the two transformations in ATL format, and example models in XMI format.
</p>
<p align="justify">
In the following, we present an overview of the three metamodels, as well as a scenario example through terminal models corresponding to the sentence "Each company sells at least one product". This example is one of the scenarios included in the packaged Eclipse project.
</p>
<p align="justify">
Figure 1 presents an excerpt of the Syntax metamodel. The main class is "Cat", which represents a syntactical category. Categories can be either terminal (i.e with an associated word), or non-terminal (i.e containing other categories, a group of words).
The main non-terminal categories are "SentenceCat" (sentences), "NPCat" (noun phrases), "VPCat" (verb phrases).
The main terminal categories are "NCat" (nouns), "VCat" (verbs), "DCat" (determiners).
Categories are related by grammatical dependencies, such as "subject" from verbs to noun phrases.
Categories may also express an SBVR semantic through the "expresses" optional association.
</p>
<p align="center">
<a href="Syntax.png"><img src="Syntax.png" width="600" /></a>
<br /><br />
<b>Figure 1: Excerpt of the Syntax metamodel</b>
</p>
<p align="justify">
Figure 2 presents a fragment of a Syntax model for the sentence "Each company sells at least one product".
</p>
<p align="center">
<a href="RunningExample-Syntax.png"><img src="RunningExample-Syntax.png" width="600" /></a>
<br /><br />
<b>Figure 2: Fragment of a Syntax model for our running example</b>
</p>
<p align="justify">
Figures 3 and 4 present an excerpt of the SBVR metamodel, mainly the taxonomy of concepts "Representation", "Meaning" and "LogicalFormulation".
</p>
<p align="center">
<a href="SBVR-Meaning.PNG"><img src="SBVR-Meaning.PNG" width="600" /></a>
<br /><br />
<b>Figure 3: Excerpt of the SBVR metamodel: meanings</b>
</p>
<p align="center">
<a href="SBVR-LogicalFormulation.png"><img src="SBVR-LogicalFormulation.png" width="600" /></a>
<br /><br />
<b>Figure 4: Excerpt of the SBVR metamodel: logical formulations</b>
</p>
<p align="justify">
Figure 5 presents a fragment of the SBVR model obtained with the transformation "Syntax2SBVR" from the previously shown Syntax model.
</p>
<p align="center">
<a href="RunningExample-SBVR.png"><img src="RunningExample-SBVR.png" width="600" /></a>
<br /><br />
<b>Figure 5: Fragment of a SBVR model for our running example</b>
</p>
<p align="justify">
Figure 6 presents a fragment of the UML model obtained with the transformation "SBVR2UML" from the previously shown SBVR model.
</p>
<p align="center">
<a href="RunningExample-UML.png"><img src="RunningExample-UML.png" width="600" /></a>
<br /><br />
<b>Figure 6: Fragment of a UML model for our running example</b>
</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="relatedUseCases"></a>Related Use Cases
</h4>
<table>
<COLGROUP>
<COL width="2%" />
<COL width="98%" />
</COLGROUP>
<tr>
<td></td>
<td>
<p align="justify">
None at the current time.
</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="download">Download</a>
</h4>
<table width="100%">
<COLGROUP>
<COL width="25%">
<COL width="75%">
</COLGROUP>
<tr>
<td align="center"><a href="http://www.eclipse.org/atl/atlTransformations/#Syntax2SBVR2UML"><h3>Packaged Eclipse project</h3></a></td>
<td>The packaged Eclipse project, available in the ATL transformation zoo (with source files), contains the three metamodels in KM3 and ECORE format, the two ATL transformations, and a set of model samples as XMI files.</td>
</tr>
</table>
</div>
</div>
<div id="rightcolumn">
<div class="sideitem">
<h6>General Information</h6>
<ul>
<li style="list-style:none">April 2009</li>
<li style="list-style:none">
By <a href="mailto:mathias.kleiner@inria.fr">Mathias Kleiner</a> (INRIA)
</li>
<li style="list-style:none"><br />For any information, please contact the author directly.</li>
</ul>
</div>
</div>
EOHTML;
# Generate the web page
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>