80 likes | 92 Views
This chapter delves into the fundamental goals of language design, including precision, compactness, ease of use, simplicity, and expressiveness. It also covers higher-level language design goals and strategies to support user tasks. From command languages to natural language in computing, this resource explores various approaches to enhance user interaction and system functionality.
E N D
Chapter 8 Command and Natural Languages
The Basic Goals of Language Design • Precision • Compactness • Ease in writing and reading • Speed in learning • Simplicity to reduce errors • Ease of retention over time
Higher-Level Goals of Language Design • Closecorrespondence between reality and the notation • Convenience in carrying out manipulations relevant to user's tasks • Compatibility with existing notations • Flexibility to accommodate novice and expert users • Expressiveness to encourage creativity • Visual appeal
Functionality to Support User’s Tasks Designers should • determine functionality of the system • create a list of task actions and objects • develop a set of interface actions and objects • create a table of user communities and tasks, with expected use frequency • determine hierarchy of importance of user communities (i.e. prime users) • evaluate destructive actions (e.g. deleting objects) to ensure reversibility • identify error conditions and prepare error messages • allow shortcuts for expert users, such as macros and customizing system parameters
Six Potential Abbreviation Strategies • Simple truncation: The first, second, third, etc. letters of each command. • Vowel drop with simple truncation: Eliminate vowels and use some of what remains. • First and last letter: Since the first and last letters are highly visible, use them. • First letter of each word in a phrase: Use with a hierarchical design plan. • Standard abbreviations from other contexts: Use familiar abbreviations. • Phonics: Focus attention on the sound.
Command-language guidelines • Create explicit model of objects and actions • Choose meaningful, specific, distinctive names • Try to achieve hierarchical structure • Provide consistent structure (hierarchy, argument order, action-object) • Support consistent abbreviation rules (prefer truncation to one letter) • Offer frequent users the ability to create macros • Consider command menus on high-speed displays • Limit the number of commands and ways of accomplishing a task
Natural Language in Computing • Natural-language interaction http://www.jabberwacky.com/yourbot • Natural-language queries and question answering • INTELLECT system: 400 installations in the ’80s • 1999 Sql Server: English Query • Text-database searching • Uses filters for commands • Natural-language text generation • Simple tasks: weather reports • Adventure games and instructional systems • Provides feedback and guidance
Summary • Command languages attractive • Frequent use of system is anticipated • Users are knowledgeable about the task and the interface • Screen space is at a premium • Response time and display rates are slow • Numerous functions can be combined • Designers should design for functionality • Natural languages have limited effectiveness and advantages – too much ambiguity