Stardog データ取得のテストを行っていますが、次の問題に対処する方法がわかりません。
http://localhost:5820/myDB/query?query=...
HTTP URL ( ) を介してクエリを実行する Stardog データベースがあり、Accept = "application/sparql-results+json"
次のような SPARQL クエリを作成しました。
select distinct ?p ?childname
where {
?p a ex:Person .
OPTIONAL { ?p ex:hasChild ?child .
?child rdfs:label ?childname . }
}
私の問題は、これにより、次のように、子ごとに1つのオブジェクトが得られることです(表記は説明用であることに注意してください):
{ p = XXX
childname = AAA
}
{ p = XXX
childname = BBB
}
....
GROUP_CONCAT でこれを「解決」できますが、これは文字列を連結するだけです。
{ p = XXX
childname = AAA, BBB, ....
}
適切な JSON 構造を取得する必要があります。
{ p = XXX
{ childname = AAA }
{ childname = BBB }
.....
}
もちろん、2 つの SPARQL クエリを実行することもできます。1 つは ?p を取得するためのもので、もう 1 つは ?childname のリストを取得するためのものです。
JSON の単一の URL でこれらの結果を取得するにはどうすればよいですか?