我试图弄清楚你将如何编码" [代理人A]想要[动词]到[代理人B]"作为一阶逻辑(例如" John想要咬Sara")。
编码" John咬Sara"如FOL那样:bites(John, Sara)
或者如果你喜欢John(x) ^ Sara(y) ^ bites(x,y)
。
另外,我注意到的是这种关系可能是递归的。例如:
"约翰想要咬Sara" (约翰想要咬萨拉)
"约翰想要咬Sara" (约翰想要进入这个状态,以至于他想要咬Sara)。
有谁知道我怎么能处理这个问题,尤其是句子" John想要咬Sara"。
答案 0 :(得分:2)
棘手!
让我们首先让句子的结构更清晰:“约翰希望他咬萨拉”。 “他”当然是指约翰,所以我们可以简化为:
现在我们可以尝试使用谓词来制定它,如前所述:
但是第二个参数将是句子,而不是表示某些对象的术语,如“John”或“Sara”。事实证明,你的句子不能仅使用FOL中的谓词来形式化,因为“想要”不是个体之间的关系(如“咬(x,y)”),而是个人(约翰)和句子之间的关系/命题(“John咬Sara”)。
“John希望A
”是一个句子:它需要一些句子A
并用它形成一个新句子。采用句子和创建新句子的运算符的其他示例是“A
和B
”,“ff A
,然后是B
”,“不是A
” ,或“有必要A
”。
所以“John希望A
”与FOL中的逻辑运算符“在同一级别”。如果我们想要形式化“x
想要A
”形式的句子,我们需要通过添加一个额外的运算符(对于每个x
)来扩展逻辑。这需要一个强化语义的步骤(例如,可能的世界语义),因为“x
的含义要求A
”不能单独使用真值表来指定(如“{{1} “}或”A
和A
“)。
Epistemic logic(click)是命题逻辑,由句子操作员B
,B_x(A)
扩展,代表“K_x(A)
相信 x
“和”A
知道 x
“。