Efficient evaluation of resource version history queries is enabled by
using a data container storing records corresponding to links between
successive versions of a resource. The records include: (a) a record
identifier, (b) a predecessor identifier, (c) a successor identifier, (d)
a predecessor rowset, which comprises the record identifier of each
record in which the predecessor identifier in this record is the
successor identifier, and (e) a successor rowset, which comprises the
record identifier of each record in which the successor identifier in
this record is the predecessor identifier. Depending on the nature of a
request, a record is identified in which a particular version is
identified by either the predecessor identifier or the successor
identifier. Either the predecessor or successor rowsets are recursively
read, while the predecessor or successor identifiers corresponding to
each record read are added to a result set, thereby forming the ancestor
or descendant version history.