Soar uses productions with conditions that match current working memory elements and actions that add new elements can be viewed as an associational or recognitional memory. This is best demonstrated by an example. Suppose a production existed as follows:
(C1 C2 C3 --> A1 A2)Conditions C1, C2 and C3, are matched and cause the addition of new working memory elements A1 and A2. The conditions serve as retrieval cues, similar to a feature-indexing scheme. When the features are recognized, the production's content (its action) is added to the preference memory.
Go to a discussion of this property for multiple architectures.