Wednesday, April 06, 2005

QVT nears completion

I'm off to Athens tomorrow to attend OMG, where myself and my cosubmitters will be presenting our (hopefully) final version of the merged MOF Query/View/Transformation spec.



QVT has become a bit of a misnomer, as Queries are dealt with by OCL expressions, and Views are not dealt with at all. Transformations, however, come in 3 favours:

  • Relations - the user-friendly declarative language, with patterns and templates and implicit traces between models,
  • Core - the lower level langauge which Relations map to, but which has the full semantics for multi-directional, incremental update, create and delete transformations. It is a thin layer above EMOF and OCL.
  • Operational Mappings is a set of extensions to OCL that have side effects, and provides a n "imperative" langauge for the transformation of models, which relies on the implicit trace generation of the Relations part.

    Also, there's a way to use MOF operations to plug in black box implementations of any given Relation. This is viewed by some as a cop-out that destroys portability, but by others as a god-send that allows them to reuse libraries and algorithms that would be painful or impossible to re-express in one of the languages above.