Composed Command
Examples:
-
UNIX or DOS command-line interface
-
SQL
-
Spoken instructions to an interface made for visually impaired people
-
One human telling another to do something
-
Programming and scripting languages
Context: The possible actions to be taken with the
artifact can be expressed through commands, which can be composed from
smaller parts, in a language-like syntax with precise and learnable rules;
and the users are willing and able to learn that syntax.
Problem: How can the artifact best present the actions
that the user may take?
Forces:
-
Expert users often find linguistic commands to be more efficient than visual
representations or direct manipulation.
-
Sometimes the available actions cannot, or should not, be expressed graphically
(perhaps because there is an intractably large set of them).
-
The visual channel may not be available at all to the artifact or to the
user.
-
The artifact is able to provide feedback on the correctness and appropriateness
of the given commands.
Solution: Provide a way for the user to directly
enter the command, such as by speech or by typing it in. Feedback
on the validity of the command, or its results, should be as immediate
as is practical. The parts and syntax rules should be easy to learn, and
should generate concise commands whose meaning is obvious. Offer a way
to do auto-completion or a set of possible interpretations of partially-entered
commands, especially if the user is unwilling or unable to learn the language
-- but beware the expert user, who may find this irritating! Allow
it to be turned off if necessary.
Resulting Context: The possible actions divide neatly
into environmental and object actions (see Convenient
Environment Actions and Localized
Object Actions); let the object actions accept "wildcards" in place
of the object, to effect Actions
for Multiple Objects. Forgiving
Text Entry lets the user give commands with a generous margin for error,
which is necessary for a natural-language-style interface and pleasant
for other kinds. Reality Check and
Progress Indicator generally make
dialogue-like actions easier for users to deal with.
Most existing Composed Command systems provide some kind of Interaction
History. In the linear dialogue that this pattern imposes upon
the user, a history can be invaluable; users often need to repeat previous
commands, sometimes with minor changes, and they sometimes need to know
what they've done recently. Composed Command also takes well to Scripted
Action Sequences (also common in on-line implementations of this pattern),
especially since users are already thinking in terms of grammar and composable
parts.
Comments to: jtidwell@alum.mit.edu
Last modified May 17, 1999
Copyright (c) 1999 by Jenifer Tidwell. All rights reserved.