Chatting and Tagging in Second Life

I created a script to enable an object in Second Life to chat with avatars.  It uses a back-end system to house the chat engine and the script (chat.lsl) transfers content.  Another script (quiz.lsl) uses a custom web application and WordNet databases to quiz avatars about themselves and stores the result into a data store.

1.  Problem

Second Life is an interesting place to spend time.  It would be enhanced by more automated AI-based entities that can interact with the human occupants.  There is also a need to categorize and and define specific avatars in the world for faster searching and navigation.  Using automation, AI, and lexical databases, we can start to add some of this functionality to the world.

2.  Objective

The objective is to add this functionality to Second Life.  Using available AI chatbot constructs and existing lexical databases, add interesting extensions in-world.  The back-end systems will have to power and inform the Second Life scripts using http message passing and Linden Scripting Language.

3.  Related Work

WordNet [1] – A set of lexical databases of the English language including nouns, verbs, adjectives, and adverbs.  Freely download-able and including synonyms (synsets).

CharlieBot [2] – An artificial intelligence program written in Java, based on work done with ALICE, ANNA, and Program D.

4.  Architecture

4.1  Design

The overall design of the chatbot was:

  • Download the CharlieBot code and examine the source files to discover how best to exploit the server in Second Life.
  • Write a Linden Scripting Language script to communicate with avatars and relay between them and the chatbot server.

The overall design of the quiz machine was :

  • Download the Princeton WordNet databases.
  • Write a web application to communication with words between the databases and the Second Life server(s).
  • Create a local database to store result data about the avatars responses.
  • Deploy the application on the Tomcat application server. [3]
  • Write a Linden Scripting Language script to communicate with the avatars and relay between them and the Second Life servers(s) and web browser.

4.2  Testing

Each stage of this project was tested.  The back-end HTTP servers were testing using a web browser to imitate the LSL connection.  The LSL scripts were tested in stages to verify each of the stages of avatar and server interaction.

5.  Results

The chat script provides an interaction with the ALICE construct on the back-end server.  The script listens for in-world communication on the public channel and responds with a communication from ALICE.  Listen and talking can be moved to another higher numbered channel by small edits to the script.  ALICE can be replaced with Charlie or ANNA with small string replacements in the script.

The quiz script provides an in-world interaction with a back end server for “tagging” avatars with descriptive words.  A web browser is used after the initial connection is made.  This script listens on channel 8000 and can be moved to another channel with little work.

6.  Conclusions

6.1  Summary

This has been very fun, creative, and informative project and class.  Second Life has great possibilities for future growth and integration with Artificial Intelligence.  I found large quantities of useful information and code online for use in the AI space.

6.2  Impact

This work can lay a ground work for adding fun and information gathering to an object, avatar, or bot in Second Life.  It can help develop ontologies and search indexes for future enhancements to the Virtual World.

6.3  Future Work

There is a opportunity to integrate these two projects into one script.  By entertaining avatars with a lively chatbot interaction, you can hold attention long enough to get very descriptive answers to useful question about the avatar.  This information can be collated and made to be search-able and reference by other projects.

References

[1]        Princeton WordNet, http://wordnet.princeton.edu/.

[2]        CharlieBot, http://sourceforge.net/projects/charliebot/

[3]        Apache Tomcat, http://tomcat.apache.org/

 

Appendix A – Charliebot

Download the Charliebot here:  http://sourceforge.net/projects/charliebot/ and start it up on your server.  Alter the code in the chat.lsl to point to the correct server name.  The Charliebot src code is available and you can copy it into the binary directory into a <charliebot_home>/src/ location.  Make alterations and build Java class files into <charilebot_home> /bin directory.  Use the start_cb_server.sh script included.

Appendix B – Tag Server

Download the Tomcat here:  http://tomcat.apache.org/.  Unzip the web application included in wordnet.zip into the webapps directory under Tomcat.  Edit the web.xml and Synonyms.java file to point to the correct locations on your hard drive (current paths are /home/james/Documents/code/tomcat).  Rebuild the Java using the build.sh script included and start the Tomcat server.  Edit the quiz.lsl script to point to your server and port.

Leave a Reply