People like to record information for later consultation. For many, the media of choice is paper. It is easy to use, inexpensive, and durable. To its disadvantage, paper records do not scale well. As the amount of information grows, retrieval becomes inefficient, physical storage becomes excessive, and duplication and distribution become expensive. Digital media offers better scaling capabilities. With indexing and sub-linear algorithms, retrieval is efficient; using high density devices, storage space is minimal; and with electronic storage and high-speed networks, duplication and distribution is fast and inexpensive. It is clear that our computing environments are evolving as several vendors are beginning to market inexpensive, hand-held, highly portable computers that can convert handwriting into text. We view this as the start of a new paradigm shift in how traditional digital information will be gathered and used. One obvious change is that these computers embrace the paper metaphor, eliminating the need for typing. It is in this paradigm that our research is inspired, and one of our primary goals is to combine the best of both worlds by making digital media as convenient as paper.
This document describes an interactive note-taking software system for computers with pen-based input devices. Our software has two distinctive features: first, it actively predicts what the user is going to write and provides a default that the user may select; second, the software automatically constructs a graphical interface at the user's request. The purpose of these features is to speed up information entry and reduce user errors. Viewed in a larger context, the interactive note-taking system is a type of self-customizing software.
To clarify this notion, consider a pair of dimensions for characterizing software. As Figure 1 depicts, one dimension is task specificity. Software that addresses a generic task (e.g., a spreadsheet) lies between task independent software (e.g., a compiler) and task specific software (e.g., a particular company's accounting software). Another dimension is the amount of user customization required to make the software useful. Task generic software lies between the two extremes, requiring modest programming in a specialized language. Self-customizing software uses machine learning techniques to automatically customize task generic software to a specific user. Because the software learns to assist the user by watching them complete tasks, the software is also a learning apprentice. Similarly, because the user does not explicitly program the defaults or the user interface for the note taking system, it is a type of software agent. Agents are a new user interface paradigm that free the user from having to explicitly command the computer. The user can record information directly and in a free-form manner. Behind the interface, the software is acting on behalf of the user, helping to capture and organize the information.
![]()
Figure 1: Continuum of software development depicting the traditional trade-off between the development cost per user and the amount of user customization required. Self-customizing software eliminates the need for user customization by starting with partially-specified software and applying machine learning methods to complete any remaining customization.
Next we will introduce the performance component of the note-taking software in more detail, then describe the representations and algorithms used by the learning methods. We also present empirical results, comparing the performance of seven alternate methods on nine realistic note-taking domains, and finally, we describe related research and identify some of the system's limitations.