有一些 CheeseTopping
hasTopping some VegetableTopping
这些表达式的交集并不矛盾。一个人可以有多个浇头。例如,披萨可以有一种奶酪配料,也可以有一种蔬菜配料。那么它将是这两种类型的一个实例,因此也是它们交集的一个实例。
(某些 Class1 的属性)和(某些 Class2 的属性)
不等于
(属性一些(Class1 和 Class2))
这可以从另一个例子中看出(如果以上还不够的话)。
人类 ⊑ ∃ hasBodyPart.Ear
人类⊑ ∃ hasBodyPart.Hand
每个人(模数伤害、出生缺陷等)至少有一只耳朵和至少一只手。这并不意味着手就是耳朵,或者耳朵就是手。
所以,回顾一下,你是对的
∀p.C ⊓ ∀p.D ≡ ∀p.(C ⊓D)
但通常情况并非如此
∃p.C ⊓ ∃p.D ≡ ∃p.(C ⊓D)
但是,如果某个东西的值既是 C 又是 D,那么它的值是 C,值是 D,所以我们确实有这种子类关系:
∃p.(C ⊓D) ⊑ ∃p.C ⊓ ∃p.D
作为另一个例子,考虑不相交的类 Mother 和 Father。类表达式
(有一些妈妈)
是一类有母亲的事物。类表达式
(有一些父亲)
是有父类的事物。显然有一个非空的交叉点,因为有些东西既有父亲又有母亲。交集表达式是通过将这些表达式与 and 连接得到的:
(hasParent 一些母亲)和(hasParent 一些父亲)
这是不同的,不等同于类表达式:
(hasParent some (Mother and Father))
所有描述逻辑操作实际上只是逻辑和集合论的一种方便语法。类表达式 (p only C),或在 DL 表示法中,∀ p.C,表示仅通过属性 p 与 C 的元素相关的个体集合,即
(p only C) ≡ {x : ∀y [p(x,y) → y∈ C]}
类似地,(p some C) 是通过属性 p 与 C 的某个元素相关的个体集合。即,
(p some C) ≡ {x : ∃y [p(x,y) ∧ y &in C]}
现在您可以考虑交叉点。
(仅 p C)和(仅 p D)
≡ {x : ∀y [p(x,y) → y∈ C]} ∩ {x : ∀y [p(x,y) → y∈ D]}
≡ {x : ∀y [p(x,y) → y∈ C] &楔; ∀y [p(x,y) → y∈ D]}
≡ {x : ∀y [p(x,y) → (y ∈ C ∧ y ∈ D)]}
≡ {x : ∀y [p(x,y) → y∈ (C ∩ D)]}
≡ (p only (C ⊓ D))
但是,存在限制的减少并没有完全相同:
(p 一些 C) 和 (p 一些 D)
≡ {x : ∃y [p(x,y) &wegde; y∈ C]} ∩ {x : ∃y [p(x,y) &wegde; y∈ C]}
你不能进一步减少这个,因为第一个存在中的 y 不一定等于第二个中的 y。