<!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>F.G. Halasz. 2001. Reflections on NoteCards: seven issues for the
next generation of hypermedia systems. In: ACM Journal on
Computer Documentation (New York</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.1145/507317.507321</article-id>
      <title-group>
        <article-title>Synchronous Collaborative Text Editing in Wikis</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Jessica Rubart</string-name>
          <email>jessica.rubart@hs-owl.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>OWL University of Applied Sciences An der Wilhelmshöhe 44</institution>
          ,
          <addr-line>37671 Höxter</addr-line>
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2017</year>
      </pub-date>
      <volume>41</volume>
      <issue>1</issue>
      <fpage>1119</fpage>
      <lpage>1128</lpage>
      <abstract>
        <p>Wikis are well-known for supporting collaborative writing. They are focusing on asynchronous collaboration. Today, synchronous text editing in the web is supported by several tools and approaches. However, this possibility is still missing in wikis. Based on a prototype implementation, this paper presents design considerations for a wiki integrating synchronous collaborative editing as a special kind of hypertext authoring.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>CCS CONCEPTS</title>
      <p>• Human-centered computing → Collaborative and
social computing systems and tools; Wiki; Synchronous
editors • Human-centered computing → Interaction
paradigms; Hypertext / hypermedia; collaborative
interaction</p>
    </sec>
    <sec id="sec-2">
      <title>1 INTRODUCTION</title>
      <p>Wikis1 support asynchronous collaborative editing of web
pages. The first wiki was invented by Ward Cunningham
in 1995 [6][15]. It was called “WikiWikiWeb” as a
substitute for quick web (“wikiwiki” is a Hawaiian word
for “quick”) [5]. The application scenario was editing and
sharing software engineering design patterns. Design
patterns aim at reusing object-oriented design structures,
i.e. descriptions of communicating objects, interfaces, and
classes to solve a general object-oriented design problem in
a particular context [10]. Both, design patterns and wikis,
have originally been developed as agile forms of
technology following a simple reusable system [6]. The
wiki idea was to provide a website, which allows users to
quickly and easily share, modify, and improve information
in a knowledge base collaboratively [15].</p>
      <p>Today, wikis are not only used for best practice patterns in
software engineering, but also for sharing experiences in
several other domains, such as in project management or IT
service management. Storytelling is, amongst others, a
very important knowledge management instrument
supporting the understanding and sharing of experiences.
The most famous wiki is the online encyclopedia
Wikipedia [6]. It is based on the Wikimedia technology2.
There are currently 286 active Wikipedia instances based
on different languages. In total, there are presently more
than 42 million articles [19] and the number is increasing
strongly. However, if multiple users edit the same page at
the same time, this causes an edit conflict [20]. The user
saving the text at a later point in time than others needs to
merge the changes manually. This can be error-prone.
Through the versioning of wiki pages, errors can be
resolved later, but this can cause much work.</p>
      <p>Synchronous collaborative editing is a special case, but in
the context of edit conflicts it might be very helpful.
Today, synchronous text editing in the web is supported by
several tools and approaches. However, this possibility is
still missing in wikis, even though it can help supporting
the agile idea of self-organizing teams.</p>
      <p>In the following, this paper presents related work, a proof
of concept implementation of a synchronous collaborative
wiki, and first usage feedback. Afterwards, it focuses on
design considerations for such a wiki. The paper ends with
conclusions and future work.</p>
      <p>Copyright held by the author(s).
2 https://www.wikimedia.org/
2</p>
    </sec>
    <sec id="sec-3">
      <title>RELATED WORK</title>
      <p>Hypertext authoring has been worked on in several
directions. In the context of a personal authoring
environment, NoteCards [13] is an important approach, for
example. In NoteCards, notes are represented as cards
holding text and images, and being interconnected with
typed links. Fileboxes are a kind of composite notes useful
to organize large collections of notecards. In parallel,
HyperCard [11] came up as a simpler hypertext authoring
tool for users of Mac computers. Ward Cunningham was
involved in the development of HyperCard. It influenced
his first wiki project [5].</p>
      <p>In gIBIS [3], hypertext networks based on the Issue-Based
Information System (IBIS) approach can be created
asynchronously in a group. IBIS is an argumentation-based
approach focusing on problem solving. Cooperative
hypermedia approaches, such as in [16], focus on
collaborative structuring – both asynchronously as well as
synchronously with fine-grained notifications of other
users’ interactions. In the context of hypertext narrative
there is Tinderbox [2], for example. Tinderbox is a tool for
making, analyzing, and sharing notes focusing on spatial
hypertext, informal semantics, and web collage. Hypertext
notes can be published on the web.</p>
      <p>
        The real-time editors Etherpad3 and Google docs4 support
web-based synchronous collaborative text editing based on
operational transformations as replication and concurrency
control mechanism [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. This shows that the technology for
synchronous collaborative text editing is basically available
and can be integrated in wikis. Webstrates [4] is a research
project and a development platform. It provides a
Webstrates server that persists and synchronizes changes to
the DOM of any page served by the Webstrates server.
Based on this, flexible collaborative hypermedia systems
can be built. For synchronous collaborative editing, the
ShareJS5 library is used.
      </p>
      <p>In [17], patterns for the design of computer-mediated
interaction between humans are described focusing on
reusable best practices. One pattern is called “Shared
Editing” and focuses on the provision of an editor, with
which users can manipulate shared artifacts simultaneously.
Studies, such as in [18], focus on investigating user
behavior during real-time collaboration. It shows that there
are also differences in cultures. For example, in the context
of slide sharing, U.S. participants preferred individual
navigation through the slides, while Japanese participants
wished there was a moderator.
3 http://etherpad.org/
4 https://docs.google.com/
5 https://github.com/share/ShareJS/
3</p>
    </sec>
    <sec id="sec-4">
      <title>PROOF OF CONCEPT</title>
      <p>As a proof of concept, a wiki providing synchronous
collaborative text editing has been implemented [7]. Figure
1 shows a screen dump of the current prototype. Articles,
i.e. wiki pages, can be selected, edited, newly created, or
deleted. Presence awareness is provided, i.e. user names
currently editing one and the same article are visualized. In
addition, editing awareness is provided through the
visualization of remote cursors.</p>
    </sec>
    <sec id="sec-5">
      <title>3.1 Implementation</title>
      <p>
        For integrating synchronous collaborative editing
possibilities, we have used ShareJS. The ShareJS server
uses operational transformations [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] [8], an operation-based
synchronization mechanism for real-time collaboration.
ShareJS does not yet support shared cursors so that the
visualization of remote cursors is implemented in an
application-specific way based on the Ace6 editor.
For this prototype implementation, MeteorJS 7 has been
used as a platform for developing the wiki in JavaScript. In
addition, it provides hosting and deployment features for
testing and evaluating applications. Based on this service,
first users have been able to access the prototype.
MeteorJS is written using NodeJS8. We have integrated
MongoDB 9 as the database backend. As stated above,
ShareJS is used for synchronous editing. Three editors
have been integrated: A simple textarea, the Ace editor, and
CodeMirror 10 . The Ace editor and CodeMirror can be
customized with various themes. The input given in the
editor is assumed to be in the markdown11 format. The
application converts the given markdown text to HTML.
As soon as two or more users edit the same article, they get
synchronized.
      </p>
      <p>TogetherJS12 is another JavaScript library, which supports
collaborative text editing. In addition, it already supports
shared cursors and integrates a text chat as well as an audio
chat via WebRCT13. In our prototype, the communication
features of TogetherJS have been integrated. While
ShareJS synchronizes JavaScript models, TogetherJS
integrates directly through the DOM (Document Object
Model)14.
6 https://github.com/ajaxorg/ace/
7 https://www.meteor.com/
8 https://nodejs.org/
9 https://www.mongodb.com/
10 https://codemirror.net/
11 https://tools.ietf.org/html/rfc7763/
12 https://togetherjs.com/
13 https://webrtc.org/
14 https://www.w3.org/DOM/
3.2</p>
    </sec>
    <sec id="sec-6">
      <title>First Usage Feedback</title>
      <p>We did a first evaluation with a group of students using
Groupware Observational User Testing [12]. With this
evaluation method, evaluators observe users performing
collaborative tasks in a laboratory setting. Problems are
monitored and users are asked to think aloud about what
they are doing. In addition, we have asked about feedback
through a final questionnaire. The students were
distributed in different rooms and were asked to edit
several web pages – similar to articles in Wikipedia.
Mostly, they have used the chat to communicate and
coordinate themselves. The audio chat did not work
properly on all browsers. Communication is very
important in synchronous collaboration settings.
As a result, the prototype system basically illustrates the
advantages of integrating synchronous editing in wikis
using operational transformations. Conflict situations and
complex merging efforts can be avoided. However, this
first evaluation also identified some drawbacks of our
prototype system:
For using the communication tool, the users needed to
manage a session by themselves, i.e. to invite the other
users whereas the shared editing was coupled
automatically.</p>
      <p>Not all integrated editors included the visualization of
remote cursors. The cursors are important awareness
instruments. Without remote cursors, the users did not
know immediately where the others were editing.
Students, who did not know the markdown syntax well,
needed a lot of time to search and write according to the
syntax. For them, the synchronous collaboration helped to
learn the language.</p>
      <p>In a few cases the response time of the editor was
considered slow.
4</p>
    </sec>
    <sec id="sec-7">
      <title>DESIGN CONSIDERATIONS</title>
      <p>In this section, we will look at and discuss design
considerations from two perspectives, which are detailed in
the following subsections:
 Collaborative writing strategies
as well as
 Groupware and hypermedia design issues
4.1</p>
    </sec>
    <sec id="sec-8">
      <title>Collaborative Writing Strategies</title>
      <p>There are five well-known collaborative writing strategies
[14].</p>
      <p>Firstly, a single author might write on behalf of a team. In
this case, from the technical point of view collaborative
authoring features can be reduced to sharing the results.
In sequential single writing, the shared document is passed
from one author to the next one, after the author has written
her or his part of the document. For this strategy,
traditional wikis are already well-suited as edit conflicts
cannot occur.</p>
      <p>In parallel writing, authors work on their part of the
document at the same time, respectively. This can be
managed with a traditional wiki assigning each group
member a separate starting wiki page. However, if parallel
writing does not mean separate sections, but different roles
in the authoring process, such as author, editor, or reviewer,
then edit conflicts might occur (dependent on the work
process).</p>
      <p>In reactive writing, a document is created in real-time
without substantial preplanning. It is also known as joint
writing, consensus writing, or reflective writing. Authors
react to each other’s changes or additions, e.g. by creating
new sections or changing existing ones. In reactive
writing, a high level of consensus is needed and can be
developed. Version control is more complex and
synchronous collaborative writing is necessary.</p>
      <p>Finally, in mixed mode two or more of the collaborative
writing strategies are combined so that synchronous
collaborative writing can avoid edit conflicts and support
consensus.</p>
    </sec>
    <sec id="sec-9">
      <title>4.3 Groupware and Hypermedia Design Issues</title>
      <p>According to well-known Groupware experiences, such as
in [9], it is important to think about awareness features –
features that make visible other users and other users’
interactions, such as presence awareness and shared
cursors. Also, in asynchronous collaboration, awareness
features are important, e.g. to show which relevant wiki
pages have been updated since the last login.</p>
      <p>Another important issue is floor control. Shall authors be
able to write simultaneously or is there a moderator or a
predefined process passing the floor to the different
authors? In our proof of concept implementation, we give
authors, editing the same page at the same time,
simultaneous writing possibilities. In this way, reactive
writing is possible so that consensus can be built and
editing conflicts can be avoided.</p>
      <p>Session control is another issue to consider. Do authors
need to invite others? In our prototype system, all authors,
editing the same page at the same time, are automatically in
a shared editing session. It could also be useful to ask
writers, with which writing strategy they would like to
continue. In this context, a voting mechanism can be
helpful. A shared session should also establish a
communication channel automatically.</p>
      <p>A joint editing session can either be planned or take place
by chance. In any case, it is helpful to provide support for
latecomers, i.e. people joining later than others. Can they
understand what happened? In our prototype system, they
can scroll through the document and see what has been
edited. In addition, versioning support is usually useful.
Furthermore, dedicated latecomer functionality might be
helpful, such as recording and playing the session history.
Another issue are customized views. In our prototype, we
have integrated three different editors, but the authors see
and work on the same text. In addition, they can scroll
individually. In this context, it needs to be decided which
parts of the shared data need to be coupled – the text or the
text and the navigation? Or can this be customized?
It is also interesting to think about the integration of
WYSIWYG editors as not all authors want to use markup
languages.</p>
      <p>Finally, are there any privacy concerns that need to be
considered? Usually, it is important to give users control
over which information gets shared and what remains
private.</p>
      <p>According to Halasz’ seven issues for hypermedia systems
[13], versioning is an important feature to maintain and
manipulate a history of changes. Wikis already incorporate
versioning support. When integrating synchronous
collaborative writing, one needs to differentiate versions
necessary for concurrency control from document versions,
which the authors would like to submit. Here, it might also
be useful to integrate decision support to help authors to
decide when to submit a new joint version. Alternatively,
the system could be able to submit sections of a wiki page
separately as new versions.</p>
      <p>Regarding collaborative work, Halasz points out that a high
degree of concurrent work is important. From the
viewpoint of the collaborative writing strategies, this is the
case with reactive writing. In asynchronous collaboration,
locking mechanisms shall be fine grained. Synchronous
collaborative editing capabilities complement this view.
5</p>
    </sec>
    <sec id="sec-10">
      <title>CONCLUSIONS AND FUTURE WORK</title>
      <p>We have motivated the integration of synchronous
collaborative editing capabilities in wikis and presented a
proof of concept implementation. Based on this, we have
described first usage feedback and design considerations
for this special kind of hypertext authoring.</p>
      <p>Currently, we are exploring further JavaScript libraries for
this hypertext authoring purpose to improve the prototype
implementation.</p>
      <p>In our future work, we would like to make a user study
among Wikipedia authors to get more feedback and
requirements regarding synchronous editing in wikis.</p>
      <p>J. Rubart, J.M. Haake, D.A. Titze, and W. Wang. 2001. Organizing
Shared Enterprise Workspaces Using Component-Based
Cooperative Hypermedia. In Proceedings of Hypertext’01, ACM
Press.</p>
      <p>T. Schümmer, and S. Lukosch. Patterns for Computer-Mediated
Interaction. John Wiley &amp; Sons. 2007.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>Mehdi</given-names>
            <surname>Ahmed-Nacer</surname>
          </string-name>
          ,
          <string-name>
            <surname>Claudia-Lavinia</surname>
            <given-names>Ignat</given-names>
          </string-name>
          , Gérald Oster, HyunGul Roh, and
          <string-name>
            <given-names>Pascal</given-names>
            <surname>Urso</surname>
          </string-name>
          .
          <year>2011</year>
          .
          <article-title>Evaluating CRDTs for Real-time Document Editing</article-title>
          .
          <source>In Proceedings of the ACM Symposium on Document Engineering (DocEng'11)</source>
          , Mountain View, California, USA, ACM Press, New York.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <string-name>
            <given-names>Mark</given-names>
            <surname>Bernstein</surname>
          </string-name>
          .
          <year>2003</year>
          . Collage, Composites, Construction.
          <source>In Proceedings of Hypertext'03</source>
          , ACM Press.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <surname>Conklin</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Begemann</surname>
            ,
            <given-names>M.L. gIBIS</given-names>
          </string-name>
          <year>1988</year>
          .
          <article-title>A Hypertext Tool for Exploratory Policy Discussion</article-title>
          .
          <source>In Proceedings of Computer Supported Cooperative Work (CSCW)</source>
          , ACM Press, pp.
          <fpage>140</fpage>
          -
          <lpage>152</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <given-names>Niels</given-names>
            <surname>Olof</surname>
          </string-name>
          Bouvin and
          <string-name>
            <given-names>Clemens N.</given-names>
            <surname>Klokmose</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>Classical Hypermedia Virtues on the Web with Webstrates</article-title>
          .
          <source>In Proceedings of Hypertext and Social Media 2016 (HT'16)</source>
          , ACM Press.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <given-names>Ward</given-names>
            <surname>Cunningham</surname>
          </string-name>
          .
          <year>2014</year>
          . Wiki History.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          http://wiki.c2.com/?WikiHistory. Retrieved June 15,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <string-name>
            <given-names>Ward</given-names>
            <surname>Cunningham</surname>
          </string-name>
          and
          <string-name>
            <given-names>Michael</given-names>
            <surname>Mehaffy</surname>
          </string-name>
          .
          <year>2013</year>
          .
          <article-title>Wiki as Pattern Language</article-title>
          .
          <source>In Proceedings of the 20th Conference on Pattern Languages of Programs (PLoP'13)</source>
          , Monticello, Illinois, USA, ACM Press, New York.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          <string-name>
            <given-names>Sandeep</given-names>
            <surname>Reddy Dareddy</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>Integrating Operational Transformations in Wikis: Synchronous Editing in Wikis. Master's thesis</article-title>
          . OWL University of Applied Sciences, Lemgo, Germany.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <string-name>
            <given-names>C. A.</given-names>
            <surname>Ellis</surname>
          </string-name>
          and
          <string-name>
            <given-names>S. J.</given-names>
            <surname>Gibbs</surname>
          </string-name>
          .
          <article-title>Concurrency Control in Groupware Systems</article-title>
          .
          <source>In: SIGMOD Record: Proceedings of the ACM SIGMOD Conference on the Management of Data - SIGMOD '89</source>
          ,
          <issue>18</issue>
          (
          <issue>2</issue>
          ):
          <fpage>399</fpage>
          -
          <lpage>407</lpage>
          , May
          <year>1989</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          <string-name>
            <given-names>C. A.</given-names>
            <surname>Ellis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. J.</given-names>
            <surname>Gibbs</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Rein</surname>
          </string-name>
          .
          <year>1991</year>
          .
          <article-title>Groupware: Some Issues and Experiences</article-title>
          .
          <source>In Communications of the ACM</source>
          , Vol.
          <volume>34</volume>
          , No.
          <volume>1</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          1995.
          <article-title>Design Patterns: Elements of Reusable Object-Oriented Software</article-title>
          . Addison-Wesley.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          <string-name>
            <given-names>D.</given-names>
            <surname>Goodman</surname>
          </string-name>
          .
          <source>Complete HyperCard 2</source>
          .0 Handbook.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          <string-name>
            <given-names>Random</given-names>
            <surname>House Inc</surname>
          </string-name>
          .,
          <year>1990</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          <string-name>
            <given-names>Carl</given-names>
            <surname>Gutwin</surname>
          </string-name>
          and
          <string-name>
            <given-names>Saul</given-names>
            <surname>Greenberg</surname>
          </string-name>
          .
          <year>2000</year>
          .
          <article-title>The Mechanics of Collaboration: Developing Low Cost Usability Evaluation Methods for Shared Workspaces</article-title>
          .
          <source>In Proceedings ot the 9th IEEE Int. Workshop on Enabling Technologies: Infrastructure for Collaborative Enterprises (WETICE '00)</source>
          ,
          <fpage>98</fpage>
          -
          <lpage>103</lpage>
          . IEEE Comp.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>