我正在使用以下步骤将四边形读入Jena模型
InputStreamin = FileManager.get().open(fn); //fn--filename
Model md = ModelFactory.createDefaultModel();
md.read(in,null,"TTL");
文件中的四元组是:
@prefix dbpedia: <http://dbpedia.org/resource/> .
dbpedia:53b56e90c8a15fcd48eb5001 dbpedia:type dbpedia:willtest dbpedia:1 .
dbpedia:53b56e90c8a15fcd48eb5001 dbpedia:end dbpedia:1404394351023 dbpedia:1 .
dbpedia:53b56e90c8a15fcd48eb5001 dbpedia:room dbpedia:Room202cen dbpedia:1 .
dbpedia:53debf266ad34658725225ed dbpedia:reading dbpedia:0 dbpedia:2 .
dbpedia:53debf206ad34658725225e5 dbpedia:begining dbpedia:1407106678270 dbpedia:3 .
但是在跑步时我得到以下错误:
Exception in thread "main" com.hp.hpl.jena.n3.turtle.TurtleParseException: Encountered " <DECIMAL> "1. "" at line 2, column 60.
Was expecting one of:
";" ...
"," ...
"." ...
仅由Quad文件生成错误。清楚地读取三重文件。有没有其他方法可以将四边形读入Jena模型?
更新#1
我按照克里斯蒂安在答案中提到的那样做,但现在我得到以下错误:
Exception in thread "main" com.hp.hpl.jena.shared.JenaException:
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1;
Content is not allowed in prolog.
可以在link找到相同的数据文件。
答案 0 :(得分:1)
看起来你正在阅读一个Turtle文件,从http://www.w3.org/TR/turtle/#abstract开始,Turtle与N-Quads不兼容:
本文档定义了一个名为Turtle的RDF的文本语法 允许RDF图完全以紧凑和自然的方式编写 文本形式,包含常用用法模式和数据类型的缩写。
Turtle提供与N-Triples兼容的级别[N-TRIPLES] 格式以及SPARQL W3C的三重模式语法 建议。
您基本上做的是,您告诉解析器它必须解析“Triples-syntax”文件,但是您传递了“Quad-syntax”文件。
将文件结尾更改为.nq
并改为使用md.read(in,null);
。然后应该自动检测到它是“四语法”。当然还要确保您的文件符合N-Quads语法,如下所示:http://www.w3.org/TR/n-quads/