Towards the Standardization of Multi-Agent System Architectures: An Overview
Roberto A. Flores-Mendez
robertof (at) cpsc.ucalgary.ca
Computer Science Department,
University of Calgary, Canada
(In ACM Crossroads, Special Issue on Intelligent Agents, Association for Computer Machinery, Issue 5.4, pp. 18-24, Summer 1999
Introduction
Agents are everywhere. One can find intelligent agents, information agents,
mobile agents, personal assistant agents, and so on. At this point, one could
start asking if it is possible to make some sense of this apparent
anarchy: What is it that makes an agent? Is there something that agents
have in common? How can one organize them to carry out tasks?
Fortunately, we are not the first to ask these questions, since researchers
have already defined some helpful notions. Firstly, authors have acknowledged
that agents are entities within an environment, and that they can sense
and act (not necessarily in that order). This means that agents are not
isolated entities, and that they are able to communicate and collaborate
with other entities. Simply put, agents that are not able to work together
with other agents (humans included) are destined to become virtually useless.
Once agents are ready for collaboration, they will need to find other
agents they need to collaborate with. Such a task is easy if they know
exactly which agents to contact at which location. However, our everyday
human experience has shown us that such a static setting is very unlikely
to exist: people are usually on the move and they are not always readily
available to interact with others. The same holds true for dynamic multi-agent
systems: agents need support to find other agents.
Such are the motivations pursued by research groups working on the standardization
of dynamic collaborative multi-agent systems. Some of these groups are
the Foundation for Intelligent Physical Agents (FIPA), the Object Management
Group (OMG), the Knowledge-able Agent-oriented System (KAoS), and the General
Magic group.
This article briefly describes these groups' efforts toward the standardization
of multi-agent systems architectures, and sketches early works to define
a multi-agent systems architecture at the University of Calgary. However,
the main objective of this article is to give the reader a basic overview
of the background and terminology in this exciting area of research.
Background
Although agent researchers come from a variety of backgrounds, the Distributed
Artificial Intelligence (DAI) and the Distributed Computing (DC) communities
stand out as traditional agent research areas.
During the mid 70's, researchers from DAI began to formulate some of
the basic theories, architectures and experiments that showed (computationally
speaking) how interaction and division of labor could be effectively applied
to problem solving [15].
Experiments showed that intelligent, rational behaviour is not an attribute
of isolated components, but rather an outcome that emerges from the interaction
of entities with simpler behaviours [4
, 10].
More recently, DC became an active discipline in agent research. DC
is challenged to integrate heterogeneous, largely autonomous and often
legacy computer components as part of collaborative environments. From
this perspective, agents are applied as interaction entities to mediate
differences among components, while providing a syntactically uniform and
semantically consistent intermediary role [21].
Agents Overview
The term "agent" is an elusive one to define. Agents are often described
as entities with attributes considered useful in a particular domain. This
is the case with intelligent agents, where agents are seen as entities
that emulate mental processes or simulate rational behaviour; personal
assistant agents, where agents are entities that assist users to perform
a task; mobile agents, where entities are able to roam networking environments
to fulfill their goals; information agents, where agents filter and coherently
organize unrelated and scattered data; and autonomous agents, where agents
are able to accomplish unsupervised actions, for example.
Attributes versus Attributions
Several researchers have attempted to provide a meaningful classification
of the attributes that agents recognized as such might have. A list of
common agent attributes is shown below [2].
-
Adaptivity: the ability to learn and improve with experience.
-
Autonomy: goal-directedness, proactive and self-starting behaviour.
-
Collaborative behaviour: the ability to work with other agents to
achieve a common goal.
-
Inferential capability: the ability to act on abstract task specifications.
-
``Knowledge-level'' communication ability: the ability to communicate
with other agents with language more resembling human-like ``speech acts''
than typical symbol-level program-to-program protocols.
-
Mobility: the ability to migrate in a self-directed way from one
host platform to another.
-
Personality: the ability to manifest attributes of a ``believable''
human character.
-
Reactivity: the ability to selectively sense and act.
-
Temporal continuity: persistence of identity and state over long
periods of time.
According to their attributes, agents could be classified as showing weak
or strong notions of agency [24].
The weak notion of agency, which comes from DC and DAI, sees agents as
a paradigm of network based cooperative automation. The strong notion of
agency, from Artificial Intelligence (AI), leads towards an anthropomorphic
view where agents are seen as conscious, cognitive entities that have feelings,
perceptions and emotions just like humans [26].
Nevertheless, it has been asserted that agents cannot be only characterized
by their attributes, but also they need to be analyzed by their attributions
as perceived by humans. A simple categorization of behaviour can be achieved
by applying the following three predictive stances [9]:
-
Physical stance: predictions are based on physical characteristics and
laws.
-
Design stance: predictions are based on what a system is designed to do.
-
Intentional stance: predictions are based on assumptions of rational agency
(e.g., beliefs, intentions, desires, and so on).
It is interesting to notice how human perception of intelligent behaviour
influences the definition of agency:
``[It] helps us understand why coming up with a once-and-for-all definition
of agenthood is so difficult: one person's 'intelligent agent' is another
person's 'smart object'; and today's 'smart object' is tomorrow's 'dumb
program.' The key distinction is in our expectations and our point of view
''. [2]
What Do We Mean By Agent?
One aspect of agents that is broadly mentioned in the literature is the
notion of agents as interactive entities that exist as part of an environment
shared with other agents. This definition of agenthood is taken from descriptions
given by several authors, who describe agents as conceptual entities that
perceive and act [4
, 33]
in a proactive or reactive manner [24]
within an environment where other agents exist and interact with each other
[34]
based on shared communicational and representational knowledge [14].
Objects versus Agents
Agents and objects share some characteristics that sometimes make them
hard to differentiate. For example, agent-oriented programming (AOP) could
be considered a specialization of the object-oriented programming (OOP)
paradigm [34].
On the one hand, OOP views systems as consisting of objects communicating
with one another to perform internal computations, whereas AOP specializes
this view to have agents (instead of objects), whose internal computations
are based on beliefs, capabilities, choices and so forth, and which communicate
with each other using messages adopted from speech-act theory.
Although this conception allows one to appreciate the similarities between
agent and objects, their differences are less obvious. There are three
main differences that have been identified between agents and objects:
``The first is in the degree to which agents and objects are autonomous.
We thus do not think of agents as invoking methods upon one-another, but
rather as requesting actions to be performed. In the object-oriented case,
the decision lies with the object that invokes the method. In the agent
case, the decision lies with the agent that receives the request.
``The second important distinction ... is with respect to the notion
of flexible (reactive, pro-active, social) autonomous behaviour.
``The third important distinction ... is that agents are each considered
to have their own thread of control ... in the standard object model, there
is a single thread of control in the system.'' [23]
Multi-agent Systems Overview
Terminology
As part of their study of agent systems, researchers began to coin (purposely
or otherwise) a terminology for agents. Although there is no complete agreement
among researchers on the exact meaning of these terms they more or less
resemble each other. Some of these terms are described as follows [21]:
Agent Architectures analyze agents as independent
reactive/proactive entities. Agent architectures conceptualize agents
as being made of perception, action and reasoning
components. Perception feeds the reasoning component, which governs
the agents' actions, including what to perceive next.
Agent System Architectures analyze agents as interacting service
provider/consumer entities. System architectures facilitate agent operations
and interactions under environmental constraints, and allows them to take
advantage of available services and facilities.
Agent Frameworks are programming tools for constructing agents.
Examples of these are Voyager [30],
Aglets [22],
and Odyssey [16].
Agent Infrastructures provide the regulations that agents follow
to communicate and to understand each other, thereby enabling knowledge
sharing. Agent Infrastructures deal with the following aspects:
-
Ontologies: they allow agents to agree about the meaning of concepts.
-
Communication Protocols: they describe languages for agent communication.
-
Communication Infrastructures: they specify channels for agent communication.
-
Interaction Protocols: they describe conventions for agent
interactions.
What is a Multi-agent System?
Various definitions from different disciplines have been proposed for the
term multi-agent system. As seen from DAI, a multi-agent system is a loosely
coupled network of problem-solver entities that work together to find answers
to problems that are beyond the individual capabilities or knowledge of
each entity [11].
More recently, the term multi-agent system has been given a more general
meaning, and it is now used for all types of systems composed of multiple
autonomous components showing the following characteristics [23]:
-
each agent has incomplete capabilities to solve a problem;
-
there is no global system control;
-
data is decentralized; and,
-
computation is asynchronous.
One of the current factors (and arguably one of the more important ones)
fostering MAS development is the increasing popularity of the Internet,
which provides the basis for an open environment where agents interact
with each other to reach their individual or shared goals. To interact
in such an environment, agents need to overcome two problems: first, they
must be able to find each other (since agents might appear, disappear and
move at any time), and once they have done that, they must be able to interact
[23].
Finding Agents
There is a need for mechanisms for advertising, finding, fusing, using,
presenting, managing and updating agent services and information. To address
these issues, the notion of middle agents [7]
was proposed. Middle agents are entities to which other agents advertise
their capabilities, and which are neither requesters nor providers from
the standpoint of the transaction under consideration. The advantage of
middle agents is that they allow a MAS to operate robustly in the face
of agent appearance, disappearance and mobility.
There are several types of agents that lie in the definition of middle
agents. Note that these types of agents, which are described below, are
defined so vaguely that sometimes it is difficult to mark a clear differentiation
between them.
-
Facilitators: which are agents to which other agents surrender their
autonomy in exchange for the facilitator's services [2].
Facilitators can coordinate agents' activities and can satisfy requests
on behalf of their subordinated agents.
-
Mediators: which are agents that exploit encoded knowledge to create
services for a higher level of applications [37].
Note that the definitions of a facilitator and mediator are ambiguous enough
to overlap. For a detailed account of the differences between them, see
[38].
-
Brokers: which are agents that receive requests and perform actions
using services from other agents in conjunction with their own resources
[8].
-
Matchmakers and yellow pages: which are agents that assist
service requesters to find service provider agents based on advertised
capabilities [3
, 8].
-
Blackboards: which are repository agents that receive and hold requests
for other agents to process [28
, 6].
Agent Interaction
Interaction is one of the most important features of an agent [29].
In other words, it is in the nature of agents to recurrently interact to
share information, knowledge and tasks to achieve their goals. Researchers
investigating agent communication languages mention three key elements
to achieve multi-agent interaction [14
, 21
, 32]:
-
A common agent communication language and protocol,
-
A common format for the content of communication, and
-
A shared ontology.
Subsections below explain concepts on agent communication languages and
describe one of the most recognized agent languages: KQML. This subsection
on agent languages is followed by a brief description of ontologies, which
are described as structures of concepts and their relationships defining
a context of reference.
Agent Communication Language
There are two main approaches to designing an agent communication language
[17].
The first approach is procedural, where communication is based on executable
content. This could be accomplished using programming languages such as
Java [1]
or Tcl [30],
for example. The second approach is declarative, where communication is
based on declarative statements, such as definitions, assumptions, and
the like. Probably because of the limitations on procedural approaches
(e.g., executable content is difficult to control, coordinate and merge),
declarative languages have been preferred for the design of agent communication
languages. Most declarative language implementations are based on illocutionary
acts, such as requesting or commanding, actions that are commonly called
performatives. One of the more popular declarative agent languages is KQML.
KQML
KQML, which is an acronym for Knowledge Query and Manipulation Language
[18],
was conceived both as a message format and a message handling protocol
to support run-time knowledge sharing among agents [14].
This language can be thought of as consisting of three layers: a communication
layer (which describes low level communication parameters, such as sender,
recipient and communication identifiers), a message layer (which contains
a performative and indicates the protocol of interpretation); and a content
layer (which contains information pertaining to the performative submitted).
(register
:sender agentA
:receiver agentB
:reply-with message2
:language common_language
:ontology common_ontology
:content ``(ServiceProvision Manufacturing:TaskDecomposition)''
)
Figure 1. Example of a KQML message.
The format of a KQML message is shown in Figure
1. The message in the example starts with the word ``register'', which
is the action (performative) intended for the message. The remainder of
the message contains keywords needed for the message and communication
layers. Keywords used in KQML messages are defined as follows [25]:
-
sender: agent sending the message.
-
receiver: agent receiving the message.
-
from: original sender; used when a message is sent using intermediary
agents.
-
to: final recipient; used when a message is sent using intermediary
agents.
-
in-reply-to: identifier of the message that triggered this message
submission.
-
reply-with: identifier to be used by a message replying to this
message.
-
language: language for interpreting the information in the content
field of this message.
-
ontology: identifies the ontology to interpret the information in
the content field of this message.
-
content: context-specific information describing the specifics of
this message.
Ontologies
Ontologies are defined as specification schemes for describing concepts
and their relationships in a domain of discourse [14].
It is important that agents not only have ontologies to conceptualize a
domain, but also that they have ontologies with similar -- if not identical -- constructions. Such ontologies, when they exist, are called common ontologies.
Once interacting agents have committed to a common ontology, it is
expected that they will use this ontology to interpret communication
interactions, thereby leading to mutual understanding and (ultimately)
to predictable behaviours. Ontolingua [20]
is often mentioned in the literature as a system that provides a vocabulary
for the definition of reusable, portable and shareable ontologies. Ontolingua
definitions are described using syntax and semantics similar to those of
the Knowledge Interchange Format [19],
also known as KIF, which is a format attempting to standardize knowledge
representation schemes based on first-order logic.
MAS Architectures Review
The design of computer programs as multi-agent systems presents a useful
software engineering paradigm where systems are described as populated
by individual problem-solving agents pursuing high-level goals. Although
having such an abstraction seems promising, its widespread adoption among
system designers has not materialized yet. One reason is that MAS development
is a technically difficult task. Efforts are challenged not only by known
distributed programming issues, but also by the complexities associated
with supporting agent collaboration.
If the agent-oriented paradigm is to succeed, systematic methodologies
will be required for specifying and structuring applications as multi-agent
systems. Once these methodologies are agreed upon, it would only be a matter
of time until commercial MAS development toolkits emerge, and agent technology
becomes accessible to a wide variety of software developers.
MAS Architectures Standardization
Although agent research started more than two decades ago, few efforts
have been directed toward a consensual definition of an acceptable MAS
architecture. It is possible that one of the reasons for such an absence
of consensus might be the common misconception in research circles that
MAS architectures and frameworks need to be designed from first principles
to match project requirements [39].
Although this approach might prove time efficient for individual projects,
it certainly creates incompatible systems that are difficult to reuse from
project to project. Therefore, one might expect that the widespread adoption
of MAS technology will only begin after the formalization and standardization
of architectures, mechanisms and protocols supporting distributed interoperation
of agents [35].
It was not until recent years that several independent industrial and
research groups started to pursue the standardization of multi-agent technology.
Prominent efforts, such as those of the Object Manager Group (OMG), the
Foundation for Physical Agents (FIPA), the Knowledge-able Agent-oriented
System (KAoS) group, and the General Magic group are briefly described
bellow.
OMG's Model
The OMG group proposes a reference model as a guideline for the development
of agent technologies [35].
This model outlines the characteristics of an agent environment composed
of agents (i.e., components) and agencies (i.e., places) as entities that
collaborate using general patterns and policies of interaction. Under this
model, agents are characterized by their capabilities (e.g., inferencing,
planning, and so on), type of interactions (e.g., synchronous, asynchronous),
and mobility (e.g., static, movable with or without state). Agencies, on
the other hand, support concurrent agent execution, security and agent
mobility, among others.
FIPA's Model
The Foundation for Intelligent Physical Agents (FIPA) is a multi-disciplinary
group pursuing the standardization of agent technology. This organization
has made available a series of specifications to direct the development
of multi-agent systems. Of particular importance are their Agent Management
[12]
and Agent Communication Language [13]
specifications. FIPA's approach to MAS development is based on a ``minimal
framework for the management of agents in an open environment.'' This framework
is described using a reference model (which specifies the normative environment
within which agents exist and operate), and an agent platform (which specifies
an infrastructure for the deployment and interaction of agents).
KAoS' Model
Another important standardization effort is pursued by researchers of the
Knowledge-able Agent-oriented System [3]
architecture. This system, which is also known as KAoS, is described as
``an open distributed architecture for software agents.'' The KAoS architecture
describes agent implementations (starting from the notion of a simple generic
agent, to role-oriented agents such as mediators and matchmakers), and
elaborates on the interactive dynamics of agent-to-agent messaging communication
by using conversation policies.
General Magic's Model
General Magic is a commercial endeavor researching mobile agent technology
for electronic commerce. Conceptually, this technology models a MAS as
an electronic marketplace that lets providers and consumers of goods and
services find one another and transact business. This marketplace is modeled
as a network of computers supporting a collection of places that offer
services to mobile agents. Mobile agents, which are pictured as entities
that reside in one particular place at a time, are described as showing the
following capabilities [36]:
-
they can travel: they are allowed to move from one place to another;
-
they can meet other agents: a meeting lets agents in the same place
call one another's procedures;
-
they can create connections: which allow an agent to communicate
with another agent in a different place;
-
they have authority: which indicates the physical world individual
or organization that the agent represents; and,
-
they have permits: which indicates the capabilities of agents.
Design of a MAS Architecture
The Computer Science and Mechanical Engineering departments at University
of Calgary have recently assembled a research group to study multi-agent
systems. This group, called the Collaborative Agents Group [5],
has adopted notions from the models described in the preceding sections
to define a dynamic collaborative multi-agent systems architecture. This
architecture will be put to test the mapping higher-level multi-agent manufacturing
architectures, such as MetaMorph [27],
into a dynamic collaborative agent environment.
The envisioned architecture, which is still in an early stage of development,
is briefly described as follows (publications forthcoming):
The architecture models open environments composed of logically distributed
areas where agents exist. Basic agents in this architecture are minimal
agents, local area coordinators, yellow page servers, and cooperation domain
servers. These agents are described as:
-
Minimal agents: They are the abstract common denominator of all
agents in the architecture. They implement the basic communicational functionality
needed in agent-to-agent interactions.
-
Local area coordinators: There is one local area coordinator per
area. Local area coordinators represent agents in their area and help them
to initiate agent-to-agent interactions. They also provide a ``white pages''
directory service of agents in an area.
-
Yellow page servers: They are responsible for storing and
making available information about services advertised by agents.
-
Cooperation domain servers: They provide virtual environments supporting
multi-agent communications and information sharing. These environments,
called cooperation domains, allow agents to subscribe, exchange messages,
and access shared information.
Simply described, a MAS is an environment consisting of areas. Areas are
required to have exactly one local area coordinator, which is an agent
that acts as a facilitator for other agents within its area. Agents can
be identified as being inside an area if they have registered with the area's
local area coordinator. Agents will use the services of local area coordinators
to access other agents in the system. Agents can advertise services and
find out about other agents' services by means of yellow page servers.
Agents requiring data sharing with other agents can join virtual environments
called cooperation domains, which are supported by cooperation domain server
agents.
Conclusions
The multi-agent systems paradigm promises to be a valuable software engineering
abstraction for the development of computer systems. In addition, the wide
adoption of the Internet as an open environment and the increasing popularity
of computer-independent programming languages, such as Java, provide the
grounds to believe that multi-agent technology is a feasible endeavor.
Consequently, it might pay off to invest some time reading and understanding
key concepts on this area. If one sets aside the hype literature about
agents, it can be noticed that most serious readings in this topic are
basically compilations of research papers previously published in specialized
conferences and workshops. The depth in which these articles cover their
topics makes it difficult for the uninitiated reader to coherently integrate
this information up to a higher level of abstraction. Therefore, the motivation
for this article was to provide readers with a global perspective on the
research literature on multi-agent systems.
In addition, this article briefly introduced the very basic notions
in the design of a multi-agent systems architecture being developed at the
University of Calgary, an effort that promises to become a fruitful contribution
for the area of agent research.
Acknowledgments
I would like to thank the Collaborative Agents Group (CAG) at University
of Calgary, especially my supervisor Rob Kremer, Niek Wijngaards and Douglas
Norrie for their invaluable comments, suggestions and support helping me
to understand better the intricacies of multi-agent research.
Partial support for this work was provided by a grant from Smart Technologies,
Inc.
References
-
1
-
Arnold, K. and Gosling, J. The Java Programming Language. Addison-Wesley
Publishing Co., second edition. 1998.
-
2
-
Bradshaw, J.M. An Introduction to Software Agents. In: Software Agents,
J.M. Bradshaw (Ed.), Menlo Park, Calif., AAAI Press, 1997, pages 3-46.
-
3
-
Bradshaw, J.M., Dutfield, S., Benoit, P. and Woolley, J.D. KAoS: Toward
An Industrial-Strength Open Agent Architecture. In: Software Agents,
J.M. Bradshaw (Ed.), Menlo Park, Calif., AAAI Press, 1997, pages 375-418.
-
4
-
Brooks, R. A. Intelligence Without Reason. Massachusetts Institute
of Technology, Artificial Intelligence Laboratory, A.I. Memo Number 1293,
April, 1991.
-
5
-
CAG Collaborative Agents Group. 1998. Web site: http://sern.ucalgary.ca/cag/
(publications forthcoming)
-
6
-
Cohen, P.R., Cheyer, A., Wang, M., and Baeg, S.C. An open agent architecture.
In: Proceedings of the AAAI Spring Symposium. 1994.
-
7
-
Decker, K., Sycara, K. and Williamson, M. Middle-Agents for the Internet.
In: Proceedings of the International Joint Conferences on Artificial
Intelligence (IJCAI-97), January, 1997.
-
8
-
Decker, K., Williamson, M. and Sycara, K. Matchmaking and Brokering. In:
Proceedings of the Second International Conference on Multi-Agent Systems
(ICMAS-96), December, 1996.
-
9
-
Dennett, D.C. The Intentional Stance. MIT Press, Cambridge, Mass.
1987.
-
10
-
Durfee, E.H. What Your Computer Really Needs to Know, You Learned in Kindergarten.
In: Proceedings of the Tenth National Conference on Artificial Intelligence,
July 1992, pages 858-864.
-
11
-
Durfee, E.H., Lesser, V.R. and Corkill, D.D. Trends in Cooperative Distributed
Problem Solving. In: IEEE Transactions on Knowledge and Data Engineering,
March 1989, KDE-1(1), pages 63-83.
-
12
-
FIPA FIPA 97 Specification, Part 1: Agent Management. Foundation
for Intelligent Physical Agents, Version 1.2, October 10, 1997.
-
13
-
FIPA FIPA 97 Specification, Part 2: Agent Communication Language.
Foundation for Intelligent Physical Agents, Version 1.2, October 10, 1997.
-
14
-
Finin, T., Labrou, Y. and Mayfield, J. KQML as an Agent Communication Language.
In: Software Agents, J.M. Bradshaw (Ed.), Menlo Park, Calif., AAAI
Press, 1997, pages 291-316.
-
15
-
Gasser, L. Foreword. In: Readings in Agents, Huhns, M.N. and Singh,
M.P. (Eds.), San Francisco, Calif., Morgan Kaufmann Publishers, 1998, pages
v-vi.
-
16
-
General Magic Odyssey. 1998. Web site: http://www.genmagic.com/technology/odyssey.html
-
17
-
Genesereth, M. An Agent-based Framework for Interoperability. In: Software
Agents, J.M. Bradshaw (Ed.), Menlo Park, Calif., AAAI Press, 1997,
pages 317-345.
-
18
-
Genesereth, M. and Fikes, R. Knowledge Interchange Format, Version 3.0
Reference Manual, Technical Report, Computer Science Department, Stanford
University, USA., 1992.
-
19
-
Ginsberg, M. The Knowledge Interchange Format: The KIF of Death. In: AAAI
Magazine, Fall 1991, Volume 12, Issue 3, pages 57-63.
-
20
-
Gruber, T.R. A Translation Approach to Portable Ontology Specifications.
In: Proceedings of the Knowledge Acquisition for Knowledge-Based Systems
(KAW'93), Gaines, B.R. and Musen, M. (Eds.), Banff, Canada, 1993, pages
199-220.
-
21
-
Huhns, M.N. and Singh, M.P. Agents and Multi-agent Systems: Themes, Approaches,
and Challenges. In: Readings in Agents, Huhns, M.N. and Singh, M.P. (Eds.),
San Francisco, Calif., Morgan Kaufmann Publishers, 1998, pages 1-23.
-
22
-
IBM Aglets. 1998. Web page: http://www.trl.ibm.co.jp/aglets/
-
23
-
Jennings, N.R., Sycara, K. and Wooldridge, M. A Roadmap of Agent Research
and Development. In: Autonomous Agents and Multi-Agent Systems Journal,
N.R. Jennings, K. Sycara and M. Georgeff (Eds.), Kluwer Academic Publishers,
Boston, 1998, Volume 1, Issue 1, pages 738.
-
24
-
Jennings, N.R. and Wooldridge, M. Intelligent Agents: Theory and Practice.
In: The Knowledge Engineering Review, 1995, Volume 10, Number 2,
pages 115-152.
-
25
-
Labrou, Y. and Finin, T. A Proposal for a new KQML Specification.
TR CS-97-03, Computer Science and Electrical Engineering Department, University
of Maryland Baltimore County, Baltimore, February 1997.
-
26
-
Mamdani, A. The Social Impact of Software Agents. In: Proceedings of
the Workshop on The Impact of Agents on Communications and Ethics: What
do and don't we know?, Program presentation, Foundation for Intelligent
Physical Agents (FIPA), Dublin, July 15, 1998.
-
27
-
Maturana, F., Shen, W. and Norrie, D.H. MetaMorph: An Adaptive Agent-Based
Architecture for Intelligent Manufacturing. In: International Journal
of Production Research, 1998. (in press)
-
28
-
Nii, H.P. Blackboard Systems. In: The Handbook of Artificial Intelligence,
A. Barr, P.R. Cohen and E.A. Feingenbaum (Eds.), Addison-Wesley, New York,
1989, Volume IV, chapter XVI, pages 1-82.
-
29
-
Nwana, H.S. Software Agents: An Overview. In: The Knowledge Engineering
Review, October/November 1996, Volume 11, Number 3, pages 205-244.
-
30
-
ObjectSpace Voyager 2.0, User Guide. 1998. Web page: http://www.objectspace.com/developers/voyager/
-
31
- Ousterhout J.K. Tcl: An Embedded Command Language. In: Proceedings
of the USENIX Conference, Winter 1990, pages 133-146.
-
32
-
Peng, Y., Finin, T., Labrou, Y., Chu, B., Long, J., Tolone, W.J. and Boughannam,
A. A Multi-Agent System for Enterprise Integration. In: Proceedings
of the Third International Conference and Exhibition on the Practical Application
of Intelligent Agents and Multi-Agent Technology, H.S. Nwana and D.T.
Ndumu (Eds.), London, UK, March, 1998, pages 155-169.
-
33
-
Russell S.J. and Norvik, P. Artificial Intelligence: A Modern Approach,
Prentice Hall, Englewood Cliffs, N.J., 1995.
-
34
-
Shoham, Y. An Overview on Agent-oriented Programming. In: Software Agents,
J.M. Bradshaw (Ed.), Menlo Park, Calif., AAAI Press, 1997, pages 271-290.
-
35
-
Virdhagriswaran, S., Osisek, D. and O'Connor, P. Standardizing Agent Technology.
In: ACM StandardView, 1995, Volume 3, Number 3, pages 96-101.
-
36
-
White, J.E. Mobile Agents. In: Software Agents, J.M. Bradshaw (Ed.),
Menlo Park, Calif., AAAI Press, 1997, pages 437-472.
-
37
-
Wiederhold, G. Mediators in the Architecture of Future Information Systems.
In: IEEE Computer, March 1992, pages 38-49.
-
38
-
Wiederhold, G. and Genesereth, M. Basis for Mediation. In: Proceedings
of the Third International Conference on Cooperative Information Systems
(COOPIS'95), Vienna, Austria, May 1995, pages 138-155.
-
39
-
Wooldridge, M.J. and Jennings, N.R. Pitfalls of Agent-Oriented Development.
In: Proceedings of the Second International Conference on Autonomous
Agents (Agents '98), K. P. Sycara and M. Wooldridge (Eds.), ACM Press,
May 1998.
About the author...
Roberto is a student at the University of Calgary, Canada, where he is
pursuing a Ph.D. in Computer Science. His interests include software agents,
the design of multi-agent systems and issues in distributed computing.
Some of his previous achievements include a B.Sc. in Computer Systems Engineering
from the Instituto Tecnologico y de Estudios Superiores de Monterrey (Mexico)
and an M.Sc. in Software Engineering from the University of Calgary (Canada).
In 1997, Roberto was awarded as a first prize winner in the ACM/IBM Quest
for Java contest for his jKSImapper concept mapping tool. He can be contacted
by email at robertof (at) cpsc.ucalgary.ca
, or by snail mail at:
University of Calgary
Computer Science Department
2500 University Drive NW
Calgary, AB, Canada T2N 1N4
| Last Modified on December, 1998 |
|