Long-Term Memory

Long-Term Memory (Production Systems)

All long-term memory in Soar is included in a single, non-modular production system. This is an example of a uniform, orthogonal mechanism that was described as one of Soar's methodological assumptions. The uniformity arises because there is a single structure, single access method and single learning method for all types of knowledge -- how to search a problem space, how to implement an operator, how to represent knowledge factually (declarative knowledge), and how to represent knowledge in terms of a history (episodic knowledge). The uniformity of this representation is an issue for criticism by other researchers.

The productions of this long-term memory work within a current frame-of-reference known as working memory. Working memory is analogous to human short-term memory. In Soar, productions are used as a recognitional or associative memory. Patterns represented by the left-hand side of a production are compared against the elements of working memory; when a match occurs, the right-hand side of the production then specifies new memory elements which are then immediately added to working memory. Because productions are process-like rather than declarative, Soar systems do not have the ability to examine the contents of long-term memory directly; in other words, the production memory is impenetrable.

The comparison of conditions of productions and working memory elements is accomplished using the rete algorithm, adapted from OPS5. The attribute and value of each condition in the production is compared against the elements of working memory for a match. The rete algorithm works by keeping partial match information in the form of ordered lists of working memory elements called tokens. A match to a particular production is represented by a token in which the first working memory element corresponds to the first condition in the token. The detailed specifics of the algorithm are beyond the scope of this document; however, the algorithm is much more efficient than a simple matcher which is important in considering both Soar's efficiency and scalability to larger systems. Because the matcher is the most computationally-expensive part of the Soar decision cycle, improving and considering its efficiency is always an issue for the architecture.

Soar's production system is distinct from expert-systems-like production systems in two keys ways. First, production firings are monotonic: productions only add to working memory and do not add or delete working memory elements. Secondly, there is no conflict resolution: each production that is instantiated against a set of working memory elements is fired. These productions fire during Soar's elaboration phase.


To return, press HOME. To go to the next document, press NEXT.