加载有效的海龟文件时发生 Jena Riot 异常
Jena Riot Exception when loading valid turtle file
我有一个 turtle 文件位于 here. I have validated it using this tool (http://ttl.summerofcode.be/),它说 turtle 文件是有效的。但是,当使用带有 RDFDataMgr.loadModel("https://raw.githubusercontent.com/noorbakerally/ISWC2017Demo/master/ParisGeo.ttl");
的 Jena 加载它时,我收到以下错误,
Exception in thread "main" org.apache.jena.riot.RiotException: [line: 1, col: 1 ] Expected BNode or IRI: Got: [DIRECTIVE:prefix]
at org.apache.jena.riot.system.ErrorHandlerFactory$ErrorHandlerStd.fatal(ErrorHandlerFactory.java:136)
at org.apache.jena.riot.lang.LangEngine.raiseException(LangEngine.java:148)
at org.apache.jena.riot.lang.LangEngine.exceptionDirect(LangEngine.java:143)
at org.apache.jena.riot.lang.LangEngine.exception(LangEngine.java:137)
at org.apache.jena.riot.lang.LangNTuple.checkIRIOrBNode(LangNTuple.java:89)
at org.apache.jena.riot.lang.LangNTriples.parseOne(LangNTriples.java:74)
at org.apache.jena.riot.lang.LangNTriples.runParser(LangNTriples.java:53)
at org.apache.jena.riot.lang.LangBase.parse(LangBase.java:41)
at org.apache.jena.riot.RDFParserRegistry$ReaderRIOTLang.read(RDFParserRegistry.java:194)
at org.apache.jena.riot.RDFParser.read(RDFParser.java:293)
at org.apache.jena.riot.RDFParser.parseNotUri(RDFParser.java:283)
at org.apache.jena.riot.RDFParser.parse(RDFParser.java:233)
at org.apache.jena.riot.RDFParserBuilder.parse(RDFParserBuilder.java:405)
at org.apache.jena.riot.RDFDataMgr.process(RDFDataMgr.java:862)
at org.apache.jena.riot.RDFDataMgr.parse(RDFDataMgr.java:676)
at org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:222)
at org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:103)
at org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:94)
at org.apache.jena.riot.RDFDataMgr.loadModel(RDFDataMgr.java:336)
at fr.emse.opensensingcity.main.main(main.java:41)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
那个 link returns 一个 HTTP header 和 "text/plain"。使用 MIME 类型声明,而不是文件扩展名。
您通过使用 RDFParser
.
构建配置的解析器来强制语法
http://jena.apache.org/documentation/io/rdf-input.html#example-3-using-rdfparser
或在 Java 中打开 URL 的流并使用 RDFDataMgr
从命令行,riot --syntax TTL ...
我有一个 turtle 文件位于 here. I have validated it using this tool (http://ttl.summerofcode.be/),它说 turtle 文件是有效的。但是,当使用带有 RDFDataMgr.loadModel("https://raw.githubusercontent.com/noorbakerally/ISWC2017Demo/master/ParisGeo.ttl");
的 Jena 加载它时,我收到以下错误,
Exception in thread "main" org.apache.jena.riot.RiotException: [line: 1, col: 1 ] Expected BNode or IRI: Got: [DIRECTIVE:prefix]
at org.apache.jena.riot.system.ErrorHandlerFactory$ErrorHandlerStd.fatal(ErrorHandlerFactory.java:136)
at org.apache.jena.riot.lang.LangEngine.raiseException(LangEngine.java:148)
at org.apache.jena.riot.lang.LangEngine.exceptionDirect(LangEngine.java:143)
at org.apache.jena.riot.lang.LangEngine.exception(LangEngine.java:137)
at org.apache.jena.riot.lang.LangNTuple.checkIRIOrBNode(LangNTuple.java:89)
at org.apache.jena.riot.lang.LangNTriples.parseOne(LangNTriples.java:74)
at org.apache.jena.riot.lang.LangNTriples.runParser(LangNTriples.java:53)
at org.apache.jena.riot.lang.LangBase.parse(LangBase.java:41)
at org.apache.jena.riot.RDFParserRegistry$ReaderRIOTLang.read(RDFParserRegistry.java:194)
at org.apache.jena.riot.RDFParser.read(RDFParser.java:293)
at org.apache.jena.riot.RDFParser.parseNotUri(RDFParser.java:283)
at org.apache.jena.riot.RDFParser.parse(RDFParser.java:233)
at org.apache.jena.riot.RDFParserBuilder.parse(RDFParserBuilder.java:405)
at org.apache.jena.riot.RDFDataMgr.process(RDFDataMgr.java:862)
at org.apache.jena.riot.RDFDataMgr.parse(RDFDataMgr.java:676)
at org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:222)
at org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:103)
at org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:94)
at org.apache.jena.riot.RDFDataMgr.loadModel(RDFDataMgr.java:336)
at fr.emse.opensensingcity.main.main(main.java:41)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
那个 link returns 一个 HTTP header 和 "text/plain"。使用 MIME 类型声明,而不是文件扩展名。
您通过使用 RDFParser
.
http://jena.apache.org/documentation/io/rdf-input.html#example-3-using-rdfparser
或在 Java 中打开 URL 的流并使用 RDFDataMgr
从命令行,riot --syntax TTL ...