<!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>
      <journal-title-group>
        <journal-title>Bergen, Norway (online).
" frederic.jouault@eseo.fr (F. Jouault);
theo.le-calvar@imt-atlantique.fr (T. Le Calvar)</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>(Ab)using incremental ATL on the T TC 2021 incremental laboratory workflow benchmark</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Frédéric Jouault</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Théo Le Calvar</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>ERIS, ESEO-TECH</institution>
          ,
          <addr-line>Angers</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>IMT Atlantique, LS2N (UMR CNRS 6004)</institution>
          ,
          <addr-line>Nantes</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2021</year>
      </pub-date>
      <volume>000</volume>
      <fpage>0</fpage>
      <lpage>0002</lpage>
      <abstract>
        <p>The TTC 2021 Incremental Laboratory Workflow benchmark presents a challenging incremental transformation problem. This paper presents our ATOL-based partial solution, and discusses the reasons why the kind of incrementality supported by ATOL does not match the kind of incrementality required to solve the problem.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;ATL</kwd>
        <kwd>Incremental Model transformation</kwd>
        <kwd>Incremental Recompilation</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        the problem to solve is given in Section 3. Section 4
presents our ATOL-based solution to this problem.
ExIncrementality is a mechanism by which a computation perimental results are briefly presented in Section 5, and
result can be updated after input changes, without hav- finally Section 6 concludes.
ing to perform all the computations required to produce
the initial result again. This results in a significant
performance advantage, because much fewer computations 2. Incremental ATL with ATOL
typically need to be performed after each input change
than were initially necessary. Some model transforma- The declarative nature of ATL makes it easily amenable to
tions can be executed incrementally, depending on the diferent execution modes. The original execution mode
language they are specified in, and the execution engine is called batch mode, and simply creates a (set of) target
that is used. For instance, some ATL transformations model(s) from a (set of) source model(s)1.
Incrementalcan be quite eficiently executed incrementally with the ity is a diferent execution mode supported by more
reATOL [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] engine, but other approaches exist for ATL [2], cent ATL execution engines, which are able to propagate
or other languages [
        <xref ref-type="bibr" rid="ref5 ref6 ref8">3, 4, 5</xref>
        ] source model changes into corresponding target model
      </p>
      <p>
        However, not all incremental problems have the same changes. ATOL [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] is an incremental ATL execution
enproperties, and it is not clear which incremental trans- gine, which leverages composable active operations [
        <xref ref-type="bibr" rid="ref10">7</xref>
        ]
formation engine can be used for each incremental prob- in order to achieve model transformation incrementality.
lem. The TTC 2021 Incremental Laboratory Workflow The definition of incrementality supported by ATOL
benchmark [
        <xref ref-type="bibr" rid="ref9">6</xref>
        ] was specified in order to provide means is that change propagation should be equivalent to full
to compare incremental engines on a very specific incre- re-execution. In this paper, we will call this commutative
mental problem. This paper presents a partial solution to incrementality. This is illustrated by the commutative
this problem written in ATL, and executed with ATOL. diagram represented in Figure 1, in which:
Because the required kind of incrementality does not
match what ATOL provides, the whole problem could
not be solved without abusing ATOL.
      </p>
      <p>The remainder of this paper is organized as follows.</p>
      <p>Section 2 reminds the reader about what kind of
incrementality can be achieved with ATOL. An overview of
•  is a model transformation, which can be viewed</p>
      <p>as a function.
• , ′, , and ′ are models.  is the result of
applying  to , which can be written:  = ().
′ is the result of applying  to ′, which can be
written: ′ = (′).  and ′ are target models
of , whereas  and ′ are source models of .
•   and   are changes, viewed as functions,
respectively performed on , and , turning them
into ′, and ′. This can be written: ′ =
 (), which is a source change wrt. , and
′ =   (), which is a target change wrt. .</p>
      <sec id="sec-1-1">
        <title>1Although ATL is capable of handling multiple source and tar</title>
        <p>get models, the remainder of the paper will generally refer to a
single source, and a single target model to simplify explanations.
δA</p>
        <p>t
prop
and it makes a diference whether a model is
updated in-place or not. This is the case, for instance,
when target model elements are linked to
nonmodel elements, such as Graphical User Interface
(GUI) elements. Updating the existing model will
not break its link with the GUI elements, whereas
recreating it will result in a new model that does
not have any link with the GUI elements.</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>3. Problem overview</title>
      <p>•  is a change propagation higher-order
function, which can translate changes on  into
changes on .   can thus be obtained from  
by applying , which can be written:   =
( )</p>
      <sec id="sec-2-1">
        <title>The full specification of the TTC 2021 Incremental Lab</title>
        <p>
          oratory Workflow benchmark is presented in [
          <xref ref-type="bibr" rid="ref9">6</xref>
          ]. This
This diagram commutes because ′ = ( ()) = section gives a brief overview of the problem definition.
  (()). This can be rewritten without referring to Solving this problem basically requires developing a
com  in the following way: ′ = ( )(()). Trans- piler for laboratory workflow jobs given to robotic liquid
formation re-execution corresponds to ′ = ( ()), handlers. These robots can perform many tasks required
whereas change propagation corresponds to: ′ = to, for instance, analyze biological samples. However,
( )(()). they must be given very detailed descriptions of what
        </p>
        <p>ATOL automatically derives  from , making it low-level tasks, such as transferring tube contents,
inrelatively easy for transformation developers to execute cubating samples, or washing containers, to perform on
classical ATL transformations incrementally. Although which samples. An abstract syntax for these low-level
the same ′ can be theoretically obtained from ,  , job descriptions is provided as part of the benchmark in
and  by following either path, each one has specific the form of a metamodel called JobCollection.
practical properties: Because this metamodel operates at a very low level
of abstraction, a second, higher-level metamodel is
in• Change propagation is generally faster. troduced: LaboratoryWorkflow . At this level, it is only
Transformation re-execution requires about the necessary to specify a collection of tasks to be applied
same amount of computation for most simple to every specified sample. The job of the compiler to
source changes2. Change propagation is typically develop is first to create a model conforming to
JobColmuch faster for simple changes, because it does lection for every model conforming to
LaboratoryWorknot need to process the whole source model again. flow it is given. This requires assigning samples to tube
• Change propagation performs in-place up- runners that may only contain a maximum of 16 samples,
dates. Very often, only the actual structure of and then replicating jobs as necessary to transfer all
sama model matters, and models duplicated by re- ples onto microplates that may only contain a maximum
executing a whole transformation are equivalent of 96 samples. Moreover, all transfer operations must be
to in-place updated ones for all purposes. How- performed on microplate columns that may only contain
ever, in some situations, object identity matters, a maximum of 8 samples.</p>
        <p>
          Then, the compiler must be able to support addition
of new samples at any time, and to incorporate feedback
scop2eAofptrheicsispeadpeefinr.itTiohne oinftwuihtaiotna isstihmaptlae csihmanpgleecihsainsgbeeymoonddifiethse from the robot in the form of information about partially
a number of model elements which is small compared to the total failed jobs. When new samples are added after older
samnumber of elements in the model. ples have already been partially processed, they must
be processed up to the same point by adding new jobs. as in microplate column-sized chunks. The latter are then
When some samples fail to be properly processed by a distributed into microplate-sized chunks (i.e., 96/8 = 12
job, they must be marked as failed so that all future jobs rows). This results in model M2 conforming to the
Labocan skip them. However, already executed jobs must not ratoryWorkflow’ metamodel, which extends the
Laborabe changed. Compilers that support applying these mod- toryWorkflow metamodel to include information about
ifications incrementally are expected to be more eficient chunks. This extension is basically the same as in the
than those that must recompile the full process. NMF solution, and is implemented by leveraging the
capability of ATOL to consider metaclasses that are not
specified in Ecore. It is defined in the
LaboratoryWork4. Solution presentation lfow.xtend source file. This first transformation is
relatively simple, but required implementing a new chunking
The previous section has briefly presented the problem active operation. Because appending samples is the only
to solve, and this section continues by presenting our required change, we have not implemented propagation
ATOL-based solution. The solution presented here was of other changes, such as removal, or insertion.
Morepartially inspired by the NMF [
          <xref ref-type="bibr" rid="ref6">4</xref>
          ] solution provided in the over, because this transformation targets a superset of
solutions/Reference folder of the case repository3. its source metamodel, it was implemented using ATL’s
refining mode, which supports in-place model
modifica4.1. Problem incrementality vs. ATOL tion. This means that only the new elements must be
incrementality created, and the already existing elements can be kept as
is. This is relatively eficient when compared to a regular
non-refining transformation, which would have to copy
all the existing elements.
        </p>
        <p>In a second step, model M2 is then transformed by
Lab2Job.atl, which performs the actual translation to the
JobCollection metamodel. Most of this transformation is
relatively simple standard ATL code. The tricky part is
related to noncommutative incrementality, and is detailed
in the next section.</p>
        <p>Firstly, change propagation must be able to proceed after
either source modifications (adding samples), or target
modifications (marking jobs as partially failed). This
requires some level of bidirectional propagation, which
active operations can achieve, but for which ATL is
illequipped. Its OCL-based syntax does not support
specifying enough information for reverse change propagation
to work in all cases. For instance, an OCL collect
operation can only take one lambda expression as argument
to process elements in the forward direction, whereas
bidirectionality additionally requires a lambda expression 4.3. Abusing ATOL incrementality
to process elements in the reverse direction. ATOL can, Because the problem calls for change propagation that is
however, be used for this purpose because it enables users not equivalent to full transformation re-execution (i.e.,
to specify some helper functions in xtend4, rather than noncommutative incrementality), solving it with ATOL is
in ATL, while still keeping most of the transformation as not an easy task. We have not yet been able to fully solve
declarative ATL code. the problem with ATOL. Nonetheless, we have managed</p>
        <p>Secondly, the solution must be able to perform some to abuse it into performing noncommutative change
propchanges while taking into account the fact that part agations. To achieve this, the main mechanism is change
of the process has already been executed by the robot. filtering, which takes place for reverse propagation of tip
This means that change propagation should not result in state to sample state. This is performed using an ad hoc
the same model as what would be obtained by fully re- noncommutative active operation. It is implemented in
executing the transformation. The kind of incremental- method mapState of Lab2Job.xtend.
ity required here is therefore noncommutative, whereas However, even with this hack, our solution is not able
ATOL was designed to make sure it performs commuta- to perform the required incremental propagations
cortive incrementality. rectly in all cases. The remaining problems with our
solution could possibly be solved by similarly abusing
4.2. Transformations ATOL, but we decided not to do so until we better
understand what having noncommutative active operations
entails. Here is the list of remaining problems in our
solution that we have identified:</p>
      </sec>
      <sec id="sec-2-2">
        <title>The overall process we implemented is represented on</title>
        <p>Figure 2. The source model (called M1) conforming to
the LaboratoryWorkflow metamodel is first processed by
the LaboratoryChunking.atl transformation, which
distributes samples into tube runner-sized chunks, as well</p>
      </sec>
      <sec id="sec-2-3">
        <title>3https://github.com/tecan/ttc21incrementalLabWorkflows/ 4https://www.eclipse.org/xtend/</title>
        <p>• Problem 1. Failed samples reappear in failed
jobs, which is a change filtering issue. This may
not be an actual problem in practice because these
jobs will not be re-executed anyway.</p>
        <sec id="sec-2-3-1">
          <title>LaboratoryWorkflow'</title>
        </sec>
        <sec id="sec-2-3-2">
          <title>JobCollection M1</title>
        </sec>
        <sec id="sec-2-3-3">
          <title>LaboratoryChunking.atl Lab2Job.atl</title>
          <p>M2</p>
          <p>M3
• Problem 2. Newly added samples require ad- on optimization, which could still be performed.
Howditional jobs to perform jobs already completed ever, since our solution does not completely solve the
on existing samples. This is again a case of non- problem, comparing its performance to other solutions
commutative incrementality, which we have not may not be that meaningful.
attempted to solve.</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>6. Conclusion</title>
      <p>4.4. Non-ATL supporting code</p>
      <sec id="sec-3-1">
        <title>In addition to ATL code, and the previously described xtend helpers, some xtend code was also required for the following aspects (identified with comments in the LaboratoryChunking.xtend and Lab2Job.xtend files):</title>
        <p>
          This paper has presented our partial ATOL-based
solution to the TTC 2021 Incremental Laboratory Workflow
benchmark. Although this benchmark requires some
kind of incrementality, it is not exactly the same kind
of incrementality supported by ATOL, unless a better
• Accessing tuple properties. This is necessary way to encode the problem as model transformation has
on account of a current ATOL compiler limitation, eluded our investigations. We have shown that ATOL
but this code could be automatically generated. can be abused to at least partially solve the problem, but
• Enumeration literal comparison helpers. we have no theory with which to reason about our
soThis could be implemented in ATL, although lution. It may therefore be the case that it could fail in
string comparison would have to be used because unexpected ways beyond the already identified ones.
ATOL translates enumeration literals to and from This benchmark is definitely not the one to showcase
strings. ATOL on, but it presents an intriguing problem. A new
• Number zero-padding. This is necessary to expanded theory of incrementality would be necessary
generate tube runner and microplate names that to understand it precisely wrt. the active operation
apconform to what is used in the benchmark’s proach. However, it is not clear whether such a new
change specification files (although [
          <xref ref-type="bibr" rid="ref9">6</xref>
          ] does not theory would be general enough to support other
relspecify padding). This could be implemented in evant noncommutative incrementality problems, or if
ATL, but would be cumbersome because of lim- each new problem would require extending the theory.
ited OCL support for string operations.
Finally, the transformation driver, and the change
application code are also written in xtend.
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>5https://github.com/ESEO-Tech/</title>
        <p>ttc21incrementalLabWorkflows
1
2
4
8
16
32
64
128</p>
        <p>Model
2.5
2.0
1.0
0.5
4.0
3.5
3.0
1.5
1.0
0.5</p>
        <p>Tool
ATL_Incremental
NMF
Reference</p>
        <p>Tool
ATL_Incremental
NMF
Reference
32</p>
        <p>Model</p>
        <p>Model</p>
        <p>Tool
ATL_Incremental
NMF
Reference</p>
        <p>Tool
ATL_Incremental
NMF
Reference</p>
        <p>Model
1</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>T.</given-names>
            <surname>Le Calvar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Jouault</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Chhel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Clavreul</surname>
          </string-name>
          ,
          <article-title>Efifcient ATL incremental transformations</article-title>
          ,
          <source>J. Object</source>
          <volume>5</volume>
          .
          <string-name>
            <given-names>Experimentations</given-names>
            <surname>Technol</surname>
          </string-name>
          .
          <volume>18</volume>
          (
          <year>2019</year>
          ) 2:
          <fpage>1</fpage>
          -
          <lpage>17</lpage>
          . doi:
          <volume>10</volume>
          .5381/jot.
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>18.3.a2.</mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <surname>Our</surname>
            <given-names>ATOL</given-names>
          </string-name>
          <article-title>solution to the TTC 2021 Incremental Labo</article-title>
          - [2]
          <string-name>
            <given-names>S.</given-names>
            <surname>Martínez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Tisi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Douence</surname>
          </string-name>
          ,
          <article-title>Reactive model ratory Workflow benchmark is available on GitHub 5. It transformation with ATL, Science of Computer Proreuses driver code from previous TTC contests</article-title>
          .
          <source>gramming 136</source>
          (
          <year>2017</year>
          )
          <fpage>1</fpage>
          -
          <lpage>16</lpage>
          . doi:
          <volume>10</volume>
          .1016/j.scico.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <article-title>Performance seems relatively good, as can be seen on</article-title>
          <year>2016</year>
          .
          <volume>08</volume>
          .006.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <article-title>Figures 3, 4, and 5, although we have not spent much time</article-title>
          [3]
          <string-name>
            <given-names>D.</given-names>
            <surname>Varró</surname>
          </string-name>
          , G. Bergmann, Á. Hegedüs, Á. Horváth,
          <string-name>
            <given-names>I.</given-names>
            <surname>Ráth</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Ujhelyi</surname>
          </string-name>
          ,
          <article-title>Road to a reactive and incremental model transformation platform: three generations of the VIATRA framework</article-title>
          ,
          <source>Software &amp; Systems Modeling</source>
          <volume>15</volume>
          (
          <year>2016</year>
          )
          <fpage>609</fpage>
          -
          <lpage>629</lpage>
          . doi:
          <volume>10</volume>
          .1007/ s10270-016-0530-4.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>G.</given-names>
            <surname>Hinkel</surname>
          </string-name>
          ,
          <string-name>
            <surname>NMF:</surname>
          </string-name>
          <article-title>A multi-platform modeling framework</article-title>
          ,
          <source>in: Theory and Practice of Model Transformation</source>
          , Springer International Publishing,
          <year>2018</year>
          , pp.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          184-
          <fpage>194</fpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>319</fpage>
          -93317-7_
          <fpage>10</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>A.</given-names>
            <surname>Boronat</surname>
          </string-name>
          ,
          <article-title>Incremental execution of rule-based model transformation</article-title>
          ,
          <source>International Journal on Software Tools for Technology Transfer</source>
          <volume>23</volume>
          (
          <year>2020</year>
          )
          <fpage>289</fpage>
          -
          <lpage>311</lpage>
          . doi:
          <volume>10</volume>
          .1007/s10009-020-00583-y.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>G.</given-names>
            <surname>Hinkel</surname>
          </string-name>
          ,
          <article-title>Incremental recompilation of laboratory workflows</article-title>
          ,
          <source>in: Proceedings of 14th Transformation Tool Contest (TTC</source>
          <year>2021</year>
          ),
          <year>2021</year>
          . To appear.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>O.</given-names>
            <surname>Beaudoux</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Blouin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Barais</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Jézéquel</surname>
          </string-name>
          , Active Operations on Collections,
          <source>in: Model Driven Engineering Languages and Systems - 13th International Conference, MODELS 2010</source>
          , Oslo, Norway, October 3-
          <issue>8</issue>
          ,
          <year>2010</year>
          , Proceedings,
          <string-name>
            <surname>Part</surname>
            <given-names>I</given-names>
          </string-name>
          , volume
          <volume>6394</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2010</year>
          , pp.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          91-
          <fpage>105</fpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>642</fpage>
          -16145-
          <issue>2</issue>
          _
          <fpage>7</fpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>