Zeta is a tool for automatically generating a graphical DSL from a range of text DSLs. In combination with a suitable metamodel, you render these text definitions for a generator that creates a graphical editor for the web. So it can be seen as a model-driven generation of graphical editors with the goal to generate simulations from a graphical DSL.
The Zeta Project was orginally developed by Markus Erhart under the direction of Marko Boger at the HTWG Konstanz. It is based on the previous developed open source project Modigen which presents a set of specially developed textual DSLs to fully describe graphical DSLs based on node and edge diagrams. Zeta continues to be actively developed by students of the HTWG Konstanz.
The basic structure is given by the DSLs which were defined specifically for the creation of graphical DSLs.
- Concept - The graphical DSL is also called metamodel. With this DSL the underlying data structure for the later model instance can be defined.
- Shape - The shape language is needed for the definition of forms of any complexity. This DSL offers different basic forms such as for example, rectangles, ellipses and polygons in any width and depth. An element can be build from any number and combination from the existing basic forms.
- Style - The style language provides the functionality for defining different representations (layouts or design features) for elements. This could be seen similar to cascading style sheets (CSS).
- Diagram - The diagram language is the base DSL, which is sufficient for very simple domain-specific graphical editors. It defines the mapping of simple shapes, styles, and the behavior of elements to metamodel classes.
Technical Docs | Setup Guide | About Zeta |
---|---|---|
Model-driven generation of graphical editors. The goal is to generate simulations from a graphical DSL.
The graphical editor is configured via the textual DSLs by using the DSL editor. The DSL editor supports auto-completion of keywords and the detection of possible parsing errors.
With the graphical editor configured by the DSLs, you can create and edit any model you want.