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

风流意气都作罢 提交于 2019-12-13 00:54:28

问题


I'm learning OWL 2.0 using Protégé 4.0 and Pellet 2.2, and I'm trying to understand underlying concepts progressively.

So, starting with class hierarchies, I made one class "Cat" as a SubClassOf "Things".

If I start Pellet, everything works fine, but if I DL query "Cat", I have Directsubclasses "Nothing" and Subclasses "Nothing" appearing in red.

  • What does it mean?
  • Why is it red?

Justifications are like :

Explanation for: Nothing SubClassOf Cat
<Entailment1252345325436>SubClassOf Nothing and (not (Cat))
  • What does it mean?
  • Why are there like an infinity of these "Entailment" justifications (I mean I only created 1 class).
  • Is there an error I made I have to correct to avoid this phenomenon? Or should I just don't care about it?

Thank you ^_^!


回答1:


Nothing is the empty class, sometimes written as &bottom; in DL notation. In most cases, if you have a class that's equivalent to Nothing, it's a modeling error. E.g., if you accidentally define

Car EquivalentClass (hasDoors exactly 2)
Car EquivalentClass (hasDoors exactly 4)

you'll find that Car is now equivalent to Nothing because something can't have exactly 2 and exactly 4 doors. That's an accident. There's nothing logically incorrect with it, but usually you don't want your classes to necessarily be empty. So, Protege shows necessarily empty classes in red.

Of course, the empty class, Nothing, is a subclass of every class, just like the empty set is a subset of every set, and it's necessarily empty.

So, there's actually nothing wrong with what you're seeing. Nothing should be red, and it should be a subclass of every class. Everything is working the way that it should.



来源:https://stackoverflow.com/questions/34530994/why-has-pellet-inferred-an-inconsistant-nothing-subclass-with-infinite-entail

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!