阅读Quad到Jena模型

时间:2015-08-15 07:31:49

标签: java rdf jena

我正在使用以下步骤将四边形读入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找到相同的数据文件。

1 个答案:

答案 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/