{'fraction_non_alphanumeric': 0.014799154334038054, 'fraction_numerical': 0.0, 'mean_word_length': 4.590551181102362, '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}}
An adaptation of dataflow methods for WYSIWYG document processing

The advent of powerful personal workstations has made it possible for users to interact directly with objects that have complex semantics, such as spreadsheets and formatted documents. When a user makes a change to one part of such an object, its semantics may trigger changes to other parts of the object as well (e.g., other cells of the spreadsheet or other pages of the document). A system for direct manipulation of complex objects, such as a WYSIWYG document editor, must find all the work made necessary by a given user action, and must perform this work quickly in order to respond to the next user input. There is an analogy between a WYSIWYG document editor, which must find all the parts of a document that need work as a result of a given user action, and a dataflow graph, which is used to find all the computational units that are made ready for processing as a result of the completion of a given unit. This paper will examine how some of the techniques used in the dataflow model of computation have been adapted for use in an experimental WYSIWYG editor called Quill. We will show how dataflow languages have influenced the language used in Quill to specify the semantics of new user-defined formatting objects. We will also consider how the dataflow model may point the way toward methods for parallel processing of complex documents.