<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <abstract>
        <p>The efficiency of the intelligent systems engineering on the basis of conceptual models can be improved through the use of specialized languages. The paper describes a domain-specific language designed for describing transformation models namely Transformation Model Representation Language (TMRL). The descriptions of the basic language constructions, as well as comparison with analogues, are given. Повышение эффективности разработки интеллектуальных систем и их компонентов на основе концептуальных моделей может быть достигнуто путем применения специализированного лингвистического обеспечения. В работе описывается пример подобного обеспечения в форме предметно-ориентированного языка для описания моделей трансформаций - Transformation Model Representation Language (TMRL). Приводится описание основных языковых конструкций, а также сравнение с аналогами.</p>
      </abstract>
      <kwd-group>
        <kwd>model</kwd>
        <kwd>model transformation</kwd>
        <kwd>domain-specific language</kwd>
        <kwd>Transformation Model Representation Language</kwd>
        <kwd>TMRL</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>В общем случае трансформация моделей представляет собой процесс
автоматической генерации целевой модели по исходной модели в соответствии с некоторым набором
правил преобразования [9]. По существу, трансформация моделей является логическим
продолжением (развитием) области преобразования программ. Так, трансформация
модели может привести к трансформации программы, если программа основывается на
модели. Тем не менее, подходы к трансформации, разработанные в обеих областях, имеют
несколько разные характеристики. В то время как системы программных трансформаций,
как правило, основаны на математически-ориентированных концепциях, таких как
переписывание (term rewriting), атрибутивных грамматиках и функциональном
программировании, системы трансформации моделей обычно применяют объектно-ориентированный
подход для представления и манипулирования различными предметными моделями
(абстракции системы и/или ее окружения) [4]. В специальной литературе по трансформации
моделей рассматривается широкий спектр артефактов в качестве потенциальных объектов
трансформации для процесса разработки программного обеспечения. К ним относятся
различные UML-модели, характеристические модели (feature models), спецификации
интерфейсов, схемы данных, компонентов и программный код.</p>
      <p>Принято различать два вида трансформации моделей [4]:
 Модель-Модель (Model-to-Model, M2M);
 Модель-Текст (Model-to-Text, M2T или «pretty printing» – понятие из
программной трансформации) и Текст-Модель (Text-to-Model, T2M).</p>
      <p>При этом преобразование M2T в качестве целевых (выходных) текстовых
артефактов может рассматривать исходный код (трансформация Модель-Код – Model-to-Code,
M2C), документацию, спецификации и т.д.</p>
      <p>
        В настоящий момент наиболее распространенными языками трансформации
моделей являются:
 QVT (Query/View/Transformation) – спецификация консорциума OMG,
определяющая три языка трансформации моделей [10].
 ATL (ATLAS Transformation Language) [8] – язык описания трансформаций
моделей базирующейся на стандарте QVT и стандартизованном языке описания
ограничений OCL (Object Constraint Language).
 VIATRA2 (VIsual Automated model TRAnsformations) – основанный на правилах
и паттернах язык преобразования для управления графовыми моделями [11].
 GReAT (Graph REwriting And Transformation) – язык описания преобразований
модели, базирующийся на подходе тройных трансформаций графа (правила
перезаписывания графа применяются к входной модели и в результате создают
выходную модель) [2].
 Henshin – язык трансформации моделей, основанный на переписывании графа и
использующий правила на основе шаблона, которые могут быть
структурированы во вложенные единицы преобразования с четко определенной семантикой
[
        <xref ref-type="bibr" rid="ref6">1</xref>
        ].
 Epsilon – семейство языков и инструментальных средств для трансформации
моделей, генерации кода, проверки достоверности моделей, миграций и
рефакторинга [7].
 XSLT (eXtensible Stylesheet Language Transformations) – язык преобразования
XML-документов [12]. Данный язык является спецификацией консорциума
W3C.
      </p>
      <p>Основным недостатком данных языков трансформации являются высокие
требования к пользователю (специалисту) при разработке правил (сценария) трансформаций. В
частности, пользователю необходимо знать не только синтаксис и семантику
определенного языка трансформации моделей, который может быть достаточно сложен, но и языки
метамоделирования (например, MOF (Meta-Object Facility), Ecore, KM3 (Kernel Meta Meta
Model) и др.), используемые для описания входной и выходной моделей, а также
различных сопутствующих (дополнительных к основным языкам) языковых конструкций
(например, OCL). Существенным ограничением (недостатком) почти всех языков
трансформации моделей является жесткая привязка к определенному программному
инструментарию, в частности, к платформе Eclipse, где поддержка языков реализована в виде
модулей/плагинов и, в частности, EMF (Eclipse Modeling Framework) [6]. Совокупность
этих факторов затрудняет практическое использование этих языков и программных
средств непрограммирующими пользователями (специалистами-предметниками,
инженерами по знаниям, аналитиками и т.д.), в частности, при разработке БЗ на основе
трансформации концептуальных моделей и обуславливает актуальность задачи разработки
нового предметно-ориентированного языка.</p>
      <p>Модель трансформации. Для решения задачи разработки БЗ на основе
трансформации концептуальных (информационных) моделей, необходимо определить модель
трансформации. Под моделью трансформации понимается некоторый сценарий
(программа), описывающая процесс автоматической генерации целевой модели из исходной
модели в соответствии с некоторым набором правил трансформации. При этом, каждое
отдельное правило трансформации – это описание того, как одна или более конструкций на
исходном языке могут быть преобразованы в одну или несколько конструкций на целевом
языке [9]. В частности, как конструкции некоторого исходного языка концептуального
моделирования (например, UML и др.) могут быть преобразованы в конструкции
некоторого целевого языка представления знаний (ЯПЗ).</p>
      <p>Таким образом, модель трансформации может быть представленная следующим
образом:</p>
      <p>MT = MM IN , MM OUT ,T
где MM IN – метамодель исходной (входной) концептуальной модели; MM OUT –
метамодель целевой (выходной) модели представления знаний (модели БЗ); T – оператор
преобразования моделей. При этом использование метамоделирования является одним из
основных подходов к определению абстрактного синтаксиса языков, в том числе
концептуальных языков моделирования и ЯПЗ.</p>
      <p>Подробное описание отдельных элементов модели трансформации приводиться в
[15].</p>
      <p>
        Язык описания моделей трансформаций. Для описания моделей трансформаций
предлагается специализированный предметно-ориентированный язык – Transformation
Model Representation Language (TMRL). Грамматика TMRL принадлежат к классу
контекстно-свободных грамматик (КС-грамматик – LL(1)) [
        <xref ref-type="bibr" rid="ref11 ref15">14</xref>
        ]. Конструкции TMRL
позволяют в декларативном виде описывать элементы модели трансформации, в частности,
правила соответствия элементов метамоделей. Созданные на TMRL спецификации
удовлетворяют требованиям точности, понятности и полноты [13], т.е. в спецификациях на
TMRL содержится вся необходимая (в рамках предложенного метода) информация для
решения поставленной задачи, все объекты модели хорошо формализованы, при этом
спецификации достаточно компактны и в то же время понятны (читабельны).
      </p>
      <p>Структура программы на TMRL состоит из трех основных блоков, рассмотрим ее на
примере программы, описывающей преобразование диаграммы классов UML в модель
онтологии (элементы языка выделены жирным шрифтом).</p>
      <p>Блок 1. Описание элементов и отношений исходной метамодели:
Source Meta-Model UML-diagram-class {</p>
      <p>Elements [</p>
      <p>Model,</p>
      <p>Class attributes (xmi.id, name), … ]
Relationships [</p>
      <p>Model is associated with Namespace.ownedElement,
Namespace.ownedElement is associated with Class,</p>
      <p>DataType(xmi.id) is Attribute(type), … ] }
Данный блок содержит описание диаграммы классов UML: «UML-diagram-class»,
включая элементы модели (раздел «Elements»). В данном примере – это элементы «Model»
и «Class», при этом элемент «Class» обладает свойствами «xmi.id» и «name». Помимо
описания элементов, исходная метамодель содержит описание связей между элементами
метамодели (раздел «Relationships»), в том числе по идентификаторам, например, связь
атрибута с типом данных («DataType(xmi.id) is Attribute(type)»).</p>
      <p>Блок 2. Описание элементов и отношений целевой метамодели:
Target Meta-Model Ontology {</p>
      <p>Elements [</p>
      <p>ExtendedOntology attributes (id, name),</p>
      <p>Class attributes (id, name), … ]
Relationships [</p>
      <p>Ontology is associated with Class, … ] }
Блок содержит описание модели онтологии: «Ontology». Структура блока
аналогична структуре блока исходной метамодели.</p>
      <p>Блок 3. Описание правил преобразования моделей:
Transformation UML-diagram-class to Ontology {</p>
      <p>Rule Model to Ontology priority 1 [</p>
      <p>Ontology(name) is Model or ModelElement.name</p>
      <p>Ontology(id) is Model(xmi.id) ]
Rule (Class, ModelElement.name) to Class priority 2 [</p>
      <p>Class(name) is Class(name) or ModelElement.name</p>
      <p>Class(id) is Class(xmi.id) ] …
Rule (AssociationEnd, MultiplicityRange) to Lhs priority 7 [</p>
      <p>Lhs is AssociationEnd</p>
      <p>Lhs(operator) is “AND” [
if (MultiplicityRange(lower) is “1”) and (MultiplicityRange(upper) is
“1”) … ]… ]…}</p>
      <p>Данный блок содержит описание правил преобразования элементов исходной
(«UMLdiagram-class») метамодели в целевую («Ontology»).</p>
      <p>В создаваемых правилах могут использоваться логические операторы («and», «or»)
и оператор условного выбора («if»), в частности, с целью задания определенного значения
(константы) для целевого элемента метамодели в соответствии с выполнением условия,
определенного в блоке «if» (например, исходя из определенного значения исходного
элемента).</p>
      <p>Дополнительно к описанию модели трансформации на TMRL возможно задать
взаимодействие с другими ранее разработанными программными компонентами
трансформации при помощи специальной конструкции «Call»:</p>
      <p>Call &lt;название программного компонента трансформации&gt; , “&lt;путь к
концептуальным моделям&gt;” , “&lt;путь сохранения баз знаний&gt;”</p>
      <p>TMRL содержит 15 специальных элементов (лексем), из них: для описания блока
исходной и целевой метамодели используется – 7; для блока трансформации – 7; для блока
вызова программного компонента трансформации – 1. В качестве начального нетерминала
(стартового символа) используется – «Модель трансформации на TMRL».</p>
      <p>Сравнение с аналогами. TMRL предназначен для представления и хранения
модели трансформации, вследствие чего он не имеет прямых аналогов, с которыми можно
было бы осуществить полное и корректное сравнение. Однако наиболее близкими к TMRL
являются языки модельных трансформаций (Model Transformation Language, MTL),
например, ATL [8] или языки стандарта QVT (QVT-R, QVT-C, QVT-O) [10] и др.</p>
      <p>Приведем краткое формальное сравнение синтаксиса правила преобразования
элемента «Class» из диаграммы классов UML в онтологию OWL на TMRL и ATL.
Правило трансформации на TMRL:</p>
      <p>Rule Class to Class priority 1 [Class(ID) is Class(name)]
Правило трансформации на ATL:
rule UMLClass2OWLClass {
from
c : UML!uml::Class (
c.oclIsTypeOf(UML!uml::Class) and</p>
      <p>not thisModule.sequenceOfUnionClass.includes(c)
to
)
oc : OWL!OWLClass (uriRef &lt;- u),
u : OWL!URIReference (fragmentIdentifier &lt;- l,uri &lt;- uri),
l : OWL!LocalName (name &lt;- c.name),
uri : OWL!UniformResourceIdentifier (name &lt;- c.name)
}
Заключение. Повышение эффективности описания модельных трансформаций, в
частности, при разработке интеллектуальных систем, обуславливает необходимость
разработки новых специализированных предметно-ориентированных языков. Примером
подобных языков является Transformation Model Representation Language (TMRL).</p>
      <p>Главным отличием TMRL от существующих языков трансформации моделей общего
назначения является простота его использования, достигаемая за счет ограниченного
набора конструкций. TMRL не является расширением других языков и не использует
конструкции других языков, как это очень часто делают MTL, в частности, ATL использует
язык ограничений OCL. Кроме того, TMRL обладает человекочитаемым синтаксисом с
целью обеспечения возможности внесения необходимых дополнений (уточнений) в
модель трансформации вручную. Также особенностью TMRL является способность
описывать взаимодействие с ранее разработанными программными компонентами
трансформации по части поддержки импорта различных форматов концептуальных моделей.</p>
      <p>В настоящий момент поддержка TMRL обеспечивается в программном средстве
Knowledge Base Development System (KBDS) [5], которое использовалось при создании БЗ
экспертных систем для поддержки экспертизы промышленной безопасности [3].
Работа выполнена при финансовой поддержке РФФИ (грант № 18-37-00006).
Результаты получены при использовании сетевой инфраструктуры ЦКП
«Интегрированная информационно-вычислительная сеть Иркутского научно-образовательного
комплекса» (http://net.icc.ru).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <source>ЛИТЕРАТУРА</source>
          [1]
          <string-name>
            <surname>Arendt</surname>
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Biermann</surname>
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jurack</surname>
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Krause</surname>
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Taentzer</surname>
            <given-names>G</given-names>
          </string-name>
          .
          <article-title>Henshin: advanced concepts</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <article-title>and tools for in-place EMF model transformations // Processing of the 4th International</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <year>2010</year>
          ) / Lecture Notes in Computer Science, Springer Berlin Heidelberg.
          <year>2010</year>
          . Vol.
          <volume>6394</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          P.
          <fpage>121</fpage>
          -
          <lpage>135</lpage>
          . [2]
          <string-name>
            <surname>Balasubramanian</surname>
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Narayanan</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Buskirk</surname>
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Karsai</surname>
            <given-names>G.</given-names>
          </string-name>
          <article-title>The graph rewriting</article-title>
          and trans-
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          formation language: GReAT // Electronic Communications of the EASST.
          <year>2006</year>
          . Vol.
          <volume>1</volume>
          . P.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          1-
          <fpage>8</fpage>
          . [3]
          <string-name>
            <surname>Berman</surname>
            <given-names>A.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nikolaichuk</surname>
            <given-names>O.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yurin</surname>
            <given-names>A.Yu.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kuznetsov</surname>
            <given-names>K.A.</given-names>
          </string-name>
          <article-title>Support of Decision-</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          view // Chemical and
          <string-name>
            <given-names>Petroleum</given-names>
            <surname>Engineering</surname>
          </string-name>
          .
          <year>2015</year>
          . Vol.
          <volume>50</volume>
          .
          <string-name>
            <surname>Issue</surname>
          </string-name>
          1-2. P.
          <volume>730</volume>
          -
          <fpage>738</fpage>
          . [4]
          <string-name>
            <surname>Czarnecki</surname>
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Helsen</surname>
            <given-names>S</given-names>
          </string-name>
          .
          <article-title>Feature-based survey of model transformation approaches // IBM</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          <string-name>
            <given-names>Systems</given-names>
            <surname>Journal</surname>
          </string-name>
          .
          <year>2006</year>
          . Vol.
          <volume>45</volume>
          , No. 3. P.
          <volume>621</volume>
          -
          <fpage>645</fpage>
          . [5]
          <string-name>
            <surname>Dorodnykh</surname>
            <given-names>N.O.</given-names>
          </string-name>
          <article-title>Web-based software for automating development of knowledge bases on</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <source>ligent Systems</source>
          .
          <year>2017</year>
          . Vol.
          <volume>7</volume>
          . P.
          <volume>145</volume>
          -
          <fpage>150</fpage>
          . [6]
          <string-name>
            <given-names>Eclipse</given-names>
            <surname>Modeling</surname>
          </string-name>
          <article-title>Framework (EMF) [Электронный ресурс]</article-title>
          .
          <source>URL:</source>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          http://www.eclipse.org/modeling/emf/ (дата обращения:
          <volume>14</volume>
          .
          <fpage>06</fpage>
          .
          <year>2018</year>
          ).
          <volume>13</volume>
          [7]
          <string-name>
            <surname>Epsilon</surname>
          </string-name>
          [Электронный ресурс]. URL: http://www.eclipse.org/epsilon/ (дата обращения:
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          14.
          <fpage>06</fpage>
          .
          <year>2018</year>
          ). [8]
          <string-name>
            <surname>Jouault</surname>
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Allilaire</surname>
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bézivin</surname>
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kurtev</surname>
            <given-names>I. ATL</given-names>
          </string-name>
          :
          <article-title>A model transformation tool // Science</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          <source>of Computer Programming</source>
          .
          <year>2008</year>
          . Vol.
          <volume>72</volume>
          , No. 1. P.
          <volume>31</volume>
          -
          <fpage>39</fpage>
          . [9]
          <string-name>
            <surname>Kleppe</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Warmer</surname>
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bast</surname>
            <given-names>W. MDA</given-names>
          </string-name>
          <article-title>Explained: The Model-Driven Architecture: Practice</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          and
          <string-name>
            <surname>Promise</surname>
          </string-name>
          (1st ed.).
          <string-name>
            <surname>Addison-Wesley Professional</surname>
          </string-name>
          ,
          <year>2003</year>
          . 192 p. [
          <volume>10</volume>
          ] Query/View/Transformation (QVT)
          <article-title>Version 1</article-title>
          .3 // OMG Document formal/2016-06-03.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          2016 [
          <article-title>Электронный ресурс]</article-title>
          . URL: http://www.omg.org/spec/QVT/1.3/ (дата обраще-
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          <source>ния: 14.06</source>
          .
          <year>2018</year>
          ). [11]
          <string-name>
            <surname>Varro</surname>
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Balogh</surname>
            <given-names>A</given-names>
          </string-name>
          .
          <article-title>The model transformation language of the VIATRA2 framework //</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          <source>Science of Computer Programming</source>
          .
          <year>2007</year>
          . Vol.
          <volume>63</volume>
          , No. 3. P.
          <volume>214</volume>
          -
          <fpage>234</fpage>
          . [12]
          <string-name>
            <surname>XSL</surname>
          </string-name>
          <article-title>Transformations (XSLT) Version 2.0 [Электронный ресурс]</article-title>
          .
          <source>URL:</source>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          http://www.w3.org/TR/xslt20 (дата обращения:
          <volume>14</volume>
          .
          <fpage>06</fpage>
          .
          <year>2018</year>
          ). [13]
          <string-name>
            <surname>Агафонов</surname>
            <given-names>В.Н.</given-names>
          </string-name>
          <article-title>Спецификация программ: понятийные средства и их организация</article-title>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>