How to return SPARQL results in JSON-LD?の回答を見ました。、しかし、それは満足のいくものではありません/機能していません。JSON-LD Java Integration for Sesame とスタンドアロン バージョンを使用しました。
私が達成したいこと: Blazegraph RemoteRepository (Sesame/SAIL に基づく) を介して SPARQL CONSTRUCT クエリを SPARQL エンドポイントに送信し、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 出力が正常に機能したことを知っているためです。残念ながら、同じアプローチは Jena への変換には機能しません。
Sesame to Jena Adapter を使用した私のコード:
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 );
今何ができますか?