Protege multiple equivalentTo 公理与公理并集

Protege multiple equivalentTo axioms vs union of axioms

我试图理解使用多个 equivalentTo 公理和使用这些公理的并集(即析取)之间的区别。我用这个结构设置了一个玩具ontology: Class_A - Class_A.1 Class_B Class_C Class_D - Class_D.1 有一个名为 has_part.

的对象 属性

Class_A.1 是使用等价公理定义的: EquivalentTo (Class_A and (has_part some Class_B)) or (Class_A and (has_part some Class_C))

Class_D1 使用两个等价公理定义: EquivalentTo Class_D and (has_part some Class_B) EquivalentTo Class_D and (has_part some Class_C)

我使用 HermiT 1.3.8.413 执行 DL 查询 has_part some Class_B。 这个 returns 子类 Class_D.1,这是有道理的。

但是,我不明白为什么Class_A.1没有返回。我想因为 Class_A.1 的等价公理是一个析取,它被包含在 has_part some Class_B 析取中。

让我试试一个更简单的例子。我们不一定需要引入对象属性来说明这个概念。我们可以用任意命名的 class 替换 'has_part some X' 而不改变蕴含,因为我们没有说任何关于 X 的事情。同样为了你的例子的目的,我们可以省略 'A' 在交集元素列表中。

代替你的 A.1,让我们试试:

Prokaryote EquivalentTo Bacteria OR Archaea

选择一个我知道你很熟悉的生物学例子,但对于其他人来说,细菌、古细菌和真核生物是生命的 3 个领域。术语 "prokaryote" 指的是人工但有时有用的细菌和古细菌分组。

好的,现在我们尝试 DL 查询 "Bacteria"。这并不是 return 原核生物作为亚class,因为我们知道实际上原核生物是细菌的 超级class

希望映射到这个具体示例有助于理解基本的直觉。我个人发现 UnionOf 可以奇怪地 counter-intuitive 抽象示例,但当替换为具体示例时,它会更明显。

对于更正式的说明,我认为回应 ASKW 的评论就足够了,即等价性需要相互 subClassOf,但没有 A subClassOf B or C 需要 A subClassOf B 的蕴涵。希望这有帮助。