2017-04-12 67 views
1

我一直在閱讀有關將自然語言句子轉換爲一階邏輯的內容,我很好奇邏輯推理如何在一階邏輯中表達。一階邏輯推理

我想知道如何將'事件A發生在事件B'這樣的句子轉換爲一階邏輯。

這樣的句子我能想到的的一個實例是:

X is evil; Because X is evil, X kills Y. 

如何在上述的句子在第一階邏輯表示?

我想到了解決的辦法是:

Evil(X) -> Kills(X, Y) 

但是我不知道這是否是正確與否,因爲我無法找到類似的句子在線的例子。如果這是錯誤的,爲什麼它是錯的,我該如何糾正它?

+0

對於做這種事情的工具 - 參見Jerry Hobbs的轉換器(http://www.isi.edu/%7Ehobbs/LFToolkit/index.html)和Johan Bos C&C工具(http://www.let .rug.nl/bos/meaningfactory /) – user3639557

+0

發生在事件B之前的事件A可以解釋爲知道事件B會告訴你事件A已經發生。因此B實施A. – user3639557

回答

0

我相信這樣的連接如「因爲」是有問題的,因爲它不符合「邏輯連接」標準。你無法驗證推理髮生的條件。 「因爲跑得快,我跌倒了」。 你無法驗證我因爲跑得快而摔倒。有人可能推動了我,或者我偶然發現了一個道路上的物體​​。這意味着你需要一些額外的信息,關於事件的更多細節,而一階邏輯不處理這些。它只處理邏輯連接詞,這些連接詞不需要關於事件的進一步信息以驗證或抵觸命題。