We discuss our experience with an interface that gives users the ability to directly represent and manipulate goals at several levels of detail. The interface is built into Bridge, a tutorial environment for novice programmers [Bonar88]. The name comes from our intended "bridge" between novice and expert conceptions of programming. In order to understand student designs and partial programs, Bridge provides languages that allow a student to talk about his or her high-level designs and partial work. We call the vocabulary of these languages plans. Plans are bundles of knowledge about the standard subtasks in a domain, designed and organized based on a typical user's point of view.Many intelligent interfaces monitor low-level user actions, attempting to infer higher level plans. These inferences are typically implemented with partial matching schemes, based on a plan catalog (see, for example, [Johnson86]). The inferences allow the system to complete user actions, correct errors, or provide tutorial assistance. This approach to inference of user intentions is quite difficult. We propose a different approach, designed to more effectively and accurately capture user intentions.Our approach gives users a very high-level plan language. By "high-level" we mean a language that is informal, vague, contains much implicit information, and is designed to represent goals of interest to a particular class of users. In particular,the plan language makes assumptions about the user's background knowledge and overall intentions. This is consistent with our interest in providing interfaces to professionals and domain experts who have no programming experience. We focus on users who are experts in a particular task domain and are using a computer to extend or augment that expertise. Our system must take such a user's specification and derive an implementation using the primitives provided by a standard computer system. In the rest of the article we begin by developing a framework for approaching intelligent interfaces. In particular, we discuss the dilemma of a very high-level programming language intended for use by experts who are not programmers.
Read full abstract