1

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

因此,从类层次结构开始,我将一个类“Cat”作为 SubClassOf “Things”。

如果我启动 Pellet,一切正常,但如果我 DL 查询“Cat”,我的 Directsubclasses“Nothing”和 Subclasses“Nothing”以红色显示。

  • 这是什么意思?
  • 为什么是红色的?

理由如下:

Explanation for: Nothing SubClassOf Cat
<Entailment1252345325436>SubClassOf Nothing and (not (Cat))
  • 这是什么意思?
  • 为什么会有无穷无尽的这些“蕴含”理由(我的意思是我只创建了一个类)。
  • 是否有我犯的错误我必须纠正以避免这种现象?还是我应该不在乎?

谢谢你^_^!

4

1 回答 1

2

Nothing 是空类,有时用 DL 表示法写成 ⊥。在大多数情况下,如果你有一个等价Nothing的类,那就是建模错误。例如,如果你不小心定义了

Car EquivalentClass (hasDoors 正好 2)
Car EquivalentClass (hasDoors 正好 4)

您会发现 Car 现在等同于Nothing,因为某物不能正好有 2 扇门和 4 扇门。那是个意外。它在逻辑上没有什么不正确的,但通常你不希望你的类一定是空的。因此,Protege 必须以红色显示空类。

当然,空类Nothing是每个类子类,就像空集是每个集合的子集一样,它必然是空的。

所以,你所看到的实际上并没有错。 什么都不应该是红色的,它应该是每个类的子类。一切都在按应有的方式工作。

于 2015-12-30T14:33:50.130 回答