5.3 ShRDLU程序

ShRDLU有十二个组成部分,威诺格拉德所作的最重要的突破是使这些组成部分能够取得相互联系。在计算过程中,加以某种约束的每个部分,都能按一定次序咨询其他组成部分。这部分地与人类行为类似,如ShRDLU在执行命令时,能将目标与问题解决结合在一起(上面1-3的对话),能够整合有关动词的信息(对话13、14),并对问题作出回答(7-11和15-29)。ShRDLU通常在15-20秒内(1972年的硬件水平)完成反应动作,“机器人”手臂的移动速度与人类的大体相同。我们最重要的几个目的是:①剖析它的语法结构;②了解它的语义集合程序;③了解它的认知-推理系统。

句 法

句法上存在一些必然要解决的难题。例如,如何把每一个词语(名词、动词、形容词等)放到句子中的合适位置,然后再考虑词语和句子之间的语法(主语、谓语等)关系。例如,思考下面两个句子中“他”(him)的不同含义:

1.(a)亚瑟想要见他(him)(“他”不是亚瑟)

(b)亚瑟想要某人来看他(“他”是亚瑟)

ShRDLU的句法是由称作pROGRAMMAR的一种特殊的以Lisp为基础的语言,对韩礼德(halliday,1970)“系统语法”的实现。给定如下的一个句子:

2.长颈鹿吃苹果和桃。

句法分析并不是机械地和完全地进行操作;在分析的过程中,它会选择一条语义路径,并且在认知-推理系统中或者选择句法或者选择语义直接帮助分析。

语 义

ShRDLU具有一个独特特征,称之为“过程语义”。语言表达的意义是由程序所做的事情来表征的,此程序由pLANNER语言的micro-pLANNER版本编写而成(参考hewitt,1971):“这个模型潜在的基本观点是,所有语言的使用都可认为是以某种方式激活了听者脑内的某个程序。可以认为任何表达方式都是一种程序……”(Winograd,1973:170)。例如,“清理”这个动作的语义可以由程序CLEARTOp实现,扩展成如下一系列的句子:

3.(a)将桌子擦干净(命令语气)

(b)能把桌子擦干净吗(祈使语气)

(c)桌子已经擦干净了(肯定语气)

每个句子都可以转化为一组pLANNER指令:直接的物理动作(命令),一些信息(问题),储存和修改一些当下的知识(状态)。如一个句子:

4.一个支撑角锥的红色立方体。

认知-推理系统

ShRDLU的数据包含了那些事实。这些事实加上所有程序,共同构成一种一般推理系统,它通过运行一系列的子任务最终实现给定任务。

(IS B1 BLOCK)

(IS B2 pYRAMID)

(AT B1 (LOCATION 100 100 0))

(SUppORT B1 B2)

(CLEARTOp B2)

(MANIpULABLE B1)

(CONTAIN BOX1 B4)

(COLOR-OF B1 RED)

(ShApE-OF B2 pOINTED)

(IS BLUE COLOR)

(CAUSE EVENT27 EVENT29)

(GRASp B1)

(GET-RID-OF B2)

(pUTON B2 TABLE)

(pUT B2 (453 201 0))

(MOVED (553 301 100))