Catacomb Design and Implementation
Catacomb is intended to be easily separable into a variety of
different components covering areas including model description,
on-the-fly graphical interface construction, model construction, model
publishing, computation of the behavior of models, and data display.
Contents
- A little background showing what
the perceived problems are that Catacomb is trying to address, and
what a solution might look like.
- Declarative model description is at
the heart of Catacomb. Superficially, it just makes it easy to write
generic user interfaces, but it also turns out to be a very efficient way
to organize models and indeed many other sorts of data.
- The Design Summary shows how Catacomb
works, how models are described and constructed, and what goes on behind
the scenes and how calculations are structured.
- On-the-fly user interface generation
relies on the declarative model approach. Because only a small set of
data structures is used, Catacomb is able to provide user interface
tools giving complete coverage of all models consistent with the
allowed structures.
- Event propagation is provided
within the model description tree, independent of the events in the
windowing toolkit. Under normal operation, any parameter change in the
model percolates up through the hierarchy and along references. This
can be used to ensure consistency of the model and any derived
properties.
- Running Models is the main goal of
Catacomb. Each of its model description frameworks has a
corresponding family of model execution classes. These can be
instantiated from the model description ore by other means.Thereafter,
they run independently of the description machinery.
- Publishing models and data.
Publishing models is
straightforward: the standard file format starts with a small section
of HTML header which includes javascript links to start up the
Catacomb user interface and load the model. There is an applet builder
(which writes a declarative description of what goes in the applet) to
define compound applets for viewing in a single window.
For publishing data, Catacomb
provides a way to describe how a particular class of data could be
documented, and then tools to build documents consistent with this
format. The first can be used by domain experts, or anyone who finds
the available formats inadequate. The second is for documenting
particular chunks of data before publishing them. Catacomb can also
make simple websites, indexes, and alert interested servers to the
presence of the data so the site can be spidered.
- Interoperability. Catacomb is
intended to be interoperable with other systems, including Neuron and
Neosim. Here is how it is done.