Skip to main content

AMW Use Case - Model migration illustrated by a simple metamodel

AMW Logo

The use case explains how to use AMW and ATL to migrate models conforming to different versions of a metamodel by following the approach proposed in Metamodel comparison and model migration. The main contribution of this work is a step-by-step guide explaining the migration process of a simple metamodel. Additionally, it contains the instructions to launch the matching transformation Name Similarity, not used in the previous related use cases.


This use case migrates a model, conforming to metamodel Persons, to another model, conforming to metamodel PersonsNew. PersonsNew is a different version of Persons; we obtained this version by modifying Persons (see figure 1).

Figure 1. Persons and PersonsNew metamodels

We migrate the models by using an ATL transformation. In order to generate the transformation we follow the iterative matching process proposed in [1]. First we execute matching transformations. Every matching transformation generates a weaving model. The weaving model contains links between the elements of both metamodels. Each link has a value that indicates the similarity between the woven elements. When we finish the matching transformation execution, we launch a higher-order transformation (HOT) that receives the final weaving model as input and generates the ATL transformation as output.

AMW provides a set of matching transformations and a HOT. These can be easily launched on the weaver editor. Particularly, we use the following matching transformations:

  • Cartesian product: creates a new link for every pair of elements for a left and right metamodels.
  • Name similarity: applies string comparison methods to calculate the similarity between element names.
  • Propagation: creates elements that enable to propagate similarity values between links. The propagation elements are used by the 'Similarity flooding' algorithm.
  • Similarity flooding (SF): propagates the similarity between elements that have containment or inheritance relationships. For instance, Male and MalePerson have name similarity; this correspondence is represented by a weaving link. SF propagates the similarity of these classes to the parent classes (Person and NamedEntity).
  • Threshold: creates a new weaving model only with the links that have a similarity value higher than a given threshold (e.g., 0.4).
  • Link rewriting: for every elements of the left metamodel, selects one link with the highest similarity value. After that, the transformation rewrites the links following the containment relationships between the elements (e.g., class and attribute containment).

The matching process yields six weaving model. The first weaving model (the Cartesian product) contains 10 links. After applying all the matching transformations, the weaving model is reduced to 4 links. We launch the HOT transformation from this weaving model obtaining an executable transformation.

Download and examples


This example is the complete scenario to migrate a simple model by using differents matching transformations and a HOT

Example User Guide

This document explains step-by-step how to migrate the models by using AMW and ATL.

Related use cases

Metamodel Comparison and Model Migration

The Use Case in which the one presented here is based.


Matching is the generic process that creates weaving models. This use case gives a general overview of the matching process, and how it is handled by AMW and ATL.


[1] Didonet del Fabro, M., Valduriez, P. Semi-automatic model integration using matching transformations and weaving models In SAC'07, March 11-15, 2007, Seoul, Korea.


This work is supported by the FLFS project, INRIA - LINA and Obasco.

General Information

Back to the top