System and method for managing dynamic document references

Document fragments are managed by the use of fragment objects. Fragment objects contain a reference to a portion of a source document. Referencing documents contain a reference to a fragment object which delivers the content of the fragment of the source document to the referencing document. The source document can be directly updated through updating the fragment of the source document contained in the referencing document via the use of the fragment object. Source document deletion is controlled by storing the references to the source document by fragment objects so that no fragment object has a reference to a nonexistent source document. A process for organizing document fragments within a document management system wherein source documents comprise duplicates of the document fragments includes replacing a duplicate fragment with a reference to a single fragment object the fragment object including a reference to a fragment of a source document and an object class method for deletion of the fragment object including instructions to remove the reference to the fragment object from the metadata of the source document to which the fragment object refers.

BACKGROUND

A document is a conventional unit of information exchange. The development of electronic documents has increased the ease and flexibility with which documents can be altered, separated, and reorganized. Documents in electronic form can contain references to other electronic documents or parts of other electronic documents. Unlike conventional printed documents, an electronic document with a reference to another electronic document carries the possibility of new applications involving the dynamic lookup of the content of other documents.

Standards such as Extensible Markup Language, Extensible Markup Language Pointer, and Extensible Markup Language Inclusions are examples of tools that can be used to implement a system of managing dynamic document references. The possibility of embedding, within a document, dynamic references to other documents enables the concept of managing a set of documents as a set of document fragments. The document fragments can be referenced directly instead of indirectly by first traversing a reference to the full document that originally contained the fragment. The full document that originally contained the fragment can itself be referenced directly or indirectly.

Conventionally, document components can be managed directly, like small documents. In these conventional systems documents are stored as sections.

It has long been possible to specify portions or fragments of simple text documents where a fragment can be specified by a file offset and size, but now there are mechanisms for specifying fragments of structured documents. An example is the Extensible Markup Language Pointer standard that can reference portions of an Extensible Markup Language encoded document. Furthermore, there are standards such as Extensible Markup Language Inclusions that allow fragments of documents to be inserted into other documents.

Document fragments then, are becoming the new unit of information Document fragments provide the capability of reuse of information and content Document fragments allow documents to be dynamic; when the information in the source document is updated or changed, those changes are seen in all the documents that include the altered fragments. However, the infrastructure to deal with componentized documents and document fragments is still being developed.

For example, an identified fragment may be particularly useful for inclusion in multiple documents. It would then be desirable to have the means to find a previous definition of that fragment and copy or paste that fragment into the new document. Other examples include: organizing fragments for better management and identification, associating metadata with a document fragment extending the use of fragments beyond the Extensible Markup Language document world, propagating changes from document fragments back to the source document and managing references to deleted source documents.

Furthermore, it is desirable to have the ability to perform the above-mentioned tasks even if the user only has read access to the source documents of the document fragments.

It may be desirable to include the referenced document fragment in a form or format that is different from its form in the original source document. One example is translation into another language. Another example is change of display font or printer font. Another example is summarization where a lengthy fragment of a document is transformed so that only a summary appears in the referencing document.

It may be desirable to edit or revise a document including the referenced text of a document fragment. One way to make the revision is by making a copy of the referenced content and editing the copy. But this approach sacrifices the ability to dynamically maintain consistency with the source document.

Updating of all references to the source document is also necessary to dynamically maintain consistency with the source document when changes to a referenced fragment must be propagated back to the source document. A reference must describe both the location and scope of the referenced content, but editing the content could alter its size and scope. This might mean having to revise all references to the inserted content, even though these can occur in documents that the editor is unaware of. An additional problem is determining how to know what the boundary is between the revised referenced content and the revised referencing document after editing has taken place.

What is needed is the ability to more flexibly propagate changes back to a source document from a document fragment that is coupled to the source document only by the use of a reference within a referencing document.

Documents can include portions of other documents by reference. If, however, the referenced document is deleted, the reference is left dangling. What is needed is a means to tell if a document is referenced in order to know if it is safe to delete the document, or a means to revise references so that the references reference something other than the deleted object.

A document may include content with a variety of access sensitivities. Some parts of the document may be suitable for general access, while other portions will need to have the access restricted. One way to impose the restriction is by encryption. Once a document is encrypted, the document can conventionally be made available without much concern or reservation since only a select group of users can decrypt the document. However, it may be desirable to be able to select and use less sensitive portions of the document in other documents with less restrictive access, while other portions will need to have the access restricted. It is possible to employ several encryptions within the document, but this would be inconvenient to the viewer. To access the document as a whole, the most restrictive rules must prevail.

A document repository may contain legacy documents where content has been shared by copy and paste editing. It would be desirable to be able to automatically identify these common content elements so that the common content elements might be replaced with a document or document fragment reference.

Therefore, it is desirable to provide a system and method for managing document fragments that overcome the above-mentioned difficulties.

DETAILED DESCRIPTION

For a general understanding, reference is made to the drawings. In the drawings, like references have been used throughout to designate identical or equivalent elements. It is also noted that the drawings may not have been drawn to scale and that certain regions may have been purposely drawn disproportionately so that the features and concepts could be properly illustrated.

According to aspects illustrated herein, there is provided a system for managing documents and document fragments including: a digital computer system, a source document, a referencing document, an object repository operatively coupled to the computer system and a fragment object operatively coupled to the object repository. The fragment object includes: a reference to a fragment of a source document and an object class method for deletion of the fragment object the object class method including instructions to remove the reference to the fragment object from the metadata of the source document to which the fragment object refers. The digital computer system includes: a central processing unit, a random access memory, a persistent media memory an input device and an output device. The object repository includes: the metadata of a source document and a library of executable object class methods.

According to aspects illustrated herein, there is further provided a process for retrieving document fragments including: accessing a referencing document, requesting a document fragment from a fragment object, and accessing a fragment of a source document. According to aspects illustrated herein, there is further provided a process for updating a source document including: retrieving a referencing document, accessing a fragment object, identifying the content of the source document associated with the fragment object, editing the content from the source document associated with the fragment object, invoking the fragment object to update the source document and updating the source document according to the edit of the fragment of the source document associated with the fragment object.

According to aspects illustrated herein, there is further provided a process for deleting a source document including: requesting the deletion of a source document from a document management system and examining the metadata of the source document to determine whether the source document is referenced by a fragment object.

According to aspects illustrated herein, there is further provided a process for organizing document fragments within a document management system wherein source documents include duplicates of the document fragments the process including: identifying a structurally distinct fragment of a document, computing the checksum of a structurally distinct fragment of a document, identifying a set of duplicate document fragments and replacing a duplicate fragment with a reference to a single fragment object.

According to aspects illustrated herein, there is further provided a process for creating a fragment object including: invoking the creation of a fragment object from an object repository, accessing a source document, using information obtained from the user to generate a reference to a fragment of the source document in the data of the fragment object updating the metadata of the source document to record the new reference to the source document and storing the data of the fragment object in a document management system.

According to aspects illustrated herein, there is further provided a process for causing a referencing document to reference a document fragment including: selecting a document fragment from a document management system and adding a reference to a fragment object referring to the selected document fragment to the referencing document.

In reference now toFIG. 1, a block diagram illustrating a system for managing document fragments is shown. A digital computer195includes an object repository100, a source document120and a referencing document110. An object repository100includes the metadata140of a source document120. The object repository100also includes a fragment object130that contains a combined reference180to the metadata140of a source document120and a fragment150of the source document120. It is noted that the source document120need not physically reside within the object repository100, since the metadata140of the source document120provides sufficient information to access the source document120. The fragment object130references a fragment150of the source document120utilizing a reference180the metadata140of the source document120. The metadata of the source document includes a reference190to the source document itself.

It is noted that the fragment object130may include an object class method for encrypting and decrypting document data. An object class method for encryption or decryption of document data allows the user to access encrypted source document data. Such an object class method would also allow the data of the fragment object itself to be encrypted and decrypted. An object class method for encryption or decryption will also allow the encryption of entire source documents and parts of source documents.

A referencing document110includes a reference170to a fragment object130. The fragment object130provides to the referencing document110the content160of the document fragment150. It is noted that the fragment object130may include an object class method to transform the data of the source document. This would allow the original source document data to be presented in a different form in the referencing document than the form in the original source document. An object class method for changing the form of the source document data may allow, for example, changing of the display font or printer font, translation into another language or may allow summary of content. It is noted that many other features and functions or alternatives thereof may be implemented in an object class method to change the original form of the source document data which are also intended to be encompassed herein.

The fragment object130may also include an object class method for enforcing digital access rights. An object class method for enforcing digital access rights may deny access to a document fragment, the fragment object or the source document depending on the rights assigned to the user. It is noted that object class methods for enforcing digital access rights and for encrypting and decrypting document data can be used together to implement a document data security policy. Methods of user identification and enforcement of digital access rights, along with algorithms for encryption and decryption are known to those skilled in the art and will not be discussed in detail here.

The fragment object130may also include an object class method for utilizing an Extensible Markup Language encoded document. Such an object class method would enable the use of the Extensible Markup Language Pointer standard that can reference portions of an Extensible Markup Language encoded document. An object class method for utilizing Extensible Markup Language would also enable the use of Extensible Markup Language Inclusions; which allows fragments of documents to be inserted in other documents.

It is noted that the fragment object130herein disclosed may also be used with documents that are not encoded in Extensible Markup Language.

A process for retrieving document fragments150within a referencing document110includes accessing a referencing document110. It is noted that a referencing document may be accessed by a conventional document editor. Conventional document editors such as Microsoft Word® are capable of invoking objects such as the fragment object130herein disclosed.

Further, the process for retrieving document fragments150within a referencing document110includes requesting a document fragment from a fragment object130. When the fragment object130is invoked with a request to display the document fragment150, the metadata140of the source document120is examined and the source document120is accessed. The fragment150of the source document120that is defined by the fragment object130is accessed and copied into the referencing document110to be displayed therein.

It is noted that retrieval of the document fragment may include transforming the data of the document fragment from its native format as described above. Retrieval of the document fragment may also include decrypting the data of the document fragment as described above if that data is encrypted. Retrieval of the document fragment may also include enforcing digital access rights as described above.

A process for updating a source document120includes retrieving a referencing document110as described above. The process further includes accessing a fragment object130from within a referencing document110as described above. The content of the document fragment150that is displayed within the referencing document110is identified in the referencing document110by its position or other conventional means. The process further includes editing the content of the document fragment160within the referencing document110.

Further, the process for updating a source document120includes invoking the fragment object130with a request to update the source document120according to the edit of the fragment160of the source document. When the fragment object130receives the request, the fragment object modifies the fragment150of the source document120associated with the fragment object130. It is noted that once the source document120is modified, the fragment object130will refer to the modified fragment150. Therefore, all referencing documents110that refer to the fragment object130will automatically refer to the modified fragment150.

Since the size of the fragment150may be changed by the edit, the fragment object130must not use the conventional position and offset method of identifying the fragment150. Rather, the fragment150must be identified in a way that focuses as directly as possible on the semantics of what is being sought, such as a reference to a numbered paragraph or a labeled section of a document such as a preamble.

A process for deleting a source document120includes requesting the deletion of a source document120from the object repository100that includes the metadata of the source document. It is noted that any conventional means may be used to invoke the appropriate object class method of the object repository100to initiate a source document deletion request.

Further, the process for deleting a source document120includes examining the metadata140of the source document120to determine whether the source document120is referenced by a fragment object130. It is noted that when a fragment object130is created within the object repository100, the metadata140of the source document120to which the fragment object130refers is updated to record the new reference180to the source document120. It is also noted that when a fragment object130is deleted, the metadata140of the source document120to which the fragment object130refers is updated to record the removal of the reference180.

If, through examining the metadata of the source document, it is determined that the source document120being deleted still has fragment objects130referring to the source document, it is possible to postpone the deletion of the source document120until all references180to the source document120from a fragment object130are first deleted. Marking the source document120for future deletion allows this postponement to take place. Marking the source document120for future deletion also allows the referencing fragment objects130to determine that the source document120is marked for future deletion. Depending on the use or the environment of the referencing document110, the user of the referencing document110may wish to see whether the source document120is marked for future deletion.

Further, the process for deleting a source document120may include physically deleting the source document120. It is noted that physically deleting the source document120is not necessary to remove the data of the source document from the referencing fragment objects. Since a fragment object130references the source document120through the metadata140of the source document120, only the metadata140of the source document120need be marked as deleted. However, the physical deletion of the source document120along with physical deletion of the metadata140of the source document may also be included in the process.

Further, the process for deleting a source document120may include marking a fragment object130that refers to the source document120to signify that the source document120is deleted. It is noted that if the metadata140of the source document120is marked as deleted, it is not necessary to also mark the fragment object130. However, if the metadata140of the source document120is physically deleted, such a marking would be necessary if the user of the document fragment150wished to know positively whether the source document120was deleted. It would not be enough to simply allow a dangling reference to a document fragment to persist.

Further, the process for deleting a source document120may include copying the actual document data of a fragment referenced by fragment object130into the data of the fragment object130itself. This will allow the source document120to be deleted while a reference to a fragment of that source document is still maintained by preserving the data of the fragment of the source document120that is referenced by the fragment object130. Copying the actual document data150of a document fragment into a fragment object130allows the source document120to be deleted transparently such that all referencing documents110that refer to fragments150of the source document120are virtually unaffected.

A process for organizing document fragments includes identifying a structurally distinct fragment150of a document120. Further, the process for organizing document fragments includes computing a checksum for each fragment so identified. The checksum enables the fragments to be segregated into groups that are natural candidates for being identical. The members of each group so identified can be compared with each other to determine if the members of the group are indeed identical.

A process for creating a fragment object130includes invoking the creation of a fragment object130from an object repository. It is noted that any conventional means may be used to invoke the appropriate object class method of the object repository100to initiate the creation of a fragment object. The object class method for creating the fragment object is utilized to access a source document120. Information obtained from the user is used to generate a reference180to a fragment150of the source document120in the data of the fragment object130.

The process further includes updating the metadata140of the source document120to record the new reference180. The metadata140may be updated by simply incrementing a reference count. The metadata140may also be updated by adding a reference to the fragment object130to the metadata140of the source object120. It is noted that various presently unforeseen or unanticipated alternative means for updating the metadata may be devised by those skilled in the art and are also intended to be encompassed herein.

The process further includes storing the data of the fragment object130in the object repository100of the document management system.

A process for causing a referencing document110to reference a document fragment150includes selecting a document fragment150from a document management system. It is noted that any conventional means may be used to invoke the appropriate object class method of the object repository100to initiate a document fragment selection dialog. It is noted that a referencing document may be accessed by a conventional document editor. Conventional document editors are capable of invoking object class methods such as the fragment selection dialog130herein disclosed. The fragment selection dialog will conclude with the incorporation of a reference170to a fragment object130into the referencing document110.

In reference now toFIG. 2, a result of the process for organizing document fragments within a document management system is illustrated. Situation210illustrates four source documents120each containing a fragment150where each of the fragments is identical. Situation220illustrates the same four documents110,120. Three of the documents110have the identical fragment replaced with a reference170to a fragment object130. The fragment object130in turn contains a reference to a fragment150of the fourth document120which has now become a source document120. The other documents110have now become referencing documents110. Situation220allows greater space efficiency, especially as the document fragment150may be large. Situation220also allows greater control of content since all changes to the document fragment150will automatically be propagated to all referencing documents110as well as other documents that may later reference the document fragment150.

In reference now toFIG. 3, a flowchart describing a process for retrieving a document fragment is illustrated. At Step S310a referencing document is accessed. It is noted that any conventional means for accessing a referencing document may be used. At Step S320the fragment object is invoked with a request to display the document fragment to which the fragment object refers. It is noted that each time a referencing document is displayed; the fragment object may be invoked in this way.

At Step S330the fragment object displays the data of the document fragment. It is noted that displaying the document fragment may include transforming the data of the document fragment from its native format as described above. Displaying the document fragment may also include decrypting the data of the document fragment as described above if that data is encrypted. Retrieval of the document fragment may also include enforcing digital access rights as described above.

In reference now toFIG. 4, a flowchart describing a process for updating a source document is illustrated. At Step S410a referencing document is accessed. It is noted that any conventional means for accessing a referencing document may be used. At Step S420then, a fragment object, which is referenced in the referencing document, is accessed.

It is noted that accessing the fragment object may include transforming the data of the document fragment from its native format as described above. Accessing the fragment object may also include decrypting the data of the document fragment as described above if that data is encrypted. Accessing the fragment object may also include enforcing digital access rights as described above.

At Step S430source document content to be edited that is provided by the fragment object is distinguished from the content of the referencing document. It is noted that any conventional means to distinguish source document content from referencing document content may be used such as inserting invisible tokens into the referencing document.

At Step S440the content of the source document presented by the fragment object in the referencing document is edited. At Step S450the fragment object is invoked with a request to update the content of the source document. It is noted that the fragment object may be invoked by any conventional means. The fragment object may be invoked automatically whenever the document editor performs a “save” of the referencing document. The fragment object may be invoked upon closure of the referencing document.

At Step S460the fragment object updates the portion of the source document to which the fragment object refers according to the edit performed in Step S440. It is noted that updating the source document may include decrypting the data if the data of the source document is encrypted. Updating the source document may also include transforming the data back to its native form if the data of the source document was transformed by the fragment object for inclusion in the referencing document. Updating the source document may also include enforcing digital access rights. For example, if the user of the referencing document has read permission but not write permission, the edit would be rejected.

In reference now toFIG. 5, a flowchart describing a process for deleting a source document is illustrated. At Step S510a document management system is invoked with a request to delete a source document. It is noted that the document management system may be invoked by any conventional means including accessing the source document in a document editor and requesting its deletion. Another conventional means of requesting the deletion of a source document is to use a deletion command from a file management system. At Step S520the metadata of the source document is examined to determine whether the source document is referenced by a fragment object. It is noted that regardless of the means used to request deletion of the source document, an examination of the metadata of the source document will take place as a result.

In order to solve the problem of “dangling references” as described above, actual physical deletion of a source document or the metadata of the source document will not take place until a decision regarding existing references can be made. The decision may be automated in several ways. One way to automate the decision is to mark the metadata of the source document for future deletion. This will enable existing references to continue to retrieve data from the source document until such time as all such references are themselves first deleted. Another way to automate the decision is to mark the metadata of the source document to show that the source document is deleted. This would allow the fragment object to positively report the deletion of the source document when invoked. Still another way to automate the decision is to copy the data of the source document that is referenced by each of the fragment objects that reference the source document to each of those fragment objects that reference the source document. Then, it would be safe to delete the source document because the fragment object no longer needs the source document to deliver data when the fragment object is invoked.

At Step S530, an automated decision based on the existence of references to the source document is taken. If there are no existing references to the source document, control passes to Step S540. At Step S540, the source document is physically deleted. It is noted that Step S540may also include the physical deletion of the metadata of the source document since there are no existing references. At Step S540the process is complete.

If there are existing references to the source document, control passes to Step S550. At Step S550, the metadata of the source document may be marked for future deletion or marked as deleted as described above. Also, at Step S550, the source document data that is referenced by the fragment objects may be copied into the data of the fragment objects themselves, in preparation for the physical deletion of the source document. Copying data into the fragment objects eliminates the need for a reference to the source document, therefore, the fragment object is no longer considered to be referencing the source document, once the source document's data is copied into the fragment object.

At Step S560, the metadata of the source document is once again examined and if, at this point there are no references to the source document existing in any fragment objects, the source document can be physically deleted. If there are no existing references in a fragment object to the source document, control passes back to Step S540. It is noted that, at Step S540, the source document is physically deleted. The metadata of the source document may also be deleted at Step S540. If there are still references to the source document in existence at the Step S560, the process is complete.

In reference now toFIG. 6, a flowchart describing a process for organizing document fragments within a document management system is illustrated. At Step S610, a structurally distinct fragment of a document is identified. Such a structurally distinct fragment may be identified by any conventional means such as Extensible Markup Language encoding, Hypertext Markup Language encoding or a file position template.

At Step S620, the checksum of each structurally distinct fragment of an object identified in Step S610is computed. It is noted that the checksums computed at Step S620are indexed to the particular document fragments to which the checksums refer.

At Step S630, a set of duplicate fragment objects is identified using the checksums computed at Step S620as a starting point. If two checksums are not identical then the fragments the checksums represent are definitely not identical. If two checksums are identical, then the two fragments must be compared byte by byte to determine if the two fragments are identical.

At Step S640, all but one of documents containing duplicate fragments are changed from source documents to referencing documents. Also, a fragment object is created with a reference to the fragment as the fragment still exists in one of the documents. The other documents that were changed to referencing documents now contain a reference to the new fragment object.

In reference now toFIG. 7, a flowchart describing a process for creating a fragment object is illustrated. At Step S710, the creation of a fragment object is invoked from an object repository. It is noted that any conventional means may be used to invoke the creation of a fragment object.

At Step S720, information obtained from the user is used to select a source document from which a reference to a fragment thereof will be built. It is noted that any conventional means may be used to select the source document such as a file management system.

At Step S730, information obtained from the user is used to build a reference to a fragment of the source document. It is noted that any conventional means may be used to select the part of the document that will be the referenced fragment such as selecting text or selecting specific labeled sections of a document through a document editor.

At Step S740, the metadata of the source document is update. The metadata may be updated by simply incrementing a reference count. The metadata may also be updated by adding a reference to the fragment object to the metadata of the source object. It is noted that various presently unforeseen or unanticipated alternative means for updating the metadata may be devised by those skilled in the art and are also intended to be encompassed herein.

At Step S750the data of the fragment object is stored in a document management system. The purpose of storing the fragment object is to enable the fragment object to persist so that the fragment object may be used until such time as the fragment object is no longer needed.

In reference now toFIG. 8a flowchart describing the process for causing a referencing document to reference a document fragment is illustrated. At Step S810a document fragment is selected from a document management system. It is noted that any conventional means for selecting a document fragment may be used including a file management system wherein the stored data of the document fragment may be selected.

At Step S820a reference to the document fragment is added to the referencing document. It is noted that any conventional means for incorporating a reference to the fragment object into a referencing document may be used.

In reference now toFIG. 9, a block diagram depicting a possible scenario for the use of encryption is illustrated. Access control of documents and document fragments can be managed by controlling the encryption and decryption keys available to the users. An encrypted fragment object930is accessed by a user supplying a decryption key950available to that user. The encrypted fragment object930refers to a fragment920an encrypted source document910. The encrypted fragment object930in turn uses its decryption key940to decrypt the fragment920encrypted source document910. The encrypted fragment object930is then able to present the document fragment920to the user in an unencrypted form.

It is noted that an encryption algorithm or a decryption algorithm can be applied to a source document910or a fragment object930. Further, if a decryption algorithm is applied to a source document910or fragment object930and the source document910or the fragment object930was not first encrypted, the decryption algorithm will return the unencrypted source document910or fragment object930.

It is further noted that an encryption algorithm may be applied to a source document910or a fragment object930with a result that the source document910or fragment object930remains unencrypted because an identity encryption key is supplied that causes no encryption to take place. Making only an identity encryption key available to a user is a way to prevent unauthorized encryption of a document or a fragment object.

In summary, a method may generate a document by accessing a referencing document; invoking a fragment object referenced by the referencing document, the fragment object including a first set of data corresponding to a document fragment of a source document and a second set of data corresponding to a transformation of the document fragment of the source document; transforming the document fragment of the source document based on the second set of data; and incorporating the transformed data into the referencing document to generate a document.

The method may also generate a document by accessing a referencing document; invoking a fragment object referenced by the referencing document, the fragment object including a first set of data corresponding to a document fragment of a source document and a second set of data corresponding to a transformation of the document fragment of the source document; determining the format of the referencing document based on the second set of data; transforming the document fragment of the source document to correspond to the determined format of the referencing document; and incorporating the transformed document fragment of the source document; into the referencing document to generate a document.

The method may further generate a document by accessing a referencing document; invoking a fragment object referenced by the referencing document, the fragment object including a first set of data corresponding to a document fragment of a source document, the fragment object including a second set of data corresponding to access to the document fragment of the source document; determining access credentials of a user; comparing the access credentials of the user with access criteria data in the second set of data corresponding to access to the document fragment of the source document; and incorporating the document fragment into the referencing document.

The fragment object may include a third set of data corresponding to a transformation of the document fragment of the source document such that the document fragment of the source document is transformed based on the third set of data when it is determined that the access credentials of the user correspond to access criteria data in the second set of data corresponding to access to the document fragment of the source document and the transformed document fragment is incorporated into the referencing document.

The method may further generate a document by accessing a referencing document; invoking a fragment object referenced by the referencing document, the fragment object including a first set of data corresponding to a document fragment of a source document, the fragment object including a second set of data corresponding to access to the document fragment of the source document; determining access credentials of a user; comparing the access credentials of the user with access criteria data in the second set of data corresponding to access to the document fragment of the source document; encrypting the document fragment of the source document when it is determined that the access credentials of the user fail to correspond to access criteria data in the second set of data corresponding to access to the document fragment of the source document; incorporating the document fragment into the referencing document when it is determined that the access credentials of the user correspond to access criteria data in the second set of data corresponding to access to the document fragment of the source document to generate a document; and incorporating the encrypted document fragment into the referencing document when it is determined that the access credentials of the user fail to correspond to access criteria data in the second set of data corresponding to access to the document fragment of the source document to generate a document.

The fragment object may include a third set of data corresponding to a transformation of the document fragment of the source document such that the document fragment of the source document is transformed based on the third set of data when it is determined that the access credentials of the user correspond to access criteria data in the second set of data corresponding to access to the document fragment of the source document; the transformed document fragment of the source document is encrypted when it is determined that the access credentials of the user fail to correspond to access criteria data in the second set of data corresponding to access to the document fragment of the source document; the transformed document fragment is incorporated into the referencing document when it is determined that the access credentials of the user correspond to access criteria data in the second set of data corresponding to access to the document fragment of the source document to generate a document; and the encrypted transformed document fragment is incorporated into the referencing document when it is determined that the access credentials of the user fail to correspond to access criteria data in the second set of data corresponding to access to the document fragment of the source document to generate a document.

A method may update a document fragment based upon changes in another document by accessing a referencing document; invoking a fragment object referenced by the referencing document, the fragment object including a first set of data corresponding to a document fragment of a source document; incorporating data from the document fragment into the referencing document to generate a document; changing the incorporated data of the document; invoking a fragment object referenced by the referencing document when the incorporated data of the document is changed; and modifying the document fragment of the source document to correspond to the change in the incorporated data of the document.

A method may also update a document fragment based upon changes in another document by accessing a referencing document; invoking a fragment object referenced by the referencing document, the fragment object including a first set of data corresponding to a document fragment of a source document, the fragment object including a second set of data corresponding to access to the document fragment of the source document; incorporating data of the document fragment into the referencing document to generate a document; changing the incorporated data of the document; determining access credentials of a user; comparing the access credentials of the user with access criteria data in the second set of data corresponding to access to the document fragment of the source document; invoking a fragment object referenced by the referencing document when the incorporated data of the document is changed and when it is determined that the access credentials of the user correspond to access criteria data in the second set of data corresponding to access to the document fragment of the source document; and modifying the document fragment of the source document to correspond to the change in the incorporated data of the document when it is determined that the access credentials of the user correspond to access criteria data in the second set of data corresponding to access to the document fragment of the source document.

A method may further update a document fragment based upon changes in another document by accessing a referencing document; invoking a fragment object referenced by the referencing document, the fragment object including a first set of data corresponding to a document fragment of a source document; incorporating data of the document fragment into the referencing document to generate a document; changing the incorporated data of the document; and modifying fragment object referenced by the referencing document to include a second set of data, the second set of data corresponding to the change in the incorporated data of the document.

A method may also generate a document by accessing a referencing document; invoking a fragment object referenced by the referencing document, the fragment object including a first set of data corresponding to a document fragment of a source document, the fragment object including a second set of data corresponding to access to the document fragment of the source document; incorporating data of the document fragment into the referencing document to generate a document; changing the incorporated data of the document; determining access credentials of a user; comparing the access credentials of the user with access criteria data in the second set of data corresponding to access to the document fragment of the source document; and modifying fragment object referenced by the referencing document to include a third set of data, the third set of data corresponding to the change in the incorporated data of the document when it is determined that the access credentials of the user correspond to access criteria data in the second set of data corresponding to access to the document fragment of the source document.

A method may preserve data associated with a document fragment of a document to be deleted by determining if a document is to be deleted includes a document fragment referenced by a fragment object, the fragment object including a first set of data corresponding to a document fragment of the document to be deleted and a second set of data corresponding to a transformation of the document fragment of the document to be deleted; replacing, in the fragment object, the first set of data corresponding to a document fragment of the document to be deleted with actual data of the document fragment of the document to be deleted when it is determined that the document to be deleted includes a document fragment referenced by a fragment object; and deleting the document to be deleted after the first set of data, in the fragment object, corresponding to a document fragment of the document to be deleted is replaced with the actual data of the document fragment of the document to be deleted.

A method may also preserve data associated with a document fragment of a document to be deleted by determining if a document is to be deleted includes a document fragment referenced by a fragment object, the fragment object including a first set of data corresponding to a document fragment of the document to be deleted and a second set of data corresponding to a transformation of the document fragment of the document to be deleted; copying actual data of the document fragment of the document to be deleted to a second document when it is determined that the document to be deleted includes a document fragment referenced by a fragment object; and replacing, in the fragment object, the first set of data corresponding to a document fragment of the document to be deleted with a reference to the document fragment of the second document.

A method may organize document fragments within a set of documents by identifying a first document fragment of a first document; identifying a second document fragment within the set of documents that is identical to the first document fragment of the first document; determining, from a set of fragment objects, whether one of the set of fragment objects has a set of data corresponding to the first document fragment of the first document; creating a new fragment object having a set of data corresponding to the first document fragment of the first document when it is determined that no fragment objects within the set of fragment objects have a set of data corresponding to the first document fragment of the first document; replacing the second document fragment with a reference to the created fragment object when it is determined that no fragment objects within the set of fragment objects have a set of data corresponding to the first document fragment of the first document; and storing the created fragment object in a memory device.

A method may also organize document fragments within a set of documents by identifying a first document fragment of a first document; identifying a second document fragment within the set of documents that is identical to the first document fragment of the first document; and replacing the second document fragment with a reference to a fragment object, the fragment object including the set of data corresponding to the first document fragment of the first document.

In the various methods discussed above, the transformation of the document fragment of the source document may be a translation of an original language of the document fragment of the source document into a language corresponding to a language of the referencing document, the original language of the document fragment of the source document being different from the language of the referencing document; a summarization of the document fragment of the source document; changing a visual characteristic of the document fragment of the source document, such as a font, an image size, color, and/or a three-dimensional effect; conversion of the document fragment of the source document into Extensible Markup Language format; encryption of the document fragment of the source document; and/or decryption of the document fragment of the source document.