by Dominique Decouchant
The main features of structured editing are used to build Alliance, a cooperative asynchronous structured editor. This groupware application allows several users distributed on a local area network to cooperate for producing documents in a structured way.
With the structured approach, a document is considered as an organized set of typed elements which are logically related to each other. In a document such as the article shown in the figure, typical elements are the title, author names, abstract, paragraphs, sections, section headings, figures, captions, bibliography, bibliographic item, etc. All these elements have various relationships: a section contains a heading, some paragraphs and optionally some subsections; a paragraph follows another paragraph; a paragraph may refer to a bibliographic item; etc. All these elements with their relationships constitute the logical structure (also called abstract tree) of a document.
The Grif editor kernel (see ERCIM NEWS number 20), which constitutes the editing support of Alliance, is based on this document model and it follows the principles of structured editing. Using the structured editing features of Grif, the Alliance user does not worry about document presentation and he is guided when modifying the document structure (section creation and placing, text insertion, building and modifications of mathematic formulae or tables, etc.)
Alliance controls several local instances of the editor running on different workstations, and allows their users to cooperate. In addition to the local editing functions inherited from Grif, it provides such basic functionalities as management of document storage and access to distributed documents; it offers high-level services for managing user interaction and cooperation, for defining shared fragments dynamically, for distributing roles to users, for editing documents in a structured way, for showing documents through multiple views, for controlling the consistency of modifications, and for updating copies of shared documents.
Choosing sharing granularity constitutes a major issue in defining a cooperative document editor. The reported difficulties are due to the fact that co-authors must share standard files produced by standard editors, so that a more or less arbitrary structure of the shared environment must be defined. In this respect, Alliance provides dynamic document sharing and variable sized fragments on which different roles can be assigned to users:
For the same fragment, several users may own the same roles, including the writer or manager roles. These potential conflicts are solved by a reader/writer policy: only one user can actually play the exclusive writer or manager role at a time; the current roles of other users are then temporarily reduced to a reader role. So, multiple versions of a fragment cannot be produced, and the set of concurrent user contributions always constitute the stable document version.
Document sharing must be explicitly expressed. This is accomplished by a user owning the manager role who assigns potential roles to users and groups. When a user creates a new document, he receives the manager role for the whole document, and he is then free to give roles to other users. Fragmentation is taken in charge by the application, so that a document manager has only to worry about the roles he wants to give to users on a specified part of a document. However, document parts may be implicitly fragmented to produce smaller fragments to increase authoring parallelism. Role assignment is not constrained by the hierarchical organization of the document. For example, it is possible to set a writer role on a drawing, but not on the section that contains it.
The current version of Alliance is available on Unix using NFS for sharing documents. Despite lack of some functions, this first version has allowed to validate the manner by which a project manager distributes roles to other users and delegates the management. After the first phase of development, the Alliance application is now being ported to the WWW system. The aim is to make the cooperative editing functionality more general, disconnected, accessible and based on the standard and widely used Wide Area Network. Achieving this goal, evolutions of the Alliance cooperation services are necessary.
In wide area, workstation or network failures are more frequent; recovering of these failures becomes more problematic but it is needed to ensure consistency of shared documents. The solutions we develop currently include mechanisms to take in charge reliability and performances issues of nomadic works and to manage failure or temporary disconnection of a station.
The Grif editing toolbox has allowed the Alliance application to benefit from a high level representation of documents, which has been a key feature for sharing documents between users. While Grif provides an efficient toolkit for designing and implementing an application that manipulates highly structured documents, Alliance provides a well suited environment for designing cooperative applications using highly structured documents.