The AMW project supports the creation of different kinds of links between model elements. The links are saved in a weaving model. The weaving model conforms to an extensible weaving metamodel. <p/>
Weaving models can be used in different application scenarios, such as tool interoperability, transformation specification, traceability, model merging.
Core weaving metamodel
The AMW project is developed based on a core weaving metamodel. This core weaving metamodel supports basic link management, i.e., this metamodel supports n:n relationships between model elements. The ID of elements of the referred elements can be saved using different identification methods. The core weaving metamodel is illustrated below.
WElement is the base element from which all other elements inherit. It has a name and a description. WModel represents the root element that contains all model elements. WLink denotes the link type. WLink has a reference end to associate it with a set of link endpoints (WLinkEnd). Each WLinkEnd references one WElementRef. The attribute ref contains the identifier of the linked elements. WElementRef is not referenced directly by WLink because it is possible to reference the same model element by different link endpoints, for example one model element may participate in more than one mapping expression. WModelRef is similar to WElementRef, but it contains references to the models.
The different kind of semantics of the weaving metamodel are defined in extensions to the core weaving metamodel. The different weaving metamodel extensions can be applied in different application scenarios.
The AMW prototype is developed as an Eclipse plugin. It uses EMF as base model handler. The prototype provides a set of extension points definition to enable to customize the interface according to different metamodel extensions. An example of the interface is shown below.
AMW plugin extensions
The first contribution to the AMW interface is the base weaver extension plugin (org.eclipse.weaver.extension). This extension enables to use the AMW plugin with the basic functionalities. This extension is provided for download together with the core weaver plugin (org.eclipse.weaver).
Automatic generation of weaving models
The AMW plugin is used to manually create weaving models. However, it is possible to semi-automatically generate these models. Weaving models are generated using matching transformations. Matching transformations are transformations that execute matching heuristics to create a set of links based on a similarity value. This value can be calculated in different ways, for example by using the edit distance between two strings, or by using the structural relationships (e.g., containment, inheritance) between model elements. A set of matching transformations (implemented in ATL) can be found in the examples page.
The AMW plugin is then used to create new links that were not automatically generated by the matching transformations.
The links created by the AMW plugin can be used for different applications scenarios, for instance transformation production, model merging, traceability, model difference. This Wiki page contains descriptions of some use cases, and it will be incrementally updated.
The links defined in a weaving model are used as abstract specifications for producing transformation models. Then, the weaving models are transformed into transformation models. Transformations models that take a weaving model as input and produce a transformation model as output are called higher-order transformations (HOT). This way it is not necessary to implement a specific weaving engine. The weaving operation will be executed in a general purpose transformation engine. The HOTs define the execution semantics of the weaving models.
We subsume the common features of these HOTs into a generic transformation pattern. This pattern is the basic semantics for implementing what we call TransfGen operations. This pattern relies on three facts. First, the core correspondence metamodel is formed by WLinks, WLinkEnds and extensions of these elements. Second, declarative transformations languages have similar structure. Third, the declarative transformations specify only what to transform, and not how to transform. More information about this pattern ca be found at the ODBASE2006 paper (we plan to put more details about this soon in this page).
The AMW Examples HowTo contains additional information about the examples available for download in the AMW project web site.
SAC07 Del Fabro, MD, and Valduriez, P :Semi-automatic Model Integration using Matching Transformations and Weaving Models . In: The 22th Annual ACM SAC, MT 2007 - Model Transformation Track, Seoul (Korea), 2007. To appear.
Didonet Del Fabro, M, Bézivin, J, and Valduriez, P : Model-driven Tool Interoperability:
an Application in Bug Tracking. In: ODBASE'06(OTM Federated Conferences). 2006.
BDA2005 Didonet Del Fabro, M, Bézivin, J, Jouault, F, and Valduriez, P : Applying Generic Model Management to Data Mapping. In: Proceedings of Bases de Données Avancées (BDA05), 17-20 october 2005, Saint-Malo, France.
The AMW project provides an Eclipse plugin to create weaving models and to compose metamodel extensions.
The plugin can be downloaded in the AMW Download Page.
A set of application scenarios is available at AMW Examples. There are examples of weaving models, metamodel extensions, weaving models generated automatically through matching transformations, AM3 Ant Tasks, higher-order transformations that take a weaving model and that produce model transformations, etc. These examples are sorted in different categories.
AMW Wish List
AM3, The ATLAS MegaModel Management Eclipse wiki page
AM3, The ATLAS MegaModel Management project's Eclipse homepage
ATL, The ATLAS Transformation Language project's Eclipse homepage
ATL, The ATLAS Transformation Language Eclipse wiki page
ATL, The ATL homepage