我已经看到了如何在 JSON-LD 中返回 SPARQL 结果的答案?,但它并不令人满意/有效。我使用了 Sesame 的 JSON-LD Java 集成以及独立版本。
我想要实现的目标:通过 Blazegraph RemoteRepository(基于 Sesame/SAIL)向 SPARQL 端点发送 SPARQL CONSTRUCT 查询,获取 RDF 结果,将该 RDF 序列化为 JSON-LD。RDF 结果工作得非常好。
问题是,以下代码(使用 Sesame)完全没有输出:
StringWriter sw = new StringWriter();
final RDFWriter writer = Rio.createWriter( RDFFormat.JSONLD, sw );
//writer.getWriterConfig().set( JSONLDSettings.JSONLD_MODE, JSONLDMode.COMPACT );
GraphQueryResult queryResults;
Rio.write(QueryResults.asModel(queryResults), writer);
我还使用了到 Jena 内部模型的转换,因为我知道 Jena JSON-LD 输出在我的另一个项目中运行良好。不幸的是,同样的方法不适用于转换为耶拿。
我的芝麻到耶拿适配器的代码:
while(queryResults.hasNext()) {
JenaUtils.asJenaStatement();
}
StringWriter sw = new StringWriter();
// JenaUtils.getModel() returns the Jena model with the added statements above
RDFDataMgr.write( sw, JenaUtils.getModel(), RDFFormat.JSONLD );
我现在能做什么?