Chapter 5: Applying and Evaluating the Model
In this chapter, I examine the implications of the properties of P-sequences, and their
applications. Much of this chapter will be concerned with how P-sequences can be manipu-
lated by operations on change sets. Before examining the issues in detail, it is worth re-
viewing how the pure model in Chapter 4 would be used in an actual system. We have de-
fined a P-sequence in terms of a single change set, and the representation of a sequence
state or version consists of a change set. Related versions would be change sets sharing more
or fewer operations.
Except in some of the final theorems, we did not consider multiple P-sequences in the
previous chapter. In a system application, we will always be dealing with P-sequences whose
changes are subsets of a larger universal subset, representing all changes ever made to a
document. Individual collaborating instances of an application will maintain their own “mas-
ter change sets” which may not be complete with respect to the universal change set. In
terms of modeling however, the universal sets are not important, because the important
question for an application is what a particular set of changes means: what P-sequence it
defines. The subjects of Chapter 6 and Chapter 7 are the creation of an efficient change store
for P-sequences and a flexible application architecture for using that change store.
5.1 Editing histories and version management
In this section, I will briefly discuss some of the ways that Palimpsest can model the fa-
cilities provided by more traditional version management systems, and examine how the
commonest versioning models fit into Palimpsest’s model. The traditional approach manages
a set of document states (versions) by maintaining a derivation graph (see (Conradi and
Westfechtel 1998) for an excellent overview of the many models in this area). This version
graph usually takes the form of a DAG, though is it sometimes further restricted to be a tree.
In this chapter, I examine the implications of the properties of P-sequences, and their
applications. Much of this chapter will be concerned with how P-sequences can be manipu-
lated by operations on change sets. Before examining the issues in detail, it is worth re-
viewing how the pure model in Chapter 4 would be used in an actual system. We have de-
fined a P-sequence in terms of a single change set, and the representation of a sequence
state or version consists of a change set. Related versions would be change sets sharing more
or fewer operations.
Except in some of the final theorems, we did not consider multiple P-sequences in the
previous chapter. In a system application, we will always be dealing with P-sequences whose
changes are subsets of a larger universal subset, representing all changes ever made to a
document. Individual collaborating instances of an application will maintain their own “mas-
ter change sets” which may not be complete with respect to the universal change set. In
terms of modeling however, the universal sets are not important, because the important
question for an application is what a particular set of changes means: what P-sequence it
defines. The subjects of Chapter 6 and Chapter 7 are the creation of an efficient change store
for P-sequences and a flexible application architecture for using that change store.
5.1 Editing histories and version management
In this section, I will briefly discuss some of the ways that Palimpsest can model the fa-
cilities provided by more traditional version management systems, and examine how the
commonest versioning models fit into Palimpsest’s model. The traditional approach manages
a set of document states (versions) by maintaining a derivation graph (see (Conradi and
Westfechtel 1998) for an excellent overview of the many models in this area). This version
graph usually takes the form of a DAG, though is it sometimes further restricted to be a tree.