This paper was presented at the ACM European conference on hypermedia technology, ECHT'94, and obtained by ftp from
ftp.iesd.auc.dk/pub/reports/papers/osterbye94c.ps.Z

Abstract

In semantically rich hypertexts it is attractive to enable presentation
of a network of nodes and links at different levels
of abstraction. It is also important that the user can interact
with the hypertext using a command repertoire that reflects
the chosen abstraction level. Based on a characterization of
rich hypertext we introduce the concept of an interaction engine
that governs the separation between internal hypertext
representation and external screen presentation. This separation
is the key principle of the HyperPro system. The
HyperPro interaction engine is based on simple rules for presentation,
interpretation of events, and menu set up. Much of
the power of the interaction engine framework comes from
the organization of these rules relative to the type hierarchy
of nodes and links, and relative to a hierarchy of so-called
interaction schemes. The primary application domain discussed
in the paper is program development and program
documentation.
Keywords: tailorability, interaction engine, aggregated
views, event control, program development.

1 Introduction

The topic of this paper is development of interaction techniques
on hypertexts that represent information from regular
and structured domains. Our primary interest is hypertexts
which represent source programs, program documentation,
and similar information captured during program development
or maintenance. However, the interaction techniques
we have developed are of interest to developers of a much
broader set of hypertexts, which we will call ?rich hypertexts?.

In rich hypertexts all the nodes have types. The type of a
node may reflect its role in the hypertext, e.g. its syntactic

?Department of Mathematics and Computer Science, Fredrik Bajers Vej
7E, 9220 Aalborg ?, Denmark. (Internet: kasper@iesd.auc.dk and normark@iesd.auc.dk).
This research was supported in part by the Danish
Natural Science Research Council, No. 11-0061.

category. The nodes in rich hypertexts are connected by
typed links. In many application domains it may in addition
be important to ensure that a rich hypertext obeys a set of
topological constraints. A structure may be imposed on the
contents of nodes as well. Thus, the ?richness? stems from
the typing of both nodes and links and from the degree of
structuring at the microscopic level1 (inside nodes and links)
as well as at the macroscopic level (among nodes and links).

Rich hypertexts may appear in a variety of different application
domains. One such domain is engineering as discussed
by Malcolm et al. in [14], and illustrated by the systems Dynamic
Design [1], Ishys [8], and the present paper. Another
domain is structured argumentation, as represented by gIBIS
[4], Authors Argumentation Assistant [22], and AquaNet
[15]. In [16] Nanard and Nanard use the term rich hypertext
structure model to cover essentially the same notion.

In most hypertext systems it is satisfactory to show only one
node in one window. In our work, however, we emphasize
the creation of coherent, textual views on several nodes and
links. Such views typically consist of aggregation of text
from several interlinked nodes. We strive for independence
between (1) the internal node and link representation and
(2) the presentation of the hypertext on the screen. Hereby
the views can be adapted or customized, without altering the
underlying node and link representation. In order to enhance
the readability we also find it important to control the textual
decoration (fonts, colors, and indentation) of each constituent
in a view.

In order to gain practical experience with our ideas we have
built an experimental system called HyperPro. The HyperPro
system provides an extensible data model and powerful
means for tailoring the interaction with user-defined nodes
and links.

We organize the node and link types in a hierarchy with inheritance.
The top of the hierarchy is EntityType, of which Node
and Link are subtypes. EntityType specifies that attributevalue
pairs can be attached to all entities. Links are one-

1The microscopic level corresponds to the within component level in the
Dexter model of hypertext [11]. The macroscopic level corresponds to the
storage level in that model.