【问题标题】:Arbitrary strings considered acceptable as references in RDF N-Triples?任意字符串在 RDF N-Triples 中被认为是可接受的引用?
【发布时间】:2016-11-30 08:47:44
【问题描述】:

在 W3C RDF 1.1 N-Triples 文档中,用于非文字主语/宾语/谓词的 IRIREF 产生式几乎被定义为尖括号 () [1] 内的字符串,即使它被称为IRI。

这就是为什么某些示例文件 [2] 具有简单标识符而其他解析器(例如 RDFLib)如果标识符不是具有 scheme: 部分的有效 IRI 时会抛出异常的原因吗?尽管 RDF 规范中使用了术语,但包含无效 IRI 的非文字的 RDF 文件是否仍然格式正确?

[1]https://www.w3.org/TR/n-triples/#grammar-production-IRIREF

[2]https://github.com/cayleygraph/cayley/blob/master/data/testdata.nq

【问题讨论】:

    标签: rdf n-triples n-quads


    【解决方案1】:

    这就是为什么某些示例文件具有简单标识符而其他解析器(如 RDFLib)如果标识符不是具有方案的有效 IRI 时会抛出异常:部分?

    没有。您指向的示例文件严格来说在语法上不正确的 N-Triples。事实上,它根本不是 N-Triples,而是 N-Quads - 一种不同的语法格式。但即使是 N-Triples,这种形式的 IRI 也是不正确的。

    N-Triples 建议说“IRI 只能写为绝对 IRI”(请参阅​​ section 2.2) - 绝对 IRI 在 RFC 3987 中的语法定义。这是规范性的,即使语法产生本身没有强制执行它。

    但是,您在该示例文件中看到的 IRI 可能会被解释为相对 IRI 引用,并且一些 N-Triples 解析器已进行了一定程度的扩展,以允许使用 基本 IRI 取消引用相对 IRI。这可能就是为什么您有时会在野外看到这些语法不正确的 N-Triples 文件的原因。这是格式的非标准扩展。

    尽管 RDF 规范中使用了术语,但包含无效 IRI 的非文字的 RDF 文件是否仍然格式正确?

    这取决于您使用的语法格式。格式良好是文档在特定具体语法中的属性,N-Triples 的规则与 Turtle 或 RDF/XML 的规则不同。

    RDF 本身在其抽象语法中强制 IRI 符合 RFC3987 和绝对值,因此任何 RDF 文档在处理时会产生未解析的相对 IRI,或不符合 RFC 的 IRI,如果可能不是非格式良好的,肯定无效。

    一些具体的语法格式(例如 RDF/XML、TriG、Turtle 等)为 IRI 提供了不同的速记机制(前缀名称、相对 IRI + 基本 IRI 等)。然而,正如我们在上面看到的,N-Triples 没有内置这样的速记机制,因此任何非绝对的 IRI 都会使文档格式不正确。

    【讨论】:

      猜你喜欢
      • 2017-04-11
      • 2021-09-25
      • 1970-01-01
      • 2011-11-07
      • 2012-06-14
      • 2022-12-06
      • 2017-01-24
      • 1970-01-01
      • 2014-03-20
      相关资源
      最近更新 更多