<!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>Eindhoven, The Netherlands, April</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>How to Regain Equilibrium without Losing your Balance? Scenarios for Bx Deployment (Discussion Paper)</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>James McKinna Perdita Stevens LFCS, School of Informatics University of Edinburgh</institution>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2016</year>
      </pub-date>
      <volume>8</volume>
      <issue>2016</issue>
      <abstract>
        <p>Much of the bx literature, especially that couched in terms of consistency restoration, presupposes a work ow based on strict sequentialisation of model updates, and in some cases explicitly via a centralised broker of shared state. Put another way: the underlying mathematical semantics of bx take little account of the deployment context for such artefacts, which, from a user's perspective, are typically concurrent and distributed. This discussion proposal invites discussion of the bx deployment context.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Introduction</p>
      <p>All such approaches, however, change rather than solve the problem: when (if ever) does the user of the
bx invoke these operations and what (if anything) do they have to do before they can continue with their real
work? Suppose a bx engine implemented bx as presented in any of these ways; how should it be used? Perhaps
this issue has not had as much attention as it should have done because of the connections with bidirectional
programming, a rather di erent proposition from bidirectional transformation.
2</p>
      <p>Points for discussion
1. The connection between bx and related concepts including version control systems, synchronizers and
collaborative working systems can be both helpful and deeply confusing.
2. It can be helpful because most of us have extensive experience working with the latter, whether it is when
we maintain copies of parts of our lesystem in more than one place, or when we collaborate on papers.
3. It is confusing because it tempts us to think in terms of \con ict", a very unhelpful notion for bx (to be
deliberately provocative). The very notion of \con ict" between your model and mine presupposes that our
models are supposed to be identical (at least in the part where we can observe con ict). We mean by the
term something like: things that should be identical are not identical, must be made identical, and it is not
clear which of the current things should \win".
4. Implicit or explicit is the presence of some kind of archive: the basic picture of consistency restoration has
been augmented with auxiliary machinery such as generalised diff3 [KKP07].
5. But neither the \to be consistent is to be identical" view, nor the presence of an archive, is essential to
talking about concurrent editing of two models.
6. People sometimes assume that in evaluating, say, !R(m; n), we may assume that n is a model that was
consistent with some earlier version of model m. No: nothing in the formalism requires this.
7. [CGMS15] discussed the distinction between strong and weak versions of properties universally quanti ed
over pairs of models, such as continuity. Essentially the strong form considers concurrent editing of the
models, while the weak form does not.
8. In MDD, if I am working on a model which is connected via a bx to your model, what kind of control do I
want over when consistency is restored, and what can I have in principle? What are the implications for a
usable tool?
9. In version control systems we are used to explicitly invoking operations, and we are familiar with the ways
in which this can fail (e.g., minimise con icts by always doing svn up (get) before you svn commit (set)),
but we know that this will not always avoid con ict.
10. In cloud systems such as Dropbox, we do not explicitly invoke operations, but the systems' behaviour can
be perplexing even when not broken [HPAN15].
11. If the bx is not history ignorant { and we know it is unlikely to be { then exactly when consistency is
restored may materially a ect the result. So perhaps we don't want it done invisibly in the background.
12. There is a tension between: I don't want to work for a long time on a model that is now inconsistent
with your model, in case I am wasting e ort ; and, I don't want my ow broken by my tool telling me that
something has changed in your model.
13. Is it acceptable for the bx engine to change part of my model that I'm not actually looking at right now,
without telling me, in order to restore consistency?
14. What can be learned from categorisations such as [DGWC16, AC07]? Or from available (bx or
roundtripping) tools?
15. There is a distinction between models having been concurrently edited, and the user requiring both models
to be changed in order to restore consistency, studied in [XSHT09] for example. What are the implications,
for practical scenarios, of our choices?
[AC07]
[HPAN15] John Hughes, Benjamin C. Pierce, Thomas Arts, and Ulf Norell. Mysteries of dropbox, October
2015. Downloaded January 2016.</p>
      <p>Sanjeev Khanna, Keshav Kunal, and Benjamin C. Pierce. A formal investigation of di 3. In
Arvind and Prasad, editors, Foundations of Software Technology and Theoretical Computer Science
(FSTTCS), December 2007.</p>
      <p>Lambert Meertens. Designing constraint maintainers for user interaction. Unpublished manuscript,
available from http://www.kestrel.edu/home/people/meertens/, June 1998.</p>
      <p>Lambert Meertens. Designing constraint maintainers for user interaction. In Shin-Cheng Mu,
editor, Third Workshop on Programmable Structured Documents, pages 1{3, PSD Laboratory, Tokyo
University, 2005.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <string-name>
            <given-names>Michal</given-names>
            <surname>Antkiewicz</surname>
          </string-name>
          and
          <string-name>
            <given-names>Krzysztof</given-names>
            <surname>Czarnecki</surname>
          </string-name>
          .
          <article-title>Design space of heterogeneous synchronization</article-title>
          . In Ralf Lammel, Joost Visser, and Jo~ao Saraiva, editors,
          <source>Generative and Transformational Techniques in Software Engineering II, International Summer School</source>
          ,
          <string-name>
            <surname>GTTSE</surname>
          </string-name>
          <year>2007</year>
          , Braga,
          <source>Portugal, July 2-7</source>
          ,
          <year>2007</year>
          . Revised Papers, volume
          <volume>5235</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>3</fpage>
          <lpage>{</lpage>
          46. Springer,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [ACG+15]
          <string-name>
            <given-names>Faris</given-names>
            <surname>Abou-Saleh</surname>
          </string-name>
          , James Cheney, Jeremy Gibbons,
          <string-name>
            <surname>James McKinna</surname>
            ,
            <given-names>and Perdita</given-names>
          </string-name>
          <string-name>
            <surname>Stevens</surname>
          </string-name>
          .
          <article-title>Notions of bidirectional computation and entangled state monads</article-title>
          . In Ralf Hinze and Janis Voigtlander, editors,
          <source>Mathematics of Program Construction - 12th International Conference, MPC</source>
          <year>2015</year>
          ,
          <article-title>Konigswinter</article-title>
          , Germany, June 29 - July 1,
          <year>2015</year>
          . Proceedings, volume
          <volume>9129</volume>
          of Lecture Notes in Computer Science, pages
          <volume>187</volume>
          {
          <fpage>214</fpage>
          . Springer,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [ASMG15]
          <string-name>
            <given-names>Faris</given-names>
            <surname>Abou-Saleh</surname>
          </string-name>
          ,
          <article-title>James McKinna</article-title>
          ,
          <string-name>
            <given-names>and Jeremy</given-names>
            <surname>Gibbons</surname>
          </string-name>
          .
          <article-title>Coalgebraic aspects of bidirectional computation</article-title>
          .
          <source>In Alcino Cunha and Ekkart Kindler</source>
          , editors,
          <source>4th International Workshop on Bidirectional Transformations</source>
          , pages
          <volume>16</volume>
          {
          <fpage>30</fpage>
          . CEUR Workshop Proceedings,
          <year>July 2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [CGMS15]
          <string-name>
            <given-names>James</given-names>
            <surname>Cheney</surname>
          </string-name>
          , Jeremy Gibbons,
          <string-name>
            <surname>James McKinna</surname>
            ,
            <given-names>and Perdita</given-names>
          </string-name>
          <string-name>
            <surname>Stevens</surname>
          </string-name>
          .
          <article-title>Towards a principle of least surprise for bidirectional transformations</article-title>
          .
          <source>In Proceedings of Bx</source>
          <year>2015</year>
          , volume
          <volume>1396</volume>
          <source>of CEUR Workshop Proceedings. CEUR-WS.org</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <given-names>Michael</given-names>
            <surname>Johnson</surname>
          </string-name>
          and
          <string-name>
            <given-names>Robert</given-names>
            <surname>Rosebrugh</surname>
          </string-name>
          .
          <article-title>Spans of lenses</article-title>
          . http://ceur-ws.
          <source>org/</source>
          Vol-
          <volume>1133</volume>
          /#bx,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [XSHT09]
          <string-name>
            <given-names>Yingfei</given-names>
            <surname>Xiong</surname>
          </string-name>
          , Hui Song, Zhenjiang Hu, and
          <string-name>
            <given-names>Masato</given-names>
            <surname>Takeichi</surname>
          </string-name>
          .
          <article-title>Supporting parallel updates with bidirectional model transformations</article-title>
          . In Richard F. Paige, editor,
          <source>Theory and Practice of Model Transformations</source>
          , Second International Conference, ICMT 2009, Zurich, Switzerland, June 29-30,
          <year>2009</year>
          . Proceedings, volume
          <volume>5563</volume>
          of Lecture Notes in Computer Science, pages
          <volume>213</volume>
          {
          <fpage>228</fpage>
          . Springer,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>