Difference between revisions of "AMW"

From Eclipsepedia

Jump to: navigation, search
m
 
(21 intermediate revisions by 4 users not shown)
Line 4: Line 4:
 
[[Image:AmwLogo.png|right]]
 
[[Image:AmwLogo.png|right]]
  
The [http://www.eclipse.org/gmt/amw/ AMW] ('''ATLAS Model Weaver''') project is a [[GMT]] component developed by the [http://www.inria.fr/recherche/equipes/atlas.fr.html ATLAS Team], [http://www.inria.fr/ INRIA]. AMW is part of the [[AMMA]] platform
+
The [http://www.eclipse.org/gmt/amw/ AMW] ('''AtlanMod Model Weaver''') project is a [[GMT]] component developed by the [http://www.emn.fr/z-info/atlanmod/index.php/Main_Page AtlanMod group], [http://www.inria.fr/ INRIA]. AMW is part of the [[AMMA]] platform.
  
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/>
+
The AtlanMod Model Weaver supports the creation of different kinds of links between model (or metamodel) elements. The links are saved in a '''weaving model'''. The weaving model conforms to an extensible weaving metamodel.
  
Weaving models can be used in different application scenarios, such as tool interoperability, transformation specification, traceability, model merging.
+
Weaving models can be used in different application scenarios, such as tool interoperability, transformation specification, traceability, model merging, model comparison.
  
 
==Core weaving metamodel==
 
==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.
+
The AMW is developed based on a core weaving metamodel. This core metamodel supports basic link management, i.e., n:n relationships between model elements. The identifiers of the referred elements can be saved using different identification methods. The core weaving metamodel is illustrated below.
  
 
[[Image:AmwCoreMetamodel.png|center]]
 
[[Image:AmwCoreMetamodel.png|center]]
Line 20: Line 20:
 
==Metamodel extensions==
 
==Metamodel extensions==
  
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 different kind of semantics of a weaving metamodel are defined in extensions to the core weaving metamodel. The different weaving metamodel extensions can be applied in different application scenarios.
 +
The [http://www.eclipse.org/gmt/amw/usecases/ use cases] section provides complete scenarios that use these metamodel extensions.
 +
 
 +
===How to create weaving metamodel extensions===
 +
The [[AMW FAQ]] explains how to create weaving metamodel extensions.
  
 
==AMW plugin==
 
==AMW plugin==
  
The AMW prototype is developed as an Eclipse plugin. It uses [http://www.eclipse.org/emf/ 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.  
+
The AMW prototype is developed as an Eclipse plug-in. It uses [http://www.eclipse.org/emf/ EMF] as base model handler. The prototype is a generic workbench for weaving models. It 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.  
  
 
[[Image:AmwScreenShot.png]]
 
[[Image:AmwScreenShot.png]]
Line 34: Line 38:
 
===Automatic generation of weaving models===
 
===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 [http://www.eclipse.org/gmt/amw/examples/ examples] page.
+
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.  
  
The AMW plugin is then used to create new links that were not automatically generated by the matching transformations.
+
The AMW plug-in is integrated with ATL to be able to execute matching transformations directly from the main user interface. The matching transformations are implemented in the ''org.eclipse.weaver.transformation'' plug-in.
  
==Applications==
+
These transformations are also available separately in the [http://www.eclipse.org/gmt/amw/examples/#Matching%20transformation%20library Matching transformation library].
  
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.
+
===AMW Model Handler===
  
===Transformation production===
+
The AMW Model Handler enables a better integration of ATL transformations and weaving models. It provides a set of primitives constantly needed when developing transformations that have weaving models as input or output.
  
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.
+
The [[AMW Model Handler]] page contains detailed information on how to download, to install, and to use the new primitives.
  
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 [http://www.sciences.univ-nantes.fr/lina/atl/bibliography/ODBASE06 ODBASE2006] paper (we plan to put more details about this soon in this page).
+
===Multi-level development of ATL transformations===
  
A set of examples of HOTs implemented in [[ATL]] are found in the [http://www.eclipse.org/gmt/amw/examples/ examples] page. More information can be found in the [[AMW FAQ]].
+
The Atlas Model Weaver has a new plug-in extension that enables to developing ATL transformations based on a multi-level approach. This extension enables to create abstract specifications of ATL transformations using the graphical interface of AMW. This extension does not intend to support all the features of the ATL metamodel. It is a first step to rapidly develop ATL transformations.
  
===Traceability===
+
The plug-in is available at the [http://www.eclipse.org/gmt/amw/download/ Download section], in the deployment build. The plug-in name is "org.eclipse.gmt.weaver.qatl". It contains the weaving metamodel extension, the sources, and an illustrative example. We explain below how to use this extension.
todo
+
 
 +
First it is necessary to create a weaving model using the AMW wizard (this is explained in details in the [http://dev.eclipse.org/viewsvn/viewvc.cgi/plugins/trunk/org.eclipse.gmt.weaver.doc.user/?root=Modeling_AMW&pathrev=22 User Guide]).
 +
 
 +
It is necessary to do the following steps:
 +
 
 +
* In the first page of the wizard, select the ''metamodels/mmw_qalt.km3'' extension.
 +
 
 +
* In the second page, select a name for the weaving model.
 +
 
 +
* In the third page, add two new metamodels (''Add model'' button), one for the input and other for the output. The input model must be associated with the ''InModelRef'', and the output model with the ''OutModelRef''.
 +
 
 +
* After that, a weaving model only with a ''Module'' element is created. The user must use the context menu (right-click) to create the weaving elements. The prototype proposes the valid elements, such as ''rules'', ''input'' and ''output'' elements, ''bindings''.
 +
 
 +
An example of weaving model is shown in the Figure below.
 +
 
 +
[[Image:SimpleATL.jpg]]
 +
 
 +
After the weaving model is created, the user should generate the corresponding ATL model. This action is available in the context menu, '''Weaving specification to ATL'''. This action creates an ATL model in the same folder as the weaving model (e.g., ''family2person_atl.ecore''). The ATL model is extracted automatically in the same folder, with the name ''family2person_atl.atl''.
 +
 
 +
'''Remark''':
 +
 
 +
* It is necessary to set the name to the ''Module''. For the other elements, the name is generated automatically. However,  it is advisable to use user defined names.
 +
 
 +
==Use cases==
 +
 
 +
Weaving models may be used in several application scenarios, such as metamodel comparison, traceability, model matching, model annotation, interoperability. This is because it is often necessary to establish links between elements of different models.
 +
 
 +
These use cases are implemented using AMW. AMW supports such a variety of application scenarios because it has an adaptive interface that handles different metamodel extensions (AMW is fully implemented using the reflective API of EMF).
 +
The plug-in also provides a set of extensions points that enables to add new functionalities when necessary.
 +
A set of use case is found in the [http://www.eclipse.org/gmt/amw/usecases/ Use Cases] page. More information can also be found in the [[AMW FAQ]].
  
 
==Examples HowTo==
 
==Examples HowTo==
  
 
The [[AMW Examples HowTo]] contains additional information about the examples available for download in the AMW project web site.
 
The [[AMW Examples HowTo]] contains additional information about the examples available for download in the AMW project web site.
 
  
 
==Publications==
 
==Publications==
Line 62: Line 94:
 
[http://www.sciences.univ-nantes.fr/lina/atl/bibliography/SAC07 SAC07]
 
[http://www.sciences.univ-nantes.fr/lina/atl/bibliography/SAC07 SAC07]
 
Del Fabro, MD, and Valduriez, P :Semi-automatic Model Integration using Matching Transformations and Weaving Models .
 
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.
+
In: The 22th Annual ACM SAC, MT 2007 - Model Transformation Track, Seoul (Korea), 2007.
 
   
 
   
 
[http://www.sciences.univ-nantes.fr/lina/atl/bibliography/ODBASE06 ODBASE2006]  
 
[http://www.sciences.univ-nantes.fr/lina/atl/bibliography/ODBASE06 ODBASE2006]  
Line 70: Line 102:
 
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.
 
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.
  
[http://www.eclipse.org/gmt/amw/publication.php Complete list of publications related to AMW]
+
[http://www.eclipse.org/gmt/amw/publication.php More extensive list of publications related to AMW]
 +
 
 +
== Downloads  ==
 +
 
 +
The AMW project provides an Eclipse plugin to create weaving models and to compose metamodel extensions. <br> The plugin can be downloaded in the [http://www.eclipse.org/gmt/amw/download/ AMW Download Page]. <br> A set of application scenarios is available at [http://www.eclipse.org/gmt/amw/examples/ 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.
  
==Downloads==
+
<br>
  
The AMW project provides an Eclipse plugin to create weaving models and to compose metamodel extensions. <br/>
+
The anonymous SVN URL of AMW repository is ''http://dev.eclipse.org/svnroot/modeling/org.eclipse.gmt.amw'' , web access is [http://dev.eclipse.org/viewsvn/index.cgi/?root=Modeling_AMW http://dev.eclipse.org/viewsvn/index.cgi/?root=Modeling_AMW] .<br>
The plugin can be downloaded in the [http://www.eclipse.org/gmt/amw/download/ AMW Download Page]. <br/> A set of application scenarios is available at [http://www.eclipse.org/gmt/amw/examples/ 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.
+
  
 
==See Also==
 
==See Also==
Line 83: Line 118:
 
[[AM3]], The <b>ATLAS MegaModel Management</b> Eclipse wiki page<br/><br/>
 
[[AM3]], The <b>ATLAS MegaModel Management</b> Eclipse wiki page<br/><br/>
 
[http://www.eclipse.org/gmt/am3 AM3], The <b>ATLAS MegaModel Management</b> project's Eclipse homepage<br/><br/>
 
[http://www.eclipse.org/gmt/am3 AM3], The <b>ATLAS MegaModel Management</b> project's Eclipse homepage<br/><br/>
[http://www.eclipse.org/gmt/atl ATL], The <b>ATLAS Transformation Language</b> project's Eclipse homepage<br/><br/>
+
[http://www.eclipse.org/m2m/atl ATL], The <b>ATLAS Transformation Language</b> project's Eclipse homepage<br/><br/>
 
[[ATL]], The <b>ATLAS Transformation Language</b> Eclipse wiki page<br/><br/>
 
[[ATL]], The <b>ATLAS Transformation Language</b> Eclipse wiki page<br/><br/>
 
[http://www.sciences.univ-nantes.fr/lina/atl/ ATL], The <b>ATL</b> homepage<br/><br/>
 
[http://www.sciences.univ-nantes.fr/lina/atl/ ATL], The <b>ATL</b> homepage<br/><br/>

Latest revision as of 10:38, 5 January 2012

< To: AMMA
< To: GMT

AmwLogo.png

The AMW (AtlanMod Model Weaver) project is a GMT component developed by the AtlanMod group, INRIA. AMW is part of the AMMA platform.

The AtlanMod Model Weaver supports the creation of different kinds of links between model (or metamodel) elements. The links are saved in a weaving model. The weaving model conforms to an extensible weaving metamodel.

Weaving models can be used in different application scenarios, such as tool interoperability, transformation specification, traceability, model merging, model comparison.

Contents

[edit] Core weaving metamodel

The AMW is developed based on a core weaving metamodel. This core metamodel supports basic link management, i.e., n:n relationships between model elements. The identifiers of the referred elements can be saved using different identification methods. The core weaving metamodel is illustrated below.

AmwCoreMetamodel.png

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.

[edit] Metamodel extensions

The different kind of semantics of a weaving metamodel are defined in extensions to the core weaving metamodel. The different weaving metamodel extensions can be applied in different application scenarios. The use cases section provides complete scenarios that use these metamodel extensions.

[edit] How to create weaving metamodel extensions

The AMW FAQ explains how to create weaving metamodel extensions.

[edit] AMW plugin

The AMW prototype is developed as an Eclipse plug-in. It uses EMF as base model handler. The prototype is a generic workbench for weaving models. It 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.

AmwScreenShot.png

[edit] 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).

[edit] 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.

The AMW plug-in is integrated with ATL to be able to execute matching transformations directly from the main user interface. The matching transformations are implemented in the org.eclipse.weaver.transformation plug-in.

These transformations are also available separately in the Matching transformation library.

[edit] AMW Model Handler

The AMW Model Handler enables a better integration of ATL transformations and weaving models. It provides a set of primitives constantly needed when developing transformations that have weaving models as input or output.

The AMW Model Handler page contains detailed information on how to download, to install, and to use the new primitives.

[edit] Multi-level development of ATL transformations

The Atlas Model Weaver has a new plug-in extension that enables to developing ATL transformations based on a multi-level approach. This extension enables to create abstract specifications of ATL transformations using the graphical interface of AMW. This extension does not intend to support all the features of the ATL metamodel. It is a first step to rapidly develop ATL transformations.

The plug-in is available at the Download section, in the deployment build. The plug-in name is "org.eclipse.gmt.weaver.qatl". It contains the weaving metamodel extension, the sources, and an illustrative example. We explain below how to use this extension.

First it is necessary to create a weaving model using the AMW wizard (this is explained in details in the User Guide).

It is necessary to do the following steps:

  • In the first page of the wizard, select the metamodels/mmw_qalt.km3 extension.
  • In the second page, select a name for the weaving model.
  • In the third page, add two new metamodels (Add model button), one for the input and other for the output. The input model must be associated with the InModelRef, and the output model with the OutModelRef.
  • After that, a weaving model only with a Module element is created. The user must use the context menu (right-click) to create the weaving elements. The prototype proposes the valid elements, such as rules, input and output elements, bindings.

An example of weaving model is shown in the Figure below.

SimpleATL.jpg

After the weaving model is created, the user should generate the corresponding ATL model. This action is available in the context menu, Weaving specification to ATL. This action creates an ATL model in the same folder as the weaving model (e.g., family2person_atl.ecore). The ATL model is extracted automatically in the same folder, with the name family2person_atl.atl.

Remark:

  • It is necessary to set the name to the Module. For the other elements, the name is generated automatically. However, it is advisable to use user defined names.

[edit] Use cases

Weaving models may be used in several application scenarios, such as metamodel comparison, traceability, model matching, model annotation, interoperability. This is because it is often necessary to establish links between elements of different models.

These use cases are implemented using AMW. AMW supports such a variety of application scenarios because it has an adaptive interface that handles different metamodel extensions (AMW is fully implemented using the reflective API of EMF). The plug-in also provides a set of extensions points that enables to add new functionalities when necessary. A set of use case is found in the Use Cases page. More information can also be found in the AMW FAQ.

[edit] Examples HowTo

The AMW Examples HowTo contains additional information about the examples available for download in the AMW project web site.

[edit] Publications

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.

ODBASE2006 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.

More extensive list of publications related to AMW

[edit] Downloads

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.


The anonymous SVN URL of AMW repository is http://dev.eclipse.org/svnroot/modeling/org.eclipse.gmt.amw , web access is http://dev.eclipse.org/viewsvn/index.cgi/?root=Modeling_AMW .

[edit] See Also

[edit] AMW FAQ

[edit] Others

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