1

假设我有课程:

> Element
> ElementProperty

与存在的子类elementProperty

> AtomicNumber
> AtomicMass

还要考虑以下对象属性及其域和范围:

> hasElementProperty
  Domain:Element
  Range:ElementProperty

WherehasElementProperty具有以下子属性:

> hasAtomicNumber
  Domain:Element
  Range:AtomicNumber
> hasAtomicMass
  Domain:Element
  Range:AtomicMass

因此,当我说:Lithium :hasAtomicNumber :3三元组:Lithium :hasElementProperty :3将被推断出来时,该类:3的实例在哪里。AtomicNumber

好的,现在考虑一下我有 data 属性hasElementName并且我也想要它的情况,这样当我有三元组时,就会推断出三元:Lithium :hasElementName "Lithium"组。:Lithium :hasElementProperty "Lithium"这对于我现在设置它的方式是不可能的,因为它hasElementName是一个 data 属性,因此不能是 object property 的子属性hasElementProperty。我已经尝试成功地使用文字具体化(请参阅文字具体化),但我觉得可能有更好的方法来做到这一点,因为文字具体化的目的是让人们可以使用文字作为对象,而这不是我需要做的。任何想法将不胜感激。

谢谢

4

1 回答 1

3

这在 OWL 2 DL 中是不可能的,只有在 OWL 2 FULL 中才能实现——这意味着推理器和工具可能会抱怨你的本体,或者你可能会得到意想不到的结果。

如果您的应用程序需要收集同一属性下的所有值,我会继续使用文字具体化 - 似乎是实现所需结果的最简单方法。

于 2016-02-16T07:27:13.230 回答