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



用于N-Quads的Sesame解析器相当严格(通常不是坏事!)。除了根据[10]解析IRI术语外,它还实现了要求[2](均来自N-Quads1.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方法,该方法返回解析器理解和使用的解析器设置列表。

最新更新