SOAR ist eine kognitive Architektur; also eine Theorie, die alle primitiven Mechanismen und Strukturen definiert, die menschlicher Kognition zugrunde liegen. Diese primitiven Prinzipien bleiben über lange Zeiträume und verschiedene Anwendungsdomänen hinweg konstant. Die wichtigsten dieser primitiven Prinzipien sind in SOAR:
Auf der Grundlage dieser Architektur können jetzt komplexere menschliche Fähigkeiten modelliert werden (z. B. Kopfrechnen, Sprachverarbeitung, Lernprozesse etc.). Wenn diese Modelle ausgereift und vollständig sind, soll es möglich sein, einen künstlichen intelligenten Agenten zu erschaffen, der sämtliche menschlichen Verhaltensformen aufweist. SOAR wäre dann die lange gesuchte "einheitliche Kognitionstheorie" (Newell 1990), die alle bisherigen, unzusammenhängenden Theorien vereint.
Die oben genannten 5 primitiven kognitiven Prinzipien wurden in einem Computerprogramm implementiert (aktuelle Version: Soar Suite 8.6.1), das zum freien Download bereitsteht: http://sitemaker.umich.edu/soar/soar_software_downloads
SOAR bewegt sich während des Problemlöseprozesses von einem Anfangszustand hin zu einem von möglicherweise mehreren Zielzuständen. Jeder Zustand repräsentiert eine bestimmte Situation innerhalb des Problemraumes (z.B. der momentane Standort in einem Labyrinth). Auf jeden Zustand wird genau ein Operator angewandt, der einen neuen Zustand herbeiführt (z.B. führt Bewegung in einem Labyrinth zu einem neuen Standort). Dies geschieht solange, bis ein Zielzustand erreicht ist. Ein Problemraum muss also nie vollständig repräsentiert werden, sondern nur ein oder mehrere Zustände in ihm.
Ein in der Programmiersprache SOAR geschriebenes Programm sieht z.B. so aus: (Kommentare werden mit # gekennzeichnet)
| Quelltext | Kommentar | - | # Produktionsregel 1: | - | | | - | | | - | | - | | | - | | | - | | | - | | - | | | - | | | - | | | - | | | - | (write >Hello World | | - | | | - |
|---|
Wenn ein Agent gestartet wird, durchläuft SOAR einen Zyklus:
Im Falle des oben angegebenen Programms wird dieser Zyklus nur einmal durchlaufen, es gibt aber auch komplexere Programme.
Hier werden der momentane Zustand, der momentane Operator und eventuelle Substates als sogenannte WME's (Working Memory Elements) gespeichert. Ein WME besteht aus einem Identifier (z.B. Operator1), einem Attribut (z.B. ^name) und einem Wert (z.B. "hello-world"). Alle WME's mit demselben Identifier werden zu einem "Objekt" zusammengefasst. Der Wert eines Attributs kann eine Konstante oder der Identifier eines anderen Objektes sein.
Wenn im Schritt 4.) des Entscheidungszyklus eine Sackgasse erreicht wird, muss diese aufgelöst werden (z.B. durch neuen Zyklus mit anderem Zielzustand). Kann die Sackgasse aufgelöst werden, so wird eine neue Produktionsregel kreiert, die man "chunk" nennt. Wird diese neue Regel dem Produktionsspeicher hinzugefügt, so tritt eine ähnliche Sackgasse in Zukunft nicht mehr auf, da die neue Regel eine Möglichkeit zur Auflösung der Sackgasse beinhaltet (z.B. die richtige Wahl des Operators).
Der Name SOAR steht für "State, Operator And Result", denn in SOAR ist Problemlösen stets die Suche im zugehörigen Problemraum, in dem auf einen Zustand ein Operator angewandt wird, um ein Resultat zu erhalten. Entwickelt wurde SOAR zu Beginn der 1980er Jahre von Allen Newell, John Laird und Paul Rosenbloom.
Kognitive Architekturen setzen voraus, dass alle kognitiven Prozesse auf wenige Prinzipien zurückzuführen sind (z.B. das "Feuern" von Regeln). Es soll jedoch Evidenzen geben, die eine Vielzahl hochspezialisierter, nicht untersuchbarer, neuroanatomisch festgelegter Funktionen nahelegen (z.B. Kolb, Wishaw 1990).