HAM (Hypertext Abstract Machine)
In 1987, Brad Campbell and Joseph M. Goodman published HAM at the
first ACM Conference on Hypertext. It was a milestone in the development
of hypertext as a research field, because it was the first attempt
to define a reference model, an abstract model in which actual hypertext
systems could be expressed. The internal architecture of a hypertext
system can be examined in terms of three levels. These are:
Like most reference models, the HAM does not describe the hypertext
system completely. The HAM sits in between the file system and the
user interface. The HAM is a general purpose, transaction-based,
multi-user server for a hypertext storage system. It is a low level
storage engine; therefore it provides a general and flexible model
that can be used in different hypertext applications.
Campbell and Goodman show the typical organization of a system
using HAM in the graphical representation given below:
Source: Campbell,
B., Goodman, J.M., HAM: A general purpose Hypertext Abstract Machine,
CACM 31:7, July 1988.
The HAM level is near the host file system; therefore it is a lower
level machine. The connection between HAM level and application
and user interfaces is looser than HAM level with host file system.
From the figure we can tell that HAM is just a part of the system
and not the whole.