一阶逻辑中的编码"John wants to bite Sara"



我正试图弄清楚如何将"[agent A]want to[verb]to[agent B]"编码为一阶逻辑(例如"John want to bite Sara")。

将"John bites Sara"编码为FOL应该是:bites(John, Sara)或者如果你喜欢John(x) ^ Sara(y) ^ bites(x,y)

此外,我注意到这种关系可能是递归的。例如:

  • "约翰想咬萨拉"(约翰想有咬萨拉的欲望)

  • "约翰想咬萨拉"(约翰想处于这样的状态,他想咬萨拉)。

有人知道我该怎么处理吗,尤其是"约翰想咬萨拉"这句话。

小把戏!

让我们先把句子的结构弄清楚:"约翰想咬萨拉"。"他"当然指的是约翰,所以我们可以简化为:

  • "约翰想让约翰咬萨拉"

现在,我们可以尝试使用谓词来表达这一点,就像以前一样:

  • 想要(约翰,"约翰咬萨拉")

但第二个论点将是一个句子,而不是一个表示"John"或"Sara"之类对象的术语。事实证明,你的句子不能只使用FOL中的谓词来形式化,因为"wants that"不是个体之间的关系(比如"bites(x,y)"),而是个体(John)和句子/命题之间的关系。

"John希望A"是一个句子运算符:它取一些句子A并与之形成一个新句子。取句子并形成新句子的运算符的其他例子有"AB"、"ìf A,然后是B"、"不是A"或"A是必要的"。

因此,"John希望A"与FOL中的逻辑运算符"处于同一级别"。如果我们想形式化"x想要A"形式的句子,我们需要通过添加一个额外的运算符(对于每个x)来扩展逻辑。这需要向内涵语义(例如可能的世界语义)迈出一步,因为"x希望A"的含义不能单独使用真值表来指定(就像"非A"或"AB"一样)。

例如,认知逻辑(点击)是命题逻辑,由表示"x相信A"one_answers"x知道A"的句子运算符B_x(A)K_x(A)扩展。

相关内容

  • 没有找到相关文章

最新更新