Creation of a library of matching transformations.
diff --git a/examples/amwExamples.xml b/examples/amwExamples.xml
index 2794b30..75be964 100644
--- a/examples/amwExamples.xml
+++ b/examples/amwExamples.xml
@@ -1,7 +1,104 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<amwScenarios>
<category>
- <name>Matching transformations (Semi-automatic generation of weaving models)</name>
+ <name>Matching transformation library</name>
+ <description>
+ Matching transformations are used to automatically create weaving models.
+ The matching transformations below implement heuristics to create links between model elements
+ or to refine a given similarity estimation.
+ These transformations take as input weaving models that conform to extensions of the core weaving metamodel.
+ The two extensions used are "Simple match extension" and "Propagation model". They are available in the
+ <a href="http://127.0.0.1/gmt/amw/zoo/">AMW Zoo </a>.
+ </description>
+ <amwExample>
+ <shortName>Creation of weaving models</shortName>
+ <name>Creation of weaving models</name>
+ <sourceLink>library/CreateWeaving.atl</sourceLink>
+ <description>
+ This matching transformation is used to create a weaving model with links between Class x Class
+ and Structural Features x Structural Features (a restricted cartesian product).
+ </description>
+ <pubDate>19/10/2006</pubDate>
+ </amwExample>
+
+ <amwExample>
+ <shortName>Similarity Flooding</shortName>
+ <name>Similarity Flooding</name>
+ <sourceLink>libray/SF.atl</sourceLink>
+ <description>
+ This transformation is an adapted MDE implementation the Similarity Flooding algorithm
+ (created by <a href="http://research.microsoft.com/~melnik/">Sergey Melnik</a>).
+ </description>
+ <pubDate>19/10/2006</pubDate>
+ </amwExample>
+
+ <amwExample>
+ <shortName>Cardinality</shortName>
+ <name>Cardinality</name>
+ <docLink></docLink>
+ <sourceLink>library/Assign_Cardinality_Sim.atl</sourceLink>
+ <description>
+ This transformation increases the similarity value of links between elements with the same cardinality (lower or higher bounds).
+ </description>
+ <pubDate>19/10/2006</pubDate>
+ </amwExample>
+
+ <amwExample>
+ <shortName>Name similarity</shortName>
+ <name>Name similarity</name>
+ <docLink></docLink>
+ <sourceLink>library/Assign_NameSim.atl</sourceLink>
+ <description>
+ This transformation increases the similarity value of links between elements with the same name.
+ </description>
+ <pubDate>19/10/2006</pubDate>
+ </amwExample>
+
+ <amwExample>
+ <shortName>Link rewriting</shortName>
+ <name>Link rewriting</name>
+ <docLink></docLink>
+ <sourceLink>library/Link_rewriting.atl</sourceLink>
+ <description>
+ This transformation analyses a weaving model with previously calculated similarity values and selects
+ the links with the best values. <br/>
+ It also transforms simple equality links into type-based links, e.g., AttributeEqual, ReferenceEqual.
+ </description>
+ <pubDate>19/10/2006</pubDate>
+ </amwExample>
+
+ <amwExample>
+ <shortName>Conformance and type</shortName>
+ <name>Conformance and type</name>
+ <docLink></docLink>
+ <sourceLink>library/Assign_Type_Conf_Sim.atl</sourceLink>
+ <description>
+ This transformation increases the similarity value of links between elements with the same type.
+ </description>
+ <pubDate>19/10/2006</pubDate>
+ </amwExample>
+
+ <amwExample>
+ <shortName>Model info</shortName>
+ <name>Model info</name>
+ <docLink></docLink>
+ <sourceLink>library/Assign_Model_Sim.atl</sourceLink>
+ <description>
+ This matching transformation compares the values of the model elements that conform to the
+ woven metamodels. If the model elements have the same value, it increases the similary values of
+ the links between the metamodel elements.
+ </description>
+ <pubDate>19/10/2006</pubDate>
+ </amwExample>
+
+ </category>
+
+ <category>
+ <name>Semi-automatic generation of weaving models</name>
+ <description>
+ The examples below are complete application scenarios that combine different matching transformations
+ to produce weaving models for different purposes.
+ </description>
<amwExample>
<shortName>Sys_of_sys</shortName>
diff --git a/examples/amwExamples_script.php b/examples/amwExamples_script.php
index 3fee208..f6e8da0 100644
--- a/examples/amwExamples_script.php
+++ b/examples/amwExamples_script.php
@@ -27,7 +27,8 @@
foreach ($amwScenarios->category as $category) {
$html1 .= "<li>";
- $html1 .= "<b>$category->name</b>: ";
+ $html1 .= "<b>$category->name</b> <br/>";
+ $html1 .= "$category->description";
$html1 .= "</li>";
$html1 .= "<ul class=\"midlist\">";
diff --git a/examples/amwExamples_script_xml.php b/examples/amwExamples_script_xml.php
index e5d25ec..4e83b19 100644
--- a/examples/amwExamples_script_xml.php
+++ b/examples/amwExamples_script_xml.php
@@ -74,6 +74,10 @@
return new SimplePropertyHandler($this->category, "name");
}
+ function & get_description_handler($attributes) {
+ return new ComplexPropertyHandler($this->category, "description");
+ }
+
function & get_amwExample_handler($attributes) {
return new AmwExampleHandler();
}
@@ -128,6 +132,7 @@
class Category {
var $name;
+ var $description;
var $amwExample;
function Category() {
diff --git a/examples/library/Assign_Cardinality_Sim.atl b/examples/library/Assign_Cardinality_Sim.atl
new file mode 100644
index 0000000..2c44285
--- /dev/null
+++ b/examples/library/Assign_Cardinality_Sim.atl
@@ -0,0 +1,115 @@
+module Assign_Cardinality_Sim; -- Module Template
+create OUT : AMW from IN : AMW, left : MOF, right : MOF;
+
+
+helper def: methodName : String = 'Cardinality';
+
+
+helper context MOF!EModelElement def: similarityUpper(right : MOF!EModelElement) : Real =
+ if self.oclIsKindOf(MOF!ETypedElement) and right.oclIsKindOf(MOF!ETypedElement) then
+ if self.upperBound = right.upperBound then
+ 1
+ else
+ 0
+ endif
+ else
+ 0
+ endif;
+
+
+helper context MOF!EModelElement def: similarityLower(right : MOF!EModelElement) : Real =
+ if self.oclIsKindOf(MOF!ETypedElement) and right.oclIsKindOf(MOF!ETypedElement) then
+ if self.lowerBound = right.lowerBound then
+ 1
+ else
+ 0
+ endif
+ else
+ 0
+ endif;
+
+rule UpdateSim {
+ from
+ mmw : AMW!Equivalent
+ using {
+ left : MOF!EModelElement = MOF!EModelElement.getInstanceById('left',mmw.left.element.ref);
+ right : MOF!EModelElement = MOF!EModelElement.getInstanceById('right',mmw.right.element.ref);
+ }
+ to
+ alink : AMW!Equivalent (
+ name <- mmw.name,
+ model <- mmw.model,
+ left <- mmw.left,
+ right <- mmw.right,
+ similarity <- mmw.similarity +
+ left.similarityLower(right) +
+ left.similarityUpper(right)
+ )
+}
+
+------------------------------copied rules---------------------------------------------------
+
+rule leftElement {
+ from
+ mmw : AMW!LeftElement
+ to
+ out : AMW!LeftElement (
+ name <- mmw.name,
+ element <- mmw.element
+ )
+}
+
+rule rightElement {
+ from
+ mmw : AMW!RightElement
+ to
+ out : AMW!RightElement (
+ name <- mmw.name,
+ element <- mmw.element
+ )
+}
+
+rule ElementRefs {
+ from
+ mmw : AMW!ElementRef
+ to
+ out : AMW!ElementRef (
+ name <- mmw.name,
+ ref <- mmw.ref,
+ modelRef <- mmw.modelRef
+ )
+}
+
+rule matchmodel {
+ from
+ mmw: AMW!MatchModel
+ to
+ model : AMW!MatchModel (
+ name <- mmw.name,
+ leftM <- mmw.leftM,
+ rightM <- mmw.rightM,
+ methods <- mmw.methods->union(Sequence{method})
+ ),
+ method : AMW!Method (
+ name <- thisModule.methodName
+ )
+}
+
+rule method {
+ from
+ mmw : AMW!Method
+ to
+ method : AMW!Method (
+ name <- mmw.name
+ )
+}
+
+rule modelref {
+ from
+ mmw : AMW!ModelRef
+ to
+ out : AMW!ModelRef (
+ name <- mmw.name,
+ ref <- mmw.ref
+ )
+}
diff --git a/examples/library/Assign_Model_Sim.atl b/examples/library/Assign_Model_Sim.atl
new file mode 100644
index 0000000..546ca45
--- /dev/null
+++ b/examples/library/Assign_Model_Sim.atl
@@ -0,0 +1,109 @@
+module Assign_Model_Sim; -- Module Template
+create OUT : AMW from IN : AMW, left : MOF, right : MOF, rightModel: right, leftModel: left;
+
+helper def: methodName : String = 'Model values';
+
+helper context MOF!EModelElement def: similarityData(right : MOF!EModelElement) : Real =
+ if self.oclIsTypeOf(MOF!EAttribute) and right.oclIsTypeOf(MOF!EAttribute) then
+ let value : Real =
+
+ self.eContainingClass.allInstances()->iterate(instClass1; acc1 : Real = 0.0 |
+ acc1 + right.eContainingClass.allInstances()->iterate( instClass2; acc2 : Real = 0.0 |
+ if instClass1.refGetValue(self.name) = instClass2.refGetValue(right.name) then
+ acc2 + 1
+ else
+ acc2 + 0
+ endif
+ )
+ )
+ in
+ value
+ else
+ 0
+ endif;
+
+
+rule UpdateSim {
+ from
+ mmw : AMW!Equivalent
+ using {
+ left : MOF!EModelElement = MOF!EModelElement.getInstanceById('left',mmw.left.element.ref);
+ right : MOF!EModelElement = MOF!EModelElement.getInstanceById('right',mmw.right.element.ref);
+ }
+ to
+ alink : AMW!Equivalent (
+ name <- mmw.name,
+ model <- mmw.model,
+ left <- mmw.left,
+ right <- mmw.right,
+ similarity <- mmw.similarity +
+ left.similarityData(right)
+ )
+}
+
+------------------------------copied rules---------------------------------------------------
+
+rule leftElement {
+ from
+ mmw : AMW!LeftElement
+ to
+ out : AMW!LeftElement (
+ name <- mmw.name,
+ element <- mmw.element
+ )
+}
+
+rule rightElement {
+ from
+ mmw : AMW!RightElement
+ to
+ out : AMW!RightElement (
+ name <- mmw.name,
+ element <- mmw.element
+ )
+}
+
+rule ElementRefs {
+ from
+ mmw : AMW!ElementRef
+ to
+ out : AMW!ElementRef (
+ name <- mmw.name,
+ ref <- mmw.ref,
+ modelRef <- mmw.modelRef
+ )
+}
+
+rule matchmodel {
+ from
+ mmw: AMW!MatchModel
+ to
+ model : AMW!MatchModel (
+ name <- mmw.name,
+ leftM <- mmw.leftM,
+ rightM <- mmw.rightM,
+ methods <- mmw.methods->union(Sequence{method})
+ ),
+ method : AMW!Method (
+ name <- thisModule.methodName
+ )
+}
+
+rule method {
+ from
+ mmw : AMW!Method
+ to
+ method : AMW!Method (
+ name <- mmw.name
+ )
+}
+
+rule modelref {
+ from
+ mmw : AMW!ModelRef
+ to
+ out : AMW!ModelRef (
+ name <- mmw.name,
+ ref <- mmw.ref
+ )
+}
diff --git a/examples/library/Assign_NameSim.atl b/examples/library/Assign_NameSim.atl
new file mode 100644
index 0000000..3666bcc
--- /dev/null
+++ b/examples/library/Assign_NameSim.atl
@@ -0,0 +1,102 @@
+module Assign_NameSim; -- Module Template
+create OUT : AMW from IN : AMW, left : MOF, right : MOF;
+
+
+helper context MOF!EModelElement def: matches(other : MOF!EModelElement) : Boolean =
+ let left : String = self.name.toLower() in
+ let right : String = other.name.toLower() in
+ left = right;
+
+
+helper context MOF!EModelElement def: similarityName(right : MOF!EModelElement) : Real =
+ if self.matches(right) then
+ 1
+ else
+ self.name.getSimilarity(right.name)
+ endif;
+
+
+rule UpdateSim {
+ from
+ mmw : AMW!Equivalent
+ using {
+ left : MOF!EModelElement = MOF!EModelElement.getInstanceById('left',mmw.left.element.ref);
+ right : MOF!EModelElement = MOF!EModelElement.getInstanceById('right',mmw.right.element.ref);
+ }
+ to
+ alink : AMW!Equivalent (
+ name <- mmw.name,
+ model <- mmw.model,
+ left <- mmw.left,
+ right <- mmw.right,
+ similarity <- mmw.similarity +
+ left.similarityName(right)
+ )
+}
+
+------------------------------copied rules---------------------------------------------------
+
+rule leftElement {
+ from
+ mmw : AMW!LeftElement
+ to
+ out : AMW!LeftElement (
+ name <- mmw.name,
+ element <- mmw.element
+ )
+}
+
+rule rightElement {
+ from
+ mmw : AMW!RightElement
+ to
+ out : AMW!RightElement (
+ name <- mmw.name,
+ element <- mmw.element
+ )
+}
+
+rule ElementRefs {
+ from
+ mmw : AMW!ElementRef
+ to
+ out : AMW!ElementRef (
+ name <- mmw.name,
+ ref <- mmw.ref,
+ modelRef <- mmw.modelRef
+ )
+}
+
+rule matchmodel {
+ from
+ mmw: AMW!MatchModel
+ to
+ model : AMW!MatchModel (
+ name <- mmw.name,
+ leftM <- mmw.leftM,
+ rightM <- mmw.rightM,
+ methods <- mmw.methods->union(Sequence{method})
+ ),
+ method : AMW!Method (
+ name <- 'string comparison - Levenshtein distance'
+ )
+}
+
+rule method {
+ from
+ mmw : AMW!Method
+ to
+ method : AMW!Method (
+ name <- mmw.name
+ )
+}
+
+rule modelref {
+ from
+ mmw : AMW!ModelRef
+ to
+ out : AMW!ModelRef (
+ name <- mmw.name,
+ ref <- mmw.ref
+ )
+}
diff --git a/examples/library/Assign_Type_Conf_Sim.atl b/examples/library/Assign_Type_Conf_Sim.atl
new file mode 100644
index 0000000..7c7c672
--- /dev/null
+++ b/examples/library/Assign_Type_Conf_Sim.atl
@@ -0,0 +1,123 @@
+module Assign_Type_Conf_Sim; -- Module Template
+create OUT : AMW from IN : AMW, left : MOF, right : MOF;
+
+
+helper def: methodName : String = 'Cardinality and containment';
+
+helper context MOF!EModelElement def: similarityType(right : MOF!EModelElement) : Real =
+
+ if self.oclIsKindOf(MOF!ETypedElement) and right.oclIsKindOf(MOF!ETypedElement) then
+ if self.eType.name = right.eType.name then
+ 1
+ else
+ 0
+ endif
+ else
+ 0
+ endif;
+
+helper context MOF!EModelElement def: similarityContainer(right : MOF!EModelElement) : Real =
+ if self.oclIsTypeOf(MOF!EReference) and right.oclIsTypeOf(MOF!EReference) then
+ if self.containment and right.containment then
+ 1
+ else
+ 0
+ endif
+ else
+ 0
+ endif;
+
+
+helper context MOF!EModelElement def: similarityConformance(right : MOF!EModelElement) : Real =
+ if self.oclType() = right.oclType() then
+ 1
+ else
+ 0
+ endif;
+
+rule UpdateSim {
+ from
+ mmw : AMW!Equivalent
+ using {
+ left : MOF!EModelElement = MOF!EModelElement.getInstanceById('left',mmw.left.element.ref);
+ right : MOF!EModelElement = MOF!EModelElement.getInstanceById('right',mmw.right.element.ref);
+ }
+ to
+ alink : AMW!Equivalent (
+ name <- mmw.name,
+ model <- mmw.model,
+ left <- mmw.left,
+ right <- mmw.right,
+ similarity <- mmw.similarity +
+ left.similarityConformance(right) +
+ left.similarityType(right) +
+ left.similarityContainer(right)
+ )
+}
+
+------------------------------copied rules---------------------------------------------------
+
+rule leftElement {
+ from
+ mmw : AMW!LeftElement
+ to
+ out : AMW!LeftElement (
+ name <- mmw.name,
+ element <- mmw.element
+ )
+}
+
+rule rightElement {
+ from
+ mmw : AMW!RightElement
+ to
+ out : AMW!RightElement (
+ name <- mmw.name,
+ element <- mmw.element
+ )
+}
+
+rule ElementRefs {
+ from
+ mmw : AMW!ElementRef
+ to
+ out : AMW!ElementRef (
+ name <- mmw.name,
+ ref <- mmw.ref,
+ modelRef <- mmw.modelRef
+ )
+}
+
+rule matchmodel {
+ from
+ mmw: AMW!MatchModel
+ to
+ model : AMW!MatchModel (
+ name <- mmw.name,
+ leftM <- mmw.leftM,
+ rightM <- mmw.rightM,
+ methods <- mmw.methods->union(Sequence{method})
+ ),
+ method : AMW!Method (
+ name <- thisModule.methodName
+ )
+}
+
+rule method {
+ from
+ mmw : AMW!Method
+ to
+ method : AMW!Method (
+ name <- mmw.name
+ )
+}
+
+rule modelref {
+ from
+ mmw : AMW!ModelRef
+ to
+ out : AMW!ModelRef (
+ name <- mmw.name,
+ ref <- mmw.ref
+ )
+}
diff --git a/examples/library/CreateWeaving.atl b/examples/library/CreateWeaving.atl
new file mode 100644
index 0000000..94359a0
--- /dev/null
+++ b/examples/library/CreateWeaving.atl
@@ -0,0 +1,145 @@
+module CreateWeaving; -- Module Template
+
+
+create OUT : AMW from left : MOF, right : MOF;
+
+
+---------------------------------------------------------------------------------------------------
+---------------------- generic helpers used for auxiliar tasks-----------------------------------------------------------------------------
+
+helper def: methodName : String = 'Cartesian product';
+
+helper def: aModel : AMW!MatchModel = OclUndefined;
+
+helper def: leftModel : String = '0_/Match_by_operation/examples/ex1_in_out/inschema.ecore';
+helper def: rightModel : String = '1_/Match_by_operation/examples/ex1_in_out/outschema.ecore';
+
+helper context MOF!EModelElement def : isLeft() : Boolean =
+ MOF!EModelElement.allInstancesFrom('left')->exists(e | e = self);
+
+helper context MOF!EModelElement def : isRight() : Boolean =
+ MOF!EModelElement.allInstancesFrom('right')->exists(e | e = self);
+
+helper context MOF!EStructuralFeature def : isLeftsf() : Boolean =
+ self.eContainingClass.isLeft();
+
+helper context MOF!EStructuralFeature def : isRightsf() : Boolean =
+ self.eContainingClass.isRight();
+
+helper context MOF!EClass def : mySide() : String =
+ if self.isLeft() then
+ 'left'
+ else
+ if self.isRight() then
+ 'right'
+ else
+ 'undefined side'
+ endif
+ endif;
+
+
+
+helper context MOF!EStructuralFeature def : mySidesf() : String =
+ if self.isLeftsf() then
+ 'left'
+ else
+ if self.isRightsf() then
+ 'right'
+ else
+ 'undefined side'
+ endif
+ endif;
+
+helper context MOF!EModelElement def : setModelRef : String =
+ if self.isLeft() then
+ thisModule.aModel.leftM
+ else
+ if self.isRight() then
+ thisModule.aModel.rightM
+ else
+ OclUndefined
+ endif
+ endif;
+
+
+
+---------------------- end of generic helpers used for auxiliar tasks-----------------------------------------------------------------------------
+---------------------------------------------------------------------------------------------------
+
+entrypoint rule CreateInitialElements() {
+ to
+ model : AMW!MatchModel (
+ name <- 'WeavingModel',
+ leftM <- lefta,
+ rightM <- righta,
+ methods <- Sequence {method}
+ ),
+ lefta : AMW!ModelRef (
+ name <- 'leftM',
+ ref <- thisModule.leftModel
+ ),
+ righta : AMW!ModelRef (
+ name <- 'rightM',
+ ref <- thisModule.rightModel
+ ),
+ method : AMW!Method (
+ name <- thisModule.methodName
+ )
+ do {
+ thisModule.aModel <- model;
+ }
+}
+
+
+rule ElementRefs {
+ from
+ element : MOF!EModelElement
+ to
+ out : AMW!ElementRef (
+ name <- element.name,
+ ref <- element.__xmiID__,
+ modelRef <- element.setModelRef
+ )
+}
+
+--
+abstract rule PairWiseModelElement {
+ from
+ left : MOF!EModelElement, right : MOF!EModelElement (
+ left.isLeft() and right.isRight()
+ )
+ to
+ alink : AMW!Equivalent (
+ name <- left.name + '_' + right.name,
+ model <- thisModule.aModel,
+ left <- leftE,
+ right <- rightE,
+ similarity <- 0
+
+ ),
+ leftE : AMW!LeftElement (
+ name <- left.name,
+ element <- left
+ ),
+ rightE : AMW!RightElement (
+ name <- right.name,
+ element <- right
+ )
+
+}
+
+rule PairWiseClass extends PairWiseModelElement {
+ from
+ left : MOF!EClass, right : MOF!EClass (
+ left.isLeft() and right.isRight()
+ )
+}
+
+rule PairWiseSF extends PairWiseModelElement {
+ from
+ left : MOF!EStructuralFeature, right : MOF!EStructuralFeature (
+ left.isLeft() and right.isRight()
+ )
+}
+
+
diff --git a/examples/library/Link_rewriting.atl b/examples/library/Link_rewriting.atl
new file mode 100644
index 0000000..3e8163c
--- /dev/null
+++ b/examples/library/Link_rewriting.atl
@@ -0,0 +1,221 @@
+module Link_rewriting;
+create OUT : AMW from LxR: AMW, left_model : MOF, right_model : MOF;
+
+
+helper def: amwModel : AMW!MatchModel = OclUndefined;
+
+helper def: listRef : Sequence(AMW!Element) = Sequence{};
+
+---------------------------------------------------------------------------------------------------
+---------------------- generic helpers used for auxiliar tasks-----------------------------------------------------------------------------
+
+helper context MOF!EClass def : isLeft() : Boolean =
+ MOF!EClass.allInstancesFrom('left_model')->exists(e | e = self);
+
+helper context MOF!EModelElement def : isRight() : Boolean =
+ if self.oclIsTypeOf(MOF!EClass) then
+ MOF!EClass.allInstancesFrom('right_model')->exists(e | e = self)
+ else
+ if self.oclIsKindOf(MOF!EStructuralFeature) then
+ self.isRightsf()
+ else
+ false
+ endif
+ endif;
+
+helper context MOF!EStructuralFeature def : isLeftsf() : Boolean =
+ self.eContainingClass.isLeft();
+
+helper context MOF!EStructuralFeature def : isRightsf() : Boolean =
+ self.eContainingClass.isRight();
+
+helper def : maxSim : Real = 0.0;
+
+helper def : targetRef : AMW!Element = OclUndefined;
+
+
+------------------------------------------------------------------------------------------------
+------------------------------------------------------------------------------------------------
+
+
+helper def : getMax(current : AMW!Equivalent, list : Sequence(AMW!Equivalent), max : AMW!Equivalent) : AMW!Equivalent =
+ if current.oclIsUndefined() then
+ max
+ else
+ thisModule.getMax(list->first(), list->subSequence(2, list->size()),
+ if max.oclIsUndefined() then
+ current
+ else
+ if current.similarity > max.similarity then
+ current
+ else
+ max
+ endif
+ endif
+ )
+ endif;
+
+rule matchmodel {
+ from
+ mmw: AMW!MatchModel
+ to
+ model : AMW!MatchModel (
+ name <- mmw.name,
+ leftM <- mmw.leftM,
+ rightM <- mmw.rightM,
+ methods <- mmw.methods->union(Sequence{method})
+ ),
+ method : AMW!Method (
+ name <- 'Link rewriting'
+ )
+ do {
+ thisModule.amwModel <- mmw;
+ }
+
+}
+
+rule method {
+ from
+ mmw : AMW!Method
+ to
+ method : AMW!Method (
+ name <- mmw.name
+ )
+}
+
+rule modelref {
+ from
+ mmw : AMW!ModelRef
+ to
+ out : AMW!ModelRef (
+ name <- mmw.name,
+ ref <- mmw.ref
+ )
+}
+
+rule ElementRefs {
+ from
+ mmw : AMW!ElementRef
+ to
+ out : AMW!ElementRef (
+ name <- mmw.name,
+ ref <- mmw.ref,
+ modelRef <- mmw.modelRef
+ )
+}
+
+
+rule classElementRef {
+ from
+ element : MOF!EClass (
+ element.isLeft()
+ )
+ using {
+ links : Sequence(AMW!Equivalent) = AMW!Equivalent.allInstancesFrom('LxR')->select (e | e.left.element.ref = element.__xmiID__);
+ link : AMW!Equivalent = thisModule.getMax( links->first(), links->subSequence(2, links->size()), OclUndefined );
+ targetEl : OclAny =
+ AMW!RightElement.allInstances()->select(e | e.element.ref = link.right.element.ref)->first().element;
+ }
+ to
+ left : AMW!Element (
+ name <- element.name,
+ element <- --out
+ AMW!LeftElement.allInstances()->select(e | e.element.ref = element.__xmiID__)->first().element
+ --AMW!MatchModel.allInstances()->first().leftM.allInstances()->select
+ ),
+ right : AMW!Element (
+ element <- targetEl,
+ name <- targetEl.name
+ ),
+ wlink : AMW!ElementEqual (
+ left <- left,
+ right <- right,
+ model <- thisModule.amwModel,
+ similarity <- link.similarity
+ )
+}
+
+rule AttributeElementRef {
+ from
+ element : MOF!EAttribute (element.isLeftsf())
+ using {
+ links : Sequence(AMW!Equivalent) = AMW!Equivalent.allInstancesFrom('LxR')->
+ select (e | e.left.element.ref = element.__xmiID__);
+ link : AMW!Equivalent = thisModule.getMax(
+ links->first(), links->subSequence(2, links->size()), OclUndefined );
+ targetEl : OclAny =
+ AMW!RightElement.allInstances()->select(e | e.element.ref = link.right.element.ref)->first().element;
+ }
+ to
+ source : AMW!Element (
+ name <- element.name,
+ element <-
+ AMW!LeftElement.allInstances()->select(e | e.element.ref = element.__xmiID__)->first().element
+ --out
+ ),
+ target : AMW!Element (
+ element <- targetEl,
+ name <- targetEl.name
+ ),
+ alink : AMW!AttributeEqual (
+ left <- source,
+ right <- target,
+ parent <- if thisModule.resolveTemp(element.eContainingClass,'wlink').oclIsUndefined() then
+ OclUndefined
+ else
+ thisModule.resolveTemp(element.eContainingClass,'wlink')
+ endif,
+ similarity <- link.similarity
+ )
+}
+
+rule ReferenceElementRef {
+ from
+ element : MOF!EReference (element.isLeftsf())
+ using {
+ links : Sequence(AMW!Equivalent) = AMW!Equivalent.allInstancesFrom('LxR')->
+ select (e | e.left.element.ref = element.__xmiID__);
+ link : AMW!Equivalent = thisModule.getMax( links->first(), links->subSequence(2, links->size()), OclUndefined );
+ targetEl : OclAny =
+ AMW!RightElement.allInstances()->select(e | e.element.ref = link.right.element.ref)->first().element;
+ }
+ to
+ source : AMW!Element (
+ name <- element.name,
+ element <- AMW!LeftElement.allInstances()->select(e | e.element.ref = element.__xmiID__)->first().element
+ --out
+ ),
+ target : AMW!Element (
+ element <- targetEl,
+ name <- targetEl.name
+ ),
+ alink : AMW!ReferenceEqual (
+ left <- source,
+ right <- target,
+ parent <- thisModule.resolveTemp(element.eContainingClass,'wlink'),
+ similarity <- link.similarity
+ )
+}
+
+endpoint rule NormalizeSimilarity() {
+ using {
+ max : Real = 0;
+ curr : Real = 0;
+ list : Sequence (AMW!Equal) = Sequence{};
+ first : OclAny = OclUndefined;
+ }
+ do {
+ for(e in AMW!Equal.allInstancesFrom('OUT')) {
+ if(e.similarity > max) {
+ max <- e.similarity;
+ }
+ }
+ if(max > 0) {
+ for(e in AMW!Equal.allInstancesFrom('OUT')) {
+ e.similarity <- e.similarity / max;
+ }
+ }
+ }
+}
+
+
diff --git a/examples/library/SF.atl b/examples/library/SF.atl
new file mode 100644
index 0000000..245f68d
--- /dev/null
+++ b/examples/library/SF.atl
@@ -0,0 +1,162 @@
+module SF;
+create OUT : AMW from IN: AMW, left : MOF, right : MOF;
+
+
+helper def: amwModel : AMW!MatchModel = OclUndefined;
+
+helper def: listRef : Sequence(AMW!Element) = Sequence{};
+
+helper def: methodName : String = 'Similarity flooding';
+
+
+---------------------------------------------------------------------------------------------------
+---------------------- generic helpers used for auxiliar tasks-----------------------------------------------------------------------------
+
+helper context MOF!EModelElement def : isLeftME() : Boolean =
+ MOF!EModelElement.allInstancesFrom('left')->exists(e | e = self);
+
+helper context MOF!EClass def : isLeft() : Boolean =
+ MOF!EClass.allInstancesFrom('left')->exists(e | e = self);
+
+helper context MOF!EModelElement def : isRight() : Boolean =
+ if self.oclIsTypeOf(MOF!EClass) then
+ MOF!EClass.allInstancesFrom('right')->exists(e | e = self)
+ else
+ if self.oclIsKindOf(MOF!EStructuralFeature) then
+ self.isRightsf()
+ else
+ false
+ endif
+ endif;
+
+helper context MOF!EStructuralFeature def : isLeftsf() : Boolean =
+ self.eContainingClass.isLeft();
+
+helper context MOF!EStructuralFeature def : isRightsf() : Boolean =
+ self.eContainingClass.isRight();
+
+helper def : maxSim : Real = 0.0;
+
+helper def : targetRef : AMW!Element = OclUndefined;
+
+helper context AMW!WElementRef def : getInstance (model : String): MOF!EModelElement =
+ MOF!EModelElement.getInstanceById(model, self.ref);
+
+
+----------------------------------------------------------------------------------------
+------------------------------copied rules---------------------------------------------------
+
+rule leftElement {
+ from
+ mmw : AMW!LeftElement
+ to
+ out : AMW!LeftElement (
+ name <- mmw.name,
+ element <- mmw.element
+ )
+}
+
+rule rightElement {
+ from
+ mmw : AMW!RightElement
+ to
+ out : AMW!RightElement (
+ name <- mmw.name,
+ element <- mmw.element
+ )
+}
+
+rule ElementRefs {
+ from
+ mmw : AMW!ElementRef
+ to
+ out : AMW!ElementRef (
+ name <- mmw.name,
+ ref <- mmw.ref,
+ modelRef <- mmw.modelRef
+ )
+}
+
+rule matchmodel {
+ from
+ mmw: AMW!MatchModel
+ to
+ model : AMW!MatchModel (
+ name <- mmw.name,
+ leftM <- mmw.leftM,
+ rightM <- mmw.rightM,
+ methods <- mmw.methods->union(Sequence{method})
+ ),
+ method : AMW!Method (
+ name <- thisModule.methodName
+ )
+}
+
+rule method {
+ from
+ mmw : AMW!Method
+ to
+ method : AMW!Method (
+ name <- mmw.name
+ )
+}
+
+rule modelref {
+ from
+ mmw : AMW!ModelRef
+ to
+ out : AMW!ModelRef (
+ name <- mmw.name,
+ ref <- mmw.ref
+ )
+}
+
+
+rule Edge {
+ from
+ mmw : AMW!PropagationEdge
+ to
+ edge : AMW!PropagationEdge (
+ name <- mmw.name,
+ model <- mmw.model,
+ incomingLink <- mmw.incomingLink,
+ outgoingLink <- mmw.outgoingLink,
+ propagation <- mmw.propagation
+ )
+}
+
+--------------------------------end copied rules-------------------------------------
+----------------------------------------------------------------------------------------
+----------------------------------------------------------------------------------------
+
+helper def: aTuple : TupleType(value : Real, count : Integer) = Tuple {value = 0, count = 0};
+
+
+rule PropagationRule {
+ from
+ mmw : AMW!Equivalent
+ to
+ alink : AMW!Equivalent (
+ name <- mmw.name,
+ model <- mmw.model,
+ left <- mmw.left,
+ right <- mmw.right
+ )
+ do {
+ -- all the propagation of neighbors nodes
+ thisModule.aTuple <- AMW!PropagationEdge.allInstancesFrom('IN')->
+ select ( e | Set { e.incomingLink.left, e.incomingLink.right} =
+ Set {mmw.left, mmw.right} )->
+ iterate (e1; acc : TupleType(value : Real, count : Integer) = Tuple {value = 0, count = 0} |
+ Tuple {
+ value = acc.value + (e1.outgoingLink.similarity * e1.propagation),
+ count = acc.count + 1
+ }
+ );
+ if (thisModule.aTuple.count = 0 ) {
+ alink.similarity <- mmw.similarity;
+ }else {
+ alink.similarity <- (mmw.similarity + thisModule.aTuple.value / thisModule.aTuple.count);
+ }
+ }
+}
diff --git a/examples/match_results/ex1_account_owner/inschema.km3 b/examples/match_results/ex1_account_owner/inschema.km3
new file mode 100644
index 0000000..78ec7e7
--- /dev/null
+++ b/examples/match_results/ex1_account_owner/inschema.km3
@@ -0,0 +1,30 @@
+package Inschema {
+
+ class Root {
+ reference owners[*] container : AccountOwner;
+ }
+
+ class AccountOwner {
+ attribute name : String;
+ reference address container : Address;
+ attribute birthdate : String;
+ attribute taxexempt : String;
+ }
+
+ class Address {
+ attribute city : String;
+ attribute state : Integer;
+ attribute street : String;
+ attribute zip : String;
+ attribute number : Integer;
+ }
+}
+
+package PrimitiveTypes {
+
+ datatype Integer;
+
+ datatype String;
+
+ datatype Boolean;
+}
diff --git a/examples/match_results/ex1_account_owner/mw_final.amw.html b/examples/match_results/ex1_account_owner/mw_final.amw.html
new file mode 100644
index 0000000..00ecde0
--- /dev/null
+++ b/examples/match_results/ex1_account_owner/mw_final.amw.html
@@ -0,0 +1,111 @@
+<?xml version = '1.0' encoding = 'ISO-8859-1' ?>
+<HTML>
+ <HEAD>
+ <TITLE>Weaving model with similarity values</TITLE>
+ </HEAD>
+ <BODY>
+ <H1>Weaving model with similarity values</H1>
+ <H3>Left (meta)model : 0_/Match_by_operation/examples/ex1_in_out/inschema.ecore</H3>
+ <H3>Right (meta)model : 1_/Match_by_operation/examples/ex1_in_out/outschema.ecore</H3>
+ <TABLE border = '1'>
+ <TR>
+ <TH>Matching transformations </TH>
+ </TR>
+ <TR>
+ <TD>Cartesian product</TD>
+ </TR>
+ <TR>
+ <TD>string comparison - Levenshtein distance</TD>
+ </TR>
+ <TR>
+ <TD>Link rewriting - left best and nesting</TD>
+ </TR>
+ </TABLE>
+ <TABLE border = '1'>
+ <TR>
+ <TH>Link type</TH>
+ <TH>Left</TH>
+ <TH>Right</TH>
+ <TH>Similarity</TH>
+ </TR>
+ <TR>
+ <TD>AttributeEqual</TD>
+ <TD>Address : state</TD>
+ <TD>Address : state</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>AttributeEqual</TD>
+ <TD>Address : city</TD>
+ <TD>Address : city</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>AttributeEqual</TD>
+ <TD>Address : street</TD>
+ <TD>Address : street</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>ElementEqual</TD>
+ <TD>Address</TD>
+ <TD>Address</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>AttributeEqual</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>AttributeEqual</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>ElementEqual</TD>
+ <TD>Root</TD>
+ <TD>Root</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>AttributeEqual</TD>
+ <TD>Address : number</TD>
+ <TD>Address : number</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>ReferenceEqual</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : number</TD>
+ <TD>0.9444445371627808</TD>
+ </TR>
+ <TR>
+ <TD>ReferenceEqual</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>AttributeEqual</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>ElementEqual</TD>
+ <TD>AccountOwner</TD>
+ <TD>AccountOwner</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>AttributeEqual</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : city</TD>
+ <TD>0.9166666865348816</TD>
+ </TR>
+ </TABLE>
+ </BODY>
+</HTML>
diff --git a/examples/match_results/ex1_account_owner/mw_match.amw.html b/examples/match_results/ex1_account_owner/mw_match.amw.html
new file mode 100644
index 0000000..57c31da
--- /dev/null
+++ b/examples/match_results/ex1_account_owner/mw_match.amw.html
@@ -0,0 +1,681 @@
+<?xml version = '1.0' encoding = 'ISO-8859-1' ?>
+<HTML>
+ <HEAD>
+ <TITLE>Weaving model with similarity values</TITLE>
+ </HEAD>
+ <BODY>
+ <H1>Weaving model with similarity values</H1>
+ <H3>Left (meta)model : 0_/Match_by_operation/examples/ex1_in_out/inschema.ecore</H3>
+ <H3>Right (meta)model : 1_/Match_by_operation/examples/ex1_in_out/outschema.ecore</H3>
+ <TABLE border = '1'>
+ <TR>
+ <TH>Matching transformations </TH>
+ </TR>
+ <TR>
+ <TD>Cartesian product</TD>
+ </TR>
+ </TABLE>
+ <TABLE border = '1'>
+ <TR>
+ <TH>Link type</TH>
+ <TH>Left</TH>
+ <TH>Right</TH>
+ <TH>Similarity</TH>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : state</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : state</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : city</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : state</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : state</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : street</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : city</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : street</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner</TD>
+ <TD>Root</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : city</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : number</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : street</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : number</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root</TD>
+ <TD>AccountOwner</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address</TD>
+ <TD>AccountOwner</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : number</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : street</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : city</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : state</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : number</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : city</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : number</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : city</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : street</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : street</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : number</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : state</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : city</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : state</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : city</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root</TD>
+ <TD>Address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : number</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : state</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner</TD>
+ <TD>Address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root</TD>
+ <TD>Root</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : street</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : street</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : city</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : number</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner</TD>
+ <TD>AccountOwner</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : city</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : state</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : number</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : street</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address</TD>
+ <TD>Root</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : number</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : state</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address</TD>
+ <TD>Address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : street</TD>
+ <TD>0.0</TD>
+ </TR>
+ </TABLE>
+ </BODY>
+</HTML>
diff --git a/examples/match_results/ex1_account_owner/mw_match_SF.amw.html b/examples/match_results/ex1_account_owner/mw_match_SF.amw.html
new file mode 100644
index 0000000..7906d7e
--- /dev/null
+++ b/examples/match_results/ex1_account_owner/mw_match_SF.amw.html
@@ -0,0 +1,690 @@
+<?xml version = '1.0' encoding = 'ISO-8859-1' ?>
+<HTML>
+ <HEAD>
+ <TITLE>Weaving model with similarity values</TITLE>
+ </HEAD>
+ <BODY>
+ <H1>Weaving model with similarity values</H1>
+ <H3>Left (meta)model : 0_/Match_by_operation/examples/ex1_in_out/inschema.ecore</H3>
+ <H3>Right (meta)model : 1_/Match_by_operation/examples/ex1_in_out/outschema.ecore</H3>
+ <TABLE border = '1'>
+ <TR>
+ <TH>Matching transformations </TH>
+ </TR>
+ <TR>
+ <TD>Cartesian product</TD>
+ </TR>
+ <TR>
+ <TD>string comparison - Levenshtein distance</TD>
+ </TR>
+ <TR>
+ <TD>Propagation weaving model</TD>
+ </TR>
+ <TR>
+ <TD>Similarity flooding</TD>
+ </TR>
+ </TABLE>
+ <TABLE border = '1'>
+ <TR>
+ <TH>Link type</TH>
+ <TH>Left</TH>
+ <TH>Right</TH>
+ <TH>Similarity</TH>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : street</TD>
+ <TD>0.929333233833313</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.6574956946635913</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.8095238208770752</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.9193081498146057</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Root : elements</TD>
+ <TD>0.4444444477558136</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.8095238208770752</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.6018478512763977</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : street</TD>
+ <TD>1.04</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : city</TD>
+ <TD>0.9566666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.5069444477558136</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.8240701198577881</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.5555555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : state</TD>
+ <TD>0.7066666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : number</TD>
+ <TD>0.6018478512763977</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.7066666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Root : elements</TD>
+ <TD>0.6805555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>1.0271958910899777</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Root : elements</TD>
+ <TD>0.8055555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Root : elements</TD>
+ <TD>0.7777777910232544</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : city</TD>
+ <TD>1.04</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.7777777910232544</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Root : elements</TD>
+ <TD>0.6805555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : number</TD>
+ <TD>0.9444445371627808</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Root : elements</TD>
+ <TD>0.6805555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : number</TD>
+ <TD>0.8240700602531433</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : street</TD>
+ <TD>0.6321052984501208</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.5555555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : number</TD>
+ <TD>0.7186508062459218</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.8468136787414551</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.5555555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : street</TD>
+ <TD>0.8733333730697632</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.6984127163887024</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Root : elements</TD>
+ <TD>0.8055555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.5555555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.8240700602531433</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.8656200491580672</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.8518478512763977</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.9629589557647705</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.8240700602531433</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Root : elements</TD>
+ <TD>1.9166666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.7129588961601258</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.5069444477558136</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : state</TD>
+ <TD>0.6321052984501208</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>1.0625</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.49073671698570254</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address</TD>
+ <TD>Root</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Root : elements</TD>
+ <TD>1.091374322772026</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : number</TD>
+ <TD>0.8095238208770752</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.7066666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : city</TD>
+ <TD>0.49073671698570254</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.8333333730697632</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.694444477558136</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.8402777910232544</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : city</TD>
+ <TD>1.0177778387069703</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.7385999170986182</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.7186508062459218</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : number</TD>
+ <TD>0.7622222685813904</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.9402985108087258</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>1.0625</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.8316666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : city</TD>
+ <TD>0.7066666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>1.0625</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : state</TD>
+ <TD>0.8656200491580672</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : state</TD>
+ <TD>1.04</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.7129589557647705</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : street</TD>
+ <TD>0.9629589557647705</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner</TD>
+ <TD>Root</TD>
+ <TD>1.6330410242080688</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : state</TD>
+ <TD>0.5555555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address</TD>
+ <TD>Address</TD>
+ <TD>1.7661074891617905</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root</TD>
+ <TD>AccountOwner</TD>
+ <TD>1.5688625925260204</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : state</TD>
+ <TD>0.7385999170986182</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : number</TD>
+ <TD>0.7066666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.7777777910232544</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.8468136787414551</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : city</TD>
+ <TD>0.8240700602531433</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner</TD>
+ <TD>AccountOwner</TD>
+ <TD>1.8013071835041046</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : street</TD>
+ <TD>0.5955555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.6018478512763977</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : state</TD>
+ <TD>0.7622222685813904</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.7129589557647705</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root</TD>
+ <TD>Address</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : street</TD>
+ <TD>0.8333333730697632</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Root : elements</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : street</TD>
+ <TD>0.7066666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : street</TD>
+ <TD>0.9402985108087258</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.9493137383460999</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.6018478512763977</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.8402777910232544</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : number</TD>
+ <TD>1.04</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.929333233833313</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root</TD>
+ <TD>Root</TD>
+ <TD>1.9166666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : number</TD>
+ <TD>0.5955555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : city</TD>
+ <TD>0.7129589557647705</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.7685145378112793</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>1.0625</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : city</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner</TD>
+ <TD>Address</TD>
+ <TD>1.647774708232733</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : state</TD>
+ <TD>0.7129588961601258</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.6984127163887024</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : street</TD>
+ <TD>0.7685145378112793</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : city</TD>
+ <TD>0.5955555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address</TD>
+ <TD>AccountOwner</TD>
+ <TD>1.6321662465348368</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : city</TD>
+ <TD>0.5555555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : number</TD>
+ <TD>0.8733333730697632</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : state</TD>
+ <TD>0.8095238208770752</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : state</TD>
+ <TD>1.0177778387069703</TD>
+ </TR>
+ </TABLE>
+ </BODY>
+</HTML>
diff --git a/examples/match_results/ex1_account_owner/mw_match_cardinality.amw.html b/examples/match_results/ex1_account_owner/mw_match_cardinality.amw.html
new file mode 100644
index 0000000..b01c558
--- /dev/null
+++ b/examples/match_results/ex1_account_owner/mw_match_cardinality.amw.html
@@ -0,0 +1,684 @@
+<?xml version = '1.0' encoding = 'ISO-8859-1' ?>
+<HTML>
+ <HEAD>
+ <TITLE>Weaving model with similarity values</TITLE>
+ </HEAD>
+ <BODY>
+ <H1>Weaving model with similarity values</H1>
+ <H3>Left (meta)model : 0_/Match_by_operation/examples/ex1_in_out/inschema.ecore</H3>
+ <H3>Right (meta)model : 1_/Match_by_operation/examples/ex1_in_out/outschema.ecore</H3>
+ <TABLE border = '1'>
+ <TR>
+ <TH>Matching transformations </TH>
+ </TR>
+ <TR>
+ <TD>Cartesian product</TD>
+ </TR>
+ <TR>
+ <TD>Cardinality and containment</TD>
+ </TR>
+ </TABLE>
+ <TABLE border = '1'>
+ <TR>
+ <TH>Link type</TH>
+ <TH>Left</TH>
+ <TH>Right</TH>
+ <TH>Similarity</TH>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : zip_code</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner</TD>
+ <TD>Root</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : street</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : state</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : street</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : number</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : zip_code</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : state</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : city</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address</TD>
+ <TD>Root</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : street</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : street</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : state</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : city</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : number</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : state</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : street</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : city</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : city</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Root : elements</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : street</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : zip_code</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner</TD>
+ <TD>AccountOwner</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : city</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : state</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : street</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>3.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : number</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : number</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : number</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address</TD>
+ <TD>Address</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root</TD>
+ <TD>AccountOwner</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root</TD>
+ <TD>Address</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : state</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : city</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : state</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner</TD>
+ <TD>Address</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : number</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : number</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : city</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : number</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : number</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : zip_code</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root</TD>
+ <TD>Root</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : city</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : state</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : zip_code</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Root : elements</TD>
+ <TD>3.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : street</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : street</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : zip_code</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : state</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : number</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : zip_code</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address</TD>
+ <TD>AccountOwner</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : zip_code</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : city</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : state</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : street</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : city</TD>
+ <TD>2.0</TD>
+ </TR>
+ </TABLE>
+ </BODY>
+</HTML>
diff --git a/examples/match_results/ex1_account_owner/mw_match_conformance.amw.html b/examples/match_results/ex1_account_owner/mw_match_conformance.amw.html
new file mode 100644
index 0000000..beaeba5
--- /dev/null
+++ b/examples/match_results/ex1_account_owner/mw_match_conformance.amw.html
@@ -0,0 +1,684 @@
+<?xml version = '1.0' encoding = 'ISO-8859-1' ?>
+<HTML>
+ <HEAD>
+ <TITLE>Weaving model with similarity values</TITLE>
+ </HEAD>
+ <BODY>
+ <H1>Weaving model with similarity values</H1>
+ <H3>Left (meta)model : 0_/Match_by_operation/examples/ex1_in_out/inschema.ecore</H3>
+ <H3>Right (meta)model : 1_/Match_by_operation/examples/ex1_in_out/outschema.ecore</H3>
+ <TABLE border = '1'>
+ <TR>
+ <TH>Matching transformations </TH>
+ </TR>
+ <TR>
+ <TD>Cartesian product</TD>
+ </TR>
+ <TR>
+ <TD>Cardinality</TD>
+ </TR>
+ </TABLE>
+ <TABLE border = '1'>
+ <TR>
+ <TH>Link type</TH>
+ <TH>Left</TH>
+ <TH>Right</TH>
+ <TH>Similarity</TH>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : street</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Root : elements</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : number</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : zip_code</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : street</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : number</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : zip_code</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : city</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : city</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : state</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address</TD>
+ <TD>AccountOwner</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner</TD>
+ <TD>AccountOwner</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : zip_code</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : zip_code</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : street</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : state</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : state</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner</TD>
+ <TD>Root</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : number</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : street</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : street</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root</TD>
+ <TD>Root</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : city</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : number</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : number</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : zip_code</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : city</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : street</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : number</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : state</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : state</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address</TD>
+ <TD>Address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : number</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : zip_code</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : city</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : street</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner</TD>
+ <TD>Address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : state</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : zip_code</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : zip_code</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root</TD>
+ <TD>AccountOwner</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address</TD>
+ <TD>Root</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : state</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : city</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root</TD>
+ <TD>Address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : street</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : city</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : city</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : state</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : number</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : number</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : city</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : street</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : street</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : state</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : state</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : zip_code</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : city</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>2.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : number</TD>
+ <TD>2.0</TD>
+ </TR>
+ </TABLE>
+ </BODY>
+</HTML>
diff --git a/examples/match_results/ex1_account_owner/mw_match_data.amw.html b/examples/match_results/ex1_account_owner/mw_match_data.amw.html
new file mode 100644
index 0000000..5ad3125
--- /dev/null
+++ b/examples/match_results/ex1_account_owner/mw_match_data.amw.html
@@ -0,0 +1,684 @@
+<?xml version = '1.0' encoding = 'ISO-8859-1' ?>
+<HTML>
+ <HEAD>
+ <TITLE>Weaving model with similarity values</TITLE>
+ </HEAD>
+ <BODY>
+ <H1>Weaving model with similarity values</H1>
+ <H3>Left (meta)model : 0_/Match_by_operation/examples/ex1_in_out/inschema.ecore</H3>
+ <H3>Right (meta)model : 1_/Match_by_operation/examples/ex1_in_out/outschema.ecore</H3>
+ <TABLE border = '1'>
+ <TR>
+ <TH>Matching transformations </TH>
+ </TR>
+ <TR>
+ <TD>Cartesian product</TD>
+ </TR>
+ <TR>
+ <TD>Model values</TD>
+ </TR>
+ </TABLE>
+ <TABLE border = '1'>
+ <TR>
+ <TH>Link type</TH>
+ <TH>Left</TH>
+ <TH>Right</TH>
+ <TH>Similarity</TH>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root</TD>
+ <TD>Address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : street</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : street</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner</TD>
+ <TD>Root</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root</TD>
+ <TD>Root</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : city</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : state</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address</TD>
+ <TD>Root</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : number</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : number</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : state</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : city</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : city</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner</TD>
+ <TD>Address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : state</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : street</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : number</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : number</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : city</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : state</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : state</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : number</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : state</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : city</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : state</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : city</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : state</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : street</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : street</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : number</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address</TD>
+ <TD>Address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : street</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : number</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : city</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : state</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : city</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : street</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : zip_code</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : state</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Root : elements</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address</TD>
+ <TD>AccountOwner</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : number</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : city</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner</TD>
+ <TD>AccountOwner</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : street</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : number</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : street</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : number</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : street</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : city</TD>
+ <TD>0.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root</TD>
+ <TD>AccountOwner</TD>
+ <TD>0.0</TD>
+ </TR>
+ </TABLE>
+ </BODY>
+</HTML>
diff --git a/examples/match_results/ex1_account_owner/mw_match_name.amw.html b/examples/match_results/ex1_account_owner/mw_match_name.amw.html
new file mode 100644
index 0000000..25d4188
--- /dev/null
+++ b/examples/match_results/ex1_account_owner/mw_match_name.amw.html
@@ -0,0 +1,684 @@
+<?xml version = '1.0' encoding = 'ISO-8859-1' ?>
+<HTML>
+ <HEAD>
+ <TITLE>Weaving model with similarity values</TITLE>
+ </HEAD>
+ <BODY>
+ <H1>Weaving model with similarity values</H1>
+ <H3>Left (meta)model : 0_/Match_by_operation/examples/ex1_in_out/inschema.ecore</H3>
+ <H3>Right (meta)model : 1_/Match_by_operation/examples/ex1_in_out/outschema.ecore</H3>
+ <TABLE border = '1'>
+ <TR>
+ <TH>Matching transformations </TH>
+ </TR>
+ <TR>
+ <TD>Cartesian product</TD>
+ </TR>
+ <TR>
+ <TD>string comparison - Levenshtein distance</TD>
+ </TR>
+ </TABLE>
+ <TABLE border = '1'>
+ <TR>
+ <TH>Link type</TH>
+ <TH>Left</TH>
+ <TH>Right</TH>
+ <TH>Similarity</TH>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.5555555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : city</TD>
+ <TD>0.7777777910232544</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : state</TD>
+ <TD>0.6666666269302368</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.8333333730697632</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.8730158805847168</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : city</TD>
+ <TD>0.5555555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.7843136787414551</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : street</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : number</TD>
+ <TD>0.9444445371627808</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.6666666269302368</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root</TD>
+ <TD>AccountOwner</TD>
+ <TD>0.7222222685813904</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner</TD>
+ <TD>AccountOwner</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root</TD>
+ <TD>Root</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.8193277799281783</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : number</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.7222222685813904</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.7777777910232544</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : city</TD>
+ <TD>0.4444444477558136</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.5555555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address</TD>
+ <TD>Root</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : state</TD>
+ <TD>0.9777778387069702</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : street</TD>
+ <TD>0.8830409646034241</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner</TD>
+ <TD>Root</TD>
+ <TD>0.7222222685813904</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : street</TD>
+ <TD>0.5555555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : number</TD>
+ <TD>0.7222222685813904</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : state</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root</TD>
+ <TD>Address</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.8830409646034241</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Root : elements</TD>
+ <TD>0.9108187556266785</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.5555555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : city</TD>
+ <TD>0.5555555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.5555555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : city</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : state</TD>
+ <TD>0.5555555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.4444444477558136</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : street</TD>
+ <TD>0.9166666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Root : elements</TD>
+ <TD>0.4444444477558136</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : street</TD>
+ <TD>0.8333333730697632</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.6174956946635912</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : number</TD>
+ <TD>0.8333333730697632</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : street</TD>
+ <TD>0.5921052984501207</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Root : elements</TD>
+ <TD>0.7777777910232544</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.7777777910232544</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : street</TD>
+ <TD>0.7222222685813904</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.7777777910232544</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner</TD>
+ <TD>Address</TD>
+ <TD>0.9258453845977783</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : city</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.6723585370160329</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : city</TD>
+ <TD>0.9166666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : street</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.4444444477558136</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : state</TD>
+ <TD>0.8193277799281783</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.5555555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : street</TD>
+ <TD>0.9402985108087258</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.9402985108087258</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.6984127163887024</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.9166666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : number</TD>
+ <TD>0.5555555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : state</TD>
+ <TD>0.7222222685813904</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address</TD>
+ <TD>AccountOwner</TD>
+ <TD>0.9258453845977783</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.7777777910232544</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.5555555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address</TD>
+ <TD>Address</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : city</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.7777777910232544</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Root : elements</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.7777777910232544</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : number</TD>
+ <TD>0.7777777910232544</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.8466403239446301</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.7777778506278992</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.4444444477558136</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.6923076478687292</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.7843136787414551</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Root : elements</TD>
+ <TD>0.6805555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : state</TD>
+ <TD>0.5921052984501207</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Root : elements</TD>
+ <TD>0.8055555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.8055555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : number</TD>
+ <TD>0.5555555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Root : elements</TD>
+ <TD>0.6805555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Root : elements</TD>
+ <TD>0.9166666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.694444477558136</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : city</TD>
+ <TD>0.9777778387069702</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.7916666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Root : elements</TD>
+ <TD>0.6805555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : city</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : state</TD>
+ <TD>0.6923076478687292</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : number</TD>
+ <TD>0.6723585370160329</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.9093137383460999</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : state</TD>
+ <TD>0.8095238208770752</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Root : elements</TD>
+ <TD>0.8055555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.8095238208770752</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : street</TD>
+ <TD>0.8333333730697632</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.6984127163887024</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.8095238208770752</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : number</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : number</TD>
+ <TD>0.8095238208770752</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : state</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.5555555820465088</TD>
+ </TR>
+ </TABLE>
+ </BODY>
+</HTML>
diff --git a/examples/match_results/ex1_account_owner/mw_match_propagation.amw.html b/examples/match_results/ex1_account_owner/mw_match_propagation.amw.html
new file mode 100644
index 0000000..227fd7e
--- /dev/null
+++ b/examples/match_results/ex1_account_owner/mw_match_propagation.amw.html
@@ -0,0 +1,687 @@
+<?xml version = '1.0' encoding = 'ISO-8859-1' ?>
+<HTML>
+ <HEAD>
+ <TITLE>Weaving model with similarity values</TITLE>
+ </HEAD>
+ <BODY>
+ <H1>Weaving model with similarity values</H1>
+ <H3>Left (meta)model : 0_/Match_by_operation/examples/ex1_in_out/inschema.ecore</H3>
+ <H3>Right (meta)model : 1_/Match_by_operation/examples/ex1_in_out/outschema.ecore</H3>
+ <TABLE border = '1'>
+ <TR>
+ <TH>Matching transformations </TH>
+ </TR>
+ <TR>
+ <TD>Cartesian product</TD>
+ </TR>
+ <TR>
+ <TD>string comparison - Levenshtein distance</TD>
+ </TR>
+ <TR>
+ <TD>Propagation weaving model</TD>
+ </TR>
+ </TABLE>
+ <TABLE border = '1'>
+ <TR>
+ <TH>Link type</TH>
+ <TH>Left</TH>
+ <TH>Right</TH>
+ <TH>Similarity</TH>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Root : elements</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : number</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.7777777910232544</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.8466403239446301</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : city</TD>
+ <TD>0.4444444477558136</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Root : elements</TD>
+ <TD>0.6805555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.8095238208770752</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.8830409646034241</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root</TD>
+ <TD>Root</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.7777777910232544</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.8193277799281783</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : state</TD>
+ <TD>0.9777778387069702</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : state</TD>
+ <TD>0.8095238208770752</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address</TD>
+ <TD>Root</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.6984127163887024</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.7777778506278992</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : city</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.6984127163887024</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : state</TD>
+ <TD>0.5921052984501207</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : street</TD>
+ <TD>0.9402985108087258</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : number</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : state</TD>
+ <TD>0.6666666269302368</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : city</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.8055555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address</TD>
+ <TD>Address</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : number</TD>
+ <TD>0.5555555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address</TD>
+ <TD>AccountOwner</TD>
+ <TD>0.9258453845977783</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : state</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.6666666269302368</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.6923076478687292</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : street</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.4444444477558136</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : state</TD>
+ <TD>0.6923076478687292</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : state</TD>
+ <TD>0.5555555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.7916666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root</TD>
+ <TD>Address</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.694444477558136</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : city</TD>
+ <TD>0.5555555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : city</TD>
+ <TD>0.7777777910232544</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.9166666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : street</TD>
+ <TD>0.8830409646034241</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : street</TD>
+ <TD>0.8333333730697632</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.7843136787414551</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner</TD>
+ <TD>Root</TD>
+ <TD>0.7222222685813904</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.7843136787414551</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root</TD>
+ <TD>AccountOwner</TD>
+ <TD>0.7222222685813904</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Root : elements</TD>
+ <TD>0.6805555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Root : elements</TD>
+ <TD>0.4444444477558136</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.7222222685813904</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.5555555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : street</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Root : elements</TD>
+ <TD>0.6805555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : state</TD>
+ <TD>0.7222222685813904</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Root : elements</TD>
+ <TD>0.9166666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Root : elements</TD>
+ <TD>0.8055555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.8095238208770752</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.7777777910232544</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : street</TD>
+ <TD>0.5555555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Root : elements</TD>
+ <TD>0.7777777910232544</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.5555555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.9093137383460999</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>Address : city</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : street</TD>
+ <TD>0.9166666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : number</TD>
+ <TD>0.8333333730697632</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.5555555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : city</TD>
+ <TD>0.5555555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : street</TD>
+ <TD>0.8333333730697632</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.5555555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.6174956946635912</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : city</TD>
+ <TD>0.9777778387069702</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Root : elements</TD>
+ <TD>0.9108187556266785</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.7777777910232544</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.7777777910232544</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : zip</TD>
+ <TD>Address : city</TD>
+ <TD>0.9166666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : number</TD>
+ <TD>0.6723585370160329</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : state</TD>
+ <TD>0.8193277799281783</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : street</TD>
+ <TD>0.5921052984501207</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : number</TD>
+ <TD>0.7222222685813904</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Address : street</TD>
+ <TD>0.7222222685813904</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.7777777910232544</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner</TD>
+ <TD>Address</TD>
+ <TD>0.9258453845977783</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.6723585370160329</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>Address : number</TD>
+ <TD>0.8095238208770752</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : number</TD>
+ <TD>0.5555555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : state</TD>
+ <TD>Address : state</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : number</TD>
+ <TD>0.7777777910232544</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>0.5555555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : city</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.4444444477558136</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : city</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>Root : elements</TD>
+ <TD>0.8055555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>0.8333333730697632</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.8730158805847168</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>AccountOwner : name</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.5555555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>AccountOwner : address</TD>
+ <TD>0.9402985108087258</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.5555555820465088</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : number</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Address : street</TD>
+ <TD>Address : zip_code</TD>
+ <TD>0.6666666865348816</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>Root : owners</TD>
+ <TD>Address : number</TD>
+ <TD>0.9444445371627808</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner</TD>
+ <TD>AccountOwner</TD>
+ <TD>1.0</TD>
+ </TR>
+ <TR>
+ <TD>Equivalent</TD>
+ <TD>AccountOwner : birthdate</TD>
+ <TD>AccountOwner : taxexempt</TD>
+ <TD>0.4444444477558136</TD>
+ </TR>
+ </TABLE>
+ </BODY>
+</HTML>
diff --git a/examples/match_results/ex1_account_owner/outschema.km3 b/examples/match_results/ex1_account_owner/outschema.km3
new file mode 100644
index 0000000..737aca8
--- /dev/null
+++ b/examples/match_results/ex1_account_owner/outschema.km3
@@ -0,0 +1,30 @@
+package PrimitiveTypes {
+
+ datatype Integer;
+
+ datatype String;
+
+ datatype Boolean;
+}
+
+package Outschema {
+
+ class Root {
+ reference elements[*] container : AccountOwner;
+ }
+
+ class AccountOwner {
+ attribute name : String;
+ reference address container : Address;
+ attribute birthdate : String;
+ attribute taxexempt : String;
+ }
+
+ class Address {
+ attribute city : String;
+ attribute state : Integer;
+ attribute street : String;
+ attribute zip_code : String;
+ attribute number : Integer;
+ }
+}
diff --git a/index.php b/index.php
index 78bea22..8136627 100644
--- a/index.php
+++ b/index.php
@@ -94,7 +94,7 @@
<table width="100%">
<tr>
<td width="80%" valign="bottom">
- <b><a href="examples/">AMW Examples</a></b>
+ <a href="examples/"><b>AMW Examples</b>, matching library</a><font size="-3"> (new)</font>
</td>
<td align="right">
<a href="examples/"><img align="right" src="resources/amwLogoSmall.png" valign="top" /></a>
@@ -107,7 +107,7 @@
<table width="100%">
<tr>
<td width="80%" valign="bottom">
- <b><a href="http://wiki.eclipse.org/index.php/AMW">AMW Wiki</a>, <a href="http://wiki.eclipse.org/index.php/AMW_FAQ">FAQ</a> </b><font size="-3"> (new)</font>
+ <b><a href="http://wiki.eclipse.org/index.php/AMW">AMW Wiki</a>, <a href="http://wiki.eclipse.org/index.php/AMW_FAQ">FAQ</a> </b>
</td>
<td align="right">
<a href="http://wiki.eclipse.org/index.php/AMW"><img align="right" src="resources/amwLogoSmall.png" valign="top"/></a>
@@ -120,7 +120,7 @@
<table width="100%">
<tr>
<td width="80%" valign="bottom">
- <b><a href="zoo/">AMW zoo</a></b>
+ <b><a href="zoo/">AMW zoo</a></b><font size="-3"> (new)</font>
</td>
<td align="right">
<a href="zoo/"><img align="right" src="resources/amwLogoSmall.png" valign="top" /></a>
diff --git a/news/amwNewsArchive.rss b/news/amwNewsArchive.rss
index 8419a78..f4786b0 100644
--- a/news/amwNewsArchive.rss
+++ b/news/amwNewsArchive.rss
@@ -6,9 +6,19 @@
<description>AMW News</description>
<item>
+ <title>Creation of a matching library</title>
+ <link>http://www.eclipse.org/gmt/amw/examples/</link>
+ <description>
+ Creation of a new category of examples with a set of matching transformations.
+ The matching transformations are used to automatically create weaving models.
+ </description>
+ <pubDate>Wed, 18 Oct 2006 17:00:00 CET</pubDate>
+ </item>
+
+ <item>
<title>Creation of the AMW FAQ</title>
<link>http://wiki.eclipse.org/index.php/AMW_FAQ</link>
- <description>
+ <description>
Creation of a Wiki FAQ with questions about AMW.
It will improve gradually. Everybody is welcome to contribute.
</description>
diff --git a/references.php b/references.php
index 2a0183b..c064451 100644
--- a/references.php
+++ b/references.php
@@ -38,6 +38,7 @@
<ul class="midlist">
<li>
+
This page lists a set of articles, presentations, general work, etc. that refers to the ATLAS Model Weaver project.<p/>
Anyone that is interested to add its work may contact <a href="mailto:marcos.didonet-del-fabro_at_univ-nantes.fr">marcos.didonet-del-fabro at univ-nantes.fr</a>. <p/>
diff --git a/zoo/AMWZoo.xml b/zoo/AMWZoo.xml
index 96d71b9..6f93e5b 100644
--- a/zoo/AMWZoo.xml
+++ b/zoo/AMWZoo.xml
@@ -3,6 +3,35 @@
<metamodel>
+ <name>Simple match extension</name>
+ <uri>http://dev.eclipse.org/viewcvs/indextech.cgi/*checkout*/org.eclipse.gmt/AMW/org.eclipse.gmt.amw.zoo/extensions/mmw_match.km3</uri>
+ <version>1.0</version>
+ <domains>Weaving metamodel extension, semi-automatic matching</domains>
+ <authors> Marcos Didonet Del Fabro (marcos.didonet-del-fabro) </authors>
+ <date>2006/10/18</date>
+ <description>
+ This metamodel extension defines simple kinds of links to support equivalence relationships between
+ Classes, References, Attributes.
+ </description>
+ <see>AMW examples</see>
+ </metamodel>
+
+ <metamodel>
+ <name>Propagation model</name>
+ <uri>http://dev.eclipse.org/viewcvs/indextech.cgi/*checkout*/org.eclipse.gmt/AMW/org.eclipse.gmt.amw.zoo/extensions/mmw_propagation.km3</uri>
+ <version>1.0</version>
+ <domains>Weaving metamodel extension, matching transformations, similarity flooding</domains>
+ <authors> Marcos Didonet Del Fabro (marcos.didonet-del-fabro) </authors>
+ <date>2006/10/19</date>
+ <description>
+ This metamodel extension defines links used to propagate similarity values between weaving links.
+ This extension is created inspired in the Propagation graph of the similarity flooding algorithm (see the examples page for more detail).
+ </description>
+ <see>AMW examples</see>
+ </metamodel>
+
+
+ <metamodel>
<name>Tool interoperability extension</name>
<uri>http://dev.eclipse.org/viewcvs/indextech.cgi/*checkout*/org.eclipse.gmt/AMW/org.eclipse.gmt.amw.zoo/extensions/mmw_interop.km3</uri>
<version>1.0</version>