用一阶逻辑编码“约翰想咬萨拉”

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”。

【讨论】:

以上是关于用一阶逻辑编码“约翰想咬萨拉”的主要内容,如果未能解决你的问题,请参考以下文章

使用一阶逻辑描述电影(实体和属性)

神经网络学习之栈式自编码器

java中GBK编码格式转成UTF8,用一段方法实现怎么做

SMT 求解器的局限性

MVC

chap4组合逻辑电路