为什么 Pellet 推断出一个具有无限 "Entailment" 理由的不一致 "Nothing" 子类?

Why has Pellet inferred an inconsistant "Nothing" subclass with infinite "Entailment" justifications?

我正在使用 Protégé 4.0 和 Pellet 2.2 学习 OWL 2.0,我正在尝试逐步理解基本概念。

因此,从 class 层次结构开始,我制作了一个 class "Cat" 作为 SubClassOf "Things"。

如果我启动 Pellet,一切正常,但如果我进行 DL 查询 "Cat",我有 Directsubclasses "Nothing" 和 Subclasses "Nothing" 显示为红色。

理由如下:

Explanation for: Nothing SubClassOf Cat
<Entailment1252345325436>SubClassOf Nothing and (not (Cat))

谢谢^_^!

Nothing是空的class,有时写成⊥在 DL 符号中。在大多数情况下,如果您有一个 等价于 Nothing 的 class,这是一个建模错误。例如,如果您不小心定义了

Car EquivalentClass (hasDoors exactly 2)
Car EquivalentClass(正好有 4 个门)

您会发现 Car 现在等同于 Nothing,因为某物不能恰好有 2 扇门和恰好 4 扇门。那是一起 事故 。它在逻辑上没有任何错误,但通常你不希望你的class必然是空的。因此,Protege 显示红色的 classes 必然是空的。

当然,空class、Nothing每个[=的子class 41=],就像空集是每一个集合的子集一样,必然是空的

所以,您所看到的实际上没有任何问题。 Nothing 应该是红色的,它应该是每个 class 的子class。一切都在按应有的方式运行。