Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Response to Arguments
Regarding applicants arguments directed at the rejection of claim 1 under 35 U.S.C. 103:
Examiner respectfully agrees that the recited prior art does not explicitly and fully teach all of the claim amendments, and respectfully enters Zheng et al. (US 2024/0005086 A1):
Zheng teaches wherein the multi- user input data embodies textual content simultaneously (simultaneously editing the same document) generated by the two or more client computing devices during a collaborative editing session (shared editing session), (0036; A user interface provided by the user interface module 250 can allow users to modify content such as text, images, links to outside sources of information such as databases, and the like. In the embodiments described herein, the user interface provides interfaces for multiple users who may be associated with different entities 115 to access, view, and edit the same document simultaneously. The user interface module 250 accessing information from the permission store 240 and the synchronization module 260 to determine which clauses in the document should be obscured from view for users associated with specific collaborating entities during the shared editing session. The user interface module 250 can also provide a user interface for authorized users to view or modify permissions definitions granting permissions to other users. In some implementations, the user interface module 250 provides tools for participating in a negotiation between entities 115, for example, by allowing authorized users to change permissions of other users with respect to specific clauses, view version histories of clauses, change or advance a negotiation workflow, invite external users to participate in the negotiation, agree on or finalize clauses, or view a visualization of the current state of the negotiation (for example, a visualization of agreed on clauses and/or the changes to a negotiated document).)
and wherein a common representation (current state of the document) of sequenced textual content (Fig 3A-3B; section 310, 370, 380 see side control panel for the different sequenced sections) associated with the collaborative document is rendered in near real time (real time updating for users associated with the first entity performing simultaneous edits) on respective interactive user interfaces (real-time updates and synchronization) associated with the two or more client computing devices; ([0037] The synchronization module 260 facilitates simultaneous viewing and editing of a document by a plurality of users associated with various entities involved in a document collaboration. When one user makes an edit to the document, the synchronization module 260 identifies the change and updates the interface of the other collaborating users to show the change. To manage these real-time updates, the synchronization module 260 may interface with the permissions module, the document module 210, and the user interface module 250 to update a current state of the document stored in the document store 220, and to determine the permissions for which of the collaborating users are currently permitted to view the change. For example, if a clause is currently locked by the first entity 115A, all users associated with the first entity 115A may be able to view and participate in edits made to the clause in the shared document in real-time, but the users associated with the second entity 115B, may not be able to see any changes. In one embodiment, obscuring the changes from another entity 115 may mean that the entity sees only the most recent open version of the clause, or may mean that the blocked entity 115 sees a blurred out or otherwise obscured clause section. The synchronization module 260 also monitors and detects when changes are made to permissions for a clause within the shared document. When the permissions are updated for a clause, the synchronization module 260 interfaces with the permissions module 230 to update the permissions data in the permission store 240 and interacts with the user interface module 250 to update the views of each of the collaborating users according to the new permissions. For example, when users of the first entity 115A have worked together to simultaneously edit a clause which had been closed to the second entity 115B, the first entity 115A may update the permissions of the clause so that the users of entity 115B can again access, view, and suggest edits to the clause in the shared document and [0020] teaches different devices and Figs 3A-4; [0005] The online document system modifies a first display of the shared document via a first device of the set of entities and also modifies a second display of the shared document via a second device of the second set of entities. The modifications are made such that the first clause is visible to users of devices associated with the first set of entities and not visible to users of devices associated with the second set of entities. Simultaneously, the modifications are made such that the second clause is not visible to users of devices associated with the first set of entities and is visible to users of devices associated with the second set of entities. The remainder of the shared document is simultaneously visible to both the first set of entities and the second set of entities on both the first devices and the second devices.)
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claim(s) 1-4, 6-13 and 15-22 is/are rejected under 35 U.S.C. 103 as being unpatentable over Guarnieri et al. (US 20230195454 A1) in view of Elkington et al. (US 20160357790 A1) in view of Surjo-Subagio et al. (US 10,086,288 B1) in view of Zheng et al. (US 2024/0005086 A1).
Regarding claim 1, Guarnieri teaches an apparatus (Fig 21; system) for automatically resolving document conflicts in a collaborative document, the apparatus comprising a display,(Fig 21; display device) at least one processor, and at least one memory including program code, the at least one memory and the program code configured to, with the at least one processor, cause the apparatus to at least: (Fig 21; 0104; 0107; processor and nonvolatile storage storing instruction executed by a computer)
receive multi-user input data (edits from different developers) associated with the collaborative document (system project), (0061; two developers submit edits to the IDE system for the same system project)
wherein the multi-user input data is generated by two or more client computing devices (0044; Fig 2; developers each have a client device) associated with two or more user profiles (Examiner notes 0044 teaches developers permitted to make edits is equivalent to user profile, therefore the permission is equivalent to the user profile) supported by a document collaboration platform (0048; collaborative development environment which is part of IDE system)(0044; collaborative development environment in which multiple developers are permitted to perform asynchronous development on a common system project)
wherein the multi- user input data embodies textual content (Mapping above and Figure 4; wherein the edits where text edits)
generate, via the document collaboration platform,(IDE system) two or more user input step events based on the multi-user input data, (both locally edited projects model description and base project model description) wherein each of the two or more user input step events (edits) are associated with a respective user profile of the two or more user profiles (see mapping above, permitted users); (0062; After each user has applied a set of edits to their respective local versions of the system project 702 and submitted the resulting edited versions 702a, 702b to be merged with the base system project 702, the merge process can be initiated. 0063; FIG. 9 is a diagram illustrating the conversion of the local project versions 702a, 702b and the base project 702 into their corresponding model descriptions 902.; 0066; In particular, rather than performing a comparison of corresponding lines of simple text without knowledge of the meaning of project elements, as in the example described above in connection with FIGS. 4 and 5, IDE system 602 will perform a comparison of the nodes of each project version's information model to identify which project elements have been added, removed, or modified.)
generate, based on the two or more user input step events, a document object representative of the collaborative document; (both locally edited projects model description and base project model description) (Mapping above; 0062; After each user has applied a set of edits to their respective local versions of the system project 702 and submitted the resulting edited versions 702a, 702b to be merged with the base system project 702, the merge process can be initiated. 0063; FIG. 9 is a diagram illustrating the conversion of the local project versions 702a, 702b and the base project 702 into their corresponding model descriptions 902.; 0066-0067; In particular, rather than performing a comparison of corresponding lines of simple text without knowledge of the meaning of project elements, as in the example described above in connection with FIGS. 4 and 5, IDE system 602 will perform a comparison of the nodes of each project version's information model to identify which project elements have been added, removed, or modified.)
determine one or more document conflicts (differential data is used to determine conflicts between edits) associated with the collaborative document based on application of a document merge model to the document object;([0076] Similarly, if one of the two sets of differential data 1102a or 1102b indicate that the node 1002 has been changed while the other set of differential data indicates that the node 1002 has been removed—indicating that one user has deleted a project element that the other user has edited but left in place—the merge component 614 indicates that the edits are in conflict; 0066-0067; Next, the model descriptions 902a, 902b generated for the locally edited project versions 702a, 702b are each compared to the model description 902 generated for the base project 702. FIG. 11 is a diagram illustrating comparison of the model descriptions to yield differential data. The differential component 612 identifies the changes performed on each of the locally edited project versions 702a, 702b relative to the base project 702 by comparing each model description 902a, 902b representing the locally edited project versions 702a, 702b with the base model description 902 representing the base project 702. Based on these comparisons, the differential component 612 generates differential data 1102 identifying differences between each locally edited version 702a, 702b and the base project 702. In the example depicted in FIG. 11, the comparison between model description 902a (representing the first locally edited version 702a) and model description 902 (representing the base project 702) yields differential data 1102a, and the comparison between model description 902b (representing the second locally edited version 702b) and model description 902 (representing the base project 702) yields differential data 1102a; (See Fig 4 showing conflicts because user 1 and user 2 edited the same portion of the shared document; 0047; When merging the two edited versions 210 a and 210 b, the development system 202 detects a merge conflict since some lines of text—e.g., lines 4-8—were changed by both User 1 and User 2.))
wherein (i) the one or more document conflicts are associated with two or more portions of textual (multiple lines see Fig 4-5) content that are similar (the similarity is that edits were applied to the same project) within the collaborative document; ( Mapping above, See Fig 4-5 showing conflicts because user 1 and user 2 edited the same portion of the shared document; 0047; When merging the two edited versions 210 a and 210 b, the development system 202 detects a merge conflict since some lines of text—e.g., lines 4-8—were changed by both User 1 and User 2.)
(ii) the two or more portions of textual content (edits) were provided by two or more different user profiles (user 1 edits and user 2 edits) of the two or more user profiles; (0046-0047; 0083; Fig 2; When merging the two edited versions 210 a and 210 b, the development system 202 detects a merge conflict since some lines of text—e.g., lines 4-8—were changed by both User 1 and User 2.; Examiner notes that the users include users making edits and admins; 0074-0076 teaches that user edits and delete operations indicate the user that performed the edits therefore there is (1) a way to identify the user, and (2) associated edites with a user and therefore there is some profile of which the users and admins belong in the system)
generate, based on the one or more document conflicts, one or more document merge resolutions, (0077; the merge component 614 can be configured to automatically resolve the conflict by selecting from among the conflicting versions of a node 1002 based on a defined selection criterion)
update the collaborative document (updated base project) to incorporate the selected document merge resolution(resolution to merge conflict). (Mapping above 0077; [0078] Returning now to FIG. 13, the merge component 614 determines a suitable merge action for each node 1002 in the model descriptions 902a and 902b based on the combined differential statuses of the nodes 1002 (e.g., in accordance with the status-based merge actions tabulated in FIG. 14) and generates the merged model description 1302 by applying these merge actions to the nodes 1002. Prior to translating this merged model description 1302 to an updated base project 702)
Guarnieri does not explicitly and fully teach wherein the multi- user input data embodies textual content simultaneously generated by the two or more client computing devices during a collaborative editing session,
and wherein a common representation of sequenced textual content associated with the collaborative document is rendered in near real time on respective interactive user interfaces associated with the two or more client computing devices;
wherein the one or more document merge resolutions are associated with a respective merge resolution confidence score; and in response to a determination that a merge resolution confidence score associated with a selected document merge resolution of the one or more document merge resolutions satisfies a predefined document merge resolution threshold: update the collaborative document to incorporate the selected document merge resolution.
In an analogous art Elkington teaches wherein the one or more document merge resolutions (merge solution) are (i) associated with a respective merge resolution confidence score (confidence score); ([0143] In step 204 of FIG. 2, ML model 112 generates resolved record(s) with confidence scores. These resolved record(s) form a recommended merging solution. In at least one embodiment, a user can select one of a plurality of these generated records; in another embodiment, the system itself can make the selection. [0144] In at least one embodiment, a threshold value can be set, either by the user or by some other entity. When the confidence score for a resolved record exceeds this threshold value, the field is automatically merged using the recommended solution specified by that resolved record, without user intervention. When the confidence score does not exceed the threshold value, the user can be prompted to manually merge the fields and/or to select among a plurality of generated records representing different solutions) and (ii) are based at least in part on a portion of the multi-user input data (0031; data in the records that are being merged include data input by users)
associated with the dominant user profile (0025; user that provided the input; the user must be identified somehow since the communication is bilateral therefore any information identifying a user is equivalent to a profile); (Examiner further notes “associated with” can relate to anything include abstractions such as “existing on earth together” since the users include data input into the records on the same system they are “associated”) ([0143] In step 204 of FIG. 2, ML model 112 generates resolved record(s) with confidence scores. These resolved record(s) form a recommended merging solution. In at least one embodiment, a user can select one of a plurality of these generated records; in another embodiment, the system itself can make the selection. [0144] In at least one embodiment, a threshold value can be set, either by the user or by some other entity. When the confidence score for a resolved record exceeds this threshold value, the field is automatically merged using the recommended solution specified by that resolved record, without user intervention. When the confidence score does not exceed the threshold value, the user can be prompted to manually merge the fields and/or to select among a plurality of generated records representing different solutions)
and in response to a determination that a merge resolution confidence score associated with a selected document merge resolution of the one or more document merge resolutions satisfies a predefined document merge resolution threshold (confidence score for merge solution exceeds a threshold value): update the collaborative document to incorporate the selected document merge resolution (merge the fields). ([0143] In step 204 of FIG. 2, ML model 112 generates resolved record(s) with confidence scores. These resolved record(s) form a recommended merging solution. In at least one embodiment, a user can select one of a plurality of these generated records; in another embodiment, the system itself can make the selection. [0144] In at least one embodiment, a threshold value can be set, either by the user or by some other entity. When the confidence score for a resolved record exceeds this threshold value, the field is automatically merged using the recommended solution specified by that resolved record, without user intervention. When the confidence score does not exceed the threshold value, the user can be prompted to manually merge the fields and/or to select among a plurality of generated records representing different solutions)
It would have been obvious to one of ordinary skill in the art prior to the effective filing date of the application to modify the teachings of Guarnieri to include merging based on a confidence score of a merge solution as is taught by Elkington
The motivation for doing so is to be able to resolving conflicts for merging [0005-0009]
Guarnieri in view of Elkington do not explicitly and fully teach wherein the multi- user input data embodies textual content simultaneously generated by the two or more client computing devices during a collaborative editing session,
and wherein a common representation of sequenced textual content associated with the collaborative document is rendered in near real time on respective interactive user interfaces associated with the two or more client computing devices;
determine, based on one or more pieces of metadata associated with the document object and user profile metadata, a dominant user profile of the two or more user profiles;
In an analogous art Surjo-Subagio teaches determine, (Examiner notes that if the admin is identified and conflicts and merge information is sent to the admin for a response then they must have been identified)
based on one or more pieces of metadata (Examiner notes that metadata is information that requires context, since the admin received the merge requests to make the final call then they must have been identified, identifying information is information that provides context for that session)
associated (examiner notes the admin is for a session which includes content since all this information is within a session they are “associated”) with the document object (based on information assigning the admin to the session with the content (equivalent to collab document)) and user profile metadata, (information that points to admin)
a dominant user profile of the two or more different user profiles; (admin for the session who has an account)
(Therefore examiners interpretation is that an admin that controls a session for collaboration on content, is identified as the admin based on session information which is “associated to all content and information in the session”, which is then used to direct requests to the admin (equivalent to identifying dominant user profile))(Col 4 Lines 3-24; (17) First content item session 121 is administrated by first session administrator 140, which may be, for example, a game developer or other developer of the first content item session 121. First session administrator 140 may serve as the ultimate authority for making certain decisions regarding first content item session 121, such as decisions regarding attributes and features of the first content item session, dispute resolution between users, teams, etc., regulation of user access, and other decisions. First session administrator 140 may also be wholly or partly responsible for performing other tasks, such as training, mentorship, handling of technical and/or contextual questions, and others. (18) Computing services provider 160 also operates content fork and merge services 131, which may generally perform various tasks related to forking and merging of content item sessions. As will be described in detail below, these tasks may include operations such as receiving and responding to fork and merge requests, manipulating content item data to generate forked and merged sessions, interacting with and compensating content item session administrators, identifying and resolving conflicts for session mergers, and many others.; Col 6; Lines 44-65; The users have accounts that are associated with consoles; Col 2: Lines 15-55 discussing content changes; )
It would have been obvious to one of ordinary skill in the art prior to the effective filing date of the application to modify the teachings of Guarnieri in view of Elkington to include data assigning an admin to the content session for merging content, then identifying the admin to route requests for merge conflicts to be resolved as is taught by Surjo-Subagio
The motivation for doing so is to improve admin task resolution [Col 1]
Guarnieri in view of Elkington in view of Surjo-Subagio do not explicitly and fully teach wherein the multi- user input data embodies textual content simultaneously generated by the two or more client computing devices during a collaborative editing session, and wherein a common representation of sequenced textual content associated with the collaborative document is rendered in near real time on respective interactive user interfaces associated with the two or more client computing devices;
In an analogous art Zheng teaches wherein the multi-user input data embodies textual content simultaneously (simultaneously editing the same document) generated by the two or more client computing devices during a collaborative editing session (shared editing session), (0036; A user interface provided by the user interface module 250 can allow users to modify content such as text, images, links to outside sources of information such as databases, and the like. In the embodiments described herein, the user interface provides interfaces for multiple users who may be associated with different entities 115 to access, view, and edit the same document simultaneously. The user interface module 250 accessing information from the permission store 240 and the synchronization module 260 to determine which clauses in the document should be obscured from view for users associated with specific collaborating entities during the shared editing session. The user interface module 250 can also provide a user interface for authorized users to view or modify permissions definitions granting permissions to other users. In some implementations, the user interface module 250 provides tools for participating in a negotiation between entities 115, for example, by allowing authorized users to change permissions of other users with respect to specific clauses, view version histories of clauses, change or advance a negotiation workflow, invite external users to participate in the negotiation, agree on or finalize clauses, or view a visualization of the current state of the negotiation (for example, a visualization of agreed on clauses and/or the changes to a negotiated document).)
and wherein a common representation (current state of the document) of sequenced textual content (Fig 3A-3B; section 310, 370, 380 see side control panel for the different sequenced sections) associated with the collaborative document is rendered in near real time (real time updating for users associated with the first entity performing simultaneous edits) on respective interactive user interfaces (real-time updates and synchronization) associated with the two or more client computing devices; ([0037] The synchronization module 260 facilitates simultaneous viewing and editing of a document by a plurality of users associated with various entities involved in a document collaboration. When one user makes an edit to the document, the synchronization module 260 identifies the change and updates the interface of the other collaborating users to show the change. To manage these real-time updates, the synchronization module 260 may interface with the permissions module, the document module 210, and the user interface module 250 to update a current state of the document stored in the document store 220, and to determine the permissions for which of the collaborating users are currently permitted to view the change. For example, if a clause is currently locked by the first entity 115A, all users associated with the first entity 115A may be able to view and participate in edits made to the clause in the shared document in real-time, but the users associated with the second entity 115B, may not be able to see any changes. In one embodiment, obscuring the changes from another entity 115 may mean that the entity sees only the most recent open version of the clause, or may mean that the blocked entity 115 sees a blurred out or otherwise obscured clause section. The synchronization module 260 also monitors and detects when changes are made to permissions for a clause within the shared document. When the permissions are updated for a clause, the synchronization module 260 interfaces with the permissions module 230 to update the permissions data in the permission store 240 and interacts with the user interface module 250 to update the views of each of the collaborating users according to the new permissions. For example, when users of the first entity 115A have worked together to simultaneously edit a clause which had been closed to the second entity 115B, the first entity 115A may update the permissions of the clause so that the users of entity 115B can again access, view, and suggest edits to the clause in the shared document and [0020] teaches different devices and Figs 3A-4; [0005] The online document system modifies a first display of the shared document via a first device of the set of entities and also modifies a second display of the shared document via a second device of the second set of entities. The modifications are made such that the first clause is visible to users of devices associated with the first set of entities and not visible to users of devices associated with the second set of entities. Simultaneously, the modifications are made such that the second clause is not visible to users of devices associated with the first set of entities and is visible to users of devices associated with the second set of entities. The remainder of the shared document is simultaneously visible to both the first set of entities and the second set of entities on both the first devices and the second devices.)
It would have been obvious to one of ordinary skill in the art prior to the effective filing date of the application to modify the teachings of Guarnieri in view of Elkington in view of Surjo-Subagio to include simultaneously performing text editing in a collaborative session as is taught by Zheng
The motivation for doing so is to facilitate synchronous multi-party negotiations of document contents [0001-0003]
Regarding claim 2, Guarnieri in view of Elkington in view of Surjo-Subagio in view of Zheng teach the apparatus of claim 1, and is disclosed above, Guarnieri teaches wherein the dominant user is associated (admin) with a user profile of the two or more user profiles, and wherein the dominant user is determined by the document merge model (0074; In this case, the merge component 614 can generate a request for a manual intervention from a user or administrator to resolve the conflict (e.g., by asking the user to select one of the two conflicting versions of the added node 1002 for inclusion in the merged model description 1302); 0062; In some embodiments the merge process may be initiated manually by one of the users or by another user with administrator privileges. Examiner notes that if an admin user has privileges, then there must be an account/profile for the admin user)
Guarnieri does not explicitly teach but Elkington teaches in response to a determination that the merge resolution confidence score associated with the selected document merge resolution (0143; resolved record(s) with confidence scores. These resolved record(s) form a recommended merging solution) of the one or more document merge resolutions does not satisfy the predefined document merge resolution threshold: (0144; When the confidence score does not exceed the threshold value, the user can be prompted to manually merge the fields and/or to select among a plurality of generated records representing different solutions.)
generate a suggested document merge resolution recommendation based on the selected document merge resolution; (0144; When the confidence score does not exceed the threshold value, the user can be prompted to manually merge the fields and/or to select among a plurality of generated records representing different solutions.)
and display (prompt) the suggested document merge resolution recommendation (different solutions) on an interactive user interface associated with a client computing device (Fig 1A: user with computing device) related to a dominant user, (0144; When the confidence score does not exceed the threshold value, the user can be prompted to manually merge the fields and/or to select among a plurality of generated records representing different solutions.)
It would have been obvious to one of ordinary skill in the art prior to the effective filing date of the application to modify the teachings of Guarnieri to include providing a recommendation if the confidence score is below a threshold as is taught by Elkington
The motivation for doing so is to be able to resolving conflicts for merging [0005-0009]
Guarnieri in view of Elkington do not explicitly teach and wherein the dominant user is determined by the document merge model based on metadata associated with the collaborative document.
In an analogous art Surjo-Subagio teaches wherein the dominant user (administrator) is determined by the document merge model (Col 2 Lines 56 [Wingdings font/0xE0] Col 3 Lines 67; the resolution strategies (equivalent to model)) based on metadata associated with the collaborative document (based on information assigning the admin to the session with the content (equivalent to collab document)). (Col 4 Lines 3-24; (17) First content item session 121 is administrated by first session administrator 140, which may be, for example, a game developer or other developer of the first content item session 121. First session administrator 140 may serve as the ultimate authority for making certain decisions regarding first content item session 121, such as decisions regarding attributes and features of the first content item session, dispute resolution between users, teams, etc., regulation of user access, and other decisions. First session administrator 140 may also be wholly or partly responsible for performing other tasks, such as training, mentorship, handling of technical and/or contextual questions, and others. (18) Computing services provider 160 also operates content fork and merge services 131, which may generally perform various tasks related to forking and merging of content item sessions. As will be described in detail below, these tasks may include operations such as receiving and responding to fork and merge requests, manipulating content item data to generate forked and merged sessions, interacting with and compensating content item session administrators, identifying and resolving conflicts for session mergers, and many others.)
It would have been obvious to one of ordinary skill in the art prior to the effective filing date of the application to modify the teachings of Guarnieri in view of Elkington to include data assigning an admin to the content session for merging content as is taught by Surjo-Subagio
The motivation for doing so is to improve admin task resolution [Col 1]
Regarding claim 3, Guarnieri in view of Elkington in view of Surjo-Subagio in view of Zheng teach the apparatus of claim 2, and is disclosed above, Guarnieri does not explicitly teach but Elkington teaches wherein the at least one memory and the program code are configured to, with the at least one processor, further cause the apparatus to:
receive a confirmation signal associated with the suggested document merge resolution recommendation, (Mapping above 0044; Alternatively, the user can be presented with multiple resolved records, and prompted to select one. In yet another embodiment, the user can be presented with scores for candidate values of individual fields, and prompted to select values for each field separately; a resolved record is then generated using the user selections. Further details of these methods are provided below. When the confidence score does not exceed the threshold value, the user can be prompted to manually merge the fields and/or to select among a plurality of generated records representing different solutions. [0145] In at least one embodiment, the user selects values for each field separately. For example, for each field, the user is presented with a number of candidate values, corresponding to the different values seen in the duplicate records. A score is displayed for each candidate value, based on a score of a record feature that uses that candidate value. The user is prompted to select among the candidate values. Once the user has made such a selection for each field in which different candidate values are available, a resolved record is generated using the user selections. [0146] Alternatively, the user can be presented with a plurality of generated records, along with scores based on feature vectors for those records, and prompted to select among the generated records. [0147] In at least one embodiment, the user can be presented with multiple options when several solutions have similar scores. In at least one embodiment, the user can be prompted to provide reasons for the choice; as described above, such reasons can be useful for further training of ML model(s) 112.)
wherein the confirmation signal is generated by the client computing device associated with the dominant user, and wherein the confirmation signal comprises an acceptance of the suggested document merge resolution recommendation or a rejection of the suggested document merge resolution recommendation creating an updated collaborative document; (Mapping above + 0044; [0044] Alternatively, the user can be presented with multiple resolved records, and prompted to select one. In yet another embodiment, the user can be presented with scores for candidate values of individual fields, and prompted to select values for each field separately; a resolved record is then generated using the user selections. Further details of these methods are provided below. See Figs 4-5 and [0074] In this case, the merge component 614 can generate a request for a manual intervention from a user or administrator to resolve the conflict (e.g., by asking the user to select one of the two conflicting versions of the added node 1002 for inclusion in the merged model description 1302); 0069; Once the differential component 612 has generated differential data 1102 for each of the locally modified versions 702 a and 702 b, the system's merge component 614 generates a merged model description based on analysis of the sets of differential data 1102 a, 1102 b. FIG. 13 is a diagram illustrating integration of the two sets of edits into a merged model description 1302 based on analysis of the two sets of differential data 1102 a and 1102 b. The merged model description 1302 is an integration of the two edited model descriptions 902 a and 902 b and represents the hierarchical information model for an updated project 702 that integrates the project edits submitted by the multiple users. )
and in response to receiving a confirmation signal comprising the acceptance of the suggested document merge resolution recommendation:
update the collaborative document to incorporate the suggested document merge resolution recommendation; (Mapping above + 0143-0144; user selected merging of fields; 0031; records in storage)
store the updated collaborative document (data record) in a document collaboration data repository (data record storage) associated with the document collaboration platform (0169-0173; system) ; (Mapping above + 0143-0144; user selected merging of fields; 0031; records in storage)
and retrain the document merge model based on the confirmation signal comprising the acceptance of the suggested document merge resolution recommendation. (0079; In at least one embodiment, training is ongoing, by continuing to provide feedback to make further adjustments to ML model 112 based on selections made by the user or based on other input. [0125] In another embodiment, some number of solutions (such as the top 5 solutions) may be output 206, so as to allow a user to inspect and analyze the results, particularly when several solutions have similar confidence scores. In at least one embodiment, the user's selections are fed back into ML model 112 for further adjustment and training of ML model 112. [0110] [0110] When users manually merge data, it may be useful to collect information as to the reason or justification for the merge. Such data can be used for metadata to help ML model 112 learn more effectively and make better decisions. In at least one embodiment, the set of provided reasons, or some subset thereof, can be used as one of the input features for the ML algorithm described above. )
It would have been obvious to one of ordinary skill in the art prior to the effective filing date of the application to modify the teachings of Guarnieri to include receiving a user selection based on suggested solutions, merging, storing, and updating an ML model based on user selection as is taught by Elkington
The motivation for doing so is to be able to resolving conflicts for merging [0005-0009]
Regarding claim 4, Guarnieri in view of Elkington in view of Surjo-Subagio in view of Zheng teach the apparatus of claim 1, and is disclosed above, Guarnieri further teaches wherein the at least one memory and the program code are configured to, with the at least one processor, further cause the apparatus to:
generate the one or more document merge resolutions (document merge conflict resolution) associated with a second user profile passage (Fig 4; User 1 edits and user 2 edits (equivalent to a profile) associated (The conflict resolution is associated with the edits of User 2) with a second user profile, ( Mapping claim 1; 0077; the merge component 614 can be configured to automatically resolve the conflict by selecting from among the conflicting versions of a node 1002 based on a defined selection criterion)
wherein the second user profile passage is a first portion of the two or more portions of textual content, (Fig 4; the user 2 edits is a first portion of the two or more portions of textual content)
wherein the one or more document merge resolutions resolution (merge conflict resolution) associated with the second user profile passage (user 2 edits) is generated based on a first document conflict (document merge conflict) of the one or more document conflicts, (Fig 4; document merge conflicts based on user 1 edits and user 2 edits; (both locally edited projects model description and base project model description) (Mapping above; 0062; After each user has applied a set of edits to their respective local versions of the system project 702 and submitted the resulting edited versions 702a, 702b to be merged with the base system project 702, the merge process can be initiated. 0063; FIG. 9 is a diagram illustrating the conversion of the local project versions 702a, 702b and the base project 702 into their corresponding model descriptions 902.; 0066-0067; In particular, rather than performing a comparison of corresponding lines of simple text without knowledge of the meaning of project elements, as in the example described above in connection with FIGS. 4 and 5, IDE system 602 will perform a comparison of the nodes of each project version's information model to identify which project elements have been added, removed, or modified. [0076] Similarly, if one of the two sets of differential data 1102a or 1102b indicate that the node 1002 has been changed while the other set of differential data indicates that the node 1002 has been removed—indicating that one user has deleted a project element that the other user has edited but left in place—the merge component 614 indicates that the edits are in conflict; 0066-0067; Next, the model descriptions 902a, 902b generated for the locally edited project versions 702a, 702b are each compared to the model description 902 generated for the base project 702. FIG. 11 is a diagram illustrating comparison of the model descriptions to yield differential data. The differential component 612 identifies the changes performed on each of the locally edited project versions 702a, 702b relative to the base project 702 by comparing each model description 902a, 902b representing the locally edited project versions 702a, 702b with the base model description 902 representing the base project 702. Based on these comparisons, the differential component 612 generates differential data 1102 identifying differences between each locally edited version 702a, 702b and the base project 702. In the example depicted in FIG. 11, the comparison between model description 902a (representing the first locally edited version 702a) and model description 902 (representing the base project 702) yields differential data 1102a, and the comparison between model description 902b (representing the second locally edited version 702b) and model description 902 (representing the base project 702) yields differential data 1102a; (See Fig 4 showing conflicts because user 1 and user 2 edited the same portion of the shared document; 0047; When merging the two edited versions 210 a and 210 b, the development system 202 detects a merge conflict since some lines of text—e.g., lines 4-8—were changed by both User 1 and User 2.))
and wherein the first document conflict (mapping above) is determined based on the second user profile passage (mapping above) and associated (everything in this process is associated, the users are associated because they are editing the same document, the edits, conflict, and resolution are associated because they are directed at the same files for editing) with a first user profile passage (Fig 4 User 1 edits) associated with a first user profile identifier (Fig 4 User 1), (Fig 4; 0047; FIG. 4 illustrates text representations of the two locally edited versions 210 a and 210 b of the system project 210, with shaded regions 302 a and 302 b indicating the lines of text that were added to the original version of the project 210 by each user (MotorType in version 210 a and PumpType in version 210 b). When merging the two edited versions 210 a and 210 b, the development system 202 detects a merge conflict since some lines of text—e.g., lines 4-8—were changed by both User 1 and User 2.
and wherein the first user profile passage is a second portion of the two or more portions of textual content. (Fig 4; the user 1 edits are a second portion of the two or more portions of textual content)
Regarding claim 6, Guarnieri in view of Elkington in view of Surjo-Subagio teach the apparatus of claim 1, and is disclosed above, Guarnieri in view of Elkington in view of Surjo-Subagio do not explicitly wherein the at least one memory and the program code are configured to, with the at least one processor, further cause the apparatus to: generate sequenced textual content based on the one or more user input step events, wherein the sequenced textual content can be associated with the two or more user profiles; and render, on one or more interactive user interfaces associated with the collaborative document, the sequenced textual content.
In an analogous art Zheng teaches generate sequenced textual content based on the one or more user input step events, (0039-0040; Fig 3A-3B; See Fig 3A showing team 1 users editing a contract document, with edits 380 and shows the sequenced contract sections and sequenced edits)
wherein the sequenced textual content can be associated with the two or more user profiles;(Users of team 1 and users of team 2 each with an account; 0019; In some implementations, users can interact with the online document system 130 through a user account with the online document system 130 and one or more user devices 110 accessible to that user. In the example of FIG. 1, the set of user devices 110 are represented by one or more user devices 110A associated with the first entity 115A and one or more user devices 110B associated with the second entity 115B.)
and render, on one or more interactive user interfaces (See Figs 3A-3B showing the interactive interface and two different teams with edits such as edit 380 found in both) associated with the collaborative document,(shared contract document) the sequenced textual content. (Mapping above showing sequenced contract sections)
It would have been obvious to one of ordinary skill in the art prior to the effective filing date of the application to modify the teachings of Guarnieri in view of Elkington in view of Surjo-Subagio to include simultaneously performing text editing in a collaborative session by users associated with profiles as is taught by Zheng
The motivation for doing so is to facilitate synchronous multi-party negotiations of document contents [0001-0003]
Regarding claim 7, Guarnieri in view of Elkington in view of Surjo-Subagio in view of Zheng teach the apparatus of claim 1, and is disclosed above, Guarnieri further teaches wherein the one or more document conflicts comprise at least one of a duplicate textual content conflict, (examiner notes this is a one or more limitation) a duplicate subject matter conflict,(Changes to the same content equivalent to duplicate subject matter conflict 0075; For example, if the two modified nodes are identical—indicating that both users applied the same edit to the same project element—the combined status is given as Changed and the node 1002 is taken from either of the two model descriptions 902a or 902b for inclusion in the merged model description. Alternatively, if the changes to the node 1002 are not identical, the edits are indicated as being in conflict) a document item sequencing conflict, (examiner notes this is a one or more limitation) or a document markup conflict. (examiner notes this is a one or more limitation)
Regarding claim 8, Guarnieri in view of Elkington in view of Surjo-Subagio in view of Zheng teach the apparatus of claim 1, and is disclosed above, Guarnieri further teaches wherein the one or more document merge resolutions comprise at least one of a textual content deletion resolution, (examiner notes this is a one or more limitation) a textual content merging resolution, ( 0074; In some scenarios, it may be determined that both versions of the added node 1002 should be taken from their respective model descriptions 902a and 902b for inclusion in the merged model description 1302; e.g., if the added node 1002 is outside a type definition. In other scenarios, it may be found that the two versions of the added node conflict with each other (yielding a combined status of Conflict). In this case, the merge component 614 can generate a request for a manual intervention from a user or administrator to resolve the conflict (e.g., by asking the user to select one of the two conflicting versions of the added node 1002 for inclusion in the merged model description 1302). 0048; The system can automatically resolve conflicts and model inconsistencies without the need for manual intervention to ensure the consistency of the project's typing system.)a document item resequencing resolution, (examiner notes this is a one or more limitation) or a textual content markup resolution (examiner notes this is a one or more limitation)
Regarding claim 9, Guarnieri in view of Elkington in view of Surjo-Subagio in view of Zheng teach the apparatus of claim 1, and is disclosed above, Guarnieri does not explicitly teach but Elkington wherein the document merge model can be trained based in part on one or more collaborative documents (records) stored in a data repository (0031; records in storage) of a particular document collaboration platform(0169-0173; system), (0013; training data can be generated from any or all of: historical data; user labeling; a rule-based method; [0079] In at least one embodiment, classifiers of ML model 112 are initially trained based on training data from historical records, to learn how to efficiently resolve/merge fields. Training data can be collected and generated from historical data, in which unlabeled data can be labeled, based for example on user input and/or rule-based labeling. In at least one embodiment, training is ongoing, by continuing to provide feedback to make further adjustments to ML model 112 based on selections made by the user or based on other input. [0081] The method begins 300. In steps 301, 302, 303, and 304, respectively, training data is generated from any one or more of: [0082] historical records; [0083] labeling of resolved records; [0084] user labeling of unresolved records; and/or [0085] rule-based labeling of unresolved records.) and wherein the one or more collaborative documents comprise one or more user profile passages (user explanation) associated with one or more respective user profiles (user information) associated with the particular document collaboration platform. ([0081] The method begins 300. In steps 301, 302, 303, and 304, respectively, training data is generated from any one or more of: [0082] historical records; [0083] labeling of resolved records; [0084] user labeling of unresolved records; and/or [0085] rule-based labeling of unresolved records.; [0147] In at least one embodiment, the user can be presented with multiple options when several solutions have similar scores. In at least one embodiment, the user can be prompted to provide reasons for the choice; as described above, such reasons can be useful for further training of ML model(s) 112.)
It would have been obvious to one of ordinary skill in the art prior to the effective filing date of the application to modify the teachings of Guarnieri to include training an ML model for record merging as is taught by Elkington
The motivation for doing so is to be able to resolving conflicts for merging [0005-0009]
Regarding claim 10, the claim inherits the same rejection as claim 1 for reciting similar limitations in the form of a method claim (0004; method)
Regarding claim 11, the claim inherits the same rejection as claim 2 for reciting similar limitations in the form of a method claim (0004; method)
Regarding claim 12, the claim inherits the same rejection as claim 3 for reciting similar limitations in the form of a method claim (0004; method)
Regarding claim 13, the claim inherits the same rejection as claim 4 for reciting similar limitations in the form of a method claim (0004; method)
Regarding claim 16, the claim inherits the same rejection as claim 7 for reciting similar limitations in the form of a method claim (0004; method)
Regarding claim 17, the claim inherits the same rejection as claim 8 for reciting similar limitations in the form of a method claim (0004; method)
Regarding claim 18, the claim inherits the same rejection as claim 1 for reciting similar limitations in the form of a non-transitory computer readable storage medium (0005; non-transitory computer readable medium)
Regarding claim 19, the claim inherits the same rejection as claim 2 for reciting similar limitations in the form of a non-transitory computer readable storage medium (0005; non-transitory computer readable medium)
Regarding claim 20, the claim inherits the same rejection as claim 3 for reciting similar limitations in the form of a non-transitory computer readable storage medium (0005; non-transitory computer readable medium)
Regarding claim 21, Guarnieri in view of Elkington in view of Surjo-Subagio in view of Zheng teach the apparatus of claim 1, and is disclosed above, Guarnieri does not disclose but Elkington teaches wherein the document merge model comprises a machine learning model (0011; machine learning model for merging data) configured based on an artificial neural network (ANN), (0126; In at least one embodiment, ML model 112 builds a sequence of classifiers for each field, and then combines predictions of each classifier to make final decisions as to which solution(s) to select. Any suitable type of classifier can be used. One example of a base classifier that can be used in connection with the present invention is a feedforward artificial neural network such as a multilayer perceptron (MLP)) a recurrent neural network (RNN), a convolutional neural network (CNN), or a natural language processing (NLP) model.
It would have been obvious to one of ordinary skill in the art prior to the effective filing date of the application to modify the teachings of Guarnieri to include training an ML model for record merging as is taught by Elkington
The motivation for doing so is to be able to resolving conflicts for merging [0005-0009]
Regarding claim 22, the claim inherits the same rejection as claim 21 for reciting similar limitations in the form of a method claim (0004; method)
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to ABDERRAHMEN H CHOUAT whose telephone number is (571)431-0695. The examiner can normally be reached on Mon-Fri from 9AM to 5PM PST.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Christopher Parry, can be reached at telephone number 571-272-8328. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of an application may be obtained from Patent Center. Status information for published applications may be obtained from Patent Center. Status information for unpublished applications is available through Patent Center to authorized users only. Should you have questions about access to the USPTO patent electronic filing system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free).
Examiner interviews are available via a variety of formats. See MPEP § 713.01. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) Form at https://www.uspto.gov/InterviewPractice.
Abderrahmen Chouat
Examiner
Art Unit 2451
/Chris Parry/Supervisory Patent Examiner, Art Unit 2451