Frequently Asked Questions

In this page we provide answers to common questions about Epsilon. If your question is not answered here, please feel free to ask in the forum.

What is the relationship between Epsilon and EMF?

To put it simply, with EMF you can specify metamodels and construct models that conform to these metamodels, while with Epsilon you can do stuff with these EMF models and metamodels (e.g. validate them, transform them, generate code from them etc.).

Is Epsilon a model transformation language?

No. Epsilon is a family of task-specific model management languages, one of which targets model-to-model transformation (ETL).

Who is using Epsilon?

While we can't possibly have a precise answer to this, with more than 3000 posts in the Epsilon forum, it seems that quite a few people are currently using different parts of Epsilon.

How do I get help?

Epsilon has a dedicated forum where you can ask questions about the tools and languages it provides. Whenever possible, please use the forum instead of direct email. We're monitoring the forum very closely and there is practically no difference in response time. Also, answered questions in the forum form a knowledge database which other people can search in case they face similar issues in the future. Last but not least, an active forum is an indication of a healthy and actively maintained project (properties that the Eclipse Foundation takes very seriously).

How do I get notified when a new version of Epsilon becomes available?

To get notified when a new version of Epsilon becomes available, please subscribe to Epsilon's RSS feed (you can subscribe using a dedicated RSS client or an email client such as Thunderbird).

You can also configure Eclipse to check for updates automatically by going to Window->Preferences->Install/Update/Automatic Updates and checking the "Automatically find new updates and notify me" option.

Can I use Epsilon in a non-Eclipse-based standalone Java application?

Yes. There are several examples of doing just that (for all languages provided by Epsilon) in this project in the SVN.

How does Epsilon compare to the OMG family of languages?

There are two main differences:

First, QVT, OCL and MTL are standards while languages in Epsilon are not. While having standards is arguably a good thing, by not having to conform to standardized specifications, Epsilon provides the agility to experiment with interesting new features and extensions to model management languages, and contribute small bits to advancing the level of understanding in the field. Examples of such interesting and novel features in Epsilon include interactive transformation, tight Java integration, extended properties, and support for transactions.

Second, Epsilon provides specialized languages for tasks that are currently not explicitly targeted by the OMG standards. Examples of such tasks include interactive in-place model transformation, model comparison, and model merging.

Is Epsilon a competitor to the Eclipse OCL/M2M/M2T projects?

No. In Epsilon, precedence is given to researching and providing solutions for interesting and novel aspects of MDE - as opposed to implementing existing standards. By contrast, the OCL/M2M/M2T projects aim at providing tools that will fully implement the respective OMG standards.

What is the difference between E*L and language X?

If the available documentation doesn't provide enough information for figuring this out, please feel free to ask in the Epsilon forum.

How can I contribute to Epsilon?

There are several ways to contribute to Epsilon. In the first phase you can ask questions in the forum and help with maintaining the vibrant community around Epsilon. You may also want to let other developers know about Epsilon by sharing your experiences online. If you are interested in contributing code to Epsilon, you should start by submitting bug reports, feature requests - and hopefully patches that fix/implement them. This will demonstrate your commitment and long-term interest in the project - which is required by the Eclipse Foundation in order to later on be nominated for a committer account.