Sesame 中不太严格的 N-Quads 解析
Less stringent N-Quads parsing in Sesame
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 检查的设置或所有设置的概述。
不,目前没有。 N-Quads 格式(与其姊妹格式 N-Triples 一样)特别要求仅使用绝对 IRI。任何包含相关 IRI 的文档根据定义都是无效的。
虽然从互操作性的角度来看这不是一个好主意,但从技术上讲添加这样的功能并不难。每个 Sesame 解析器都已经提供了一个基本 URI,这可以很容易地用于解析相对 IRI(事实上,所有必要的代码都已经到位,只是 N-Quads 解析器没有使用它)。
随时向 Sesame 开发团队提出功能请求以包含此功能。同时,您可以轻松地自行调整解析器,确保其对 URI 引用的解析使用方法 AbstractRDFParser.resolveURI
来考虑相对 URI。创建一个执行此操作的 NQuadsParser
的特定于任务的子类应该不难。
顺便说一句:虽然没有关于解析器配置的详尽文档,但每个 Sesame Rio 解析器都实现了 getSupportedSettings
方法,returns 该解析器理解和使用的解析器设置列表。
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 检查的设置或所有设置的概述。
不,目前没有。 N-Quads 格式(与其姊妹格式 N-Triples 一样)特别要求仅使用绝对 IRI。任何包含相关 IRI 的文档根据定义都是无效的。
虽然从互操作性的角度来看这不是一个好主意,但从技术上讲添加这样的功能并不难。每个 Sesame 解析器都已经提供了一个基本 URI,这可以很容易地用于解析相对 IRI(事实上,所有必要的代码都已经到位,只是 N-Quads 解析器没有使用它)。
随时向 Sesame 开发团队提出功能请求以包含此功能。同时,您可以轻松地自行调整解析器,确保其对 URI 引用的解析使用方法 AbstractRDFParser.resolveURI
来考虑相对 URI。创建一个执行此操作的 NQuadsParser
的特定于任务的子类应该不难。
顺便说一句:虽然没有关于解析器配置的详尽文档,但每个 Sesame Rio 解析器都实现了 getSupportedSettings
方法,returns 该解析器理解和使用的解析器设置列表。