从 OWL "or" class 表达式中获取具有代表性的 classes

Get representative classes from an OWL "or" class expression

我有 3 个 classes:ReptileMammalCat,其中 Cat 是 [=] 的子 class 15=].

我有一个 "or" class 表达式:

Reptile or Mammal or Cat

我如何用推理机推断出任何给定 "or" class 表达式的最具代表性的 classes?就像在这种情况下,它们是 ReptileMammal.

看来 getDirectSubclasses(yourOrExpression) 给了你正在寻找的答案。

另一种方法:给定一个析取,生成所有比原始元素少一个的析取,并检查它们是否等价。如果为真,则被删除的元素是 'redundant' - 析取中另一个 class 的子 class,或者包含在两个或多个元素的析取中(因此被另一个元素覆盖)元素)。

这同样适用于连词。

您可以重复该过程 - 如果不能删除任何元素而不会使新表达式不等同于旧表达式,它将终止。