Since Soar agents are constructed by modeling human pilots, it is
imperative that the SMI provide an interface which emulates the
environment of the human pilots - the aircraft cockpit. Soar agents
receive input data corresponding to sensory information they would
obtain from the cockpit environment, e.g. radar displays, radio
messages, vehicle status indications, and visual sightings out of the
cockpit canopy. These agents also issue output commands to control
the vehicle's motion, radar, weapons and radio. The specific Soar I/O
working memory elements defining the Application Programmer Interface
(API) to the simulated cockpit are documented elsewhere
[Frank
and Jill's Mosaic paper].
Unfortunately, there is no cockpit component provided by ModSAF. The SMI must create this facility for Soar agents via manipulation of the relevant ModSAF components and creation of new facilities. For this reason, the SMI is not a simple translation device between the two systems.
The majority of the cockpit functionality is already provided by ModSAF in other libraries. Examples include the radar screen, missile launching, and detection of visual objects. These components are relatively straight-forward to access, requiring only the translation of units, reformatting, and reorganization of data. However, the missing cockpit components require the development of completely new functionality. A a radar warning receiver and a radio device for inter-agent communication are examples. These additional components use ModSAF libraries at a low-level, if at all. Much more design and development is required for such enhancements.
In addition to the primary concern of providing the cockpit functionality, the SMI design must be efficient and modular. Soar and ModSAF are designed as stand-alone systems and each system is designed to be the primary process running - not needing to function with other large processes. While these could be run as separate processes, Soar, ModSAF, and the SMI are incorporated into a single process to reduce communication overhead and increase overall system throughput. There is no need to encode and decode over a more general mechanism such as Unix sockets. This also enables high-bandwith communication between Soar and ModSAF to be made more efficiently. Since one system must be in control of the primary scheduling, it was decided that ModSAF should call upon Soar at the appropriate times. This is natural since ModSAF controls the simulated ``world'' and Soar agents are agents in that world.