Patent Publication Number: US-11663396-B2

Title: Systems and methods for resolving privileged edits within suggested edits

Description:
RELATED APPLICATIONS 
     This application is a continuation application of co-pending U.S. patent application Ser. No. 16/538,768, filed Aug. 12, 2019, which is a continuation application of U.S. patent application Ser. No. 15/979,411, filed May 14, 2018, now U.S. Pat. No. 10,380,232, which is a continuation of U.S. patent application Ser. No. 13/970,090, filed Aug. 19, 2013, now U.S. Pat. No. 9,971,752, which is herein incorporated by reference. 
    
    
     FIELD OF THE INVENTION 
     In general, this disclosure relates to electronic documents, in particular, to systems and methods for detecting relationships between edits and resolving privileged edits within suggested edits. 
     BACKGROUND 
     During development of an electronic document, it is often desirable to have multiple users propose changes and comment on a draft of the electronic document. For example, an author may create an initial draft of an electronic document and send a copy of the electronic document to one or more reviewers to make comments or changes in the document. Each reviewer may independently propose changes or make comments in the electronic document and return a revised version of the electronic document back to the author. Since each reviewer may create a unique version of the electronic document, there may be conflicts across different versions. The original author will need to resolve the conflicting edits and re-send updated copies of the electronic document to the reviewers. These steps will need to be repeated until the author and all of the reviewers are satisfied with a version of the electronic document. One way to increase the efficiency of this process is to allow multiple users to simultaneously make changes in a document. 
     SUMMARY 
     Systems and methods are disclosed herein for efficient editing of a document. One aspect relates to a system or method for incorporating a first edit into a second edit in an electronic document. The first edit and the second edit in the electronic document are received, and a shared position of the first edit and the second edit in the electronic document is identified. The second edit is determined to be privileged relative to the first edit by determining that the first edit is made by a first user with a first set of permissions and the second edit is made by a second user with a second set of permissions larger than the first set of permissions. When the second edit is privileged relative to the first edit, the second edit is incorporated into the first edit. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The above and other features of the present disclosure, including its nature and its various advantages, will be more apparent upon consideration of the following detailed description, taken in conjunction with the accompanying drawings in which: 
         FIG.  1    is a block diagram of a computerized system for integrating collaboratively proposed changes and publishing an electronic document, according to an illustrative embodiment. 
         FIG.  2    is an example data structure stored on an electronic database that includes a document access control list, according to an illustrative embodiment. 
         FIG.  3    is an example data structure stored on an electronic database that includes metadata corresponding to suggested edits, according to an illustrative embodiment. 
         FIGS.  4  and  5    are diagrams of exemplary displays of a user interface for interacting with a document with incorporated suggested edits, according to an illustrative embodiment. 
         FIGS.  6  and  7    are diagrams of exemplary displays of an editor interface for interacting with a document with incorporated suggested edits, according to an illustrative embodiment. 
         FIG.  8    is a diagram of an exemplary display of an editor interface for displaying a subset of suggested edits in a document, according to an illustrative embodiment. 
         FIG.  9    is a flowchart of a method used by the review manager to manage updates to a document, according to an illustrative embodiment. 
         FIG.  10    is a flowchart of a method used by the review manager to manage accepted changes to a document, according to an illustrative embodiment. 
         FIG.  11    is a flowchart of a method used by the review manager to incorporate a suggested edit into another suggested edit, according to an illustrative embodiment. 
         FIG.  12    is a block diagram of a computing device for performing any of the processes described herein, according to an illustrative embodiment. 
     
    
    
     DETAILED DESCRIPTION 
     To provide an overall understanding of the disclosure, certain illustrative embodiments will now be described, including a system for incorporating one edit into another edit. In particular, detecting a relationship between two edits allows for efficient development of a document. However, it will be understood by one of ordinary skill in the art that the systems and methods described herein may be adapted and modified as is appropriate for the application being addressed and that the systems and methods described herein may be employed in other suitable applications, and that such other additions and modifications will not depart from the scope thereof. 
       FIGS.  1 - 3    are diagrams of a network and database structures that may be used to implement the systems and methods disclosed herein.  FIG.  1    is a block diagram of a computerized system  100  for detecting relationships between edits and acting on a subset of edits, according to an illustrative embodiment. System  100  includes a server  104  and five user devices  113   a - 113   e  (generally, user device  113 ) connected over a network  101 . The server  104  includes a review manager  102 , which manages updates to various versions of a master document  106 . 
     The review manager  102  is configured to transmit and receive data over the network  101  in communication with the user devices  113 . In particular, the review manager  102  receives data indicative of changes that a user at a user device  113  wishes to suggest or create related to the master document  106 . Depending on the user type, which sets the access permissions for the user to access the master document  106 , the review manager  102  then creates these changes by appending to a list of suggestions  105  corresponding to the master document  106 . The list of suggestions  105  may be stored in the form of a data structure, an example of which is described in more detail in relation to  FIG.  3   . 
     The review manager  102  may include a processor and a memory unit. The memory unit stores computer executable instructions, which are executed by the processor. The computer executable instructions include instructions for receiving data over the network  101 , determining a user type for a given user, making changes in the master document  106 , and publishing various versions of the document  106  to various users. As depicted in  FIG.  1   , the master document  106  is stored on a separate device from the server  104 , but the master document  106  may also be stored in the electronic database  103  or even in a memory unit included within the review manager  102 . In addition, any data described herein as being stored on the electronic database  103  may instead or additionally be stored in a memory unit in the review manager  102  or on a separate memory unit external to the server  104 . 
     Users at user devices  113  may simultaneously interact with the master document  106  over user interfaces  110  or  114 . In particular,  FIG.  1    depicts five users, each associated with a user type defining a level of authority for access to and editing capabilities of certain versions of the master document. Specifically,  FIG.  1    depicts three reviewers  112   a - 112   c  (generally, reviewer  112 ) and two editors  108   a - 108   b  (generally, editor  108 ). Each reviewer  112  interacts with the master document  106  over a reviewer interface  114   a - 114   c  (generally, reviewer interface  114 ), and the editors  108  interact with the master document over an editor interface  110   a - 110   b  (generally, editor interface  110 ). 
     Each user device  113  may include a device such as a personal computer, a laptop computer, a tablet, a smart phone, a personal digital assistant, or any other suitable type of computer of communication device. Users at the user devices access and receive information from the server  104  over the network  101 . The user devices  113  may include typical components, for example, an input device, an output device, and a communication interface (e.g., editor interfaces  110  or reviewer interfaces  114 ). A user may authenticate with the server  104  by inputting a user name and password (or providing other identification information) via a user interface, such that the same user device may be used by different users at different times, including users with the same or different user type. 
     Users interact with the server  104  such that the users, in conjunction with the server  104 , generate an online document by collaboratively proposing changes in the document  106 . Although illustrated as a single device in  FIG.  1   , the server  104  may be implemented as, for example, a single computing device or as multiple distributed computing devices. The interaction of users with the server  104  is through user interfaces  114  and  110 , which may include web browsers. For example, the document may be viewed with an application that displays the document within a web browser. In this arrangement, users do not need to install software locally to their user devices to view and make changes in the document. When browsers or user interfaces are discussed herein, these terms are intended to refer to any program that allows a user to browse documents, regardless of whether the browser program is a standalone program or an embedded program, such as a browser program included as part of an operating system. The logic described herein can be implemented in hardware, software, firmware, or a combination thereof. 
     In an example, the document  106  is a text document. One of skill in the art will understand that the features and concepts described herein may be applied in any type of collaborative document application, including, for example, spreadsheet applications, presentation applications, drawing applications, and others. 
     One type of document user is reviewer  112 , who has certain authority and access to the document. Typically a reviewer may view and make suggested edits and comments on the document  106 . To do this, the reviewer  112  views a version of the document on the reviewer interface  114  and makes a change to the document. Data indicative of the change is sent over the network  101  to the server  104 , where the review manager  102  receives the data and adds the data to the list of suggestions  105  associated with the document  106 . The change may be a suggested edit to the document  106 , such as an insertion, deletion, replacement, move, format change, or any other suitable change in a document. In another example, the change may be a comment on the document  106  or a portion thereof. Changes of different types (such as insertions, deletions, replacements, moves, format changes, or comments, for example) may be saved differently in the list of suggestions  105 . For example, different lists may be used to store changes of different types. As another example, changes of different types may be stored together as entries in one list, with each entry having a label indicative of the change type. 
     Another user type is an editor  108 , who has a greater level of authority (i.e., a larger set of permissions) for the document  106  than the reviewer  112 . The editor  108  can accept or reject any suggested edits made by the reviewer  112 , and further can delete any comments made by the reviewer  112 . Access and authority may vary and be customized for a document allowing different access and use capabilities for different users. For example, the editor  108  may be an owner or a creator of the document  106 , and the editor  108  may assign one or more users to a reviewer type role. When a reviewer (such as reviewer  112   a ) makes a suggested edit to the document  106 , the editor  108  (such as editor  108   a ) is prompted to either accept or reject the suggested edit. When a suggested edit is accepted by the editor  108 , the review manager  102  converts the suggested edit into an accepted edit and updates the master document  106  with the accepted edit. In addition, the accepted edit may be removed from the list of suggestions  105 , or an indicator label may be set for the accepted edit to indicate that the edit has been accepted. If the editor  108  rejects a suggested edit, the review manager  102  removes the suggested edit from the list of suggestions  105 , or an indicator label may be set for the edit to indicate that the edit has been rejected or dismissed. 
     In addition to accepting or rejecting changes made by the reviewer  112 , the editor  108  also has access to make direct changes to the document by directly editing or to make comments on the document  106 . The review manager  102  generally treats edits made by the editor  108  as accepted edits which are automatically accepted. Alternatively, the editor  108  may wish to make a suggested edit in order to get input from the reviewer  112  or other editors regarding the suggested edit. In this case, the editor  108  may mark an edit as “suggested” or may set the user device  109  to operate in “reviewer mode,” such that the suggested edit appears in the list of suggestions  105  of the document to the reviewer  112 . Then, the reviewer  112  may modify the suggested edit or comment on the suggested edit, and the editor  108  may then decide whether to accept or reject the suggested edit(s). 
     In addition, the editor  108  has permission to make direct changes to the changes that are made by the reviewer  112 . For example, editor  108   a , rather than accepting or rejecting a suggested change made by reviewer  112   a , instead may modify the suggested change. The review manager  102  detects that an editor  108  (a user with greater privileges) has modified a suggested change originally created by a reviewer  112  (a user with fewer privileges), thereby determining that the modification made by the editor  108  is privileged relative to the suggested change made by the reviewer  112 . Because of the privileged modification to the reviewer&#39;s suggested change, the editor  108   a &#39;s modification is incorporated into the reviewer  112   a &#39;s suggested change. By integrating or combining the modification with the suggested change, when the suggested change is accepted (or rejected) by an editor (editor  108   b , for example), the modification by editor  108   a  is also accepted (or rejected). This process is described in further detail in relation to  FIGS.  9  and  10   . 
     Thus, in addition to managing the list of suggestions  105  for the master document  106 , the review manager  102  also keeps track of relationships between suggested edits in the list of suggestions  105 . In particular, the review manager  102  may include a compound identifier. The compound identifier may identify a shared position between two or more suggested edits in the document  106  and may determine that the suggested edits that share a position in the document  106  have a “compounding relationship.” Any identified compounding relationships associated with the master document  106  may be stored even when the master document  106  is closed. In this case, the relationships may be loaded from a stored location when the document  106  is loaded or displayed. Alternatively, the relationships may be discarded when the document  106  is closed, and the review manager  102  may identify compounding relationships each time the document  106  is loaded or displayed. 
     Two suggested edits have a compounding relationship if one of the suggested edits is dependent on the other suggested edit. The compounding relationship is independent of the relative privileges associated with the edits. For example, the reviewer  112   a  may make a first suggested edit such as an insertion of some text into the document  106 . Then, the reviewer  112   b  may make a second suggested edit such as a change within the suggested insertion made by reviewer  112   a . The reviewer  112   b  may suggest making another insertion, making a deletion, fixing a spelling mistake, or any other change of the suggested insertion made by reviewer  112   a . In this case, the second suggested edit has a compounding relationship with the first suggested edit, and when the second suggested edit is made, the review manager  102  detects the compounding relationship and may store an indication of the compounding relationship in the list of suggestions  105 . 
     However, a compounding relationship between two edits with the same set of privileges is not sufficient for the review manager  102  to incorporate one edit into the other edit. In particular, to incorporate a second edit into a first edit, the second edit should be privileged relative to the first edit, and the edits should have a compounding relationship. In particular, if the second edit was created by an editor  108  (rather than the reviewer  112   b ), then the review manager  102  would incorporate the second edit into the first suggested edit. When the second edit modifies the first suggested edit, the second edit may be treated as part of the first suggested edit with a pending status, even though the second edit was created by an editor  108 . An example view of a display of a document  106  with compounding suggested edits (where the second suggested edit is privileged relative to the first suggested edit) is shown and described in more detail in relation to  FIGS.  5 - 7   . 
     When an edit is incorporated into another edit, an indication of the incorporation may be stored and displayed to a user. For example, the list of suggestions  105  may be updated to include annotations indicative of which edits are incorporated into which edits. Furthermore, the review manager  102  may provide visual indicators of any incorporations over a user interface. As shown in  FIGS.  6  and  7   , a sidebar region may show metadata regions associated with incorporated suggested edits included within a metadata region associated with a first suggested edit. In particular, for suggested edits that are incorporated with a first suggested edit, an editor  108  may not have the option of accepting or rejecting any of the incorporated suggested edits because acceptance or rejection of the first suggested edit automatically results in acceptance or rejection of the incorporated suggested edits. Therefore, knowledge of any incorporating relationships between suggested edits may lead to efficient development of the document  106 . An example of a data structure for storing the list of suggestions  105  is described in more detail in relation to  FIG.  3   . 
     As described herein, a first suggested edit is created by a reviewer  112 , and a second (privileged) suggested edit is created by an editor  108 . However, in general, an editor  108  may have an option of operating in a “reviewer” or comment mode, such that changes that the editor  108  makes to the document  106  are interpreted as pending suggested changes rather than direct changes to the document  106 . In this case, the first suggested edit (which is less privileged than the second suggested edit) may be created by an editor  108 . 
     The updates to the master document  106  and the list of suggestions  105  are performed nearly in real-time. This means that when the reviewer  112  and the editor  108  are simultaneously viewing and accessing the document, the reviewer  112  receives feedback regarding a suggested edit almost immediately after the editor  108  sends the feedback. The system  100  is especially advantageous for the case when a suggested edit made by the reviewer  112  may affect additional suggested edits made by the reviewer  112 . For example, it is helpful for the reviewer  112  to receive early feedback from an editor  108  regarding a suggested edit because the feedback may influence future suggested edits. The real-time updates to the document  106  also allow for reviewers  112  to make suggestions at their own pace. Even when just a single reviewer  112  has the document  106  open, indications of the suggestions or comments that are made by the active reviewer  112  may be sent to other users, such as other reviewers  112  or one or more editors  108 . The notifications may be sent over email messages or any other form of communications that may alert an editor and/or reviewer to the suggested changes. An editor  108  may then access the document  106  at a later time and accept, reject, or modify a suggestion made by the reviewer  112 . In some implementations, the notifications are sent only to the one or more editors  108 , and not to any of the other reviewers  108 . 
     When the interfaces  110  and  114  include web browsers, different versions of the document (for example, a markup version, a clean version, or various historical versions of the document, such as those including a selected group of the suggested and/or accepted edits) may be saved to different network locations. The editor  108  may select which versions of the master document  106  are saved to which network location, and may further select to display a version of the document in a particular format, such as in browser format, html format, or any other suitable format for displaying an electronic document. In addition, a user such as a reviewer  112  and/or an editor  108  may select to view the master document  106  including any suggested edit satisfying one or more criteria. As an example, a user may wish to view only suggested edits of a certain type, such as insertions, deletions, replacements, format changes, spelling mistakes, or any other suitable type of suggested edit. 
     The reviewer  112  and the editor  108  may view who else is currently viewing the document. When more than one user views the document at a time, the users may communicate with each other over an instant messaging application. 
     Two editors and three reviewers are shown in  FIG.  1    to avoid complicating the drawing; however the system  100  can support any number of users with the same or different user type. When there are multiple reviewers, a reviewer (i.e., reviewer  112   a ) may view suggested edits and comments made by other reviewers (i.e., reviewers  112   b  and  112   c ) or editors. In this way, by allowing for efficient collaboration across a set of users proposing changes in a document, the system  100  offers significant advantages over a system in which reviewers independently propose changes in a document. Thus, when an editor  108  views the document, the editor  108  may view a live stream of collaborative updates made by multiple reviewers  112  at the same time, significantly reducing the amount of time to develop the document. In addition, a third type of user is a viewer (not shown), who may view the document  106  including any accepted edits, but not any pending suggested edits (that have not yet been accepted or rejected). In some implementations, a viewer may be allowed to view pending suggested edits. 
     In certain implementations, each user may be assigned a unique color, such that the changes of a version of the document are color-coded by the user who made the changes. In addition, changes made by editors  108  may be marked differently on view of the document from changes made by reviewers. Further, a user may select to view the document  106  including all suggested edits of a certain type, such as all suggested edits made by a particular user or type of user, or all suggested edits corresponding to a specific edit type, such as all insertions, deletions, replacements, moves, format changes, spelling changes, or any other suitable edit type. An editor  108  may, at once, accept or reject all suggested edits made by a particular user or all suggested edits corresponding to a specific edit type. 
       FIG.  2    is an example data structure  117  stored on electronic database  103  that includes a document access control list, according to an illustrative embodiment. The document access control list includes a list of users who have access to a version of the master document  106  and their corresponding user types. In this case, multiple users have the same user type. In particular, there are three reviewers (users A-C) and two editors (users D and E), all of whom may simultaneously interact with the master document  106 . 
       FIG.  3    depicts an exemplary data structure  118  stored on the electronic database  103  that includes metadata corresponding to suggested edits, according to an illustrative embodiment. The data structure  118  includes four records of suggested edits. Each record in the data structure  118  includes a “suggested edit id” field whose values include identification numbers for the edits. Each record in the data structure  118  corresponds to a suggested edit and further includes the user id of the user who suggested the edit, an indicator of any other suggested edit on which the suggested edit depends, an edit type associated with the suggested edit (i.e., addition, deletion, move, replacement, format changes, spelling changes, or any other suitable edit type), and an edit position identifier that indicates a position of the edit in the electronic document  106 . The data structure  118  indicates that the suggested edit  1345  has a shared edit position with the suggested edit  1254  because the edit position identifiers associated with both suggested edits are similar. As shown in  FIG.  3   , the edit position identifier is a four digit number, which may correspond to distinct locations within the electronic document  106 . The edit position identifier for the suggested edit  1345  is the same as the edit position identifier for the suggested edit  1254 , with an additional incremental value. The incremental value may indicate a location within the suggested edit  1254  where the suggested edit  1345  takes place. In general, the edit position identifier may be any suitable identifier, such as a pointer to a location in the document, an address that stores such a pointer, or any other suitable way of referring to a position in a document. 
     From the shared edit position, the review manager  102  may determine that the suggested edit  1345  depends on (or equivalently, has a compounding relationship with) the suggested edit  1254 . The data structure  118  is shown for illustrative purposes only, and other fields with additional data may also be included. Examples of such additional data include the time of the suggested edit, whether the suggested edit was accepted or rejected, who accepted or rejected the suggested edit, and the time of the acceptance or rejection. Furthermore, when a suggested edit includes deleting, moving, or replacing existing objects in the document, the data structure  118  may further include which objects to delete, move, or replace. Similarly, when a suggested edit includes adding objects, the data structure  118  may further include which object(s) to add. 
     In some embodiments, the data related to a suggested edit may be stored as a mutation of the document. For example, a mutation may include data indicating changes made by the edit such as the user id of the user who created the suggested edit, deletions, additions, location of the edit, and a status of the edit, such as pending, rejected, or accepted. 
     Data structures  117  and  118  and the master document  106  may be stored on the same electronic database  103 , or may be stored on different databases. In some embodiments, an original version of the master document  106  is stored on a database. For example, the combination of the original version and data structure  118  would be enough to generate versions of the document using a dynamic approach. In particular, if a user wishes to view only a subset of the suggested edits, a version of the document may be generated including the original version and the subset of suggested edits. The subset may include those suggested edits corresponding to a specific user, a user type, or an edit type. The generated version may not be stored on a database. Instead, when a user accesses the document, a version specific to that user (based on the user&#39;s settings) may be generated. 
     In addition to the data stored in example data structures  117  and  118 , the review manager  102  may also store additional data. For example, data indicative of how all users interact with the document may be stored such as what portions of the document are most viewed or read. 
       FIGS.  4 - 8    are diagrams of exemplary displays of a user interface for users interacting with the master document  106 . In particular,  FIGS.  4  and  5    are exemplary displays of a user interface that show an editor&#39;s change incorporated with a reviewer&#39;s change.  FIGS.  6  and  7    are exemplary displays of an editor interface  110  that show an editor&#39;s options regarding the reviewer&#39;s change.  FIG.  8    is an exemplary display of an editor interface  110  including a set of editor display options. 
       FIGS.  4  and  5    are exemplary diagrams  400  and  500 , respectively, of a display of a user interface  111  for a user interacting with the master document  106 , according to an illustrative embodiment. In particular, the user interface may be a reviewer interface  114  for a reviewer  112  or an editor interface  110  for an editor  108 . The display of the user interface  111  may be updated in real time such that the user is informed in real time of changes (i.e., in the form of suggested edits or comments) of the document  106  made by other users. In this way, the user may make his/her own informed changes of the document  106  in view of the latest suggestions made by all the other collaborators on the document  106 . Therefore, the systems and methods described herein promote efficient collaboration for editing a document  106 . 
     The diagram  400  includes a portion of an original document  106  with a suggested edit  1254 . In particular, the suggested edit  1254  includes the addition of a portion of a sentence to the document and is distinguished from a remainder of the document by a box surrounding the text. In addition, the diagram  400  includes a sidebar on the right hand side of the user interface  111  for displaying metadata associated with the suggested edit  1254 . In particular, the sidebar includes a metadata region  224  associated with the suggested edit  1254 . The metadata region  224  includes data indicative of which user made the suggested edit  1254  (i.e., Reviewer A), the edit type corresponding to the suggested edit  1254  (i.e., an addition), the time and date the suggested edit was made (i.e., 10:00 AM today), and an indication of the object to be added (i.e., “During development of a document.”). Metadata shown in the metadata region  224  may be stored in a data structure such as the data structure  118  shown in  FIG.  3   . 
     The diagram  500  is similar to the diagram  400 , except that the diagram  500  further includes another suggested edit  1345 . The suggested edit  1345  includes the addition of a phrase “n electronic” to the portion added by the suggested edit  1254 . In addition, the sidebar on the right hand side of the reviewer interface  114  includes another metadata region  228  associated with the suggested edit  1345 . The metadata region  228  indicates that the suggested edit  1345  includes the addition of a phrase “n electronic” and was made by Editor D. The metadata region  228  further includes an indication of the date and time that Editor D made the suggested edit  1345 . The suggested edit  1345  is distinguished from a remainder of the document by a box with dotted lines surrounding the text. As an indication that the metadata region  228  corresponds to the suggested edit  1345 , the metadata region  228  is also surrounded by a box with dotted lines. Metadata shown in the metadata region  228  may be stored in a data structure such as the data structure  118  shown in  FIG.  3   . 
     When Editor D makes the suggested edit  1345 , the review manager  102  determines that the suggested edit  1345  depends on (or equivalently, has a compounding relationship with) the suggested edit  1254 . In particular, the review manager  102  determines that acceptance of the suggested edit  1345  depends on the acceptance of the suggested edit  1254 . The review manager  102  further determines that the suggested edit  1254  was made by a reviewer and the suggested edit  1345  was made by an editor, who has greater privileges with respect to the document  106  than the reviewer. Upon determining that the suggested edits have a compounding relationship and that the user who made the later suggested edit has greater privileges than the user who made the earlier suggested edit, the review manager  102  incorporates the later edit with the earlier edit. This is shown in the user interface  111  by the inclusion of the metadata region  228  within the metadata region  224 . Thus, the suggested edit  1345  is incorporated into the suggested edit  1254 , and the sidebar region of  FIG.  5    displays an annotation of the incorporation. 
     When Reviewer A makes the suggested edit  1254  and when Editor D makes the suggested edit  1345 , the review manager  102  may receive data indicative of the suggested edits  1254  and  1345  over the network  101  and may accordingly update the list of suggestions  105 . Furthermore, the data structure  118  shown in  FIG.  3    may also be updated as new suggested edits are received over the network  101 . 
     The diagrams  400  and  500  are exemplary displays and are shown for illustrative purposes only. In particular, one of ordinary skill in the art will appreciate any combination of metadata associated with suggested edits may be displayed in any number of ways on the reviewer interface  114 . For example, the metadata regions  224  and  228  may include only a portion of the text to be added. When a reviewer selects, via user input (such as with a mouse click or with keyboard input), a region surrounding a suggested edit  1254  or  1345  or a metadata region  224  or  228 , the selected metadata region and/or the suggested edit may be highlighted with color or distinguished in any other way from a remainder of the document  106 . The diagrams  400  and  500  show that the suggested edits  1254  and  1345  are distinguished from a remainder of the document by boxes surrounding the text. However, any method of distinguishing suggested edits such as  1254  and  1345  from a remainder of the document  106  may be used, including using different colors for different reviewers, different colors for different types of edits, underlining added items, striking out removed items, redlining the view of the document, or any other suitable method of distinguishing suggested edits in a document. 
       FIGS.  6  and  7    are exemplary diagrams  600  and  700 , respectively, of an editor interface  110  while an editor  108  interacts with the document  106 , according to an illustrative embodiment. In particular, the diagram  600  is an example display of the editor interface  110  when the editor  108  is prompted to accept or reject the suggested edit  1254 , and the diagram  700  is an example display of the editor interface  110  when the editor  108  selects to reject the suggested edit  1254 . In the diagrams  600  and  700 , the editor  108  is not prompted to accept or reject the suggested edit  1345  because the suggested edit  1345  has been incorporated into the suggested edit  1254 , as described in relation to  FIG.  5   . Because the suggested edit  1345  has been incorporated into the suggested edit  1254 , acceptance or rejection of the suggested edit  1254  automatically causes an acceptance or rejection, respectively, of the suggested edit  1345 . 
     The diagram  600  for the editor  108  includes a similar view as in diagram  500  for another user (such as a reviewer), with the exception that the diagram  600  includes several additional options. In particular, the diagram  600  includes an editor display options button  334  (described in more detail in relation to  FIG.  8   ) and decision box  330 . The decision box  330  corresponds to the suggested edit  1254  and is a prompt for the editor  108  to make a selection to accept or reject the corresponding suggested edit. When the editor  108  provides a user input (in the form of selecting one of the options in the decision box  330 ), the display of the mark-up version of the document will be updated to reflect the selection made by the editor  108 . Because the suggested edit  1345  is incorporated with the suggested edit  1254 , acceptance of the suggested edit  1254  results in automatic acceptance of the suggested edit  1345 , and rejection of the suggested edit  1254  results in automatic rejection of the suggested edit  1345 . 
     As an example, the diagram  700  is a view of the display of the editor interface  110  when the editor  108  has rejected the suggested edit  1254  by providing user input to the decision box  330 . In this case, because the suggested edit  1345  is incorporated with the suggested edit  1254  (meaning that acceptance of suggested edit  1345  requires acceptance of the suggested edit  1254 ), the review manager  102  therefore automatically rejects the suggested edit  1345  in response to receiving a rejection of the suggested edit  1254  from the editor  108 . In an example, the review manager  102  determines that the suggested edit  1345  is incorporated with the suggested edit  1254  by referring to the data structure  118 , or using any other suitable method for identifying an incorporation of one edit with another edit. 
     When the editor  108  selects to accept or reject the suggested edit  1254 , the status of the suggested edit  1254  is updated. To update the status of the suggested edit  1254 , the review manager  102  may update an entry indicative of the status of the suggested edit  1254  in a data structure such as the data structure  118 . Examples of statuses for suggested edits include pending (i.e., if the editor  108  has not yet selected to accept or reject the suggested edit), accepted (i.e., if the editor  108  accepts the suggested edit), or rejected (i.e., if the editor  108  rejects the suggested edit). In this case, the status of the suggested edit  1254  would be updated from pending to accepted upon receiving the acceptance from the editor  108 , or from pending to rejected upon receiving the rejection from the editor  108 , as shown in  FIG.  7   . Furthermore, an update in the status to the suggested edit  1254  requires updates to the status of the suggested edit  1354 . In this case, updates to the status of the suggested edit  1254  may also require updates to the data entry corresponding to the suggested edit  1354  in the data structure  118 . In addition, an indication of the identification of an editor  108  who accepted or rejected a suggested edit may be saved in a data structure such as the data structure  118 . Then, when other editors view the document  106  or a history of the document  106 , the identification of the editor  108  who made changes to the document  106  may be determined. 
     In addition, when the editor  108  accepts or rejects the suggested edit  1254 , the view of the document is also updated. In particular, the boxes surrounding the suggested edits  1254  and  1345  are removed from the diagram  700  to indicate that the editor  108  has accepted or rejected the suggested edit  1254 . Furthermore, the decision box  330  may include an indication that the suggested edit  1345  (corresponding to metadata region  228 ) has also been automatically accepted or rejected (not shown). The update to the view of the document  106  may be displayed in real time to any user viewing the document. In certain implementations, upon receiving an acceptance or a rejection of a suggested edit from the editor  108 , the metadata regions corresponding to the affected suggested edit(s) are removed from the sidebar. In other implementations, the user interacting with the document  106  may be shown an indication that the suggested edit(s) have been accepted or rejected in the sidebar. The indication may correspond to a compressed version of the metadata region, an icon, or any other suitable indication. 
     As shown in  FIG.  7   , as a result of the rejection of the suggested edit  1254 , the portion that Reviewer A added is removed from the display of the master document  106 . Alternatively, if the suggested edit  1254  were accepted, the box surrounding the sentence (shown in  FIG.  6   , indicating that the suggested edit  1254  was previously pending) is removed. Removal of the box surrounding the added portion is indicative that the addition has been accepted by an editor  108 . 
     In certain implementations, the review manager  102  is configured to allow an editor  108  to undo a previous acceptance or rejection of a suggested edit. For example, the editor  108  may reject the suggested edit  1254 . In this case, the review manager  102  automatically rejects any privileged edits that were part of the suggested edit  1254 . In the example shown, because the suggested edit  1345  is an editor&#39;s modification of a reviewer&#39;s suggested edit  1254 , the suggested edit  1345  is a privileged edit and has therefore been incorporated into the suggested edit  1254 . In other words, privileged edits are treated as part of the suggested edit that they modify. Thus, because rejection of the suggested edit  1254  requires rejection of the suggested edit  1345 , the suggested edit  1345  is rejected when the suggested edit  1254  is rejected. However, even after the suggested edit  1254  is rejected by the editor  108 , an indication of the suggested edit  1254  may still be displayed to the editor  108  over the editor interface  110 . For example, the indication may be an icon in the sidebar of the editor interface  110 , and the editor  108  may select to view the rejected suggested edit  1254  by hovering over the icon or providing user input such as a mouse click, for example. While viewing the rejected suggested edit  1254 , the editor  108  may select to accept the suggested edit  1254 , effectively undoing the rejection of the suggested edit  1254  (and the privileged edit  1345 ). Alternatively, the editor  108  may confirm rejection of the suggested edit  1254 , and the corresponding icon may be removed from the sidebar. Similarly, the editor  108  may undo previous acceptances of suggested edits. Furthermore, the review manager  102  allows the editor  108  to undo previous acceptances or rejections of suggested edits. This feature is useful when it is desirable to allow the editor  108  to review previous decisions made by another editor or to review previous decisions by the same editor  108 , in case the editor  108  changes his/her mind. In certain implementations, multiple editors  108  collaborate to make changes in a document  106 . In this case, this feature would enable an editor  108  to undo previous acceptances or rejections made by another editor. 
       FIG.  8    is an illustrative diagram  800  of a view of the editor interface  110  when an editor  108  interacts with the document  106 , according to an illustrative embodiment. In particular, in the diagram  800 , the editor  108  has selected to display the editor display options by selecting the editor display options button  334 . When the editor display options button  334  is selected, the sidebar of the editor interface  110  includes a display box  654 . In particular, the display box  654  includes a list of display options, and decision options (i.e., reject options  650  and accept options  652 ) for the editor  108 . 
     In particular, the display box  654  allows the editor  108  to selectively view a subset of all the suggested edits related to the document  106 . For example, the editor  108  may wish to view only the suggested edits corresponding to a particular reviewer, or corresponding to a particular type of suggested edit. In this case, the editor  108  would select and deselect the appropriate set of options under the display options in the display box  654 . When the editor  108  selects and deselects the display options, the view of the display of the document may be updated in real time. As shown, the editor  108  has selected to view the option corresponding to everyone&#39;s activity. Upon selecting this option, each box next to a reviewer or editor&#39;s identifier (i.e., Reviewer A, Reviewer B, Reviewer C, and Editor D) may be automatically selected, and all the suggested edits may be shown in the display. The numbers following the user identifiers correspond to a number of pending suggestions remaining from the reviewer. For example, Reviewer A has five pending suggested edits, Reviewer B has two pending suggested edits, Reviewer C has three pending suggested edits, and Editor D has two pending suggested edits. The review manager  102  may appropriately update these numbers as the editor  108  accepts or rejects the suggested edits in the document  106 . 
     The display box  654  also allows the editor  108  to selectively view a subset of the suggested edits corresponding to an edit type. The editor  108  may select and deselect the appropriate set of options to display the edits corresponding to one or more desired edit types. As shown, the editor  108  has selected to view all edits, corresponding to comments, additions, deletions, spelling mistakes, and formatting changes. In this case, all the edits, regardless of edit type are shown in the display. The review manager may use the data structure shown in  FIG.  3    to easily determine the subset of suggested edits to display in the view of the document. 
     In an example, the editor  108  may wish to view only those suggested edits corresponding to Reviewer A. To only display the suggested made by Reviewer A, the editor  108  may deselect all reviewers under the display options in the display box  654  except for Reviewer A. However, one of the suggested edits made by Reviewer A (i.e., suggested edit  1254 ) includes a suggested edit made by Editor D (i.e., suggested edit  1354 ). In some implementations, the review manager  102  may prompt the editor  108  to determine whether or not to display any suggested edits that are incorporated with suggested edits made by Reviewer A. Depending on the input from the editor  108 , the review manager  102  may display both suggested edits  1254  and  1345 , or neither suggested edit may be displayed. In some implementations, the review manager  102  automatically considers any incorporated (or privileged) edits (made by an editor  108 ) that modify a reviewer&#39;s original suggested edit as part of the original suggested edit. In this case, when the editor  108  deselects all reviewers except for Reviewer A, neither of the suggested edits  1254  and  1345  are displayed. However, if Reviewer A is selected, then both suggested edits  1254  and  1345  are displayed. Furthermore, even if Reviewer A is selected and Editor D is deselected, both suggested edits  1254  and  1345  are still displayed because the suggested edit  1345  is integral to the suggested edit  1254 . Thus, any decision regarding the suggested edit  1254  will also automatically apply to the suggested edit  1345 . 
     In addition, the display box  654  includes two options corresponding to reject options  650  and accept options  652 . The options  650  and  652  allow the editor  108  to accept or reject a current edit, which may correspond to a suggested edit in the document  106  and may be highlighted in the document with color, a pointer, or any other suitable way of pointing out an edit in a document. In addition, the options  650  and  652  also allow the editor  108  to accept or reject all visible edits (i.e., corresponding to those edits selected to be displayed under the display options). In particular, it may be desirable for the editor  108  to accept or reject all suggested edits corresponding to a particular reviewer (i.e., Reviewer A). In this case, the editor  108  may select to display only those edits corresponding to Reviewer A, and may select the option  650  to reject all the displayed suggested edits. Alternatively, the editor  108  may select the option  652  to accept all the suggested edits from Reviewer A. As an example, this may be desirable if the editor  108  has enough trust in Reviewer A to accept all of the suggestions made by Reviewer A without reviewing them individually. 
     It may be desirable for the editor  108  to accept or reject all suggested edits corresponding to a particular edit type. In particular, parsing through each suggested edit may be time consuming, especially when the suggested edits include fixes to spelling mistakes, format changes, or any other minor suggested edits. Thus, the editor  108  may select to display only those edits corresponding to one or more edit types (i.e., spelling mistakes and formatting changes, or the “non-substantive” suggested edits), and select the option  652  to accept all visible edits. Then, the editor  108  may parse through the remainder of the edits (i.e., the “substantive” suggested edits) for individual consideration. These options, which allow the editor  108  to efficiently accept or reject edits corresponding to one or more reviewers or one or more edit types, allow for changes to be made to the document  106  efficiently. 
     The display box  654  is shown for illustrative purposes only, and one of ordinary skill in the art will appreciate that any subset of the components shown may be combined with any other sort of data related to the document  106  for display. 
       FIG.  9    is an illustrative flow diagram of a method  900  used by the review manager  102  to manage updates to a document  106 . The method  900  includes the steps of receiving a first suggested edit from a reviewer (step  902 ) and receiving a second suggested edit from an editor (step  904 ). The review manager  102  detects a shared position between the first suggested edit and the second suggested edit (step  906 ). If the second edit is based on the first edit (decision block  908 ), then the review manager  102  incorporates the second edit into the first edit (step  910 ). If the review manager  102  receives an indication that the first suggested edit is accepted (decision block  912 ), then both the first and the second suggested edits are accepted (step  914 ). Otherwise, if the review manager  102  receives an indication that the first suggested edit is rejected (decision block  916 ), then both the first and the second suggested edits are rejected (step  918 ). 
     At step  902 , the review manager  102  receives a first suggested edit from a reviewer, and at step  904 , the review manager  102  receives a second suggested edit from an editor reviewer. The reviewer who provides the first suggested edit is a user who is associated with a reviewer set of privileges with respect to the document  106 . In particular, the set of reviewer privileges includes read capabilities, in addition to being able to provide comments and/or suggested edits to the document  106 . The editor who provides the second suggested edit is a user who is associated with a set of editor privileges with respect to the document  106 . In particular, the set of editor privileges includes read and write capabilities, in addition to being able to consider or delete comments that are provided by a reviewer. Furthermore, the set of editor privileges also includes being able to accept or reject suggested edits provided by a reviewer. In some implementations, an editor may select to operate in a reviewer mode, during which the editor can provide comments and/or suggested edits. In this case, an editor may provide the first suggested edit when operating in the reviewer mode, and another editor (or even the same editor who provided the first suggested edit) may provide the second suggested edit. 
     At step  906 , the review manager  102  detects a shared position between the first suggested edit and the second suggested edit. The shared position includes a same portion of the document  106  to which both suggested edits suggest making a change. For example, the first and second edits may correspond to the suggested edits  1254  and  1345 , respectively, as shown in  FIG.  5   . In this case, the review manager  102  may identify the shared position to be the region of the document where the text of edit  1254  is suggested to be inserted (i.e., before “it is often desirable to . . . ”). 
     At decision block  908 , the review manager  102  determines whether the second suggested edit is based on the first suggested edit. Because both edits include a suggested change of the document in the shared position, the shared position is indicative of a relationship between the edits. In particular, after identifying the shared position of the first edit (i.e., the suggested edit  1254 ) and the second edit (i.e., the suggested edit  1345 ), the review manager  102  determines that the first and second edits have a compounding relationship. In the example shown in  FIG.  5   , when the document  106  is a text document, the first suggested edit corresponds to an insertion of a portion of text into the document  106 , while the second suggested edit corresponds to an edit of the inserted text. In this case, the second suggested edit compounds with the first suggested edit because acceptance of the second suggested edit would require acceptance of the first suggested edit. The compounding relationship may therefore be determined based on the shared position. In general, the review manager  102  may use any type of information related to the document  106  to determine that the second suggested edit is based on the first suggested edit. 
     If the second suggested edit is based on the first suggested edit, method  900  proceeds to step  910 , at which the review manager  102  incorporates the second suggested edit into the first suggested edit. Incorporating the second suggested edit into the first suggested edit essentially combines the suggested edits such that the first suggested edit subsumes the second suggested edit. As an example, to incorporate one edit into another edit, the review manager  102  may update a data structure such as the data structure  118  shown in  FIG.  2   . In particular, the review manager  102  may recognize that the suggested edit  1345  (made by an editor) depends on the suggested edit  1254  (made by a reviewer). Upon recognizing this type of dependency, the review manager  102  may update a field entry in the data structure  118  to indicate that the suggested edit  1345  is incorporated into the suggested edit  1254  (not shown). 
     In another example, a user interface may also include an indication of an incorporation of one suggested edit into another suggested edit. The user interfaces in  FIGS.  5 - 7    show the inclusion of the metadata region  228  (corresponding to the suggested edit  1345 , or the second suggested edit) within the metadata region  224  (corresponding to the suggested edit  1254 , or the first suggested edit). The sidebar regions of  FIGS.  5 - 7    therefore display an annotation of the incorporation. Furthermore, as shown in  FIGS.  6  and  7   , an editor  108  may not have the option of accepting or rejecting the second suggested edit (i.e., the suggested edit  1345 ) because it has been incorporated into the first suggested edit (i.e., the suggested edit  1254 ). Instead, the editor  108  only has the option of accepting or rejecting the first suggested edit, which would in turn cause the automatic acceptance or rejection of the second suggested edit. In general, any other type of annotation may be displayed over a user interface to indicate the incorporation of one edit with another edit. 
     After the review manager  102  incorporates the second suggested edit into the first suggested edit, the review manager  102  determines whether to accept the first suggested edit at decision block  912 . In particular, if the review manager  102  determines that the first suggested edit should be accepted (by direct user input from an editor  108 , for example), the review manager  102  proceeds to step  914  to accept both the first and second suggested edits. Because the second suggested edit has been incorporated into the first suggested edit, acceptance of the first suggested edit requires acceptance of the second suggested edit, and both suggested edits are accepted at step  914 . 
     Accepting an edit includes updating a view of the document  106  to reflect the acceptance. For example, when the edits were pending, the view of the document  106  may have included a markup of the document indicating the suggested edit (i.e., suggested additions may be underlined, suggested deletions may be crossed out, etc.). Upon acceptance of the first suggested edit, the markup of the first suggested edit (and any incorporated suggested edits, such as the second suggested edit) may be removed from the display. Furthermore, a data structure storing data related to the first suggested edit may be updated to reflect the acceptance. In particular, the data structure may have a field entry for a status of the first suggested edit, and the status may be updated from pending to accepted. Furthermore, a published version of the document  106  may be visible to a third type of user, which may be referred to as a viewer. Viewers of a document  106  may be associated with a set of viewer privileges that include permission to view a published version of the document  106 . Any pending suggested edits may be hidden from the view of the published version of the document  106 , but once a pending edit is accepted by an editor  108 , the published version of the document  106  may be updated with the newly accepted change. 
     Alternatively, if the review manager  102  determines that the first suggested edit should be rejected at decision block  916 , the review manager  102  rejects both the first and the second suggested edits at step  918 . Because the second suggested edit is incorporated into the first suggested edit, the second suggested edit may not be accepted without acceptance of the first suggested edit. Thus, when the first suggested edit is rejected (by direct input from an editor  108 , for example), the second suggested edit is also rejected. In some implementations, the review manager  102 , upon determining that the first suggested edit is not accepted at decision block  912 , thereby determines that the first suggested edit is rejected. In this case, the review manager  102  may proceed directly to step  918  to reject both the first and the second suggested edits. 
     The order of the steps and decision blocks as shown in  FIG.  9    are for illustrative purposes only and one of ordinary skill in the art will understand that any suitable order may be used. In particular, as shown as depicted in  FIG.  9   , the review manager  102  first incorporates the second suggested edit into the first suggested edit at step  910  before determining whether to accept or reject the first suggested edit. However, as shown in  FIG.  10   , the review manager  102  may determine whether to accept or reject the first suggested edit before determining whether any other suggested edit is incorporated into the first suggested edit. After receiving an acceptance or rejection of the first suggested edit, the review manager  102  may determine whether there are any other suggested edits that are incorporated into the first suggested edit. Any incorporated suggested edits may then be accordingly accepted or rejected. 
       FIG.  10    is a flowchart of a method  1000  used by the review manager to manage accepted changes to a document, according to an illustrative embodiment. The method  1000  includes the steps of receiving an acceptance of a first suggested edit (step  1002 ), identifying any other suggested edits that are incorporated into the first suggested edit (step  1004 ), and accepting the first suggested edit and any incorporated suggested edits (step  1006 ). 
     At step  1002 , the review manager  102  receives an acceptance of a first suggested edit. As described in relation to decision block  912  of the method  900 , the review manager  102  may make this determination based on a user input such as an input from an editor  108  indicating to accept the first suggested edit. In another example, the review manager  102  may make this determination based on previously received input from the editor  108  (i.e., by receiving an acceptance of another suggested edit, whose acceptance requires acceptance of the first suggested edit). 
     At step  1004 , the review manager  102  identifies any suggested edits that are incorporated into the first suggested edit. For example, the review manager  102  may parse a data structure such as the data structure  118  to identify any incorporated suggested edits. In particular, the review manager  102  may identify any other suggested edits that were created by an editor that depend on (or are based on, or have a compounding relationship with) the first suggested edit. In another example, the data structure  118  may include a dedicated column that provides data indicative of incorporated suggested edits (not shown). 
     At step  1006 , the review manager  102  accepts the first suggested edit and any incorporated suggested edits that were identified at step  1004 . For example, when the first suggested edit (i.e., the suggested edit  1254 ) is accepted, the review manager  102  determines that a second suggested edit (i.e., the suggested edit  1345 ) was created by an editor  108  and depends from the first suggested edit. In this case, the second suggested edit is also accepted. As described herein, only one suggested edit is incorporated into another suggested edit. In general, any number of suggested edits may be determined to be incorporated into the first suggested edit, and all of the identified incorporated suggested edits may be automatically accepted (or rejected) upon receiving an acceptance (or rejection) of the first suggested edit. 
       FIG.  11    is a flowchart of a method  1100  used by the review manager to incorporate a suggested edit into another suggested edit, according to an illustrative embodiment. The method  1100  includes the steps of receiving first and second edits in an electronic document (step  1102 ), identifying a shared position of the first and second edits (step  1104 ), determining that the second edit is privileged relative to the first edit (step  1106 ), and incorporating the second edit into the first edit when the second edit is privileged relative to the first edit (step  1108 ). 
     At step  1102 , the review manager  102  receives a first edit and a second edit in an electronic document. As described above, the first edit and the second edit may be suggested edits that are created by a reviewer  112  or an editor  108 . In particular, a reviewer  112  may create the first edit, and an editor  108  may create the second edit. Because the edits are suggested edits, a status of the edits is pending until either or both of the edits are accepted or rejected by an editor  108 . 
     At step  1104 , the review manager  102  identifies a shared position between the first edit and the second edit. The shared position includes a same portion of the document  106  to which both suggested edits suggest making a change. For example, the first and second edits may correspond to the suggested edits  1254  and  1345 , respectively, as shown in  FIG.  5   . In this case, the review manager  102  may identify the shared position to be the region of the document where the text of edit  1254  is suggested to be inserted (i.e., before “it is often desirable to . . . ”). 
     At step  1106 , the review manager  102  determines that the second edit is privileged relative to the first edit. In particular, the review manager  102  may determine that the first edit was made by a first user with a first set of permissions and the second edit is made by a second user with a second set of permissions larger than the first set of permissions. In particular, the first user may be a reviewer  112  (or an editor  108  operating in reviewer mode, as described above) with reviewer privileges. The reviewer privileges include the ability to read, comment on, and make suggested to the electronic document  106 . The second user may be an editor  108  with editor privileges. The editor privileges include the ability to read, write, and accept or rejected suggested changes to the electronic document  106 . In addition, the editor privileges further include the ability to make changes to any suggested changes made by a reviewer  112 . 
     At step  1108 , the review manager  102  incorporates the second edit into the first edit when the second edit is privileged relative to the first edit. As described above, incorporating the second edit into the first edit essentially combines the edits such that the first edit subsumes the second edit. Thus, the changes that an editor  108  makes to a suggested change made by a reviewer  112  are automatically incorporated into the suggested change made by the reviewer. Incorporation of the editor  108 &#39;s changes means that acceptance or rejection of the reviewer&#39;s suggested change causes the automatic acceptance or rejection of the incorporated changes. 
     As an example, to incorporate one edit into another edit, the review manager  102  may update a data structure such as the data structure  118  shown in  FIG.  2   . In particular, the review manager  102  may recognize that the suggested edit  1345  (made by an editor) depends on the suggested edit  1254  (made by a reviewer). Upon recognizing this type of dependency, the review manager  102  may update a field entry in the data structure  118  to indicate that the suggested edit  1345  is incorporated into the suggested edit  1254  (not shown). In another example, the data structure may be updated to reflect the incorporation. For example, the row corresponding to the suggested edit  1345  may be deleted, and the row corresponding to the suggested edit  1254  may be updated to include an indication of the suggested edit  1345 . In another example, as shown in  FIGS.  5 - 7   , a user interface may also include an indication of an incorporation of one suggested edit into another suggested edit by including the metadata region  228  (corresponding to one suggested edit) within the metadata region  224  (corresponding to another suggested edit). 
       FIG.  12    is a block diagram of a computing device, such as any of the components of the system of  FIG.  1   , for performing any of the processes described herein. Each of the components of these systems may be implemented on one or more computing devices  1200 . In certain aspects, a plurality of the components of these systems may be included within one computing device  1200 . In certain implementations, a component and a storage device may be implemented across several computing devices  1200 . 
     The computing device  1200  comprises at least one communications interface unit, an input/output controller  1210 , system memory, and one or more data storage devices. The system memory includes at least one random access memory (RAM  1202 ) and at least one read-only memory (ROM  1204 ). All of these elements are in communication with a central processing unit (CPU  1206 ) to facilitate the operation of the computing device  1200 . The computing device  1200  may be configured in many different ways. For example, the computing device  1200  may be a conventional standalone computer or alternatively, the functions of computing device  1200  may be distributed across multiple computer systems and architectures. In  FIG.  12   , the computing device  1200  is linked, via network or local network, to other servers or systems. 
     The computing device  1200  may be configured in a distributed architecture, wherein databases and processors are housed in separate units or locations. Some units perform primary processing functions and contain at a minimum a general controller or a processor and a system memory. In distributed architecture implementations, each of these units may be attached via the communications interface unit  1208  to a communications hub or port (not shown) that serves as a primary communication link with other servers, client or user computers and other related devices. The communications hub or port may have minimal processing capability itself, serving primarily as a communications router. A variety of communications protocols may be part of the system, including, but not limited to: Ethernet, SAP, SAS™, ATP, BLUETOOTH™, GSM and TCP/IP. 
     The CPU  1206  comprises a processor, such as one or more conventional microprocessors and one or more supplementary co-processors such as math co-processors for offloading workload from the CPU  1206 . The CPU  1206  is in communication with the communications interface unit  1208  and the input/output controller  1210 , through which the CPU  1206  communicates with other devices such as other servers, user terminals, or devices. The communications interface unit  1208  and the input/output controller  1210  may include multiple communication channels for simultaneous communication with, for example, other processors, servers or client terminals. 
     The CPU  1206  is also in communication with the data storage device. The data storage device may comprise an appropriate combination of magnetic, optical or semiconductor memory, and may include, for example, RAM  1202 , ROM  1204 , flash drive, an optical disc such as a compact disc or a hard disk or drive. The CPU  1206  and the data storage device each may be, for example, located entirely within a single computer or other computing device; or connected to each other by a communication medium, such as a USB port, serial port cable, a coaxial cable, an Ethernet cable, a telephone line, a radio frequency transceiver or other similar wireless or wired medium or combination of the foregoing. For example, the CPU  1206  may be connected to the data storage device via the communications interface unit  1208 . The CPU  1206  may be configured to perform one or more particular processing functions. 
     The data storage device may store, for example, (i) an operating system  1212  for the computing device  1200 ; (ii) one or more applications  1214  (e.g., computer program code or a computer program product) adapted to direct the CPU  1206  in accordance with the systems and methods described here, and particularly in accordance with the processes described in detail with regard to the CPU  1206 ; or (iii) database(s)  1216  adapted to store information that may be utilized to store information required by the program. 
     The operating system  1212  and applications  1214  may be stored, for example, in a compressed, an uncompiled and an encrypted format, and may include computer program code. The instructions of the program may be read into a main memory of the processor from a computer-readable medium other than the data storage device, such as from the ROM  1204  or from the RAM  1202 . While execution of sequences of instructions in the program causes the CPU  1206  to perform the process steps described herein, hard-wired circuitry may be used in place of, or in combination with, software instructions for implementation of the processes of the present disclosure. Thus, the systems and methods described are not limited to any specific combination of hardware and software. 
     Suitable computer program code may be provided for performing one or more functions in relation to incorporating one suggested edit into another suggested edit as described herein. The program also may include program elements such as an operating system  1212 , a database management system and “device drivers” that allow the processor to interface with computer peripheral devices (e.g., a video display, a keyboard, a computer mouse, etc.) via the input/output controller  1210 . 
     The term “computer-readable medium” as used herein refers to any non-transitory medium that provides or participates in providing instructions to the processor of the computing device  1200  (or any other processor of a device described herein) for execution. Such a medium may take many forms, including but not limited to, non-volatile media and volatile media. Non-volatile media include, for example, optical, magnetic, or opto-magnetic disks, or integrated circuit memory, such as flash memory. Volatile media include dynamic random access memory (DRAM), which typically constitutes the main memory. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, an EPROM or EEPROM (electronically erasable programmable read-only memory), a FLASH-EEPROM, any other memory chip or cartridge, or any other non-transitory medium from which a computer can read. 
     Various forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to the CPU  1206  (or any other processor of a device described herein) for execution. For example, the instructions may initially be borne on a magnetic disk of a remote computer (not shown). The remote computer can load the instructions into its dynamic memory and send the instructions over an Ethernet connection, cable line, or even telephone line using a modem. A communications device local to a computing device  1200  (e.g., a server) can receive the data on the respective communications line and place the data on a system bus for the processor. The system bus carries the data to main memory, from which the processor retrieves and executes the instructions. The instructions received by main memory may optionally be stored in memory either before or after execution by the processor. In addition, instructions may be received via a communication port as electrical, electromagnetic or optical signals, which are exemplary forms of wireless communications or data streams that carry various types of information.