59
• Delete.This takes a range of a sequence (represented as two positions) and removes from
the sequence all items between those two positions.
• Move.This operation takes 3 positions, two representing the source range in the se-
quence (just as in delete), and one representing the destination of the move. A move
operation removes the elements in the source range (like delete), but also creates a new
subsequence at the destination. This subsequence is identical to whatever was deleted by
the move.
• Copy.This operation takes 3 positions (like move), but does not delete the information
at its source. The subsequence created by a copy operation is always identical to the
source range.
These operations represent the logical changes that text editors perform, and the editing
model that users apply. I am not aware of experimental proof of the proposition that the
move and copy operations are part of a user’s internal model of text editing (indeed, I not
sure what such a proof would look like). However, the almost universal occurrence of these
terms in the vocabulary of authors, books about writing, and editorial handbooks is informal
evidence of their wide acceptance and power. Furthermore, the wide acceptance and popu-
larity of user interface features like “Drag and Drop Editing” in word processing software also
supports the naturalness of these operations. In conflict resolution, too, knowledge of edit-
ing intentions provides information that can be of use in choosing a reasonable result. While
the naturalness of move and copy is not directly observable, the assumption that they are
meaningful is an important motivation for using this set of operations.
So far, I have simply identified a set of operations for representing changes to a sequence
(particularly a sequence representing the text of a document). How do these operations in-
teract in the context of a change-complete editing system, where (ideally) any individual
change can be included in, or excluded from, an arbitrary editing history? The ability to ar-
bitrarily add a change is needed in order to enable merging to enable the forcing of conver-
• Delete.This takes a range of a sequence (represented as two positions) and removes from
the sequence all items between those two positions.
• Move.This operation takes 3 positions, two representing the source range in the se-
quence (just as in delete), and one representing the destination of the move. A move
operation removes the elements in the source range (like delete), but also creates a new
subsequence at the destination. This subsequence is identical to whatever was deleted by
the move.
• Copy.This operation takes 3 positions (like move), but does not delete the information
at its source. The subsequence created by a copy operation is always identical to the
source range.
These operations represent the logical changes that text editors perform, and the editing
model that users apply. I am not aware of experimental proof of the proposition that the
move and copy operations are part of a user’s internal model of text editing (indeed, I not
sure what such a proof would look like). However, the almost universal occurrence of these
terms in the vocabulary of authors, books about writing, and editorial handbooks is informal
evidence of their wide acceptance and power. Furthermore, the wide acceptance and popu-
larity of user interface features like “Drag and Drop Editing” in word processing software also
supports the naturalness of these operations. In conflict resolution, too, knowledge of edit-
ing intentions provides information that can be of use in choosing a reasonable result. While
the naturalness of move and copy is not directly observable, the assumption that they are
meaningful is an important motivation for using this set of operations.
So far, I have simply identified a set of operations for representing changes to a sequence
(particularly a sequence representing the text of a document). How do these operations in-
teract in the context of a change-complete editing system, where (ideally) any individual
change can be included in, or excluded from, an arbitrary editing history? The ability to ar-
bitrarily add a change is needed in order to enable merging to enable the forcing of conver-