用一阶逻辑编码“约翰想咬萨拉”
Posted
技术标签:
【中文标题】用一阶逻辑编码“约翰想咬萨拉”【英文标题】:encoding "John wants to bite Sara" in first order logic 【发布时间】:2016-02-09 13:44:03 【问题描述】:我试图弄清楚你将如何将“[agent A]想要[动词] to [agent B]”编码为一阶逻辑(例如“John想要咬 Sara”)。
将“约翰咬萨拉”编码为 FOL 将是:bites(John, Sara)
或者如果您喜欢 John(x) ^ Sara(y) ^ bites(x,y)
。
另外,我注意到这种关系可能是递归的。例如:
“约翰想要咬萨拉”(约翰想要有咬萨拉的欲望)
“John 想要咬 Sara”(John 想要处于想要咬 Sara 的状态)。
有谁知道我该如何处理,尤其是“约翰想咬萨拉”这句话。
【问题讨论】:
【参考方案1】:棘手!
让我们首先让句子的结构更清晰:“约翰想要他咬萨拉”。 “他”当然是指约翰,所以我们可以简化为:
“约翰想让约翰咬萨拉”现在我们可以像以前一样尝试使用谓词来表述这一点:
想要(约翰,“约翰咬萨拉”)但是第二个参数将是一个句子,而不是一个表示某些对象的术语,例如“John”或“Sara”。事实证明,您的句子不能仅使用 FOL 中的谓词来形式化,因为“想要那个”不是个体之间的关系(如“bites(x,y)”),而是个体(约翰)和句子之间的关系/proposition(“约翰咬了萨拉”)。
“John想要A
”是一个句子运算符:它需要一些句子A
并用它形成一个新句子。取句子并生成新句子的运算符的其他示例是“A
and B
”、“ìf A
, then B
”、“not A
”或“有必要A
”。
因此,“John 希望 A
”与 FOL 中的逻辑运算符“处于同一级别”。如果我们想将“x
想要A
”形式的句子形式化,我们需要通过添加一个额外的运算符来扩展逻辑(对于每个x
)。这需要向内涵语义(例如可能世界语义)迈出一步,因为“x
”的含义不能单独使用真值表来指定(如“不是A
”或“@ 987654338@ 和 B
")。
Epistemic logic (click) 是命题逻辑,由表示“x
”和“x
知道 A
”。
【讨论】:
以上是关于用一阶逻辑编码“约翰想咬萨拉”的主要内容,如果未能解决你的问题,请参考以下文章