1

N-Quads 的 Sesame 解析器相当严格(通常不是坏事!)。除了根据 [10] 解析 IRI 术语之外,它还实现了要求 [2](均来自 N-Quads 1.1 规范)。

[1]   IRIREF ::= '<' ([^#x00-#x20<>"{}|^`\] | UCHAR)* '>'
[2]   IRIs may be written only as absolute IRIs.

有没有办法仅根据 [1] 执行解析?我已经关闭了我能找到的其他配置设置(例如,不根据它们的数据类型解释词法表达式),但还没有找到禁用绝对 IRI 检查的设置或所有设置的概述。

4

1 回答 1

1

不,目前没有。N-Quads 格式(就像它的姊妹格式 N-Triples 一样)特别要求只使用绝对 IRI。根据定义,任何包含相关 IRI 的文档都是无效的。

虽然从互操作性的角度来看不是一个好主意,但从技术上讲,添加这样的功能并不难。每个 Sesame 解析器都提供了一个基本 URI,这可以很容易地用于解析相对 IRI(事实上,所有必要的代码都已经到位,只是 N-Quads 解析器没有使用它)。

随时向 Sesame 开发团队记录功能请求以包含此内容。同时,您可以轻松地自己调整解析器,确保解析 URI 引用时使用该方法AbstractRDFParser.resolveURI将相对 URI 考虑在内。创建一个特定于任务的子类应该不难NQuadsParser

顺便说一句:虽然没有关于解析器配置的大量文档,但每个 Sesame Rio 解析器都实现了该getSupportedSettings方法,该方法返回该解析器理解和使用的解析器设置列表。

于 2015-11-14T22:27:06.250 回答