The present disclosure generally relates to presentation to a reviewer of changes found in a comparison of electronic documents.
Electronic documents, such as word processing documents, spreadsheets, and presentations, often undergo multiple revisions or are co-authored by multiple people who make changes to previous versions of the document. When two versions of a document are compared, the changes are typically reviewed by an individual who is skilled in the relevant field prior to accepting the changes in the latest version.
Systems and methods for presenting changes identified between two electronic documents in a manner that assists rapid review of the changes are disclosed. Each identified change is assigned an initial review state. As a user reviews the changes, the review state can be updated to reflect the status of each change, for example, reviewed and accepted, reviewed and rejected, or reviewed but needs further discussion.
Further, the identified changes are grouped according to the category of the identified change. In one embodiment, categories of changes can include trivial changes, matching changes, potentially missing changes, unexpected changes, unexpected boilerplate changes, and missing placeholder changes. The changes are displayed to the user for review in a hierarchical manner, according to the type of change. Additionally, each type of review state can be associated with an icon for easy identification by the reviewer.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
Examples of an electronic document comparison system and method are illustrated in the figures. The examples and figures are illustrative rather than limiting. The electronic document comparison system and method are limited only by the claims.
Various aspects and examples of the invention will now be described. The following description provides specific details for a thorough understanding and enabling description of these examples. One skilled in the art will understand, however, that the invention may be practiced without many of these details. Additionally, some well-known structures or functions may not be shown or described in detail, so as to avoid unnecessarily obscuring the relevant description.
The terminology used in the description presented below is intended to be interpreted in its broadest reasonable manner, even though it is being used in conjunction with a detailed description of certain specific examples of the invention. Certain terms may even be emphasized below; however, any terminology intended to be interpreted in any restricted manner will be overtly and specifically defined as such in this Detailed Description section.
Conventionally, document comparison tools compare an earlier version of a document with a later updated version of the document to generate a redlined comparison document. Typically, redlined deletions in the comparison document are indicated by a cross-out and redlined additions are indicated with underlining, although other conventions can be used. Further, conventional document comparison programs can also provide a simple listing of the differences between the two documents.
The techniques described in this disclosure can be implemented to categorize the changes and display the categorized changes in a manner that allows the user to review the changes rapidly. In addition, the document comparison application disclosed herein maintains a list of which changes have been reviewed, thus allowing the user to focus attention on the changes that have not been previously reviewed.
The network 201 can be a telephonic network, an open network, such as the internet, or a private network, such as an intranet and/or the extranet. The network 201 can be any collection of distinct networks operating wholly or partially in conjunction to provide connectivity to the client devices and servers, and can appear as one or more networks to the serviced systems and devices.
Client devices 202, 203 can be any system, device, and/or any combination of devices/systems that is able to establish a connection with another device, a server and/or other systems. The client devices 202, 203 typically include display or other output functionalities to present data exchanged between the device and a user. For example, the client devices may be, but are not limited to, a server, a desktop computer, a computer cluster, a mobile computing device such as a notebook, a laptop computer, a handheld computer, a mobile phone, a smart phone, a PDA, a BlackBerry™ device, and/or an iPhone, etc.
Client device 202 has a processor accessible locally that can run the document comparison application. Thus, client device 202 only needs to connect the network 201 to access documents and data stored in document database 204, if needed. In some embodiments, the documents to be compared and data pertaining to the comparison of documents are stored in a memory, e.g. a hard disk, on client device 202 such that client device 202 does not need a network connection to access any documents or data.
Client device 203 does not have its own local document comparison application processor. Thus, client device 203 would access the document comparison application available at one or more of the document comparison servers 205A-N to request comparisons of electronic documents.
The document comparison application servers 205A-N can be any combination of software agents and/or hardware modules for running the document comparison application, either individually or in a distributed manner with other document comparison application servers 205A-N. The document comparison application servers 205A-N are able to communicate with client device 203 to receive electronic documents or locations of electronic documents to be compared. The electronic documents can be stored and retrieved in the document database 204 via the network 201. The document comparison application servers 205A-N are also able to present the identified changes between two documents in a manner that allows a user to review the changes rapidly, as disclosed herein.
In one embodiment, the plurality of document comparison servers 205A-N can stream data over the network to the client devices. For example, the changes identified between multimedia documents can be streamed over the network 201 to the client device 203.
The document database 204 can store information such as electronic documents and data associated with compared electronic documents, such as review states of identified differences between two documents. Document database 204 can be managed by a database management system (DBMS), for example but not limited to, Oracle, DB2, Microsoft Access, Microsoft SQL Server, PostgreSQL, MySQL, FileMaker, etc.
The processor 210 can be used to run the document comparison application. The memory 220 can include but is not limited to, RAM, ROM, and any combination of volatile and non-volatile memory. The memory 220 can store the document comparison application. In one embodiment, the memory 220 can store comparison documents, categorized changes, and review states of the changes.
The input device 230 can include, but is not limited to, triggers to start and stop the document comparison application or to initiate other application functions. The output device 240 can be, but is not limited to, a display.
The network interface 260 can be one or more networking devices that enable the processor 210 to mediate data in a network 290 with an entity that is external to the computer 280, for example a network adaptor card or a wireless network interface card.
In one embodiment, the computer 280 can communicate through the network interface 260 via the network 290 with a document database 270. The document database 270 can be used to store documents to be compared, comparison documents, categorized changes, and review states of the changes. The review states of changes in a comparison document can be stored within the comparison document as metadata. Alternatively or additionally, the review states can be stored in a separate file or even a separate database. Independent of the location in which the review states are stored, when a comparison document is re-opened by the original reviewer or another user, the review states are recalled from the storage location and presented to the current user to aid in quickly reviewing the changes in the document.
The document comparison module 310 can be any combination of software agents and/or hardware components able to access a first document and a second document for performing a comparison to identify changes between the two documents. The documents can be any type including, but not limited to, text documents, spreadsheets, and slideshow and multimedia presentations. In some embodiments, the document comparison application can receive a comparison document that already has a list of changes identified between the two documents rather than performing the comparison to identify the changes.
The categorization module 330 can be any combination of software agents and/or hardware components able to group the changes identified in the comparison document into one or more categories. By categorizing the changes, a long list of changes is broken down into sub-lists by category so that a reviewer can quickly focus on a single type of change, thereby increasing the reviewer's productivity. Additionally, a reviewer can rapidly discern whether a change is critical to the content of the document or whether the change is not likely to effect the meaning of the document and can be either ignored or cursorily reviewed. Non-limiting examples of categories that can be used by the categorization module 330 include trivial changes, matching changes, potentially missing changes, unexpected changes, unexpected boilerplate changes, missing placeholder changes, and other changes. These categories of changes are described in more detail below.
Trivial changes are changes that are not likely to affect the meaning of the document and can be either ignored or quickly reviewed. Examples of trivial changes include, but are not limited to, changes to white space characters (e.g., removing double spaces, inserting or removing additional paragraph breaks, etc.), spelling corrections (e.g., single word replacements where the word being replaced is similar to the replacement word, or the replacement is a dictionary word and the word being replaced is not), numbering changes (e.g., changes to *list numbering* of paragraphs, etc.), punctuation changes (e.g., insertion or deletion of punctuation marks or replacement of punctuation marks), capitalization changes, and reference numbering or symbol changes (e.g., changes to the numbers or letters used to reference footnotes and endnotes).
Matching changes are changes where the same or similar insertion, deletion, or replacement is made in multiple places within the document. Matching changes are shown in groups so that the reviewer can approve all instances of a change with a single action. Similar changes can be considered to be matching
Potentially missing changes are missing changes that are closely related to matching changes. In one example, a text string is repeatedly deleted or replaced throughout a comparison. Then locations where a text string remains unchanged should be flagged for inspection as the text may have been mistakenly left unchanged. For instance, in a comparison where the text “ACME Ltd.” has been replaced by “MegaBank Corporation” in 20 locations, the three remaining locations where “ACME Ltd.” remains unaltered would each be flagged as a potentially missing change.
Unexpected changes are also closely related to matching changes. However, rather than having a text string that has been left unchanged in a small number of instances, the text string has been changed to an altogether different text string. Continuing with the above example, the text string “ACME Ltd.” has been changed to “Commerce Bank Ltd.” These changes do not follow the majority pattern established by the 20 replacements with “MegaBank Corporation”, so the instances of “Commerce Bank Ltd.” would be flagged as unexpected changes for special attention by the reviewer.
Unexpected boilerplate changes arise if the user or administrator specifies blocks of boilerplate text that should not be edited, and the application identifies that a change has occurred within the boilerplate text. Unauthorized changes in the boilerplate text are flagged as unexpected boilerplate changes.
Missing placeholder changes indicate that the user or administrator has specified blocks of placeholder text that should always be changed. Instances where placeholder text has not been changed are flagged as a missing change.
Different names for the above categories of changes can be selected by the application administrator or by a user. Furthermore, the changes described above do not include all possible categories of changes. Different types of documents can have categories of changes particular to that document type. For example, for a comparison of slideshow presentations, differences in formatting and symbol types may not be considered a trivial change. An administrator or user can define one or more custom categories of changes to be added to the above list. Alternatively or additionally, a user can specify only particular ones of the category of changes to be included in categorizing changes.
In one embodiment, some categorization of changes relies on spellchecking technologies. Because specialized industries can often use specialized vocabulary, the application can provide a mechanism for users or administrators to specify a custom dictionary of technical words.
In one embodiment, some industries or users can consider that the categories of changes described under “trivial changes” may not actually be trivial. For example, under some circumstances, changes of punctuation may be important. The application can allow users or administrators to specify which types of changes are categorized as trivial.
Once the changes have been categorized, the changes can be presented to the user on the display in a change summary view where the changes are shown in an outline format or hierarchically according to the category of change.
The review state module 320 can be any combination of software agents and/or hardware components able to assign an initial review state to each change identified in a comparison document and update the review state to reflect the status of each change as a user reviews the comparison document. Each type of review state should be easily distinguishable from the other review states so that a reviewer can quickly identify the review states that may need attention. Alternatively or additionally, each type of review state can have a symbol associated with it to further provide a visual indication for catching the reviewer's eye to facilitate reviewing the comparison document.
In one embodiment, the initial review state can be “unreviewed” and changes can be shown as bold text in the change summary view. Other review states that can be used to facilitate the user's review of the changes include, but are not limited to “reviewed and accepted”, “reviewed and rejected”, and “reviewed but needs further discussion”. Alternative names can be selected for the review states and additional custom review states can be created by the user. In one example, as shown in
In one embodiment, the review state module 320 can automatically update the review state for one or more changes when certain criteria have been met. For example, the user can configure the document comparison application to automatically update the review state of a change from “unreviewed” to “reviewed, accepted” if the particular change has been shown to the user in the redline view in the display for a pre-set amount of time. In one embodiment, the user can select the amount of time when configuring the application to automatically update the review states.
In some embodiments, the document comparison application can include a user interface module 340. The user interface module 340 can be any combination of software agents and/or hardware components able to provide a way for a user to manually update the review state for any selected change. In one embodiment, the user interface can provide a button for the user to click on to select a particular review state. In one embodiment, the user interface can provide a context menu. Other types of user interfaces can also be used.
Because unreviewed changes may be of the most interest to a reviewer, in one embodiment, the user interface module 340 can provide buttons or any other method for a user to jump to the next and/or previous unreviewed change from the user's current location in the redline view.
At blocks 405 and 410, the system receives locations of two documents to be compared and accesses those documents. Typically, the two documents are an earlier version and a later version of the same document that has been edited by one or more persons. The two versions of the documents can be stored in a document database accessible by the processor running the document comparison application. Alternatively, the documents can be stored in a local memory.
At block 415, the system compares the two versions of the documents to identify changes between the documents. The comparison can be performed on a character-by-character basis or a section-by-section basis. A person of skill in the art will recognize that a variety of techniques are known for comparing two documents to identify changes. A comparison document can be generated based on the identified changes. In one embodiment, if the document comparison application is an add-in application to another program that has already compared the two documents, the changes can be accessed by the document comparison application without having to repeat the comparison.
Once the changes between the two documents have been identified, at block 420 the system assigns each identified change an initial review state, for example, “unreviewed”. Other review states that can be assigned to the changes during the review process include, but are not limited to, “reviewed, accepted”, “reviewed, rejected”, and “reviewed, needs further discussion”.
At block 430, the system categorizes each of the changes. Examples of categories that can be used to group changes in the document were discussed above.
At block 435, the system displays or updates the display of the identified changes in a change summary view and/or a redline view. In one embodiment, the application can provide a user interface for the user to select the view or views to be shown in the display.
At decision block 440, the system determines if it has received a command from the user to close the document comparison application, for example after the user has finished reviewing the changes. If the user is done (block 440—Yes), at block 445 the system stores the comparison document and the current review state of each change. The review states can be stored within the comparison document as metadata, in a separate file of review states, or in the document database.
The process proceeds to decision block 480 where the system determines if a command to re-open the comparison document has been received. If the system does not receive the re-open command (block 480—No), the system waits at decision block 480 until a re-open command has been received. If a re-open command is received, at block 482 the system fetches the stored comparison document and the review states that were stored at block 445.
Then at block 484, the system re-opens the comparison document with the stored review states and returns to block 435 to display the changes.
Returning to decision block 440, if the user is not done with the document comparison application (block 440—No), the process continues to decision block 460 where the system determines if manual updates to the review states of any changes have been entered by the user. As discussed above, manual updates can be entered by a user through the user interface. If manual updates are received (block 460—Yes), the system makes the appropriate updates to the review state of the selected changes.
If manual updates have not been received (block 460—No), the process continues to decision block 465 where the system determines if automatic update criteria have been met. If the automatic update criteria have been met (block 465—Yes), at block 467 the system makes the appropriate updates to the review state of the appropriate changes. The process then returns to block 435. If the automatic update criteria have not been met (block 465—No), the process returns to block 435.
In one embodiment, the document comparison application can be an add-in or extension application to a master application that is used to edit the files that are compared by the document comparison application. For example, for comparison of text documents, the document comparison application can be an add-in to the Microsoft® Word software package. In this case, the document comparison application can display the change summary and redline views alongside the normal Microsoft® Word editing view.
Unless the context clearly requires otherwise, throughout the description and the claims, the words “comprise,” “comprising,” and the like are to be construed in an inclusive sense (i.e., to say, in the sense of “including, but not limited to”), as opposed to an exclusive or exhaustive sense. As used herein, the terms “connected,” “coupled,” or any variant thereof means any connection or coupling, either direct or indirect, between two or more elements. Such a coupling or connection between the elements can be physical, logical, or a combination thereof. Additionally, the words “herein,” “above,” “below,” and words of similar import, when used in this application, refer to this application as a whole and not to any particular portions of this application. Where the context permits, words in the above Detailed Description using the singular or plural number may also include the plural or singular number respectively. The word “or,” in reference to a list of two or more items, covers all of the following interpretations of the word: any of the items in the list, all of the items in the list, and any combination of the items in the list.
The above Detailed Description of examples of the invention is not intended to be exhaustive or to limit the invention to the precise form disclosed above. While specific examples for the invention are described above for illustrative purposes, various equivalent modifications are possible within the scope of the invention, as those skilled in the relevant art will recognize. For example, while text documents are mentioned, any type of electronic document may be processed under the principles disclosed herein. While processes or blocks are presented in a given order in this application, alternative implementations may perform routines having steps performed in a different order, or employ systems having blocks in a different order. Some processes or blocks may be deleted, moved, added, subdivided, combined, and/or modified to provide alternative or subcombinations. Also, while processes or blocks are at times shown as being performed in series, these processes or blocks may instead be performed or implemented in parallel, or may be performed at different times. Further any specific numbers noted herein are only examples. It is understood that alternative implementations may employ differing values or ranges.
The various illustrations and teachings provided herein can also be applied to systems other than the system described above. The elements and acts of the various examples described above can be combined to provide further implementations of the invention.
Any patents and applications and other references noted above, including any that may be listed in accompanying filing papers, are incorporated herein by reference. Aspects of the invention can be modified, if necessary, to employ the systems, functions, and concepts included in such references to provide further implementations of the invention.
These and other changes can be made to the invention in light of the above Detailed Description. While the above description describes certain examples of the invention, and describes the best mode contemplated, no matter how detailed the above appears in text, the invention can be practiced in many ways. Details of the system may vary considerably in its specific implementation, while still being encompassed by the invention disclosed herein. As noted above, particular terminology used when describing certain features or aspects of the invention should not be taken to imply that the terminology is being redefined herein to be restricted to any specific characteristics, features, or aspects of the invention with which that terminology is associated. In general, the terms used in the following claims should not be construed to limit the invention to the specific examples disclosed in the specification, unless the above Detailed Description section explicitly defines such terms. Accordingly, the actual scope of the invention encompasses not only the disclosed examples, but also all equivalent ways of practicing or implementing the invention under the claims.
While certain aspects of the invention are presented below in certain claim forms, the applicant contemplates the various aspects of the invention in any number of claim forms. For example, while only one aspect of the invention is recited as a means-plus-function claim under 35 U.S.C. §112, sixth paragraph, other aspects may likewise be embodied as a means-plus-function claim, or in other forms, such as being embodied in a computer-readable medium. (Any claims intended to be treated under 35 U.S.C. §112, ¶ 6 will begin with the words “means for.”) Accordingly, the applicant reserves the right to add additional claims after filing the application to pursue such additional claim forms for other aspects of the invention.
This application claims the benefit of U.S. Provisional Application No. 61/417,858 entitled SYSTEM AND METHOD FOR PRESENTING COMPARISONS OF ELECTRONIC DOCUMENTS, filed Nov. 29, 2010, and is hereby incorporated by reference in its entirety. This patent application is related to the technologies described in the following patents and applications, all of which are incorporated herein in their entireties: U.S. Provisional Application No. 61/417,853, entitled METHODS AND SYSTEMS FOR MONITORING DOCUMENTS EXCHANGED OVER EMAIL APPLICATIONS, filed Nov. 29, 2010; andU.S. Provisional Application No. 61/417,855, entitled METHODS AND SYSTEMS FOR MONITORING DOCUMENTS EXCHANGED OVER EMAIL APPLICATIONS, filed Nov. 29, 2010; andU.S. Provisional Application No. 61/417,869, entitled SYSTEM AND METHOD FOR PROVIDING A COMMON FRAMEWORK FOR REVIEWING COMPARISONS OF ELECTRONIC DOCUMENTS, filed Nov. 29, 2010.
Number | Date | Country | |
---|---|---|---|
61417858 | Nov 2010 | US | |
61417853 | Nov 2010 | US | |
61417855 | Nov 2010 | US | |
61417869 | Nov 2010 | US |