Using ATL in MDWorkbench

What is ATL?

ATL, the Atlas Transformation Language, is the ATLAS INRIA & LINA research groupís answer to the OMG MOF/QVT RFP. It is a model transformation language specified both as a metamodel and as a textual concrete syntax. It is a hybrid of declarative and imperative but the preferred style of transformation writing in ATL is declarative, which means simple mappings can be expressed simply. An ATL transformation program is composed of rules that define how target model elements are created and initialized from the source elements.

The ATL project aims at providing a set of transformation tools ( These include a transformations repository, some sample ATL transformations, an ATL transformation editor plug-in, an ATL transformation engine, etc. More information can be found on the ATL home page.

Why is ATL integrated into MDWorkbench?

Through imperative rulesets, shared metatype-based scripts, or Java code, MDWorkbench provides a set of imperative tools for model transformation and text generation. Imperative rulesets are expressed in a dedicated language inside MDWorkbench called MQL (Model Query Language).

Because both declarative and imperative approaches have their own advantages, MDWorkbench brings to you the best of the two worlds by integrating ATL. Declarative ATL modules can easily be mixed with imperative rulesets or Java code into MDWorkbench projects.

If I transform my models using ATL, can I generate code too?

Of course! MDWorkbench provides powerful code generation services through a dedicated text-template language called TGL (Text Generation Language). Models transformed using ATL can be used as input to your text or code generation.

When should I use ATL or MQL (Model Query Language)?

It isn't a simple question and there is not one correct answer. However, we can offer some pieces of information that may help you make that choice :

Combining the two languages, you can simplify both ATL modules and MDWorkbench rulesets.