The Adage system is built upon the POStiche type system and MDAG data manipulation system. POStiche is also known as the Protean Object System. Within it data objects have both a major type and a minor substype. An example might be a rectangle expressed as the centre point, width and height. The major type is the rectangle, and the specific set of data fields is one subtype. Another subtype might be the bottom-left and top-right corners. The object system is protean in that the same information can be represented in many different ways. POStiche has rules that determine how objects are transformed, combined and broken up.
The MDAG (M directed acyclic graph) system is in large part an implementation of the POStiche system. Drawing elements are defined in a hierarchy. Suppose, for instance that a rectangle is defined using the polar coordinates of its centre point and the lengths of its width and height. Four raw values are combined with length and angle units to create one angle and three length objects. The angle and one length object are combined into the polar subtype of the coordinate major type. This and the other two lengths combine to make the rectangle. Within the MDAG system, at the level of drawing definition, a node is used for each object, unit choice, or raw data value. Directed edges (node links) indicate the dependencies and combinations. This hierarchical framework of POStiche objects is the basis for the MDAG system.
The MDAG system has some sophisticated capabilities for handling transformations, and for optimising them. For instance, all lengths are converted to universal units. We might start with some lengths specified in centimeters and others in millimeters, and these might be scaled then converted to inches. The optimisation engine is reliable in collecting transformations together.