A system built in PRS-CL is intended to simultaneously achieve any goals it might have based on its current beliefs about the world while noticing and responding to new events. The architecture of PRS-CL consists of An interpreter manipulates these components, selecting appropriate plans based on the system's beliefs and goals, placing those selected on the intention structure, and executing them.

The contents of the PRS-CL database may be viewed as representing the current beliefs of the system. It includes facts about static properties of the application domain, such as the physical structure of a device or the kinematic laws obeyed by mechanical components. Other beliefs are acquired dynamically by PRS-CL as it executes its Acts. These are typically current observations about the world or conclusions derived from these observations by the system.

Goals are expressed as conditions over some interval of time (i.e., over some sequence of world states) and are described by applying various temporal operators to state descriptions. This enables the representation of a wide variety of goal types, including goals of achievement, goals of maintenance, and goals to test for given conditions. A given action (or sequence of actions) is said to succeed in achieving a given goal if its execution results in a state where the goal conditions are met.

Knowledge about how to accomplish given goals or how to react to certain situations is represented in PRS-CL by Acts, which are declarative procedure specifications. Each Act consists of a body, which describes the steps of the procedure, and an invocation condition, which specifies under what situations the Act is useful (applicable). Together, the invocation condition and body of an Act express a declarative fact about the results and utility of performing certain sequences of actions under certain conditions.

The invocation condition contains a triggering part describing the events that must occur for the Act to be executed. Usually, these consist of the acquisition of some new goal (in which case, the Act is invoked in a goal-directed fashion) or some change in system beliefs (resulting in data- directed or reactive invocation).

The body of an Act can be viewed as a plan or plan schema. Each Act is represented as a graph with a distinguished start node and possibly multiple end nodes. Each Act has a distinguished start node and possibly multiple end nodes. Nodes in the graph are labeled with the subgoals to be achieved in carrying out the plan. Successful execution of an Act consists of achieving each of the subgoals labeling a path from the start node to an end node. This formalism allows richer control constructs (including conditional selection, parallel execution, iteration, and recursion) than most plan representations.

The intention structure contains all those tasks that the system has chosen for execution, either immediately or at some later time. These adopted tasks are called intentions. A single intention consists of some initial Act together with all the [sub] Acts that are being used in attempting to successfully execute that Act. It is directly analogous to a process in a conventional programming system.

At any given moment, the intention graph may contain a number of such intentions, some of which may be suspended or deferred, some of which may be waiting for certain conditions to hold prior to activation, and some of which may be metalevel intentions for deciding among various alternative courses of action. The set of intentions comprising the intention graph form a partial ordering with possibly multiple least elements (called the roots of the graph). An intention earlier in the ordering must be either realized or dropped (and thus disappear from the intention structure) before intentions appearing later in the ordering can be executed. This precedence relationship between intentions enables the system to establish priorities and other relationships between intentions.

The set of Acts in a PRS-CL application system not only consists of procedural knowledge about a specific domain, but also includes metalevel Acts that manipulate the beliefs, desires, and intentions of PRS-CL itself. Metalevel Acts can be used to provide domain-specific control for the basic operation of PRS-CL. For example, typical metalevel Acts encode various methods for choosing among multiple applicable Acts, modifying and manipulating intentions, and computing the amount of reasoning that can be undertaken, given the real-time constraints of the problem domain.

The PRS-CL interpreter runs the entire system. The interpreter repeatedly executes the set of activities depicted in the figure above. At any particular time, certain goals are established and certain events occur that alter the beliefs held in the system database (1). These changes in the system's goals and beliefs trigger (invoke) various Acts (2). One or more of these applicable Acts will then be chosen and placed on the intention graph (3). Finally, PRS-CL selects a task (intention) from the root of the intention graph (4) and executes one step of that task (5). This will result either in the performance of a primitive action in the world (6), the establishment of a new subgoal or the conclusion of some new belief (7), or a modification to the intention graph itself (8). At this point the interpreter cycle begins again: the newly established goals and beliefs (if any) trigger new Acts, one or more of these are selected and placed on the intention graph, and again an intention is selected from that structure and partially executed.

In determining Act applicability, the interpreter does not automatically perform any deduction. Beliefs and goals are matched directly with invocation conditions using unification only. This allows appropriate Acts to be selected rapidly, thus guaranteeing a certain degree of reactivity. PRS-CL can perform any deductions it chooses though, by invoking appropriate metalevel Acts. These metalevel Acts are themselves interruptible, so that the reactivity of the system is retained.

Once selected, the chosen Acts are inserted into the intention structure. If a selected Act arose due to the acquisition of a new external goal or a new belief, it is inserted into the intention graph as a new intention. Otherwise, the Act instance must have arisen as a subgoal of some existing intention, and is pushed onto the intention structures for that intention.

The single step taken when an intention is executed consists of either a primitive action or one or more unelaborated subgoals. If the former, the action is directly initiated; if the latter, these subgoals are posted as new operational goals of the system. Execution of primitive actions can effect not only the external world but also the internal state of the system. For example, an action may operate directly on the beliefs, goals, and intentions of the system. Alternatively, the action may indirectly affect the system's state as a result of the knowledge gained by its interaction with the external world.

Unless some belief or goal activates a new Act, PRS-CL will try to fulfill any intentions it has previously decided upon. This results in focused, goal-directed reasoning in which Acts are expanded in a manner analogous to the execution of subroutines in procedural programming systems. If some important new fact or goal becomes known, PRS-CL will reassess its current intentions, and perhaps choose to work on something else. Thus, not all options that are considered by PRS-CL arise as a result of means-end reasoning. Changes in the environment may lead to changes in the system's goals or beliefs, which in turn may result in the consideration of new plans that are not means to any already intended end. PRS-CL is therefore able to change its focus completely and pursue new goals when the situation warrants it. In many applications, such switches happen frequently as emergencies of various degrees arise in the process of handling less critical tasks.

Multiple instances of PRS-CL, each of which is referred to as a PRS-CL agent, can be run in parallel for a given application. An agent has its own local database, goals and intentions and can run independently of all other agents. Indeed, individual PRS-CL agents can be executed on geographically distributed processing systems or on different processors in a network. An asynchronous message-passing facility enables communication among agents in order to support distributed, cooperative problem solving.

PRS-CL provides a powerful graphical user interface (GUI) that simplifies both the inputing of domain knowledge and monitoring of execution at runtime. The Act-Editor subsystem provides graphical knowledge editing for creating, displaying, and manipulating Acts. At runtime, users can interact with PRS-CL agents by modifying databases, pausing/restarting agents, and posting goals. Additionally, PRS-CL provides both graphical and textual tracing of execution time activities that aid users in understanding system behavior.

Karen L. Myers, <myers@ai.sri.com>
Back to Artificial Intelligence Center
Back to SRI International

Act-Editor and PRS-CL are trademarks of SRI International.
Copyright © 1995 SRI International, 333 Ravenswood Ave., Menlo Park, CA 94025 USA. All rights reserved.