【代数语言学巡礼】Lambda-演算在形式语义学的中应用II
现在我们开始讲述 λ \lambda λ-演算的基础知识,包括PC上的 λ \lambda λ-演算和类型论上的 λ \lambda λ-演算;
λ \lambda λ-演算
λ \lambda λ-演算最早是由Church(1941)在(The Calculi of Lambda-Conversion. Princeton University)中提出来的,但却是 Montague(1970)才使得它在自然语言的形式语义学研究 发挥重要作用.
我们知道自然语言的语法结构和一阶逻辑结构并非一一对应.通过前面的介绍,我们也 已经知道组合原则是形式语义学的基本要求, 否则根本无法对语义进行形式化的研究.然而,Montague之前的生成语义学家(generative semanticists)以及其它的语义学家们都一直无法 找到合适的方法使得语义学也符合组合原则.因此,尽管形式化方法在自然语言的语法研究 方面取得了很大的进步,在语义学方面却基本是不在场的.这一现象基本持续到Montague(1970).在这篇文章中,Montague在Churuch,Tarski等人工作的基础上,提出了 他自己的类型论的内涵逻辑(Montague’s typed intensional logic),并且把 λ \lambda λ-演算应用到各种 语义组合问题的分析中.可以说,在Montague把 λ \lambda λ-演算引进到自然语言语义学的研究之前, 是不存在现在广为人知的形式语义学这一学科领域.但是, λ \lambda λ-演算在自然语言问题中的引进, 却带来了语义学研究的革命,并为形式语义学的形成和发展奠定了基础.由此也可知,lambda-演算在形式语义学中有非常重要的地位.
下面将具体介绍 λ \lambda λ-演算中的几个关键概念和步骤,即 λ \lambda λ-抽象( λ \lambda λ-abstraction)规则、 λ \lambda λ还原( λ \lambda λ-reduction 或者说 λ \lambda λ-contraction)以及 λ \lambda λ-转换(\lambda-conversion).这又分为PC上简单的 λ \lambda λ-演算和类型论上的 λ \lambda λ-演算.
PC 上的 λ \lambda λ-演算
简单的 λ \lambda λ-抽象规则
从实质上讲, λ \lambda λ-抽象一个通过 λ \lambda λ-算子从已给定的谓词或者公式中产生新的复杂谓词的过程.通过增加 λ \lambda λ-抽象规则,PC就可以对表示前面提到的各种词组进行处理.当然,这里的有些词组是需要更复杂的 λ \lambda λ-抽象规则(即用到类型论的抽象规则)才可以表示的.简单的 λ \lambda λ抽象具体如下:
R9:如果
φ
∈
\varphi \in
φ∈Form且
v
v
v是一个变元,那么
λ
v
[
φ
]
∈
\lambda v[\varphi] \in
λv[φ]∈Pred-1.
S9:
∥
λ
v
[
φ
]
∥
M
,
g
\|\lambda v[\varphi]\|^{M, g}
∥λv[φ]∥M,g 是集合S,
D
D
D中所有使得
∥
φ
∥
M
,
g
[
d
/
v
]
=
1
\|\varphi\|^{M, g[d/v]}=1
∥φ∥M,g[d/v]=1成立的d所组成的集合.
这里的 λ v [ φ ] \lambda v[\varphi] λv[φ]也可以读成“the property of being an v such that φ \varphi φ”,即指使得 φ \varphi φ成立的那些个体所具有的性质.当 λ \lambda λ-算子作用的辖域非常清楚时,也可以省略[ ]而记作 λ v φ \lambda v \varphi λvφ .在 Chruch(1941)中,则记为 λ v . φ \lambda v . \varphi λv.φ;
注意这里的 λ \lambda λ-算子是应用在个体上的,而它对变元的约束方式也类似于全称量词和存 在量词.同一个 λ \lambda λ-算子不可以同时约束两个不同的变元,而应该再重新引进新的 λ \lambda λ-算子. 如 λ x P ( x , y ) \lambda x {P}(x, y) λxP(x,y)只对 x x x进行约束,如想对 y {y} y也进行约束,则应该再引入一个 λ \lambda λ-算子,如
λ y [ λ x [ P ( x , y ) ] ] \lambda y[\lambda x[{P}(x, y)]] λy[λx[P(x,y)]]
例:在下面所有的例子中,我们假定有赋值 g ( y ) = John g({y})=\text{John} g(y)=John和解释 I ( b ) = Bill , I ( m ) = Mary I({b})=\text{Bill},I({m})=\text{Mary} I(b)=Bill,I(m)=Mary;
i)
∥
λ
x
[
run
(
x
)
]
∥
M
,
g
=
\|\lambda x[\operatorname{run}(x)]\|^{{M}, {g}}=
∥λx[run(x)]∥M,g= 由所有有跑这个动作的个体所组成的集合;
ii)
∥
λ
x
[
like
(
x
,
b
)
]
∥
M
,
g
=
\|\lambda x[\operatorname{like}(x, {b})]\|^{{M}, {g}}=
∥λx[like(x,b)]∥M,g= 由所有喜欢
∥
b
∥
M
,
g
[
d
x
]
(
\|{b}\|^{{M}, {g}[{d} x]}(
∥b∥M,g[dx]( 即
I
(
b
)
,
{I}({b}),
I(b), 即Bill
)
)
) 的个体所组成的集合;
iii)
∥
λ
x
[
like
(
x
,
y
)
]
∥
M
,
g
=
\| \lambda x[ \operatorname{like} (x, y)] \|^{{M}, {g}}=
∥λx[like(x,y)]∥M,g= 由所有喜欢
∥
y
∥
M
,
g
[
d
x
]
(
\|\boldsymbol{y}\|^{{M}, {g}[{d} x]}(
∥y∥M,g[dx]( 即
g
(
y
)
,
{g}(\boldsymbol{y}),
g(y), 即John
)
)
) 的个体所组成的集合;
iv)
∥
λ
x
[
\| \lambda x[
∥λx[ fish
(
x
)
∧
like
(
x
,
b
)
]
∥
M
,
g
=
(x) \land \operatorname{like} (x, {b})] \|^{{M}, {g}}=
(x)∧like(x,b)]∥M,g= 由所有喜欢Bill的鱼所组成的集合;
v) 表示 walks and talks":
λ
y
[
(
\lambda y[(
λy[( walk
(
y
)
∧
talk
(
y
)
)
]
(y) \land \operatorname{talk}(y))]
(y)∧talk(y))];
**vi)**用与表层语法对应的成分表示“Mary walks and talks”:
λ y [ ( walk ( y ) ∧ talk ( y ) ) ] ( m ) \lambda y[(\operatorname{walk}(y) \land \operatorname{talk}(y))]({m}) λy[(walk(y)∧talk(y))](m)
vii) 表示CNP(通名的名词短语)“man who likes Mary”,语法结构如下:
结合CNP与REL(关系从句)的规则:
λ
y
[
C
N
P
′
(
y
)
∧
R
E
L
′
(
y
)
]
\lambda y[{CNP}^{\prime}(\boldsymbol{y}) \land {REL}^{\prime}(\boldsymbol{y})]
λy[CNP′(y)∧REL′(y)],把上面的语法结构组合地翻译成
λ
\lambda
λ-演算(自下而上):
λ \lambda λ-还原和 λ \lambda λ-转换
λ \lambda λ-还原是指用定义域中的项代人受 λ \lambda λ-算子约束的变元并消去 λ \lambda λ-算子的过程,这是与 λ \lambda λ抽象相对应的概念.例如,从 λ v [ φ ] ( t ) \lambda v[\varphi](t) λv[φ](t)得到 φ [ t / v ] \varphi[t / v] φ[t/v]就是一个 λ \lambda λ-还原过程,是把 t t t代入 φ \varphi φ中每一个自由的 v v v,而这些 v v v又受到 λ \lambda λ-算子的约束. 有了 λ \lambda λ-还原我们就可以直接定义 λ \lambda λ-转换( λ \lambda λ-conversion):
λ v [ φ ] ( t ) ↔ φ [ t / v ] \lambda v[\varphi](t) \leftrightarrow \varphi[t/v] λv[φ](t)↔φ[t/v]
其中从左到右是一个 λ \lambda λ-还原的过程,而从右到左是一个 λ \lambda λ-抽象的过程.注意,t必须替换 φ \varphi φ中的每一个 v v v.根据 λ \lambda λ-转换,我们有:
λ y [ ( walk ( y ) ∧ talk ( y ) ) ] ( m ) ↔ ( walk ( m ) ∧ talk ( m ) ) \lambda y[(\operatorname{walk}(y) \land \operatorname{talk}(y))](m) \leftrightarrow(\operatorname{walk}(m) \land \operatorname{talk}(m)) λy[(walk(y)∧talk(y))](m)↔(walk(m)∧talk(m))
λ y [ man ( y ) ∧ λ z [ like ( z , m ) ] ( y ) ] ↔ λ y [ man ( y ) ∧ like ( y , m ) ] \lambda y[\operatorname{man}(y) \land \lambda z[\operatorname{like}(z, m)](y)] \leftrightarrow \lambda y[\operatorname{man}(y) \land \operatorname{like}(y, m)] λy[man(y)∧λz[like(z,m)](y)]↔λy[man(y)∧like(y,m)]
另外,这里所给的个体上的
λ
\lambda
λ-表达都十分简单,对于复杂的
λ
\lambda
λ-表达,其演算规则是类
似的.例如:
λ x [ λ y [ λ z [ ϕ ( x , y , z ) ] ] ] ( a ) ( b ) ( c ) ↔ λ y [ λ z [ ϕ ( a , y , z ) ] ] ( b ) ( c ) ↔ λ z [ ϕ ( a , b , z ) ] ( c ) ↔ ϕ ( a , b , c ) \begin{array}{l} \lambda x[\lambda y[\lambda z[\phi(x, y, z)]]]({a})({b})({c}) \\ \leftrightarrow \lambda y[\lambda z[\phi(a, y, z)]](b)(c) \\ \leftrightarrow \lambda z[\phi(a, b, z)](c) \\ \leftrightarrow \phi(a, b, c) \end{array} λx[λy[λz[ϕ(x,y,z)]]](a)(b)(c)↔λy[λz[ϕ(a,y,z)]](b)(c)↔λz[ϕ(a,b,z)](c)↔ϕ(a,b,c)
需要注意的是,这个式子中的 λ \lambda λ-还原是按从左至右的顺序依次还原的.这也表明“最先经 过 λ \lambda λ-抽象得到的 λ \lambda λ-抽象式在对应的 λ \lambda λ-还原中最后得到还原.其原因是最先得到的 λ \lambda λ-抽象式必定是整个逻辑式中内嵌最深的部分,而 λ \lambda λ-还原总是从最外层的 λ \lambda λ-约束式着手.(参考:蒋严,潘海华,2005,p193)这类似于自动机中一个堆栈(stack)的工作情况,即“先进先出,后入后出”.
在介绍Montague的内涵逻辑(IL)之前,让我们先看一下它与PC的儿个主要不同点:
i) IL有更丰富的类型结构.
ii) 表示函数的表达(function-denoting expressions)在IL中起着非常重要的作用.除基本类型
e
e
e和
t
t
t以外的所有类型都是函数类型(functional types),IL中除
e
e
e和
t
t
t以外的所有表达都指代函数.函数可以不断地进行复合运算,即函数可以是其它函数的变元和函数值.(Functions may serve as the arguments and as the values of other functions. In particular, all relations are also represented as functions.)
iii) IL包含函数的应用(functional application),或者说函数-变元的应用(function-argument application).这在后面的规则中会有具体的例子.
iv)
λ
\lambda
λ-表达的使用.
λ
\lambda
λ-算子可以作为构建表示函数的表达的基本工具.
v) 与PC中的一个世界(一个世界或一个模型之间没有什么区别)不同,IL的模型包含一个可能世界集.可能世界在区分内涵和外延中起着重要作用, 且与内涵的类型密切相关.特别是在解释模态算子和指称的模糊性方面,可能世界有重要作用.
vi) IL还包括某种时间结构,这主要用于解释英语中的时态,如在下面描述的过去时态(PAST).
类型和模型结构
类型:
基本类型:
e
,
t
{e},{t}
e,t;
函数类型:如果
a
a
a和
b
b
b是类型,那么
<
a
,
b
>
<{a},{b}>
<a,b>是一个类型(即一个从类型
a
a
a到类型
b
{b}
b的函数类型)注意,在文献中,
<
a
,
b
>
<{a},{b}>
<a,b>和
a
→
b
{a} \rightarrow {b}
a→b是等价的标记.
内涵类型:如果
a
a
a是一个类型,那么
<
s
,
a
>
<s,a>
<s,a>是一个类型(一个从可能世界到类型
a
a
a的表达的函数类型);
模型结构:
IL的模型结构: M = < D , W , ≤ , I > {M}=<{D}, {W},\leq, {I}> M=<D,W,≤,I>.每个模型必须包含如下四个成分:
- 一个由个体组成的定义域 D D D;
- 可能世界集 W W W;
- ≤ : W \leq: W ≤:W上的关系(也可以理解成是一个时间关系);
- I I I:对所有常元进行赋值的解释函数
类型 a a a的表达(相对于 D , W {D},{W} D,W)的可能指示集可以递归地定义如下:
D
e
=
D
{D}_{e}={D}
De=D;
D
t
=
{
0
,
1
}
{D}_{t}=\{0,1\}
Dt={0,1};
D
<
a
,
b
>
=
{
f
∣
f
:
D
a
→
D
b
}
{D}_{<a, b>}=\{f \mid f: {D}_{a} \rightarrow {D}_{b}\}
D<a,b>={f∣f:Da→Db},即所有从
D
a
{D}_{a}
Da到
D
b
{D}_{b}
Db函数
f
f
f所组成的集合;
D
<
,
a
>
=
{
f
∣
f
:
W
→
D
a
}
{D}_{<, a>}=\{f \mid f: {W} \rightarrow {D}_{a}\}
D<,a>={f∣f:W→Da},即所有从
W
{W}
W到
D
a
{D}_{a}
Da函数
f
f
f所组成的集合;
IL的语义解释也使用赋值函数 g g g的集合 G : { g : G:\{g: G:{g:任何类型的变元 → \rightarrow →相应的定义域值 } \} }注意:每一个IL的表达都有一个内涵(intension), 内涵是相对应于 M {M} M和 g g g而言的;相应的外延(extension)则是相对于 M , w {M},w M,w和 g g g.
原子表达、符号和解释
IL的原子表达是常元和变元;每一种类型中都有无穷的常元和变元.Montague引进了一种定义所给定类型的常元和变元的术语,即 c c c和 v v v,并在下方标记类型和指标.但是,在实际中,人们一般使用更易于记忆的术语.在这里的约定是这样的:
IL的常元用非斜体的黑体字,它们的名称通常表达从被翻译的英语表达如:man,like,等.IL中的变元用斜体的黑体字.这同前面在PC中的符号语言的使用习惯是一样的.其中的类型约定标记如下:
类型e:
w
,
x
,
y
,
z
{w}, {x}, {y}, z
w,x,y,z,以及所有带有上标或下标的类型
类型
<
e
,
t
>
:
P
,
Q
<{e}, {t}>: {P}, {Q}
<e,t>:P,Q;
各种关系类型
<
e
,
<
e
,
t
>
>
:
R
<{e},<{e},{t}>>: {R}
<e,<e,t>>:R;
广义量词类型:
T
{T}
T常元由模型中的解释函数
I
I
I解释,变元由赋值
g
g
g解释,如规则1.
语法规则和它们的模型论语义解释
IL的语法形式是一个递归定义集,即对所有的类型 a a a,"类型a的有意义的表达"的集合 M E a ME_{a} MEa是IL的语法形式.语义则是给每一个语法规则一个解释;注意: 这里同 P C {PC} PC一样,其对常元和变元的元语言标记用非斜体的符号.下面是具体的七条语法和相应的语义规则:
原子表达的语法和语义规则
语法规则.1:类型
a
a
a的每一个常元和变元是在
M
E
a
ME_{a}
MEa中的.
语义规则.1:
**(a)**如果
α
\alpha
α是一个常元,那么
∥
α
∥
M
,
w
,
g
=
I
(
α
)
(
w
)
.
\|\alpha\|^{{M},w,g}={I}(\alpha)(w).
∥α∥M,w,g=I(α)(w).
**(b)**如果
α
\alpha
α是一个变元,那么
∥
α
∥
M
,
w
,
g
=
g
(
α
)
\|\alpha\|^{{M},w, g}=g(\alpha)
∥α∥M,w,g=g(α).
注意:递归的语义规则会在给定的模型、世界和赋值下给出每一个表达的外延.如对 ∥ α ∥ M , w , g \|\alpha\|^{{M},w,g} ∥α∥M,w,g的解释是在 M M M, w w w,和 g g g下的, α \alpha α的语义值(外延的);解释函数 I I I给每个常元赋予一个内涵,即一个从可能世界到外延的函数;而把这个表示内涵的函数应用到一个可能世界 w w w上,则得出了相应的外延.
语法规则.2:(逻辑连接词和算子在公式上的应用,这个同PC类似):
如果 φ , ψ M E t \varphi,\psi {ME}_{t} φ,ψMEt,且 u u u任一类型的变元,那么 ¬ φ , φ & ψ , φ ∨ ψ , φ → ψ , φ ↔ ψ \neg \varphi,\varphi \& \psi,\varphi \vee \psi,\varphi \rightarrow \psi,\varphi \leftrightarrow \psi ¬φ,φ&ψ,φ∨ψ,φ→ψ,φ↔ψ(也写作 φ ≡ ψ \varphi \equiv \psi φ≡ψ), ∃ u φ , ∀ u φ , □ φ , PAST φ ∈ M E t \exists u \varphi, \forall u \varphi, \square \varphi, \operatorname{PAST} \varphi \in {ME}_{t} ∃uφ,∀uφ,□φ,PASTφ∈MEt;
语义规则.2:
a)
¬
φ
,
φ
&
ψ
,
φ
∨
ψ
,
φ
→
ψ
,
φ
↔
ψ
\neg \varphi, \varphi \& \psi, \varphi \vee \psi,\varphi \rightarrow \psi,\varphi \leftrightarrow \psi
¬φ,φ&ψ,φ∨ψ,φ→ψ,φ↔ψ,
∃
u
φ
,
∀
u
φ
\exists u \varphi, \forall u \varphi
∃uφ,∀uφ同谓词演算一样;
b)
∥
□
φ
∥
M
,
w
,
g
=
1
\|\square \varphi\|^{{M}, w, g}=1
∥□φ∥M,w,g=1当且仅当对所有的
w
′
∈
W
w^{\prime} \in {W}
w′∈W,有
∥
φ
∥
M
,
w
′
,
g
=
1
\|\varphi\|^{{M}, w^{\prime}, g}=1
∥φ∥M,w′,g=1;
c)
∥
\|
∥ PAST
φ
∥
M
,
w
,
g
=
1
\varphi \|^{{M}, w, g}=1
φ∥M,w,g=1当且仅当存在
w
′
≤
w
w^{\prime} \leq w
w′≤w使得
∥
φ
∥
M
,
w
′
,
g
=
1
\|\varphi\|^{{M}, w^{\prime}, g}=1
∥φ∥M,w′,g=1;
语法规则.3:(=):如果 α , β ∈ M E a \alpha, \beta \in {ME}_{a} α,β∈MEa,那么 α = β ∈ M E t \alpha=\beta \in {ME}_{t} α=β∈MEt;
语义规则.3: ∥ α = β ∥ M , w , g = 1 \|\alpha=\beta\|^{{M}, w, g}=1 ∥α=β∥M,w,g=1当且仅当 ∥ α ∥ M , w , g = ∥ β ∥ M , w , g \|\alpha\|^{{M}, w, g}=\|\beta\|^{{M}, w, g} ∥α∥M,w,g=∥β∥M,w,g;
下面这两对规则即4和5是针对"up"和"down"算子的,它们对于内涵的理解是非常关键的,简单说明一下;因为这里不打算深入讨论内涵和外延的区分;
从内涵得到外延的规则
语法规则.4(“uр”-operator):如果
α
∈
M
E
a
\alpha \in {ME}_{a}
α∈MEa,那么
[
∧
α
]
∈
M
E
<
s
,
a
>
[{}^{\wedge}\alpha] \in {ME}_{<s, a>}
[∧α]∈ME<s,a>;
语义规则.4:KaTeX parse error: Expected '}', got 'EOF' at end of input: …pha]\|^{{M,w,g}是类型
<
s
,
a
>
<s, a>
<s,a>的一个函数
h
h
h使得任何
w
′
∈
W
w^{\prime} \in {W}
w′∈W,有
h
(
w
′
)
=
∥
α
∥
M
,
w
′
,
g
h(w^{\prime})=\|\alpha\|^{{M}, w^{\prime}, g}
h(w′)=∥α∥M,w′,g;
从外延得到内涵的规则
语法规则.5(“down”-operator):如果
α
∈
M
E
⟨
s
,
a
>
\alpha \in {ME}_{\langle s,a>}
α∈ME⟨s,a>,那么
[
∨
α
]
∈
M
E
a
\left[{ }^{\vee} \alpha\right] \in {ME}_{a}
[∨α]∈MEa;
语义规则.5:
∥
[
∨
α
]
∥
M
,
w
,
g
\|[{ }^{\vee} \alpha]\|^{{M},w,g}
∥[∨α]∥M,w,g是
∥
α
∥
M
,
w
,
g
(
w
)
\|\alpha\|^{{M},w,g}(w)
∥α∥M,w,g(w);
函数变元应用规则(Function-argument application)
语法规则.6:如果
α
∈
M
E
<
a
,
b
>
\alpha \in {ME}_{<a, b>}
α∈ME<a,b>且
β
∈
M
E
a
\beta \in {ME}_{a}
β∈MEa,那么
α
(
β
)
∈
M
E
b
\alpha(\beta) \in {ME}_{b}
α(β)∈MEb;
语义规则.6:
∥
α
(
β
)
∥
M
,
w
,
g
=
∥
α
∥
M
,
w
,
g
(
∥
β
∥
M
,
w
,
g
)
\|\alpha(\beta)\|^{{M}, w, g}=\|\alpha\|^{{M}, w, g}(\|\beta\|^{{M}, w, g})
∥α(β)∥M,w,g=∥α∥M,w,g(∥β∥M,w,g);
Lambda-抽象规则(Lambda-abstraction)
语法规则.7: 如果
α
∈
M
E
a
\alpha \in {ME}_{a}
α∈MEa且
u
u
u是类型
b
b
b的一个自由变元,那么
λ
u
[
α
]
∈
M
E
<
b
,
a
>
\lambda u[\alpha] \in {ME}_{<b, a>}
λu[α]∈ME<b,a>;
语义规则.7:
∥
λ
u
[
α
]
∥
M
,
w
,
g
\|\lambda u[\alpha]\|^{{M}, w, g}
∥λu[α]∥M,w,g是类型
b
→
a
b \rightarrow a
b→a的一个函数
f
f
f使得类型
b
b
b的任一对象
d
d
d,有
f
(
d
)
=
∥
α
∥
M
,
w
,
g
[
d
/
u
]
f({~d})=\|\alpha\|^{{M}, w, g[{~d} / u]}
f( d)=∥α∥M,w,g[ d/u];
简单的 λ \lambda λ-抽象规则是应用在个体上的.相比较而言,这里的 λ \lambda λ-抽象规则是应用在类型上的,而且可以是任意复杂度的类型,这大大地增强了用 λ \lambda λ-算子构造复杂的谓词的能力.事实上,我们可以看出, λ \lambda λ-表达式在某种程度上就是一个函数,如 λ v [ α ] \lambda v[\alpha] λv[α]就是一个函数,其变元是 v , {v}, v,而其函数值就是通过 v {v} v的值而具体化的 α \alpha α表达式;
例如: λ x [ x 2 + 1 ] \lambda x\left[x^{2}+1\right] λx[x2+1]表示函数 x → x 2 + 1 x \rightarrow x^{2}+1 x→x2+1;
例如:函数变元应用(Function-argument application): λ x [ x 2 + 1 ] ( 5 ) = 26 \lambda x\left[x^{2}+1\right](5)=26 λx[x2+1](5)=26;
与其它函数符号不同的是, λ \lambda λ-表达式给出了函数的具体名称,而不仅是某个符号,如 f , g f, g f,g;就 λ \lambda λ-转换而言,其规则同简单 λ \lambda λ-演算中的规则是一样的;
参考文献
[1] Chierchia, Gennaro, and McConnell-Ginet, Sally.2000. Meaning and Grammar: An Introduction to Semantics. Cambridge: MIT Press.
[2] Lambda-演算在形式语义学的中应用I.傅庆芳.
[3] Partee, Barbara H.
2007.
2007 .
2007. Formal Semantics and Current Problems of Semantics.