早上好, 我想了解如何使用一阶逻辑来描述某些内容。
例如,我想描述一部电影(实体)是什么,以及电影的属性(例如演员:克鲁尼)是什么。如何使用一阶逻辑来描述?
*******更新********
我需要在第一个逻辑顺序中解释:
ENTITY :可以使用一组属性或属性描述的元素,抽象或对象。所以我认为我必须说实体有一组具有各自值的属性。实体描述元素,抽象或对象。
属性:属性始终有值,并且始终与实体关联。它描述了实体的特定功能/属性。
文档:纯文本说明(纯文本不包含任何html标记)。每个文档只通过其属性描述一个实体。
答案 0 :(得分:3)
要声明对象具有某个属性,您将使用单个位置谓词。例如,要声明x
是一部电影,你可以写Film(x)
。如果要将某个值归属于对象,则可以使用两个(或更多)位置谓词。用你的例子你可以说克鲁尼出演了一部电影Starred(clooney, x)
。
人们使用某些惯例。例如,谓词以大写字母(Actor
,Film
,FatherOf
)开头,常量以小写字母开头(x
,clooney
,{{ 1}})。常量表示对象,谓词表示对象。对于具有多个参数的谓词,第一个参数通常是您正在声明的主题。这样你就可以自然地将逻辑公式读作普通语言的句子。例如,batman
读为" x是y" 的父亲。
回答更新:
我不确定你是否可以在一阶逻辑中做到这一点。您可以将FatherOf(x, y)
描述为具有某些属性的内容,例如
Entity
对于\forall x (Entity(x) ==> Object(x) | Element(x) | Abstraction(x))
来说,这有点困难。在第一顺序逻辑中,属性将某些质量归于对象或将其与另一对象相关联。您可以使用三位谓词,如下所示:
Attribute
关于文件,这只是这些陈述的结合。例如,George Clooney的描述如下:
\forall attribute (\exists object (\exists value (Has(object, attribute, value))))