gpt4 book ai didi

sparql - Jena Sparql 输出为 .txt 或 .xls 文件

转载 作者:行者123 更新时间:2023-12-03 03:20:42 25 4
gpt4 key购买 nike

我想知道如何根据 Jena SPARQL 查询的结果创建 .txt 或 .xls 文件输出。有人可以帮忙吗?

这里是代码的一部分

InputStream in = new FileInputStream(new File("./src/myfile.owl"));

Model model = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM_MICRO_RULE_INF, null);
model.read(in, null);
in.close();

String queryString =
"prefix : <http://www.semanticweb.org/thato/ontologies/2012/10/9/thesis_ontology_1try#> " +
"prefix rdfs: <" + RDFS.getURI() + "> " +
"prefix owl: <" + OWL.getURI() + "> " +
"prefix rdf: <" + RDF.getURI() + "> " +
"select ?Model " +
"where {" +
"{?Model rdf:type :ApplicationModel. " +
"?Model :hasDomain ?domain. " +
"?domain :domainCode ?domaincode. " +
"FILTER (?domaincode =" + "'"+ domainElement.getAttribute(attrDomain) + "'"+ ")" +
"?Model :hasPhase ?phase." +
"?phase :name ?phasecode. " +
"FILTER (?phasecode = "+ "'"+ phaseElement.getAttribute(attrPhase)+"'"+")" +
"?Model :hasLevelOfDetail ?lod." +
"?lod :name ?lodcode." +
"FILTER (?lodcode = "+ lodElement.getAttribute(attrLOD) +")" +
"}"
;
Query query = QueryFactory.create(queryString);
QueryExecution qe = QueryExecutionFactory.create(query, model);
ResultSet results = qe.execSelect();
ResultSetFormatter.out(System.out, results, query);
qe.close();

}
}

最佳答案

您还没有真正解释您希望输出的格式是什么样子,但无论如何我都会尽力回答。

Jena 将生成基于文本的结果序列化,它是 ASCII 表格样式,您可以通过以下方式获得:

ResultSetFormatter.out(System.out, results, query);

这就是您的代码已经执行的操作,所以我假设这种格式不适合您?

您无法直接生成 Excel 电子表格,但可以生成 CSV,当然可以将其导入到 Excel 中:

ResultSetFormatter.outputAsCSV(System.out, results);

然而,CSV 序列化是一种有损序列化,它不会将 URI 缩短为缩写形式 - 请参阅 SPARQL 1.1 Query Results CSV and TSV对此的规范。

如果您想写入实际文件,只需将 System.out 切换为适当的 OutputStream 实现,例如文件输出流

关于sparql - Jena Sparql 输出为 .txt 或 .xls 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14601657/

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