The AgendaManager:
Architecture and Function


Synopsis: This page describes the architecture, function, and operation of the AgendaManager.

Keywords: Agenda Management, AgendaManager, software architecture.

Last update: 30 Jun 97


The AgendaManager is implemented in Smalltalk (VisualWorks 2.5), an object-oriented programming language. Major AMgr objects include System Agents, Actor Agents, Goal Agents, Function Agents, an Agenda Agent, and an Agenda Manager Interface. Each Agent is a simple knowledge-based object representing the corresponding elements of the cockpit environment. As a representative of such an element, the Agent's purpose is to maintain timely information about it and to perform processing that will facilitate AMgt. An Agent's declarative knowledge is represented using instance variables. Its procedural knowledge is represented using Smalltalk methods. The categories of Agents are described briefly below and in more in The AgendaManager: Class Hierarchy. The overall architecture is illustrated in the following figure.

The purpose of a System Agent (SA) is to help the pilot (and the AMgr itself) maintain situational awareness. Each SA represents a system in the simulated environment, such as the aircraft, the fuel system, or even a pilot, and receives information from that system via an inter-process connection called a socket. An SA's declarative knowledge includes the past, current, and projected future state of the corresponding system. Its procedural knowledge includes how to project future state and how to recognize system abnormalities. This means that an SA maintains not only current and past system state information, but can also be called upon by other agents (see below) to project future state information in order to anticipate future events. It can also recognize system faults and instantiate Goal Agents (see below) for goals to correct them.

Actor Agents (AAs) recognize actors' goals, implicitly and explicitly, and make them known to the rest of the AMgr. An AA represents an actor, such as a pilot or an automation device. As declarative knowledge, each AA maintains information about the current state of the corresponding actor, including his/her/its agenda. AA procedural knowledge covers how to obtain state information.

A very important AA is the Flightcrew (or pilot) Agent. The Flightcrew Agent has a serial connection to a Verbex automatic speech recognition (ASR) system. This allows the pilot to declare his/her goals explicitly by short vocal utterances. The intent is to be able to recognize pilot goals primarily by monitoring air traffic control (ATC) clearance acknowledgements. That is, when a pilot acknowledges ATC clearances, he/she typically repeats the clearance back to the controller. The Flightcrew Agent, using the Verbex system, interprets these as pilot goals for the control of the aircraft. For example, heading, altitude, airspeed, and waypoint goals are declared as the pilot verbally acknowledges ATC clearances by repeating them back to the controller (the experimenter, in our study). The Verbex system "eavesdrops" on the pilot and sends a coded form of the utterance to the Flightcrew Agent which translates it and declares a goal by creating an instance of a Goal Agent.

The purpose of Goal Agents (GAs) is to maintain information about all actors' goals. A GA represents an actor's goal, such as one to descend to and maintain an altitude of 9,000 ft or one to crossfeed fuel from one fuel tank to another to correct an imbalance. A GA has declarative knowledge about the state of the goal to be achieved (pending, active, or terminated) and whether or not it is achieved. A GA's procedural knowledge includes how to determine if the goal is achieved and how to determine whether or not its goal is consistent with the goals of other GAs. Each GA is associated with one Function Agent.

The purpose of a Function Agent (FA) is to monitor whether its goal is being pursued in a correct and timely manner. An FA represents a function, which is an activity performed to achieve a goal. Each FA has declarative knowledge about the state of its function (pending, active, or terminated, like the goal) and the status of its function (how well the function is being performed and whether or not goal achievement is likely). FA procedural knowledge includes how to assess function state and status and how to assess goal and function priority based on prevailing conditions. FAs not only assess the current status of functions, but also use the prediction capabilities of SAs to project future function status.

The single Agenda Agent is the executive Agent which coordinates the activities of all other Agents. Its declarative knowledge consists of the current set of GAs and FAs. Its procedural knowledge includes what to do when a new GA is introduced (e.g., check it against other GAs for compatibility), what to do when a GA changes state (e.g., move it to another part of the Agenda), and how to develop overall priority ratings for the Goal/Function Agents based on importance and urgency.

Operation

As the simulator runs it sends state data to the AMgr, whose SAs maintain a situation model of the simulated aircraft and its environment. AAs monitor real or simulated actors, detect or infer goals, and instantiate GAs. GAs look for conflicts with each other and monitor SAs to see if the goals are achieved. FAs monitor the progress -- if any -- made in achieving their associated goals. The Agenda Agent prioritizes GAs and FAs and keeps track of goal conflicts. The AgendaManager Interface presents this agenda information to the pilot.

Pilot Interface

The AgendaManager Interface (AMI) consists of display formats for presenting agenda information to the pilot. It is illustrated in the following figure, which shows what the pilot would see in the possible (but hopefully, very unlikely) situation depicted in the architecture diagram, above. Each line on the AMI is a message concerning a GA and FA pair, consisting of the name of the goal and a status comment if a problem exists or is anticipated.

 

The AgendaManager Interface

In the situation underlying both figures, the Fuel System Agent has detected an out-of-balance condition between the left and right fuel tanks and has instantiated a GA for the goal to remedy it, and the pilot has correctly begun crossfeeding fuel. The corresponding FA has determined that this function is being performed satisfactorily, but will require attention later to terminate fuel crossfeeding, so the AMgr message for it is white, which denotes a satisfactory status.

The pilot has received an air traffic control clearance to reduce speed to 240 knots (kt), maintain the present heading of 070 degrees, and descend to an altitude of 9,000 ft. He/she has verbally acknowledged this clearance and the AMgr has recognized these aviate (aircraft control) goals and instantiated GAs and FAs. Speed is currently too high and is not decreasing, so the AMgr speed message is amber and its comment notes the problem. The airplane's current heading is 070 degrees, so the AMgr's message for this is gray, with no explanatory comments, so as not to distract.

Although the aircraft is correctly descending towards 9,000 ft, the pilot has inadvertently set the autoflight system to descend to 8,000 ft. This goal conflict has been detected by the two GAs and is signalled by an amber-colored message.

Two other system faults have occurred. There is a fire in the left engine and the pressure in the center hydraulic subsystem has dropped below an acceptable level, and corresponding SAs have detected them and instantiated GAs for goals to correct them. As the engine fire condition is critical, its message is displayed in red at the very top of the display. The hydraulic system fault is intermediate in priority between the flight control goals and the fuel balance goal, it is displayed in amber between them.