Chapter 2. Resolving incomplete requests through disambiguation

 

Chapter 7 from Voice UI Systems by Ann Thymé-Gobbel and Charles Jankowski

This chapter covers

  • Incomplete user requests: what they are, why they happen, and how and why you complete them
  • Disambiguation: what it is, why it's important, and how and when to implement its different approaches
  • Why dialog management is needed to accommodate users' different mental models
  • Code samples for disambiguation, multi-turn dialogs, and using webhooks

In human conversations, people are basically only as clear as they think they need to be, no more, no less. People assume their listener is following, so they take shortcuts which lead to incompleteness. Or they’re vague, which leads to ambiguity. In human dialog, as we’re sure you know, this happens all the time. When they’re not clear, the listener might ask for clarification. Or, the listener “fills in the blanks” in their head. Sometimes they’re correct, sometimes there’s misunderstanding. The same situation happens in VUI dialogs, which is why ambiguity resolution is one of the most important topics in voice development.

7.1 Incomplete requests

Take another look at some of the sample fully specified user utterances in chapter 6:

7.1.1 Reaching completeness through dialog management

7.2 Ambiguous requests

7.3 Disambiguation methods

7.3.1 Logic-based assumptions

7.3.2 Yes/No questions

7.3.3 A/B sets

7.3.4 Static lists

7.3.5 Dynamic lists

7.3.6 Open sets

7.3.7 Menus

7.4 Testing on the device to find and solve issues

7.4.1 Two big lessons

7.5 Webhooks 1: Toward code independence

7.5.1 Fulfillment and webhooks

7.5.2 Webhook overview

7.5.3 Webhook in depth

7.5.4 Contexts, context parameters and follow-up intents

7.6 What’s next

7.7 Summary