| <?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 - Merge of geographical data (GML) with election statistics into SVG"; |
| $pageKeywords = "merge, model weaving, model transformations, amw, elections, svg, gml"; |
| $pageAuthor = "Marcos Didonet Del Fabro"; |
| |
| # End: page-specific settings |
| # |
| |
| # Paste your HTML content between the EOHTML markers! |
| $html = <<<EOHTML |
| |
| <!-- Main part --> |
| <div id="midcolumn"> |
| <h1> $pageTitle </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="#related"><b>Related use cases</b></a></li> |
| </ul> |
| </blockquote> |
| |
| <hr class="clearer" /> |
| |
| <table> |
| <COLGROUP> |
| <COL width="2%"> |
| <COL width="98%"> |
| <tr> |
| <td></td> |
| This use case presents a weaving model used to define a merge operation of a metamodel with geographical information |
| (an extension of GML) and a metamodel with statistical data into a graphical representation (SVG). |
| |
| <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> |
| |
| <p align="justify"> |
| Consider the two metamodels <i>Gs</i> and <i>Es</i> from the figure below. <i>Gs</i> contains generic address information plus geographical |
| coordinates. The coordinates are created based on <a href="http://www.opengis.net/gml/">GML</a> (Geographical Markup Language). |
| GML is a standard defined by W3C to represent geographical information. <i>Es</i> contains statistical information about the results of |
| elections, such as the number of voters, absentees, and percentage by candidate. |
| <p/> |
| The goal is to merge these two metamodels into a graphical representation, to able to visualize the election results for every precinct, |
| as shown below. The format choosen is <a href="http://www.w3.org/Graphics/SVG/">SVG</a> (Scalable Vector Graphics). |
| |
| <p align="center"> |
| <img src="../resources/merge_svg.png"/> |
| <br /><br /> |
| <b>Merge overview</b> |
| </p> |
| |
| This scenario has a particularity: the two input models and the output model conform to different metamodels. |
| This constraint does not enable to directly apply generic algorithms that assume that all models conform to the same metamodel. |
| Thus, we specify the merge operations through declarative weaving models. We illustrate below a weaving model between <i>Gs</i>, <i>Es</i> |
| and a target SVG metamodel. The selected link indicates that the attributes <i>address</i> and <i>city</i> should be concatenated |
| into a <i>location</i> attribute in the SVG metamodel. The SVG metamodel is extended to save the statistical data as well. |
| |
| <p align="center"> |
| <img src="../resources/merge_svg_amw.png"/> |
| <br/><br/> |
| <b>Weaving model loaded between GML, Election metamodel and SVG</b> |
| </p> |
| |
| The third panel is added without any modification on the plug-in code. This is possible because the UI adapts to support several |
| woven models, according to the weaving metamodel extensions. We show below the metamodel extension that supports three metamodels. |
| It has three different references (leftModel, rightModel, targetModel). Each reference corresponds to a different metamodel, and thus |
| a different panel is created. |
| |
| <p align="center"> |
| <img src="../resources/merge_km3.png"/> |
| <br /><br /> |
| <b>Weaving metamodel extension with three woven panels</b> |
| </p> |
| |
| It is possible to have different implementations for each panel. |
| The panels are configured in the third page of the wizard (see below). The user must do the following steps: |
| <ul> |
| <li>select the reference (e.g., leftModel) |
| </li> |
| <li> |
| set up the panel implementation (AMW provides a couple of standard implementations based on threes). |
| </li> |
| <li> |
| set up the <i>WModelRef</i>. This element specifies the identification mechanism used in the woven models, for instance XMI IDs or |
| XPointer. |
| </li> |
| <li> |
| select the woven metamodels and/or models. |
| </li> |
| </ul> |
| |
| <p align="center"> |
| <img src="../resources/merge_several_UI.png"/> |
| <br/><br/> |
| <b>Configuration of the three metamodels</b> |
| </p> |
| </p> |
| |
| <br> |
| |
| <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="../../examples/MergeGML_Elections/MergeGML_Elections.zip"><h3>Example</h3></a> |
| </td> |
| <td> |
| This example contains a weaving model that specifies the merge of the |
| election metamodel and GML. |
| </td> |
| </tr> |
| <td align="center"> |
| <a href="../../examples/MergeGML_Elections/MergeGML_Elections_doc.php"><h3>Example HowTo</h3></a> |
| </td> |
| <td> |
| This document contains step-by-step instructions explaining how to execute the example. |
| <p/> |
| </td> |
| </tr> |
| </table> |
| <p/> |
| |
| <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="../matching/"><h3>Matching</h3></a> |
| </td> |
| <td> |
| Matching is the generic process that creates weaving models. |
| This use case gives a general overview of the matching process, and how it is handled by AMW and ATL. |
| </td> |
| </tr> |
| <tr> |
| <td align="center"> |
| <a href="../interoperability/"><h3>Tool interoperability</h3></a> |
| </td> |
| <td> |
| This use case shows how weaving models are used to capture the semantic heterogeneities between different tools' |
| metamodels. We use two well known bug tracking tools, Mantis and Bugzilla. |
| </td> |
| </tr> |
| |
| <tr> |
| <td align="center"> |
| <a href="../compare/"><h3>Metamodel comparison</h3></a> |
| </td> |
| <td> |
| This use case demonstrates how weaving models are used to compare different |
| metamodels and to produce executable model transformations (we use two metamodels used to define embedded |
| software in the avionics industry). |
| </td> |
| </tr> |
| |
| <tr> |
| <td align="center"> |
| <a href="../modelgen/"><h3>Bridge between SQL and KM3</h3></a> |
| </td> |
| <td> |
| This use case shows how weaving models and model transformations are used to translate SQL-DDL (Data Definition Language) into KM3 |
| (a modeling technical space) and to translate KM3 into SQL. |
| </td> |
| </tr> |
| <tr> |
| <td align="center"> |
| <a href="../RDBMSXML/"><h3>Relational DB to XML</h3></a> |
| </td> |
| <td> |
| This use case shows how weaving models can be used to perform the data mapping between relational DBs and XML. |
| </td> |
| </tr> |
| <tr> |
| <td align="center"> |
| <a href="../umlprofiles/"><h3>Bridge between DSL and UML Profiles</h3></a> |
| </td> |
| <td> |
| This use case shows how AMW and ATL are used to produce a bridge between Domain Specific Languages (DSLs) and UML profiles. |
| </td> |
| </tr> |
| |
| |
| </table> |
| |
| |
| </div><p/> |
| |
| |
| EOHTML; |
| |
| |
| # Generate the web page |
| $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html); |
| ?> |