推論エンジン
推論エンジンを独立したソフトウェアコンポーネントとして分離させたのは、プロダクションシステムのアーキテクチャが最初である。このアーキテクチャは、データ格納部あるいはワーキングメモリを独立させて、問題に関する事実や表明を表す記号列のデータベースとする。また、プログラム本体を表す推論規則群を別に独立させ、その規則を実行するための推論エンジンを設ける。推論エンジンは、その時点のデータ格納部の内容に対してどの推論規則を適用すべきかを選択する。規則選択の制御戦略は「衝突の解決; conflict resolution」と呼ばれる。
推論エンジンは主に以下の3つの部分から構成される。
インタプリタ。対応する基本のルールを適用することによって、インタプリタは指定された課題を実行する。
スケジューラー。アイテム優先度または課題に関する他の標準を考慮して、推論規則を適用したときの効果を見積もることにより、スケジューラーは課題に対する制御を行う。
一貫性保持部。一貫性保持部は得られた解決策に対して一貫した表現をするよう務める。