| 原作者 | テリー・ウィノグラッド |
|---|---|
| 初回リリース | 1968 |
| 書かれた | Micro Planner、Lispプログラミング言語 |
| オペレーティング·システム | PDP-6 |
| プラットフォーム | 12月 |
| タイプ | 自然言語理解 |
SHRDLU は、1968 年から 1970 年にかけてMITのテリー・ウィノグラッドが開発した、初期の自然言語理解 コンピュータ プログラムです。このプログラムでは、ユーザーはコンピュータと会話をしながら、オブジェクトを移動したり、コレクションに名前を付けたり、単純化された「ブロック ワールド」の状態を問い合わせたりします。ブロックワールドは、基本的にさまざまなブロックで満たされた仮想ボックスです。[1]
SHRDLU は、DEC PDP-6コンピュータと DEC グラフィックスターミナル上でMicro PlannerとLisp プログラミング言語を使用して作成されました。その後、ユタ大学のコンピュータ グラフィックス ラボで追加が行われ、SHRDLU の「世界」の完全な 3D レンダリングが追加されました。
SHRDLU という名前は、英語での使用頻度の高い順に並べられた Linotype マシン上の文字キーの配置であるETAOIN SHRDLUに由来しています。
機能性
SHRDLU は、主に英語の用語を使用してユーザー インタラクションを可能にする言語パーサーです。ユーザーは、ブロック、円錐、ボールなど、さまざまな基本オブジェクトを含む「ブロック ワールド」内でさまざまなオブジェクトを移動するように SHRDLU に指示します。SHRDLU がユニークである理由は、4 つの単純なアイデアの組み合わせによって「理解」のシミュレーションがはるかに説得力のあるものになっていることです。
1 つは、SHRDLU の世界が非常に単純なため、オブジェクトと場所のセット全体を、おそらく 50 語程度で記述できるということです。つまり、「ブロック」や「円錐」などの名詞、「置く」や「移動する」などの動詞、「大きい」や「青い」などの形容詞です。これらの基本的な言語構成要素の組み合わせは非常に単純で、プログラムはユーザーの意図をかなりうまく理解します。
SHRDLU には、コンテキストを提供するための基本的なメモリも含まれています。SHRDLU に「緑のコーンを赤いブロックの上に置いて」、次に「コーンを外す」ように頼むと、「コーン」は先ほど話した緑のコーンを意味すると解釈されます。SHRDLU は、追加の形容詞が与えられた場合、ほとんどの場合、インタラクションをさらに遡って検索し、適切なコンテキストを見つけることができます。履歴について質問することもできます。たとえば、「コーンの前に何か拾いましたか?」と尋ねることができます。
このメモリと、SHRDLU に付属していた元のルールの副作用として、プログラムは、世界で何が可能で何が不可能かという質問に答えることができます。たとえば、SHRDLU は、例を探すことでブロックを積み重ねることができると推測できますが、試してみた後、三角形を積み重ねることができないことも理解できます。「世界」には、言語パーサーとは無関係に、ブロックを倒すための基本的な物理学が含まれています。
最後に、SHRDLU はオブジェクトに付けられた名前や、それらの配置も記憶できます。たとえば、「尖塔は、背の高い長方形の上にある小さな三角形です」と言うと、SHRDLU はブロックの世界の尖塔に関する質問に答え、新しい尖塔を構築できます。
SHRDLUの有名なデモンストレーションは次の通りです: [2]
- 人:大きな赤いブロックを拾ってください。
- コンピュータ: OK。
- 人:ピラミッドを掴んでください。
- コンピューター: どのピラミッドのことを言っているのか分かりません。
- 人(気が変わった):自分が持っているブロックよりも高いブロックを見つけて、箱の中に入れます。
- コンピュータ: 「それ」というのは、私が持っているブロックよりも高いブロックのことだと思います。
- コンピュータ: OK。
- 人:箱の中には何が入ってるんですか?
- コンピューター: 青いピラミッドと青いブロック。
- 人:ピラミッドは何によって支えられているのですか?
- コンピューター: THE BOX。
- 人:箱の中に入っていないブロックはいくつありますか?
- コンピューター: 4 台です。
- 人: 少なくとも 1 つは、私が拾うように言ったものよりも狭いですか?
- コンピューター: はい、赤いキューブです。
- 人:サポートされていますか?
- コンピューター: はい、テーブルのそばにあります。
- 人:テーブルはブロックを拾えますか?
- コンピュータ: いいえ。
- 人: ピラミッドはブロックで支えられますか?
- コンピューター: はい。
- 人: ピラミッドはピラミッドを支えることができますか?
- コンピューター: 分かりません。
- 人:ピラミッドを2つ積み上げます。
- コンピュータ: できません。
- 人: 赤いブロック 2 つと、緑の立方体またはピラミッドのいずれかを積み上げてもらえますか?
- コンピュータ: OK。
- 人:テーブルの上にある立方体はどれですか?
- コンピューター: 赤いピラミッドを支える大きな緑色のコンピューター。
- 人:ピラミッドの後ろに大きなブロックがありますか?
- コンピュータ: はい、3つあります。大きな赤い立方体、大きな緑の立方体、そして青い立方体です。
- 人: ピラミッドを支える緑の立方体の上に小さいものを置きます。
- コンピュータ: OK。
- 人:一番小さいピラミッドをその上に置きます。
- コンピュータ: OK。
- 人: 最も高いピラミッドの支柱が支えている最も低いものは、緑色のものを支えていますか?
- コンピューター: はい、緑のピラミッドです。
- 人:何色ですか?
- コンピュータ: 「それ」とは、最も高いピラミッドの支柱が支えている最も短いもののことを指していると思います。
- コンピューター: RED
- 人: 緑の立方体の上には、何個の物がありますか?
- コンピュータ: 「緑色の立方体の上に」というフレーズの「上に」が何を意味するのかわかりません。
- つまり:
- 1 - 表面に直接
- 2 - 上のどこですか?
- 人数: 2
- コンピューター: 3 台です。
- 人: 緑のピラミッドを小さな立方体の上に置く前に、ピラミッドに触れたことはありますか?
- コンピューター: はい、緑色のものです。
- 人:いつ拾ったんですか?
- コンピューター: 赤い立方体、大きな赤いブロック、大きな緑の立方体を積み上げていたとき。
- 人:なぜですか?
- コンピューター:それを取り除く。
- 人:なぜそんなことをしたのですか?
- コンピューター: 赤いキューブを消去します。
- 人: なぜそのキューブを片付けたのですか?
- コンピューター: 大きな緑色の立方体の上に置きます。
- 人:なぜそんなことをしたのですか?
- コンピュータ: 赤い立方体、大きな赤いブロック、大きな緑の立方体を積み重ねます。
- 人:なぜそんなことをしたのですか?
- コンピューター: 頼まれたからだよ。
- 人:どうやってやったの?
- コンピューター: テーブルの上に大きな赤いブロックを置き、それを放し、その上に大きな緑の立方体を置き、その立方体を放し、その立方体の上に赤い立方体を置き、その立方体を放します。
- 人: それを行っている間に、いくつの物に触れましたか?
- コンピューター: 4 台です。
- 人: 赤い立方体を掃除し始める前は、何を支えていたのですか?
- コンピューター: 緑のピラミッド。
- 人:その箱の左側にはブロックが 5 つありました。
- コンピュータ: いいえ、4 つだけです。赤い立方体、2 つの大きな緑の立方体、そして大きな赤いブロックです。
- 人: 青いピラミッドを箱の中のブロックの上に置きます。
- コンピュータ: OK。
- 人: あらゆるピラミッドよりも大きいのに、それを支えるものほど幅が広くないものはありますか?
- コンピューター: はい、青いブロックです。
- 人:尖塔は
- コンピュータ(割り込んで): 申し訳ありませんが、「STEEPLE」という言葉は知りません。
- 人: 「尖塔」は、2 つの緑色の立方体とピラミッドを含むスタックです。
- コンピューター: 分かりました。
- 人:今は尖塔はありますか?
- コンピュータ: いいえ。
- 人: 1 つ作ります。
- コンピュータ: OK。
- 人: 最大のブロックを「スーパーブロック」と呼びます。
- コンピュータ: OK。
- 人: 私たちが始めたときから、スーパーブロックを手に入れましたか?
- コンピューター: はい。
- 人:なぜ落としたのですか?
- コンピューター: 「それ」とは、スーパーブロックのことだと思います。
- 存在しない出来事を説明することはできません。
- 人: 赤いピラミッドの右側に何かありますか?
- コンピュータ: はい、4つあります。箱、赤い立方体、青いピラミッド、そしてスーパーブロックというブロックです
- 人:ありがとう。
- コンピューター: どういたしまして!
結果
SHRDLU は、人工知能(AI)の非常に成功したデモンストレーションと見なされました。これにより、他の AI 研究者は過度の楽観主義に陥りましたが、その後のシステムがより現実的なレベルの曖昧さと複雑さを伴う状況に対処しようとしたときに、その楽観主義はすぐに失われました[要出典] 。Cycなどの SHRDLU タイプのその後の取り組みは、プログラムが結論を導き出すためにかなり多くの情報を提供することに重点を置く傾向がありました。
1991年のインタビューで、ウィノグラッドはSHRDLUについて次のように語っている。[3]
[...] ブロックを拾うなどできる SHRDLU との有名な対話については、1 行ずつ非常に注意深く作業しました。対話の前に座って、対話にない質問をすると、ある程度の確率で答えてくれました。つまり、形式と内容が既存の質問の 1 つにかなり近い場合は、おそらく答えてくれるでしょう。しかし、実際に誰かに渡してブロックを移動させるために使用できるレベルまで到達する試みはありませんでした。また、そのプレッシャーはまったくありませんでした。プレッシャーは、デモできるものに対するものでした。最近の例として、NegroponteのMedia Labでは、「消滅するか公開するか」ではなく、「デモするか死ぬか」となっています。これは問題だと思います。AI はこれにかなり悩まされたと思います。なぜなら、デモで実際に行ったことは良さそうに見えたが、その裏側を見ると、より一般的に実際に機能させるのに十分な構造がなかった「ポチョムキン村」につながったからです。
SHRDLUは意図的に開発されたわけではないが、ユーザーが簡単なコマンドで仮想環境内のオブジェクトを移動させるという点で、インタラクティブフィクションの最初の正式な例と考えられている。ただし、インタラクティブフィクションのジャンルに通常見られる独特のストーリーテリングは欠けている。1976年から1977年にかけてのゲーム「Colossal Cave Adventure」は、インタラクティブフィクションの真の最初の作品であると広く考えられている。[4]
参照
参考文献
- ^ Winograd, Terry (1971-01-01). 「自然言語を理解するためのコンピュータプログラムにおけるデータ表現としての手順」. hdl :1721.1/7095.
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)が必要です - ^ "SHRDLU".スタンフォード大学ヒューマンコンピュータインタラクション(HCI)グループ。
- ^ 「テリー・アレン・ウィノグラッド氏へのオーラル・ヒストリー・インタビュー」チャールズ・バベッジ研究所。1991年12月11日。hdl :11299/107717。
- ^ モンフォート、ニック (2003)。ツイスティ・リトル・パッセージズ:インタラクティブフィクションへのアプローチ。ケンブリッジ:MITプレス。pp. 84–85。ISBN 0-262-13436-5。
さらに読む
- Winograd, Terry (1970-08-24)。「自然言語を理解するためのコンピュータ プログラムにおけるデータ表現としての手順」(PDF)。MIT AI 技術レポート 235。2020年 10 月 3 日にオリジナルからアーカイブ(PDF) 。
- ウィノグラッド、テリー(1972年1月)。「自然言語の理解」認知心理学3 ( 1):1–191。doi : 10.1016/0010-0285(72)90002-3。
外部リンク
- Winograd, Terry (2001). 「SHRDLU」。2020年8月17日時点のオリジナルよりアーカイブ。– Terry WinogradのSHRDLUページ、ソースコードを含む
- (不明) (2013-08-22) 「SHRDLU 復活」。2017-11-17 にオリジナルからアーカイブ。- Java3Dバージョンを含むSHRDLUの書き直しバージョン
- Go ベースの実験システム NLI-GO のアプリケーションとしての SHRDLU ダイアログ (2023 年 6 月) の最初の完全な複製。
- 「SHRDLU の名前の由来」
