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 11:
11. The method of claim 1 , determining the order of the semantic blocks in the document comprising: determining whether a first semantic block is above a second semantic block in the document and overlaps horizontally with the second semantic block as determined from the markup language representation; if the first semantic block is above the second semantic block and overlaps horizontally with the second semantic block, placing the first semantic block before the second semantic block in the document; if the first semantic block is either not above the other semantic block or does not overlap horizontally with the second semantic block, determining whether the first block is adjacent to the left of the second semantic block in the document and overlaps vertically with the second semantic block; and if the first semantic block is adjacent to the left of the second semantic block and overlaps vertically with the second semantic 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 both the first semantic block and the second semantic block comprise right-to-left languages.