Java Reference
In-Depth Information
CHAPTER 13
Query/View/Transformation
Operational Mapping Language
The Meta-Object Facility (MOF) Query/View/Transformation (QVT) specification
includes three languages: the Relations language, the Core language, and the Operational
Mapping Language (OML). The first two are related, in that the Relations language is
transformed into the Core language for “execution.” The Relations language is a high-
level, declarative language that is intended to be more user-friendly than low-level, imper-
ative languages. It can support complex pattern matching between objects, creating a trace
file implicitly that allows for bidirectional transformation.
The Core language is semantically equivalent to the Relations language but is
defined at a lower level of abstraction. Therefore, transformations written in
Core are more verbose than those written in Relations. Trace models must be
defined explicitly, unlike in Relations, where they are derived from the transfor-
mation definition.
Both the Relations language and OML are currently under development
within the Model-to-Model Transformation (M2M) project. At the time of this
writing, only the OML is available, so it is the focus of this topic. Note also that
this topic focuses on aspects of OML that have an implementation available, but
it also discusses some aspects of the language that are planned to be supported
in the future.
The OML is intended to provide an imperative alternative, which can be
invoked from the Relations and Core languages in a “black-box” manner. OML
makes extensive use of Object Constraint Language (OCL), which this topic does
not cover in detail. As with Eclipse Modeling Framework (EMF), OCL is cov-
ered by a book of its own, which is recommended reading before, or in parallel
549
 
 
Search WWH ::




Custom Search