SHRDLU
此条目需要补充更多来源。 (2020年7月25日) |
原作者 | 特里·威诺格拉德 |
---|---|
首次发布 | 1968 |
编程语言 | Micro Planner, LISP |
操作系统 | PDP-6 |
平台 | DEC |
类型 | 自然语言理解 |
SHRDLU是由特里·威诺格拉德于1968年至1970年在麻省理工学院开发的一种早期的自然语言理解计算机程序 。在该程式中,用户可以与电脑对话,对这种精简的“ 积木世界”的内部状态进行移动物体、命名集合、查询等操作(积木世界本质上是一个虚拟盒子,内部充满了不同积木)。[1]
SHRDLU是以Micro Planner和Lisp编程语言在DEC PDP-6电脑和DEC图形终端上编写而成 。 后来在犹他大学的计算机图形实验室进行了补充,加入了对SHRDLU“世界”的完整3D渲染。
名称“SHRDLU”衍生自ETAOIN SHRDLU, ETAOIN SHRDLU是Linotype排字机上字母键配置,也就是照字母使用频率,以降序方式排列的12个字母序列。
功能
[编辑]SHRDLU主要是一种语言解析器,它允许用户使用英语术语进行互动 。 用户指示SHRDLU在“积木世界”中移动各种物体,包含各种基本物体:积木(块体)、锥体、球体等。 SHRDLU的独特之处在于将四个简单想法的组合起来,这些想法加总在一起,使得在对“理解力”的模拟上,更具说服力。
其中一个原因是,SHRDLU的世界非常简单,以致于整个物体和位置的集合可以透过大约50个单词来描述:名词如"积木"(block)和"锥体"(cone),动词如"放置在"(place on)和"移动到"(move to),以及形容词如"巨大的"(big)和"蓝色的"(blue)。这些基本的语言建筑模块的可能组合相当简单,程式完全有办法弄懂用户的意思。
SHRDLU还包括一个基本记忆体来提供语境。人们可以要求SHRDLU“把绿锥放在红块上”,然后“把锥子拿下来”;“锥体”会被认为是指刚才说的绿锥。在大多数情况下,当提供了额外的形容词时,SHRDLU可以透过互动进一步回溯寻找合适的语境。用户也可以问一些历史问题,比如“在捡到锥体之前,你有没有捡过任何东西?”
这种记忆体的附带效果,也是SHRDLU标准配置的基本规则,即该程式可以回答关于世界上什么问题是可能的,什么问题是不可能的。SHRDLU会透过寻找例子推断出积木可以堆叠,但在尝试过三角形后,会了解到三角形不能堆叠。“世界”包含了使积木掉落的基本物理机制 ,而这与语言解析器无关。
最后,SHRDLU还可以记住物体的名称或它们的排列方式。例如,人们可以说 "尖塔是一个高大的长方形上面的小三角形";SHRDLU就可以回答积木世界中关于尖塔的问题,并建造新的尖塔。
选录
[编辑]这是SHRDLU的著名演示: [2]
- 人:Pick up a big red block.
- 电脑: OK.
- 人:Grasp the pyramid.
- 电脑:I DON'T UNDERSTAND WHICH PYRAMID YOU MEAN.
- 人:(changing their mind): Find a block which is taller than the one you are holding and put it into the box.
- 电脑:BY "IT", I ASSUME YOU MEAN THE BLOCK WHICH IS TALLER THAN THE ONE I AM HOLDING.
- 电脑:OK.
- 人:What does the box contain?
- 电脑:THE BLUE PYRAMID AND THE BLUE BLOCK.
- 人: What is the pyramid supported by?
- 电脑:THE BOX.
- 人:How many blocks are not in the box?
- 电脑:FOUR OF THEM.
- 人:Is at least one of them narrower than the one which i told you to pick up?
- 电脑:YES, THE RED CUBE.
- 人:Is it supported?
- 电脑:YES, BY THE TABLE.
- 人:Can the table pick up blocks?
- 电脑:NO.
- 人:Can a pyramid be supported by a block?
- 电脑:YES.
- 人:Can a pyramid support a pyramid?
- 电脑:I DON'T KNOW.
- 人:Stack up two pyramids.
- 电脑:I CAN'T.
- 人:Will you please stack up both of the red blocks and either a green cube or a pyramid?
- 电脑:OK.
- 人:Which cube is sitting on the table?
- 电脑:THE LARGE GREEN ONE WHICH SUPPORTS THE RED PYRAMID.
- 人:Is there a large block behind a pyramid?
- 电脑:YES, THREE OF THEM: A LARGE RED ONE, A LARGE GREEN CUBE, AND THE BLUE ONE.
- 人:Put a small one onto the green cube which supports a pyramid.
- 电脑:OK.
- 人:Put the littlest pyramid on top of it.
- 电脑:OK.
- 人:Does the shortest thing the tallest pyramid's support supports support anything green?
- 电脑:YES, THE GREEN PYRAMID.
- 人:What color is it?
- 电脑:BY "IT", I ASSUME YOU MEAN THE SHORTEST THING THE TALLEST PYRAMID'S SUPPORT SUPPORTS.
- 电脑:RED
- 人:How many things are on top of green cubes?
- 电脑:I'M NOT SURE WHAT YOU MEAN BY "ON TOP OF "IN THE PHRASE "ON TOP OF GREEN CUBES " .
- DO YOU MEAN:
- 1 - DIRECTLY ON THE SURFACE
- 2 - ANWHERE ON TOP OF ?
- 人:2
- 电脑:THREE OF THEM.
- 人:Had you touched any pyramid before you put the green one on the little cube?
- 电脑:YES, THE GREEN ONE.
- 人:When did you pick it up?
- 电脑:WHILE I WAS STACKING UP THE RED CUBE, A LARGE RED BLOCK AND A LARGE GREEN CUBE.
- 人:Why?
- 电脑:TO GET RID OF IT.
- 人:Why did you do that?
- 电脑:TO CLEAN OFF THE RED CUBE.
- 人:Why did you clear off that cube?
- 电脑:TO PUT IT ON A LARGE GREEN CUBE.
- 人:Why did you do that?
- 电脑: TO STACK UP THE RED CUBE , A LARGE RED BLOCK AND A LARGE GREEN CUBE.
- 人:Why did you do that?
- 电脑:BECAUSE YOU ASKED ME TO.
- 人:How did you do it?
- 电脑:BY PUTTING A LARGE RED BLOCK ON THE TABLE ; THEN LETTING GO OF IT ; THEN PUTTING A LARGE GREEN CUBE ON IT ; THEN LETTING GO OF THAT CUBE ; THEN PUTTING THE RED CUBE ON THAT CUBE; THEN LETTING GO OF THAT CUBE.
- 人:How many objects did you touch while you were doing it?
- 电脑:FOUR OF THEM.
- 人:What did the red cube support before you started to clean it off?
- 电脑:THE GREEN PYRAMID.
- 人:There were five blocks to the left of the box then.
- 电脑:NO, ONLY FOUR OF THEM: THE RED CUBE, TWO LARGE GREEN CUBES AND A LARGE RED BLOCK.
- 人:Put the blue pyramid on the block in the box.
- 电脑:OK.
- 人:Is there anything which is bigger than every pyramid but is not as wide as the thing that supports it?
- 电脑:YES, THE BLUE BLOCK.
- 人:Does a steeple
- 电脑 (interrupting):SORRY, I DON'T KNOW THE WORD "STEEPLE".
- 人:A "steeple" is a stack which contains two green cubes and a pyramid.
- 电脑:I UNDERSTAND.
- 人:Are there any steeples now?
- 电脑:NO.
- 人:Build one.
- 电脑:OK.
- 人:Call the biggest block "superblock".
- 电脑:OK.
- 人:Have you picked superblock up since we began?
- 电脑:YES.
- 人:Why did you drop it?
- 电脑:BY "IT", I ASSUME YOU MEAN THE SUPERBLOCK.
- I CAN'T EXPLAIN A NON-EXISTENT EVENT.
- 人:Is there anything to the right of the red pyramid?
- 电脑:YES, FOUR THINGS: THE BOX , THE RED CUBE, THE BLUE PYRAMID AND THE BLOCK NAMED SUPERBLOCK
- 人:Thank you.
- 电脑:YOU'RE WELCOME!
影响
[编辑]SHRDLU被认为是人工智能一次极其成功的演示。这导致其他AI研究人员过分乐观,但后来的系统试图处理现实中的更具模糊性和复杂性的情况时[来源请求],这种乐观情绪很快就消失了。后续与SHRDLU同型的工作(例如Cyc )则倾向于专注为程式提供更加丰富的资讯,借此从中获得结论。
尽管不是有意为之,但是SHRDLU被认为是文字冒险游戏第一个已知的正式实例,这是因为用户能够以简单的指令在虚拟环境中移动物体来进行互动,尽管缺乏了常见于文字冒险游戏中特有的故事叙述。 1976-1977年的游戏《巨洞冒险》被广泛认为是文字冒险游戏的第一个真正作品。 [3]
参见
[编辑]参考文献
[编辑]- ^ Winograd, Terry. Procedures as a Representation for Data in a Computer Program for Understanding Natural Language. 1971-01-01 (美国英语).
- ^ SHRDLU. Stanford Human-Computer Interaction (HCI) Group. (原始内容存档于2020-08-16).
- ^ Montfort, Nick. Twisty Little Passages: An Approach To Interactive Fiction. Cambridge: The MIT Press. 2003: 84–85. ISBN 0-262-13436-5.
- Terry Winograd, "Procedures as a Representation for Data in a Computer Program for Understanding Natural Language"(页面存档备份,存于互联网档案馆), MIT AI Technical Report 235, February 1971
- Understanding Natural Language by T. Winograd, Academic Press, 1972