为了处理句子1a,系统要能够认识到一个具有“agent wants action”形式的句子是要表述一个行为的目标——在这个例子中,目标为乘火车。假定具有合适参数的动词“take”可以用于确定“TRAVEL-BY-TRAIN”是相关的脚本,则可以创建脚本的实例T1来描述当前情况。让我们详细分析这个例子。句子1a中描述的目标可以表示为:
Travel(E1) & Agent(E1) = Sam1 & Instrument(E1) = TR1 & IsTrain(TR1) & Dest(TR1, ROC)
将这个目标与T1匹配。使用动词格角色和脚本角色之间的对应关系,“TRAVEL-BY-TRAIN”行为的一个实例将产生下面的等价性假设:
Actor( T1) = Agent( E1) = Sam1
Train(T1) = Instrument( E1) = TR1
DestCity(T1) = ROC
使用这些假设对T1进行分解得到的结果如图2所示。现在,系统可以使用实例化的脚本来解释句子1b。我们要寻找一些等价性假设以便这些分解的子步骤能够与新句子的语义内容相匹配。这种情况下,需要的等价性假设如下:
PurchaseTicket(E2) & Agent(E2) = H1 & Theme(E2) = TIC3 & At-Loc(E2) = STAT3 & Ticker(TIC3) & Station(STAT3)
其中,TIC3是为“a ticket”而生成的新常数,H1是为代词“he”而生成的常数。这将与T1分解中的第二步相匹配,用基于事件的形式表示如下:
PurchaseTicket(P1) & Agent(P1) = Sam1 & Clerk(P1) = Clerk(T1) & Ticket( P1)= Ticket( T1) & Station(P1) = Station( T1)
这一匹配将产生下面的等价性假设:
H1 = Sam1
TIC3 = Ticket(P1) = Ticket(T1)
STAT3 = Station(P1) = Station(T1)
匹配的结果是代词“he”指代“Sam1”,定指性描述“the station”的惟一指代对象被确定为指代“Station(T1)”[即使前面的篇章并没有涉及Station(T1)]。另外,可以从为脚本定义的这些约束中得到大量的隐含信息。我们可以得出火车站位于Sam将要离开的城市、句子1b中的车票是指去Rochester的车票、Sam去了火车站;我们还会有一些期望,包括Sam上火车以及旅行中涉及的其他行为。
图2 给定句子1a,T1的分解步骤的实例化
很明显,有必要对脚本结构进行一些泛化,以处理更真实的情况。脚本的分解结构有必要进行扩展,使之能够接受这些子行为之间的偏序关系。另一个重要的扩展是在脚本中要允许表示在不同的行为之间进行选择这种情况。这样,就可以使脚本根据行为执行过程中状态的不同来执行不同的行为路线。一些篇章在解释为什么执行一些行为或为什么一些行为成功时明确需要进行选择。例如,进入房间的脚本可能取决于门是否锁了而具有不同的行为顺序。如果门锁了,那么agent必须有钥匙来开门。
责任编辑:admin