Skip to main content

AMW Use Case - Matching

AMW Logo

The establishment of links between model or metamodel elements is present in numerous use cases of model weaving, such as metamodel comparison, model alignment, interoperability, and others. Consequently, it is of major importance to provide mechanisms to easily create these links. The creation of weaving models is typically a semi-automatic process, called Matching. The links can be created manually or with the help of different matching transformations. Matching transformations implement different heuristics to create weaving models.

This use case gives a general overview of the matching process, and how it is handled by AMW and ATL. The AMW user interface provides a graphical user interface to help in the matching process. It is integrated with the ATL engine to support the execution of different matching heuristics.


Consider it is necessary to establish links between two metamodels, MMa and MMb. The general process is the following: the two metamodels are the input of a matching transformation (see below). This first transformation creates a weaving model between these metamodels.

This weaving model is in turn the input for different matching transformations that are sequentially executed. Every matching transformation refines the input weaving model by creating more accurate links according to specific similarity criteria. At any time after the execution of a matching transformation, the weaving model can be verified and refined manually with AMW.

"Matching" Use Case's Overview

There are three different types of matching transformations:

  • Link generation: these transformations create a large set of links between the model elements, without applying any heuritic method. They prepare the weaving model to the application of specific heuristics.
  • Similarity assignment: these transformations execute heuristics that calculate a similarity measure for every weaving link (i.e., between the WLinkEnd elements connected by a WLink). There are several methods to calculate the similarity between model elements. For instance, using the similarity between names, using a dictionary of synonyms, or taking into account the structure of model elements. These methods are well adapted to calculate direct links between elements (see Figure below).
  • Link selection and rewriting: these transformations select the links with the best similarity values based on specific criteria (e.g., a threshold). The links are reorganized according to the metamodel extensions and the application scenario. For instance, links can be rewritten in nested structures that follow the containment relations between Classes and Attributes.

However, even after the execution of a set of heuristics, it is posible that some links are not created correclty, or some links are simply not created. This is particularly the case of complex kinds of links (see Figure below). Complex kinds of links have more complex semantics, and usually have multiple cardinality. The AMW user interface is designed to adapt to different weaving metamodels. This way it is possible to have a standard user interface to help on the creation of complex links as well.

The matching transformation are typically executed in a pre-defined order. First, the link generation transformations prepare the weaving model. Second, the similarity assignment transformations calculate the similarity measures between the model elements. Finally, the link selection and rewriting transformations filter and reorganize the weaving models keeping the most similar links.

Examples of links

Download and examples


The AMW plug-in has an integrated environment to execute a set of matching transformations. They are available when clicking in the context menu of the weaving panel (the middle panel), in the "Match" submenu. Go to the download page to get the plug-in.


These examples are complete application scenarios that combine different matching transformations to produce weaving models for different purposes. They are available in the AMW Examples page.


This publication titled "Semi-automatic Model Integration using Matching Transformations and Weaving Models" presents the use of matching transformations and weaving models for a model integration process. It contains a general overview of the matching process, explaining the different types of matching transformations, and how they are used to create weaving models.

HowTo - additional information

Executing the transformations

This document contains additional information about how to execute the existing matching transformations, what do they do, and how they are organized.

Developing new transformations

This document explains how to develop new heuristics and how to integrate them with the AMW plug-in. The integration of new heuristics is easily done through an extension point defined in AMW.

Related projects

Ontology matching

This project contains a set of resources about ontology matching.

Related use cases

Tool interoperability

This use case shows how weaving models are used to capture the semantic heterogeneities between different tools' metamodels. We use two well known bug tracking tools, Mantis and Bugzilla.

Metamodel comparison

This use case demonstrates how weaving models are used to compare different metamodels and to produce executable model transformations (we use two metamodels used to define embedded software in the avionics industry).

Aspect oriented modeling

This use case demonstrates how AMW is used as an aspect oriented modeling solution to weave a generic communication protocol with specific communication types.

Bridge between SQL and KM3

This use case shows how weaving models and model transformations are used to translate SQL-DDL (Data Definition Language) into KM3 (a modeling technical space) and to translate KM3 into SQL.

Relational DB to XML

This use case shows how weaving models can be used to perform the data mapping between relational DBs and XML.

Merge of geographical information (GML) and statistical data

This use case presents a weaving model used to define a merge operation between a metamodel with geographical information (an extension of GML) and a metamodel with statistical data into a graphical representation (SVG).

Model difference

This use case calculates the differences between two models. The difference between two models is an essential process to control the changes and evolutions of models. The result of the difference is used to apply a patch in the models.

Bridge between DSL and UML Profiles

This use case shows how AMW and ATL are used to produce a bridge between Domain Specific Languages (DSLs) and UML profiles.

System Architecture (SA) management

This use case shows how to map the overlapping concepts of different views of a complex system. It uses a System Architecture (SA) framework called DoDAF (Department of Defense Architecture Framework).

Back to the top