I-X Second Life Application

AITommy Jannings - 29-May-2007
Adapted by Jussi Aya & Ai Austin - 15-Jan-2008

I-X is a systems integration architecture which supports the creation of collaborative and mulit-agent systems. It provides an issue-handling style of architecture, with reasoning and functional capabilities provided as plug-ins. Also via plug-ins it allows for sophisticated management of internal model representations. I-X agents may be combined in various ways, and may interwork with other processing capabilities or architectures.

The latest version of the I-X open source distribution can be obtained at http://www.aiai.ed.ac.uk/project/ix/release/.

The core distribution contains the I-X Second Life demonstration application.


This document describes how to run the I-X SL application for demonstrating interaction between an I-X Process Panel with SL objects, using the <I-N-C-A> shared model paradigm. The application uses the example of a Greeter, originally implemented to greet visitors at the AIAI2 SL office.

This document assumes you are familiar with the following concepts: I-X technology, <I-N-C-A> and SL, in particular SL objects, communication and scripting. Also, that before running this application, you have created a SL Greeter object with the correct Linden Scripting Language (LSL) scripts, which must be running, and have at hand the ID of the channel to communicate with the Greeter.

If you want to try out the fire starting activities, get the sample Effects Generator object provided as a demonstration at AIAI2's facility in Second Life. This obbject can be controlled by command through I-X.


Contents of Application

The I-X SL application contains two applications. The first applications is a standard I-X Process Panel used by a user to interact with the SL Greeter. The second application is an instance of an I-X Agent, acting as a proxy (<I-N-C-A> interpreter) for the SL Greeter. To run the I-X application it is necessary to run both applications. Note that, in general, a proxy Agent is not necessary, but has been included in this proof-of-concept to keep the application simple.

Also available with the application are the Greeter Linden scripts (in the '[app directory]/resources' directory): 'GreetingComms.lsl' and 'Greeting.lsl'. Plus the Greeter texture file (as seen in the above image) that is based on the NASA Personal Satellite Assistant robot texture.

How it works - briefly

Three components are required to demonstrate the I-X SL Application: an I-X Process Panel, an SL Greeter I-X Agent and a SL Greeter object (running necessary scripts).

I-X Process Panel:

I-X Greeter Agent:

The overall architecture of the application is:

As can been seen from the architecture diagram, the I-X Process Panel does not communicate directly with the SL Greeter, it is done via the proxy I-X Agent. As mentioned above, this decision was taken to reduce the complexity of the application. In essence the proxy acts as an <I-N-C-A> interpreter. The I-X Agent interprets <I-N-C-A> messages and forwards the necessary content to the SL Greeter. The I-X Agent also forwards any messages sent back from the SL Greeter, as <I-N-C-A> Reports, to the I-X Process Panel.

Communication between the I-X Agent and I-X Process Panel is done via local communication channels, but can be, as with any I-X configuration, done in various ways. Currently, the I-X Process Panel is configured to run a local name server to which the SL I-X Agent connects to. The I-X Agent communicates with the SL Greeter via the XML-RPC protocol. Due to current SL limitations XML-RPC calls cannot initiate from within the SL environment. So in order to allow the SL Greeter to send event notices to the I-X Process Panel, a system has been implemented whereby the I-X Agent polls the SL Greeter. This way the Greeter can piggyback a report on an XML-RPC reply message.

I-X Name Server:

How to run the applications

Instructions are provided for running applications under Windows and Unix-type environments (Linux, Mac OS X). Note that it is NOT necessary to be logged in to Second Life to demonstrate this application. However, it may make a demostration more visually pleasing!

In the current configuration, it is necessary to run the I-X Process Panel first since it initialises the name server.

I-X Process Panel

Windows: To run the I-X Process Panel, double-click on the [app directory]/scipts/win/process-panel.bat script.
Unix: To run the I-X Process Panel, run the [app directory]/scripts/unix/process-panel script in a command shell.

I-X Process Panel Test Menu: Using the test menu it is possible to send activities to the SL Greeter or send activities to the I-X Process Panel, which can then be delegated to the SL Greeter. The configuration file for the test menu is: [app directory]/config/sl-greeter-test.xml.

Configuration: The configuration file is [app directory]/config/sl-process-panel.props. Included in this file are details about the agents' capabilities. For the Greeter, it can start and stop.

Note: to see the fire-starter working, get a copy of the sample Effects Generator from the AIAI2 Office in Second Life and place it within 10m of the Greeter (so chat commands from the greeter can be heard by the object). http://slurl.com/secondlife/Vue/185/251/22

I-X Greeter Agent

Windows: To run the I-X Greeter Agent, double-click on the [app directory]/scipts/win/run-greeter-agent.bat script.
Unix: To run the I-X Greeter Agent, run the [app directory]/scripts/unix/process-panel script in a command shell.

Configuration: Greeter communication parameters are stored in the I-X Agent configuration file: [app directory]/config/sl-greeter.props. Two parameters are required to communicate with the SL Greeter: