Department of Electrical and Computer Engineering


Designs and Implementations of Molhado Hypertext Versioning System

The main concepts are: linkbase, hypertext network, link, and anchor. A linkbase is a container for hypertext networks and/or other linkbases and is implemented as an extension of a composite component. A hypertext network, which represents for a logical relationship structure or a traceability link network, contains links and anchors. A link, representing for a logical relationship, is an association among a set of anchors. An anchor is a mark used to denote the region of interest within a component, and it refers to a logical unit in a component. A hypertext network is defined as a directed graph-based atomic component. Each link or anchor is represented by a node in the graph. A directed edge will connect an
anchor's node to its link's node. The hypertext network is versioned in accordance with the fine-grained graph-based version algorithm. Since each link is represented as a node in Fluid IR, it is also versioned in accordance with that algorithm.

Versioned hypermedia functionality is provided in terms of library functions. They can be divided into two groups:

1. Linkbase and hypertext network functions: Users can

  • create a linkbase or a hypertext network,
  • delete existing hypertext networks or linkbases,
  • re-structure linkbases and relocate networks among linkbases,
  • open an existing hypertext network,
  • select a hypertext network to be active,
  • import and export a hypertext network from and to XLink format at any version.

We have developed user interfaces to these functionality into the Software Concordance environment and provide a simple editor for hypertext networks. Figure 1 shows a snapshot.

Figure 1. Multiple logical relationship networks on the same set of components

Figure 1 shows two hypertext networks: 1) The one on the left corner plays the role of a graphical makefile. It is versioned as any other components in Molhado. Therefore, when a version of a project is loaded, the graphical makefile is loaded as well. Developers do not need to remember which graphical makefile corresponds to which project version as in classic SCM systems. The bottom right window also shows a dependency hypertext network on the same set of components.

2. Functions for links and anchors are:

  • link creation,
  • deletion,
  • renaming,
  • attribute's value viewing,
  • link history viewing.
  • deleting an anchor,
  • adding an anchor into the active link,
  • removing an anchor off some link,
  • renaming an anchor,
  • displaying the structural unit in a document that the anchor refers to,
  • navigating to the associated structural unit of an anchor.

Figure 2 shows a hypertext entity editing window.

Figure 2. Hypertext Editing Window

Add versioned hypermedia functionality into SC editors

The editors in the SC environment have been modified to include the Molhado's versioned hypermedia functionality. Figure 3 shows the structured editor for Java programs. When the user right-clicks on a document node, a popup menu is displayed to allow the user to create an anchor at the node and add it to the active hypertext network, or to open the active hypertext network if an anchor is already defined at the node, or to relocate an anchor to a different document node. The user can also create or delete an embedded link at any node. The user is able to traverse among components via embedded links or via the hypertext network. Figure 4 shows the ability to define anchors and HTML hyperlinks within a UML diagram.

Figure 3. Create anchors and embedded links in a Java program

Figure 4. Embedded links and anchors in a UML diagram