Transformations are performed from any number of source models into any number of target models, or may modify the source model only. These models can be instances of any metamodels - including proprietary metamodels.
Model transformations are specified using rulesets. Rulesets are a collection of rules that define the various steps that are needed in order to accomplish a transformation. Rules are implemented using a dedicated imperative language, the Model Query Language (MQL).
The Model Query Language (MQL) is an intuitive language for accessing and creating information in models. Constructs exist to easily iterate over collections of elements, and to simply retrieve values in the model without complex expressions or a difficult syntax.