A mechanism is provided for storing self-defining data and mapping elements with
either a fixed set of allowed structures or types or with the structures and types
determined by rules. Recovery is enhanced by the use of backward and forward pointers
between data and mapping elements for the data elements in the order written by
the management algorithm. Recovery is also enhanced by the use of companion pointers
with metadata. The companion pointers may include pointers to data or mapping elements
that are part of the same structural grouping. The metadata may describe the structural
grouping. The metadata may also include pointers to the previous and/or next versions
of the same elements. Recovery of the data and/or mapping structures is achieved
by the reverse application of the management algorithm.