在Sesame中解析不那么严格的N-Quads

时间:2015-11-14 19:00:20

标签: parsing sesame n-quads

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检查的设置或所有设置的概述。

1 个答案:

答案 0 :(得分:1)

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

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

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

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