[alicebot-style] How a chatbot operates?

Gary Dubuque alicebot-style@list.alicebot.org
Fri, 18 Feb 2005 20:52:56 -0800


I'm wondering if there is a right idea for a chatbot's operation.

Some believe you can use statistics and a large number of exchanges to come
up with a match for an seeker's utterance.  Maybe this is something like
Jabberwocky.

There is AIML which maps input patterns to output templates.  There are some
restrictions using <that> and <topic> to filter context.   There is also
some preprocessing to normalize the input for the pattern matching.

There are the chatbots which parse syntax, extract concepts, apply logic to
the concepts using something like a dialog manager, generate output from the
internal representations passed on by the dialog manager.

These are three different ways.  Your description matches the latter in this
list of three.  It is not the natural AIML style.

AIML does not choose a suitable answer - there is a one-to-one match between
pattern and template.  Template processing may do some reduction through
<srai>, but about the only "choosing" of an answer could be through a
conditional like <random>.  It doesn't have a reasoning system where it
"thinks" about the right thing to say using some rules or guidelines based
on the deep meanings in the input.  It is advanced to create AIML along
these lines of style.  Normally AIML is as simple as for each possible input
there is an response.

So there is no dictionary (unless you have a version that does spell
checking).  There are substitution parameters for abbreviations or
contractions to normalize the input patterns.  Those parameters are neither
a dictionary nor the BNF representations.  AIML files are just a convenience
and the categories could all be in one file.  That they are separated into
data areas seems to be the easiest way to manage updates and modifications.
It makes it easier for the botmaster to find their way when extending the
AIML set.  It really has nothing to do with the chatbot itself.  Only a few
chatbot interpreters allow dynamic updates of the AIML in play and this is
not part of the official specifications for AIML.  So it is rare to find a
"trainable" AIML chatbot.  Usually the AIML is unloaded, changed by hand,
then reloaded into the bot.

So an AIML chatbot gets an input, cleans it up or normalizes it, matches
that to a category pattern, processes the corresponding template to make the
output.  The template may save data in something like a variable (called a
predicate) during its processing.

HTH,
  Gary Dubuque, still trying to do that advanced style of AIML stuff

-----Original Message-----
From: alicebot-style-admin@list.alicebot.org
[mailto:alicebot-style-admin@list.alicebot.org]On Behalf Of Dr.
Aliasghar sayficar
Sent: Thursday, February 17, 2005 11:10 PM
To: alicebot-style@list.alicebot.org
Subject: [alicebot-style] How a chatbot operates?


Hi every body

I like to know the structure of a chatbot. I tried to write it down my
understanding. Is that right. please give me the right idea.

Ali

                        How a Chatbot operates?

As I realized a chatbot consists of the following parts:
1.	Dictionary: Collection of the words of the language in use. As
same as "Tokens in lexical analyzer" in a compiler.
2.	Corpus: structure of the sentences of the language in use. As
same as "BNF in Parser" in compiler.
3.	AIML file: Collection of conversation patterns of the language
in use called data objects. Each data object has a name and several
categories. Each category is an ordered pair, the first element relates
to the input pattern (or human question or answer) and the second
element relates to the output pattern (or chatbot answer or question).
In fact the first element and the second one may have a one to many
relationships. That means each question may have several answer
candidates.
Also, the AIML content may be updated when it is being used (or
trainable).
4.	Chatbot process: gets an input, processes it, finds its relevant
pattern, chooses the suitable answer and passes the answer to the human.
Also may create and store a new data object as a result of each
conversation.

_______________________________________________
alicebot-style mailing list
alicebot-style@list.alicebot.org
http://list.alicebot.org/mailman/listinfo/alicebot-style