Justin Beerley A Very Rough Draft: the Chatterbot. ****************************************************************************** In 1976 the first chatterbot was created by Joseph Weizembaum in an attempt to replicate the conversation between a psychiatrist and a patient. The name given to this application was Eliza Doolittle. That program is commonly referred to as ELIZA, and it’s currently it is the best known Artificial Intelligence program in the world. There is a lengthy list of successors to ELIZA. This list includes everything from the A-Bot to ZolaOnAol. The previous mentiond programs are simply improvements of the original. Conversely, some people are maintain that these recreations are degenerations of the original. Whatever the case, one thing remains constant throughout the program: the structure of its shell. A chatterbot is no more than a program with an algorithm to parse a string. That is what ELIZA is: a string parser. You enter text, the program searches for specific entries and bases a response on what you typed. For instance, if you type “you” the program responds “I.” Similarly, if you type “me” the chatterbot responds “you.” The list of conversions is seemingly endless and rightly so. After all, the chatterbot is attempting to simulate a conversation. The latter mentioned dictionary file is why ELIZA’s successors are sometimes considered better than the original. They simply have a larger lexicon. Sometimes the dictionary file is in excess of ten megabites – that’s a lot of text. Everything and anything you can think of is put in these dictionary files. This feature of chatterbots, as well as other programs that can be modified without changing the shell, is known as extensibility. You can always update the database, and the larger the database you create, the better the program will be. It’s similar to how a virus scanner updates its definition file. The extensibility of a chatterbot is limitless. You can create different dictionaries for different personalities. For example, if you wanted to build a chatterbot like Rosie from the television show the Jetsons, all you would have to do is write the Rosie definition file. There are an infinite of personalities. And this brings me to my purpose. My original idea was to build a chatterbot to answer simple mathematical questions. However, I found that type of application to be very impractical. Research I conducted proved that a mathematical program is much more efficient if written in a proceedural language like Java (despite the fact that my chatterbot program was written in C) Ergo, I have now been working on a chatterbot that answers questions about our Artificial Intelligence class. I guess you could say it’s a chatterbot with an Artificial Intelligence personality. But that sounds redundant. Moving on, the most difficult task, other than creating the dictionary file and writing a string parser code, was to name the chatterbot. A lot of chatterbot’s have a name with significance. Something like an acronym or an anagram made from another popular Artificial Intelligence program. I couldn’t think of an acronym, and I didn’t want to append a rebuild version number to an existing program name. In the end I came up with the name Mark. The name has no significance. It was the first thing that came to my mind when thinking about a random name for the program. A chatterbot that talked about Artificial Intelligence seemed appropriate for this class. After all, someone might want to include this application on their website for students that want to ask basic questions about the class.