Appendix 8.1 Glossary
The agent community is still new and terms are used in a variety of ways with more or less precision. Some of the ways terms can be used in glossaries are:
In the glossary that follows, we focus on descriptive and ascriptive definitions - we are still too far away from agreement on general prescriptive uses of terms, except in agent subcommunities (e.g., FIPA ACL) where many terms have relatively precise meaning.
 popular definition: a software program that does something, often on behalf of a person or other agent,
Properties of Agents. Different agents have different properties. Some properties ascribed to agents (by humans) include (some of) the following properties [from Introduction to Software Agents, Jeffrey Bradshaw, in "Software Agents" ,AAAI Press/The MIT Press, 1997]:
Note that not all agents have all these properties and that there is not necessarily a single implementation mechanism for providing any one of these properties.
Kinds of agents. It often makes sense to qualify agents in some way (via a noun modifier) since the mechanisms that implement different kinds of agents are often different and not all agents have all properties. Agent kinds parallel to some extent agent properties. The following is not a complete list of agent kinds and there are gray areas in each kind (that is, these are not precise operational or prescriptive definitions) [some kinds courtesy of Jeff Bradshaw, Boeing]:
 More narrowly, through the use of middle agents (matchmakers, brokers, etc.), agents can discover one another at runtime based on their capabilities, forming potentially novel teams to tackle a specific task. [from Brian Kettler, ISX]
 IETF or system management definition: software that runs the network-management software in a network device, such as a router, host, or X terminal. Sometimes called a network agent.
 knowledge discovery technology related to finding similar or relevant information. See information filtering.
agent communication language (ACL)
A higher level language (above the message passing level of objects) that uses speech acts (e.g., ASK, TELL, SUBSCRIBE) to specify requests. There are two main ACL families: KQML and FIPA ACL (zipped spec). Both have similar coverage but the details differ. Not all agent systems use an ACL but some communities view ACLs as the distinguishing operational characteristic of agents.
 Broadly, the vision of the agent grid is a pervasive infrastructure on a large (global) scale that permits agents in heterogeneous agent systems and communities to interoperate. This is a new idea and there are many open architectural issues, including whether the agent grid is a system or a set of protocols, whether it speaks a particular agent communication language, whether there are many agent grids that federate, and how the agent grid relates to infrastructure (e.g., the web, distributed objects, email) and to other non-agent grid concepts. See [Kettler-99, Manola-Thompson-99]
 the DARPA Control of Agent Based Systems Grid (CoABS grid), a particular agent grid architecture and implementation being developed on top of Jini and so far interfacing to several agent systems, including SRI Open Agent System, CMU Retsina, and ISI Teamcore. The CoABS grid provides a way for agent, agent systems, agent services, and possibly objects, object services, and resources to register themselves with the grid. The grid also provides standard grid services like logging message traffic and trading, as well as system management and policy management for collections of agents including providing for system-wide iquos properties.
"This FIPA specification, which also draws on http://www.fipa.og/spec/f8a21.doc, outlines the necessary specifications needed for managing agents on an agent platform. A point of particular interest to the OMG is the mandatory use of IIOP as the baseline transport protocol. It is envisaged that other transport protocols may be standardised to meet specific needs e.g. for wireless applications." [Leonardo Chiariglione, FIPA Director]
FIPA term meaning the run-time environment in which an agent executes.
Common agent services are services that many agents might find useful such as registration, logging and visualizing agent system activity. See object and object services.
A particular implementation of a collection of agents consisting of one or more agent platforms, providing means of defining, naming, registering, and possibly permitting agent mobility, offering agent services and resources. Generally, within a single agent system, agents are homogeneous, all derived from a common family of assumptions. The agent grid in intended to provide agent interoperability for heterogeneous agent systems.
agent-based software engineering
Metholodology and analysis and design tools that either support the development of agent-based systems or support the development of any applications using agent technology design methods or augmenting traditional (e.g., object) methodologies and tools with agent methodologies and tools.
agentized - see wrapper
architecture - see Componentware Software Glossary
 Building Construction: the structural abstractions (e.g., blueprint) and styles (families of related common variations) that define a class of structure (e.g., a cathedral) or a particular structure (e.g., my house). Architecture usually focuses on the big picture and not the details of what color my rug is or specific pictures on my wall though such details can be viewed as architectural since they could be consonant or dissonant with the architecture's theme. There is no clear dividing line.
 Software Architecture, General: a static framework or skeleton (structure or set of conventions) that provides the form of a software system and the conventions, policies, and mechanisms for composing itself with subsystems, or component parts, that can populate the architecture. The architecture defines how the parts relate to each other including constraints governing how they can relate. An abstract framework is one that has not been instantiated with specific subsystems. A concrete framework (relative term) is one that has been (progressively) instantiated with specific subsystems as binding decisions are made. If a system is divided into parts (e.g., an architecture and its components) then there are interfaces that define how the parts intercommunicate. An architecture may just be a particular composition of subsystems. More often, it is a specific subsystem that other subsystems interface to. In this latter case, an architecture may have architectural properties (see iquos) architectural properties that preserve certain guarantees (e.g., safety, scaleability, fault tolerance, location transparency, …) for systems built using the architecture. Architectural properties may sometimes be specified via rules (e.g., load bearing walls) or conventions (e.g., must be written in C++) or constraints (e.g., use C++ or Java).
 Agent Architectures: usually, this term is applied to agent system architectures where it refers to the main functions, services, composition, and (any) guarantees that the agent system provides or that it imposes on agents. Individual agents themselves can also have an architecture or standard set of construction techniques, interfaces or conversational protocols. Ensembles may or may not have an explicit architecture, or they may have emergent behavior implicit in the interaction of the agents that make up the ensemble. The FIPA Architecture Overview document (pdf) (work in progress) reviews FIPA's reference architecture.
architecture description languages (ADL)
ADLs exist but are immature at present. Some consist of structural and sequencing relationships and properties. Finally, subsystems may have internal architectures (an O/S calls a compiler or a DBMS). In general, one man's floor is another man's ceiling. That is, there may not be a good way to distinguish architecture from the rest of design though one can still describe architectural abstractions and prove their properties.
In collaborative filtering, a person rates a sample of jokes, movies, ... and the system locates similar ones. Filtering can also be used to remove spam from web pages and find web pages, music and images "like this one." Many papers in Agents'99 covered some means of measuring similarity or nearness of artifacts. Join the mailing list email@example.com to know more or search for the term on Google.
component - from Component Software Glossary, http://www.objs.com/survey/ComponentwareGlossary.htm
General: Components can be viewed as pluggable entities with encapsulation (self-contained data and behavior) but no inheritance. They allow reuse of structure and behavior. Components include software (sub)system that can be factored out and that has a potentially standardizable or reusable exposed interface. Components in a SW architecture can be identified at different levels of abstraction, and the components identified at these different levels may not be in one-to-one correspondence. For example, viewing an architecture at one level of abstraction, object services may be identified as components. Viewing the same architecture at a more detailed level, a given service may be implemented by several distinct software modules, which may be individually identified as components. Objects can be viewed as a kind of componentization technology that supports inheritance so that components can be specialized incrementally. Objects can be extended in standard ways to support reflection, serialization, distribution, mobility, persistence, replication, and several other properties. Agents can be viewed as a kind of componentization technology that adds the properties listed under agents. Agents are often implemented as objects with extensions to support these properties (but not always).
Conversational protocols define legal sequencing of message between or among agents. The idea, in an early research stage, is that there must be ways to define legal orderings. Augmented finite state machines is one approach some have taken.
Being able to customize an agent so to do tasks useful to its user, which may or may not resemble tasks carried out by other agents for other users. Customization might involve parameterizing, explicit programming, ore machine learning in which the agent infers user behavior from observation.
A locus of information. Data sources comes in a large number of standard and non-standard formats. Some data sources publish their schemas (e.g. relational dbms catalogs, XML DTDs) but many do not. The challenge for information agents is to convert user queries to access to heterogeneous data sources.
An ensemble is a collection of agents that work together in a coordinated manner. Teams are either a kind of ensemble or synonymous with ensemble. Ensembles may have fixed or varying participation by agents that play roles (e.g., coach, 3rd base). Coordination often happens in real time (e.g., soccer, collections of helicopters flying together). Ensembles can often be viewed as a unit so a message sent to the ensemble may be acted on by one or more members for the ensemble. Ensembles may have emergent behavior. (A similar idea, originally from the ISIS system, is group objects where a group object acts like an individual in receiving messages but transparently forwards them to one or some of an associated set. Uses included fault tolerance.)
When a collection of agents individually follow rules their aggregate behavior may be observable. For example, a "flock" of birds is a collection of individuals following rules that makes the whole exhibit some group behavior like "heading south." Such ensembles may be stable for a time and then unstable; they may add or lose members while still exhibiting group behavior. Such ensembles might interact with other ensembles as when coyotes eat rabbits and the two populations grow or shrink over time.
Objective to be fulfilled by an agent or a planner that may be part of an agent. There are conflicting goals when, if one agent achieves its goals, that prevents another agent from achieving its goals.
The process of selecting information useful to some particular user or agent from a larger information source or stream. For example, email filtering. See relevance feedback. and collaborative filtering.
Actively seeking out new relevant data sources that the user was not aware of.
The term grid is increasingly appearing in computer literature, generally referring to some form of system framework into which hardware, software, or information resources can be plugged, and which permits easy configuration and creation of new functionality from existing resources. The "killer applications" for these grid concepts include computational challenge problems (e.g., codebreaking) requiring supercomputing capabilities, universal availability of customized computing services (e.g., access to one's individual desktop and application suite anywhere in the world), and global integration of information, computing, and other resources for various purposes. Several DoD and industry programs use some form of grid concept. However, such computer-related "grids" are a relatively new architectural idea, and not very well understood. Sometimes the term grid is used loosely in describing systems connecting some collection of distributed resources, while in other cases it is clear that some more advanced set of capabilities is involved. The grid concept has begun to be applied to computer systems involving agents, with agents playing both the roles of enablers and customers of grid capabilities. See agent grid. [Manola-Thompson-99].
"Knowledge Interchange Format (KIF) is a computer-oriented language for the interchange of knowledge among disparate programs developed by the ARPA-sponsored Knowledge Sharing Effort. It has declarative semantics (i.e. the meaning of expressions in the representation can be understood without appeal to an interpreter for manipulating those expressions); it is logically comprehensive (i.e. it provides for the expression of arbitrary sentences in the first-order predicate calculus); it provides for the representation of knowledge about the representation of knowledge; it provides for the representation of nonmonotonic reasoning rules; and it provides for the definition of objects, functions, and relations." [from UMBC Agent Web]
"Knowledge Query and Manipulation Language (KQML) is a language and protocol for exchanging information and knowledge developed by the ARPA-sponsored Knowledge Sharing Effort. KQML can be used as a language for an application program to interact with an intelligent system or for two or more intelligent systems to share knowledge in support of cooperative problem solving. It focuses on an extensible set of performatives, which defines the permissible operations that agents may attempt on each other's knowledge and goal stores. The performatives comprise a substrate on which to develop higher-level models of inter-agent interaction such as contract nets and negotiation. In addition, KQML provides a basic architecture for knowledge sharing through a special class of agent called communication facilitators which coordinate the interactions of other agents." [from UMBC Agent Web]
 Mechanisms and techniques for telling agents what to do or how to control or change their behavior.  The degree to which agents can be instructed.
The ability for two or more systems, components, or agents to exchange information and use the information that has been exchanged [IEEE]. Information might include not just be data but also control, operation invocation, error notifications, etc. Interoperability is based on various agreements (shared assumptions) among the components about the information being exchanged. Disagreements may limit the possible interoperability. [from Frank Manola, OBJS]. There are several general kinds of interoperability (syntactic, semantic, control) and a number of design patterns and techniques for dealing with interoperability. In the agent area, interoperability problems occur when agents from different agent systems must communicate. They may differ in ACL, content language, ontology, capability (like mobility), control, services like registration, logging, persistence, etc. and so making systems that vary in these agreements interoperate can be easy or hard depending on how much they need to interoperate. Semantic interoperability is a kind of interoperability distinguished from syntactic interoperability where agents that must communicate operate from different representations, factorings, or abstractions of content or function and some translation is needed to allow them to interoperate. In general cases, this involves translation operations on ontologies though simpler mechanisms like type coercions often are useful. The agent grid is aimed at reducing some kinds of interoperability among agents and agent systems.
An isolated group of agents that does not know about other agent groups. This can happen on purpose because of the way agents are modeled or for security reasons or accidently because of firewalls or network failures or because of interoperability barriers between agent systems. Survivable and self-healing agent systems might provide safeguards to prevent islands and to allow autonomous operation when an island's communication is cut off from the grid and means of reestablishing communication, coordination, and resynchronizing shared state and goals.
Generally [see Frank Manola, Providing Systemic Properties (Ilities) and Quality of Service in Component-Based Systems]: "It is convenient to group application requirements into two categories, namely functional requirements, which are primarily concerned with the purpose of an application (i.e., what it does [its input and output behavior]), and non-functional requirements, which are more concerned with its fitness for purpose (i.e., how well it does it)." It is these non-functional requirements, including such things as dependability (e.g., reliability, security, and safety), survivability, and adaptability, that are sometimes referred to as ilities. They have in common that they are systemic properties, rather than properties of individual system components. That is, while a system can become capable of performing a given function or providing a given service by adding a component that supports that function or service, a system cannot, for example, become reliable simply by adding a "reliability component" (i.e., a single piece of software whose function is "reliability"). Instead, provision for ilities such as reliability permeates the design and implementation of the system as a whole, and may involve detailed considerations in many of the system's components. Various lists of ilities have been identified. For example:
Such considerations make it clear that it is difficult to draw a line between "ilities" and "QoS", and in fact increasingly these issues are being considered as part of a common problem. As a result, we often can generally refer to non-functional "ilities" and "QoS" as IQoS.
An environment where agents (or obejcts) compete for resources. They may have certain capabilities, notably a budget, that limit how much of a service they can afford. Marketplace supply and demand forces control emergent behavior.
A FIPA specification (pdf), not yet officially adopted by FIPA,outlines the requirements and specifications of messaging services between agents and between agent platforms. [Leonardo Chiariglione, FIPA Director]
models of emotion, motivation, personality
<in depth definition needed>
Software that performs infrastructure plumbing functions but above the level of underlying transports (e.g., TCP/IP) and operating systems. An example: OMG CORBA provides a distributed bus architecture and a modular collection of object services. In the agent area, see middle agents as some examples of agent-oriented middleware.
See agent property. FIPA details various models and protocols to support agent mobility between agent platforms. The OMG Mobile Agents Facility (MASIF) provides a framework for agent mobility.
A FIPA specification (pdf), not yet officially adopted by FIPA, outlines models for consistent naming of agents.
Interaction pattern where two parties reach agreement through some pattern of bargaining. For instance, an auction. Agents send each other messages in turn each asking, offering, threatening, or appealing to reach an agreement.
object - from Component Software Glossary
An encapsulated software unit consisting of both state (data) and behavior (code). In some object models, an object is an instance of some class as specified in some OO object modeling language (e.g., IDL). Distributed objects are objects that support invocations across process boundaries. Objects can be viewed as a kind of componentization technology that supports inheritance so that components can be specialized incrementally. Objects can be extended in standard ways to support reflection, serialization, distribution, mobility, persistence, replication, and other properties.
The relationship of objects and agents is an issue: some see agents as "objects with an attitude," that is, objects that obey a richer variety of protocols than standard OOPL objects. For instance, instead of just message passing based communication, they negotiate with other objects (via performative like ASK and TELL) to request services. There are also issues concerning the number or interfaces an agent might have and whether these might change over time, the need for agent services paralleling object services, and so on.
object service - from Component Software Glossary
 OMG architectural distinction: one or more objects that together perform some abstraction or function. Services are reusable, have a well defined object interface, have cleanly specified interfaces to other services they must or may depend on, and are composable with other services into higher level systems, and are often federate-able with other copies of the same or similar service. The intent is to separate abstractions like persistence and versioning as separable services that can be recombined and/or specialized by some general glue mechanisms like inheritance. Note that separation of interfaces does not necessarily imply separation of implementations. So a legacy system providing several services may simply provide a compliant interface to OMG services to be compliant. It may still be difficult to impossible for a third party to augment the functionality of the black box implementation by providing other services. On the other hand, separate implementations of each service may be standalone and not be composable themselves (even within a single vendor's product offering). OMG and the entire component software community still needs to wrestle with implementation composability as well as interface composability. Until this is done, several of the mix-and-match benefits of the component approach will go unrealized.
 Object Services Architecture: An OMG document (completed around 1992) which lists and describes the basic object services that OMG eventually adopted most of.
 Philosophy: the branch of metaphysics that studies the nature of existence. [This is a different sense than the knowledge sharing sense.]
 Knowledge sharing: a (often formal logical) specification of a collection of concepts and their relationships including implied facts. Linguistic ontologies (e.g. Princeton WordNet) and thesaurii express various relationships between concepts (e.g synonymy, antonymy, isa, contains), but do not explicitly and formally describe what a concept means. An AI ontology approach might fully define an attack aircraft as "a fixed wing aircraft that has been assigned to a combat mission that is one of those in the group SEAD". In addition to the formality and rigor dimensions, ontologies can be classified along dimensions of coverage, guiding principle, and point of view. Upper ontologies such as CYC aim to cover concepts that are common across domains (e.g. common sense reasoning in the case of CYC), while domain ontologies focus on a single domain (evacuation operations, medicine etc.). The point of view of an ontology is the kinds of concepts for which the ontology forms a theory. The point of view of an ontology need not be a domain (e.g mission planning). For instance, problem solving ontologies describe the strategies taken by problem solvers to attack domain problems, and theory ontologies might describe concepts of space, time, causality, plans etc . The guiding principle of an ontology is the principle by which the concepts and relationships in the ontology were chosen. WordNet and other ontologies use linguistics as a guide for identifying the concepts that should be in the ontology (particularly the upper level concepts). Linguistics is not the only guidance that could be used. It might be possible, for example, to use conceptual clustering as a guide for ontology structure. [from Venu Vasudevan, Notes on ontologies, (and their relevance to service trading in an internet service market)]
 KQML and FIPA ACL, a special case of : the ontology argument in an ACL message. This permits agents to compare and translate among ontologies. Separable issues are (a) the ontology representation, (b) the ability to reference and read remote ontologies, and (c) the ability to translate among ontologies, (d) the ability to combine and merge ontologies. A FIPA specification outline how to manage ontology services and models in a consistent open framework.
In system management, a policy allows a system administrator to make choices that affects the way the system acts. For instance, a security policy, change management policy, survivability policy, bandwidth control policy. Policies often involving guaranteeing some system property.
Agents, agent services, objects, or resources register with an agent system's registration service. In mobile agent systems, the agent system consists of agent platforms which provide an execution environment and a registration service for locating agents. In a trader, agents that can provide a service or that need a service can register via advertisements.
Synonym for entity. Things of interest, typically that have attributes. Often used to denote computer artifacts like things referenced by URLs or that have capacity constraints. <Better definition needed>
Any scheme for managing resources to avoid resource contention which occurs when two or more agents want the same resource at the same time. Policies are used to control resource usage.
robot or bot
A robot is a program that autonomously explores the Internet for a specific purpose. Derived from the word robot, a bot is a software program that performs repetitive functions, such as indexing information on the Internet. Robots that record and index all of the contents of a network to create searchable databases are sometimes called spiders or worms. The action is called harvesting. A chatbot is another kind of bot that engages the user in conversations. It may be programmed with grammars, finite automata, or patterns.
A whole family of security terminology needs to be imported for agents: authorization, authentication, firewall, denial of service, access control list, .... Security and security assurance is especially interesting in agent systems where agents may cooperate or compete and where agent systems may not trust visiting agents and vice versa. See agent services including security service.
Usually refers to a large collection of agents, not just one ensemble. Agents in the society may join or leave the society, cooperate or compete. A marketplace may govern agent behavior.
Family of agreements that a community adopts. In the agent technology area, some of the possible standards cover agent communication languages, mobility frameworks, agent wrappers, team services, trader APIs, and others. FIPA and OMG Agent WG are beginning to collaborate on agent standards.
team - see ensemble.
"Being sure that the agent will carry out the user's wishes correctly. This requires both that the agent know what it is that the user wishes done, and that the user knows that the agent knows it. If the user does not know what the agent is likely to do, he or she cannot give the agent very much autonomy in its actions."
A middle agent service that maps one form of information into another.
The vision of computing and connectivity not just via PCs but everywhere: wearable computing, household appliances that communicate, MEMS-based smart dust, etc. Many view agent technology as a natural fit for controlling and understanding pervasive application area of ubiquitous computing.
A wrapper around a non-agent software component (object or other software) that permits the component to be agentized, so that it can communicate with other agents using the agent communication language of a system, register in a registry or trader, and make use of other services available to agents. See general definition wrapper. A FIPA specification (zipped specification) details a standard way in which non-agent based software can be integrated into a FIPA agent platform.
quality of service - see iquos.
Last revised: August 20, 1999. Send comments to