Epsilon Flock

Epsilon Flock is a model migration language built atop EOL, for updating models in response to metamodel changes. Flock provides a rule-based transformation language for specifying model migration strategies. A conservative copying algorithm automatically migrates model values and elements that are not affected by the metamodel changes.


  • Migrate models to re-establish consistency with an evolved metamodel
  • Automatic copying of unaffected data
  • Simple distribution of migration strategies using Eclipse extension point
  • Declarative rules with imperative bodies
  • Guarded rules
  • Support for simultaneously accessing/modifying many models of (potentially) different metamodels
  • All the usual programming constructs (while and for loops, statement sequencing, variables etc.)
  • Support for those convenient first-order logic OCL operations (select, reject, collect etc.)
  • Ability to create and call methods of Java objects
  • Support for dynamically attaching operations to existing meta-classes and types at runtime
  • Support for cached operations
  • Support for extended properties
  • Support for user interaction
  • Ability to create reusable libraries of operations and import them from different Epsilon (not only EOL) modules

Examples and Screencasts