Command Languages

The basic goals of language design for user interfaces are

Higher level goals include

Constraints on a language include

The language should have the functionality to support the user's tasks. People will not use a system that lacks some decisive piece of functionality, or worse has it only in some obscure form. There is a notorious undocumented feature that allows Mac users to print to disk. If such a user needed to do this frequently they would not buy a Mac. Too much functionality is as bad as too little.

Command Organization

A unifying concept, model or metaphor is an aid to learning. However it is still necessary to structure the commands in some way. Here are some options.

Simple Command List
One command per task. This works well with small numbers of task. Experience with "vi" suggests that it works less well with a a large number.
Commnad Plus arguments
Each command (PRINT, COPY etc) is followed by one or more arguments that indicate the objects to be manipulated. Key word may be helpful.
Command plus options and arguments
Unix uses this and has ben much criticised for it.
Herirachical Command Structure.
Organize the full set of commands into a tree structure. So that the top level could be the command the second level an object argument the third level a destination argument. Much like a tree of menus.


Consistent argument ordering makes learning and remembering much easier. Response should be consistent. In general similar responses should produce similar effects. Thus a consistent choice of key to press to accept a default value.


If you do abbreviate be consistent about how you do it. Thus in Unix the abbreviations cp, mv, rm, all work in a similar way but then cd and mkdir work differently. Strategies for Abbreviations:

  1. Simple truncation.
  2. Vowel drop and truncation. the first letter if a vowel may survive.
  3. First and last letter.
  4. First letter of each word in a phrase.
  5. Standard abbreviations from other contexts, eg qty for quantity.
  6. Phonics, something that sounds the same XQT for execute.

To ease the burden on memory it is possible to offer help meus that show the abbreviations for the commands.

Natural language Interfaces

The main problem with NL Interfaces is knowing what the user knows. You can't just start with a ? prompt and expect anything sensible to happen. If the field is very restricted tthen it is possible to use NL. Database query is a possible application. NLI's that work usually do so because they train the user to pose the queries in ways that the machine can understand. Full. NL is a long way off. (But is more likely to work for text searching). Natural Language output is a reasonable possiblity, particularly for "cliched" situations.

Last Changed: April 4th 1995.
Push Here To return to GUI home page.