When a group of authors collaboratively edits interrelated documents, consistency problems occur almost immediately. Current document management systems (DMS) provide useful mechanisms such as document locking and version control, but often lack consistency management facilities. If at all, consistency is ``defined'' via informal guidelines, which do not support automatic consistency checks.
In this paper, we propose to use explicit formal consistency rules for heterogeneous repositories that are managed by traditional DMS. Rules are formalized in a variant of first-order temporal logic. Functions and predicates, implemented in a full programming language, provide complex (even higher-order) functionality. A static type system supports rule formalization, where types also define (formal) document models. In the presence of types, the challenge is to smoothly combine a first-order logic with a useful type system including subtyping. In implementing a tolerant view of consistency, we do not expect that repositories satisfy consistency rules. Instead, a novel semantics precisely pinpoints inconsistent document parts and indicates when, where, and why a repository is inconsistent.
Speed is a key issue in our approach towards tolerating inconsistencies. We, therefore, developed efficient techniques for consistency rule evaluation. Our strategy is known from databases: (1) static analysis characterizes and simplifies consistency rules and (2) at run-time rules are evaluated incrementally. The major differences to databases are that we consider informal documents and explicitly allow inconsistencies. Consequently, we lack formal update descriptions and cannot rely on consistency prior to updates.
Our major contributions are
1. the use of explicit formal rules giving a precise (and still comprehensible) notion of consistency,
2. a static type system securing the formalization process,
3. a novel semantics pinpointing inconsistent document (parts) precisely,
4. efficient techniques for consistency rule evaluation, and
5. a design of how to automatically check consistency for document engineering projects that use existing DMS.
We have implemented a prototype of a consistency checker. Applied to real world content, it shows that our contributions can significantly improve consistency in document engineering processes.
«When a group of authors collaboratively edits interrelated documents, consistency problems occur almost immediately. Current document management systems (DMS) provide useful mechanisms such as document locking and version control, but often lack consistency management facilities. If at all, consistency is ``defined'' via informal guidelines, which do not support automatic consistency checks.
In this paper, we propose to use explicit formal consistency rules for heterogeneous repositories th...
»