Virtual Structures in the Tower Model

Virtual structures, such as virtual nodes, links, or composites, are described not by explicitly specifying their components, but by a computation procedure that is activated whenever these objects are accessed. Many hypermedia systems support different kinds of virtual structures that are implicit in the form and the content of the nodes. Such structures include, for instance, navigation by query [TNHN91], implicit links from a word to its dictionary entry (like in Intermedia), or virtual hypermedia networks for which the structure is entirely constructed by the system from computed relations among nodes.

Observe that the different kinds of virtual structures correspond to the different modeling constructs that were defined. For example, the presentation level of a node tower will often be derived from its structural level; e.g. a textual node is presented in a simple text window, whereas an image node is presented in an image window. Similarly, some views in a city will often be computed from others. For example, a city representing a 3D machine part model will include views of the part from different cross section angles. These views can be computed from the part model and, hence, they are virtual views. Accordingly, the notion of virtuality is introduced as an orthogonal dimension of all modeling constructs. This means that a virtual object can be used anywhere a stored object can.

A virtual object is specified by supplying a function generating it (from other objects) instead of actually supplying it as a data object. The function supplied for a virtual object is activated whenever the object is accessed, creating a process to evaluate it and yielding the object. The language in which these functions are specified is independent of the structural modeling constructs. Thus, it can be by means of a database query language or a general programming language. A few examples of virtual objects that can be defined with the different modeling constructs of the tower model are:

While the programming language used for the definition of virtual structures could be a general programming language, and hence independent of the other modeling constructs, it is desirable to use a specialized limited language integrated within the model. Experience with database systems has demonstrated the use of limited query languages (like the relational algebra and SQL) in which a useful class of programs can be expressed.