Command and Natural Language Interaction
(based on Shneiderman Chapter 8)
[ lecture notes | CSC 397 | Pete Sanderson | Computer Science | SMSU ]
Table of Contents
Written language
Programming Languages
Command languages
Command Language Design
Natural Language Interaction
Resources
Chapter 8 of Designing the User Interface Third Edition, by Ben Shneiderman.
Written language
Written language : standard symbols and notations that allow communication across space and time.
Languages evolved over time in accordance with some basic unstated goals based on human cognitive capabilities and communication needs:
- compactness,
- completeness,
- speed of learning,
- ease of: learning, retention, reading, writing.
Printing press spurred language development by allowing mass dissemination of written language.
Computer spurred development of written command languages.
Neat quote from Shneiderman (p. 277) concerning computer stimulating language development because "computers are a tool to manipulate languages and because languages are a tool for manipulating computers".
Return to the Top
Programming Languages
What's the difference between a programming language, a command language, a scripting language, a markup language?
Commonality: all are used to specify commands to a computer
Evolution of programming languages
- from hardware-oriented (machine and assembler)
- to mathematically-oriented (Fortran)
- to natural-language-oriented (Cobol),
- to all sorts of variations and specializations of each.
Return to the Top
Command languages
Typically think of OS command languages: DOS or Unix.
Interaction paradigm: user enters command, computer carries it out (with feedback if required) then requests next command.
Cognitive requirements: relate to written languages
Not much new activity in command language development.
Return to the Top
Command Language Design
Important design considerations:
- Provide only sufficient functionality for users to carry out tasks
- Macro or scripting capability
- Consistency in command language design
- Command abbreviations
- Help feature
OAI can be applied:
- actions become commands
- objects become arguments
Consistency is very important in command language design
(very taxing on memory, so minimize the number of chunks)
- use of metaphor yields consistent terminology (command names)
(easier to learn, retain, recall -- e.g. up/down not forward/down)
- consistent argument ordering
(e.g. first argument is source and second is destination)
- consistent naming of command options
(e.g. v for verbose output regardless of command)
Command abbreviation useful for expert user
- important because expert benefits the most from CUI
- novice will require/prefer full names
- easier to learn if only one abbreviation strategy used
Some abbreviation strategies are:
- truncation,
- eliminate vowels except possibly first letter
- use first and last letter (RD for read)
- use first letter of each word in phrase
Return to the Top
Natural Language Interaction (NLI)
Shneiderman's case against NLI based on existing systems:
- AI metaphors (agent, expert system) draw focus away from user. Successful tools focus on and empower the user (WYSIWYG, spreadsheet)
- Difficult for users not conversant in the task domain to communicate their needs via NLI.
- Human-human interaction may be poor model for HCI.
- Miscommunication (poor user input or inadequate computer interpretation) requires additional clarifying interactions
- Once miscommunication occurs, the metaphor of intelligent machine starts to crumble and user becomes confused.
Shneiderman suggests that the less ambitious systems have been the most successful. Some examples:
- NL query of relational database. One system echoed its understanding of the query in structured NL. Users then began to structure their queries similarly. Satisfaction and success followed.
- Web search engines (analyze query)
- "extraction" (stored text analyzed by NL parser and converted into structured format to facilitate subsequent search)
- natural-language text generation (convert structured information into NL output for human consumption)
- games with natural language commands
Return to the Top
[
lecture notes | CSC 397 | Pete Sanderson | Computer Science | SMSU ]
Last reviewed: 4 November 1998
Peter Sanderson ( pete@csc.smsu.edu )