MoMoTE is a Java Framework that allows us to perform models to model transformations. It is composed of an API and an engine. It takes input models that conform to some metamodels and produces output models that conform to other metamodels. A transformation with MoMoTE is composed of rules. A rule describes a subset of the transformation and can call subrules.
The API is provided in an Eclipse plugin. It works with Ecore-based metamodels. Developers that use MoMoTE extend the rule class to make their own set of rules. Each rule must implement a selection on input models. This is done with the EMFT Query API (an Eclipse plugin to query models based on the OMG QVT standard). For each result of the selection, the rule must define elements to be created. Finally the rules are assembled in a hierarchical tree, passed to the transformation engine.
The MoMoTE transformation engine executes rules recursively, creating output element models first and solving references in a second step. Some of the rules are stamped as root, and are executed first. To perform the transformation, users have to provide input models. The engine will create the output models according to the rules.
MoMoTE is used in the Gaspard2 software and distributed with it. It contributes to the transformation chain of Gaspard2. However, it can be used outside Gaspard2 as a standalone transformation engine.