Contents
Tefkat
Tefkat is a model transformation language and a model transformation engine. The language is based on F-logic and the theory of stratified logic programs. The engine is an Eclipse plug-in for the Eclipse Modeling Framework (EMF).
History
Tefkat was one of the sub-projects of the Pegamento project at the Distributed Systems Technology Centre (DSTC), Australia. Although the project was already underway, the most active research occurred for the submission of a response to the OMG's MOF 2.0 Queries / Views / Transformations Request for Proposals. Tefkat was open-sourced before the closure of the DSTC in June 2006.
Brief description
Tefkat defines a mapping from a set of source metamodels to a set of target metamodels. A Tefkat transformation consists of rules, patterns and templates. Rules contain a source term and a target term. Patterns are simply named composite source terms, and templates are simply named composite target terms. These elements are based on F-logic and pure logic programming, however the absence of function symbols means a significant reduction in complexity. Tefkat has two more significant language elements: trackings and injections. Trackings allow arbitrary relationships to be preserved in a trace model. Injections allow the identity of target objects to be specified in terms of a function symbol. Thus injections are similar (but more powerful) to QVT's keys, which specify a target object's identity to be a function of its type and some of its properties. The declarative semantics of a Tefkat transformation is the perfect model of traces and targets that satisfies all the rules. A more imperative semantics of a Tefkat transformation is the iterated least fixed-point of the immediate consequence of each rule. Due to stratification, these semantics are equivalent and unambiguous. Tefkat does not use explicit rule-calling; all (non-abstract) rules fire independently from all others, however rules can be loosely coupled using trackings, injections, rule extension and/or rule superseding.
Concrete syntax
Tefkat has an SQL-like concrete syntax designed to concisely convey the intent of each rule, pattern or template. RULE ClassToTable FORALL Class c { name: n; } MAKE Table t { name: n; } ;
Compliance
The Tefkat language is defined in terms of (E)MOF 2.0, however the engine is implemented in terms of Ecore, the EMOF-like metametamodel at the centre of EMF. The language is very similar to the Relations package of QVT, however it is not strictly compliant.
This article is derived from Wikipedia and licensed under CC BY-SA 4.0. View the original article.
Wikipedia® is a registered trademark of the
Wikimedia Foundation, Inc.
Bliptext is not
affiliated with or endorsed by Wikipedia or the
Wikimedia Foundation.