Rules Fest Live: John Laird / “Keynote” The Role of Production Rules in a General Cognitive Architecture
John Laird’s presentation focused on Soar. Soar goes a long time back, and has been a focal activity in AI for a long time, proposing a very comprehensive and ambitious efforts to model human behavior and implement applications. Both Charles Forgy’s Rete and John Laird’s Soar have roots in CMU. John’s first claim to fame is to have written the first 1,000+ rules system in ’80 – a game.
Soar is a cognitive architecture for human-level intelligence. It is multi-method and multi-task – and provides an overarching approach that allows for rules to evolve under input through learning and evolution.
John emphasizes the difference between the goals of cognitive architectures and commercial rules based systems. While these differences do exist and are significant, there are lessons that can derived from Soar’s approach beneficial to commercial systems.
Soar takes a different approach to conflict resolution to avoid the “conditions” engineering that frequently takes place in the execution of product rules. Adding more knowledge through Operators. Rules contain knowledge that propose operators, evaluate operators and apply operators – rules fire in parallel, but the focus is on operators.
This is the key conceptual shift: instead of thinking of rules as the key focus of decision making, operators become the focus of decision making. At the point where we would select rules to fire, Soar looks at the operators that are proposed by the rules applying preferences – themselves modeled. Applying this knowledge gives more flexibility to the production system – and separates the concern of identifying what can be done through independent rules and the concern of selecting which among those possibilities is the best. No complex mix of concerns in the organization of the rules conditions. The problem is real, and Soar does offer a nice solution – commercial products do offer other approaches to address the same fundamental issue.
John spent some time on the problem and knowledge search approaches. Problem search is taking a step in the world – you are changing the situation -, while knowledge search is about finding the operators – no change to the situation. It’s critical to go very fast through the knowledge search. Modern technology makes it simpler – but for me the key question is whether it will always be challenge given that the amount of data we want to include in the reasoning keeps growing.
One interesting aspect of Soar is that it has the ability to cope with knowledge that fails – or knowledge that is simply incomplete (think about learning systems) – it generates substates, and use operators to reason about the impasse. Essentially, apply more rules to manage the cases where the directly involved rules fail to manage the situation.
Through analysis, it can generate (“”chunk””) rules to those directly involved in order to avoid the impasses in further interactions.
Soar has grown through time. One of the core extensions has been the introduction of (hierarchical) reinforcement learning as a mechanism to evolve rules. Reinforcement learning has been an established mechanism to evolve specific knowledge representations (think Bayesian networks) – Soar applies it to production rules.
Another one has been the addition of semantic memory that extends the queryiable knowledge accessible to rules and all the Soar processing.
With semantic memory, episodic memory (long term memory) and spatial memory (essentially modelization of the physical world) available in practical implementations, what Soar is essentially doing is making more and more knowledge accessible to its processing, which allows it to be more “”intelligent”” and “”adaptable”” productions rules.
Soar has both C and Java implementations available under BSD license.