Academic journal article Library Technology Reports

Chapter 2: Chatbot Creation Options

Academic journal article Library Technology Reports

Chapter 2: Chatbot Creation Options

Article excerpt


Chapter 2 of Library Technology Reports (vol. 49, no. 8), "Streamlining Information Services Using Chatbots," introduces AIML and ChatScript, the two most viable languages for creating a chatbot While their basic structure and syntax are markedly different, either may be used effectively, and both offer their own advantages.


There are a number of coding options available to use in creating your own bot. The markup or scripting language you choose will depend on your skill and experience, the amount of time you have available, and the functionality you're trying to create. At present, the best choices are AIML (Program Z or Program O) and ChatScript. We'll examine each in turn.

AIML (Artificial Intelligence Markup Language)

AIML is the starting place for many who are interested in chatbots or natural language processing. AIML was created in 1995 by Dr. Richard Wallace and is the basis for numerous chatbots, including the original Emma the Catbot, the University of Nebraska's Pixel, Adeena Mignona's Zoe, and Steve Worswick's Mitsuku.

AIML's great virtue is its simplicity; it's easy to learn and to implement. AIML is an XML dialect, so if you're familiar with XML or HTML, you'll be able to learn AIML quickly. You can write AIML using Notepad, WordPad, or a spreadsheet-style AIML editor like Simple AIML Editor from RIOT Software. AIML is based on pattern matching. Essentially, the data making up an AIML bot's "brain" take the form of a very large decision tree. User input is first preprocessed and then matched in order against the nodes of the tree. When input finds a match, the bot will execute an action, such as responding or opening a web page.

Simple AIML Editor

AIML does have some drawbacks, however. AIML's pattern matching is relatively weak, which means the content you create has the potential to match a range of input and return incorrect or meaningless responses. While authoring content is easy, a large amount of content is needed to create a convincing bot, somewhere in the range of 60,000 + categories. Each question or concept in the bot's knowledge base requires multiple categories to match permutations of the question and to ensure a correct response. For instance, there are many ways to ask, "What time does the library open?":

"When do you open?"

"When are you opening today?"

"What time do you open?"

"Will you be open today?"

You can easily add to this list.

A category is required to match each variation:






In order to understand how an input will match or fail, you need to be familiar with all of the categories dealing with each question or concept in the bot's knowledge base. One cannot look at an individual AIML category and know what input it will match. Writing code to distinguish between fine shades of meaning can be tricky, and the time required to maintain and debug an AIML knowledge base can be considerable. Before you become too discouraged, keep in mind that AIML has been used to create successful library bots. …

Search by... Author
Show... All Results Primary Sources Peer-reviewed


An unknown error has occurred. Please click the button below to reload the page. If the problem persists, please try again in a little while.