Next: The client server architecture
Up: Cooperative Microcosm
Previous: Cooperative Microcosm
Since the original version of Microcosm was a single user application,
the linkbase architecture was just a single-user flat table. With the introduction of
CSCW mechanisms, the need for a multi-user link database with some kind of
locking mechanism was fundamental. After some research into the various
possibilities of implementation [12], and available
database packages,
we decide to use Exodus [13] to create an object oriented multi-user linkbase.
The Exodus Storage Manager is a multi-user object storage system
supporting versions, indexes, single site transactions, concurrency
control and recovery. It has a client server architecture where application
programs (clients) may reside on a machine different from the machine or
machines on which the storage manager server or servers run.
For a hypermedia system such as Microcosm, we can identify the following entities:
- Document/Node: An entity that has a name, a type, and
link anchors. Anchors can be classified as source
anchors (the start point of a link) and destination anchors (the
end point of a link).
- Links: An entity that connects two documents and has attributes
such as: action, type of link, author, creation date,
description, etc. Microcosm has several types of links, as
described below:
- Generic: Links a word (or group of words) located
anywhere, in any document to one or more
destination documents. This concept was originally defined
just for text viewers, but recently the concept of a generic
link has been extended to others types of media in the
MAVIS (Microcosm Architecture for Video, Image and Sound)
project [14]. The MAVIS project using image
content analysis mechanisms can link information
from images using features like colour distribution, shape
and texture.
- Local: Similar to the generic link concept,
but restricted to the occurrences of the selection
in any position in a particular document or set of
documents. The MAVIS
project also extended this concept to viewers other
than text.
- Specific: Links a word (or group of words) that
appears in a particular position in a particular node. This
concept can easily be extended to non-text media.
In Microcosm, as said previously, the information about links is not
embedded in the documents and resides in the linkbase.
To map these Microcosm concepts onto an object oriented database,
we created the following classes:
- class Document: This class represents a document and has the
following attributes:
- document name: The name of the document
- document type: Identifies the type of media:text, image,
sound, etc.
- collection of source anchors: all start points for
links existing in the document. See class Anchor
below.
- collection of destinations anchors: all end points for
links existing inside the document.
- class Anchor: To map all the different links and media types existing in
Microcosm, we create a hierarchy of
Anchor classes. A collection
of links, see Link class below, is an attribute shared by all
sub-classes of the class Anchor. The basic sub-classes are:
- Generic: Just has attributes to identify the
anchor. For instance, in a text node the word (or group of words)
selected as the starting point of the link. All ``generic anchors''
are mapped to a special kind of node a ``virtual node'' which is an
abstraction of all the nodes in the system.
- Specific: Has attributes to identify the anchor
and its location in the document (the offset). The local link
described above is maped onto this subclass by invalidating the
location attributes.
- class Link: Basically, this has the following attributes:
- source node: the Object Identifier (OID) of the source
node.
- destination node: the OID of the destination node.
- action: the action associated with the link.
- author: the author of the link.
- date: the creation date of the link.
- description: a description of the link.
We can therefore summarize the object oriented model of the database by
saying
that a node is a class of objects that has a collection of source
anchors and a collection of destination anchors. An anchor is a hierarchy of
classes that has in common a collection of links. Each subclass of the anchor
class has its particularities and new subclasses can easily be created to
accommodate new types of anchors and new media.
Finally, a link is a class that connects two documents. For more details see
[15].
Next: The client server architecture
Up: Cooperative Microcosm
Previous: Cooperative Microcosm
Fri Dec 8 14:41:14 GMT 1995