Go backward to Syntax of the Symbol Level.
Go up to Top.
Go forward to I/O.

Learning
********

Chunking is Soar's sole learning mechanism.  Chunking creates productions,
called *chunks*, that summarize the processing required to produce the
results of subgoals.  Chunks are continuously built as results are created in
subgoals.  When a chunk is built, it is added to recognition memory, where it
will be matched in similar situations, avoiding the need for the subgoal.

In order for the chunk to apply at the appropriate time, its conditions must
test exactly those working memory elements that were necessary to produce the
results of the subgoal.  Soar computes a chunk's conditions based on the
productions that fired during the subgoal.  Chunking begins with the results,
and then *backtraces* through the productions that created the preference for
each result.  It then recursively backtraces through the working memory
elements that matched the conditions of the productions, finding the
acceptable preferences that led to their creation, etc., until conditions are
found that test elements that are linked to a supergoal.

This chapter begins with a discussion of when chunks are built (Section 
See Chunk creation on this page), followed by a detailed discussion of how Soar
determines a chunk's conditions and actions (Section *Note Determining
conditions and actions:: on page See Determining conditions and actions).
Sections See Variablizing identifiers through See Ordering conditions
on page See Ordering conditions examine the construction of chunks in
further detail.  Section See Refractory inhibition of chunks on page
See Refractory inhibition of chunks explains how and why chunks are
refracted.  Section See Problems with chunking on page *Note Problems
with chunking:: reviews the problem of overgeneral chunks.

Menu

Chunk creation
Determining conditions and Actions
Variablizing identifiers
Ordering conditions
Refractory inhibition of chunks
Problems with chunking