Epsilon Flock

We’ve just released Epsilon v0.8.9, which includes many improvements and bug fixes, as well as a new task-specific language, Epsilon Flock. Epsilon Flock is a model-to-model transformation language tailored for migrating models following changes to their metamodels.

In some cases, specifying migration with existing model-to-model transformation languages can be cumbersome. For example, consider the ETL code below, for migrating Persons to a metamodel that has extracted a Telephone class:

rule Person2Person
  transform old : Old!Person
  to        p   : New!Person  {

    p.name = old.name;
    p.address = old.address;
    p.gender = old.gender;
    p.dob = old.dob;

    p.telephoneNumber = new New!TelephoneNumber;
    p.telephoneNumber.areaCode = old.areaCode;
    p.telephoneNumber.number = old.number;
}

In the transformation above, there is some redundancy. Firstly, model elements that have not been affected by the metamodel evolution (such as name, address, gender and dob), must be copied from old to new Persons. In Epsilon Flock, the values of these features are copied automatically. Secondly, the Person rule must define a source type and variable and a target type  and variable. In Epsilon Flock, migration rules are scoped to a single type, and two built-in variables (original and migrated) are used to access old and new Persons. The following Epsilon Flock code is equivalent to the ETL above:

migrate Person {
    migrated.telephoneNumber = new Migrated!TelephoneNumber;
    migrated.telephoneNumber.areaCode = original.areaCode;
    migrated.telephoneNumber.number   = original.number;
}

Epsilon Flock also provides concise mechanisms for changing the type of  and deleting model elements, and we have plans to enhance the language in future versions of Epsilon.

We've added to the Epsilon website documentation, an example and a screencast to help you get started with Epsilon Flock. There's also a technical report, which includes examples of Epsilon Flock for migrating a Petri nets model and a UML class diagram. The Epsilon Flock paper will appear at ICMT 2010 in late June. As always, please do leave questions and feedback in the Epsilon Forum, and we'll get back to you.

About these ads
This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s