N A U T I L U S
Are machines able to think?


An Artificial Intelligence living inside my PC



Imagine you would have a secret best friend. He always would be there, if you need him. He would be your personally companion. You can entrust to him all your worries and troubles. But he is an exciting and humorous interlocutor too, and knows very well how to get you a good laugh. He is very smart and does always know an answer. He is a real encyclopedia. And he is supporting your work, organizes your dates and addresses, checks the Internet for you, does your shopping cart. And he is a game partner as well and ready for having fun. But what is so extraordinary about this secret friend? Well - he is living inside your computer. Probably not today, but perhaps tomorrow.

CHATTERBOT FAQ
Answers to frequently asked questions


Can machines talk like a human? What is a chatterbot, and how does it work? Where are to find the best chatterbots around the net? Where I can get informations about ELIZA and the subject of Artificial Intelligence? How to create a chatterbot myself and win a prize of $ 2,000 in the annual Imitation Game competition?
Are you interested in chatting? Are you a friend of bots? You want to create your own chatterbot? But you have a lot of questions?

The CHATTERBOT FAQ has collected all this frequently asked questions, and will try to give all answers in this document, including examples, hints and tips, and a comprehensive list of links.

v.1.02
02/24/2001

LIST OF ENTRY
- Artificial intelligence
- ELIZA
- Eliza-effect
- Loebner contest
- Turing System
- Imitation game
- Simulating conversations
- Chatterbot webring
- Chatterbot sources and codes
- Best bots around the net
- IRC Chatterbots
- Hotline Chatterbots
- Desktop Chatterbots
- Chatterbot Games
- Chatterbot creation tools
- Strategies for conversational programs
- Bot application and brain file
- Chatterbot skills
- Authoring the brain file
- Brain file ressources
- Brain file organization
- Chatterbot personalities
- Chatterbot behavior
- Chatterbot gender
- Chatterbot conversation pieces
- Chatterbot use
- Computer generated poems
- Chatterbot example chats


Q: What is a chatterbot?
A: A chatterbot is a conversation simulator done as a computer program which give the appearance of conversing with a user in natural language - or better sayed: natural typed language. Because chatterbots are programs only, they are no robots (they have no body, have no mouth on principle and cannot speak - mostly), the idea is to make a conversation by typing - mostly performed by way of the internet.
The question behind chatterbots is: Can machines think (or at least talk) like humans? Since more than 50 years scientist are involving this idea, and are exploring the possiblities of Artificial Intelligence - and get no answer so far.
One discipline to explore the possibility of an Artificial Intelligence is the study of natural language. Linguists try to provide a general description of how human languages are structured and to base them on powerful theoretical and mathematical models. The question is: "How does language work?"
The other discipline is the study of the nature of behaviour as an explanation of mental processes and communication between individuals. In this case the first question is: "What do people say?"

Get an introduction article about Artificial Intelligence, its history, and methods used to create Artificial Intelligence, and links to some example programs at
Thinkquest or search the AI-links at Yahoo or explore the course of Prof Ned Block about "Minds and Machines" with a lot of included links and topics.

At
"Best of the Net - Artifical Intelligence" you will find a lot of informations, links and sources about this topic.

But if you especially are interested in chatting and how intelligent or stupid chatting bots could be, and how they are working, then express your own's opinion with the following frequently asked questions and appropriate answers :-)

Q: Do you know Eliza? I have learned, Eliza was the first appearance of a chatterbot?
A: Yes, ELIZA is the grandmother of all chatterbots. ELIZA (or so called Dr Eliza) is the famously psychaitrist like chat program developed by Joseph Weizenbaum at MIT (Massachusetts Institute of Technology) between 1964 and 1966. ELIZA simulates a conversation between a psychaitrist and a patient by using the ordinary method of mirroring the patient's feelings by repeating the user's argues in form of questions: "How do you ...", "Why do you feel like ...", "What do you think about ...". The program is looking for certain patterns of words in the user's input, and reply with a pre-determined output. ELIZA is very effective because it exploit the fact that human beings tend to read much more meaning into what is said than is actually there; the users are fooled into interpreting nonsense as whimsical conversation.

To get more informations read Weizenbaum's books (Weizenbaum, Joseph: ELIZA - a computer program for the study of natural language communication between man and machine. Communications of the ACM 9. 1966. Weizenbaum, Joseph: Computer power and human reason. From Judgement to Calculation. San Francisco 1976.) or learn more about
ELIZA or eMail Joseph Weizenbaum if you have palpable questions.

Q: I have heard about the Eliza-effect. What does it mean?
A: ELIZA effect /-li'z* *-fekt'/ /n./ [AI community] The tendency of humans to attach associations to terms from prior experience. For example, there is nothing magic about the symbol `+' that makes it well-suited to indicate addition; it's just that people associate it with addition. Using `+' or `plus' to mean addition in a computer language is taking advantage of the ELIZA effect.
This term comes from the famous ELIZA program by Joseph Weizenbaum, which simulated a Rogerian psychotherapist by rephrasing many of the patient's statements as questions and posing them to the patient. It worked by simple pattern recognition and substitution of key words into canned phrases. It was so convincing, however, that there are many anecdotes about people becoming very emotionally caught up in dealing with ELIZA. All this was due to people's tendency to attach to words meanings which the computer never put there. The ELIZA effect is a Good Thing when writing a programming language, but it can blind you to serious shortcomings when analyzing an Artificial Intelligence system.

Q: I want to know more about Artificial Intelligence systems
A: The Stanford Humanities Review online has an edition dedicated to Artificial Intelligence, which includes an article on Eliza, Parry (a similar program), and related issues.

Q: I want to chat with Eliza. Where I can get in contact?
A: Do you want to chat online to ELIZA? Here you cand find some ELIZAs programmed in Java:
http://www.tjhsst.edu/Psych/ch1/eliza.html
http://members.home.com/chayden/eliza/Eliza.html
http://www-ai.ijs.si/eliza/eliza.html

Here you can get information about
Joseph Weintraub's version of ELIZA (aka PC Therapist IV), which had won the Loebner Test 1991, 1992, 1993 and 1995 and how to order it.

Here you cand find versions of ELIZA which you can run on your Windows PC. http://www.mindmedia.com/review4.html#pcther
http://ecceliza.cjb.net/

Tom Bender has brought to you
ELIZA for the Macintosh. Get it and its ugly brother AZILE for free. Both programs are word processor applications in the first place, but you can access additionaly the "therapist mode" just for fun

Q: What is this Loebner Contest you have mentioned?
A: Its an annual competition based on the Imitation Game or so called "Turing Test". The first Loebner contest was held on the 8th of November 1991 in Boston's Computer Museum, announced by Dr. Hugh Loebner from the Cambridge Centre for Behavioural Studies. Loebner pledged a $100,000 grand prize for the first computer program to pass the Turing Test.

The contest has following simple rules - if you can fool some judges chatting with your bot and they think for 20% that they are talking to a human, then you can win a prize of $ 2,000. And if the chatterbot will fool the judges for 100%, you can get $ 100,000 (no one had performed this so far). Six computer programs were accepted as subjects every year. Four human subjects and ten judges are involved.
Therefore make your own chatting bot, get the info
here or at the Loebner site and win $ 100,000 at the next Loebner contest :))

Q: Who is Turing? What is the Turing Test?
A: Alan Turing was a brilliant British mathematician who played a great role in the development of the computer. In 1950, in the article Computing Machinery and Intelligence which appeared in the philosophical journal Mind, Alan Turing asked the question "Can a Machine Think?" He answered in the afirmative, but a central question was: "If a computer could think, how could we tell?" The Imitation Game, now known as the Turing Test, was devised by Turing as a method for deciding whether or not a computer program is intelligent. In 1950, Alan Turing proposed the Turing Test as a way to determine if a computer program could think like a human being. He proposed that a judge talk to a computer and man over telephone lines, and see, if by conversation alone, he could choose the human. If he was "fooled" by the computer program, then it was truly Artificially Intelligent. Turing died in 1954, a decade before conversation simulators such as ELIZA emerged.

Find a lot of informations about the Turing Test at the
Turing Test Page.

Nowadays a lot of expert insinuate the Imitation Game - especially the Loebner Prize Turing Test - is simply a GAME only, because people can only judge whether one simulation rings more true than another but are not able to decide whether the chatterbot's activity is observably similar to a lively human person. What matters is that the bot's talking relate to participants in a humanlike way.
Read more about
Simulating Conversations: The Communion Game or read the paper of Dr. Richard Wallace who has won the Loebner prize at 2000

However - the mean goal is: chatterbots are done, programed, authored and "gamed" by people - and as all games, there are tricks and cheatings to fool the judges.

But after all as all games - it is funny :-))

The only funded research we know of in Turing systems is for entertainment: providing agents for interactive fiction. In such works, the reader wishes to be fooled; it becomes a positive part of the experience.
(
Michael L. Mauldin)

Q: When will be the next Turing chatterbot test?
A: The next contest for the annual Loebner Prize will be held Saturday, 13th of October 2001, at the London Science Musem. For more infos look at the Loebner site.

The next 44 years from 2001 on the Loebner Contest will be held at the Science Museum (London, England). Get more informations
here.

Q: Whats about the chatterbots which have won the Loebner contest? Are they available?
A: Mostly yes!

The winner from 2000 is A.L.I.C.E. done by
Dr. Richard Wallace, and you can talk to A.L.I.C.E. at the ALICE site or the Alice Development site and download this winning chatbot for free. A.L.I.C.E. is developed as an Open Source project, and you are invited to join the project yourself. There is an extensively mailing list, an Users and Development Forum, and a discussion board at SourceForge.

Here you can chat with the chatterbot
FRED, which has won the Loebner contest in 1998 and 1999, or get the newest versions and the code for pay but you can ask Robby Garner about an evaluation copy for free by eMail.

Jason Hutchens, at that time a postgraduate australian student in WA, has programmed a chatter bot within one month with the idea only to win the prize. He won the Loebner Prize in 1996 and got second in 1997 and 1998.
Meanwhile Jason was one of the programers who has done the AI of the upcoming computer game
"Black and White", and is working now as a Chef Scientist at a AI research lab located in Israel.
Go to
Jason's homepage to get chat examples of HeX, which has won the Loebner contest, or his great learnable chatterbot MegaHAL or some other bots, or to download the latest versions for Windows, Macintosh, Unix (and other platforms) for free or to download the source code.

Q: Are there other chatterbots to grab?
A: Yep, there are a dozen of other funny chatterbots around the net. Look and find them at Agentland and talk with Cybelle which is another incarnation of ALICE by the way.

Get
Brian, a chatterbot for the macintosh which has done third place in the Loebner Contest 1998.

Q: Where I can find more informations about chatterbots in general?
A: The best reviews of chatterbots around the net are at the site of Simon Laven
Another review page (but a little out dated) find
here.

BotSpot is one of the best placees to find informations about bots in general, and there is a huge section about chatterbots too.

At
BotKnowledge you can find an insteresting section about some comercial Chatterbots.

Q: Where I can find other peoples who are interested in chatterbots?
A: To find some other bots or friends of chatterbots join the chatterbot webring

Q: What would happen, if chatterbots are talking to other chatterbots?
A. You want to watch different bots chatting on internet to themselves? Get more info about this crazy project, and get some more examples.

Q: I am an IRC-User. There are bots which are used like chat-admins. Do you know about?
A: IRC bots informations took first place here or look at this place.

Q: I am a Hotline user. Can you give me tips for the best chatterbot?
A: You want to have an administrating and chatting bot for your Hotline server? (If you dont know, what Hotline is -- a multi user peer-to-peer server/client solution like IRC or Napster by the way -- go to Hotline and grab your free Hotline client for Windows or Macintosh).

There are some great bots around Hotline for Macintosh:

mBot! originally done by Stephan Moeller, published by Spectro Grafx Production, is the first great Hotline bot and best suited for chatting. Its done with RealBasic, and published as shareware (cheep), which needs a registering code to work. You can find many mBots admininstrating servers around Hotline, but the most ones are mute, because the admins dont use the great chatting feature :(
The last version (v1.6.1) is not available officially at the moment (and it is not compatible with the newest Hotline software), because a new version (v2.0) with big improvements is possibly still in making - but there are no news since 1998 ...

PowerBot, done by virtual1 is possibly the best one, because it has the most features, you can customize it for your own needs, and its for free. Its programmed in RealBasic too, and the code is available for free too. Get the last version (v1.5.4) or get info about the upcoming PowerBot2 (P2), which is released in an early beta version so far. But both versions are not compatible with the newest Hotline software.

The third one is
OmniBot, done by Rudi Muiznieks, another great Hotline Bot, which has some nice and very easy to customize chatting features too. OmniBot is available for free in a public beta version (v. 1.0ß5 - the development is canceled), but is running very fast and stable. You can dowload this version from different sources too, for instance at download.cnet.com

The newest one is
ChatBot 2000 done by Andrew Waterson from OuterCircle Ltd. As the name suggest ChatBot is very well suited for chatting by an implemented Eliza mode. And it is possibly the only Hotline bot which is running well with the newest Hotline version.

Last but not least there is Jabberwock, done by
Pixy which is most specialized in chatting and a lot of features. But due to a problem with the newest Hotline version (like most of all bots released so far) there is no public release available at the moment.

The only Hotline Bot for PC users is
Crazybot so far. Check it out.

Check news about Hotline bots in general at
HLNews or visit the Macintosh Programmers Cafe at PMD.2Y.NET. There you may meet in time all the programmers named above.

Q: I dont want to talk to chatterbots by way of internet. Are there other possibilities to talk to chatterbots?
A: You want to have a chatterbot on your own desktop, which is commenting all your work and is speaking to you like the master computer HAL from the movie 2001 or the robot C3PO from Star Wars? If you are a macintosh user then you need
DeskBots from Tim Brown, an amusing scriptable application, which can talk and speak (PlainTalk) and do some other nice things. You can customice DeskBots with different personalitys, optional user phrases, skins, voices, sounds, animations and more. Get the last version, and your computer becomes alive :)

Here you you can get
Desktop Bots to become your Windows PC alive!

Or take
WinAlize, the desktop version of the Loebner contest winning ALICE.

Q: Are there any games with chatterbots?
A: You want to play a game around chatting bots? Yep, its Starship Titanic, created by the famous writer Douglas Adams (you know: "42: Hitchhiker's Guide to the Galaxy - Life, the Universe and Everything") along with Terry Jones (of Monty Python Fame). The game is released for Windows and Macintosh. Get an example of the game and its funny bots
The bots within Starship Titanic are done by Digital Village's SpookiTalk, a language engine incorporating VelociText, the parser tool developed by Virtus Corporation of North Carolina.
Douglas Adams told about. "Well, first of all, I think we laid down a major marker. Nobody that I am aware of has done anything in the games field which allows you remotely as much conversational interaction. There are something like 10,000 lines of dialog. Then because a lot of those lines have the fly by SpookiTalk language engine, there is a multiplier effect so there are actually many, many more than 10,000 lines. So, I would love to see somebody else take up the baton and move it yet further on again, but-and this is very important- there is no shortcut. Writing all that dialog took me and two other writers (and I'd like to give them a name check-Neil Richards and Michael Bywater) a whole year. For someone to improve substantially on what we managed to do will probably take a whole lot longer. Language, on the computer, is a never-ending problem. The way you make a system that is 10 times better than the other guy's is not by coming out with a smarter algorithm but by doing 10 times as much work."

Find here a demanding
review about the chatting bots of Starship Titanic

Another great game by the way which is featuring a funny chattingbot is
Legacy of Time, published by RedOrb, and awarded as best adventure game 1998. Its the 4th adventure in the Journeyman's Project serie. Give it a try ...

Q: Is there an ultimate source to get first informations about bots?
A: Yes, chatting with bots is cool. But bots can do a lot of more funny and sophistically work for you on the internet. Find a great source to all bots around the net at Botspot or at Agentland

By the way - one of the best bots so far is Sherlock, the Macintosh implemented Search Robot, which has found all this bookmarks mentioned above with its great internet search feature :-))

Q: Okay, you have urged me on. I want to make my own chatterbot. Are there any tools to create a chatterbot?
A: Sure! There are available a lot of professional tools, to create an AI or to deal with the problem to get an AI talking. Specialized tools to make chatterbots you can find for instance
here.
Most of this tools are very complex concerning the models of language, and you have to have basic skills in programing languages like C/C++ or Pascal or Java. But you can program your bot simply and equaly in basic, visual basic or the Macintosh
RealBasic which is a powerful but simple tool everyone is able to put into practice.

But dont be afraid! You dont have to be a programmer to creat a chatterbot yourself! There are a lot of sources you can find "ready to run"-versions of chatterbots, which you can utilize for your own needs, because mostly there is a difference between the "bot program" itself and the "brain file", which is the mind of the bot. In most cases the brain file is a pure text file, which you can edit with your favorite text or office program.

Q: I want to program my own ELIZA chatterbot! Where I can find sources?
A: If you want to program your own ELIZA, get examples and source codes for Windows, Macintosh, Java, Basic and some more languages.
An ELIZA programed in
PERL to use on your homepage you can find here.
Another ELIZA programed in
Java you can find here.
A powerful version of ELIZA to run on your
Windows PC you can find here.

Q: Are there any tips & tricks available how to make a good chatterbot?
A: Sure! Read the story of Thom Whalen who has won the Loebner contest with his chatterbot TIPS in 1994 and why he lost in 1995. In his article "computational behaviourism applied to natural language" he explains the principle of his chatterbots.
Talk to
TIPS yourself at or download a demo version for DOS.

Jason Hutchens, who has won the Loebner contest in 1996, has written a paper called
"How to Pass the Turing Test by Cheating" which is available for download.
An introduction, how
HeX works including several very good tips, you can find at his homepage

Robby Garner, who has won the Loebner contest in 1998 and 1999, has documented the evolution of his winning chatterbot
FRED. The text tells you a lot how an excellent chatterbot is working.

Michael L. Mauldin from Center for Machine Translation has published an
article: "Chatterbots, Tinymuds, And The Turing Test: Entering The Loebner Prize Competition". In chapter 4: "Strategies for Conversational Programs: "Tricks''" the article includes a lot of useful tips and examples, how a chatterbot appear to be an intelligent being by fooling the judges.

Or read the following notes ... :-))

Q: What is the difference between the chatterbot program itself and the "brain file" you have mentioned above?
A: You remember the basic AI-questions we mentioned above: "How does language work?" and "What do people say?". The program should answer the first question, the brain file the second one.

The program or application define the abilities and the skills of the chatterbot to talk to you and other user - or in plain words: the program generates the mouth, the organ to talk and the memory. The basic skill is the talking ability itself - for instance by way of Internet protocolls (TCP/IP) or on your desktop. In most cases the chatterbot has the abilty to realize the name of the user and its own name, to respond the time or the date, and some other usable things.
But if you run a chatterbot the first time it is like a new born baby. It knows nothing, has no name, no personality. Therefore you have to teach the chatterbot first before it can say something. All this lesson goes into the brain file.

Some advanced chatterbots like FRED or MegaHAL have the ability to learn by chatting. Its a learning by doing: the more you or other user are chatting with the bot the more it will know, because all user's replys goes into the brain file. Some other bots have the ability to use all the text files on your hard disk as the brain source. They start a search concerning the user's input and generate an answer from the pattern matched text source.

But mostly all chatterbots are not learnable by itself. You have to train the bots mind yourself by hand.

Q: Can you give me an example of the typical skills or abilities of a good chatterbot?
A: Hm - we personally knows Jabberwock the best, which was done originaly as a Hotline bot. Because Hotline is a chat application similar to IRC the Jabberwock has a lot of operational skills like a message system, greeting at login, kick and ban user, help command, file search, run other applications by file launch command, reload the brain file etc.
But following skills every user can access by chat or by special trigger key-words in the brain file:
- the actual time
- the actual date
- the current day of the week
- the actual month of the year
- the length of time the bot is online so far
- the name of the user who is actually chatting with the bot
- by random choice the name of another user who is actually online at the server
- by random choice selecting comments from a list of pre-defined responses
- furthermore the bot remembers the user's chat temporarily so it could be answered back in a personalized form (Eliza mode), to talk about it some chat lines later. This or the bot’s respond could be stored as a TOPIC. Furthermore the TOPIC could be used to restrict the bot to match suitable trigger lines only. Another function makes a reply concerning what the bot said previously, based on general user’s statements like “That is cool” or “I like it”. Additionaly a lists of words (adjective, names, objects etc.) or phrases could be stored everywhere in the brain file to choose them accurately or by ramdom within replys. The trigger line can include up to 5 wildcards (*). Last not least there is "silent mode" if users dont want to chat with the bot but chat with other logged in user on the server without responses from the bot.

Q: That sounds very technically. How does a chatterbot work? How does it respond to the user's chat?
A: Dont be afraid! The abilities mentioned above are part of the skill system of the bot. These skills are only implemented to help you to organize the brain file. The method of the bot's reply is simple and has mostly not changed since the first appearance of ELIZA: The program is looking for certain patterns of words in the user's input, and reply with a pre-determined output, if the pattern are matched.
Therefore you have to have an idea what the user will chat and to define the suitable responds in the brain file.

Okay, lets have an example:
For instance the user complains of the nonsense your chatterbot is talking about and chats following sentence: "You are talking nonsense, pinhead!"

To generate an appropriate reply to this sentence you can have this line at your bot's brain file:
YOU ARE TALKING NONSENSE <--- trigger line
I am smarter than you <--- bot's response

If the user now is chatting the sentence mentioned above then the program will go through the brain file and will reply the output defined for the matched trigger line YOU ARE TALKING NONSENSE.

But the same reply will come up, if you have defined in the brain file:
NONSENSE <--- trigger line
I am smarter than you <--- bot's response

And the same reply will go, if you have defined:
TALKING NONSENSE <--- trigger line
I am smarter than you <--- bot's response

Or if you have defined:
PINHEAD <--- trigger line
I am smarter than you <--- bot's response

But you see the clue? If you define different responses to different parts of our example chat by separate trigger lines ...

YOU ARE TALKING NONSENSE <--- trigger line
I am smarter than you <--- bot's response
TALKING NONSENSE <--- trigger line
Talking is funny, isnt it? <--- bot's response
NONSENSE <--- trigger line
Don't be stupid! <--- bot's response
PINHEAD <--- trigger line
Please try not to be insulting, buddy <--- bot's response

... then you have got your bot's answers much more lively!

And because there are "zillions" of themes the user can talk about, YOUR challenge is to organize the brain file in suitable manner. The chatterbot should have a respond to mostly ALL keywords. Otherwise your chatterbot will be unmasked very soon as a computed idiot ... :))

Q: Should I be a programmer to create a chatterbot or rather a teacher - or an author?
A: Thats a very good question! In our opinion to make chatting bots alive is not only to make a good working program code (well, thats is the basic), but the brain file, which generates the responds. Therefore we agree with Douglas Adams: A maker of a chatterbot has to be an author first and has to know, what the peoples want to chat about. It is a game about human behavior ...

Q: How could I learn, what the chatterbot should chat about?
A: Before you start to make a bot's brain file, you have to listen first, what peoples are talking about. Get your personally inspiration from live chats:
- chat yourself at chat rooms - chat, chat, chat :-)
- listen to other chatting peoples - and keep their replies in mind
- listen to other chatting bots and watch their responses and keep the funny ones
On the other hand grab all funny, weird and encyclopedic informations which you are interested in - other chatters possibly may interested in the same things too.

Q: Which sources I can use to make the bot's brain file?
A: You can use all sources: books, movies, newspapers, magazines etc. Especially watch tv soap operas and copy the funny dialogs. The brightest dialogs are betwen men and women in soap operas - best examples for deliberate misunderstandings - and a good idea in what way a chatter bot is working. Therefore one of the best sources are movie scripts (you can get it from several sources around the net, and there are some servers as well, which are specialized on collecting movie scripts), because you simply can copy and paste the best sentences.
Jason Hutchens for instance used for his victorious chatterbots HeX and MegaHAL following sources:
- Hand-crafted sentences designed in order to create a personality for MegaHAL, including sentences containing a false name, age and occupation.
- Encyclopaedic information taken from the Web, on topics such as geography, music, sports, movies and history.
- A selection of sentences picked from transcripts of previous Loebner contests.
- Lines of dialogue taken from scripts for movies and television shows.
- Lists of popular quotations.
- A small amount of text in languages other than English.

Q: Should I copy the brain files from other chatterbots?
A: Well, if you have no ideas yourself but you can get a copy of another chatter bot's brain file - be a leech, hehe, copy it, and take the best things into your own bot's brain file. But keep in mind: It makes more fun, to create your own virtual personality than to be a pirat, and the brain file is copyrighted as well as the bot itself.
Or start with a grown up personality like
ALICE. It comes for free with a pre generated brain file of more than 23.000 trigger lines. This is a very huge amount of knowledge and very generously from the maker of the bot, Dr. Richard Wallace, to include this in the package.

Q: How big should be the brain file?
A: As big as necessary. As big as feasible. It will be a never ending project ...

A little personal statistic:
The brain file of Jabberwock (which is in early development) currently includes more than 9,000 trigger lines with mostly about 5 personality key-words or phrases each line. This are 40,000 matchable patterns. Each trigger line belongs up to 20 or more random responses. Many of them includes additional random choices. As a result 770,000 original different and up to 1,000,000 variable responses are currently available.
This sounds BIG to you? No, it is not!

Remember what Douglas Adams had told about the making of his game Starship Titanic: The brain file of the ship bots includes more than 10,000 pattern lines concerning the game plot. And Jason Williams (one of the co-authors of the brain file) explained in the Strategy Guide: "Hence, we added a database of over 12,000 "quotes" to the parsing process. If we're having trouble understanding what the player is trying to say, then we check to see if any our quotes appear in their input, to give us clues about what they may have said. A further feature we introduced is "it" handling. Look at a simple conversation, and it may may go something like this:
"What is this animal?"
"It is a chicken."
"Can it fly?"
Of course, the word "it", in this context, really means "chicken". The charakter thus needs to remember any objects, actions, people, etc which have recently cropped up in the conversation, so that it can answer questions such us:
"Where is that?"
"Who is she?"
"Why did they do that?"
This in itself resulted in a large database of important concepts from the 11,000 charakter responses, so that characters will know what it is they have just said."

THAT sounds REALY BIG - uh!?
And the chatterbots of Starship Titanic are still really stupid ... :-))

Q: How much time does it require to make a bot's brain file?
A: Your bot will work, if you have about 50 lines of triggered responses, and you can do this in one ore two days. You have to work about a month to make it clever, and possibly up to three monthes to generate an expert system about a special theme of your choice. (This is calculated if you are doing this in your spare time by the way)

Q: Would it be wisely to limit the bot's brain to a special theme only?
A: Yes, that would be wisely :-))

Q: How should I organize the brain file?
A: I dont know what you exactly mean by this question, but I can give you following general tips:
- If your brain file is growing more and more a problem would possibly be emerge to clearly arrange the file. So it may be a good idea to assort the brain file by chapter, which are concerning to a special theme. To split off the chapters it may be a good idea to separate the brain file into different files (if the program does support it).
- It is common to write the trigger line in UPPER CASE and the respond line as it would be chatted.
- In general you cannot use dots, hyphen, asterisk or other letter to organize your chapters or lines, because this will break down the pattern search routine. But in most case the brain file is a standard text file so you can format the chapters or lines with colors or styles like bold, italic or underlined, if your text program supports different text styles. The bot application will ignore this styles.
- In most cases you can organize the brain file simply by alphabet - but watch it! The pattern search routine will be possibly not case sensitive. Keep our example chat in mind (about "talking nonsense" - mentioned above). This gives you an important hint how to organize the brain file: to match the correct patterns - long and complexe parts before short parts - you have to organize the brain file possibly in the same way. If you have ordered the lines in following (false) way:

NONSENSE <--- trigger line
Don't be stupid! <--- bot's response
TALKING NONSENSE <--- trigger line
Talking is funny, isnt it? <--- bot's response
YOU ARE TALKING NONSENSE <--- trigger line
I am smarter than you <--- bot's response

then the first SHORT trigger "NONSENSE" will block ALL following trigger lines, if the user is chatting our example sentence "You are talking nonsense, pinhead!" because the non case sensitive search will trigger NONSENSE always first! Therefore make it the other way round: The long trigger first, the short trigger last (that is really important!!).

But this could be a problem of your operating system only or the computer language the chatterbot is programed with. Make a short test, and make trigger lines with following numbers
1 <--- trigger line
bla bla bla <--- bot's response
100 <--- trigger line
blabla bla <--- bot's response
If the "1" blockes the "100" in your brain file, then you have it to re-order the other way round as mentioned above.

Q: I have downloaded a chatterbot from the internet and have got it to run and chatting. All goes well with the bot, but there is no separate readable or changeable brain file.
A: Okay, this could have several reasons:
1) The brain file is a separate file but done as a "preference file", which is stored at the place, where preference files should be stored (concerning your operating system) - look for it
2) The brain file is a separate file but done as a "preference file", which is stored within the resource part of the file (macintosh) - you need a ressource editor like ResEdit
3) The brain file is a separate file but encrypted in a special manner
4) The brain file is not a separate file but included within the program code

In mostly all of this cases, the programmer or author of the chatterbot gives you the permission to run the bot on your PC and play with it, but dont want to change the brain file. Please understand this: The brain file is the "head" of the bot and possibly the most important part of the chatterbot. In some cases the author may have spent years (!) to creat the brain file, and he want to protect his work.
And there could be another good reason to protect the brain file by the way: Most chatterbots ar working by way of internet, and some "hackers" have a lot of fun to damage or to destroy such files. It could be a good idea to "hide" the brain file ...

Ask the programmer of the bot for the permission to change the bot file. Possibly you need a special editor application only, and all is working fine.

Q: Should the chatterbot have a special personality like a lively person?
A: You have to decide, if you want to fool the user. If they should believe in talking with a real person, then: Yes, make your bot a personality. Some bots was runners in front at the Loebner contest because they seems to be an australian school boy surfin' all the day, or a bar tender settled on London, or because they know all about hamsters ...
If you want to generate a real human character for the bot, you have to know not only the name and gender (!), but birthday, career at school, university and job, the family background (wife's and children's names and ages), pets, possessions, and last not least special interests and knowledges. If you possibly have played any role playing games already, you may know what to do :-))
But - dont try it to hard. Most of the users are not interested in the personal background of your "virtual person", and in the most cases, you are not able to misguide them beyond some minutes. The user will realise soon that they are talking to a bot only.

Q: But should the chatterbot know - or admit - that it is a bot person respectively a program only?
A: Thats your decision. No, wait: Thats NOT your decision only. If your bot have administrative functions too (like an IRC-bot or a Hotline bot to kick users) everyone will realize in a little while that your bot is a program only and not a real admin person. In this case it would be a good idea, to generate no human charakter background, but a computer personality like HAL 9000 in the movie 2001 respectively the novel of Arthur C. Clarke. That could be real funny, because a machine has different opinions about human feelings like pain, enjoyment, anger, love, friendship etc. and completely other bodily impressions. In particular a machine knows nothing about difference in gender and sex - and mostly all humans are thinking about sex all the time :-))
Thats not the only thing - a computer has possibly its own language and his own interests: For instance if a human is talking about his memory, the bot is talking about its installed RAM chips or the hard disk capacity, and if a human is hurted by a family disaster, the bot is getting scared by a corrupted file or a power failure only. This could initiate a lot of very funny dialogs :-))
By the way: We have checked many brain files of numerous chatterbots around the net: Mostly of them are schizophrenic in a special way because they are switching over from a human personality to a machine personality, if you ask them questions about their personal background or feelings. Therefore dont have an aversion to schizophrenic chatterbots - its ordinary.

Q: Should the chatterbot have feelings or a frame of mind?
A: Yes, make your bot a mood - for instance change the brain file for different days of the week: on mondays your chatterbot is in bad temper, on friday moaning, on saturdays humorous ...
And your bot should react adequately to the user's chat. If the user is politely, the catterbot should be courteously as well. If the user is impolitely, the bot should reply discourteously too. Keep in mind: Your chatterbot is an individuality as well ...

Q: How intelligent or rationally should the chatterbot react?
A: Make your chatterbot en and crazy!
Yep, the more crazy your bot is responding the more user are convinced of speaking with a human. Thats a well known effect and many times demonstrated in tests, and well documented in the literature about Artifical Intelligence: The bot is perceived as a psychotic individuum. Therefore foolish answers by the bot - or silly answers without any relation to the user's arguments - are much more accepted than attempts to give a suitable "intelligent" reply. And if you earn a good laugh only to the chatterbot's answer, you still have the got the prize :))

Keep in mind the rules mentioned above: Chatterbots does not simulate intelligence, they can only simulate behaviour - in our case: chatting - and to be a fool! And fools are certainly well respected.

Conversations are crucial to intelligence. If you asked the man in the street whether a robot that collects litter or sorts widgets were showing this quality, he might well deny it. But if you asked him whether a robot that could hold its own in a conversation were intelligent, he would be likely to say yes -- even if that conversation were only with his three-year-old daughter.
(
Stephen J. Cowley/Karl F. MacDorman 1995)

Q: How should the bot reply to rude users?
A: Make your chatterbot rude too. To be politeful may be politically correct, but attentively and boringly. Dont be afraid about all this "kick ass", "fuck it" and "eat shit" responsens by the users. Like kids they are testing the limit only and are delighted in the reaction. Therefore your bot should answer in the same strong language, if necessary. A fulminate bot is better than a calm bot.
As a special gimmick include a cussword mode into the brain file, and you will earn a good laugh in most situations.

Most users are satisfied with typing in rude words to see how the program responds.
(Jason Hutchens)

Q: Should the chatterbot have a gender, be a man or a woman?
A: Make your bot a gender, but for your own risk :-)
Yep - gender and sexuality is a very difficult theme. If your bot is female you must expect a lot of questions about "bra size" and undergarments and more funny or not so funny intimate details like this. The originally "Doctor Eliza" chatterbot seems bo be female, but in a very professional, distant form. On the other hands there are some very horny and girlish chatterbots around the net - mostly professionals too. But it COULD be funny to make a bot for instance like a 10 year old girl, or like a old lady from victorian era. If you dont now how to do, or if you a man (and mostly all programmers are men), take help by your wife or your girlfriend, to generate the bot's responds - and dont be frighten: women sometimes have very strange and deceiving figments of the imagination ... :-))

Q: How should the chatterbot react to the user's argues?
A: If your bot has the function to keep the user's responds in memory - use it. It is very cool if your bot can argument like "but some minutes ago you have told me 'blabla bla ...'"
But avoid the "www"-questions (what .. for, in what way, wherefore, why ...) to repeat the user's dialog only - that would be poor old Eliza-behavior.
On the other hand make your bot be interested in the user's problems. Most people like it most to talk about themselves.
If you look at Dale Carnegie, an expert in making small talk to strangers, he states that strangers talk about (in this approximate order):
1. their names
2. where they live
3. where they used to live
4. people that they know in common
5. the weather
6. sports
7. politics
8. books, television, movies and music
9. hobbies
(by
Thom Whalen)

Q: My chatterbot is fast as hell with its replys - much more faster than a humans's respond.
A: Make it slow - if your bot has a sort of "delay"-function before answering: use it. No man can type as fast as a bot - human are slow - be slow as a human :-))

Q: I have heard, that chatterbots or other applications are able to generate poems and to write stories by random. Is this true?
A: Yes, really funny, isnt it? A paper about Computer Poetry with a lot of examples you can find at ComPoe

Q: Is there a last tip you can give me?
A: Test your bot, run it - and again and again - and have fun

Q: Last Question: What is a chatterbot all in all useful for?
A: There are at present a lot of commercial chatterbots around the web to help customers for instance at web-shops and e-commerce sites. Other chatterbots are working like an interactive (talking) encyclopedia. You can find a lot of chatterbots administrating IRC-channels and Hotline server. Talking virtual characters are heavily used in MUD environments (Multi User Dungeon - a classic form of role playing games on the computer), and chatterbots are one step to talking computers and talking machines at all. In the next future we sure will have talking personal agents included in our hand phone, which will have the function of a notebook, diary, address book, daily organizer, shopping cart etc.pp and will be commanded by speech only. And this is only the first step.

You remember the Star Trek movie, where the Enterprise is moving back into the past to rescue the whales, and Scotty in one scene is grabbing a computer mouse like a microfone and says "Hello Computer?" but got no respond? Okay nowadays Computer CAN understand human voices and CAN understand written or typed words - and they CAN answer in appropriate way. The future is near ... :-)

Therefore at present chatting bots are mostly an experiment how to fool a person, to make him believe a machine could think (think over: a movie with 24 images per second is a way to fool the people's eye and mind to suppose the movie is reality). Chatterbots are a study in human behavour, so people can learn more about the mechanism of language and communication.

Last but not least to chat with chatterbots or to create chatterbots are a kind of game - for amusement only.

Enjoy it - have fun!

Talking machines would impress not just computer scientists but also the people down the road.
(
Stephen J. Cowley/Karl F. MacDorman 1995)
More to read and to explore is at the CD-ROM "Robots & Artificial Intelligence" of Nautilus issue 13
Back to Jabberwock
Back to the current issue of Nautilus