IP Library › Granted Patent US 11,106,867
Granted Patent B2
US 11,106,867 · App. 15/677,457 · Granted Aug 31, 2021

Techniques for document marker tracking

Inventors: David Diamond (Amherst, NH); Michael Gianatassio (Hooksett, NH); John Janosik (Nashua, NH); Michael Rubino (Nashua, NH)
Assignee: Oracle International Corporation
G06F40/197G06F40/117G06F40/143G06F40/221G06F40/284
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,106,867
App. No.
15/677,457
Granted
Aug 31, 2021
Kind
B2
Abstract

The present disclosure describes techniques for adding a marker to a second document, the marker corresponding to a marker in a first document. The process may include identifying a token in a first document associated with a marker based upon a location of the marker in the first document. The process may further include identifying a particular token group that the token belongs to. The particular token group may be identified from a set of token groups for the first document. A particular token group from a set of token groups for the second document is then identified for the particular token group in the first document. A location for placing the marker in the second document is identified based upon the location of the particular token group in the second document. The marker is then placed in the second document at the identified location.

Claims (82)

1. A method comprising:

receiving information identifying a first document and a second document, the first document including a first marker located at a first location in the first document, wherein the second document is a modified version of the first document;

identifying a first token list comprising a plurality of tokens corresponding to words within the first document;

identifying a second token list comprising a plurality of tokens corresponding to words within the second document which is the modified version of the first document;

generating a first set of one or more token groups for the first document based upon the first token list;

generating a second set of one or more token groups for the second document based upon the second token list;

identifying differences between the first token list and the second token list;

generating, based upon the differences between the first token list and the second token list, a group mapping between the first set of one or more token groups and the second set of one or more token groups;

identifying, based upon the first location of the first marker in the first document, a first token from the first token list;

identifying, from the first set of one or more token groups generated for the first document, a first token group that includes the first token;

identifying, for the first token group and based on the group mapping, a second token group from the second set of one or more token groups;

determining a location of the second token group within the second document; and

adding a second marker to the second document at a location in the second document based upon the location of the second token group within the second document.

2. The method of claim 1 , wherein the first marker includes a comment, a highlight, an HTML tag, or other item associated with one or more tokens within the first document.

3. The method of claim 1 , wherein identifying the second token group comprises:

determining, based upon the group mapping, that the second token group for the second document corresponds to the first token group for the first document, the group mapping identifying mappings between token groups in the first set of token groups and token groups in the second set of token groups.

4. The method of claim 1 , wherein identifying the second token group comprises:

determining, based upon the group mapping, that the first token group does not have a corresponding token group in the second set of token groups, the group mapping identifying mappings between token groups in the first set of token groups and token groups in the second set of token groups;

identifying a third token group from the first set of token groups; and

determining, based upon the group mapping, that the second token group in the second set of token groups corresponds to the third token group.

5. The method of claim 4 , wherein identifying the third token group comprises:

identifying another token group in the first set of token groups that is located adjacent to the location of the first token group in the first document; and

determining, based upon the group mapping, whether the another token group has a corresponding token group in the second set of token groups.

6. The method of claim 5 wherein identifying the third token group further comprises:

determining, based upon the group mapping, that the another token group does not have a corresponding token group in the second set of token groups;

identifying yet another token group in the first set of token groups that is located adjacent to the location of the first token group in the first document; and

determining, based upon the group mapping, whether the yet another token group has a corresponding token group in the second set of token groups.

7. The method of claim 1 , wherein the first document is formatted according to a markup language, the method further comprising:

identifying a set of opening markup tags and a set of corresponding closing markup tags in the first document; and

dividing the first document into sets of token groups based on the set of opening markup tags and the set of corresponding closing markup tags, wherein contents of the first document between an opening markup tag from the set of opening markup tags and a corresponding closing markup tag from the set of corresponding closing markup tags from a token group within the first set of token groups.

8. A non-transitory computer-readable storage medium storing a plurality of instructions executable by one or more processors, the plurality of instructions when executed by the one or more processors cause the one or more processors to:

receive information identifying a first document and a second document, the first document including a first marker located at a first location in the first document, wherein the second document is a modified version of the first document;

identify a first token list comprising a plurality of tokens corresponding to words within the first document;

identify a second token list comprising a plurality of tokens corresponding to words within the second document which is the modified version of the first document;

generate a first set of one or more token groups for the first document based upon the first token list;

generate a second set of one or more token groups for the second document based upon the second token list;

identify differences between the first token list and the second token list;

generate, based upon the differences between the first token list and the second token list, a group mapping between the first set of one or more token groups and the second set of one or more token groups;

identify, based upon the first location of the first marker in the first document, a first token from the first token list;

identify, from the first set of one or more token groups generated for the first document, a first token group that includes the first token;

identify, for the first token group and based on the group mapping, a second token group from the second set of one or more token groups;

determine a location of the second token group within the second document; and

add a second marker to the second document at a location in the second document based upon the location of the second token group within the second document.

9. The non-transitory computer-readable storage medium of claim 8 , wherein the plurality of instructions when executed by the one or more processors further cause the one or more processors to:

determine, based upon the group mapping, that the second token group for the second document corresponds to the first token group for the first document, the group mapping identifying mappings between token groups in the first set of token groups and token groups in the second set of token groups.

10. The non-transitory computer-readable storage medium of claim 8 , wherein the plurality of instructions when executed by the one or more processor further cause the one or more processors to:

determine, based upon the group mapping, that the first token group does not have a corresponding token group in the second set of token groups, the group mapping identifying mappings between token groups in the first set of token groups and token groups in the second set of token groups;

identify a third token group from the first set of token groups; and

determine, based upon the group mapping, that the second token group in the second set of token groups corresponds to the third token group.

11. The non-transitory computer-readable storage medium of claim 10 , wherein identifying the third token group comprises:

identifying another token group in the first set of token groups that is located adjacent to the location of the first token group in the first document; and

determining, based upon the group mapping, whether the another token group has a corresponding token group in the second set of token groups.

12. The non-transitory computer-readable storage medium of claim 8 , wherein the first document is formatted according to a markup language, and wherein the plurality of instructions when executed by the one or more processor further cause the one or more processors to:

identify a set of opening markup tags and a set of corresponding closing markup tags in contents of the first document; and

divide the first document into sets of token groups based on the set of opening markup tags and the set of corresponding closing markup tags, wherein contents of the first document between an opening markup tag from the set of opening markup tags and a corresponding closing markup tag from the set of corresponding closing markup tags from a token group within the first set of token groups.

13. A system comprising:

one or more processors; and

a non-transitory computer-readable medium including instructions that, when executed by the one or more processors, cause the one or more processors to:

receive information identifying a first document and a second document, the first document including a first marker located at a first location in the first document, wherein the second document is a modified version of the first document;

identify a first token list comprising a plurality of tokens corresponding to words within the first document;

identify a second token list comprising a plurality of tokens corresponding to words within the second document which is the modified version of the first document;

generate a first set of one or more token groups for the first document based upon the first token list;

generate a second set of one or more token groups for the second document based upon the second token list;

identify differences between the first token list and the second token list;

generate, based upon the differences between the first token list and the second token list, a group mapping between the first set of one or more token groups and the second set of one or more token groups;

identify, based upon the first location of the first marker in the first document, a first token from the first token list;

identify, from the first set of one or more token groups generated for the first document, a first token group that includes the first token;

identify, for the first token group and based on the group mapping, a second token group from the second set of one or more token groups;

determine a location of the second token group within the second document; and

add a second marker to the second document at a location in the second document based upon the location of the second token group within the second document.

14. The system of claim 13 , wherein the instructions further cause the one or more processors to:

determine, based upon the group mapping, that the second token group for the second document corresponds to the first token group for the first document, the group mapping identifying mappings between token groups in the first set of token groups and token groups in the second set of token groups.

15. The system of claim 13 , wherein the instructions further cause the one or more processors to:

determine, based upon the group mapping, that the first token group does not have a corresponding token group in the second set of token groups, the group mapping identifying mappings between token groups in the first set of token groups and token groups in the second set of token groups;

identify a third token group from the first set of token groups; and

determine, based upon the group mapping, that the second token group in the second set of token groups corresponds to the third token group.

16. The system of claim 15 , wherein identifying the third token group comprises:

identifying another token group in the first set of token groups that is located adjacent to the location of the first token group in the first document; and

determining, based upon the group mapping, whether the another token group has a corresponding token group in the second set of token groups.

17. The system of claim 13 , wherein the first document is formatted according to a markup language, and wherein the instructions further cause the one or more processors to:

identify a set of opening markup tags and a set of corresponding closing markup tags in the first document; and

divide the first document into sets of token groups based on the set of opening markup tags and the set of corresponding closing markup tags, wherein contents of the first document between an opening markup tag from the set of opening markup tags and a corresponding closing markup tag from the set of corresponding closing markup tags from a token group within the first set of token groups.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2017
From: DIAMOND, DAVID; GIANATASSIO, MICHAEL; JANOSIK, JOHN; RUBINO, MICHAEL
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 043300/0949 →
Continuity (1)
Related Publication 20190057068A1 · Feb 21, 2019