54
and sharing properties thoroughly but informally, considering examples and presenting the
intuitions needed to understand the formal definitions ofChapter 4.
In this chapter, and henceforth, I use the term operationto represent atypeof edit that
can be performed. For instance, insertanddeleteare operations, while a particular act of in-
serting or deleting within a sequence is called a change.
3.1 Structural causes of conflict in sequence editing
To satisfy the goal of change-completeness, enhance user flexibility and minimize the in-
teraction of basic data structure definitions with synchronization protocols, the correct op-
erations must be chosen, and as many conflicts as possible must be resolvable. The hard part
in doing this is to ensure that arbitrary combinations of basic operations are well defined
within the system. While not every combination will work logically, most can. The problems
that arise are of two kinds, reliable addressing and conflicting operations.
Reliable addressing is the less familiar of these problems, so I will briefly consider it first.
The informal description of my solution to this problem follows in Section 3.4.3, and a full
formal description is part of Chapter 4’s detailed model. The basic insight is simply that re-
ferring to positions in a changing object is easier if there are values (which we shall call ad-
dresses) that persistently name a position in an object, independently of a particular state of
the object.
Much of the complexity of operational transformation is related to the fact that the ad-
dresses used (offsets within the sequential text-buffer) vary with the state of the buffer,
thus algorithms are needed to update the addresses depending on the state of the buffer. In
the case of a change transmitted from another copy, the transformation function for ad-
dresses depends on the active state at both applications.
In the alternative solution, every character has a unique name that does not change with
its position in the string, and the problem of address translation simply vanishes. Such an
and sharing properties thoroughly but informally, considering examples and presenting the
intuitions needed to understand the formal definitions ofChapter 4.
In this chapter, and henceforth, I use the term operationto represent atypeof edit that
can be performed. For instance, insertanddeleteare operations, while a particular act of in-
serting or deleting within a sequence is called a change.
3.1 Structural causes of conflict in sequence editing
To satisfy the goal of change-completeness, enhance user flexibility and minimize the in-
teraction of basic data structure definitions with synchronization protocols, the correct op-
erations must be chosen, and as many conflicts as possible must be resolvable. The hard part
in doing this is to ensure that arbitrary combinations of basic operations are well defined
within the system. While not every combination will work logically, most can. The problems
that arise are of two kinds, reliable addressing and conflicting operations.
Reliable addressing is the less familiar of these problems, so I will briefly consider it first.
The informal description of my solution to this problem follows in Section 3.4.3, and a full
formal description is part of Chapter 4’s detailed model. The basic insight is simply that re-
ferring to positions in a changing object is easier if there are values (which we shall call ad-
dresses) that persistently name a position in an object, independently of a particular state of
the object.
Much of the complexity of operational transformation is related to the fact that the ad-
dresses used (offsets within the sequential text-buffer) vary with the state of the buffer,
thus algorithms are needed to update the addresses depending on the state of the buffer. In
the case of a change transmitted from another copy, the transformation function for ad-
dresses depends on the active state at both applications.
In the alternative solution, every character has a unique name that does not change with
its position in the string, and the problem of address translation simply vanishes. Such an