Chapter 2: The Change-Oriented Perspective on Collabora-
tive Editing
This chapter presents a particular perspective on concurrency control and divergence
management and examines how it can be integrated into collaborative systems. I define, for
the purposes of this dissertation, the meaning of “change orientation” and the terminology I
use in presenting it. Then I discuss some of the reasons why change-oriented approaches are
attractive, and analyze different ways of conceptualizing what kinds of changes change-
oriented systems handle. This characterization will show that representational power for
change-oriented systems is more complex than it may appear. Some ways of dealing with
changes that are logically sufficient to represent statesof a data structure turn out to be less
powerful at representing alternative versions of that data structure. This analysis will point
the way to more powerful representations of operations on data.
The term Change-Oriented Versioninghas been used in software engineering to describe
the tracking of individual operations as a way of managing versions and features (Lie,
Conradi et al. 1989; Munch 1993; Zeller and Snelting 1995). As I am presenting a different,
though related approach, I use the slightly different term change-oriented concurrency con-
trol. This denotes the tracking of individual change operations on shared data structures as a
way to address concurrency and consistency issues. We shall be examining systems that treat
changes as first class objects, so that users of applications and implementers of applications
will both have a natural model for handling concurrent updates. While versions and saved
states are clearly important, they are not primary in the same way as the actual changes
made in a document. Saved states are time-based snapshots of an activity in process, but the
actual actions taken are as close to the substance of an activity as one can get in an applica-
tive Editing
This chapter presents a particular perspective on concurrency control and divergence
management and examines how it can be integrated into collaborative systems. I define, for
the purposes of this dissertation, the meaning of “change orientation” and the terminology I
use in presenting it. Then I discuss some of the reasons why change-oriented approaches are
attractive, and analyze different ways of conceptualizing what kinds of changes change-
oriented systems handle. This characterization will show that representational power for
change-oriented systems is more complex than it may appear. Some ways of dealing with
changes that are logically sufficient to represent statesof a data structure turn out to be less
powerful at representing alternative versions of that data structure. This analysis will point
the way to more powerful representations of operations on data.
The term Change-Oriented Versioninghas been used in software engineering to describe
the tracking of individual operations as a way of managing versions and features (Lie,
Conradi et al. 1989; Munch 1993; Zeller and Snelting 1995). As I am presenting a different,
though related approach, I use the slightly different term change-oriented concurrency con-
trol. This denotes the tracking of individual change operations on shared data structures as a
way to address concurrency and consistency issues. We shall be examining systems that treat
changes as first class objects, so that users of applications and implementers of applications
will both have a natural model for handling concurrent updates. While versions and saved
states are clearly important, they are not primary in the same way as the actual changes
made in a document. Saved states are time-based snapshots of an activity in process, but the
actual actions taken are as close to the substance of an activity as one can get in an applica-