All the features described in section 5 have been implemented. We now have to expand the model to support cooperative work applications. As this is an object oriented application the expansions are easy, since generally we just have to include more methods to an existing class, or define more classes or subclasses, and these actions do not interfer with the old design. The modularity and attachment of procedures to data items (encapsulation) make the object oriented programs really flexible and allow very modular applications to be developed.
At the moment, we are developing some queries to help navigation and also authoring such as: list all possible destination documents for a given document, or all the possible documents that can be source node for a given document are quite easy to be codified because of the way the database was designed, and are already implemented and integrated inside Microcosm. Other queries we can think about are: list all links made by author "x", all links created after date XX/YY/ZZ, and many others. Another tool that we intend to incorporate is a lin editor (delete and modify functions).
As the main objective of our work is to create a cooperative environment on top of Microcosm, we will concentrate our efforts in creating queries for this kind of application. In terms of cooperative authoring, annotations are quite important and we will probably create another subclass of the class selections to contain these kinds of information, since it will be easier to query them, and to get rid of them, if desired, when the authoring/revision phase is finished. As other expansions to the current model, we will create for each document a list of keywords and some information retrieval mechanism in order to helping link authoring. Probably a dictionary of keywordswill be implemented inside the database. Version control mechanisms will also be integrated. The version of a document will be controlled by UNIX facilities and the link version, and management between document version and link version will reside inside the database. There are many queries that can be built around these features, in order to help authoring. As a parallel, and fundamental piece of work, we have had to build a filter to allow users to communicate with each other and to provide some kind of awareness mechanism, since Microcosm is currently a single user application.