1. A computer-implemented method of annotating an electronic document comprising: receiving annotation information corresponding to an annotation of a first electronic document file at an annotation location, wherein the first electronic document file is a text document; generating annotation metadata associated with the annotation information by creating topographic patterns from text of the first electronic document file and the annotation information, wherein the topographic patterns include one or more document patterns, one or more anchor patterns, one or more neighborhood patterns, or combinations thereof; storing the annotation information and associated annotation metadata in an annotation file that is separate from the first electronic document file; generating topographic patterns from text of a target electronic document file, wherein: the topographic patterns include document patterns, anchor patterns, neighborhood patterns, or combinations thereof, and the target electronic document file is a modified version of the first electronic document file such that an underlying text of the target electronic document file is different from an underlying text of the first electronic document file; the document patterns include a document name, a document length, a document date, document shingles, or combinations thereof; the anchor patterns of the first electronic document file include a word or a text associated with the annotation located in the first electronic document file, a first character of the word or the text, a last character of the word or the text, a word or text length, or combinations thereof; the anchor patterns of the target electronic document file include a plurality of words associated with the target electronic document file, wherein characteristics of each word include a position of the word within the target electronic document file, a length of the word, a first character of the word, a first character of the word, or combinations thereof; the neighborhood patterns of the first electronic document file comprise a plurality of document shingles associated with the annotation location in the first electronic document file; and the neighborhood patterns of the target electronic document file comprise a plurality of document shingles associated with one or more potential anchor locations; comparing the topographic patterns of the first electronic document file to the topographic patterns of the target electronic document file to determine an anchor location within the target electronic document file; and anchoring the annotation information, by a computer device, to the target electronic document file at the anchor location within the text of the target electronic document file.