【问题标题】:Making OWL data and object properties sub-properties of the same property使 OWL 数据和对象属性成为同一属性的子属性
【发布时间】:2016-02-15 22:54:20
【问题描述】:

假设我有课程:

> Element
> ElementProperty

elementProperty 的子类为:

> AtomicNumber
> AtomicMass

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

> hasElementProperty
  Domain:Element
  Range:ElementProperty

其中hasElementProperty 具有以下子属性:

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

因此,当我说:Lithium :hasAtomicNumber :3 时,将推断出三元组:Lithium :hasElementProperty :3,其中:3AtomicNumber 类的一个实例。

好的,现在考虑我有数据属性hasElementName 的情况,并且我也想要它,以便当我有三重:Lithium :hasElementName "Lithium" 时,推断出三重:Lithium :hasElementProperty "Lithium"。这对于我现在设置的方式是不可能的,因为hasElementName 是一个数据属性,因此不能是对象属性hasElementProperty 的子属性。 我曾尝试成功使用文字具体化(参见Literal Reification),但我觉得可能有更好的方法来做到这一点,因为文字具体化的目的是让人们可以使用文字作为对象,而这不是我需要做的。 任何想法将不胜感激。

谢谢

【问题讨论】:

  • 你为什么想要/需要拥有这个通用的“hasElementProperty”属性?
  • 这个设置只是为了描述问题。

标签: rdf owl protege triplestore triples


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-09
    • 2012-07-26
    • 2018-11-03
    • 1970-01-01
    • 2015-12-10
    • 1970-01-01
    • 2016-11-07
    相关资源
    最近更新 更多