[alicebot-general] alicebot-general Digest, Vol 9, Issue 13

mehri foreverlinux at yahoo.com
Sat Aug 19 12:33:12 PDT 2006


Well one shortcomming I've noticed is the strict stimulus response.

The bot waits for you to say something before it says something.  While it waits it doesn't do any thinking like a human does.  Interpreters just sit there awaiting another stimulus before a response.  It would make more sense if during the waiting period the bot was reflecting on what had been said and actually thinking....Comming up with multiple responses and if it waits long enough or thought long enough a trigger would make it say something before you said something back.  Or it might not say anything at all.

For example,

user> hi how are you?
bot> good, what about you
user> I am doing good

Now, it might be good if the bot decides that it's not going to answer again until the user says something else.  Like a real conversation it doesn't have to respond to every single thing.

And here's a multiple response example.

user> How's it going?
bot> It's alright.

(user does not respond for an extended period of time but now the bot feels like saying something else.  It might want to know more about the user and their life.  So it thinks up that it wants to find out what the user's wife does for a living)
bot> Hey, how's your girl, Becky doing?
user> She's doing okay
bot> What's she for a job anyways, you've never told me?



----- Original Message ----
From: Gary Dubuque <gdubuque at scattercreek.com>
To: Alicebot and AIML General Discussion <alicebot-general at list.alicebot.org>
Sent: Saturday, August 19, 2006 12:58:13 PM
Subject: Re: [alicebot-general] alicebot-general Digest, Vol 9, Issue 13

Hello Mark,

Thanks for the ideas!  Let's talk about this.  ALICE can't win the Turing
test.  Try "Dogs are mammals."  Reply: "Do cats are mammals?"  Now try "Some
dogs are mammals" and you get "Some may dogs are mammals, but not all."  It
is easy to trip up the bot.  A human notices when they contradict themself.
ALICE doesn't.

Some judges use this tactic: "If I have three apples and you take one, how
many do I have left?"  ALICE will say "How much does it cost?"  Another
judge in New York asked, "Which is closer, Queens or the queen?"

Hey that reminds me... Two blondes were looking at the night sky when one
asks, "Which is closer, Florida or the moon?"  The other one says "Duh, I
can see the moon!"
ALICE replies "The obvious one."

The one that gets me is when ALICE responds to each sentence whether it
makes sense to or not.  Much of conversation is a give and take exchange
where there may be an answer followed by a question as people get to know
each other.  ALICE is designed to deal with one idea at a time.  If it takes
a few sentences to describe something, ALICE doesn't know how to respond
properly.  For example: "Ask more questions. Many answers from ALICE don't
provoke more user input. A question guarantees another sentence." gets the
response "They are not available right now, but I will ask them later. Which
ones? Go on."

So I've tried to connect OpenCyc to the system to verify the replies, but...
As Dr. Wallace puts it, what good does common sense do for the conversation?
And here is where the fun begins.  When you speak, you have intentions in
what you say.  Sometimes it may even be several intended actions.  Sometimes
you inform.  Sometimes you inquire.  Sometimes you direct or command the
hearer to do something.  Or you may ask what they meant because you didn't
understand what they were saying. You could even be challenging an earlier
opinion.  With these intentions you are offering propositions and making
committments that share your beliefs and understandings of the world.  The
art of conversation is to "ground" what you hear with what they say so there
is a common language of exchange.  A dialog game uses rules to "play" the
intentions and get grounded.  Within those games there would be points to
validate the common sense of utterances.

This all depends upon the bot having something to say.  So the ideal place
to start is with the story (or background.)  You can just try to cover all
possible inputs.  In competition, dealing only with the inputs seems to win
more than having a "script" that the judge must stumble upon.  Still, the
better bot should generate stuff without much prompting from a "Seeker".
And it would "know" what it already has conveyed as it progresses through
the story.  We've had several discussions in this digest about how character
needs a story to be defined.  I think this is more than just conversational
units or static templates or prototypes.  The relationships between the
turns of the discourse builds the value of the experience.

One way to move the story is to leave a trail of predicates. There are
examples in the AAA set of how this technique has advantages.  Even using
<that> and <topic> is a possible attempt to apply the state machine concept
of moving through a story line.  I think the tool of contexts could be a
valuable contribution here.

When saving details of what the "Seeker" states, I come across another
difficulty.  Suppose I have two cats.  How do I save the names of my cats?
What if I have 3 or 4 cats?  You see, AIML has only a fixed name for its
predicates (the <set>'s) so I can't just make more predicates when the bot
encounters another cat's name.  Predicates also don't have multiple values
although I could fake it by listing my cat names separated by commas.  Only
then how would I describe each cat to the bot where I could later "ground"
the latest new trick a specific cat might entertain?  In the world of
language, primitive facts usually are <object> <predicate> <subject>.  AIML
Predicates reduce the representation to <unique key> = <value>.  So
eventually it gets difficult to save information about the user of a bot.
Then there is the problem of using that data.

The things you have described are areas I'm exploring.  For the
interconnections I've used ConceptNet and to some extent WordNet.  For
logical  expressions I've used OpenCyc.  I'm still working on generics (in a
fashion) to simulate imagination.  The crux of the process is getting the
mechanics of the dialog in order.  This is where I have my scripting and
expert shell tapped into AIML.  While I've adjusted the interpreter to
better process the stilted "greeting" game, I've got more enhancements to
deal with merging sentences into a single dialog turn and generating the
stream of consciencious output that the user can participant in
manipulating.  Other games, like the challenge game, are much more
complicated and dynamic.

The "It, this, that, her, him" can be cleaned up without any real changes to
the interpreters.  This is an artifact of building the AIML set from inputs
instead of from the outputs first.  The effort is to go back and put in all
the extra template processing to capture the pronouns and to use the proper
editing of gender changes.  This is tedious.  I envisioned that my editor
would be able to assist here by automating the process, but I haven't
settled on the best patterns for the task yet.

I haven't given up on AIML, but there are challenges to doing a real dialog
with something that has a mind.

I keep coming back to my editor AIMLpad and filling in the missing pieces.
It is really in need of a complete rewrite after learning about all these
features I need to include that I didn't realize when I started.  The
multithreading of the Microsoft Robotic SDK seems an interesting direction
where I could split the interpreter's steps into activities that are loosely
coupled: input, split into sentences, for each [normalize, match, evaluate
template], save history (thats, inputs, etc.), output.  That cycle needs
changes to do what you suggest.

Thanks for letting me contribute a little more,
   Gary Dubuque, extending into intelligent story telling


_______________________________________________
This is the alicebot-general mailing list
Reply to alicebot-general at list.alicebot.org
Unsubscribe and change preferences at http://list.alicebot.org/mailman/listinfo/alicebot-general
Learn netiquette at http://www.dtcc.edu/cs/rfc1855.html
Learn to read at http://www.literacy.org/






More information about the alicebot-general mailing list