From Eclipsepedia

Jump to: navigation, search

< To: AMW
< To: ATL


The AtlanMod Matching Language (AML) is a Domain Specific Language developed by the AtlanMod team.

AML allows to express matching strategies which compute mappings between models. Mappings (also known as correspondences) can leverage essential model management tasks, among them, model transformation generation. AML is implemented on top of ATL and AMW.

AML extends the AMW matching use case. There, a matching strategy is a chain of transformations. Each transformation:

  • instruments a type of heuristic,
  • takes as input a set of models: the models to be matched (i.e., Left Model and Right Model), an Equal model that refers to Left and Right model, and a set of additional models,
  • and, yields an Equal model. Each Equal model basically contains a set of mappings and conforms to an extension of the AMW core metamodel.


AML Architecture

AML keeps the declarative flavor of ATL for expressing matching rules, and adds dataflow programming constructs for describing transformation chains. Figure 1. shows the AML architecture:


  • The AML Compiler takes a given AML program and performs the following tasks:
    • Analyze the AML program (syntax and semantic).
    • Generate an ATL transformation for each matching rule.
    • Translate the modelFlow block into an Ant script specifying the transformation chain.
    • Integrate ATL transformations from a Library.
  • The AML Accuracy component enables to measure the precision, recall, and fscore of a strategy. How? by comparing an computed Equal model to an expected Equal model.
  • The AMW GUI allows users to manually refine Equal models.
  • HOTs take computed Equal models and generate ATL transformations. Each HOT adresses an application domain, e.g., model adaptation.
  • The use of ATL makes it possible to invoke Java code from matching rules.

Use cases

Please find AML applications on the ATL use cases page:


  • The AML paper [1] presents the DSL constructs, this can help you to develop matching strategies in AML.
  • The AML demo shows the main AML functionalities.

Install AML from CVS


  • Java and Eclipse

To know what Java and Eclipse versions you need to install, please check here.

  • CVS and SVN

Make sure your Eclipse version includes the CVS and SVN plugins.

  • EMF

Install EMF

  • ATL 3.0 and AMW

The psf file mentioned below points to all the ATL and AMW plugins required by AML.

Install AML

To install AML (as well as ATL and AMW), you need to download the aml.psf file on your local disk, and then import the projects in Eclipse using : File->Import->Team->Team Project Set

Go to the META-INF file of org.eclipse.gmt.weaver, remove the dependency org.eclipse.gmt.am3.dsls.km3. Note that the project 'org.eclipse.gmt.weaver' shows compilation problems, this impacts the AMW GUI but not the AML functionalities.

Test AML

Please follow the instructions of the subsection Testing of Install ATL from CVS

Import to the Runtime workbench the AMLLibrary project. Download such project by using the aml-runtime.psf file.

Finally, we encourage you to look at the Model Adaptation use case. This includes a demo showing the main AML functionalities.


Questions and comments about AML should take place on the eclipse.modeling.m2m Eclipse newsgroup for the M2M project (more details about this newsgroup there). Please, remember to prefix the subject of your AML-related posts with [ATL][AML].

Before posting, you should check if your question is not already answered in the newsgroup.


This work has been partially funded by the the FLFS ANR project and the ASCOLA team.


  1. Kelly Garcés, Frédéric Jouault, Pierre Cointe, and Jean Bézivin. A Domain Specific Language for Expressing Model Matching. In IDM ’09: Proceedings of the 5ère Journée sur l’Ingénierie Dirigée par les Modèles, Nancy, France, 2009.