Abstract:
A method and system for creating and maintaining multiple document versions in a data processing system implemented library. Selected documents within a data processing system implemented library are uniquely identified as root documents and a version-root identifier for each successor version of a particular root document is established. Thereafter, a selected version-root identifier is automatically associated with each created successor version of a root document. Upon the creation of a successor version of a root document and a second predecessor document, the version-root identifier associated with the root document is automatically associated with the successor version and the second predecessor document. Upon the creation of a successor version base upon multiple non-root predecessor documents a particular non-root predecessor document is automatically selected as a root document and a version-root identifier is established and associated therewith. Thereafter, the newly established version-root identifier is automatically associated with all non-root predecessor documents and the successor version based thereon.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates in general to data processing system implemented libraries and in particular to a method and system for creating and maintaining multiple document versions within a data processing system implemented library. Still more particularly the present invention relates a method and system for creating and maintaining multiple predecessor and successor versions of a document within a data processing system implemented library. 
     2. Description of the Prior Art 
     Electronically implemented &#34;libraries&#34; are rapidly surpassing more traditional forms of information storage in the world today. It is quite common for data processing system implemented libraries to maintain and control thousands of different objects, or documents. The rules by which such documents may be altered and/or maintained are typically governed by various standards such as the International Standard ISO/IEC 10166, Document Filing and Retrieval (DFR). 
     One problem which exists in such electronic libraries is the management and control of multiple versions of a selected document in a so-called &#34;Conceptual Document&#34; wherein all documents therein are related. Many systems exist for governing relationships between multiple versions of a single document in a linear relationship. That is, a relationship wherein a selected document may have single predecessor document and a single successor document. While the need for a method and system which permits each document to have multiple predecessors and successor documents has been generally alluded to, no current library system permits such a relationship to be created and maintained. 
     It should therefore be apparent that a need exist for a method and system which permits multiple predecessor and successor versions of a document to be created and maintained within a data processing system library. 
     SUMMARY OF THE INVENTION 
     It is therefore one object of the present invention to provide an Improved data processing system implemented library. 
     It is another object of the present invention to provide an improved method and system for creating and maintaining multiple document versions within a data processing system implemented library. 
     It is yet another object of the present invention to provide an improved method and system for creating and maintaining multiple predecessor and successor versions of a document within a data processing system implemented library. 
     The foregoing objects are achieved as is now described. Selected documents within a data processing system implemented library are uniquely identified as root documents and a version-root identifier for each successor version of a particular root document is established. Thereafter, a selected version-root identifier is automatically associated with each created successor version of a root document. Upon the creation of a successor version of a root document and a second predecessor document, the version-root identifier associated with the root document is automatically associated with the successor version and the second predecessor document. Upon the creation of a successor version based upon multiple non-root predecessor documents a particular non-root predecessor document is automatically selected as a root document and a version-root identifier is established and associated therewith. Thereafter, the newly established version-root identifier is automatically associated with all non-root predecessor documents and the successor version based thereon. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further objects and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein: 
     FIG. 1 is a pictorial representation of a distributed data processing system which may be utilized to implement the method and system of the present invention; 
     FIGS. 2A and 2B are high level logic flow charts illustrating a software implementation of the method and system of the present invention; 
     FIG. 3 is a pictorial representation of a first Conceptual Document structure which may be implemented utilizing the method and system of the present invention; 
     FIG. 4 is a pictorial representation of a second Conceptual Document structure which may be implemented utilizing the method and system of the present invention; and 
     FIG. 5 is a pictorial representation of a third Conceptual Document structure which may be implemented utilizing the method and system of the present invention. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     With reference now to the figures and in particular with reference to FIG. 1, there is depicted a pictorial representation of a distributed data processing system 8 which may be utilized to implement the method and system of the present invention. As may be seen, distributed data processing system 8 may include a plurality of networks, such as Local Area Networks (LAN) 10 and 32, each of which preferably includes a plurality of individual computers 12 and 30 respectively. Of course, those skilled in the art will appreciate that a plurality of Intelligent Work Stations (IWS) coupled to a host processor may be utilized to implement each such network. 
     As is common in such data processing systems, each individual computer may be coupled to a storage device 14 and/or a printer/output device 16. One or more such storage devices 14 may be utilized, in accordance with a method and system of the present invention, to store the various objects or documents which may be periodically accessed by a user having access to such objects or documents. Further, one or more such storage devices 14 may be utilized, as will be explained in greater detail herein, to store multiple predecessors and/or successors of a particular document within a data processing system implemented library, in accordance with a method and system of the present invention. 
     Still referring to FIG. 1, it may be seen that distributed data processing system 8 may also include main frame computers, such as main frame computer 18, which may be preferably coupled to Local Area Network (LAN) 10 by means of communication link 22. Main frame computer 18 may be coupled to a storage device 20 which may serve as remote storage for Local Area Network (LAN) 10 and may be coupled via communications controller 26 and communications link 34 to gateway server 28. Gateway server 28 is preferably an individual computer or Intelligent Work Station (IWS) which serves to link Local Area Network (LAN) 32 to Local Area Network (LAN) 10. 
     As discussed above with respect to Local Area Network (LAN) 32 and Local Area Network (LAN) 10, a plurality of data objects or documents may be stored within storage device 20 and controlled by main frame computer 18, as Resource Manager or Library Service for the data objects and documents thus stored. In the depicted embodiment of the present invention such objects and/or documents are preferably stored and maintained in accordance with International Standard ISO/IEC 10166, Document Filing and Retrieval (DFR). Those skilled in the art will appreciate that it is often desirable to maintain a data processing system implemented library at a central location within a distributed data processing system wherein users throughout the distributed data processing system may access objects or documents stored therein. 
     Referring now to FIG. 2 there is depicted a high level logic flow chart illustrating a software implementation of the method and system of the present invention. As depicted, the process begins at block 50 thereafter passes to block 52 which illustrates a determination of whether or not the user desires to create a version of an existing document. If not, the process passes to block 54 and returns. In the event the user does desire to create a version of an existing document, as determined at block 52, the process passes to block 56. Block 56 illustrates the selection by the user of at least one predecessor document. 
     Next, the process passes to block 58 which, in accordance with an important feature of the present invention, illustrates a determination of the number of predecessor documents selected by a user. In the event a single predecessor document has been selected, the process passes to block 60. Block 60 depicts a determination of whether or not the predecessor document selected is a root document or a version of a root document. If not, the process passes to block 62 which illustrates the establishment of a version-root identifier for the predecessor document and the association of that version-root identifier with both the predecessor document and the current document under creation. Thereafter, the pointers within the electronic library are updated and the process passes to block 64 and returns. 
     Referring again to block 60, in the event the predecessor document of the current version under creation is a root document or a version of a root document, the process passes to block 66. Block 66 illustrates the copying of the version-root identifier of the predecessor document to the current document under creation and the updating of the previous and next-version pointers for both documents. The process then passes to block 64 and returns. 
     Referring again to block 58 in the event the user has selected multiple predecessor documents for utilization in creation of the current version, the process passes to block 70. Block 70 depicts a determination of whether or not all predecessor documents selected by the user are either a root document or versions of a root document. If so, the process passes to block 72 which depicts a determination of whether or not all version-root identifications associated with the selected predecessor documents are identical. If not, the process passes to block 74 and returns an error message. Those skilled in the art will appreciate that in order to maintain a Conceptual Document wherein all documents within the Conceptual Document are related it is necessary that all documents contained therein have associated therewith an identical version-root identifier. 
     Referring again to block 72, in the event all predecessor documents selected by the user include identical version-root identifiers, the process passes to block 76. Block 76 illustrates the assigning of the version-root identifier to the current document under creation and the updating of the pointers to those documents within the electronic library. The process then passes to block 78 and returns. 
     Referring again to block 70, in the event all predecessor documents selected by the user for inclusion in the creation of the present version document are not either root document or a version of a root document the process passes to block 80. Block 80 illustrates a determination of whether or not multiple predecessor documents within the plurality of predecessor documents selected by their user are either a root document or a version of a root document. If so, the process passes to block 82. Block 82 illustrates a determination of whether or not each of the multiple predecessor documents which is either a root document or a version of a root document includes the identical version-root identifier. If not, as above, the process passes to block 84 and returns an error message to the user. 
     In the event each of the multiple predecessor documents which is a document version includes an identical version-root identifier, as determined at block 82, the process then passes to block 86 wherein the version-root identifier present within the multiple predecessor documents is assigned to the current version under creation and all non-version predecessor documents within the plurality of predecessor documents selected by the user. The pointers to those documents are then updated. Thereafter, the process passes to block 88 and returns. 
     Referring again to block 80, in the event multiple predecessor documents within the predecessor documents selected by the user are not either root documents or versions of a root document, the process passes to block 90. Block 90 illustrates a determination of whether or not any single predecessor document within the multiple predecessor documents selected by the user is either a root document or a version of a root document and if so, the process passes to block 92. Block 92 illustrates the assigning of the version-root identifier of the single predecessor document which is either a root document or a version of a root document to the version under construction and all other non-version predecessor documents. Thereafter, the process returns, as depicted at block 94. 
     Referring again to block 90, in the event no single predecessor document within the plurality of predecessor documents selected by the user is either a root document or a version of a root document, the process passes to block 96. Block 96 illustrates an important feature of the present invention in which the system automatically selects one of the predecessor documents as a root document and thereafter assigns a version-root identifier of that document to all predecessor documents selected by the user and to the current version of the document under creation. The pointers to these documents are then updated and the process then returns, as depicted at block 98. 
     With reference now to FIG. 3, there is depicted a pictorial representation of a first Conceptual Document structure which may be implemented utilizing the method and system of the present invention. As illustrated, a document C, at reference numeral 100, is depicted having multiple predecessor documents 102 and 104 and multiple successor documents 106 and 108. As described above with respect to the logic flowchart all version-root identifiers for predecessor documents 102 and 104, where present, must be identical and will thereafter be utilized as the version-root identifier for all successor documents within the Conceptual Document. In the event neither predecessor document 102 or predecessor document 104 includes a version-root attribute, the office Library Server, in accordance with an important feature of the present invention, will select the Unique Permanent Identifier of either predecessor document 102 or 104 as the version-root of the Conceptual Document depicted within FIG. 3 and this version-root identifier will then be added to the attribute of each document within the Conceptual Document depicted within FIG. 3. Thus, documents 100, 106 and 108 will each thereafter include a version-root identifier selected by the Library Server from either predecessor document 102 or predecessor document 104. 
     Referring now to FIG. 4 there is depicted a pictorial relationship of a second Conceptual Document structure which may be implemented utilizing the method and system of the present invention. As depicted in FIG. 4, document A, at reference numeral 110, is the predecessor document for document B, at reference numeral 112. Document B, at reference numeral 112, and document D, at reference numeral 116, are both predecessor documents of document C, at reference numeral 114. Thus, any document may be included in a Conceptual Document as a predecessor of another document which is being added to the Conceptual Document, if that document is not a member of a second Conceptual Document (there is no version-root identifier present which is not identical to the version-root of the documents within the present Conceptual Document). In accordance with an important feature of the present invention, predecessor document D, at reference numeral 116, will automatically be assigned the same version-root identifier of document A, at reference numeral 110, as that version-root identifier will be automatically associated with document C, at reference numeral 114. 
     Finally, with reference to FIG. 5 there is depicted a pictorial representation of a third Conceptual Document structure which may be implemented utilizing the method and system of the present invention. As illustrated in FIG. 5, a predecessor document A, at reference numeral 120, is utilized to create a successor version document C, at reference numeral 122 and a successor version document B, at reference numeral 124. Document C also includes as a predecessor document B, at reference numeral 124. Thus, any document within the same Conceptual Document may have multiple predecessors, so long as those predecessors are not coincident. That is, document A, at reference numeral 120, and document B, at reference numeral 124, may be utilized as multiple predecessor documents for a third document since these predecessors share the same version-root identifier. 
     Additionally, the depicted embodiment of the present invention will automatically update all pointers within the library by automatically assigning a unique version-name to each newly created version document while also including in association with such version documents an identification of the immediate predecessor document(s). Further, when a document is utilized as a predecessor, an indication of the unique version name of its successor will be associated with the predecessor document. In this manner, a Library Service may easily keep track of all related documents within a single Conceptual Document. 
     Upon reference to the foregoing those skilled in the art will appreciate that the Applicants herein have created a method and system which may be utilized to create and maintain multiple document versions in a data processing system implemented library wherein each document therein may have multiple predecessors and multiple successors. This flexible model of versioning allows many different combinations of Conceptual Document structures, greatly enhancing the flexibility of a data processing system implemented library. 
     While the invention has been shown in only one of its forms, it is not thus limited but is susceptible to various changes and modifications without departing from the spirit thereof.