我在阅读某些类型的.rdf文件时遇到问题。这些文件取自Manhein目录。这是一个简单的代码:
Model model = ModelFactory.createDefaultModel();
RDFDataMgr.read(model, "file.rdf");
model.write(System.out);
对于某些.rdf类型的文件,我得到.nq但Manhein .rdf目录文件正在发生以下错误:
线程中的异常" main" org.apache.jena.riot.RiotException:代码:17 / PATH中的WHITESPACE:一个空白字符。这些匹配URI / IRI的语法规则。 RDF URI引用,XML系统标识符和XML Schema anyURIs中允许使用这些字符。
我尝试过其他类型的阅读作为RDFDataMgr。我还尝试在fuseki中创建一个空模型并在rdf中读取文件然后按下fuseki,但是给出了同样的错误。我尝试搜索错误但没有成功。有人能帮助我吗?
谢谢
答案 0 :(得分:1)
数据中存在错误的URI。它有一个空间。 URI和IRI中的任何位置都不允许使用空格。 RDF 1.1使用IRI。
尝试用"%20"替换空格 - 请注意,IRI中将包含字符%
- 2
- 0
。 %-encoding不是转义机制。
修复数据是迄今为止最好的解决方案 - 通过一些不正当手段强迫角色进入后会带来问题。
答案 1 :(得分:0)
尝试一下...
Model model = ModelFactory.createDefaultModel();
InputStream file = FileManager.get().open( "file.rdf" );
model.read(file,null);
model.write(System.out);