我正在对 Stardog 数据检索进行一些测试,但我不确定如何解决以下问题:
我有一个 Stardog 数据库,我通过 HTTP URL ( http://localhost:5820/myDB/query?query=...
) 和Accept = "application/sparql-results+json"
我创建了一个如下所示的 SPARQL 查询:
select distinct ?p ?childname
where {
?p a ex:Person .
OPTIONAL { ?p ex:hasChild ?child .
?child rdfs:label ?childname . }
}
我的问题是,这给了我每个孩子一个对象,例如(注意符号是说明性的):
{ p = XXX
childname = AAA
}
{ p = XXX
childname = BBB
}
....
我可以用 GROUP_CONCAT “解决”这个问题,但这只会连接字符串:
{ p = XXX
childname = AAA, BBB, ....
}
我需要获得正确的 JSON 结构:
{ p = XXX
{ childname = AAA }
{ childname = BBB }
.....
}
我当然可以运行两个 SPARQL 查询,一个获取 ?p,另一个获取 ?childname 的列表,但这在我的情况下实际上是不可能的(没有详细说明为什么不这样做)。
如何使用 JSON 中的单个 URL 获得这些结果?