Saturday, December 27, 2008

ALICE and AIML videos on Youtube

There are some fun ALICE and AIML demo videos popping up on Youtube. This first one is an example of using voice recognition and speech synthesis to create an "interview." Be prepared to wait for some funny animation at the beginning of the video, before the interview starts. Parts of the interview are quite funny and highlight the difficulty of achieving high quality speech recognition.



The next video is another example of speech and voice also combined with a high quality avatar. Listening carefully to the bot's responses, you can hear a few custom responses, and a lot of replies straight out of the original free ALICE bot.



Several projects are underway to embed AIML bots in Second Life. This video shows an example. The bot object uses Linden Scripting Language to communicate with a Pandorabot.



The most popular Pandorabot continues to be the Flash iGod bot.
Several videos have appeared that incorporate chats with iGod. iGod does not represent any particular religion, but the script is based on the version of ALICE that claimed to be a "Protestant Christian".



And as a demonstration that a bot can be trained to follow any religion, watch this video of MuslimBot. Like the God bot, MuslimBot is hosted on Pandorabots.

Saturday, November 15, 2008

Santa Bot is Back in Town


The A.I. Foundation is pleased to announce the 2nd annual re-appearance of the Santa Bot. The Santa bot is based on the Superbot and has a totally unique, new personality tailored to old Saint Nick. The bot brain has no overlap with the A.L.I.C.E. bot. Santa is totally kid-safe and fun for the whole family. For now Santa is free. Tell Santa what you want for Christmas. Have a chat with Santa at http://alicebot.org/Santa/.

Our Santa bot uses an Oddcast/Sitepal avatar with text-to-speech.

Santa bot is still learning. The more you chat with him, the smarter he will become.

MLAI Foundation Re-Launch

Christopher Doyon (botmaster at mlaifoundation.info) has written to announce that he putting the MLAI Foundation and related sites back online. The MLAI Foundation is the home of several of Christopher's bots, as a forum.

Just in time for Christmas shopping, he has also reactivated the amazing Turing Store. This one of a kind AI and robotics online shop has the best of the best Holiday gift ideas for the MLAI enthusiast on your list. The robots especially this year are astounding.

Check out www.TuringStore.info

Remember that donations to the MLAI Foundation are gratefully accepted. And not just money, they can use any functioning computers that you may have laying around. MLAI can make use of them to host servers and experiments.

Friday, November 07, 2008

GaitoBot AIML-Editor




Daniel Springwald wrote to tell us two pieces of good news. First, the GaitoBot AIML Editor (*) is now released in final version1.0. This visual AIML editor, good for managing large AIML sets and files, is free and will be in future for free. This means it can be used for private or commercial use without any restrictions and without paying any fees.




The second piece of good news is, they now offer an AIML Chatbot hosting service, which the editor can directly upload to. The botmaster has just to sign in on to the site http://www.gaitobot.de/ and can publish the bot. To put it on his website, the botmaster need only copy and paste an html-snippet. Gaitobot provides free hosting for bots up to a size of 256kb. For a bot with a bigger knowledge, the company charges a small fee.



(*) The Gaitobot editor is virus and spyware tested by several checks local and online -for example by suggestsoft.com.
You can find a report here:
The program is also signed as created by a known developer and so it shouldnot show the warning "unkown manufacturer" while installing.

Monday, October 06, 2008

InfraDrive to sponsor Chatterbox Challenge 2009

Ehab El-agizy, founder of InfraDrive and developer of the RoboMatic X1 chatbot, has announced that InfraDrive will sponsor the Chatterbox Challenge (CBC) in 2009. Founded by Wendell Cowart in 2001, the Chatterbox Challenge is a performance test for chat bots. Unlike the popular Loebner Prize Contest, the bots compete online in the CBC. Also unlike the Loebner contest, the CBC has awarded prizes for bot performance in multiple categories. ALICE has won awards in several categories of the CBC including Top 10 (2001-2008), Most Popular (2004, 2006), Best Character/Personality (2005), Most Knowledgable (2004), and overall Contest Winner (2004).

Ehab is currently collecting a database of bots and botmasters who want to participate in the 2009 contest. You can post your entry to http://forums.chatterboxchallenge.com/viewtopic.php?f=5&t=2

Thursday, September 11, 2008

Some new Jokes in AIML

Thanks to a post to Dirk Scheuring to the Robitron mailing list, I leaerned about a Lisp program that generates jokes of the form, "What do you get when you cross X with Y?":


Example joke:

WHAT DO YOU GET WHEN YOU CROSS A DANCE WITH A LEMON?
sour balls

I tweaked the Lisp program to output AIML, so you can include the jokes in chat bots like A.L.I.C.E.

Human: tell me a joke
JOKER: WHAT DO YOU GET WHEN YOU CROSS A CAT AND A LEMON?
Human: What?
JOKER: sour puss.
Human: tell me a joke
JOKER: WHAT DO YOU GET WHEN YOU CROSS A BUG AND A RELATIVE?
Human: what
JOKER: ant.
etc.

AIML:

<category><pattern>TELL ME A JOKE</pattern><template>
<random>
<li>WHAT DO YOU GET WHEN YOU CROSS A MURDERER AND FROSTED FLAKES?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS A COUNTRY AND AN AUTOMOBILE?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS A CHEETAH AND A HAMBURGER?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS FINALS AND A CHICKEN?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS A RABBIT AND A LAWN SPRINKLER?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS AN EXCITED ALIEN AND A CHICKEN?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS AN ALIEN AND A CHICKEN?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS MUSIC AND AN AUTOMOBILE?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS SOUR MUSIC AND AN ASSISTANT?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS MUSIC AND AN ASSISTANT?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS A SERIOUS THIEF AND A MAD YOUNG MAN?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS A SERIOUS THIEF AND A CRAZY RABBIT?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS A POPPY AND ELECTRICITY?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS A DANCE AND A CHEETAH?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS A DANCE AND A LEMON?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS A PORT AND FROSTED FLAKES?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS A PORT AND A MURDERER?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS A BANK AND A SKUNK?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS A DING AND MILK?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS A ROAD AND A STRAWBERRY?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS A ROAD AND JELLY?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS A TOAD AND A GALAXY?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS A DOG AND SANDPAPER?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS A BUG AND A RELATIVE?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS A BAD BUG AND CANNED SAND?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS AN ANT AND A RABBIT?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS A CAT AND A PURPLE PERSON?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS A CAT AND A KILLER?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS A CAT AND A LEMON?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS A CAT AND A TUNE?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS A CAT AND A BAND?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS A PIG AND A NINJA?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS A CRAZY COW AND A BANNED PARROT?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS A COW AND A LEMON?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS A BAD COW AND A CANNED HAT?</li>
<li>WHAT DO YOU GET WHEN YOU CROSS JAM AND A TROUT?</li>
.
</random>
</template></category>
<category>
<pattern>WHAT</pattern>
<that>* A MURDERER AND FROSTED FLAKES</that>
<template>cereal killer.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* A COUNTRY AND AN AUTOMOBILE</that>
<template>carnation.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* A CHEETAH AND A HAMBURGER</that>
<template>fast food.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* FINALS AND A CHICKEN</that>
<template>eggs-ams.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* A RABBIT AND A LAWN SPRINKLER</that>
<template>hare spray.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* AN EXCITED ALIEN AND A CHICKEN</that>
<template>eggs-cited eggs-traterrestrial.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* AN ALIEN AND A CHICKEN</that>
<template>eggs-traterrestrial.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* MUSIC AND AN AUTOMOBILE</that>
<template>cartune.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* SOUR MUSIC AND AN ASSISTANT</that>
<template>bandaide and lemonaide.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* MUSIC AND AN ASSISTANT</that>
<template>bandaide.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* A SERIOUS THIEF AND A MAD YOUNG MAN</that>
<template>boycrazy grave robber.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* A SERIOUS THIEF AND A CRAZY RABBIT</that>
<template>hopping mad grave robber.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* A POPPY AND ELECTRICITY</that>
<template>flower power.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* A DANCE AND A CHEETAH</that>
<template>fastball.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* A DANCE AND A LEMON</that>
<template>sour balls.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* A PORT AND FROSTED FLAKES</that>
<template>I don't know, but it's serial.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* A PORT AND A MURDERER</that>
<template>serial killer.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* A BANK AND A SKUNK</that>
<template>dollars and scents.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* A DING AND MILK</that>
<template>cow bell.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* A ROAD AND A STRAWBERRY</that>
<template>traffic jam.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* A ROAD AND JELLY</that>
<template>traffic jam.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* A TOAD AND A GALAXY</that>
<template>star warts.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* A DOG AND SANDPAPER</that>
<template>I don't know, but it's ruff.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* A BUG AND A RELATIVE</that>
<template>ant.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* A BAD BUG AND CANNED SAND</that>
<template>banned band.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* AN ANT AND A RABBIT</that>
<template>bugs bunny.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* A CAT AND A PURPLE PERSON</that>
<template>purrr-ple purrr-son.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* A CAT AND A KILLER</that>
<template>mew-rderer.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* A CAT AND A LEMON</that>
<template>sour puss.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* A CAT AND A TUNE</that>
<template>mew-sic.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* A CAT AND A BAND</that>
<template>mew-sic.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* A PIG AND A NINJA</that>
<template>pork chops.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* A CRAZY COW AND A BANNED PARROT</that>
<template>canned carrot.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* A COW AND A LEMON</that>
<template>sour milk.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* A BAD COW AND A CANNED HAT</that>
<template>banned cat.</template>
</category>
<category>
<pattern>WHAT</pattern>
<that>* JAM AND A TROUT</that>
<template>jellyfish.</template>
</category>

Tuesday, August 05, 2008

A.L.I.C.E. selected for Loebner Prize 2008 finals

Out of thirteen entries, the following systems have been selected, through the preliminary phase, to compete in the finals for the 2008 Loebner Prize for Artificial Intelligence:


Congratulations to the finalists and also to the other contestants for their outstanding effort. Looks like quite a line up this year, with six previous entries and three previous Bronze medal winners. All are very serious, long-term projects. I hope someone tells the press about this.

Thursday, July 17, 2008

Saying a list of AIML responses in order

Here is a good question that came in about AIML style:

Question:
I use the <random> tag in AIML when I have a list of responses. But instead of saying the responses randomly, is there any way I can get the bot to say them in a specific order? For example, I have four responses for one input pattern. Can I get the bot to say them one by one each time that pattern is activated?

Answer:
There is no specific tag for that in AIML, but it is not too hard to implement using existing AIML tags. In this example, the input xxx results in "Response One" the first time it is entered, "Response Two" the second time, "Response Three" the third time, then "Response Four", then cycles back to "Response One."

The program uses the AIML variable "state" to keep track of which response is next. Some categories are provided to implement a "successor" function to advance the state variable through I, II, III, IV and back to I.


<aiml version="1.0">


<category>
<pattern>xxx</pattern>
<template>

<think>
<set name="state">
<srai>SUCCESSOR <get name="state"/></srai>
</set>
</think>
<srai>say response <get name="state"/></srai>

</template>
</category>

<category><pattern>SUCCESSOR</pattern>
<template>I</template>
</category>
<category><pattern>SUCCESSOR *</pattern>
<template>I</template>
</category>
<category><pattern>SUCCESSOR I</pattern>
<template>II</template>
</category>
<category><pattern>SUCCESSOR II</pattern>
<template>III</template>
</category>
<category><pattern>SUCCESSOR III</pattern>
<template>IV</template>
</category>
<category><pattern>SUCCESSOR IV</pattern>
<template>I</template>
</category>

<category>
<pattern>SAY RESPONSE I</pattern>
<template>Response One.</template>
</category>

<category>
<pattern>SAY RESPONSE II</pattern>
<template>Response Two.</template>
</category>

<category>
<pattern>SAY RESPONSE III</pattern>
<template>Response Three.</template>
</category>

<category>
<pattern>SAY RESPONSE IV</pattern>
<template>Response Four.</template>
</category>

<category>
<pattern>SAY RESPONSE *</pattern>
<template>Undefined.</template>
</category>






</aiml>

Tuesday, June 03, 2008

Loebner Prize 2008 Draws 13 Entries

The following thirteen entries are entered into the preliminary phase of the 2008 Loebner Prize for Artificial Intelligence:
  1. Zeta by Jeremy Gardiner
  2. Elbot by Fred Roberts
  3. Eugene Goostman by Vladimir Veselov
  4. Orion by Adeena Mignogna
  5. LQ by Qiong John Li
  6. Brother Jerome by Peter Cole & Benji Adams
  7. Chip Vivant by Mohan Embar
  8. Jabberwacky by Rollo Carpenter
  9. Alice by Richard Wallace
  10. Botooie by Elizabeth Perreau
  11. Amanda by Simon Edwards
  12. Ultra Hal by Robert Medeksza
  13. trane by Robert Scott Mitchell

Three of this years entries areprevious Loebner winners and two of them multi-year winners. Two of the entries this year use AIML: Orion by Adeena Mignogna and our own ALICE bot.

Saturday, May 31, 2008

Actionscript 3 Pandorabot Chat Class

Pandorabots has an XML-RPC interface that allows botmasters to link the A.I. chat bot to third party applications such as SMS, Second Life and Flash. Flash James Durrant, released a free script to integrate Pandorabots with Flash Actionscript 2. Now with Actionscript 3 becoming so widely adopted, another programmer, Marcus Dickinson, has updated Jamie's old Flash Chat interface into something more current.

Marcus announced these new features in his AS3 script:

One line implementation - You can get a basic Flash Chat Pandorabot going by filling in the "yourbotid" and "Common Bot Name" arguments in this one line of code:

var botChat:Chat = new Chat("yourbotid","Common Bot Name",stage.stageWidth/2,stage.stageHeight/1.3, 85, false);

Drag - The topbar is draggable like any other application window.

Close Button - Want users to stay on your site but able to turn the chatbot off? There's a handy close button for that.

Typing Speed - A simple variable (85 up above), that controls the typing speed of your robot. Want it to respond more slowly or quickly? Adjust that. Anyway, there are a lot more subtle things in the class as well, and I hope you enjoy it.

You can download the necessary files at http://www.diariesofwar.com/downloads/AS3Chat.zip

Finally, Marcus says, "Help me get my own Superbot, make a paypal donation to waarangel@gmail.com"

Wednesday, May 28, 2008

Program E Bug Fix

This is the fix we found for the bug we reported in Program E.

I am working with a developer who knows PHP well but not too much AIML. I know AIML but not much PHP. He found something in the code that apparently fixes the bug, at least in the tests we have done. I don't know if anyone is officially maintaining Program E at the moment, but anyone working with the code may be able to check this solution.

By the way, we are using version 0.8 of Program E.

Here is what he said:

Dr. Wallace, this is piece of code which was changed by me. The only line I added is highlighted below.

This code is executed when no match is found by the “graphwalker”.

As graphwalker searches for matches it adds words matched by the “*” wildcard to $inputstarvals.

But when it reaches it the end of the input and finds no matches it should clear $inputstarvals reference and return back to the root of the tree.

// Else no match found...

if ((($whichresult[0]==-1)&&($whichresult[1]==-1)&&($whichresult[2]==-1))||($continuenode==1)) {

//If we were most recently on a wildcard (*,_) then we are still matching it.

if (($onwild==1)&&($word!="")&&($word!="")&&($word!="")){

debugger("On wild and in *. keep going with graphwalker.",2);

addtostar($parton,$word,$inputstarvals,$thatstarvals,$topicstarvals,2);

return graphwalker($remains,$parent,1,1,$parton,$inputstarvals,$thatstarvals,$topicstarvals,$patternmatched);

}

else {
//We didn't find anything. We need to come back out

$inputstarvals=array();

debugger("Result is blank from query in *. Returning blank",2);

return "";

}

}

Attached is the latest (Program E 0.9) version of this script. We use version is 0.8. This code should work the same way in the latest version. Changes which were introduced between 0.8 and 0.9 are not related to this piece of code.

Program E Bug

We found a bug in the Program E AIML interpreter and discovered a possible workaround. This post describes the bug; we will publish the solution in a subsequent post.

Suppose you create a simple default category:


<category>
<pattern>*</pattern>
<template>Keywords: <star/></star>
</template>

Assuming there is no other AIML, this category will just echo
whatever you type:

Client: Hello there
Bot: Keywords: Hello there
Client: testing one two three
Bot: Keywords: testing one two three

Now add a second AIML category,


<category>
<pattern>_ TEST ME *</pattern>
<template><srai>TEST ME</srai></template>
</category>

We get the expected result:

Client: xxx test me xxx
Bot: Keywords: TEST ME

Ok, finally, add one more category:


<category>
<pattern>TEST * ME</pattern>
<template>TEST ME</srai></template>
</category>

Now it is messed up:

Client: test xxx me
Bot: ME

What happened to the "TEST"?
and even the one that worked before is broken:

Client: xxx test me xxx
Bot: ME

If we copy the same AIML test file over to Pandorabots:

Client: test xxx me
Bot: TEST ME
Client: xxx test me xxx
Bot: TEST ME

Saturday, April 26, 2008

Vote for A.L.I.C.E.!

The 2008 Chatterbox Challenge judges have selected A.L.I.C.E. as the #1 chatter bot in preliminary scoring! Now it is your turn to vote for the best of the bots. The judges have selected the top 20 bots, and the Chatterbox Challenge is open to public voting. Whether you vote for A.L.I.C.E. or not, you will be amazed by the variety and quality of bots competing in this year's contest.
Unlike the famous Loebner Prize contest, the Chatterbox Challenge allows entries to be submitted online. So in many cases, you can chat directly with these bots over the web. (The organizers of the Loebner Prize are concerned about cheating.) Also unlike the conventional Turing Test, the Chatterbox Challenge does not directly compare human and bot performance; it is a ranking of the bots on their own merits.
If you do choose to vote for A.L.I.C.E., we appreciate your support!

Friday, April 25, 2008

How to compare two variables in AIML

Steve Worswick (Square-Bear) has done something amazing. In AIML, there is no obvious way to compare to variables (or predicates, as they are called in AIML). But with a clever use of the Pandorabots AIML extensions and , Steve has come up with a way to compare to variables.

Pandorabots implemented and in order to help botmasters write scripts for their bots to learn new AIML categories from conversations. Steve has discovered that these extensions can also be used to create a dynamic extension to the language, that allows the botmaster to compare two variables.

Suppose the botmaster wants to compare two predicates with the values JOHN and PAUL.
The basic "trick" behind Steve's method is to "learn" a new category like

<category>
<pattern>BOTCHECK JOHN</pattern>
<template>

<think>
<set name="match">YES</set>
</think>

</category>

The comparison uses symbolic reduction to test <srai>BOTCHECK PAUL</srai>. This does not match the newly learned categroy with the pattern BOTCHECK JOHN. It does however match another category:

<category>
<pattern>BOTCHECK *</pattern>

<template>
<think><set name="match">NO</set> </think>
</category>


Only the input BOTCHECK JOHN will match the first category, in which case the predicates have the same value. The AIML Steve developed is a little more complicated than that, and you can find out all the details in his post to the mailing list.

You can download the free AIML variable comparison set from
http://www.square-bear.co.uk/aiml/botcompare.aiml

Friday, April 18, 2008

Pandorabots mentioned in New Scientist

The New Scientist Feedback column ran a story about Ron Ingram's Godsbot in the March 22 issue. The article describes the author's interactions with Godsbot, and concludes that it must be based on ELIZA. (Godsbot is, in fact, based on ALICE). The article cites the usual types of good, not-so-good, and humorous bot responses. Despite the obvious limitations, the author is "impressed".

After identifying Ron Ingram as the creator of Godsbot, the authors say "The trail from Godsbot doesn't stop there, either. Feedback has tracked down the source of the AI software, a site called Pandorabots, which lets you design your own software robots and turn them loose on the Internet. When we last checked, the site boasted that Pandorabots had served up 564,580,317 replies. Is it too late to shut the lid?"

German Alice is back online


Christian Drossmann, creator of the German ALICE bot, has written to say that the German speaking chatbot is back online and hosted at Pandorabots. Christan said he "couldn't resist giving the (Pandorabots) system a try", and he plans to analyze the log files and add more content to the "rather crude" standard categories in German. He said, "I missed the coding."


The bot is accessible via http://www.drossmann.de/


Furthermore, Christian informs us that a German guy developed a Skype-plugin for Program E E, the AIML interpreter in PHP. You can find it at http://blog.kevinkempfer.de/2008/02/12/alice4skype-ist-da/.

The page is in German, but the download links are almost at the top of the page where you will find the hyperlinked words "Windows" and "Linux


For more information about German ALICE, you can contact Christian Drossmann via christian [at] drossmann [dot] de.

Monday, March 10, 2008

Godsbot Free for All


Botmaster Ron Ingram, long-time AIML developer and author of the Buddhabot, has advanced his bot to create a new version of 'God'. The God personality is consistenty the most popular bot on Pandorabots. Ron's Godsbot is designed with a more Christian perspective. As well as releasing the bot, Ron has created a blog dedicated to his fascinating ideas. Here is what Ron had to say about the creation of Godsbot, in his own words:

First I cloned my Buddhabot; a bot that I have been working on for several years initially developed by manually manipulating and customizing all of the original ALICE files in excel (if I were recreating Buddhabot today I probably would have started with the Superbot program but this was not available to me in2004). For more information on the evolution of Buddhabot go to Buddhabots.com and read the "News" tab which provides a list of the new AIML files and content as they were added. All of these subsequent AIML files were built in excel, copied into a textfile, renamed with an .aiml extension and then uploaded to Pandorabots.com.

Second, I modified the original Buddhabot properties to reflect a Christian perspective.

Third, I created some new Christian aiml files in excel using the same procedure as described in item 1 above.

Fourth, I created a blog that provides information on the mission and purpose behind this project.

This last point is where I think some botmasters maybe missing an opportunity. I think every bot needs a personality and a purpose. When we first meet a human, we aim to find points of relation (who, what, and where). We seek to determine a name, where the person is from, and so on, building up relational probabilities. Then the fun really begins as we start trying to learn who someone really is but normally we have little interest in discovering much about a stranger on the street unless we identify a striking commonality. Likewise with a bot, I believe we need to create a persona and a platform based on something sincere and authentic that we (and the bot) can be passionate about. This is how we may begin to go beyond novelty and gimmick and begin to establish a"real" persona capable of sustaining longer conversations and developing relationships.

The purpose of godsbot is two-fold:

* to advance interest in peaceful relations among people of faith; and,

* to attract donations so I can spend more time doing what I love (AI research and development).

Good luck and stop by for a free chat with Godsbot at godsbot.org.

Friday, March 07, 2008

Time and Effort to Create a Unique Bot Personality

The free A.L.I.C.E. bot contains about 120,000 AIML categories, the category being the basic unit of knowledge in AIML. A category is essentially one question-and-answer stimulus-response pair. Anyone is free to use the open source A.L.I.C.E. brain as the basis for his bot, but for commercial applications, the A.L.I.C.E. content may be inappropriate. A.L.I.C.E. contains many "humorous" and politically-incorrect responses designed to make her personality more believable, but these responses are undesirable for a bot representing a corporation. Even many entertainment applications require responses quite different than A.L.I.C.E.'s.

Although the A.L.I.C.E. bot has 120K categories, not as many are required to create a believable bot personality. From our experience a bot with 10,000 AIML categories will create a believable illusion of intelligence. That is why we created the Superbot AIML set, essentially a list of the top 10,000 most-activated AIML categories with blank responses. The process of creating a unique, proprietary bot personality can be reduced to essentially "filling in the blanks" of the Superbot data.

A good AIML botmaster can write about one AIML category per minute. This is not to say that every AIML category takes 1 minute to write. Some categories require a lot of thought and could take up to 30 minutes to create. In other cases, many hundreds of categories can be created by "cut and paste" in less than a minute. But overall, an average of about 1 per minute is reasonable in our experience.

10,000 categories at the rate of 1 per minute is about 7 days of time, working 24 hours a day. A more practical scenario, with rest periods included, is two or three proficient AIML botmasters working over a one or two month period. Those wishing to create a totally unique, proprietary bot personality, should take into account the cost of hiring these consultants.

A word on AIML content: there is no magic A.I. engine that can translate domain-specific knowledge into AIML. Suppose you want a bot that talks about your brass fitting business. It is certainly possible to create an AIML bot that answers all the most common questions about brass fittings. You may even have a FAQ or Wiki with much of this knowledge already encoded. You can train an AIML bot to talk about anything, but it is a painstaking process that takes time, depending on how familiar the botmasters are with the domain. If the botmaster knows nothing about the brass fitting business, and you are an expert, it may be easier for you to learn AIML than to teach the botmaster the brass fitting business. In many such cases it is more cost effective to teach domain experts AIML, than to hire AIML consultants and teach them the domain knowledge.

ELIZA pioneer Joseph Weizenbaum dies


Joseph Weizenbaum, MIT professor, co-founder of Computer Professionals for Social Responsibility, and creator of the famous ELIZA psychotherapist program, died at his home in Berlin at age 85, according to EE Times. The ELIZA program is the ur-chatbot from which A.L.I.C.E. and nearly all other chatbot programs are descended. ELIZA introduced the concepts of stimulus-response, pattern matching, and pronoun transformation to natural language processing. Remarkably, Weizenbaum was reportedly "shocked" that MIT students and staff anthropomorphised the simple program. They revealed personal information to the bot in online chats. In response, Weizenbaum spent much of the rest of his career as a critic of computer science in general, and artificial intelligence in particular.

Many others also said that the ELIZA program was not a serious development in natural language processing, and it was derided as a 'toy'. By the late 1990's however it became apparent that massive case-based pattern matching was a practical method for achieving lifelike human-computer conversations, essentially the same techique as ELIZA on a bigger scale. All chat bot developers, not just those of us using AIML, owe a debt of gratitude to the pioneering work of Prof. Weizenbaum.

Tuesday, March 04, 2008

Square-Bear's New AIML Repository

One of our most prolific AIML botmasters, Square-Bear, has devoted a web page to his AIML creations. Square-Bear has developed many new games and AIML applications that point us in the direction of the "Star Trek-style talking computer of the future." Some of Square-Bear's creations include:

Drphil.aiml - A personality test converted to AIML.

Horoscope.aiml - Random horoscope fortune-telling in AIML.

Yomama.aiml - A collection of "yo mamma" type jokes for when the user starts insulting the bot's mother.

You can download these free files, and many more, from http://square-bear.co.uk/aiml/
 

blogger templates | Make Money Online