47
Dynamic Operationeffects depend essentially on the state to which they are applied, and
thus depend on what other operations are in the history. For instance, a move operation in-
serts data determined by the contents of another subsequence, the source of the move,
which may well be affected by other operations. This means that dynamic operations may
have complex interactions, especially when histories are subjected to operations such as
merge and undo that can create non-serializable histories.
In general, systems have not made a clear distinction between these types of operational
definition. Designers of source code control systems, and engineering and design systems
(Katz 1990) have generally been interested only in version-completeness and have not con-
sidered dynamic operations at all. Operational transformation and other collaborative sys-
tems, since they have to define workable automatic merge policies, have often addressed
some level of dynamism in their operation types. The need for dynamism is usually treated
as a problem of preserving the intentof an editing operation. The emphasis on insert and
delete has meant, however, that the level of dynamism accommodated is limited to the de-
termination of correct locations in the sequence. For such simple operations, the distinction
between dynamic and static operations is not very relevant.
While the dynamic/static distinction is clear, an additional aspect may not be instantly
obvious. For each possible dynamicoperation, there is a correspondingstaticoperation that
represents a “frozen” form of the dynamic operation. For example, consider the simple case
of two authors asynchronously collaborating on a single document. If author Amakes a
change in the form of a dynamic move operation that moves a phrase from one place to an-
other, this will have one effect when author A executes it. If at a later point the source
phrase is updated, say by merging changes from author Bthat interpolate new material into
the source of the move operation, then the final result will be different because the text
moved will be different. On the other hand, a frozen move operation would be represented in
terms of its concrete effects as executedby authorA.In this case authorB’s change would be
Dynamic Operationeffects depend essentially on the state to which they are applied, and
thus depend on what other operations are in the history. For instance, a move operation in-
serts data determined by the contents of another subsequence, the source of the move,
which may well be affected by other operations. This means that dynamic operations may
have complex interactions, especially when histories are subjected to operations such as
merge and undo that can create non-serializable histories.
In general, systems have not made a clear distinction between these types of operational
definition. Designers of source code control systems, and engineering and design systems
(Katz 1990) have generally been interested only in version-completeness and have not con-
sidered dynamic operations at all. Operational transformation and other collaborative sys-
tems, since they have to define workable automatic merge policies, have often addressed
some level of dynamism in their operation types. The need for dynamism is usually treated
as a problem of preserving the intentof an editing operation. The emphasis on insert and
delete has meant, however, that the level of dynamism accommodated is limited to the de-
termination of correct locations in the sequence. For such simple operations, the distinction
between dynamic and static operations is not very relevant.
While the dynamic/static distinction is clear, an additional aspect may not be instantly
obvious. For each possible dynamicoperation, there is a correspondingstaticoperation that
represents a “frozen” form of the dynamic operation. For example, consider the simple case
of two authors asynchronously collaborating on a single document. If author Amakes a
change in the form of a dynamic move operation that moves a phrase from one place to an-
other, this will have one effect when author A executes it. If at a later point the source
phrase is updated, say by merging changes from author Bthat interpolate new material into
the source of the move operation, then the final result will be different because the text
moved will be different. On the other hand, a frozen move operation would be represented in
terms of its concrete effects as executedby authorA.In this case authorB’s change would be