Brainhat Scenarios Programming

October 1999


Say that you own an ice cream parlor. Whenever you bring on a new employee, you expect that you will have to train them. You explain the job: "this lever pumps the cones... never pump ice cream into your mouth... the chocolate shots are in a bucket under the sink..." The new employee bobs his or her head in agreement.

What next? Do you toss the them the keys and say "lock up at eight"? Of course not. What comes next is testing and repetition; you want to make sure that they "get it."

For the purposes of describing Brainhat programming, the dumber the counter sitter, the better the analogy; Brainhat only knows what you tell it. Furthermore, the natural task progression that comes naturally to a human--the concept of "steps"--is meaningless to Brainhat. You must lay out proposition milestones that help a conversation graduate from one stage to another. To Assure that the scenario you are describing to Brainhat "works" requires testing and repetition.

Let's take a specific example. Say that you want an ice cream parlor exchange to progress from the arrival of a customer to the question "do you want a sugar cone?"

If the speaker is hungry then the speaker wants ice cream.  If the
speaker will have something then the speaker wants something.  If the
speaker wants ice cream then ask if the speaker likes vanilla ice
cream.  If the speaker does not like vanilla ice cream then ask if the
speaker likes chocolate ice cream.  If the speaker does not like
chocolate ice cream then tell the speaker that the speaker likes wierd
ice cream and ask if the speaker is unhealthy.  If the speaker likes
ice cream then ask if the speaker wants a sugar cone.

Brainhat has chocolate ice cream. Brainhat has vanilla ice cream.

Consider that we might take multiple paths along the way. The user might want chocolate or she might want vanilla. She might even ask for ice cream of no particular flavor (wierd). Notice that I have tried to bound the conversation so that we get to the "sugar cone" question by almost any path. This is not a requirement; the conversation can become unscripted at any time. However, once we fall off the subject at hand, Brainhat will run out of things to say. It will be up to the user to take over the lead in the conversation.

How might the conversation go?

>> hi hello. >> i am hungry the speaker is famished. the speaker wants ice cream. does the speaker like vanilla ice cream? >> do you have chocolate ice cream? yes. brainhat has chocolate ice cream. does the speaker like vanilla ice cream? >> i like chocolate ice cream. the speaker likes chocolate ice cream. does the speaker want a cone? >> yes the speaker wants a cone.

Scenario development takes some patience. Occasionally, Brainhat's logic will take a turn that you hadn't anticipated. Or you may ask the user a question that is likely to be answered in a fashion that Brainhat doesn't interpret correctly. Accordingly, the questions you ask and the statements that you make should lead the interlocutor toward a dialogue you have already tested.

The good news is that you can stuff Brainhat full of amusing, off-topic information so that if the user does stray, there will be something unexpected to discover. Today, for instance, I heard someone in our office tell Brainhat that they don't like cold weather. Brainhat told the person that Egypt is warm, and that the person should go to Egypt! I had coded that into a scenario and forgotten about it. It was a amusing surprise to hear it re-surface.

If you wish to experiment with the ice-cream scenario, here are the additional words you will need to include into Brainhat's input files:

define	flavor-1
	label		flavor
	child		attribute-1
define	chocolate-1
	label		chocolate
	child		flavor-1
	orthogonal	flavor-1

define	vanilla-1
	label		vanilla
	child		flavor-1
	orthogonal	flavor-1

define	ice-cream-1
	label		ice cream
	child		food-1
	typically	cold-1

define	sugar-cone-1
	label		sugar cone
	label		cone
	child		food-1

Return to Brainhat Programming Return to Home Kevin Dowd
Copyright © 1998, 1999, Kevin Dowd