 Operational transformation

 "Operation Transformation" redirects here. For the crossmedia event, see Operation Transformation (TV series).
Operational transformation (OT) is a technology for supporting a range of collaboration functionalities in advanced groupware systems. OT was originally invented for consistency maintenance and concurrency control in collaborative editing of plain text documents. Two decades of research has extended its capabilities and expanded its applications to include group undo, locking, conflict resolution, operation notification and compression, groupawareness, HTML/XML and treestructured document editing, collaborative office productivity tools, applicationsharing, and collaborative computeraided media design tools (see OTFAQ). In 2009 OT has been adopted as a core technique behind the collaboration features in Google Wave and Google Docs, which are taking OT to a new range of webbased applications.
Contents
History
Operational Transformation was pioneered by C. Ellis and S. Gibbs^{[1]} in the GROVE (GRoup Outline Viewing Edit) system in 1989. Several years later, some correctness issues were identified and several approaches^{[2]} ^{[3]} ^{[4]} ^{[5]} were independently proposed to solve these issues, which was followed by another decade of continuous efforts of extending and improving OT by a community of dedicated researchers. In 1998, a Special Interest Group of Collaborative Editing (SIGCE) was set up to promote communication and collaboration among CE and OT researchers. Since then, SIGCE holds annual CE workshops in conjunction with major CSCW (Computer Supported Cooperative Work) conferences, such as ACM CSCW, GROUP and ECSCW.
System architecture
Collaborative systems using OT typically adopt a replicated architecture for the storage of shared documents to ensure good responsiveness in high latency environments, such as the Internet. The shared documents are replicated at the local storage of each collaborating site, so editing operations can be performed at local sites immediately and then propagated to remote sites. Remote editing operations arriving at a local site are typically transformed and then executed. The transformation ensures that applicationdependent consistency criteria are achieved across all sites. The lockfree, nonblocking property of OT makes the local response time not sensitive to networking latencies. As a result, OT is particularly suitable for implementing collaboration features such as group editing in the Web/Internet context.
Basics
The basic idea of OT can be illustrated by using a simple text editing scenario as follows. Given a text document with a string "abc" replicated at two collaborating sites; and two concurrent operations:
 O1 = Insert[0, "x"] (to insert character "x" at position "0")
 O2 = Delete[2, "c"] (to delete the character "c" at position "2")
generated by two users at collaborating sites 1 and 2, respectively. Suppose the two operations are executed in the order of O1 and O2 (at site 1). After executing O1, the document becomes "xabc". To execute O2 after O1, O2 must be transformed against O1 to become: O2' = Delete[3, "c"], whose positional parameter is incremented by one due to the insertion of one character "x" by O1. Executing O2' on "xabc" shall delete the correct character "c" and the document becomes "xab". However, if O2 is executed without transformation, then it shall incorrectly delete character "b" rather than "c". The basic idea of OT is to transform (or adjust) the parameters of an editing operation according to the effects of previously executed concurrent operations so that the transformed operation can achieve the correct effect and maintain document consistency.
Consistency models
One functionality of OT is to support consistency maintenance in collaborative editing systems. A number of consistency models have been proposed in the research community, some generally for collaborative editing systems, and some specifically for OT algorithms.
The CC model
In^{[1]}, two consistency properties have been required for collaborative editing systems:
 Precedence (Causality) property: ensures the execution order of causally dependent operations be the same as their natural causeeffect order during the process of collaboration. The causal relationship between two operations is defined formally by Lamport's "happenedbefore" relation. When two operations are not causally dependent, they are concurrent. Two concurrent operations can be executed in different order on two different document copies.
 Convergence: ensures the replicated copies of the shared document be identical at all sites at quiescence (i.e., all generated operations have been executed at all sites).
Since concurrent operations may be executed in different orders and editing operations are not commutative in general, copies of the document at different sites may diverge (inconsistent). The first OT algorithm was proposed in^{[1]} to achieve convergence in a group text editor; the statevector (or vector clock in classic distributed computing) was used to preserve the precedence property.
The CCI model
The CCI model was proposed as a general framework for consistency management in collaborative editing systems^{[3]}^{[6]}. Under the CCI model, three consistency properties are grouped together:
 Causality Preservation : the same as the precedence property in the CC Model.
 Convergence: the same as the convergence property in the CC Model.
 Intention Preservation: ensures that the effect of executing an operation on any document state be the same as the intention of the operation. The intention of an operation O is defined as the execution effect which can be achieved by applying O on the document state from which O was generated.
The CCI model extends the CC model with a new criterion: Intention Preservation. The essential difference between convergence and intention preservation is that the former can always be achieved by a serialization protocol, but the latter may not be achieved by any serialization protocol if operations were always executed in their original forms. Achieving the nonserialisable intention preservation property has been a major technical challenge. OT has been found particularly suitable for achieving convergence and intention preservation in collaborative editing systems.
The CCI model is independent of document types or data models, operation types, or supporting techniques (OT, multiversioning, serialization, undo/redo). It was not intended for correctness verification for techniques (e.g. OT) that are designed for specific data and operation models and for specific applications. In^{[3]}, the notion of intention preservation was defined and refined at three levels: First, it was defined as a generic consistency requirement for collaborative editing systems; Second, it was defined as operation contextbased pre and post transformation conditions for generic OT functions; Third, it was defined as specific operation verification criteria to guide the design of OT functions for two primitive operations: stringwise insert and delete, in collaborative plain text editors.
The CSM model
The condition of intention preservation was not formally specified in the CCI model for purposes of formal proofs. The SDT^{[7]} and LBT^{[8]} approaches try to formalize an alternative conditions that can be proved. The consistency model proposed in these two approaches consist of the following formal conditions:
 Causality: the same definition as in CC Model
 Singleoperation effects:the effect of executing any operation in any execution state achieves the same effect as in its generation state
 Multioperation effects: the effects relation of any two operations is maintained after they are both executed in any states
The CA model
The above CSM model requires that a total order of all objects in the system be specified. Effectively, the specification is reduced to new objects introduced by insert operations. However, specification of the total order entails applicationspecific policies such as those to break insertion ties (i.e., new objects inserted by two current operations at the same position). Consequently, the total order becomes application specific. Moreover, in the algorithm, the total order must be maintained in the transformation functions and control procedure, which increases time/space complexities of the algorithm.
Alternatively, the CA model is based on the Admissibility Theory^{[9]}. The CA model includes two aspects:
 Causality: the same definition as in CC Model
 Admissibility: The invocation of every operation is admissible in its execution state, i.e., every invocation must not violate any effects relation (object ordering) that has been established by earlier invocations.
These two conditions imply convergence. All cooperating sites converge in a state in which there is a same set of objects that are in the same order. Moreover, the ordering is effectively determined by the effects of the operations when they are generated. Since the two conditions also impose additional constraints on object ordering, they are actually stronger than convergence. The CA model and the design/prove approach are elaborated in the 2005 paper ^{[9]}. It no longer requires that a total order of objects be specified in the consistency model and maintained in the algorithm, which hence results in reduced time/space complexities in the algorithm.
OT system structure
OT is a system of multiple components. One established strategy of designing OT systems^{[1]}^{[2]}^{[3]}^{[4]}^{[10]}^{[11]} is to separate the highlevel Transformation Control (or Integration) Algorithms from the lowlevel Transformation Functions.
The transformation control algorithm is concerned with determining:
 Which operation should be transformed against a causallyready new operation
 The order of the transformations
The control algorithm invokes a corresponding set of transformation functions, which determine how to transform one operation against another according to the operation types, positions, and other parameters. The correctness responsibilities of these two layers are formally specified by a set of transformation properties and conditions. Different OT systems with different control algorithms, functions, and communication topologies require maintaining different sets of transformation properties. The separation of an OT system into these two layers allows for the design of generic control algorithms that are applicable to different kinds of application with different data and operation models.
The other alternative approach was proposed in^{[9]}. In their approach, an OT algorithm is correct if it satisfies two formalized correctness criteria:
 Causality preservation
 Admissibility preservation
As long as these two criteria are satisfied, the data replicas converge (with additional constraints) after all operations are executed at all sites. There is no need to enforce a total order of execution for the sake of achieving convergence. Their approach is generally to first identify and prove sufficient conditions for a few transformation functions, and then design a control procedure to ensure those sufficient conditions. This way the control procedure and transformation functions work synergistically to achieve correctness, i.e., causality and admissibility preservation. In their approach, there is no need to satisfy transformation properties such as TP2 because it does not require that the (inclusive) transformation functions work in all possible cases.
OT data and operation models
There exist two underlying models in each OT system: the data model that defines the way data objects in a document are addressed by operations, and the operation model that defines the set of operations that can be directly transformed by OT functions. Different OT systems may have different data and operation models. For example, the data model of the first OT system^{[1]} is a single linear address space; and its operation model consists of two primitive operations: characterwise insert and delete. The basic operation model has been extended to include a third primitive operation update to support collaborative Word document processing^{[12]} and 3D model editing^{[13]}. The basic OT data model has been extended into a hierarchy of multiple linear addressing domains^{[14]} ^{[15]}, which is capable of modeling a broad range of documents. A data adaption process is often required to map applicationspecific data models to an OTcompliant data model^{[16]}^{[17]}.
There exist two approaches to supporting application level operations in an OT system:
 Generic operation model approach: which is to devise transformation functions for three primitive operations: insert, delete, and update^{[16]}. This approach needs an operation adaptation process to map application operations to these primitive operations. In this approach, the OT operation model is generic, so transformation functions can be reused for different applications.
 Applicationspecific operation model approach: which is to devise transformation functions for each pair of application operations^{[17]}^{[18]}. For an application with m different operations, m x m transformation functions are needed for supporting this application. In this approach, transformation functions are applicationspecific and cannot be reused in different applications.
OT functions
Various OT functions have been designed for OT systems with different capabilities and used for different applications. OT functions used in different OT systems may be named differently, but they can be classified into two categories:
 one is Inclusion Transformation (or Forward Transformation): IT(Oa, Ob) or T(op_{1},op_{2}), which transforms operation Oa against another operation Ob in such a way that the impact of Ob is effectively included; and
 the other is Exclusion Transformation (or Backward Transformation): ET (Oa, Ob) or T ^{− 1}(op_{1},op_{2}), which transforms operation Oa against another operation Ob in such a way that the impact of Ob is effectively excluded.
For example, suppose a type String with an operation ins(p, c,sid) where p is the position of insertion, c the character to insert and sid the identifier of the site that has generated the operation. We can write the following transformation function:
T(ins(p_{1},c_{1},sid_{1}),ins(p_{2},c_{2},sid_{2})) : if (p_{1} < p_{2}) return ins(p_{1},c_{1},sid_{1}) else if (p_{1} = p_{2} and sid_{1} < sid_{2}) return ins(p_{1},c_{1},sid_{1}) else return ins(p_{1} + 1,c_{1},sid_{1})
T^{ − 1}(ins(p_{1},c_{1},sid_{1}),ins(p_{2},c_{2},sid_{2})) : if (p_{1} < p_{2}) return ins(p_{1},c_{1},sid_{1}) else if (p_{1} = p_{2} and sid_{1} < sid_{2}) return ins(p_{1},c_{1},sid_{1}) else return ins(p_{1} − 1,c_{1},sid_{1})
Some OT systems use both IT and ET functions, and some use only IT functions. The complexity of OT function design is determined by various factors:
 the functionality of the OT system: whether the OT system supports do (consistency maintenance), undo, locking^{[19]}, awareness, application sharing^{[16]}^{[20]}^{[21]}^{[22]}, etc.;
 the correctness responsibility in the OT system: what transformation properties (CP1/TP1, CP2/TP2, IP2, IP3, RP) to meet; whether ET is used;
 the operation model of the OT system: whether the OT operation model is generic (e.g. primitive insert, delete, update), or applicationspecific (all operations of the target application); and
 the data model of the OT system: whether the data in each operation is characterwise (an individual object), stringwise (a sequence of objects), hierarchical, or other structures.
Transformation properties
Various transformation properties for ensuring OT system correctness have been identified. These properties can be maintained by either the transformation control algorithm^{[3]}^{[4]}^{[11]}^{[17]}^{[23]}^{[24]} or by the transformation functions.^{[25]} Different OT system designs have different division of responsibilities among these components. The specifications of these properties and preconditions of requiring them are given below.
Convergence properties
The following two properties are related to achieving convergence.
 CP1/TP1: For every pair of concurrent operations op_{1} and op_{2} defined on the same state, the transformation function T satisfies CP1/TP1 property if and only if: where denotes the sequence of operations containing op_{i} followed by op_{j};and where denotes equivalence of the two sequences of operations. CP1/TP1 Precondition: CP1/TP1 is required only if the OT system allows any two operations to be executed in different orders.
 CP2/TP2: For every three concurrent operations op_{1},op_{2} and op_{3} defined on the same document state, the transformation function T satisfies CP2/TP2 property if and only if: . CP2/TP2 stipulates equality between two operations transformed with regard to two equivalent sequences of operations: the transformation of op_{3} against the sequence of operation op_{2} followed by T(op_{1},op_{2}) must give the same operation as the transformation of op_{3} against the sequence formed by op_{1} and T(op_{2},op_{1}). CP2/TP2 Precondition: CP2/TP2 is required only if the OT systems allows two operations op_{1} and op_{2} be ITtransformed in two different document states (or contexts).
Inverse properties
The following three properties are related to achieving the desired group undo effect. They are:
 IP1: Given any document state S and the sequence , we have , which means the sequence is equivalent to a single identity operation I with respect to the effect on the document state. This property is required in an OT system for achieving the correct undo effect, but is not related to IT functions.
 IP2: The property IP2 expresses that the sequence has no effect on the transformation of other operations. The transformation functions satisfy IP2 if and only if: , which means that the outcome of transforming op_{x} against the sequence is equivalent to the outcome of transforming op_{x} against the identity operation I. IP2Precondition: IP2 is required only if the OT systems allows an operation op_{x} to be transformed against a pair of do and undo operations , onebyone.
 IP3: Given two concurrent operations op_{1} and op_{2} defined on the same document state (or context), if and . The transformation functions satisfy the property IP3 if and only if , which means that the transformed inverse operation is equal to the inverse of the transformed operation . IP3Precondition: IP3 is required only if the OT system allows an inverse operation to be transformed against an operation op_{2} that is concurrent and defined on the same document state as (or contextequivalent to) op_{1}.
OT control (integration) algorithms
Various OT control algorithms have been designed for OT systems with different capabilities and for different applications. The complexity of OT control algorithm design is determined by multiple factors. A key differentiating factor is whether an algorithm is capable of supporting concurrency control (do) and/or group undo ^{[2]}^{[6]}^{[10]}^{[24]} ^{[26]}. In addition, different OT control algorithm designs make different tradeoffs in:
 assigning correctness responsibilities among the control algorithm and transformation functions, and
 timespace complexity of the OT system.
Most existing OT control algorithms for concurrency control adopts the theory of causality/concurrency as the theoretical basis: causally related operations must be executed in their causal order; concurrent operations must be transformed before their execution. However, it was well known that concurrency condition alone cannot capture all OT transformation conditions^{[2]}^{[3]}^{[4]}^{[6]}^{[27]}. In a recent work, the theory of operation context has been proposed to explicitly represent the notion of a document state, which can be used to formally express OT transformation conditions for supporting the design and verification of OT control algorithms^{[24]}.
The following table gives an overview of some existing OT control/integration algorithms
OT Control/Integration Algorithms(Systems) Required Transformation Function Types Support OTbased Do? Support OTbased Undo? Transformation Properties Supported By Control Algorithm Transformation Properties Supported By Transformation Functions Transformation Ordering and Propagation Constraints Timestamp dOPT^{[1]}(GROVE) T (IT) Yes No None CP1/TP1, CP2/TP2 Causal order State vector selectiveundo^{[10]}(DistEdit) Transpose (IT and ET) No Selective Undo NA CP1/TP1, CP2/TP2, RP, IP1, IP2, IP3 Causal order ?? adOPTed^{[2]}^{[26]}(JOINT EMACS) LTransformation (IT) Yes Chronological Undo IP2, IP3 CP1/TP1, CP2/TP2, IP1 Causal order State vector Jupiter^{[4]} xform (IT) Yes No CP2/TP2 CP1/TP1 Causal order + Central transformation server Scalar Google Wave OT^{[17]} transform and composition(IT) Yes ?? CP2/TP2 CP1/TP1 Causal order + Central transformation server + stop'n'wait propagation protocol Scalar GOT^{[3]}(REDUCE) IT and ET Yes No CP1/TP1, CP2/TP2 None Causal order + Discontinuous total order State vector GOTO^{[5]}(REDUCE, CoWord, CoPPT, CoMaya) IT and ET Yes No None CP1/TP1, CP2/TP2 Causal order State vector AnyUndo^{[6]}(REDUCE, CoWord, CoPPT, CoMaya) IT and ET No Undo any operation IP2, IP3, RP IP1, CP1/TP1, CP2/TP2 Causal order State vector SCOP^{[23]}(NICE) IT Yes No CP2/TP2 CP1/TP1 Causal order + Central transformation server Scalar COT ^{[24]}(REDUCE, CoWord, CoPPT, CoMaya) IT Yes Undo any operation CP2/TP2, IP2, IP3 CP1/TP1, (no ET therefore no IP1 necessary) Causal order + Discontinuous total order Context vector TIBOT ^{[28]} IT Yes No CP2/TP2 CP1/TP1 Causal order Scalar SOCT4^{[11]} Forward transformation (IT) Yes No CP2/TP2 CP1/TP1 Causal order + Continuous Total Order Scalar SOCT2^{[27]} Forward Transformation(IT) and Backward Transformation(ET) Yes No None CP1/TP1, CP2/TP2, RP Causal order State vector MOT2^{[29]} Forward transformation (IT) Yes No ?? CP1/TP1 ?? scalar A continuous total order is a strict total order where it possible to detect a missing element i.e. 1,2,3,4,... is a continuous total order, 1,2,3,5,... is not a continuous total order.
The transformationbased algorithms proposed in ^{[8]}^{[9]} are based on the alternative consistency models "CSM" and "CA" as described above. Their approaches differ from those listed in the table. They use vector timestamps for causality preservation. The other correctness conditions are "single"/"multi" operation effects relation preservation or "admissibility" preservation. Those conditions are ensured by the control procedure and transformation functions synergistically. There is no need to discuss TP1/TP2 in their work. Hence they are not listed in the above table.
There exist some other optimistic consistency control algorithms that seek alternative ways to design transformation algorithms, but do not fit well with the above taxonomy and characterization. For example, Mark and Retrace^{[30]}
The correctness problems of OT led to introduction of transformationless postOT schemes, such as WOOT^{[31]}, Logoot^{[32]} and Causal Trees (CT)^{[33]}. "PostOT" schemes decompose the document into atomic operations, but they workaround the need to transform operations by employing a combination of unique symbol identifiers, vector timestamps and/or tombstones.
Critique of OT
While the classic OT approach of defining operations through their offsets in the text seems to be simple and natural, realworld distributed systems raise serious issues^{[citation needed]}. Namely, that operations propagate with finite speed, states of participants are often different, thus the resulting combinations of states and operations are extremely hard to foresee and understand. As Li and Li put it, Due to the need to consider complicated case coverage, formal proofs are very complicated and errorprone, even for OT algorithms that only treat two characterwise primitives (insert and delete).^{[34]}
Talk:Operational transformation
OT software
 Collaborative plain text editors (One dimensional documents)
 Subethaedit (commercial)
 Ace (free, opensource)
 Gobby (free, opensource)
 MoonEdit(free for noncommercial use)
 ICT^{[21]}^{[22]} is a research prototype that allows for any (text) editors any editing commands. Its consistency control is based on a combination of diffing and operational transformation.
 Collaborative productivity applications (Two dimensional documents)
 CoWord^{[35]} is a Collaborative realtime word processor based on Microsoft Word
 CoPowerPoint is a Collaborative realtime presentation editor based on Microsoft PowerPoint
 Collaborative computeraided media design tools (Threedimensional documents)
 CoMaya is a realtime collaborative 3D design tool based on Autodesk Maya.
 Webbased applications
 Google Docs & Google Wave.
 EtherPad is a free opensource web based multiparty editor which has been purchased by Google in support of their collaborative computing projects.
 Mockingbird is an online wireframing and mockup tool that allows for realtime collaboration using OT
 Version control systems
 So6^{[36]} is a free opensource version control system integrated in the LibreSource platform.
 Operational Transformation Engines
 beWeeVee .NET Based SDK which provides OT capabilities.
 CodoxEngine Complete OT SDK which contains technologies used to build CodoxWord, supports Visual C++ .NET, Visual C# .NET, Java
 Web Application Development Frameworks
 Open Cooperative Web Framework, a Dojo Foundation Project uses Operational Transformation algorithms to enable Cooperative web concepts.
See also
References
 ^ ^{a} ^{b} ^{c} ^{d} ^{e} ^{f} Ellis, C.A.; Gibbs, S.J. (1989). "Concurrency control in groupware systems". ACM SIGMOD Record 18 (2): 399–407. doi:10.1145/66926. http://portal.acm.org/citation.cfm?id=66926.66963&coll=portal&dl=ACM. Retrieved 20070726.
 ^ ^{a} ^{b} ^{c} ^{d} ^{e} Ressel, Matthias and NitscheRuhland, Doris and Gunzenh\"{a}user, Rul (1996). "An integrating, transformationoriented approach to concurrency control and undo in group editors". CSCW '96: Proceedings of the 1996 ACM conference on Computer supported cooperative work. pp. 288–297. doi:10.1145/240080.240305.
 ^ ^{a} ^{b} ^{c} ^{d} ^{e} ^{f} ^{g} Chengzheng Sun; Xiaohua Jia ; Yanchun Zhang ; Yun Yang ; David Chen (1998). "Achieving convergence, causality preservation, and intention preservation in realtime cooperative editing systems". ACM Trans. Comput.Hum. Interact. 5 (1): 63–108. doi:10.1145/274444.274447.
 ^ ^{a} ^{b} ^{c} ^{d} ^{e} Nichols, D.A.; Curtis, P.; Dixon, M.; Lamping, J. (1995). "Highlatency, lowbandwidth windowing in the Jupiter collaboration system". Proceedings of the 8th annual ACM symposium on User interface and software technology: 111–120. ftp://ftp.lambda.moo.mud.org/pub/MOO/papers/JupiterWin.ps.
 ^ ^{a} ^{b} Sun, C.; Ellis, C. (1998). "Operational transformation in realtime group editors: issues, algorithms, and achievements". Proceedings of the 1998 ACM conference on Computer supported cooperative work. ACM Press New York, NY, USA. pp. 59–68. http://portal.acm.org/citation.cfm?id=289444.289469.
 ^ ^{a} ^{b} ^{c} ^{d} C. Sun (2002). "Undo as concurrent inverse in group editors". ACM Trans. Comput.Hum. Interact. 9 (4): 309–361. doi:10.1145/586081.586085.
 ^ Du Li; Rui Li (2004). "Preserving Operation Effects Relation in Group Editors". Proceedings of the ACM CSCW'04 Conference on ComputerSupported Cooperative Work. ACM Press New York, NY, USA. pp. 457–466.
 ^ ^{a} ^{b} Rui Li; Du Li (2007). [10.1109/TPDS.2007.35 "A New Operational Transformation Framework for RealTime Group Editors"]. IEEE Transactions on Parallel and Distributed Systems (IEEE Press) 18 (3): 307–319. doi:10.1109/TPDS.2007.35. 10.1109/TPDS.2007.35.
 ^ ^{a} ^{b} ^{c} ^{d} Rui Li; Du Li (2005). "CommutativityBased Concurrency Control in Groupware". Proceedings of the First IEEE Conference on Collaborative Computing: Networking, Applications and Worksharing (CollaborateCom'05).
 ^ ^{a} ^{b} ^{c} Prakash, Atul and Knister, Michael J. (1994). "A framework for undoing actions in collaborative systems". ACM Trans. Comput.Hum. Interact. 1 (4): 295–330. doi:10.1145/198425.198427.
 ^ ^{a} ^{b} ^{c} Vidot, N.; Cart, M.; Ferrie, J.; Suleiman, M. (2000). "Copies convergence in a distributed realtime collaborative environment". Proceedings of the 2000 ACM conference on Computer supported cooperative work. ACM Press New York, NY, USA. pp. 171–180. http://www.lirmm.fr/~nvidot/php/get.php?file=vidotcscw2000.pdf.
 ^ D. Sun and S. Xia and C. Sun and D. Chen (2004). "Operational transformation for collaborative word processing". Proc. of the ACM Conf. on ComputerSupported Cooperative Work. pp. 437–446.
 ^ Agustina and F. Liu and S. Xia and H. Shen and C. Sun (November 2008). "CoMaya: Incorporating advanced collaboration capabilities into {3D} digital media design tools". Proc. of ACM Conf. on ComputerSupported Cooperative Work. pp. 5–8.
 ^ Davis, Aguido Horatio and Sun, Chengzheng and Lu, Junwei (2002). "Generalizing operational transformation to the standard general markup language". CSCW '02: Proceedings of the 2002 ACM conference on Computer supported cooperative work. New Orleans, Louisiana, USA. pp. 58–67. doi:http://doi.acm.org/10.1145/587078.587088.
 ^ ClaudiaLavinia Ignat; Moira C. Norrie (2003). "Customizable collaborative editor relying on treeOPT algorithm". ECSCW'03: Proceedings of the eighth conference on European Conference on Computer Supported Cooperative Work. Kluwer Academic Publishers. pp. 315–334. http://www.ecscw.org/2003/017Ignat_ecscw03.pdf.
 ^ ^{a} ^{b} ^{c} C.Sun, S.Xia, D.Sun, D.Chen, H.Shen, and W.Cai (2006). "Transparent adaptation of singleuser applications for multiuser realtime collaboration". ACM Trans. Comput.Hum. Interact. 13 (4): 531–582. doi:10.1145/1188816.1188821.
 ^ ^{a} ^{b} ^{c} ^{d} "Google Wave Operational Transform". http://www.waveprotocol.org/whitepapers/operationaltransform.
 ^ Christopher R. Palmer; Gordon V. Cormack (1998). "Operation transforms for a distributed shared spreadsheet". CSCW '98: Proceedings of the 1998 ACM conference on Computer supported cooperative work. ACM Press. pp. 69–78. http://doi.acm.org/10.1145/289444.289474.
 ^ C. Sun and R. Sosic (1999). "Optional Locking Integrated with Operational Transformation in Distributed RealTime Group Editors". In Proc. of the 18th ACM Symposium on Principles of Distributed Computing. pp. 43–52.
 ^ Begole, James and Rosson, Mary Beth and Shaffer, Clifford A. (1999). "Flexible collaboration transparency: supporting worker independence in replicated applicationsharing systems". ACM Trans. Comput.Hum. Interact. 6 (2): 95–132. doi:10.1145/319091.319096.
 ^ ^{a} ^{b} Li, Du and Li, Rui (2002). "Transparent sharing and interoperation of heterogeneous singleuser applications". CSCW '02: Proceedings of the 2002 ACM conference on Computer supported cooperative work. New Orleans, USA. pp. 246–255.
 ^ ^{a} ^{b} Li, Du and Lu, Jiajun (2006). "A lightweight approach to transparent sharing of familiar singleuser editors". CSCW '06: Proceedings of the 2006 20th anniversary conference on Computer supported cooperative work. Banff, Alberta, Canada. pp. 139–148. doi:10.1145/1180875.1180896.
 ^ ^{a} ^{b} {Shen, Haifeng and Sun, Chengzheng}, ({2002},). "{Flexible notification for collaborative systems},". {CSCW '02: Proceedings of the 2002 ACM conference on Computer supported cooperative work},. pp. {7786},. doi:{http://doi.acm.org/10.1145/587078.587090}.
 ^ ^{a} ^{b} ^{c} ^{d} D. Sun and C. Sun (2009). "Contextbased Operational Transformation for Distributed Collaborative Editing Systems". IEEE Trans. on Parallel and Distributed Systems. http://ieeexplore.ieee.org/xpl/freepre_abs_all.jsp?isnumber=4359390&arnumber=4668339.^{[dead link]}
 ^ Gerald Oster; Pascal Molli ; Pascal Urso ; Abdessamad Imine (2006). "Tombstone Transformation Functions for Ensuring Consistency in Collaborative Editing Systems". Procs. 2nd Intl. Conf. on Collaborative Computing: Networking, Appln. and Worksharing. http://hal.inria.fr/docs/00/10/90/39/PDF/OsterCollaborateCom06.pdf. Retrieved 20070726.
 ^ ^{a} ^{b} M. Ressel and R. Gunzenhauser (1999). "Reducing the Problems of Group Undo". Proc. of the ACM Conf. on Supporting Group Work. pp. 131–139.
 ^ ^{a} ^{b} Suleiman, M.; Cart, M.; Ferrié, J. (1998). "Concurrent Operations in a Distributed and Mobile Collaborative Environment". Proceedings of the Fourteenth International Conference on Data Engineering, February. pp. 23–27. http://doi.ieeecomputersociety.org/10.1109/ICDE.1998.655755.
 ^ R. Li, D. Li and C. Sun (2004). "A Time Interval Based Consistency Control Algorithm for Interactive Groupware Applications". ICPADS '04: Proceedings of the Parallel and Distributed Systems, Tenth International Conference. pp. 429. doi:10.1109/ICPADS.2004.12.
 ^ M. Cart, Jean Ferrié, (2007). "Synchronizer Based on Operational Transformation for P2P Environments". Proceedings of the 3rd International Conference on Collaborative Computing: Networking, Applications and Worksharing. pp. 127–138. http://hal.archivesouvertes.fr/docs/00/08/60/98/PDF/cart_document_RR_LIRMM.pdf. Retrieved 20070726.
 ^ Gu, Ning and Yang, Jiangming and Zhang, Qiwei (2005). "Consistency maintenance based on the mark \& retrace technique in groupware systems". GROUP '05: Proceedings of the 2005 international ACM SIGGROUP conference on Supporting group work. pp. 264–273. doi:10.1145/1099203.1099250.
 ^ Imine, Abdessamad and Molli, Pascal and Oster, Gerald and Urso, Pascal (2005). Real time group editors without Operational transformation. http://hal.inria.fr/inria00071240/en/.
 ^ Stephane Weiss and Pascal Urso and Pascal Molli (2010). "LogootUndo: Distributed Collaborative Editing System on P2P Networks". IEEE Transactions on Parallel and Distributed Systems 21 (8): 1162. doi:10.1109/TPDS.2009.173. http://www.computer.org/portal/web/csdl/doi/10.1109/TPDS.2009.173.
 ^ Victor Grishchenko (2010). "Deep Hypertext with embedded revision control implemented in regular expressions". The Proceedings of the 6th International Symposium on Wikis and Open Collaboration (WikiSym '10). http://bouillon.math.usu.ru/articles/ctre.pdf.
 ^ Du Li and Rui Li (2010). An AdmissibilityBased Operational Transformation Framework for Collaborative Editing Systems. 19. pp. 1–43.
 ^ Xia, Steven and Sun, David and Sun, Chengzheng and Chen, David and Shen, Haifeng (2004). "Leveraging singleuser applications for multiuser collaboration: the coword approach". CSCW '04: Proceedings of the 2004 ACM conference on Computer supported cooperative work. ACM. pp. 162–171. doi:http://doi.acm.org/10.1145/1031607.1031635.
 ^ Pascal Molli; Gerald Oster ; Hala SkafMolli ; Abdessamad Imine (2003). "Using the transformational approach to build a safe and generic data synchronizer". Proceedings of the 2003 international ACM SIGGROUP conference on Supporting group work. ACM Press New York, NY, USA. pp. 212–220. http://portal.acm.org/citation.cfm?id=958160.958194.
External links
 OTFAQ: Operational Transformation Frequently Asked Questions and Answers
 SIGCE: Special Interest Group of Collaborative Editing
 International Workshop on Collaborative Editing Systems
 Distributed System Online  Collaborative editing
 Simple explanation of OT in Google Docs
 Basics of OT in the Open Coweb Framework
Relevant online talks
Categories:
Wikimedia Foundation. 2010.