单个SPARQL查询返回JSON层次结构



我正在做一些关于星狗数据检索的测试,我不确定如何解决以下问题:

我有一个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获得这些结果?

JSON-LD中的结果可能是不经过后处理而最接近所需格式的。您需要将查询重写为CONSTRUCT,并使用Accept: application/ld+json

相关内容

  • 没有找到相关文章

最新更新