Production system are like a cognitive architecture where knowledge is represented as rules.
We might think of a cognitive agent as a function which maps a perceptual history into an action. One of the major tasks of a cognitive agent is to select an action. When we take an action, it is based on historical perception.
We assume cognitive agents:
- are goal-oriented
- exist in rich, complex, environments
- use knowledge about the world to make decisions about their action
- use symbols and abstractions to capture important information and ignore unimportant details
- capture knowledge as symbols
- flexible about the function of their environment. As the environment changes, so does their behavior.
- learn from their experiences
Architecture + content = behavior
The goal of the Soar project is to develop the fixed computational building blocks necessary for general intelligent agents – agents that can perform a wide range of tasks and encode, use, and learn all types of knowledge to realize the full range of cognitive capabilities found in humans, such as decision making, problem solving, planning, and natural language understanding. It is both a theory of what cognition is and a computational implementation of that theory. 
SOAR is concerned with categories of knowledge. There are 3 kinds of knowledge: Procedural, Semantic and Episodic which feed into working memory.
- Specific instance of events
- How do we do certain tasks?
- Knowledge is represented as rules
- Generalizations about models in the world
A process (a learning technique) used when there is an impasse (conflicting rules). We look for a rule that can break an impasse.