Tefkat - это язык преобразования модели и преобразование модели двигатель. Язык основан на F-логике и теории программ стратифицированной логики. Движок представляет собой подключаемый модуль Eclipse для Eclipse Modeling Framework (EMF).
Tefkat был одним из подпроектов проекта Pegamento в Центре технологий распределенных систем (DSTC), Австралия. Несмотря на то, что проект уже был в стадии реализации, наиболее активное исследование имело место для представления ответа на OMG MOF 2.0 Queries / Views / Transformations Request for Предложения.
Tefkat имел открытый исходный код до закрытия DSTC в июне 2006 года.
Tefkat определяет отображение набора исходных метамоделей на набор целевых метамодели. Преобразование Tefkat состоит из правил, шаблонов и шаблонов. Правила содержат исходный и целевой термин. Шаблоны просто называются составными исходными терминами, а шаблоны просто называются составными целевыми терминами. Эти элементы основаны на F-логике и чисто логическом программировании, однако отсутствие функциональных символов означает значительное снижение сложности.
Tefkat имеет еще два важных языковых элемента: отслеживание и инъекции. Отслеживание позволяет сохранять произвольные отношения в модели трассировки. Инъекции позволяют определять идентичность целевых объектов с помощью функционального символа. Таким образом, инъекции похожи (но более мощны) на ключи QVT, которые определяют идентичность целевого объекта как функцию его типа и некоторых его свойств.
Декларативная семантика преобразования Tefkat - это идеальная модель трасс и целей, которая удовлетворяет всем правилам. Более императивная семантика преобразования Tefkat - повторяющаяся наименьшая фиксированная точка непосредственного следствия каждого правила. Из-за стратификации эта семантика эквивалентна и однозначна. Tefkat не использует явный вызов правил; все (не абстрактные) правила срабатывают независимо от всех остальных, однако правила могут быть слабо связаны с помощью отслеживания, внедрения, расширения правил и / или замены правил.
Tefkat имеет конкретный синтаксис, похожий на SQL, разработанный для лаконичной передачи намерений каждого правила, шаблона или шаблона.
ПРАВИЛО ClassToTable FORALL Class c {name: n; } СОЗДАТЬ таблицу t {name: n; };
Язык Tefkat определен в терминах (E) MOF 2.0, однако движок реализован в терминах Ecore, метаметамодели, подобной EMOF, в центре EMF. Этот язык очень похож на пакет Relations QVT, однако не является строго совместимым.