繁体   English   中英

Turtle RDF中的匿名节点之间是否有定义循环引用的语法?

[英]Is there a syntax to define cyclic reference between anonymous nodes in Turtle RDF?

我正在寻找一种乌龟语法,用于调用匿名节点并调用另一个匿名节点。

例如,我要重现此代码:

:Instance0 a Class0;
    :property0 :Instance1.

:Instance1 a Class1;
    :property1 :Instance2.

:Instance2 a Class2;
    :property2 :Instance1.

与类似:

:Instance0 a Class0;
    :property0 [
        a Class1;
        :property1 [
            a Class2;
            :property2 [
                ## The syntax to call the parent, the instance of :Class1
            ];
        ];
    ].

为此有任何乌龟语法吗?

RDF的数据模型是基于图的,而不是分层的,因此资源之间没有父/子关系的概念,因此在嵌套带有[]构造的匿名资源描述时,没有内置语法可引用“父”节点(实际上只是语法糖,用于将共享同一匿名主题的三元组组合在一起)。

就是说,Turtle的语法能够序列化每个符合要求的RDF图。 要实现您描述的图形结构,必须使用_:语法而不是更紧凑的[]语法来定义匿名节点。

必须使用_:语法来手动分配空白节点标签而不是使用[]便利语法的情况包括:

  • 在涉及多个匿名节点的图形中循环。
  • 具有与对象相同的匿名节点的多个三元组。

_:语法允许您手动分配节点标识符,这将使您可以从任意三元组的主题或对象位置引用空白节点。 您分配的节点标识符在出现它的Turtle文档的上下文之外没有任何意义,因此不必是全局唯一的。 用这种方式标识的节点仍然是匿名的,因为它们不能被全局引用。 然而,在同一个文档同一个空白节点标签的每次出现是指在相同的资源,那么该文件的作者负责同一文档中分配空白节点标签和跟踪它们的用法。

这样,您的文档将类似于:

:Instance0 a Class0;
    :property0 _:instance1.

_:instance1 a Class1;
    :property1 [
        a Class2;
        :property2 _:instance1;
    ].

有关更多详细信息请参见RDF 1.1 Turtle中的 2.6 RDF空白节点 ,简短的RDF三重语言

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM