1.Introduction
所謂的形式語義學( Formal Semantics ), 是在研究, 如何把自然語言用邏輯形式來表達
例如以下句子
傳統上, 用一皆邏輯 First Order Logic 可以把這個句子表示成這樣
其中, butter 這個邏輯式的predicate, 而 John 和 toast 分別是argument, 這個邏輯式表示了 John 和 toast 的關係,
當這句話為真的時候,
如果現在句子是這樣, 有個介繫詞片語修飾, 例如:
則可以把 的一階邏輯式,再加入一個論元 (argument) 擴充成這樣
但這方法有個缺點, 就是無法推論 這個邏輯式是否蘊含
而事實上, 這句話蘊含 , 是成立的
照理說, 邏輯式要可以表達這些自然語言中的蘊含關係
因此就要想出一個邏輯表達方法, 也可以讓這些蘊含推論成立
2.Davidsonian event semantics
Davidson 在 1969 年提出了 event 的概念
what adverbial clauses modify is not verbs but the events that certain verbs introduce. Davidson (1969/1980: 167)
意思就是, 修飾動詞的修飾語, 其實是在修飾這個動詞引出的事件
例如, 針對句子 , 可以把動詞 butter 引出的事件定為 , 並加到 中 butter的argument,如下:
其中, 式子前面的 表示, 當這個式子成立的時候, 存在 這樣一個事件
然後, 句子 的邏輯式也可以用 event 的概念擴充, 可以把修飾語 with a knife 替換成 , 表示執行這個 event 的 instrument 為 knife , 如下:
來檢查一下邏輯式 是否蘊含
以上蘊含成立
除此之外, 一個動詞可能同時被很多個介繫詞片與修飾, 例如以下句子
不但蘊含 也蘊含
這種句子如果用沒有引入 event 的概念, 用 的傳統邏輯式子, 問題就更大了
這樣的話, 我們就要定義 butter 可以接收很多個argument, 且要定好哪個位置是填給哪一種修飾語用的, 當然, 蘊含 的推論也不成立
用 event 的概念就簡單很多了, 不用修改到 butter 的argument, 只要把修飾語轉換成修飾 的predicate, 並和 butter 做conjunction, 就可以了, 如下
而且 蘊含 也蘊含
3.Implementation
來載入模組, 實作看看
1 2 3 |
|
用前面提到的句子和邏輯式子來做練習
把 , , , 這三句話的邏輯式 , , 分別輸入到LogicParser, 如下:
1 2 3 |
|
接著來看看句子 和 的蘊含關係
用 Prover9()
來證明, 我們把未知值的句子放在第一個argument , 已知為真的句子放在第二個argument中
例如, 想要證明當 為真時, 是否為真, 輸入方法如下:
1 2 |
|
結果顯示, 當 為真, 必為真, 表示 蘊含
把 和 對調
1 2 |
|
結果顯示, 蘊含 不成立
然後來看看 和 以及 的蘊含關係
1 2 3 4 5 |
|
結果顯示, 蘊含 也蘊含
4. Reference
本文參考至以下這本語意學書籍
Semantics: An International Handbook of Natural Language Meaning