【发布时间】: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,其中:3 是AtomicNumber 类的一个实例。
好的,现在考虑我有数据属性hasElementName 的情况,并且我也想要它,以便当我有三重:Lithium :hasElementName "Lithium" 时,推断出三重:Lithium :hasElementProperty "Lithium"。这对于我现在设置的方式是不可能的,因为hasElementName 是一个数据属性,因此不能是对象属性hasElementProperty 的子属性。
我曾尝试成功使用文字具体化(参见Literal Reification),但我觉得可能有更好的方法来做到这一点,因为文字具体化的目的是让人们可以使用文字作为对象,而这不是我需要做的。
任何想法将不胜感激。
谢谢
【问题讨论】:
-
你为什么想要/需要拥有这个通用的“hasElementProperty”属性?
-
这个设置只是为了描述问题。
标签: rdf owl protege triplestore triples