Table of Contents
MICA is a toolkit that makes it easy to build applications that involve different modes of interaction, and different autonomous agents. MICA stands for Multimodal Interagent Communication Architecture[1].
It is being developed by the Smart Internet Technology CRC. It is specifically designed to support the following features:
Write applications in such a way that the application itself is separated from the interface to that application; in this way different interfaces can be written for different modalities. This makes it possible, for instance, to write an e-mail agent; and then have both a voice interface and a GUI interface to it at once.
Having the same information accessible across different devices and modalities.
Maintainenance of state across different devices and modalities so that an interaction started on one device can quickly be moved to another.
Combinations of both input modalities from various devices and output modalities.
Support for learning, by exposing the interactions between agents so that learning programs can observe them.
To support these capabilities, MICA:
Is a platform for exchange of data that is modality and device independent;
Provides storage of information and state at a single logical "access point" (information may be physically distributed but the location should be hidden);
Requires that communication between agents should be visible to learning agents.
MICA uses a blackboard architecture to provide the capabilities discussed above. The blackboard concept was introduced by Erman et al (1980) in the HEARSAY-II speech understanding system. Since then, it has been used in a variety of AI systems and variations of the blackboard have been used to provide rendezvous mechanisms in multi-agent systems.
In MICA, we extend the blackboard to support:
distributed execution;
multiple devices;
network connection;
object-oriented storage;
security and privacy.
In its simplest form, a blackboard is a shared memory. An agent may perform some task and post its results to the blackboard. When data of a particular type is written to the blackboard, that event may trigger another agent into action and this process repeats. The advantage of agents communicating indirectly through the blackboard is that they do not have to be aware of each other. This isolation makes it possible to introduce new agents or replace existing ones without affecting other agents. Furthermore, indirect communication allows the information going through the blackboard to be observed by third parties, which allows learning and knowledge acquisition.
In practice, blackboards have more structure than a simple shared memory. The memory is often divided into different regions and some agents may be restricted to accessing only certain regions. Blackboards also commonly include an agenda mechanism for scheduling events.
In MICA, an object-oriented approach is taken to the blackboard; items written to the blackboard have a particular type. Types may be inherited.
The blackboard is structured as follows:
Agents connect to the blackboard.
Agents register interests in particular types of objects.
Agents write objects to the blackboard.
The blackboard manager advises registered agents of new objects.
Agents can search blackboards using a query language (in the present implementation, the query language is based on SQL).
Generally, there are several types of agents: interface agents, which provide a way of interacting with the system's user, computation agents that provide services such as e-mail, or text-to-speech and environment agents that report information about the user's context, e.g. GPS trackers. There is no formal distinction made between these types of agents, but it goes some way to showing the variety of different systems that can be connected to MICA.
The blackboard provides two important functions: information storage -- by writing information to the blackboard; and information communication -- by informing other agents when objects are written to the blackboard. The fact that they are both done using the same mechanism has several advantages. It means that, for example, a GPS tracker can report information to the blackboard, even if no one is listening, and later agents can "track back" through older location information. Agents that connect to a discussion "late" can retrieve state from before they connected. Agents can also "watch" the blackboard and contribute to the information on the blackboard -- e.g. learning agents.
[1] Actually, this is the latest version of the acronym. Previously it used to stand for "Multimodal Internet Conversation Architecture", but then it was realised (a) it wasn't restricted to the internet (b) it wasn't restricted to conversation either. But the name has stuck, in any case.