Type of Research: Academic (Texas A & M) in cooperation with University of Texas (Austin) and Ft. Hood; DoD funded.
Terms and abbreviations used in these papers:
TOC = tactical operations center
OTB = OneSAF Testbed
SAF = Semi-Automated Forces
OPFOR = opposing forces
S2 = intelligence officer
S3 = maneuver officer
FRAGOs = Fragmentary Orders
TRL = Task Representation Language
TAIs = targeted areas of interest
RFIs = requests for information or status reports.
Jess = Java Expert System Shell
PDU = Protocol Data Unit
Puckster = A human that enters data by hand.
Summary:
These two papers describe their work on the same project:
In this paper, we describe our initial work on the University XXI project, in cooperation with Ft. Hood and sponsored through the Department of Defense. In the preliminary phase of this project, we are tasked with developing an intelligentagent architecture that can make intelligent decisions for units on the battlefield - in particular, battalion TOCs - such that the battalions carry out orders, cooperate with each other and brigade, and sufficiently react to situations that deviate from expectations. The system is built on top of OneSAF Testbed (OTB), of which we can monitor the state and issue commands to control entities. On the other end, the system provides an interface for brigade staff officers to interact, including communicating with simulated battalions, requesting status reports, issuing commands (e.g. FRAGOs), responding to battalion requests for information, support, or resources, etc. (This is only part of a digital battlestaff trainer.)
In the University XXI project at Texas A&M University, we are developing a digital battle-staff trainer (DBST) system. For implementing the DBST, a multi-agent architecture called TaskableAgents has been designed for simulating the internal operations, decision-making, and interactions of battalion TOC staffs. The core of the TaskableAgents Architecture is a knowledge representation language called TRL. The application of knowledge in TRL to select actions for an agent is carried out by an algorithm called APTE. By communicating and sharing information based on reasoning about each others roles, the TaskableAgents Architecture allows multiple agents to work together as teams to accomplish collective goals.

The system itself consists of an intelligent agent (one agent for each battalion) that makes decisions about what to do and how to communicate in the context of a battle. The agent uses a large knowledge base of procedural knowledge about how to carry out various functions within a TOC, gathered from manuals (TTP, doctrine) and from interviewing military experts. This knowledge is encoded in a special knowledge representation language we have devised, called TRL (Task Representation Language).
TRL has:
- Goals are conditions to be achieved, such as enemy-defeated or brigade-informed.
- Tasks are higher-level actions to be done, such as surround-enemy or track-enemy.
- Methods are descriptions of specific procedures that can be used to accomplish tasks, which can refer to sub-tasks or operators.
- Operators are primitive actions (from the perspective of TRL), such move or fire, which can be directly executed in the environment, along with communications (RFIs, status reports, call for fire support...) with brigade and other units.
Goals are described by giving a condition to achieve, and specifying tasks that can be used to achieve those conditions:
<GOAL> ::=
(:GOAL <name> (<variables>* )
(:COND <condition>)
(:TASK <name> <value>* ) )
Syntactically, a task contains the keyword :TASK, the task name, some arguments, any termination conditions6, and then the method specification. Aside from naming and providing input arguments to methods, they may also be assigned priorities or preference conditions.
<TASK> ::=
(:TASK <name> (<variables>* )
(:TERM-COND <condition>)
[ (:METHOD (<name> <value>*)
[(:PRIORITY <int>) |
(:PREF-COND <condition>) ] ) ] + )
Here is an example of a task description:
(:Task attack-enemy (?company-id ?enemy-id)
(:Term-cond (enemy-destroyed ?enemy-id))
(:Method (call-for-indirect-fire
?company-id ?enemy-id)
(:Pref-cond (have-priority-of-fire
?company-id)))
The syntax for methods is:
<METHOD> ::=
(:METHOD <name> (<variables>*)
[ (:PRE-COND <condition>) ]
[ (:TERM-COND <condition>) ]
(:PROCESS <process> ) )
* Termination has the interpretation of failure, by default, though successful terminations could easily be added.
System architecture. Notes: However, because of limitations of time, we have relied on a human (puckster) to key in commands to OTB (OneSafe Test Bed) via a console, based on decisions made by our agent.