IP Library Granted Patent US 9,817,887
Granted Patent B2
US 9,817,887 · App. 14/572,098 · Granted Nov 14, 2017

Universal text representation with import/export support for various document formats

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 9,817,887
App. No.
14/572,098
Granted
Nov 14, 2017
Kind
B2
Abstract

Disclosed are systems, computer-readable mediums, and methods for representing text. A document that includes text is received in a first format. A universal text representation of the document is created using a first filter associated with the first format. The universal text representation presents the text and supported non-text data and preserves unsupported data with binding to supported data. The universal text representation is modified based upon input from a user using a program in a what you see is what you get (WYSIWYG) mode. The user can see a location of where the supported data and unsupported data are kept. The modified universal text representation is exported using a second filter associated with a second format. The supported and unsupported non-text data are exported.

Claims (65)

1. A method comprising:

receiving a document in a first format, wherein the document comprises a text supported non-text data, and unsupported non-text data;

creating, using a first filter associated with the first format, a universal text representation of the document, wherein the universal text representation presents the text and the supported non-text data, wherein the universal text representation preserves the unsupported non-text data by storing an association of the unsupported non-text data with supported data from the document, wherein the universal text representation comprises a text tree, wherein the text tree comprises nodes that comprise one or more words and locations of the words, and wherein one or more of the nodes comprise attributes associated with formatting of the words;

modifying the universal text representation based upon input from a user of a program in a what you see is what you get (WYSIWYG) mode, wherein a location of where the supported data and the unsupported non-text data are kept is presented to the user, wherein modifying the universal text representation comprises translating the text presented in the universal text representation from a first language to a second language, wherein the first language is different than the second language, and wherein translating the text comprises:

receiving a translation table representing the text in the second language, wherein the translation table comprises a correspondence between the words in the first language and translated words in the second language;

creating a copy of the text tree, wherein the copy of the text tree preserves the formatting of the words; and

for each node among the nodes in the copy of the text tree, replacing the words in the first language with the translated words based upon the translation table; and

exporting, by at least one processor, the modified universal text representation using a second filter associated with a second format, wherein the supported data and the unsupported non-text data are exported.

2. The method of claim 1 , further comprising:

determining that text ranges of two of the attributes of a node among the nodes are next to one another;

determining that the two attributes can be combined; and

combining the two attributes into a single attribute that covers the text ranges of the two attributes.

3. The method of claim 1 , wherein the first format is the same as the second format, and wherein the first filter is the same as the second filter.

4. The method of claim 1 , wherein the first format is different from the second format, and wherein the first filter is different from the second filter.

5. The method of claim 4 , wherein the second filter exports all of the supported data.

6. The method of claim 1 , wherein the association of the unsupported non-text data with the supported data comprises a description of a desired behavior of the unsupported non-text data.

7. The method of claim 1 , further comprising:

receiving edits to translations in the translation table; and

updating the copy of the text tree based upon the edits.

8. The method of claim 1 , further comprising creating parallel fragments between the text tree and the copy of the text tree representing the text in the text tree that corresponds with the text in the copy of the text tree.

9. The method of claim 8 , further comprising:

displaying the text in the first language of the text tree; and

displaying simultaneously the text in the second language of the copy of the text tree.

10. A system comprising:

at least one memory that stores instructions; and

one or more processors configured to execute the instructions to:

receive a document in a first format, wherein the document comprises a text, supported non-text data, and unsupported non-text data;

create, using a first filter associated with the first format, a universal text representation of the document, wherein the universal text representation presents the text and the supported non-text data, wherein the universal text representation preserves the unsupported non-text data by storage of an association of the unsupported non-text data with supported data from the document, wherein the universal text representation comprises a text tree, wherein the text tree comprises nodes that comprise one or more words and locations of the words, and wherein one or more of the nodes comprise attributes associated with formatting of the words;

modify the universal text representation based upon input from a user of a program in a what you see is what you get (WYSIWYG) mode, wherein a location of where the supported data and the unsupported non-text data are kept is presented to the user, wherein, to modify the universal text representation, the processors are further configured to execute the instructions to translate the text presented in the universal text representation from a first language to a second language, wherein the first language is different than the second language, and wherein, to translate the text, the processors are further configured to execute the instructions to:

receive a translation table representing the text in the second language, wherein the translation table comprises a correspondence between the words in the first language and translated words in the second language;

create a copy of the text tree, wherein the copy of the text tree preserves the formatting of the words; and

for each node among the nodes in the copy of the text tree, replace the words in the first language with the translated words based upon the translation table; and

export the modified universal text representation using a second filter associated with a second format, wherein the supported data and the unsupported non-text data are exported.

11. The system of claim 10 , wherein the processors are further configured to execute the instructions to:

determine that text ranges of two of the attributes of a node among the nodes are next to one another;

determine that the two attributes can be combined; and

combine the two attributes into a single attribute that covers the text ranges of the two attributes.

12. The system of claim 10 , wherein the association of the unsupported non-text data with the supported data comprises a description of a desired behavior of the unsupported non-text data.

13. The system of claim 10 , wherein the processors are further to execute the instructions to:

receive edits to translations in the translation table; and

update the copy of the text tree based upon the edits.

14. The system of claim 10 , wherein the processors are further to execute the instructions to:

create parallel fragments between the text tree and the copy of the text tree representing the text in the text tree that corresponds with the text in the copy of the text tree;

display the text in the first language of the text tree; and

display simultaneously the text in the second language of the copy of the text tree.

15. A non-transitory computer-readable medium having instructions stored thereon, that when executed by at least one processor, cause the processor to:

receive a document in a first format, wherein the document comprises a text, supported non-text data, and unsupported non-text data;

create, using a first filter associated with the first format, a universal text representation of the document, wherein the universal text representation presents the text and the supported non-text data, wherein the universal text representation preserves the unsupported non-text data by storage of an association of the unsupported non-text data with supported data from the document, wherein the universal text representation comprises a text tree, wherein the text tree comprises nodes that comprise one or more words and locations of the words, and wherein one or more of the nodes comprise attributes associated with formatting of the words;

modify the universal text representation based upon input from a user of a program in a what you see is what you get (WYSIWYG) mode, wherein a location of where the supported data and the unsupported non-text data are kept is presented to the user, wherein, to modify the universal text representation, the instructions are further to cause the processor to translate the text presented in the universal text representation from a first language to a second language, wherein the first language is different than the second language, and wherein, to translate the text, the instructions are further to cause the processor to:

receive a translation table representing the text in the second language, wherein the translation table comprises a correspondence between the words in the first language and translated words in the second language;

create a copy of the text tree, wherein the copy of the text tree preserves the formatting of the words; and

for each node among the nodes in the copy of the text tree, replace the words in the first language with the translated words based upon the translation table; and

export, by the processor, the modified universal text representation using a second filter associated with a second format, wherein the supported data and the unsupported non-text data are exported.

16. The non-transitory computer-readable medium of claim 15 , wherein the instructions are further to cause the processor to:

determine that text ranges of two of the attributes of a node among the nodes are next to one another;

determine that the two attributes can be combined; and

combine the two attributes into a single attribute that covers the text ranges of the two attributes.

17. The non-transitory computer-readable medium of claim 15 , wherein the association of the unsupported non-text data with the supported data comprises a description of a desired behavior of the unsupported non-text data.

18. The non-transitory computer-readable medium of claim 15 , wherein the instructions are further to cause the processor to:

receive edits to translations in the translation table; and

update the copy of the text tree based upon the edits.

19. The non-transitory computer-readable medium of claim 15 , wherein the instructions are further to cause the processor to:

create parallel fragments between the text tree and the copy of the text tree representing the text in the text tree that corresponds with the text in the copy of the text tree;

display the text in the first language of the text tree; and

display simultaneously the text in the second language of the copy of the text tree.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR DOC. DATE PREVIOUSLY RECORDED AT REEL: 042706 FRAME: 0279. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Aug 25, 2017
From: ABBYY INFOPOISK LLC
To: ABBYY PRODUCTION LLC
Reel/Frame 043676/0232 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2017
From: ABBYY INFOPOISK LLC
To: ABBYY PRODUCTION LLC
Reel/Frame 042706/0279 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 14, 2015
From: GAYDAENKO, SERGEY; KRIVENKO, ANTON
To: ABBYY INFOPOISK LLC
Reel/Frame 034715/0717 →