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:
-
A basic virtual link is defined by a predicate on the properties
of the nodes it connects.
For instance, for nodes representing time intervals in
knowledge-base applications, their relationships represented through links
are virtual and specified by evaluating a predicate on the intervals.
-
The notion of a composite object allows for a composite node
which is a three-dimensional space in which various objects are located.
This is a composite object whose constructor builds
a three-dimensional space. This space could be virtual in which case
its size and the density of the elements within that space are computed from
the size of the elements.
Moreover, if such a composite
object is modeled by a tower it could have a virtual presentation
level that defines its rendering on the screen.
-
Virtual views are often the most natural means for the definition of
a city.
In the example for computing cross sections of a 3D model,
views can be parameterized by the cross section
angle provided by the link to the city.
It is most natural to regard that city as being built from
a variable number of views.
Formally, this means that the mapping from
angles to cross sections, as used within the city,
could be computed instead of being stored.
In fact, this intensional description of the views is the only
one possible given the arbitrary number of views in the city.
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.