Abstract:
A system and method for autonomous correction of defective documents include an autonomous document. The autonomous document can signal a history server whenever an operation such as printing, scanning, editing, distribution, storage, or retrieval is performed on the document. The history server can be queried to determine when a given defect was introduced into a document, and which instances of the document contain the defect. Based on this information, notifications can be sent to all users who were ever in possession of one of the defective instances, and the defective instances can be automatically corrected. Since the document instances are active entities, they can receive and act on notifications of defects in themselves, follow instructions on how to correct the defect, and notify the history server once the defect has been corrected. The document can act without permission from any user in possession of the document.

Description:
BACKGROUND  
       [0001]     Exemplary embodiments are directed to a system and method for automated correction of defective documents. Specifically, the exemplary embodiments provide a system and method for notifying a document of defects, providing the document with instructions to correct the defects, enabling new workflows where the document can be self-repairing, and allowing for the defects to be automatically eliminated.  
         [0002]     When a consumer product, for example, is discovered to be defective, the manufacturer may recall the product. A registry of owners may be used to notify owners of the defect. News media and other channels may also be used to notify owners and the public of the defect. The owner may then take the initiative to return the product for repair or replacement.  
         [0003]     Similarly, if a document is defective, attempts may be made to notify those who have a copy of the document, repair the document, and replace the defective document. For example, a document may be disseminated through electronic mail (e-mail). If an error is discovered or introduced into that document, those who have received the document may be notified and the error potentially corrected. For example, electronic mail providers, such as, for example, Microsoft Exchange, provide a “recall/replace” operation wherein mail messages in a recipient&#39;s inbox, that have not been read, may be recalled and/or replaced.  
         [0004]     In another example, a document, such as, for example, a newspaper, may be printed, copied, and then handed to one or more persons. If a news organization makes a mistake, it publishes a correction in the newspaper in an attempt to notify consumers who may have been misled by the mistake.  
       SUMMARY  
       [0005]     According to the exemplary embodiments, a system and method are provided that may keep track of document copies, how they relate to each other, where they are, and be able to correct the documents when errors are discovered or introduced to the documents. For example, in a government printing office, law firm office, or the like, large quantities of documents are produced and disseminated. It is important for these types of documents to be accurate and authenticated. It is also important to know that the documents have not been tampered with and are not defective. If an error is discovered or introduced into one of the documents, it would be desirable to be able to trace all copies of the defective document, and/or recover the defective documents, and/or replace or correct the defective documents.  
         [0006]     In exemplary embodiments, documents that have been e-mailed may be retrieved and corrected even if a recipient of the document has already received an electronic copy of the document. For example, a copy of a defective document stored in a repository could be replaced or corrected and then the recipient of the document may be notified that a change had been made to the document.  
         [0007]     In exemplary embodiments, as documents are manipulated, a history of the actions taken on the document may be recorded with a history server. When a document is discovered to be corrupt, the history may be queried to determine when the corruption occurred and to identify all corrupt instances of the document. The document may be informed of the appropriate steps required to repair itself. Documents may be automatically corrected without the need to obtain permission from a user.  
         [0008]     For example, in a business setting, where all employees share a common network, a document may be forwarded via e-mail to, for example, a number of executives, each of whom may or may not make changes to the document, and errors may inadvertently be introduced into the document. The executives may forward their respective version of the document to a number of employees. The creation of the document, who it was forwarded to, what if any changes were made to the document, and any other subsequent action taken, including who receives the original document or subsequent versions of the document may be recorded with a history server. If an error was introduced into one of the versions of the document, by, for example, one of the executives who in turn forward the defective document to a number of employees, the defective documents may be automatically corrected. That is, the document may be given instructions as to how to correct itself, and may correct itself without the need to further involve any of the employees that have procured the defective/now corrected document. Furthermore, the employees may or may not be notified that any change to the document has been made. Thus, the document may be autonomous in that the document may correct itself independently from a user, i.e., the employee having access to the document.  
         [0009]     In other words, the exemplary embodiments build on the notion of an autonomous document. An autonomous document is an active entity containing operational code as well as data. For example, an autonomous document is capable of signaling a history server whenever an operation such as printing, scanning, editing, distribution, storage, or retrieval is performed on the document. The history server can be queried to determine when a given defect was introduced into a document, and which instances of the document contain the defect. Based on this information, notifications can be sent to all users who were ever in possession of one of the defective instances, and the defective instances can be automatically corrected. Since the document instances are active entities, they can receive and act on notifications of defects in themselves, following instructions on how to correct the defect, and notifying the history server once the defect has been corrected.  
         [0010]     Automatic document correction, built on the infrastructure of an autonomous document and a history server, may have many useful applications. This is particularly true for legal documents, government publications such as, for example, the Congressional Register, financial instruments, and the like where the integrity of the document is critical. Here the ability to locate all corrupted instances and correct them is of great value. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0011]      FIG. 1  is a block diagram illustrating a system for autonomous correction of defective documents in an exemplary embodiment;  
         [0012]      FIG. 2  is a schematic of a document history graph in an exemplary embodiment;  
         [0013]      FIG. 3  is a schematic of a sequence diagram of the document correction process in an exemplary embodiment; and  
         [0014]      FIG. 4  is a flowchart illustrating a method for autonomous correction of the defective document in another exemplary embodiment. 
     
    
     DETAILED DESCRIPTION OF EMBODIMENTS  
       [0015]     Exemplary embodiments are directed to a system and method for automated correction of defective documents. Specifically, with reference to  FIG. 1 , the exemplary embodiments provide a system  1  having active documents  7  capable of correcting themselves, a notification service  2  for notifying a document and document users  6  of defects, providing the document  7  with instructions via the administrator  3  and/or user  6 , through a correction service  4  that interacts with the history server  5  and, through the notification service  2 , with the documents  7  themselves to correct the defects. That is, the document  7  informs the history server  7  whenever it performs any operation, and the document corrects itself upon receiving instructions from the correction service  4  via the notification service  2 . The history of each action taken by the document, including creation of the document, changes to the document, forwarding the document, etc., may be recorded and monitored by the history server  5 . The system  1  enables new workflows where the document can be self-repairing and allows for the defects to be automatically eliminated. Features of the system  1  and method for automated correction of defective documents are described in more detail below with reference to  FIGS. 1-4 .  
         [0016]     A document is an assembly of information collected for human consumption. The information may be stored in one or more electronic files, printed on one or more paper pages, or the like. Copies of the document may be made in either an electronic or a hardcopy form. Each copy may be defined as a document instance.  
         [0017]     The document history server  5  contains information about the document and each of the document&#39;s instances (e.g., copies of the document). When the information within a document is altered, the altered document may be called a revision of the original document. The document history may be defined, for example, by a graph. Referring to  FIG. 2 , a document history graph is illustrated where each node in the graph represents an event that occurs to some document instance of some revision of the document.  
         [0018]     The document is autonomous in that the document contains operational code as well as data. Accordingly, the autonomous document contains code as well as information intended for human consumption. The code may enable the document to perform standard operations, such as storing itself, printing itself, performing editing operations, setting metadata values, etc. The code also enables the document to notify the document history server  5  of each operation the document performs, and to watch for notifications of events to which the document needs to respond. In this way, the document can be notified, by, for example, the notification service  2 , when a defect is discovered, and may be instructed to correct the defect. An autonomous document is active only when its code is loaded in memory in a form that can be invoked. Otherwise it is dormant. For example, hard copies of a document that are manually distributed to a number of different people may be dormant, whereas electronic copies distributed and stored by a common network may be active.  
         [0019]     The document history server  5  watches for notifications of significant events in the life cycle of all documents, and records all events for which it receives notifications. These events may include document creation, alteration (resulting in a new revision of the document), creation of a new instance (e.g., new copy of the document), distribution and viewing of instances, and the like. Information recorded for each event might include an instance identifier, what operation was performed, which person initiated the operation, what device or service performed the operation, a delta for a change operation, and the like.  
         [0020]     Thus, the document history may be constructed from the information available on the document history server  5 . Document histories may be queried or viewed and analyzed to determine where in the document history graph a defect was introduced.  
         [0021]     Referring to  FIG. 2 , a document may be created and identified as version  1 , instance  1  (v 1 i 1 ), as shown at node  10 . The document may be read by a person, as shown at node  12 ; stored, as shown at node  14 ; and/or edited, as shown at node  16 . Once the document is edited, it may be identified as a temporary version  2 , temporary instance  2  (v 2 temp, i 2 temp). If stored after editing, as shown at node  18 , the document may then be identified as version  2 , instance  2  (v 2 i 2 ). For example, after the document (v 2 i 2 ) is stored, it may be mailed to a number of different recipients and then identified as (v 2 temp, i 4 temp) for the first recipient, (v 2 temp, i 5 temp) for the second recipient, (v 2 temp, i 6  temp) for the next recipient, etc. After each recipient receives the document, each of the documents may be stored, deleted, or another event may occur to each of the documents for each recipient. For example, mailed documents (v 2 temp, i 4 temp), (v 2 temp, i 5 temp), and (v 2 temp, i 6  temp) may be stored for the first recipient, stored for the second recipient, and deleted for the next recipient, respectively, and correspondingly identified as documents (v 2 , i 4 ), (v 2 , i 5 ) and (v 2 , i 6 ), as shown at nodes  28 ,  26  and  24 , respectively.  
         [0022]     Alternatively, after the created document (v 1 , i 1 ) is stored at node  14 , the stored document version  1 , instance  3  (v 1 , i 3 ) may be printed once or multiple times, as shown at node  22 . Each printed document may be individually identified. The stored document (v 1 , i 3 ) may be identified as, for example, version  1 , instance  7  (v 1 , i 7 ) after a first copy is printed; and version  1 , instance  8  (v 1 , i 8 ) after a second copy is printed. Following printing, the documents (v 1 , i 7 ) and (v 1 , i 8 ) may continue to events unknown, as shown at nodes  30  and  32 . That is, the documents may be subject to any number of events, and individually identified at each event. It is envisioned that other similar events may be implemented in addition to or instead of the versions and instances discussed herein. Thus, the exemplary embodiments are not limited solely to the embodiments described herein but may encompass a plethora of different combinations of versions and instances of the autonomous documents described herein.  
         [0023]     There are any number of instances of documents available in any number of formats. For example, some documents may be electronic, paper, in different versions, etc. Version  1  of the document may be printed, instance  7  and instance  8  of the version  1  document may be stored, printed, edited, deleted, forwarded to a recipient, or may be subject to any other like event. Each of the versions of documents and instances of the documents may be recorded in the document history.  
         [0024]     Referring again to  FIG. 2 , once an event that introduces a defect has been identified, then all the nodes to the right of that event in the document history graph are affected. For example, in  FIG. 2 , if the edit operation, shown at node  16 , document (v 2 temp, i 2 temp), introduced a defect, the document (v 2 temp, i 2 temp) created by the edit operation is affected, as are (v 2 , i 2 ) created by the following store operation, (v 2 temp, i 4 temp), (v 2 temp, i 5 temp), and (v 2 temp, i 6 temp) created by the mail operation, and (v 2 , i 4 ) and (v 2 , i 5 ) created by the final store operations. A notification service can be used to send notifications to all people who initiated the affected events, warning them that the document instance they used was defective. Notifications may also be sent directly to the document instances, telling them how to correct themselves. Furthermore, notifications may or may not be sent to the people who may access the document instances to let them know that the document was corrected or otherwise edited or changed.  
         [0025]     A process for automated correction of defective documents is described below with reference to  FIG. 1-4 . In an exemplary embodiment, a process for automatically correcting a defective document, a recipient or creator  6  of a document may detect an error in the document. An administrator  3  of the system  1  in which the document is located may then be notified of the error. The administrator  3  may define the error and notify a correction service  4 , which corrects the error. The administrator  3  may be a person, an automated user interface, or any device that is capable of communication. The correction service  4  may ask the history server  5  to look for the first instance in which the document contained the error. The history server  5  will respond to the correction service  4  with the identifier of the document instance in which the error first occurred. For example, referring again to  FIGS. 1 and 2 , the history server  5  may inform the correction service  4  at which node in the graph of  FIG. 2  the error occurred. Thus, all other nodes to the right of the error-identified node are also affected by the error.  
         [0026]     After the location of the error and the affected nodes are defined by the history server  5 , a correction for the error is defined by the administrator  3 . The administrator  3  asks the correction service  4  to apply the correction. The correction service  4  communicates with the notification service  2  and then the document instances of each of the affected nodes are instructed to correct themselves. After the correction of the error is implemented, the history server  5  records that the correction has been made and to which instances the correction was made. The users  6  may be notified as part of the corrective action. For example, when each document instance has corrected itself, the document may notify the affected user  6 , i.e., the owner of that document instance.  
         [0027]     More specifically, with reference to  FIG. 2 , every time an operation is performed on an autonomous document, the document notifies the history server  5 , which preserves a record of the operation. The record may include an identifier of the document, revision, instance that was input to the operation, an address of the document, an address for the output of the operation, what operation was performed, a date-time stamp, an identifier of the person responsible for the operation, and the like.  
         [0028]     Other potentially useful information might be an identifier of the service or device used to perform the operation. Specific operations may require additional data to be recorded. For example, an edit operation requires a delta representing the changes made to the document. A change to a metadata entry requires an identifier of the entry that was changed, with the old and new values. This process of logging all events in the history of every autonomous document is what makes the automatic correction of defects possible.  
         [0029]     For example, referring to  FIG. 3 , a first user  100  may notice a defect in a document instance and may notify an administrator  102 , as shown at step S 120 . The administrator  102  may ask a correction service  104  to identify a first node in the document&#39;s history that contains the defect, as shown at step S 122 . The correction service  104  may query a history server  106 , as shown at step S 124 , to determine at which node in the document&#39;s history the defect was introduced. The correction service  104  may ask the history server  106  for a subgraph of all descendents of that node, as shown at step S 126 .  
         [0030]     The administrator  102  may use the correction service  104  to compose an instruction to be sent out to all affected document instances, as shown at step S 128 , telling the document instances, for example, how to correct themselves. The instruction may be, for example, a script or a method call that the autonomous document knows how to execute, for example, to replace “oldText” with “newText”. The administrator  102  may ask the correction service  104  to apply the correction to all affected document instances, as shown at step S 130 .  
         [0031]     The correction service  104  may invoke the notification service  108 , as shown at step S 132 , giving the notification service  108 , for example, the subgraph (of all descendents of the affected node), and the instruction for correction of the affected node(s). As shown at step S 134 , the notification service  108  may then transmit the instructions to each affected node (document instance)  110  and  114 , which then may apply the correction, as shown at step S 136 .  
         [0032]     The notification service  108  may cause the necessary correction to be applied by activating each affected document instance (if it is not already active), and sending the affected document instance the instruction. The autonomous document instance  110  and/or  114  may then apply the necessary correction by performing the instruction, as shown at step S 136 . Furthermore, the autonomous document instance  110 ,  114  may notify the history server  106  that the autonomous document instance has performed the instruction, as shown at step S 138 . The history server  106  records the correction.  
         [0033]     In addition, the definition of the correction created in S 128  may include a message, for example, to be sent to all users identified in nodes of the affected subgraph. If so, the document instances  110  and  114  ask the notification service  108  to send the message to users as shown at step S 140 , for example, describing the defect and telling them how to obtain a corrected instance of the document. The notification service  108  sends the message to users  100  and  112  as shown in S 142 .  
         [0034]     There are numerous different possible variations for the process described herein. For example, a context in which the exemplary embodiments might operate is illustrated in  FIG. 4 . In another exemplary embodiment, a document may be created, as shown at step S 200 . The created document may be subject to a number of different actions. For example, the created document may be stored, forwarded to a first user, or printed, as shown at steps S 202 , S 204  and S 206 , respectively. The first user may store the created document as shown at step S 202  or may edit the document as shown at step S 208 , and then, if desired, store the edited document. The edited document may be printed, as shown at step S 206 . The created document and/or the edited document may be forwarded to any number of users after printing, for example, user  1  and user  2 , as shown at steps S 210  and S 212 . Alternatively, the created document or edited document may be stored for future use, as shown at step S 202 , or forwarded to any number of users, as shown at step S 214 .  
         [0035]     Once the document is printed it is dormant. That is, any code associated with the document is not active. The dormant printed document (e.g., hard copy of the document) may be subsequently copied and forwarded to a number of different users, as shown at step S 214 . At any point, the dormant printed document, or any of the copied versions of the printed document, may be electronically scanned, for example, to activate the document, as shown at step S 216 .  
         [0036]     A determination as to whether there is an error in any active document, whether previously edited or not, at any point in the history of the document, may be made, as shown at step S 218 . If no error is detected, the document may be stored, as shown at step S 220  and/or forwarded to other users, as shown at step S 214 . If an error is detected, instructions for correction may be provided to the document, as shown at step S 222 . The document may apply the instructions to correct itself, as shown at step S 224  and the corrected document may be subsequently stored, as shown at step S 220  and/or forwarded to other users, as shown at step S 214 .  
         [0037]     After correction or a change is made to the document, users having access to the document may be notified of the correction or change, as shown at step S 226 .  
         [0038]     More complex cases may arise if the notification service  108  is unable to communicate with one or any of the document instances (e.g., document copies). For example, the document instance may be a paper, in a dormant state that cannot be activated. Or, the document instance may be electronic and separated from the notification service  108  by a computer firewall. Or, the document instance may be transient (not persistent), as in the case of an e-mail message, so that it is not addressable.  
         [0039]     In another exemplary embodiment, these problems can be mitigated to some extent because descendents of these document instances may become accessible to the correction service  104 , notification service  108 , and history server  106  in the future. Autonomous documents retain their capabilities even through periods when they are dormant or are isolated from their supporting infrastructure. For example, as discussed above with reference to  FIGS. 1 and 4 , when a printed document instance is scanned, an active autonomous document instance results, and sends a notification of the scan operation to the history server  106 .  
         [0040]     If a document instance is mailed through a firewall, so that it can no longer find the infrastructure it needs to become active, some document instances may be lost to the history server  106 , but if a descendent of that instance later comes back into the domain of the supporting infrastructure, the descendent will become active and send notifications of operations performed on it to the history server  106  once again.  
         [0041]     Referring again to  FIG. 2 , if the notification service  108  reports to the correction service  104  all the undeliverable notifications, the correction service  104  may watch for events involving affected document instances or their descendents. For example, if a printed document instance, for example, version  1 , instance  7  (v 1 i 7 ) has a defect, when it is scanned, an event will be sent to the history server  106 , saying that a scan operation was performed on (v 1 i 7 ) to create version  1 , instance  21  (v 1 i 21 ). If the correction service  104  is monitoring for events involving (v 1 i 7 ), it will see that a descendent of (v 1 i 7 ) now needs to be corrected. The correction service  104  may then ask the notification service to notify the person or entity that scanned the document, and the new electronic instance can be notified and asked to correct itself.  
         [0042]     The above-described exemplary embodiments describe only a small portion of the possible combination of documents, versions and instances with respect to autonomous correction of defective documents.  
         [0043]     It will be appreciated that various of the above-disclosed and other features and functions, or alternatives thereof, may be desirably combined into many other different systems or applications. Also, various presently unforeseen or unanticipated alternatives, modifications or improvements therein may be subsequently made by those skilled in the art which are also intended to be encompassed by the following claims.