blob: 3e8821a6a84102ddc07a2c80da111b24ecfa2745 [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'
#*****************************************************************************
#
# 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);
?>