Intelligent User Interfaces

What are Intelligent Interfaces?


Introduction
Many computer programs exist to help the operator perform a task. These programs, of course, require an interface, a means for the user to interact with the program. The interface with which the operator interacts with the program should be as invisible and intuitive as possible -- working with and understanding the interface should not be a task. The operator should be able to concentrate on the task which he is to perform. Intelligent interfaces attempt to make the interface as intuitive and helpful as possible.

What is an intelligent interface? To answer this question, we must first know what an interface is, what intelligence is, and about what the interface can be intelligent. Once we know the answers to these questions, we can formulate a definition for the term "intelligent interface".

What is an interface?
An interface provides a means of communication between two or more entities. For example, the interface between a driver and a car would be the steering wheel, the speedometer, the gas gauge, and other controls and meters on the dashboard. This interface allows the driver to translate his desires into something that the car can understand. The driver gives input: touching the gas pedal, hitting the brakes, or turning the steering wheel. The car responds with output: the current speed, the amount of gas left in the vehicle, or a change in direction. The driver uses the car's output, plus his own motivation, to decide what input to send into the car.

Similar interfaces exist between a user and a program. Specifically, a human- computer interface is the part of a computer system with which a person interects to accomplish some task. It includes both the methods for allowing the user to perform actions, as well as the means by which the computer reports information to the user [ref]. Terveen breaks interfaces into two types: an intermediary interface, in which the user enters information to the interface, which passes that information to the application (like the DOS and UNIX interfaces); and a model world interface, which presents the user with a visual representation of the system, which the user can manipulate directly. This type of interface is used in Windows and similar systems.

What is intelligence?
Intelligence is not an easy term to define. What makes a system intelligent? In intelligent interfaces, the intelligence might be in predicting what the user wants to do, and presenting information with this prediction in mind. Intelligent interfaces can also make doing a task more intuitive and helpful. Instead of trudging along a task in the mire of an inefficient and clumsy interface, the user might find a helpful and information-using interface to be more "intelligent." Thus, intelligence does not actually mean cognition in this context; instead, it means using information in an appropriate manner.

Intelligence in interfacing is a subjective term. One person may look at a system with context-sensitive help and say that the system seems smart; another person might look at the same system and see nothing special about it. In a sense, intelligence in interfaces might be defined as "the next best thing" -- once we have a system which one would say is intelligent, the novelty of the system wears off, and people are in search for more intelligent interfaces. Intelligence is that goal which is always one step ahead of us; once we conquer it, it is no longer intelligence.

What can an interface be intelligent about?
We have established what an interface is, and what intelligence is, but what can an interface be intelligent about?

The interface can be intelligent about a variety of things. One of these is system functionality. The interface might have some knowledge of how to get around the system, or tasks a user would want to do. With this information, the system can present its interface in an intelligent manner, making navigation and operation more intuitive to the user.

Interfaces can be intelligent about the user. Through the use of a user model, the system can tailor communication (both input and output) to the user. Examples of tailored communications include methods of communicating (voice? visual? tactile?) and way of presenting data (bar graph? pie chart? line graph?).

The interface can also be sensitive to the wants and needs of the user. This ties closely with the user model, but it deals more with interface adaptability than outright use of models. One scenario where interfaces might be able to detect the needs of the user would be in the case of a system detecting that the user needs help doing a particular task; the system might volunteer this help. Or, a system may notice that a user is having trouble with the interface; perhaps the system can alter its interface a bit to compensate (for example, maybe the user keeps selecting the wrong button; maybe an alteration to compensate would be to describe the button in more detail, or give more hints as to the correct button to press). This idea can also be brought to a physical level: maybe the system detects that the user keeps missing the selectable zones on a button; the system might compensate by expanding the "hot region" around this button. This would be especially helpful in a system which might be used by someone with poor eyesight or motor control.

The difference between intelligent interfaces and intelligent systems with an interface
There is a distinction between programs with intelligent interfaces, and programs which are intelligent and have interfaces. A program which has an intelligent interface uses intelligent techniques in working with the user. It might use user models, or it might be knowledgable about system functionality, or it might compensate or help its user. An intelligent program may produce information which is intelligent, but the interface itself might not contain any intelligence.


Table of Contents

Next: Uses of Intelligent Interfaces