|Department of Electrical and Computer Engineering|
MOLHADO system model is built based on an representation model, called Fluid Internal Representation (IR). Fluid IR is part of the Fluid Project, a collaborative project between University of Wisconsin-Milwaukee and Carnegie Mellon University. Tien N. Nguyen and John T. Boyland are current members of the Fluid group.
Figure 1. Primitive Data Model
Figure 1 summarizes the Fluid IR. A node is the basic unit of identity and is used to represent any object. A slot is a location that can store a value in any data type, possibly a reference to a node. Current data types that are supported in slots include Java data types such as integer, boolean, string, etc. A slot can exist in isolation but typically slots are attached to nodes, using an attribute. An attribute is a mapping from nodes to slots. An attribute may have particular slots for some nodes and map all other nodes to a default slot. The data model can thus be regarded as an attribute table whose rows correspond to nodes and columns correspond to attributes. The cells of the table are slots. Once we add versioning, the table gets a third dimension: the version.
Figure 2. Attribute table
There are three kinds of slots. A constant slot is immutable; such a slot can only be given a value once, when it is defined. A simple slot may be assigned even after it has been defined. The third kind of slot is the versioned slot, which may have different values in different versions (slot revisions). A sequence is a container with slots of the same data type. It has a unique identifier. Sequences may be fixed or variable in size and share common slots together. Figure 1b) shows a simple example of an attribute table. The versioned slot associated with node ``n1'' via attribute ``a1'' currently holds a reference to the node ``n2''. Sequence ``seq1'' has two versioned slots referring to ``n1''' and ``n2'' respectively. Slots in the table can also be simple or constant slots. The Fluid persistence system uses techniques derived from the work of Driscoll to store versions of different types of data in attribute tables.