From: Aaron Sloman
Subject: The sim_agent toolkit - demonstration movies on web page
Date: 
Message-ID: <4tg9f8$43t@percy.cs.bham.ac.uk>
Things have been quiet on comp.lang.pop front, so I thought I'd announce
a recent upgrade of the Birmingham Sim_agent toolkit for exploring
architectures for interacting simulated agents, and invite collaboration
to extend the ideas and the implementation.

The toolkit, implemented in Pop-11, is described briefly in

    http://www.cs.bham.ac.uk/~axs/cog_affect/sim_agent.html

This now includes some "mpeg" movies showing simple demonstrations of
experiments using the toolkit. It also includes cross references to
some (long) plain text files describing the toolkit in more detail.

(If you have trouble running the movies using netscape this is because
netscape manipulates the colour map. The lynx plain text browser doesn't
have this problem and can also launch the movie player. On some machines
the movies will go too fast -- in that case use the single-stepping
option in the player.)

A partial description of the toolkit and the motivation for it, along
with some example experiments (including an experiment to co-evolve two
agents that can communicate to solve a problem), can be found in this
paper:

    Sloman, A and Poli R, (1996) SIM_AGENT: A toolkit
       exploring agent designs, in Intelligent Agents Vol II (ATAL-95) ,
       Eds. Mike Wooldridge, Joerg Mueller, Milind Tambe,
        Springer-Verlag pp 392--407
       Presented at ATAL-95, Workshop on Agent Theories, Architectures,
       and Languages, IJCAI-95, Montreal, August 1995.

The co-evolution experiment (done by Riccardo Poli) is also described in

    http://www.cs.bham.ac.uk/~rmp/eebic/example2.html

(though some of the syntax used there has now been superseded by a more
economical syntax for rules).

A paper by Jeremy Baxter in AISB Quarterly Autumn 1995, No 93, describes
work at DRA using the toolkit. Some recent work done using the toolkit
will be presented by Darryl Davis at ATAL-96.
=======================================================================

The toolkit does not provide any commitment to a particular agent
architecture. It is designed to facilitate exploration of different
architectures.

The objective is to allow exploration of a set of interacting objects
and agents where each agent may have a more or less complex collection
of coexisting, concurrent, interacting components of various sorts.
These are implemented via condition action rules, though an interface to
other mechanisms is provided, so that for example a rule may have as its
condition checker a neural net, and the output of a neural net may be a
vector selecting actions from a susbet of actions to be run. Facilities
are provided for varying the resources allocated to different
sub-mechanisms so that it is possible to have one agent whose planning
capabilities are fast relative to its perceptual capabilities and
another, in the same environment whose planning capabilities are slower.

This provides a framework for demonstrating the value of "anytime"
planners, for example. Other reasons for manipulating resource limits
include experimenting with different strategies for controlling
attention (relevant to understanding certain emotional states in humans,
where there is a partial loss of control of attention).

The toolkit with its graphical interface based on the Pop-11 RC_GRAPHIC
system can be used as a teaching environment for AI.

The toolkit has two main components, both implemented in Pop-11.

THE POPRULEBASE LIBRARY, described in
    ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/prb/help/poprulebase

This is a sophisticated and very general interpreter for
condition-action rules, written in Pop-11. It is based on the idea of a
forward-chaining production system interpreter, but provides a
collection of unusual facilities, including a smooth interface to neural
or other "sub-symbolic" mechanisms, through so-called "filter"
conditions, a wide variety of condition types and action types (both
user-extendable), and a variety of control options and higher level
structuring facilities.

Poprulebase allows rulesets to be combined into rulefamilies. Within a
rulefamily, control can be transferred between rulesystems as the
context changes. This also allows SOAR-like pushing and popping of
contexts, as well as other sorts of transitions. Rulefamilies can be
combined into rulesystems.

Each agent has a rulesystem, which may be an arbitrarily complex
collection of interacting rulesets and rulefamilies, with associated
databases providing memory stores and communication channels.


THE SIM_AGENT LIBRARY, available at
    ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/sim/help/sim_agent/

This makes extensive use of the recent Objectclass extension to Pop-11.
SIM_AGENT provides provides a set of base classes and scheduling
mechanisms for running simulations involving a number of objects and
agents whose internal mechanisms are implemented as multiple rulesets or
rulefamilies, using Poprulebase.

For information about Objectclass see
    ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/teach/oop
    ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/teach/objectclass_example
It is a CLOS-like extension to Pop-11 providing multiple-inheritance,
generic functions, etc. Objectclass, which was designed and implemented
by Steve Knight at HP Research Labs, Bristol, turns Pop-11 into a
powerful language for designing re-usable extendable software modules,
as CLOS does for Lisp.

In sim_agent, each agent has its own rulesystem which may consist of a
collection of rulesets and rulefamilies implementing a variety of
mechanisms (perception, memory, motive generation, planning,
self-monitoring, etc.). A feature of the toolkit is provision for
differing resource allocation between components of an agent, and
between agents. A draft overview of these mechanisms can be found at

    ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/prb/help/rulesystems

Draft graphical tools are available, built on extensions to the Pop-11
RC_GRAPHIC facility described in

    ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/rcstuff/help/rc_linepic

and the Pop-11 Propsheet library for building control panels and
dialogue boxes.


=======================================================================
The Pop-11 code and documentation for Sim_agent and the Poprulebase
system, on which it depends, are freely available by ftp

EITHER for online browsing in these two directories

    ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/prb/
        (Poprulebase library)

    ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/sim/
        (Sim_agent library, built on poprulebase)

OR for downloading as compressed tar files:
    ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/prbtar.gz
    ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/simtar.gz

(For the graphical extensions to Pop-11 used in the demonstration you'll
also need the rctar.gz file, in the same directory.)

Currently sim_agent is being used at Birmingham and DRA Malvern, for a
variety of experiments on agent architectures. By making it freely
available we hope to encourage shared development of ideas, libraries,
etc.

Maybe someone will copy the ideas and produce an implementation in Lisp.
(One person has already expressed an interest.) It should be possible to
develop common high level notations that work equally well in a Lisp or
Pop-11 implementation.

The package can be run by anyone who already has Poplog (version 15.0 or
later), which is available from Integral Solutions Ltd.

    WWW:  http://www.isl.co.uk
  EMAIL:  ···@isl.co.uk

More information about Poplog, including the free linux Poplog, can be
found in

    ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/poplog.info.html

Unfortunately the free version has restricted heap space which rules out
all but the simplest experiments using the toolkit.

Papers from the Birmingham Cognition and Affect project which inspired
the development of the toolkit can be found in the project ftp
directory:

    ftp://ftp.cs.bham.ac.uk/pub/groups/cog_affect/


Comments, criticisms, suggestions, and proposals for collaborative
development welcome.

Aaron
===
-- 
Aaron Sloman, ( http://www.cs.bham.ac.uk/~axs )
School of Computer Science, The University of Birmingham, B15 2TT, England
EMAIL   ········@cs.bham.ac.uk
Phone: +44-121-414-4775 (Sec 3711)       Fax:   +44-121-414-4281