Go backward to Semantics of the Symbol Level.
Go up to Semantics of the Symbol Level.
Go forward to Working memory.
Overview
========
The PSCM level of description for Soar is not directly implementable on a
computer. It is defined solely by the functions to be performed in support
of search in a problem space to achieve a goal. To define Soar, we must go
to a lower level that specifies how symbol structures are stored and
processed. The purpose of this lower level is to flexibly support the PSCM.
In this chapter we give an abstract characterization of the Symbol-Level
Computational Model (SLCM) of Soar. This abstracts away from the specific
syntax used in Soar as well as many of the implementation details, which are
presented in later chapters. This chapter ends by returning to the PSCM
functions defined in the previous chapters and demonstrating how the abstract
SLCM supports them using the Blocks World problem presented earlier.
Seven design decisions have been made in Soar's SLCM, all of which have
significant implications for realizing the PSCM functions in a flexible
manner.
1. Knowledge is stored in a permanent recognitional memory and a temporary
*working memory*. Knowledge can be added to permanent memory, but it
can not be changed or removed. Permanent knowledge may be relevant to
many different situations, but is not necessarily relevant to the
current goals being attempted. The memory for permanent knowledge is
recognitional in that it continually tests the working memory. Whenever
permanent knowledge is found to be relevant to the contents of working
memory, it proposes changes to working memory.
In contrast to permanent memory, the contents of working memory persist
only as long as they are relevant to the current goals. The contents of
working memory act as retrieval cues for permanent memory and are the
basis of all decisions made by the architecture.
2. Permanent memory only proposes changes to working memory through
*preferences*, and does not actually deliver such changes. These
preferences are held in *preference memory* and changes to working
memory are made based on a synthesis of the preferences in preference
memory.
3. All goals, problem spaces, states, and operators are explicitly
represented by symbols in working memory once they have been proposed.
This does not mean that the complete description of these objects is
available, only that they are symbolized. For example, an operator's
preconditions and actions may never be explicitly represented; rather,
only a symbol may represent a proposed operator.
4. For each goal, there is at most a single current problem space, state,
and operator. This eliminates parallelism at the PSCM level.
5. For each goal, there is only one state available in working memory.
This is the *single state principle*.
6. The selections of the current problem space, state and operators are
explicitly represented by a *goal context* in working memory. A goal
context consists of a goal, together with the current problem space,
state, and operator. The explicit representation of the goal context
makes the current selections available as retrieval cues from memory.
7. There is no *a priori* control scheme that restricts the order in which
PSCM functions are performed. For example, it should be possible to
change the problem space in the middle of applying an operator, if new
data suggests the current problem space should be terminated and a new
one selected.
These assumptions lead to an SLCM where the PSCM functions for selecting
problem spaces, states, and operator are implemented by deciding on the
current values for the goal context. These decisions are based on the
knowledge retrieved from permanent memory using the PSCM functions for
proposing, comparing, and adding refinements to the problem spaces, states,
and operators. Operator application is performed by modifying the
representation of the state in working memory, while all PSCM functions for
manipulating goals are performed directly by the architecture.
The PSCM functions can be partitioned into the following symbol-level
operations:
PSCM Functions Supporting SLCM operation
-----------------------------------------------------------------------------
Proposing, selecting, and terminating goals Performed by the architecture
Proposing, comparing, and refining objects Retrievals of preferences
from permanent memory
Selecting objects Decisions for the values of
a goal context
Operator application Modifications to the state
To realize the PSCM functions, the Soar architecture must support a permanent
memory with recognitional capabilities, a scheme for deciding on the values
of the goal context, a process for modifying states, and a mechanism for
processing goals. Sections See Working memory, *Note Recognition
memory::, and See Preference memory describe Soar's memory structures
(working memory, permanent recognition memory, and preference memory).
Section See Preference processing describes how preferences are processed
to determine the contents of working memory. This preference-processing
scheme supports the creation of working memory elements, the selection of
problem spaces, states and operator, and the application of operators.
Section See Impasses and subgoals presents impasses, which are
responsible for goal processing. Section See Learning gives an overview
of learning, and Section See Input and output describes input and output.
Section See Default knowledge describes the default knowledge that rests
on top of the SLCM. This knowledge is available for all tasks, and acts as a
default response to the impasses that can arise during problem solving. The
final section illustrates how the Blocks World task is encoded in the SLCM,
emphasizing how the abstract SLCM supports each of the PSCM functions.
Figure ? shows the abstract structure of the memory and processing components
and how they interact. Starting from the left, {working memory} receives
input from perception. Changes to working memory cue retrieval of
preferences from *recognitional memory*. The active preferences are stored in
*preference memory*. The preferences are processed by the *decision
procedure*, which computes changes to {working memory}. Traces of retrievals
from recognition memory are stored in {trace memory} which in turn are
process be chunking to build new productions which are added to recognition
memory.
*Recognition memory* contains the permanent knowledge that is encoded as
*productions*. Productions are simple "if-then" rules whose conditions
test the contents of working memory and whose actions create preferences.
Productions in recognition memory are *matched* against working memory and if
successful, add preferences to preference memory. All productions, except
those involved in operator creation, instantiation, and application, also
remove their preferences from working memory when they no longer match.
Preferences that propose new context objects (problem spaces, states, and
operators) are also added to working memory so that they can serve as
retrieval cues for additional preferences that will determine which object is
selected to be current.
The main flow of information is shown by the dark arrows where match computes
changes to preference memory and decision computes changes to working memory,
which in turn leads to changes in match.
The working memory is also processed by *action*, which sends motor commands
to the system's effectors. As productions are matched and fired, the
instantiated production traces are sent to *trace memory* which is then
processed by *chunking*. The output of chunking is new productions which are
added to recognition memory.