Tutorial 2

From Olympus
Jump to: navigation, search

A little mixed initiative...

Contents

Introduction

In the first tutorial, we've built a simple system that asks questions and expects answers from the user. That's very nice but it's still a very limited form of dialogue... Indeed interaction with that system is rigid in the sense that the user must always answer exactly the system's question, which amounts to providing one concept to the system. In more flexible systems, users can volunteer more information than they have been asked for, ask for help, switch topics, etc. In other words, while our first system was strongly system-driven, we'd like to be able to give more initiative to the user. In this tutorial we will do just that. Through very simple modifications to the system itself, we'll make use of powerful features of Olympus to create a mixed-initiative dialogue system. Note that, although Olympus completely supports this, we will not go all the way and allow for totally free conversation. This is because fully natural systems require very careful engineering of natural language understanding and generation, which is not the focus of these tutorials. After you've completed the tutorials, you can take a look at some of the deployed systems built with Olympus to see how full natural language dialogues can be implemented.

As a reminder, here is how all dialogues with our MyBus system looked like at the end of tutorial 1:

 S:  Welcome to MyBus.
     Where are you leaving from?
 U:  DOWNTOWN
 S:  Where are you going?
 U:  THE AIRPORT
 S:  Let me check that for you.
     There is a 28X leaving DOWNTOWN at 4:20 p.m. It will arrive at THE AIRPORT at 4:56 p.m.
     You can say, when is the next bus, when is the previous bus, start a new query, or goodbye.
 U:  WHEN IS THE NEXT BUS
 S:  Okay.
     There is a 28X leaving DOWNTOWN at 7:03 p.m. It will arrive at THE AIRPORT at 7:37 p.m.
 U:  GOODBYE
 S:  Thank you for using MyBus. Goodbye!

Now here are the kind of dialogues we'll be able to handle at the end of this tutorial:

 S:  Welcome to MyBus.
     Which itinerary do you want information for?
 U:  I WANT TO GO FROM DOWNTOWN TO THE AIRPORT
 S:  Let me check that for you.
     There is a 28X leaving DOWNTOWN at 4:20 p.m. It will arrive at THE AIRPORT at 4:56 p.m.
     You can say, when is the next bus, when is the previous bus, start a new query, or goodbye.
 U:  WHEN IS THE NEXT BUS
 S:  Okay.
     There is a 28X leaving DOWNTOWN at 7:03 p.m. It will arrive at THE AIRPORT at 7:37 p.m.
 U:  GOODBYE
 S:  Thank you for using MyBus. Goodbye!

or,

 S:  Welcome to MyBus.
     Which itinerary do you want information for?
 U:  I WANT TO GO TO THE AIRPORT
 S:  Where are you leaving from?
 U:  HELP
 S:  So far, I know that you want to go to the airport.
     Please tell me the name of the neighborhood or landmark you want to leave from.
     For example, you can type carnegie mellon university, downtown, or the airport.
 U:  THE AIRPORT
 S:  Let me check that for you.
     There is a 28X leaving DOWNTOWN at 4:20 p.m. It will arrive at THE AIRPORT at 4:56 p.m.
     You can say, when is the next bus, when is the previous bus, start a new query, or goodbye.
 U:  GOODBYE
 S:  Thank you for using MyBus. Goodbye!

On this simple task, the difference between the first dialogue and the last two ones might seem small but the concepts we will introduce here are crucial to understanding how to build natural dialogues with Olympus.

Adding an open prompt

Here is the new task tree:

The MyBus task tree

As you can see, it is almost identical to that of tutorial 1. The only difference is that we added a RequestQuery node.

Using library agents

Conclusion

Personal tools