如何将Jena QuerySolution结果写入RDF / XML文件?

问题描述 投票:0回答:1

我需要将.ttl QuerySolution结果导出/写入RDF / XML文件。

我已经尝试了下面的代码,但是我收到RDFDataMgr.write的以下错误:

The method write(OutputStream, Model, Lang) in the type RDFDataMgr is not applicable for the arguments (OutputStream, QuerySolution, Lang)

Query query = QueryFactory.create(queryString);
QueryExecution qexec= QueryExecutionFactory.create(query, model2);
try {
    ResultSet resultat= qexec.execSelect();
    while (resultat.hasNext()) {
        QuerySolution sol=resultat.nextSolution();

        String outfile = "/auto_home/rdftest/outfile.rdf";
        OutputStream out = new FileOutputStream(outfile);

        RDFDataMgr.write(out, sol, Lang.RDFXML); 
    }
} finally {
    qexec.close(); 
}
java sparql jena
1个回答
1
投票

SPARQL支持两种主要的查询:SELECT查询和CONSTRUCT查询。

SELECT查询返回一个解决方案表。您正在运行SELECT查询。

CONSTRUCT查询从解决方案中创建新的RDF图。

Turtle和RDF / XML是RDF图的格式。它们不是解决方案表的格式。因此,您只能将CONSTRUCT查询的结果写入这些格式。

因此,您可以将查询更改为CONSTRUCT查询并使用适当的API执行它们(execConstruct()返回Model而不是ResultSet),或者使用ResultSetFormatter编写整个解决方案表(而不是表格中的每一行)正在努力)为此目的存在的格式之一:JSON,CSV,TSV,XML。

© www.soinside.com 2019 - 2024. All rights reserved.