different model-to-model transformation languages. 1. Relations Language 2. Core Language 3. Operational Mappings Language . The Relations language and the Core language are declarative . The Operational Mappings language is imperative. Conti Relations Language: The Relations language is a declarative user-friendly transformation language that is primarily built around the concept of object patterns. QVT Relations language also defines a simple graphical syntax. Conti. Core Language: Core is a small language equally powerful compared to the Relations language Unlike Relations Core does not use patterns Because of its relative simplicity, its semantics can be defined more simply. It is on a lower level than Relations. Conti Operational Mapping Language: The Operational Mappings language is the imperative cornerstone of QVT. Operational Mappings language can be used in two different ways. First, it is possible to specify a transformation purely in the operational mappings language. Conti Alternatively, it is possible to work in a hybrid mode. The user then has to specify some aspects of the transformation in the Relations (or Core) language, and implement individual rules in the Operational Mappings language as black-box mappings. QVT Language Architecture