{'fraction_non_alphanumeric': 0.018947368421052633, 'fraction_numerical': 0.0, 'mean_word_length': 5.366071428571429, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Robustly Anchoring Annotations Using Keywords

As the number of systems which offer annotations on digital documents increases, robust anchoring of annotations is a key challenge. It is especially important if the annotator lacks write-access to the document being annotated. For example, if someone makes an annotation on a web page today and the web page changes tomorrow, what happens to the annotation? One approach is simply to “orphan” the annotation (separate it from its context), while another is to attempt to re-position the annotation in the modified document. This paper introduces Keyword Anchoring, a method for robustly anchoring annotations in digital documents so they can be appropriately re-positioned in a modified version of the document. Unlike existing robust anchoring algorithms, the design of Keyword Anchoring is motivated by an evaluation of user expectations. This evaluation revealed that unique words in the vicinity of an annotation are distinguishing anchor characteristics, which can be tracked among successive versions of a document. By focusing on document content rather than on the underlying document structure, Keyword Anchoring requires no cooperation from the document, and can be used with a variety of digital document formats. We present our algorithm, describe several user studies we conducted to gauge user expectations, and discuss implications of our work for applications.