Example Iams

From AI Wiki

Jump to: navigation, search

Here is a list of example Iams. All of them include all the source-code, data-files and libraries needed to run them. With one notable exception and that is the IamFramework.jar itself. Since it would be rather wasteful to include such a sizable file in each example, it's referred to in the Eclipse projects using a relative path. So to make it work you'll need to download the Iam Framework, unzip it and place it in your workspace directory. So that your directory structure contains <workspace>/IamFramework/IamFramework.jar. All the Iams can be tested by running the TestMyIam class from within Eclipse.

When you download an example project you may get build errors at first when you create a new project from it in your workspace. Selecting Project -> Clean should solve that.

Contents

Alice AIML chat-bot

[Alice] Chat-bot called A.L.I.C.E. created by Richard Wallace using AIML.

Marvin AIML chat-bot

[Marvin AIML] A simple chat-bot called Marvin using AIML.

Marvin CHAT-L chat-bot using the CHAT-L sandbox.

[Marvin CHAT-L sandbox] Same Marvin chat-bot, this time written in CHAT-L using the native sandbox. Only runs on Windows.

Marvin CHAT-L chat-bot using the Java ChatProcessor.

[Marvin CHAT-L Java] Marvin chat-bot once more, written in CHAT-L using the Java ChatProcessor.

Iam Town Tour Guide

[Tour Guide] This is a fairly elaborate example project combining several of the Iam technologies. It uses the CHAT-L based ChatProcessor to handle the conversation with players. It can give you a tour of a small part of Iam Town. The tour is described in XML in an easy to understand format. So this Iam can easily be configured to serve as a tour-guide in different places. The actual language it uses or responds to can be modified by editing the CHAT-L file, but is independent of the actual tour or place the Iam is located in. So this Iam is 'programmable' to a high degree without the need of any Java programming skills. All you need is get familiar with XML and little bit of Chat-L.

Beach-City Shop-keeper example

[Shop-keeper] This example has many similarities to the tour-guide above. After all, whether you show places and provide background information or help customers find items and tell them something more about them are not too distinct activities. So it's organized very similarly. An XML file describes a shop-catalog, including the in-world locations of the merchandise. The chat-L file controls the conversation. There are a few minor differences. First of all, this Iam only has a map of the shop it's attending. It's a good example of a complex Iam that is actually very small in size. The archive with the project is just 33Kb. Another thing that is shown by this example is how you can use interactions to engage an Iam specifically in an exchange with just one customer. When the shop-keeper is not busy and you greet it it will invite you to accept help from it. When you accept it won't help other players until you're done.

Lastly it should be noted that this example Iam operates in a live shop in Beach City. That means most likely the items in its catalog are not up-to-date with the actual items present in the store. As long as you can accept that it points to a dress when you ask for a leather jacket, everything should work fine. The shop this Iam is in is located immediately to the right of where avatars spawn in Beach City.

Fashionista

[Fashionista] An Iam that acts like a shopaholic and fashionista. It walks around, occasionally rests in a chair and it will talk about fashion on random occasions. When asked directly, it is able to answer simple questions about what it's wearing, who designed the clothes, where they can be bought and how much they cost.

Although this particular instance acts like a fashionista, all of its responses come from the chat-L file. As such it's an easy starting point for city-developers that would like to have a bot roaming about a certain area and either play a certain role in a story, or provide information about the area. And all that without actually having to do any Java programming. Just edit the XML files.

More to come soon...

Personal tools