Go backward to Semantics of the Symbol Level.
Go up to Top.
Go forward to Learning in Soar.
Syntax of the Symbol Level
**************************
This chapter describes the syntax of the symbol level computational model
supported by Soar. It should serve as a reference manual for the syntax of
the Soar architecture, except for chunking and I/O which are described
separately in the following chapters. This chapter starts with the
representation and access of the memory structures, followed by a description
of impasses and subgoals.
All long-term knowledge in Soar is encoded as *productions* and stored in a
*production memory*, also known as *recognition memory*. Productions are
similar to if-then statements in conventional programming languages: the "if"
part of a production is called the condition side, and the "then" part is
called the action side. All short-term knowledge in Soar is stored in a
*working memory*. The working memory holds all of the data describing the
current situation, either retrieved from productions, or acquired from
sensors. Production conditions are matched against the contents of working
memory to determine if the knowledge contained in their actions is relevant.
These conditions are patterns that test for the presence or absence of
elements in working memory. The actions of productions create *preferences*
for changes to the contents of working memory.
Production systems, also known as *rule-based systems*, are often used for
applications in the areas of artificial intelligence, expert systems, and
cognitive psychology. However, Soar's use of productions differs
significantly from these traditional approaches. In most of these
applications, the basic act of the system is to choose a single production to
fire next. In systems like OPS5, the successful match of more than one
production against working memory results in only a single production
instantiation being selected to fire, by a process called *conflict
resolution*. This makes production selection the locus for control. In
Soar, all matched productions fire in parallel, creating preferences for
objects such as operators; these preferences are evaluated to determine the
actual contents of working memory. The locus of control is the selection of
an operator, not the selection of a production. Additional differences, such
as the retraction of actions and the use of preferences to indirectly modify
working memory, further distinguish Soar from traditional production and
rule-based systems.
Menu
- Working memory (syntax)
-
- Production memory (syntax)
-
- Impasses and subgoals (syntax)
-