考虑以下SomeClass
实例:
instances:some_thing1
a semapi:SomeClass ;
semapi:hasChainTo (
[ ... ] [ ... ] [ ... ]
) .
我需要每个实例(
some_thing2
,some_thing3
等),使其hasChainTo
属性指向相同的空白节点列表(因为它只有一个副本)。我需要维护空白节点语法列表,因为链变得很深,并且此语法对于写出每个链(对于SomeClass2
,SomeClass3
等)非常流畅。如果仅从中创建基类和subClassOf,
hasChainTo
属性将继承,但不会继承其指向的对象。从直觉上讲这很有意义,但是我需要其他行为。如何做到这一点?
最佳答案
如果要从图中的多个节点引用同一事物,则应给它提供URI。它不必是完整的http:
URI-您可以使用UUID:
instances:some_thing_1
semapi:hasChainTo <urn:uuid:12345>.
instances:some_thing_2
semapi:hasChainTo <urn:uuid:12345>.
instances:some_thing_3
semapi:hasChainTo <urn:uuid:12345>.
<urn:uuid:12345>
semapi:chain (
[ .. ] [ .. ] [ .. ]
).
不要将RDFS/OWL子类与面向对象语言中的状态和行为继承相混淆。 RDFS中的类层次结构用于对节点进行分类-即将它们分配给一个类,其中,类是一组资源。从Java等语言的继承中获得的代码重用没有直接等效的方法。