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?

Briefly, 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 languages, one of which targets model-to-model transformation (ETL).

Who is using Epsilon?

With more than 6000 posts in the Epsilon forum, it seems that quite a few people are currently using different parts of Epsilon. A list of open-source projects that build on top of Epsilon is available here.

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 you can 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. Just grab a standalone JAR from the downloads page.

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.

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.