4.7 Exercises

Ex.

Exercise 4.1

Watch the TRIPS/TRAINS-demo videos referenced in Section 4.6.3. Use the criteria given in Section 4.1.2 to evaluate the systems based on these videos and the example dialogue in the same section.

Exercise 4.2

The Philips train information system is a system that gives information on train travels. In this exercise you're asked to experiment with this system.

  1. Dial the following phone number to be connected with the system:

    0241 604020

    We suggest you do that in groups! Protocol your dialogues.

  2. Try to systematically evaluate the system with regard to the characteristics discussed in Section 4.1.2 and the desired behaviour you would like it to depict. Take notes of your results.

  3. Which of the dialogue systems that we have looked into is it closer to; the speaking elevator or the TRAINS system? Justify your opinion by specific examples, where possible.

  4. Try if you can draw an automaton that handles some or even all of your protocoled dialogues.

Exercise 4.3

Give a Prolog-specification of the simple dialogue automaton shown in Section 4.2.2, using the following extensions to our ususal representation scheme:

  • Use write('blabla blubb') as label for edges meant to produce the output ``blabla blubb''.

  • Use read('blabla blubb') as label for edges meant to (possibly) ask for input and then to be traversed if the input was ``blabla blubb''.

  • Use call(trip(FloorNumber)) as label for edges meant to trigger an action named trip(FloorNumber).

For this exercise you can assume that the edge labeled ``Input understood'' in the picture somehow sets a global variable named FloorNumber that can then be accessed by all edges traversed later on.

How would you describe the language accepted by the FSA you've specified? (Just look at it as if it was one of the usual FSAs that you know from the previous lectures. Can you give a regular expression for it?).

Describe what extensions to the predicates in recognize.pl become neccessary in order to use them for produce a dialogue based on the automaton you've specified.

Exercise 4.4

[Mid-term project]

Adapt the predicates in recognize.pl so that they can process specifications of dialogue automata as described above in Exercise 4.3. You can use the predicate readAtom/1 from the file readAtom.pl to read input from the keyboard into an atom.

readAtom.pl: View Download

Predicate readAtom/1 for reading keyboard input into an atom.

Here's an example of what this predicate does:

2 ?- readAtom(A).
|: hallo spencer.
 
A = 'hallo spencer.'  
 
Yes
3 ?- 

Include the following code before your program to be able to use the predicate:

:- use_module(readAtom,[readAtom/1]).

Please let us know if you would like to do this exercise as your mid-term project.


Kristina Striegnitz, Patrick Blackburn, Katrin Erk, Stephan Walter, Aljoscha Burchardt and Dimitra Tsovaltzi
Version 1.2.5 (20030212)