Method of managing a data structure for concurrent serial and parallel revision of a work
First Claim
1. A method of managing a data structure for the revision of a work, said data structure supporting a plurality of blops and a plurality of layers each having a view of at least one of said blops, said data structure further supporting the association of a name with each of said layers, comprising the steps of:
- preparing a first version of said work in said data structure, said first version of said work being divided into the blops which are in the view of a first one of said layers, each of said blops which are in the view of said first one of said layers having a portion of said first version of said work;
associating a predefined name with said first layer;
revising said work from said first version to create a second version of said work in said data structure, said second version being divided into the blops which are in the view of a second one of said layers, each of said blops in the view of said second layer having a portion of said second version of said work; and
calling a set-layer-name procedure for said second layer with said predefined name and an identification of said first layer, said set-layer-name procedure moving said predefined name from said first layer to said second layer if and only if said predefined name is still assigned to said first layer at the time said set-layer-name procedure is entered.
3 Assignments
0 Petitions
Accused Products
Abstract
A data structure and associated data management methods for highly flexible storage of data for a wide variety of application programs. Data is stored as a plurality of Blops, each of which has a list of Properties associated with it. Each Property contains zero or more elements. Elements are Values, each of which has a Basic Type and consists of a variable length sequence of bytes. The Basic Type defines the format of the Value, as well as meta-information such as compression and encryption. Elements can also be Compound Types, which nestably refer to another list of Properties. Blops are stored in Containers, which map to the physical medium on which the data is stored. Containers associate respective Container Handlers which are specific to the Container'"'"'s physical medium. Related Blops in a Container are organized into Pools of Blops. Each Container contains one or more Pools, each Pool having a unique name within the Container. A Pool contains multiple versions of a Blop. Versions of different Blops are grouped together in Layers in a Pool and each Layer contains at most one version of a Blop. Layers are related to each other as an acyclic digraph, where each Layer is above one or more Base Layers and has zero or more Layers above it. Each Layer presents a "view" to a user of the Blops in a pool, and thereby provides a mechanism to manipulate which versions of which Blops are to be used at any given time.
116 Citations
25 Claims
-
1. A method of managing a data structure for the revision of a work, said data structure supporting a plurality of blops and a plurality of layers each having a view of at least one of said blops, said data structure further supporting the association of a name with each of said layers, comprising the steps of:
-
preparing a first version of said work in said data structure, said first version of said work being divided into the blops which are in the view of a first one of said layers, each of said blops which are in the view of said first one of said layers having a portion of said first version of said work; associating a predefined name with said first layer; revising said work from said first version to create a second version of said work in said data structure, said second version being divided into the blops which are in the view of a second one of said layers, each of said blops in the view of said second layer having a portion of said second version of said work; and calling a set-layer-name procedure for said second layer with said predefined name and an identification of said first layer, said set-layer-name procedure moving said predefined name from said first layer to said second layer if and only if said predefined name is still assigned to said first layer at the time said set-layer-name procedure is entered. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method of managing a data structure for the revision of a work, said data structure supporting a plurality of blops, a plurality of layers each having a view of at least one of said blops, and a plurality of pools, comprising the steps of:
-
preparing a first version of said work in said data structure, said first version of said work being divided into the blops which are in the view of a first one of said layers, each of said blops in the view of said first layer having a portion of said first version of said work and being provided in a base one of said pools operatively coupled to a computer, said base pool having a base one of said layers; copying all of the blops which are in the view of said first layer into a separable one of said pools operatively coupled to said computer; separating said separable pool from said computer; revising said work from said copies of said blops in said separable pool while said separable pool is separated from said computer to create a separated version of said work in said data structure, said separated version being divided into the blops which are in the view of a separable one of said layers, each of said blops in the view of said separable layer having a portion of said separated version of said work; and calling an integrate-pool procedure for said separable layer and said base layer in said base pool, with a reference to a call-back procedure, said integrate-pool procedure performing the steps of; creating a reconciliation layer in said base pool; determining whether a given blop in the view of said separable pool is a different version of a corresponding blop in the view of said base layer; and if so, then calling said call-back procedure with an identification of said given blop and an identification of said corresponding blop, said call-back procedure returning an identification of a blop to be added to the view of said reconciliation layer; and adding said blop identified by said call-back procedure to the view of said reconciliation layer. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A method for updating a work from a starting version of said work to prepare a revised version of said work, comprising the steps of:
-
providing said starting version of said work as a plurality of parts each having an identity which is unique within said starting version, said starting version itself having an identity; creating a version tree of versions of said work, said tree having a plurality of intermediate versions each having a respective plurality of parts, each part in each one of said intermediate versions having an identity which is unique within the intermediate version, and each of said intermediate versions having an identity which is unique among said intermediate versions; and reconciling said intermediate versions of said work to create a reconciliation version of said work, said reconciliation version being said revised version of said work and having an identity different from the identities of all of said intermediate versions, said reconciliation version having a plurality of parts each having an identity which is unique within said reconciliation version, the identity of each part in said reconciliation version being the same as the identity of a part in at least one of said intermediate versions. - View Dependent Claims (19, 20, 21, 22, 23, 24)
-
-
25. A method for updating a work from a starting version of said work to prepare a revised version of said work, comprising the steps of:
-
providing said starting version of said work as a plurality of parts each having an identity which is unique within said starting version; revising said starting version to create a first intermediate version of said work having a plurality of parts, each part in said first intermediate version having an identity which is unique within the first intermediate version; revising said starting version to create a second intermediate version of said work having a plurality of parts, each part in said second intermediate version having an identity which is unique within the second intermediate version; revising said starting version to create a third intermediate version of said work having a plurality of parts, each part in said third intermediate version having an identity which is unique within the third intermediate version; revising said starting version to create a fourth intermediate version of said work having a plurality of parts, each part in said fourth intermediate version having an identity which is unique within the fourth intermediate version; reconciling said first and second intermediate versions of said work to create a first reconciliation version of said work, said first reconciliation version having a plurality of parts each having an identity which is unique within said first reconciliation version, the identity of each part in said first reconciliation version being the same as the identity of a part in at least one of said first and second intermediate versions; reconciling said third and fourth intermediate versions of said work to create a second reconciliation version of said work, said second reconciliation version having a plurality of parts each having an identity which is unique within said second reconciliation version, the identity of each part in said second reconciliation version being the same as the identity of a part in at least one of said third and fourth intermediate versions; and
subsequentlyreconciling said first and second reconciliation versions of said work to create said revised version of said work, said revised version having a plurality of parts each having an identity which is unique within said revised version, the identity of each part in said revised version being the same as the identity of a part in at least one of said first and second reconciliation versions.
-
Specification