AMW Examples

AMW Examples list (version issues)

Creation of weaving models

  • Source files
    This matching transformation is used to create a weaving model with links between Class x Class and Structural Features x Structural Features (a restricted cartesian product).

Similarity Flooding

  • Source files
    This transformation is an adapted MDE implementation the Similarity Flooding algorithm (created by Sergey Melnik).

Propagation model

  • Source files
    This transformation creates a propagation model that enables to execute the similarity flooding algorithm. The propagation model defines the way the similarities are propagated, for example using containment relationships or the inheritance tree.

Cardinality

  • Source files
    This transformation increases the similarity value of links between elements with the same cardinality (lower or higher bounds).

Name similarity

  • Source files
    This transformation increases the similarity value of links between elements with the same name.

Link rewriting

  • Source files
    This transformation analyses a weaving model with previously calculated similarity values and selects the links with the best values.

    It also transforms simple equality links into type-based links, e.g., AttributeEqual, ReferenceEqual.

Conformance and type

  • Source files
    This transformation increases the similarity value of links between elements with the same type.

Model info

  • Source files
    This matching transformation compares the values of the model elements that conform to the woven metamodels. If the model elements have the same value, it increases the similary values of the links between the metamodel elements.

Scade metamodel comparison

  • Documentation, Source files
    This example automatically produces a weaving model used to compare two versions of the same Scade metamodel. A complete description of this example is available in the use cases section.

System Architecture (SA) Management

  • Documentation, Source files
    This is a complex scenario of management of "systems of systems". It uses many features of AMMA (ATLAS Model Management Architecture) to interoperate between different views of the same system. It uses different types of matching transformations to produce weaving models that capture the overlapping concepts of the different views.

Generation of ATL after executing equality and structural matchings

  • Documentation, Source files
    This example uses matching transformations to produce a weaving model between two versions of the same metamodel. It uses the same algorithms from the AMW_Match_SF example (see below). This example automatically produces an ATL transformation.

Equality matching and similarity flooding

  • Documentation, Source files
    This example contains a set of matching transformations (in ATL) used to produce a weaving model. The example contains three transformations:
    • The first transformation calculates similarity values between model elements.
    • The second transformation propagates the similarity values through neighbor nodes.
    • The third transformation selects the best similarity values and creates a weaving model.
    The example is an implementation of an adapted version of the Similarity Flooding algorithm (created by Sergey Melnik)

Translating Mantis to Bugzilla using AMW and ATL

  • Documentation, Source files
    This example is a complete scenario that uses the weaving model from the example "Weaving Mantis and Bugzilla bug trackers" to generate an ATL transformation. This transformation translates a model conforming to the Mantis.ecore metamodel into a model conforming to the Bugzilla.ecore metamodel.

Translating KM3 into SQL using AMW and ATL

  • Documentation, Source files
    This example is a complete bridge between KM3 and SQL DDL that uses injection, extraction, weaving and transformations. It is similar to the example that transforms SQL to KM3, but in the opposite direction. This example uses a weaving model between a KM3 metamodel and a SQL DDL metamodel. The weaving model is used to produce an ATL transformation that translates KM3 models into SQL models.

    We used an KM3 file generated by the example "Translating SQL into KM3".

Translating SQL into KM3 using AMW and ATL

  • Documentation, Source files
    This example is a complete bridge between SQL and KM3 that uses injection, extraction, weaving and transformations. This example uses a weaving model between a SQL DDL metamodel and a KM3 metamodel. The weaving model is used to produce an ATL transformation that translates SQL DDL models into KM3 models. We used an SQL extracted from Mantis bug tracker.

AMW to ATL and XSLT

  • Documentation, Source files
    This example generates XSLT and ATL transformations from the same weaving model. It contains two ATL HOTs (higher-order transformations). The first HOT transforms a weaving model into an ATL model. The second HOT transform a weaving model into an XSLT model.

AMW to ATL - Foreign key to nested

  • Documentation, Source files
    This example is an complement that uses the metamodel extension between foreign keys and nested structures. It provides a HOT (higher-order transformation) that transforms a weaving model into a transformation model.

Bridging UML Profiles and Domain Specific Languages

  • Documentation, Source files
    With UML, it is possible to describe domain specific concepts using Profiles. In the DSL approach, a new metamodel is created for each domain-specific language. This example identifies more precisely the relation between UML profiles and metamodels, and presents a tool enabling to bridge these two approaches. This tool is implemented using two ATL (Atlas Transformation Language) transformations combined with a weaving model. It illustrates an AMW example and the simultaneous use of AMW and ATL..

Weaving Mantis and Bugzilla bug trackers

  • Documentation, Source files
    This example contains an extension to the core weaving metamodel to support interoperability between different tools. The example contains a weaving model that captures links between the metamodels of two bug tracking tools (Mantis and Bugzilla).

Foreign key to nested

  • Documentation, Source files
    This example contains an extension of the core weaving metamodel to create correspondences between a metamodel with foreign key relationships (as in a relational database) and a metamodel that contains nested structures (as in XML).

Merge Election and GML Data

  • Documentation, Source files
    Extension to the core weaving metamodel to merge between elections and geographical data (provided by GML) into an SVG metamodel.

Generating an ATL Execution Trace as a Traceability Weaving Model

  • Documentation, Source files
    This example generates an ATL execution trace in a weaving model. We create a higher-order transformation that takes an ATL transformation as input (e.g., Class to Relational) and produces an ATL transformation as output. The output ATL transforms Class to Relational models, and additionally generates a traceability model. The traceability model conforms to a traceability model that is an exentension to the core weaving metamodel.

Version issues

The examples in which the weaving models have .ecore extension were developed using the AMW release of January 26th or older.

The examples with .amw extension are compatible with the July 17th binary version or the AMW sources.

Incubation
Incubation