For this assignment, your task is to build a travel reservations application in VoiceXML. The assignment comes in two flavours: a basic version, which is worth 35 marks, and an extended version, which is worth an extra 5 bonus marks. You can choose whether or not you undertake the work required for the bonus marks.
The purpose of the application is to allow a caller to book a domestic flight in Australia, along with optional hotel and car reservations. Your aim is to make interactions with callers to the system as natural as possible.
You should conceive of your system's goal for any call to be the completion of a transaction. You can think of this as the construction of an information object with a number of data fields. The contents of some data fields vary slightly depending on whether you are undertaking the basic assignment or the extended version, as detailed below.
A transaction is characterised by the following data fields. Note that some of these are optional.
For the basic assignment, you need find values for either the departure day and time or the arrival day and time, but not both; these times may be approximate, as in before 10am, or exact, as in at 10am. For the extended assignment, you should indicate how you would retrieve day and time values for both departure and arrival.
It is possible to construct this application using a form-filling machine-directed dialog, and indeed you may want to build the system this way first to get a feel for what is involved. Ultimately, however, this is not a very satisfactory solution: your design should allow some degree of mixed-initiative dialog.
How far you take this approach is up to you. The following sample dialog should give you some ideas of what you might aim for; if your system can handle dialogs like this, you'll be doing very well. Note that the dialog here assumes that the basic version of the assignment is being undertaken, so no database connectivity is assumed.
| System | Hi, welcome to Fred's Flyers Travel Agency. How can I help you? |
| User: | I'd like to book a flight to Melbourne on Wednesday, please. |
| System: | Ok. At what time would you like to fly? |
| User: | I need to be there for 12 noon. |
| System: | Ok. I'll aim to get you a flight that arrives in Melbourne before 12 noon on Wednesday 24th October. Our computers are down right now, so I'll confirm this later. Do you want to book a return flight? |
| User: | Yes, coming back on Friday. |
| System: | Ok. At what time would you like to fly? |
| User: | I can leave any time after 10am. |
| System: | Ok. I'll aim to get you a flight that leaves Melbourne after
10am. I'll confirm the details on both of these flights as soon as our systems come back up. Will you need accommodation? |
| User: | Yes. I need a single non-smoking room. |
| System: | Okay, you can choose any of the following: the Regent Park Royal, the Hilton, the Sheraton, and the Crowne Plaza. |
| User: | The Regent. |
| System: | Ok: I've reserved you a single non-smoking room at the Regent Park Royal. Is that correct? |
| User: | Yes. |
| System: | Great. Will you need a hire car? |
| User: | Yes. |
| System: | Would you prefer Avis, Hertz or Thrifty? |
| User: | I'll go with Thrifty. |
| System: | Ok, do you want a Barina or a Commodore? |
| User: | A Barina is fine. |
| System: | Ok: I've reserved for you a Barina from Thrifty. Is that correct? |
| User: | Yes. |
| System: | Ok, would you like me to repeat all your reservation details? |
| User: | No, that's okay. |
| System: | Ok. Thanks for your custom, and enjoy your trip! |
You can also use the GUS and the Communicator sample dialogs, as discussed in the lectures, as sources of ideas for how your application might interact.
The flights database you will need for the extended version of the assignment is available as a text file. This file contains one line for each flight on which information is available; there are details of 3425 Qantas flights in the database, with each flight being represented by a set of data fields separated by vertical bar characters ('|'). Each record therefore has the following form:
qf489|adl|drw|0700|1040|tuewhere the fields are, in order of appearance:
| City | Code |
|---|---|
| Adelaide | adl |
| Brisbane | bne |
| Canberra | cbr |
| Darwin | drw |
| Hobart | hba |
| Melbourne | mel |
| Perth | per |
| Sydney | syd |
Your final submission should be supported by a report that contains the following:
This assignment contributes 35% of the total marks for this unit. The 35 marks are distributed as follows:
| Aspect | # of Marks |
| Documentation | 15 |
| Dialog design | 5 |
| Prompt design | 5 |
| Grammar design | 5 |
| The implemented application | 5 |
You will receive up to 5 additional bonus marks if you attempt the extended version of the assignment.
Your final submission should consist of three elements:
The electronic copy of the assignment is due at 6pm on Tuesday 14th May 2002; the timestamp generated by the receiving mail system is taken as the definitive submission time. Penalties apply for late submissions.
This page last updated
12th April 2002.
If you find any broken links or have other helpful comments please
email Robert.Dale@mq.edu.au.
Copyright (c) 2000,
2001, 2002 by
Macquarie
University. All rights reserved.