SHRDLUは、
1968年から
1970年にかけて
テリー・ウィノグラードによって開発された、初期の
人工知能研究における重要なプロジェクトです。このシステムは、コンピュータ内に仮想的な「積み木の世界」を構築し、その中でブロック、円錐、球などのオブジェクトを、英語による自然言語の指示を通じて操作することを可能にしました。
SHRDLUの大きな特徴は、ユーザーが与えた指示を理解し、仮想世界内で対応する操作を実行する能力にありました。例えば、「赤いブロックの上に緑の円錐を置く」といった指示を理解し、実際にその操作を実行することができます。このシステムは、
プログラミング言語Lispと
Plannerを用いてソフトウェア面が構築され、DEC社のコンピュータPDP-6およびグラフィック
端末上で動作しました。その後、ユタ大学の
コンピュータグラフィックス研究所によって改良され、SHRDLUの「世界」はフル3Dで描画されるようになりました。
SHRDLUの名称は、タイプライターの配列で頻出する文字を並べた「etaoin shrdlu」に由来しています。
機能
SHRDLUの機能は、コンピュータ内に仮想的な積み木の世界を構築し、ユーザーからの英語による指示に基づいて、その世界内のオブジェクトを操作することです。このシステムは、以下の4つのシンプルな概念を組み合わせることで、「
自然言語処理」の模倣を説得力あるものにしています。
1.
単純な世界: SHRDLUの「世界」は非常に単純であるため、オブジェクトとその場所を記述するために必要な単語はわずか約50種類です。これらの単語には、「ブロック」「円錐」といった名詞、「~の上に置く」「~まで動かす」といった動詞、「大きい」「青い」といった形容詞が含まれます。これらの基本的な語の組み合わせは比較的単純であり、SHRDLUのプログラムはユーザーの意図を理解するのに十分なほど洗練されています。
2.
記憶能力: SHRDLUは、与えられた状況に対する基本的な記憶能力を持っています。例えば、ユーザーが「緑色の円錐を赤いブロックの上に置け」と指示した後、「その円錐を取り除け」と指示した場合、「その円錐」が先ほど言及した円錐であることを理解します。また、ユーザーが追加の形容詞を与えた場合、SHRDLUは履歴を検索し、適切な状況を特定することができます。ユーザーは履歴について質問することも可能であり、「その円錐の前に何かを持ち上げたか?」といった質問に答えることができます。
3.
ルール: SHRDLUには、その「世界」において何が可能で何が不可能であるかというルールが組み込まれています。例えば、ブロックは積み重ねることができると推測しますが、三角形は積み重ねることができないことは、実際に試すことによって認識します。また、ブロックは下に落ちるという基本的な
物理法則も認識しており、これは
構文解析器とは独立して機能します。
4.
名称の記憶: SHRDLUは、単一のオブジェクトまたは複数のオブジェクトの組み合わせに付けられた名前を記憶することができます。例えば、ユーザーが「尖塔とは、背の高い四角形の上にある、小さな三角形のことである」と定義した場合、SHRDLUはその「世界」での尖塔に関する質問に答えたり、新しい尖塔を作ったりすることができます。
結果
SHRDLUは、初期のAI研究において大きな成功を収め、他の研究者に過剰な楽観主義をもたらしました。しかし、現実世界の曖昧さと複雑さを伴うより現実的な状況を扱おうとした後続のシステムでは、この楽観主義はすぐに打ち砕かれることになりました。
SHRDLUの研究の流れは、プログラムに結論を導くことができるような情報を提供することに焦点を当てた取り組みに引き継がれ、Cycといったプロジェクトにつながっています。
参考文献
Procedures as a Representation for Data in a Computer Program for Understanding Natural Language. MIT AI Technical Report 235, February 1971
関連項目
Planner
外部リンク
SHRDLU - テリー・ウィノグラードによるSHRDLUのページ
Conversation with SHRDLU - SHRDLUのデモンストレーション
*
SHRDLU resurrection - SHRDLUのリライトされた版