Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: for the plan.

Jump to: navigation, search

VIATRA2/Transformation Language

Outdated page

This page contains obsolete information about the VPM based VIATRA2 and preserved for archive purposes only.
The currently maintained wiki is available at

The VIATRA2 Transformation Control Language

Since precise model-based systems development is the primary application area of VIATRA2, it necessitates that (i) the model transformations are specified in a mathematically precise way, and (ii) these transformations are automated so that the target mathematical models can be derived fully automatically. For this purpose, VIATRA2 have chosen to integrate two popular, intuitive, yet mathematically precise rule-based specification formalisms, namely, graph transformation (GT) and abstract state machines (ASM) to manipulated graph based models.

  • (Graph) Patterns are the basic concept in defining model transformations within VIATRA2. A pattern is a collection of model elements arranged into a certain structure fulfilling additional constraints (as defined by attribute conditions or other patterns). Patterns can be matched on certain model instances
  • Elementary model manipulation is specified by graph transformation rules. Like OCL, graph transformation rules describe pre- and postconditions to the transformations, but graph transformation rules are guaranteed to be executable, which is a main conceptual difference. Upon successful matching of the precondition pattern, the graph transformation rules changes the underlying model elements according to the postcondition pattern.
  • Graph transformation rules are assembled into complex model transformations by abstract state machine rules, which provide a set of commonly used imperative control structures with precise semantics.

Advanced features of the VIATRA2 transformation language (called VTCL) are

  • Pattern composition (for pre and postcondition patterns)
  • Recursive (graph) patterns
  • Negative patterns with arbitrary depth of negation


If you are new to writing VIATRA2 transformations, you should probably check out the Getting Started pages, and in particular the Creating Transformations block.

The VTCL transformation language of VIATRA2 has the following main parts:

Back to the top