gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 10:05:05 25 4
gpt4 key购买 nike

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

我已尝试使用下面的代码,但在 RDFDataMgr.write 中出现以下错误:

RDFDataMgr 类型中的 write(OutputStream, Model, Lang) 方法不适用于参数 (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();
}

最佳答案

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

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

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

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

因此,您可以将查询更改为 CONSTRUCT 查询,并使用适当的 API 来执行它们(execConstruct() 返回模型而不是 ResultSet),或者使用 ResultSetFormatter 写入整个解决方案表(而不是表(如您尝试执行的那样)转换为为此目的而存在的格式之一:JSON、CSV、TSV、XML。

关于java - 如何将 Jena QuerySolution 结果写入 RDF/XML 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55386999/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com