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.