Next: Dynamic Object Associations Up: No Title Previous: Horizon Tree

Software Architecture of WebMap

Currently, WebMap is written entirely in [incr Tcl] [14] taking advantage of the Motif-like Tk widget library, especially its canvas widget. [incr Tcl] provides object-oriented extensions to Tcl [3]. These extensions have a syntax similar to C++, but in contrast to C++ [incr Tcl] is an interpreted language. Nevertheless, it is possible to mix [incr Tcl] code with compiled C code and to have the interpreter call C functions like ordinary [incr Tcl] functions.

The object-oriented design of WebMap makes it easy to extend the program and to exchange parts of its functionality. This section shows how this is achieved. It describes the main parts of WebMap and how they interact to display and update a graphical map of the relevant web structure.

The design of the software is based on code separation into several functional units.

The part of WebMap which is concerned with the display of the map is divided the following way:

Interaction Control:
Classes belonging to this group are responsible for the interaction of WebMap with the WWW client and the interaction of objects with each other.
Web Topology:
Classes of this group record and maintain the structure of the hypertext accessed by the user.
Graphical Layout:
These classes calculate and store the positions of nodes in a two-dimensional coordinate system. The layout algorithm described in section 2.3 is implemented here.
Visualization of the Web:
Using the information of the graphical layout and topology objects the web is drawn on the screen. These classes encapsulate the dependencies from the underlying graphic subsystem (in WebMap's case this is Tk based on the X window system).

Classes belonging to these groups are illustrated in Fig. 7: The notation used to describe the relations between classes is explained in Fig. 6. These symbols are part of the ``Object Modeling Technique'' (OMT) defined in [6].

The web structure is stored as a web of linked topology objects where each object represents a WWW document. WebMap analyzes the hypertext links and categorizes them. The current categories are:


    TreeSameDomain
    TreeOtherDomainSameServer
    TreeOtherDomainOtherServer
    NonTreeSameDomain
    NonTreeOtherDomainSameServer
    NonTreeOtherDomainOtherServer
    NonTreeBack
    NonTreeSelf

In contrast to a WWW document which only contains links that lead from this document to other documents and belong all to the same link-category (there is only one), WebMap keeps track of the links that lead from other documents to a certain document. So each category consists of two sets: in-edges and out-edges. As already mentioned in section 2.1, edges belonging to different categories are displayed in different colors on the screen (back-edges and self-edges are not displayed at all).

Surely there are a lot of other meaningful categories which are not considered here. This leads to the following open questions:

These questions should be considered among others in the current discussion concerning the introduction of semantic links. Anyway, WebMap's link categories present a way to give graphical feedback for future semantic links.




Next: Dynamic Object Associations Up: No Title Previous: Horizon Tree


Peter Dömel (doemel@informatik.uni-frankfurt.de)