A number of recent systems have provided rich facilities for manipulating the timelines of applications. Such timelines represent the history of an application’s use in some session, and captures the effects of the user’s interactions with that application. Applications can use timeline manipulation techniques prosaically as a way to provide undo and redo within an application context; more interestingly, they can use these same techniques to make an application’s history directly manipulable in richer ways by users. This paper presents a number of extensions to current techniques for representing and managing application timelines. The first extension captures causal relationships in timelines via a nested transaction mechanism. This extension addresses a common problem in history-based applications, namely, how to represent application state as a set of atomic, incremental operations. The second extension presents a model for “multi-level” time, in which the histories of a...
W. Keith Edwards, Takeo Igarashi, Anthony LaMarca,