Composite Objects in the Tower Model
A composite object abstracts a collection of objects into one
higher-order object.
Thus, a composite object models a complex unit of information built from
simpler information objects.
Most existing hyperdocument models include only a limited notion of
composite objects: a hyperdocument graph built from a collection of nodes,
links and anchors.
However, just as composite information chunks arise naturally,
leading to the need for composite nodes,
there are many examples of composite links and anchors,
and a powerful hyperdocument model should account for them too.
First, observe that to capture a general notion of relationship
between objects modeled by nodes one needs N-ary links.
Moreover, a relationship between objects captured by a link may possess
an internal structure.
For instance, in a system in which the basic nodes are (verbal and factual)
statements and the basic links are logical implications between statements,
a proof of a theorem can be viewed as a composite link from a set of facts
to a conclusion.
The theorem is a composite link which consists of both links (logical
implications) and nodes (intermediate facts).
A link that relates several parts of a node to other nodes requires a
composite anchor binding all these different parts.
For example, a link from a part list to points in a design where that part
is used may require a composite anchor whose elements are the points in the
design where that part is used.
A composite object is an object with a composite value,
which itself consists of a composite constructor, a set of nodes,
a set of links and a set of anchors, that are used by the constructor.
The composite constructors that can be used depend on the application.
But they consist of the same kinds of building blocks: a composite
constructor consists of:
- a kind of the object (node, link or anchor);
- a set of components (nodes, links and anchors, possibly but not
necessarily identical to the set of nodes, links and anchors of the composite
object as a whole;
- a structure constructor (may be a network constructor, but others
are not excluded), building a structure (e.g. a network) from the
components;
- a set of locations of the components;
- a set of global constraints;
- some global information.
Some of these building blocks may be missing in simple composite objects.
For instance, in a typical composite node which is a network over a given
collection of nodes, links and anchors, the composite constructor will
be of kind "node", will have the same nodes, links and anchors as components
as the composite node itself, will have a network structure constructor,
and may have some topology-constraints.
A familiar example that is encompassed in this definition are webs in
Intermedia.
These are collections of links
that are overlaid over a common set of nodes of the same document.
A web can thus be defined as a composite node, defined by means of a web
constructor from a set of links (with anchors), but have no set of nodes
as a component.
Overlaying a web to a hyperdocument may involve a constraint that all
links are from and to nodes in the hyperdocument. So the web constructor
should include this integrity constraint.
Novel kinds of composite objects that were so far regarded as the
contents of basic nodes can now be explicitly modeled.
For instance, we can formalize time-lines as built with a time-line
constructor.
The definition of a composite object is powerful enough to encompass
previous models which seem to be based on entirely different notions than
those of the "standard" hyperdocument model.
For instance, the hypermedia model based on sets, suggested by
Van Dyke Parunak [VDP91].
This model can be defined by having a composite set constructor whose
location information with respect to nodes contains a reference (identifier)
to the nodes in the set.