Welcome, Guest! Log In | Create Account

Hollaka Hollala: A Chatbot Engine and IRC Bot

http://hollala.sourceforge.net/hollala.jpg

What's this about? And how does it work?

Hollaka Hollala is a chatbot engine and IRC bot written in Java. The chatbot engine uses a knowledge base organized in an XML file and WordNet for dictionary lookup. The IRC Bot has some WordNet- and some Web-based functionality and is hot-extensible through Ruby programs (new commands and functionality can be defined in Ruby scripts which are loaded at runtime, see wiki.rb as an example).

When you talk about something Hollala thinks he knows about he'll try to talk to you on that topic. Also he will try to learn what you say about that topic and related topics. If you talk about something thats new to him he'll try to learn it. You can talk to Hollala on IRC in channel #hollala on server irc.freenode.net. To chat with Hollala, mention his name in your message. Besides the chatting functionality there are a few other commands, to see what's available enter "!help". Have fun!

Some more detail, please…

Hollaka Hollala is a learning chatbot engine and IRC bot. The chatbot engine uses XML (using JDOM) to store the knowledge base and WordNet (using JWNL) as an external resource. The knowledge base is organized in topics, which consist of keywords and possible answers. These are organized in a simple XML format. The program tries to find the most suitable topic for a user input (e.g. using semantic relations from WordNet and word counting). On the selected topic the answer is then chosen randomly, where answers with higher frequencies (meaning things often said by users) occur more often. This is a place for possible extensions (e.g. speech act theory, pragmatics in general, any comparison between possible anwers and input). When no suitable topic is found new topics are made up from the user input, using information from WordNet and the user input for initial content. The chatbot can therefore start with an empty knowledge base and learn new topics and answers for these topics from user conversation.

Besides the IRC bot there is a console-based and a Web-based (both as a plain Java Servlet and as a JSP) interface to the chatbot engine. The IRC Bot, besides providing an interface to the chatbot engine, features some WordNet-based (like a word guessing game and word definition lookups) and some Web-based functionality (like translation services) and is hot-extensible (while the bot is running) through Ruby programs, which have access to any Java libraries (by using JRuby).