| Downloads UMPRS and JAM are both
BDI-theoretic (Belief-Desire-Intention) agent architectures based
upon the Procedural Reasoning System (PRS) of Georgeff, Ingrand,
Rao, Lansky, and others (primarily from SRI International and the
Australian AI Institute). Basically this means that these concepts
are explicitly represented within the agent code and that when you
implement agents you specify beliefs (facts known to the agent),
desires (goals that the agent is to achieve), and capabilities
(plans and primitive actions). The agent's intentions are
determined dynamically by the agent at runtime based on its known
facts, current goals, and available plans.
I.R.S. makes two general-purpose agent architectures freely
available for non-profit use (contact us regarding licensing for any
for-profit use of JAM and the University of Michigan for commercial use of UMPRS). Unlike many "agents"
being documented lately, which are useful in very restricted
domains, the UMPRS and JAM agent architectures are applicable to
nearly any application domain. Of course, with this
flexibility comes some complexity as neither can perform significant
tasks "out of the box". Both architectures emphasize
"knowledge level" programming, the agent-oriented
perspective of specifying the agent's beliefs, desires, and
capabilities. Pre-existing, non-agent-based legacy functionality can
be easily leveraged, especially with respect to the JAM agent
architecture. This requires some amount of C++ or Java programming,
but this can be easily done using standard programming tools and
practices.
Documentation and source code for both agent architectures are
available below. It would be greatly appreciated if you would notify
us that you've downloaded either JAM or UMPRS. Any improvements
made to either package would also be greatly appreciated as we will
incorporate these into the distribution (acknowledging the source of
the improvements, of course) for the benefit of the agent-building
community in the large. Furthermore, we are amenable to establishing
service agreements to support these products.
-
- General
description - JAM supports both top-down, goal-based reasoning
and bottom-up data-driven reasoning. JAM selects goals and plans
based on maximal priority if metalevel plans are not available, or
user-developed metalevel reasoning plans if they do exist. JAM's
conceptualization of goals and goal achievement is more classically
defined (UMPRS is more behavioral performance-based than truly
goal-based) and makes the distinction between plans to achieve goals
and plans that simply encode behaviors. Goal-types implemented
include achievement (attain a specified world state), maintenance
(re-attain a specified world state), and behavior
performance. Execution of multiple simultaneous goals are supported,
with suspension and resumption capabilities for each goal (i.e.,
intention) thread. JAM plans have explicit precondition and runtime
attributes that restrict their applicability, a postcondition
attribute, and a plan attributes section for specifying
plan/domain-specific plan features. Available plan constructs
include: sequencing, iteration, subgoaling, atomic (i.e.,
non-interruptable) plan segments, n-branch deterministic and
non-deterministic conditional execution, parallel execution of
multiple plan segments, goal-based or state-based synchronization,
an explicit failure-handling section, and Java primitive function
definition through explicit integration into JAM as well as the
invocation and access of predefined (i.e., legacy) class methods and
members via Java's reflection capabilities without having to do any
explicit integration with JAM.
-
- Manual - (Microsoft Word (XP)), (HTML
- apologies for any formatting problems as this is created
automatically using Word) [Updated November 1, 2001]
-
- List of Changes - A number of changes have been made from the
prior version.
-
- Download - (zip'd Java source code, manual,
etc.)[Updated November 1, 2001]
[You may also want to download and install the latest
release of the Java
Development Kit and JavaCC
although this is not necessary.]
Mailing list - JAM-users@yahoogroups.com
is an unmoderated mailing list for discussing anything
related to building and using JAM agents. You have to be an
eGroups member to read messages sent to JAM-users but you
can post messages even if you're not a member. To join
yahoo!Groups in the large, go to the yahoo!Groups homepage
and spend the minute it takes to join. Then send a message
to the following email addresses to join/leave/post to
JAM-users@yahoogroups.com. Specifically:
- Post message: JAM-users@yahoogroups.com
Subscribe: JAM-users-subscribe@yahoogroups.com
Unsubscribe: JAM-users-unsubscribe@yahoogroups.com
List owner: JAM-users-owner@yahoogroups.com
You can reach the JAM-users web-based interface page directly using the following URL:
- http://groups.yahoo.com/group/JAM-users
-
-
- General description - UMPRS supports
top-down, goal-based reasoning and selects goals and plans
based on maximal priority. Execution of multiple simultaneous
goals are supported, with suspension and resumption
capabilities for each goal (i.e., intention) thread. UMPRS
plans have an integrated precondition/runtime attribute that
constrain their applicability. Available plan constructs
include: sequencing, iteration, subgoaling, atomic (i.e.,
non-interruptable) blocks, n-branch deterministic conditional
execution, explicit failure-handling section, and C++
primitive function definition.
-
- Manual - (Mac Word 5.1)(HTML - apologies for
any formatting problems as this is created automatically using Word)
Source-code - (tar'd then gzip'd C++ code)
- [You will also need to download and install the latest releases of bison and flex (look for the ighest numbered
versions of the files bison-1.*.tar.gz and flex-2.5*.tar.gz)]
NOTE - The distribution does not contain an
"example" directory as described in the manual. Professor Ed Durfee at the
University of Michigan is working on this and it will be included in the distribution as
soon as it is ready.
NOTE - The distribution, as is, does not work
with the latest versions of gcc. gcc version 2.7.2 was the last known version with a
compatible template scheme. Professor Ed Durfee at the University of Michigan is working
on this and it will be included in the distribution as soon as it is ready.
Both of these represent work in progress, especially the JAM agent implementation. As
such, refer back to this page frequently for updates. On-line documentation in the form of
tutorials on how to develop and use these agents (beyond what is already in the manual)
will be forthcoming as time permits.
In addition to the standard programming paradigm, ORINCON
Corporation and the Johns Hopkins University's Applied
Physics Laboratory (APL) have both implemented graphical front-ends to simplify and
greatly speed programming of these agents architectures (a high-level description of
Orincon's Agent Workbench is available for download as TR-IRS-98-01.zip).
If you are interested in these applications or projects, you should contact them (Pat McLaughlin at ORINCON, Tom Smith at APL) directly.
________________________________
|
|