| <?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' |
| |
| #***************************************************************************** |
| # |
| # AMW_Match_SF_doc.php |
| # |
| # Author: Marcos Didonet Del Fabro |
| # Date: 2005-07-24 |
| # |
| # Description: Type your page comments here - these are not sent to the browser |
| # |
| # |
| #**************************************************************************** |
| |
| # |
| # Begin: page-specific settings. Change these. |
| $pageTitle = "Executing matching transformations"; |
| $pageKeywords = ""; |
| $pageAuthor = "Marcos Didonet Del Fabro"; |
| |
| # Paste your HTML content between the EOHTML markers! |
| $html = <<<EOHTML |
| |
| <!-- Main part --> |
| <div id="midcolumn"> |
| <table width="100%"> |
| <tr> |
| <td width="50%"> |
| <h1>$pageTitle</h1> |
| </td> |
| </tr> |
| </table> |
| <p> |
| The matching transformations |
| take as input a weaving model, a left metamodel and a right metamodel. They produce a new |
| weaving model as output. |
| |
| The matching transformations are integrated in the AMW plug-in. They can be executed one by one |
| when right clicking on the weaving panel (the middle panel). The "Match" menu contains the set |
| of the matching transformations available (see below). This screenshot is part of the metamodel comparison |
| use case. |
| |
| <p align="center"> |
| <img src="../resources/matching_menus.png"/> |
| <br /><br /> |
| <b> |
| Matching transformations available in the AMW plug-in |
| </b> |
| </p> |
| |
| These matching transformations are developed using specific metamodel extensions. We present an overview below.<p/> |
| |
| <b>Link generation</b> |
| <ul class = "midlist"> |
| <li> |
| <i>Cartesian product</i>: creates a new link for every pair of elements for a left and right metamodels. |
| The current version creates links only between elements of the same type (e.g., EClass-EClass, EAttribute-EAttribute). |
| <br/>Metamodel extensions: mw_base_extension, mmw_match. |
| </li> |
| <li> |
| <i>Propagation model</i>: creates elements that enable to propagate similarity values between links. |
| The |
| propagation elements are used by the 'Similarity flooding' algorithm. |
| <br/>Metamodel extensions: mw_base_extension, mmw_match, mmw_propagation. |
| </li> |
| </ul> |
| |
| <b>Similarity assignment</b>: these matching transformations can be executed in any order. When executed one-by-one, |
| they have the same weight (this means that all are consider of same importance in the general process). |
| <ul class = "midlist"> |
| <li> |
| <i>Name equality</i>: assigns one (1) to the links between elements with the same name. |
| <br/>Metamodel dependencies: mw_base_extension, mmw_match. |
| </li> |
| <li> |
| <i>Name similarity</i>: applies string comparison methods to calculate the similarity between element |
| names. |
| <br/>Metamodel dependencies: mw_base_extension, mmw_match. |
| </li> |
| <li> |
| <i>Cardinality</i>: assigns 1 (one) to the links of elements with exactly the same cardinality. |
| <br/>Metamodel dependencies: mw_base_extension, mmw_match. |
| </li> |
| <li> |
| <i>Type and conformance</i>: assigns 1 (one) to links of elements with the same type and that |
| conform to the same meta-element. |
| <br/>Metamodel dependencies: mw_base_extension, mmw_match. |
| </li> |
| <li> |
| <i>Similarity flooding</i>: propagates the similarity between elements that |
| have containment relationships. For instance, if two attributes are connected by a weaving link and |
| their containing classes are also connected by a weaving link, the similarity of the attributes is |
| propagated (added) to the containing classes. |
| <br/>Metamodel dependencies: mw_base_extension, mmw_match, mmw_propagation. |
| </li> |
| </ul> |
| |
| <b>Link selection and rewriting</b> |
| <ul class = "midlist"> |
| <li> |
| <i>Threshold</i>: creates a new weaving model only with the links that have a similarity |
| value higher than a given threshold (e.g., 0.7). |
| <br/>Metamodel extensions: mw_base_extension, mmw_match. |
| </li> |
| <li> |
| <i>Normalize</i>: normalize the similarity values to 1 (one). This way it is possible to perform better |
| comparison between different methods. |
| <br/>Metamodel extensions: mw_base_extension, mmw_match. |
| </li> |
| <li> |
| <i>Link rewriting</i>: for every elements of the left metamodel, selects one link with |
| the highest similarity value. After that, the transformation rewrites the links following the containment relationships |
| between the elements (e.g., class and attribute containment) |
| <br/>Metamodel extensions: mw_base_extension, mmw_match. |
| </li> |
| <li> |
| <i>Link rewrite - non equivalence</i>: executed always after a 'link rewriting' transformation. This matching |
| transformation creates links of type 'NotFound', or 'NonEquivalent'. These links contain the elements of the |
| left and right metamodels that do not have any correspondence. Very useful to apply 'Diff' algorithms. |
| <br/>Metamodel extensions: mw_base_extension, mmw_match, mmw_compare. |
| </li> |
| </ul> |
| <p/> |
| |
| <b>Remark(s):</b><br/> |
| These matching transformations (source code and executables) are available in the |
| "org.eclipse.weaver.transformation" plug-in and in the |
| <a href="../../examples/#Matching transformation library">library of matching transformations</a>. <p/> |
| These transformations can be modified and new transformations can be easily added in the AMW plug-in. Instructions |
| about how to do it are available in the <a href="../matching/matching_develop.php">HowTo - developing new heuristics</a> section. |
| |
| |
| |
| </div> |
| |
| EOHTML; |
| |
| |
| # Generate the web page |
| $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html); |
| ?> |