Wordnet 3.0 ( http://semanticweb.cs.vu.nl/lod/wn30/ ) 是 Turtle 格式,我无法让 org.openrdf.rio.turtle.TurtleParser 解析 Manifest.ttl 文件 ( https: //gist.github.com/1181802)。
看起来解析器没有正确处理前缀——显然它认为它们是空的:
org.openrdf.rio.RDFParseException: org.openrdf.rio.RDFParseException:
Not a valid (absolute) URI: nullwn30 [line 15]
Run Code Online (Sandbox Code Playgroud)
我以前从未涉足过 RDF 加载空间,所以很可能我遗漏了一些东西。
关于在哪里看的任何想法?
问题是该 Turtle 文件中的语法错误。具体来说,这个片段:
:wn30
a lib:Namespace ;
lib:mnemonic "wn30" ;
lib:namespace wn30: .
Run Code Online (Sandbox Code Playgroud)
标识符:wn30
是使用默认命名空间的限定名称(默认,因为它没有前缀,构造为 eg lib:mnemonic
)。但是,Turtle 文档不包含默认命名空间的命名空间声明。
顺便问一下,你用的是哪个版本的芝麻?我在最近的版本中对此进行了简短的测试,但它仍然给我一个错误,但该错误对解决问题更有帮助:“使用了默认命名空间但未定义 [第 14 行]”。
要解决此问题,文档应包含默认命名空间的命名空间声明,例如:
@prefix : <http://example.org/> .
Run Code Online (Sandbox Code Playgroud)