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:

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.