Jump to the Soar Overview page.
Jump to the Comparative Capabilities page.
Jump to the Home page.

Capabilities

Each of the capabilities below can be viewed as being provided either by the architecture, by the knowledge level (i.e.: knowledge can be put into Soar to make it behave as desired), or by a combination of knowledge and unrelated features of the architecture.


 

Planning

Soar has no explicit planning module or mechanism, such as in
ICARUS or PRODIGY. However, planning is available as a knowledge level behavior in Soar. Architectural features such as automatic subgoaling on an impasse provide a means for such, and thus, planning. Without search control, Soar defaults to exhaustive depth-first search. Search control can be explicitly coded via productions such that Soar implements all weak methods. Search control can also be learned through chunking.


Prediction

Prediction available at the knowledge level, provided that ths knowledge is a fair representation of the world objects, actions and interractions.


Meta-Reasoning

Meta-reasoning in Soar is quite cumbersome, at least compared to systems whose focus was meta-reasoning, such as MAX. Nevertheless, it is attainable, again through the knowledge level by support of the architectural mechanisms of automatic subgoaling and
chunking mechanisms.

I'll go out on a limb to give an example: suppose Soar wanted to know if it had an operator that it could apply in a certain state, S, it could setup a problem space where the current state is S. All applicable productions would fire. If, while in that problem space, an impasse arose, then Soar would realize that it didn't have such knowledge.


Reactivity

Reactivity in Soar is achieved by a combination of the architectural and knowledge levels. Soar achieves reactivity through its:


Taskability

Soar is taskable by virture of the knowledge level. (?)


Learning

Soar's
philosophy is to bring a set of mechanisms together to establish a theory of cognition. Soar employs a simple least-commitment learning mechanism called chunking. It differs noticable from a system like PRODIGY integrates several (six, and counting...) learning modules!

Humans indisuptably use other learning mechanisms in addition to chunking. In keeping with Soar's architectural philosophy, it is hoped the other learning mechanisms can be developed (at the knowledge level) using only the simple architectural learning mechanism of chunking.


NLP

Soar has now architectural mechanism aimed at providing a natural language processing capablility. Two research projects on providing a knowledge level capability for natural language are currently underway and have produced very promising results.


Interruptability

In the
Robo-Soar project, Soar had to support interruption while in the midst of other tasks. For example, Soar had to align some blocks and at the same time, respond to a "trouble" light. When the light came on, a button was to be pressed. This was accomplished by having a highly-prefered operator. When the light came one, this operator would always be applied. This scheme produced the desired behavior. However, an undesirable side effect is that any partial planning that wasn't captured by chunking would be lost.


Navigation/Manipulation

Soar has been successfully applied to the task of navigation and manipulation in the
Robo-Soar and Hero-Soar projects. Both of these projects were an exercise to show that Soar supports planning, execution, and learning in unpredictable and dynamic environments.


Coherent Behavior

Soar is exhibits rational behavior in that all knowledge that is immediately available (ie: in the current problem space) can be "brought to bare" to the problem at hand. However, applicable knowledge in other problem spaces that may be indirectly available is unreachable. This can lead to two sources of irrationality in Soar:


Perception

An asynchronous
perception subsystem has been incorporated into Soar.


Other