Tefkat
Encyclopedia
Tefkat is a Model Transformation Language
Model Transformation Language
A model transformation language in systems and software engineering is a language for model transformation.- Overview :The notion of model transformation is of central importance to information technology. A software system may be seen as a set of information transformations...

 and a model transformation engine. The language is based on F-logic
F-logic
F-logic is a knowledge representation- and ontology language. F-logic combines the advantages of conceptual modeling with object-oriented, frame-based languages and offers a declarative, compact and simple syntax, as well as the well-defined semantics of a logic-based language.Features include,...

 and the theory of stratified logic programs. The engine is an Eclipse
Eclipse (software)
Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...

 plug-in for the Eclipse Modeling Framework
Eclipse Modeling Framework
Eclipse Modeling Framework is an Eclipse-based modeling framework and code generation facility for building tools and other applications based on a structured data model...

 (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
Object Management Group
Object Management Group is a consortium, originally aimed at setting standards for distributed object-oriented systems, and is now focused on modeling and model-based standards.- Overview :...

's MOF
Meta-Object Facility
The Meta-Object Facility is an Object Management Group standard for model-driven engineering. The official reference page may be found at OMG's website.- Overview :...

 2.0 Queries / Views / Transformations
QVT
QVT is a standard set of languages for model transformation defined by the Object Management Group .- Overview :...

 Request for Proposals.

Tefkat was open-sourced before the closure of the DSTC in June 2006, and is still under active development.

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.

See also

  • Model Driven Architecture (MDA): OMG's vision of MDE
  • QVT
    QVT
    QVT is a standard set of languages for model transformation defined by the Object Management Group .- Overview :...

    : the OMG's adopted QVT specification
  • Stratification (mathematics)
    Stratification (mathematics)
    -In mathematical logic:In mathematical logic, stratification is any consistent assignment of numbers to predicate symbols guaranteeing that a unique formal interpretation of a logical theory exists...

  • F-logic
    F-logic
    F-logic is a knowledge representation- and ontology language. F-logic combines the advantages of conceptual modeling with object-oriented, frame-based languages and offers a declarative, compact and simple syntax, as well as the well-defined semantics of a logic-based language.Features include,...

  • Logic programming
    Logic programming
    Logic programming is, in its broadest sense, the use of mathematical logic for computer programming. In this view of logic programming, which can be traced at least as far back as John McCarthy's [1958] advice-taker proposal, logic is used as a purely declarative representation language, and a...

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK