Parsing Sesame中不太严格的N-Quads解析

Parsing Sesame中不太严格的N-Quads解析,parsing,sesame,n-quads,Parsing,Sesame,N Quads,N-Quads的Sesame解析器相当严格(通常不是坏事!)。除了根据[10]解析IRI术语外,它还实现了需求[2](均来自N-Quads 1.1规范) [1]IRIREF::='' [2] 虹膜只能作为绝对虹膜写入。 是否有一种仅根据[1]执行解析的方法?我已经关闭了可以找到的其他配置设置(例如,不根据数据类型解释词法表达式),但尚未找到用于禁用绝对IRI检查的设置或所有设置的概述。不,目前没有。N-Quads格式(就像它的姐妹格式N-Triples一样)特别要求只使用绝对虹膜。根据定义,任

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

[1]IRIREF::=''
[2] 虹膜只能作为绝对虹膜写入。

是否有一种仅根据[1]执行解析的方法?我已经关闭了可以找到的其他配置设置(例如,不根据数据类型解释词法表达式),但尚未找到用于禁用绝对IRI检查的设置或所有设置的概述。

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

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

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

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

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