{'fraction_non_alphanumeric': 0.023434884499497825, 'fraction_numerical': 0.004017408771342484, 'mean_word_length': 4.8019417475728154, '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 Architecture For Adaptive Interfaces

If the interface of a system is to be made completely adaptable to the current user, then the interface and application have to be completely separate. Furthermore, if the model of the interface is independent of both the application and the operating system, then the user will be able to have their own model of the interface, which when added to the application, creates the working system. In this paper, we put forward an architecture to facilitate this goal. INTRODUCTION An adaptive system is a system "which automatically acquires knowledge about its users, updates this knowledge over time, and uses the knowledge to adapt to the users' requirements" [11]. The key part of this definition is that adaption is an automatic process, instigated by the system as opposed to the user. If a system is to change its interface in fundamental ways (for example, more than simply changing window sizes or colours), then the system will have to be based on an architecture where the model of the interface is completely separate from the application. Furthermore, if the model of the interface is independent of both application and operating system, then the user should be able to use their model of the interface in all applications they encounter. In this paper we define such an architecture. Rationale for Adaptive Interfaces The standard argument for adaptive interfaces is that end users are heterogeneous, and would thus be best served if given an interface that matched their capabilities. For example, many studies have concluded that users with a poor spatial ability would be best served with a highly structured dialogue based interface (where the system always takes the initiative), rather than, say, a command based interface [6, 10, 13, 15]. The main disadvantage of adaptive interfaces that has been put forward is that the maxim of consistency is not being upheld if an interface is constantly changing to meet the demands of the user. In the worst case, the problem of `hunting' occurs [9], where as soon as the user becomes proficient in using an interface, the interface changes and the whole learning process starts again. However, we would argue that an adaptive interface should increase consistency between applications. This is because, for even the simplest of tasks, different interfaces provide different procedures to carry out the same task. For example, consider the selection of an item from a menu, using the MS Windows and Macintosh operating systems. The exact procedures are given in Figure 1. There is no problem if a Macintosh user uses a Windows program, as the procedure acquired for the Macintosh will work in Windows. But if a Windows user selects an item from a menu using Method B, then tries to use the same method on a Macintosh, no item would be selectable (as the menu would disappear when the mouse button was released at stage 2). The user would then, through trial and error, asking someone, or