如果您正在查看使用统一且有用的实际示例,请查看计算语言学中使用的基于统一的语法,例如 HPSG 和 LFG。表面上看是另一种统一的味道,其实是一样的。
基于统一的语法可以被认为是一种 CFG(上下文无关语法),其中产生式通过统一进行扩展。 CGF 中的每个术语都有一个 AVM(属性值矩阵),它是特征和值的有向无环图。这里的想法有点类似于编译器中使用的属性语法。
想象一下这个玩具语法:
S -> NP VP
NP -> Kim
NP -> The cats
VP -> V NP
V -> see
V -> sees
我们在协议中有些轻微的过度生成:
*猫看到金
[S [NP 猫] [VP [V see] [NP Kim]]]
为了解决这个问题,我们可以改进 CFG 以包含协议的概念:
S -> NP_sg VP_sg
S -> NP_sg VP_pl
NP_sg -> Kim
NP_pl -> The cats
VP_sg -> V_sg NP_sg
VP_sg -> V_sg NP_pl
V_sg -> sees
V_pl -> see
VP_pl -> V_pl NP_pl
VP_pl -> V_pl NP_sg
在这里,我们将拒绝以前的过度生成。但这会很快导致组合探索。然而,我们可以使用 AVM 来扩充每个术语,并在解析时将它们统一起来:
S -> NP VP , C = A unified with B.
NP -> kim /[ AGR sg ]. We mark Kim as being singular
NP -> The cats / [ AGR pl ]
VP[ AGR #1 ] -> V [ AGR #1 ] NP
#1-notation 是 reentrancies,意思是这个特征的值必须相同,实际上统一后它们会指向图中的同一个节点,只要成功。这里在实践中我们说动词短语的一致性特征与短语中动词的一致性相同。
V -> See / [ AGR pl ]
V -> Sees / [ AGR sg ]
使用我们的增强玩具语法“Kim see the cats”被拒绝,因为 NP 和 VP 不会统一,其 AGR 功能具有不同的值。
当我们进行解析时,我们将 AVM 统一在一起,因此在表达能力上获得了很大的提升,使语法工程师更容易编写语法。通常,广泛覆盖的 UBG 具有大约一百条规则,而可能不存在的等效 CFG 具有统一的 CFG 是图灵完备的,将具有数千个或更多的规则。
更多详情见
HPSG 和
LFG.