Patent Document ID: 7853869
Application ID: 11302639

Base Claim:
1. A computer-implemented method of constructing an object model reflective of structure of a document, from an unstructured document, comprising: scanning an unstructured markup language representation of the document for one or more markup language glyphs to generate a plurality of text runs, where the text runs comprise one or more semantically structured, selectable representations of the markup language glyphs; creating one or more semantic block containers comprising text runs that correspond to a same semantic block by determining which text runs correspond to the same semantic block; determining a logical structured order of the text runs within the respective one or more semantic blocks; determining an order of the respective one or more semantic blocks in the document; and saving the semantic blocks comprising the order of the text runs and the order of the one or more semantic blocks in the document as the object model to generate a logically structured document comprising semantically structured, selectable representations of the markup language.

---

Claim 10:
10. The method of claim 1 , determining the order of the semantic blocks in the document comprising: if a first semantic block is not adjacent to the left of a second semantic block or does not overlap vertically with the second semantic block, determining whether the first text run of the first semantic block is consecutive with the last text run of the second semantic block; if the first text run of the first semantic block is consecutive with the last text run of the second semantic block, ordering the first semantic block relative to the second semantic block based on an order of the markup language representation; if the first text run of the first semantic block is not consecutive with the last text run of the second semantic block, determining whether a vertical position of the first block is a same vertical position of the second block; if the vertical position of the first semantic block is the same as the vertical position of the second block, placing the first semantic block before the second semantic block in the document where the first semantic block and the second semantic block comprise left-to-right languages and placing the first semantic block after the second semantic block in the document where the first semantic block and the second semantic block comprise right-to-left languages; and if the vertical position of the first semantic block is not the same as the vertical position of the second block, placing the first semantic block before the second semantic block in the document where the first semantic block is above the second semantic block in the document as determined from the markup language representation.