考虑以下 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 等语言中,从继承中获得的代码重用没有直接等价物。
关于rdf - 确保多个主题指向相同的空白节点列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17337354/