1. Introduction

PLINTH [1,2] is a domain independent expertext shell which provides rule-based guided creation and navigation of semantically enriched hypertext networks. Its principal objective is to ensure effective and efficient authoring and use of documents, taking into account the particular needs of different classes of author and reader and the different tasks that they use the documents to support. The techniques used avoid `deep analysis' of the meaning of texts, concentrating instead on identifying and making use of their physical, logical and rhetorical structure.

PLINTH not only represents the contents of draft and finished documents as hypertext, but can also be used to manipulate both the design rationale [3] underlying the documents, and classification/indexing schemes for accessing them. As a result, PLINTH applications may generate and manipulate very large amounts of data.

All of this data is handled internally using a single underlying constrained node-and-link network representation system, called CONNEKT [2]. At present, simple file-based representations are used for the external storage both of CONNEKT nets and of the text of nodes within those nets. Nets can be loaded from files into main memory and written back again individually, even though CONNEKT allows `external' links between nodes in different nets. So for an application which uses many small nets as opposed to fewer large ones, limitations on main memory resources will not generally be a problem. However, it may not always be convenient or desirable to organise nets in this way and some of them may need to be very large indeed. Because of this, we see a need for an efficient, persistant, external data representation scheme for PLINTH, whereby nets do not have to be loaded in their entirety to be used.

Another important feature of PLINTH applications is that multiple users may need to access and update a single corpus of data concurrently. In this situation, the system should allow each user see significant changes made by others immediately, and should safeguard the data from two users trying to change a single item simultaneously or making inconsistent changes to mutually dependent items. Unfortunately, due to the limitations of its file-based external representation, PLINTH does not currently provide such facilities.

This paper proposes the use of object-oriented database technology as a solution to these problems of data volume and access control.

What are Object Oriented Databases?