What is SimBot?

What is SimBot?

SimBot is Perl IRC bot implemented via the Perl Object Environment and POE::Component::IRC. It is primarily intended as an entertainment bot and does not presently do any form of channel management. It is likely that some channel management features will become available in the future via plugins.

History of SimBot

The version of SimBot currently in development is 1.0. It has existed in the past in other forms, formerly as a closed source mIRC bot. There were 5 versions, but as this version is very different, we are restarting numbering. Original versions 1 through 4 were geared primarily for channel management. Version 5, however, was the start of basic conversation capability for SimBot. Unfortunately, mIRC's ability to process text is very limited and, of course, it only runs on Windows systems. The new SimBot was conceived in an attempt to enhance our ability to process text for conversation and to extend an open source IRC bot to multiple platforms.

What does it do?

SimBot is considered to be a conversation bot and a utility bot. Through the use of our stock plugins, we provide several different ways to request information from web sites and other resources. By recording text seen within the channel, the bot gathers information that it uses to generate replies whenever it is addressed. This means it can carry on a "conversation" of sorts when you talk to it.

Conversational Capabilities

SimBot watches the conversation that goes on within an IRC channel and records word pairings. For example, in the sentence "How are you?" SimBot would record "how" can begin a sentence, "how are," "are you," and "you" can end a sentence. After recording these pairings, when you try to talk to the bot, it looks for an interesting word in your sentence and tries to pick random word pairings in a chain until it reaches a beginning and ending. The result is a (potentially) valid sentence.

This is not really artificial intelligence and it does not in any way try to be ALICE or a similar bot. The reason this method of learning and responding was chosen is because ALICE and other AI bots try too hard and generally do a terrible job of being interesting. They hedge whenever they don't understand you, and you'll find there really isn't much they can say beyond answering and asking predefined questions.

The goal of SimBot is to be wacky, interesting, and unpredictable. Unless SimBot has not yet seen any text, it will never fail to say something unique, and even if it doesn't make sense, it still might make you laugh.

Plugins

In addition to the chatting features of SimBot, we provide several stock plugins to provide a degree of usefulness. SimBot can search Google, fetch weather for METAR stations around the world, and even keep users up to date with RSS feeds from Slashdot and your channels' regulars' blogs.

The following plugins are currently provided with SimBot's distribution:

Currency Based on code from infobot, this plugin converts between different units of currency.
Dice & Coins This plugin allows a user to flip a number of coins, or roll a number of dice with various numbers of sides.
Dictionary Plugin This plugin allows a user to request the meaning of a word from a DICT server. It searches all available dictionaries on the server, unless the person requests to search a specific one.
Error & List This plugin prints our various error messages and bizarre quips. If you set your command prefix to '!' and tend to find a lot of warez seekers in your channel, the results can be amusing.
Google This plugin does a "safe" I'm feeling Lucky search of Google and reports back with a URL. It is also capable of processing requests for Google's calculator and the "define:" feature.
Info This plugin attempts to emulate some of the behavior of Infobot's factoid learning system. It allows users to store information and learns automatically from conversation. It also responds to any conversation text that appears to be a request for known information.
Natural Language This plugin is a basic implementation for Natural Language plugin calls. If this plugin is loaded, it provides functionality for plugins that want to use it. Queries like, "simbot, get the weather for KISP" will be recognized in addition to the normal commands.
Recap This plugin records a backlog of chat within the channel. When a user joins the channel, he can request a recap up to the maximum buffer size which allows him to catch up on anything he might have missed leading up to the current conversation.
RSS The RSS plugin allows SimBot to monitor RSS feeds such as Slashdot and Fark and then optionally announce the updates in the channel. Feeds that are very active or generally uninteresting can instead be unannounced, so that users only see the updates when they request them explicitly.
Seen This plugin records the last thing it sees each person do, as well as the time it happened, that way other people can find out when a person was last active.
Todo This plugin may not end up in the final distribution. It currently prints a list of features "to do" before we will be ready to release the first packaged version of SimBot.
Weather This plugin takes a METAR station ID and will parse it out for a summary of the current weather at that station. It also allows people to request the actual METAR report, if they prefer to read it themselves.

Service Plugins

SimBot has the ability to authenticate with IRC network management systems for nickname and channel registrations via Services plugins, however there is presently only a plugin for Undernet Channel Service support. We are still looking for someone to implement a ChanServ/NickServ plugin, as well as any others that might be useful.