Some data models support data versioning (e.g., see [17]) by partitioning the attributes of an object class into non-versioned and versioned attributes. Non-versioned attributes describe the stable (non evolving) part of an object (such as ssn of class Person in figure 1), while versioned attributes describe the changing (evolving) part of an object (such as degree of class Scientist in figure 1). A versioned abstract attribute can refer to either object versions that are specified as current (default) versions or to specific object versions.
Molecular biology data are often explored using a hierarchical (directed tree) structure, where the root of the tree represents a class of objects of interest, T, and the other nodes of the tree represent objects and attribute values related to the objects of T. Consider for example the object classes shown in figure 1. Contig maps and their related owners and fragments can be organized in a directed tree structure whose root node represents (and is labeled with the name of) class Contig_Map, with classes Fragment and Scientist and attribute position of Contig_Map represented as nodes connected from the root, attribute name of class Person represented as a node connected from the node labeled Scientist, and attributes fragment_id and sequence of class Fragment represented as nodes connected from the node labeled Fragment. Hierarchical object structures are not usually supported in object data models, but can be expressed indirectly via nested object queries.
1.15