par*_*ent 5 rdf n3 turtle-rdf blank-nodes
考虑以下实例SomeClass:
instances:some_thing1
a semapi:SomeClass ;
semapi:hasChainTo (
[ ... ] [ ... ] [ ... ]
) .
Run Code Online (Sandbox Code Playgroud)
我需要每个实例(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 (
[ .. ] [ .. ] [ .. ]
).
Run Code Online (Sandbox Code Playgroud)
不要将RDFS/OWL子类与面向对象语言中的状态和行为继承混淆.RDFS中的类层次结构用于对节点进行分类 - 即将它们分配给类,其中类是一组资源.没有直接等同于您在Java等语言中从继承中获得的代码重用.