EuGENia is “a tool that automatically generates the .gmfgraph, .gmftool and .gmfmap models needed to implement a GMF editor from a single annotated Ecore metamodel” (EuGENia Website). A nice description from the official EuGENia website, but it contains a lot of words/definitions I don’t immediately understand. So the first step is to understand this definition.
1) What is a GMF? And a GMF editor?
This indicates that a GMF editor is a graphical editing surface for any domain model in EMF, e.g. a UML modelling tool.
2) What is Ecore and an Ecore metamodel?
Ecore is an EMF’s metamodel; it is the general model from which any EMF model can be described. An Ecore metamodel is an Eclipse Modeling Framework (EMF) model used to implement other EMF models. Ecore and Ecore metamodel are used inter-exchangeable. Its representation is in XML Metadata Interchange (XMI ), which is an Object Management Group (OMG) standard for exchanging metadata information via Extensible Markup Language (XML).
GMF is the abbreviation for the Graphical Modeling Framework. GMF graphically represents EMF (Eclipse Modeling Framework) and EMF is used to build tools and other applications based on a structured data model (e.g. metamodel). Together with tools and runtime support to produce a set of Java classes for the model, EMF provides a basic editor for a Domain Specific Language (DSL). GMF has the aim to implement a graphical editor for such a DSL.
2) What is Ecore and an Ecore metamodel?
Ecore is an EMF’s metamodel; it is the general model from which any EMF model can be described. An Ecore metamodel is an Eclipse Modeling Framework (EMF) model used to implement other EMF models. Ecore and Ecore metamodel are used inter-exchangeable. Its representation is in XML Metadata Interchange (XMI ), which is an Object Management Group (OMG) standard for exchanging metadata information via Extensible Markup Language (XML).
EuGENia can be seen as the higher level tool that hides the complexity of the Graphical Modeling Framework. GMF implements a graphical editing surface based on an annotated Ecore metamodel, which is a general Eclipse Modeling Framework model from which any EMF model can be described. EMF is used to build tools and other applications based on a structured data model.
It becomes better, but I think I need to understand EuGENia really well and I must be able to describe it. So, let’s try to visually show the relation between EMF, GMF and EuGENia. I use the slides presented at the EuGENia website for this.
Seeing it graphically always helps me to better understand something. So let’s try again to describe EuGENia.
EuGENia is a tool to design a graphical editor. This editor is made in several steps.
A graphical editor, which makes it possible to annotate and store care documents, could perhaps be written with EuGENia. For this one needs a metamodel. Van Gorp et al (2012) already mention a possible extension of the EuGENia metamodel. In step 3 B, I will explore this option deeper.
In dark Blue one can see the section, family, framework, project, and community EuGENia belongs to. Starting at the bottom:
EuGENia is a tool to design a graphical editor. This editor is made in several steps.
- First one needs to have a metamodel of the model category; this indicates one needs to have a general model of the models one wants to make (DSL).
- The second step is to add GMF-based annotations to this metamodel. This is necessary because EuGENia is the higher level tool of the GMF editor and in the fourth step, the functionality of GMF is applied. There are different annotations which can be added to, for instance, the classes. These are added in the metamodel with @-signs.
- From the metamodel and the annotations, three different GMF-models are derived:
- The tooling model
- The graph model
- The mapping model
- As a last step, the GMF-functionality is applied on these models. This results in a graphical editor.
A graphical editor, which makes it possible to annotate and store care documents, could perhaps be written with EuGENia. For this one needs a metamodel. Van Gorp et al (2012) already mention a possible extension of the EuGENia metamodel. In step 3 B, I will explore this option deeper.
Background information
To understand the bigger picture of the relations with and ownership of EuGENia, I developed the following hierarchy:In dark Blue one can see the section, family, framework, project, and community EuGENia belongs to. Starting at the bottom:
- EuGENia is one of the tools of Epsilon, “a family of languages and tools for code generation, model-to-model transformation, model validation, comparison, migration and refactoring that work out-of-the-box with EMF and other types of models” (Epsilon Website).
- Epsilon is part of the Eclipse Model Framework Technology, which also contains the Graphical Modeling Project (GMP). As part of GMP, the Graphical Modeling Framework (GMF) has been designed.
- The Eclipse Model Framework Technology is part of the Eclipse Modeling Project, which in turn is a project of Eclipse. Eclipse is “a community for individuals and organizations who wish to collaborate on commercially-friendly open source software. Its projects are focused on building an open development platform comprised of extensible frameworks, tools and runtimes for building, deploying and managing software across the lifecycle” (Eclipse Website).
Hi Anouk,
ReplyDeleteinteresting to read how you have perceived Eugenia. I have also sent a link to this blog page to the Eugenia developers so they can follow your progress too.
It seems to me that you understand the key principles by now. However, on one point I would like to correct you:
You write:
>> How can EuGENia be used to annotate care documents, like clinical guidelines? A graphical editor, which makes it possible to annotate and store care documents, could perhaps be written with EuGENia
Please check section 5.3 of the pre-proceedings paper on http://is.ieis.tue.nl/staff/pvgorp/research/#mde4dss12 (so http://is.ieis.tue.nl/staff/pvgorp/research/VanGorpEtAl2012FHIESpreproceedings.pdf) to learn more about what we had planned for your project. In a nutshell, you would have to extend Eugenia such that it also knows how to handle some new "@annotation" tags. The extended Eugenia would be able to generate something like the paper's Fig. 7 from the annotated metamodel. Fig. 10 visualizes that.
Please contact me if you need further clarifications.
Best, keep on going :),
Pieter