考虑以下SomeClass实例:

 instances:some_thing1
                a semapi:SomeClass ;
                semapi:hasChainTo (
                      [ ... ] [ ... ] [ ... ]
                ) .

我需要每个实例(some_thing2some_thing3等),使其hasChainTo属性指向相同的空白节点列表(因为它只有一个副本)。我需要维护空白节点语法列表,因为链变得很深,并且此语法对于写出每个链(对于SomeClass2SomeClass3等)非常流畅。

如果仅从中创建基类和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等语言的继承中获得的代码重用没有直接等效的方法。

10-04 18:16