Title: Dialog Design: Introduction and Command Languages
1Dialog Design Introduction and Command Languages
- This presentation has been developed by the
Georgia Tech HCI faculty over a period of years.
Contributors include Gregory Abowd, Jim Foley,
Diane Gromala, Elizabeth Mynatt, Jeff Pierce,
Colin Potts, Chris Shaw, John Stasko and Bruce
Walker
2Agenda
- Dialogue design styles and issues
- Command languages
- Advantages, disadvantages
- Design guidelines
3Dialog Styles
- 1. Command languages
- 2. WIMP - Window, Icon, Menu, Pointer
- 3. Direct manipulation
- 4. Speech/Natural language
- 5. Gesture, pen
4Dialog Design - Humor
- How does a user interact with the interface?
5General Issues in Choosing Dialogue Style
- Who is in control - user or computer
- Initial training required
- Learning time to become proficient
- Speed of use
- Generality/flexibility/power
- Special skills - typing
- Gulf of evaluation / gulf of execution
- Screen space required
- Computational resources required
6Command Languages
- Earliest UI interaction paradigms
- Examples
- MS-DOS shell
- UNIX shell
- dBase
7CL Characteristics
- Little or nothing is visible so
- Work primarily by recall, not recognition
- Heavy memory load
- Poor choice for novices but...
8CL Advantages
9CL Advantages for Experts
- Speed, conciseness
- ls (hard to beat
- Can express actions beyond a limited set
- Flags, piping one command to another
- Repetition, extensibility
- Scripting, macros
- Easier implementation, less overhead
- Power
- Abstraction, wild cards
10CL Disadvangates
- Make a list if you are by yourself or in a small
group - Or suggest some to the class
11Next.
- Listed all you can think of? Go on to the next
page..
12CL Disadvantages
- Error-prone
- Harder to learn
- Requires typing
- With added power, comes added responsibility and
danger - UNIX
- rm -r f
- Deletes every file that youhave, provides no
feedback,and you cant get them back
13Unix Shell CL Disadvantages
- Learning takes a long time
- Hard to remember command names
- Some command names dont make sense, so have to
memorize - No in-progress feedback - how much longer?
- System state is invisible, and have to know which
commands to use to get which information - Hard to make sense of outputs, such as with ls -
no headings, no code interpretations - No look
- No warning if bad things are going to happen
- No universal Undo to reverse a command, have to
know the inverse command (create directory,
delete directory) - Have to use man command to find desired command
- How to get help?
- Because commands are short, typos can lead to
incorrect command - Inconsistent flag meanings
- Inconsistent parameter orders
- Have to type a lot - touch typing needed
14CL Reflection
- Command languages are often maligned (for good
reason) - But increased functionality can win out over bad
UI (e.g., UNIX) - Try to get both
- Avoid excess functionality (comes at cost)
15CL Design Goals
- Consistency
- Good naming and abbreviations
- Doing your homework in design can help alleviate
some of the negatives
16CL Consistency
- Provide a consistent syntax
- In general Have options and arguments expressed
the same way everywhere - UNIX fails!
- Commands were developed by lots of different
people at different organizations - No guidelines provided
- If commands long, have simple consistent
abbreviations
17CL Syntax Be Consistent!
- Simple command list
- e.g, vi, minimize keystrokes
- Commands plus arguments
- realistic, can provide keyword parameters
- cp fromfoo tobar
- Commands plus options plus arguments
- what you usually see
18CL Order
- English SVO subject verb object
- you is assumed as the subject - imperative!
- CL S assumed (you)
- Is VO or OV better?
- delete file or file delete
- V dO iO vs. V iO dO
- print file calvin
- lpr -Pcalvin file
- Which is better?
19CL Ordering
- Keep ordering consistent
- VO (Verb Object) seems to be the most natural
- Typically need to pick where options go
- Example
- ln -s file1 file2
- Think of cp file1 file2
20CL Terminology
- Keep terminology consistent
- Same concept expressed with same options
- Useful to provide symmetric (congruent) pairings
- forward/backward
- next/prev
- control/meta
21CL Example of Congruent Pairs
- vi text editor
- w - forward word
- b - backward word
- Wouldnt f be better for forward?
- f already used
- How about fw and bw?
- Extra keystrokes
22CL Names and Abbreviations
- Specificity versus Generality
- General words
- More familiar, easier to accept
- Specific (typically better)
- More descriptive, meaningful, distinctive
- (Nonsense does surprisingly well for small set of
commands)
23CL Abbreviations
- Abbreviations allow for faster actions
- Expert performance begins to be dominated by
motor times such as of keystrokes - Not good idea for novices
- (Allow but dont require)
24CL Abbreviation Strategies
- Simple truncation (works best, but conflicts)
- Vowel drop plus truncation (avoid conflicts)
- First and last letters
- First letters of words in a phrase
- Standard abbrev from other contexts
- qty, rm, bldg
- Phonics
- xqt
25CL Abbreviation Guidelines
- Use single primary rule (with single fallback for
conflicts) - Use fallback as little as possible
- Mark use of fallback in documentation
- Truncation is good but generates conflicts
- Fixed length is better than variable length
- Dont use abbrevs. in system output
- Can use auto-completion as alternative to
abbreviations
26CL Abbreviations Matter...
27CL Design Affects Performance
- Terse CL Wordy CL
- Find/tooth/ -1 backward to tooth
- List/ko list all lines with ko
- Rs/ko/,/ok/ change ko to ok
-
- User type task completed wrong commands
- (8 of each) Terse Wordy Terse Wordy
- Inexperienced 28 42 19 11
- Familiar 43 63 18 6.4
- Experienced 74 84 9.9 5.6
All command words can be abbreviated with a
single letter.
Ledgard et al, The Natural Language of
Interactive Systems, CACM, October 1980 556-563
see also subsequent letters to the editor.
28Design New Set of Commands for vi Navigation
29All vi Commands
- Text Insertion Commands
- a Appends text after cursor.
- A Appends text at the end of the line.
- i Inserts text before cursor.
- I Inserts text at the beginning of the line.
- o Opens new line below the current line for text
insertion. - O Opens new line above the current line for text
insertion. - DEL Overwrites last character during text
insertion. - ESC Stops text insertion.
- Text Deletion Commands
- x Deletes current character.
- dd Deletes current line.
- dw Deletes the current word.
- d) Deletes the rest of the current sentence.
- D, d Deletes from cursor to end of line.
- P Puts back text from the previous delete.
- Changing Commands
- cw Changes characters of current word until ESC.
- c Changes text up to the end of the line.
- Undo Command
- u undo the last command.
- Screen Commands
- CTL/l Reprints current screen.
- CTL/L Exposes one more line at top of screen.
- CTL/E Exposes one more line at bottom of screen.
- CTL/F Pages forward one screen.
- CTL/B Pages back one screen.
- CTL/D Pages down half screen.
- CTL/U Pages up half screen.
- Cursor Positioning Commands
- j Moves cursor down one line, same column.
- k Moves cursor up one line, same column.
- h Moves cursor back one character.
- l Moves cursor forward one character.
- RET Moves cursor to beginning of next line.
- 0 Moves cursor to beginning of current line.
- Moves cursor to end of current line.
- SPACE Moves cursor forward one character.
30Vi Navigation Commands
- j Moves cursor down one line, same column.
- k Moves cursor up one line, same column.
- h Moves cursor back one character.
- l Moves cursor forward one character.
- RET Moves cursor to beginning of next line.
- 0 Moves cursor to beginning of current line.
- Moves cursor to end of current line.
- SPACE Moves cursor forward one character.
- nG Moves cursor to beginning of line n.
- 0 Moves the cursor to the first character of
the line. - n Moves cursor to beginning of line n.
- b Moves the cursor back to the beginning of the
prev. word. - e Moves the cursor backward to the end of the
prev. word. - w Moves the cursor forward to the next word.
- /pattern Moves cursor forward to next occurrence
of pattern. - ?pattern Moves cursor backward to next
occurrence of pattern. - n Repeats last / or ? pattern search.
31The End