Thursday, November 10, 2011

Three Bots Talking

The ALICE A.I. Foundation has released a demo of Three Bots Talking.   ALICE, Fake Captian Kirk and Fake Spock chat together to generate spontaneous, interactive drama.    Some of it make no sense, some of it is hilarious, but all of it is highly entertaining.    You never know where the conversations is headed with these three.

Three Bots Talking is built on Pandorabots AIML technology in conjunction with Oddcast Siteapal avatars.
Enjoy Three Bots Talking at

Thursday, October 20, 2011

Two Pandorabots Ranked Top AI by Junior Judges

For the first time in its history the Loebner Prize included a separate prize known as the Junior Loebner Prize in which the judging panel consisted of students between 12 and 14 years old. Our team's two entries, Zoe by Adeena Mignogna and Tutor by Ron C. Lee, tied for first place in the Junior contest. Zoe also came in second place in the main contest. Also this was the first time two finalists used the same platform, Pandorabots. Adeena, Ron, Steve Worswick, and Pandorabots engineering staff all worked together to make it a team effort.

The main contest was as usual judged by scientists, technology experts and journalists.  Typically the judges try to give the bots an IQ test with questions like, "How many syllables in the word banana?" or "Which is bigger a small mountain or a large tooth?" (not very good icebreakers in ordinary human conversation--can these judges carry on a conversation with a person?) and predictably once again the bots are pronounced "disappointing".   The junior judges have more fun with the bots, suspend their disbelief more easily, and engage in casual chat using internet slang, saying "LOL", "Wassup?" and "What did you have for breakfast?" instead of giving an IQ test.   It is as if the scientists are testing to see how much a human is like a computer, and the kids are testing to see how much the computer is like a human.

Bruce Wilcox, the winner of last year's Loebner Prize bronze medal once again took the award in the main contest this year.   No bot has yet been awarded the silver medal for passing the Turing Test.

Siri and Pannous Voice Actions

Several people have independently written us asking if the AI Foundation was involved in the development of the Apple iPhone Siri app.  The simple answer is no, unless Apple is perhaps using some version of the free open source ALICE AIML software.

There is a comparable Android app developed by Pannous, called Voice Actions (not to be confused with Google Voice Actions) .  Besides making it possible to control your phone through speech commands, the Pannous Voice Actions app also allows you to have a conversation with an AIML bot based on ALICE.

What the users of Pannous Voice Actions appreciate most

The Pannous Voice Actions app has:

- Better conversations because it relies on the Lisp-based Pandorabots service, in contrast,  the Siri conversational replies are far more limited.  Pandorabots is the home to high-quality award-win
-ning chatbot characters, representing many person-years of development invested in original content.

- Greater richness of features: much broader integration with the device (camera, video, sound) other services (images, youtube, twitter, facebook, poems, quotes, etc. ), other apps and settings. For example, Siri is unable to open GPS map navigation for directions

- Better question answering by accessing a broader set of knowledge bases such as Wikianswers and Trueknowledge (an excellent substitute for Wolfram Alpha).

There is even an iPhone app version of Pannous Voice Actions,  but its features are limited due to the constraints on the API imposed by Apple. In general third-party apps on the iPhone are unable to  (a) open any other app, (b) query and modify system settings and (c) hook into other applications (available through Android’s ‘intents’ capabilities).

Currently Pannous Voice Actions market site receives around 50 positive reviews daily, and here are some quotes.

“Wow this thing is wicked!”

“Beats Siri hands down!”

“I just carried on a conversation with my telephone. This application is amazing!”

“Siri crusher.”

If you want to have a more intelligent conversation with your phone than you can have with Siri, give Pannous Voice Actions a try and see the power of AIML in action!

Friday, October 07, 2011

Processing common suffixes with AIML

One of the longstanding problems with AIML pattern matching is related to processing certain common suffixes in English.  These are words or phrases added to the end of a sentence that may contribute little in the way of meaning, such as “really”, “eh”, and “you know.”  By far the most common example of this is the use of a personal name at the end of a sentence: “Nice to meet you, Alice”, “How is the weather over there, Alice?”  and “You are silly, Alice.” 

When creating a bot in AIML we’d like to reduce these kinds of sentences to the same thing without the suffix.  “How is the weather over there Alice?” is the same as “How is  the weather over there?”  It’s quite tempting to write one AIML category that covers all these cases:

<pattern>_ ALICE</pattern>

This category reduces any sentence ending with ALICE to the same sentence without the suffix, and uses the <srai> recursion to find a response.  Moreover, because it uses the _ wildcard, the category will reduce every input ending with ALICE.  This reduction category saves us from having to write separate patterns for every case like “How are you” and “How are you Alice?” (which would effectively double the number of categories needed for a bot). 

This is all well and good except that in other cases the suffix ALICE does add meaning to the sentence.  “Who is Alice”, “Why are you named Alice?” and “My name is Alice” would all be reduced to meaningless sentence fragments: “Who is”, “Why are you named”, and “My name is”. 

AIML  uses the wildcard _ to indicate that the pattern has higher priority than a word or the wildcard *.  Simply changing the above category to use <pattern>* ALICE</pattern> doesn’t solve the problem.  An input like “Why are you named Alice” might match a default category with a 
<pattern>WHY ARE YOU *</pattern>  
before it matches 
<pattern>* ALICE</pattern>.

The solution outlined here uses two tricks.  First, we replace suffix ALICE with the word BOTNAME.  Then we use the AIML <topic> feature to collect all the categories ending with ALICE where the word ALICE plays a meaningful role.   If one of those matches the modified input, then the AIML returns that result.  Otherwise, we look for a match for the sentence with the suffix removed.  

<category><pattern>_ ALICE</pattern>
<set name="savedtopic"><get name="topic"/></set>
<set name="topic">ENDS WITH ALICE</set>
<set name="matched">false</set>
<set name="response"><srai><star/> BOTNAME</srai></set>
<condition name="matched">
<li value="true"><get name="response"/></li>
<set name="topic"><get name="savedtopic"/></set>

The AIML above uses the “savedtopic” predicate to remember the current conversation topic.  Then we set “topic” to ENDS WITH ALICE.    Another predicate, “matched”, is initialized to false.  If the program finds a match where the suffix is meaningful, the value of "matched" is set to true and the conditional branch returns that match.  Otherwise, the conditional returns a match for the sentence without the suffix.  The following AIML topic group collects together the categories where we want to match the sentence including the suffix ALICE.   Each of these includes the statement <set name="matched">true</set> indicating a successful match.

<topic name="ENDS WITH ALICE">

<category><pattern>TEST BOTNAME</pattern>
<bot name="name"/> is functioning normally.
<think><set name="matched">true</set></think>

<category><pattern>CALL ME BOTNAME</pattern>
My name is 
<set name="name"><bot name="name"/></set> too!
<think><set name="matched">true</set></think>

<category><pattern>WHAT IS BOTNAME</pattern>
<template><srai>WHAT ARE YOU</srai>
<think><set name="matched">true</set></think>

<category><pattern>WHO IS BOTNAME</pattern>
<template>I am <bot name="name"/>.
<think><set name="matched">true</set></think>


One slightly pathological case can however make the above code “forget” the original conversation topic.  This is the case where the suffix is repeated, and the first category is called recursively more than once.  For example the input “Alice Alice Alice Alice Alice” will result in four levels of recursion, and when the procedure unwinds, the topic will still be set to ENDS WITH ALICE.  There does appear to be a solution covering this situation, however, and it is left as an exercise to the attentive reader.

The code in this example is built into the latest development snapshot of the ALICE AIML set available in our repository at

Wednesday, July 27, 2011

AIML Superbot Special Offer - Free Consulting

The AIML Superbot is a blank template that helps you create a custom chat bot from scratch. If you want to create a bot with its own proprietary, unique personality, the Superbot helps you by providing a rich set of patterns that allow you to "fill in the blanks" with your own bot responses.

Building a bot from scratch can still be a daunting task for those new to AIML and chat bot creation. That is why we are now offering 2 hours of free consulting time with your Superbot purchase. You will be able to talk directly by phone or Skype with Dr. Richard S. Wallace or another AIML expert and receive support and help with your bot project.

Use your consultation time to get specific answers to all your questions about bot content creation and help with your project, including help linking the bot to speech recognition systems, avatars, speech synthesis and other third-party applications.

This offer expires on October 1, 2011.

Friday, May 27, 2011

New Release of ALICE AIML on Google Code

We have released an updated version of the free ALICE AIML set and made it available on Google Code.
The release is called AIML-en-us-foundation-ALICE (a free AIML set, in the English Language as spoken in the United States, authored by the AI Foundation, and the bot name is ALICE).  The AIML contains some significant changes and improvements:

- The AIML Safe Reductions have been included and released as open source free software.  This is a generic set of reductions that are useful for any English language bot.  

- The GAC-80K data collected by the late Chris McKinstry, translated into AIML, is now included.  The AIML consist of about 54,000 questions and statements with truth values varying from Yes ("Is violet a color"?) to No ("Are fish mammals?") with all sorts of gradations of Maybe in between ("Is the sky blue?  Sometimes.")

- Numerous duplicate categories have been removed (though some remain) or merged.   The AIML being available on Google Code makes it much easier for anyone in the community to clone and make modifications and correct errors themselves.  These can then be submitted back for inclusion in the main branch of ALICE AIML.  We are working on some documentation for this process.

This release deprecates the ALICE AAA Set and the test project to host free AIML on  AIML-en-us-foundation is compatible with any AIML 1.0.1 compliant interpreter, and runs on Pandorabots

Monday, May 02, 2011

Chatbots 3.1 Conference Report

The Chatbots 3.1 conference held in Philadelphia on April 23 was a huge success.  We had 20 attendees and 10 extremely high quality presentations.  The presentations covered commercial applications of chatbots, new algorithms and research topics, automated detection of chat bots, legal and IP issues for botmasters, and the future of AI and society.

Although the attendance was relatively small this year (perhaps due to higher airfares) the size of the conference lends itself to personal contact between major players in the chatbot field, as well as the opportunity to ask direct questions.  We are especially grateful to Frank Taney, our host, since he provided legal advice that we cannot easily access.  He gave us some great information about what approaches we may or may not be able to consider in developing bots. 

We will be adding links to this list of presentations as they become available:
The entire conference was video taped and we will be posting videos of the talks to Youtube once the final editing is completed.  In addition an independent filmmaker Miranda Yousef hired a local Philadelphia cinematographer to film the conference and interview attendees.   She is a making a film about chatbots and the Loebner prize. Look for more information about this exciting upcoming film project.

The conference was reported in the Philadelphia Business Journal.

Saturday, January 29, 2011

Chatbots 3.1 Conference - April 23, 2011


Chatbots 3.1

Who: Bot creators, commercial users, enthusiasts, scientists, students, and the press are invited.

What: Chatbots 3.1 Conference

When: Saturday, April 23, 2011

Where: Suite 3200 (32nd Floor) Two Liberty Place, 50 S. 16th Street, Philadelphia, PA 19102

Why: Based on the success of and interest in last year's Chatbots 3.0 conference, we have organized a follow-up Chatbots conference in the same location in Philadelphia. We have assembled an impressive group of speakers covering a range of topics including chat bot technology, business, legal issues and applications. Chatbots 3.x has established a reputation for providing the highest quality presentations among all conferences in our industry. Come to the Chatbots 3.1 conference to meet the top experts in our community. Interact, ask questions, and join us for an informative day reviewing the latest developments in chat bot technology.

More info and Registration:

Tuesday, January 18, 2011

Using HTML5 Speech Recognition with Pandorabots

We found an interesting and simple demo of speech recognition in HTML5 in this presentation on slide 25. To make the demo work with ALICE and Pandorabots, we had to make only a slight change to our custom HTML input files.

Here is a demo of the Fake Captain Kirk bot using speech recognition: Talking Animated Fake Kirk with Voice Input (Requires Chrome browser).

Note: The demo uses the Google Speech API. At the time of this writing, not all browsers yet support this HTML5 feature. We have found it works in Google Chrome.  Furthermore, we have only tested it successfully with Windows 7.

The only change was to replace 

<input type="text" size="60" name="input"/> 
<input type="text" size="60" name="input" x-webkit-speech /> 

There are a couple of "tricks" you need to know to test the speech API:

1. Click on the little mic icon to begin speaking. The speech API will detect when you have finished speaking and, when it has finished processing, will display the text it detected in the text area.

2. If you are satisfied with what the speech API detected, click the "Say" button to transmit it to the bot.

The quality of the speech recognition may not seem very high. There are a number of factors that affect the accuracy of speech recognition: the quality of the microphone, background noise, the accent of the speaker, the type of sound card on your computer and so on. Pandorabots has no control over the Google voice recognition software, but the results should be comparable to using the Google voice API with any other application.

Enabling Chrome Voice API

The Chrome voice recognition API may not be enabled by default. Follow these steps to create a shortcut to Chrome with voice recognition enabled.

1. Create a desktop shortcut to Google chrome with copy and paste. (You may also want to rename this shortcut something like "Chrome Voice").

2. Right click on the shortcut and select "Properties"

3. On the Shortcut tab, modify the Target field to include the flag "--enable-speech-input". For example if the Target was originally 
change it to 
C:\Users\drwallace\AppData\Local\Google\Chrome\Application\chrome.exe --enable-speech-input

4. Click OK and use this Chrome Voice shortcut to enable speech recognition.


    blogger templates | Make Money Online