【发布时间】:2018-07-30 06:28:04
【问题描述】:
我正在使用 MarkLogic 8.0-6.3
我遇到了需要在 SPARQL 中嵌套 JSON 输出的场景。
例如,一个 IRI 有多个相同的谓词,结果我希望数组中的多个值不是一个完整的三元组。
例如:
假设三元组:
@prefix p0: <http://www.mla.com/term/> .
p0:7 <http://www.w3.org/2004/02/skos/core#narrower> p0:768 ,
p0:769 ,
p0:770 ,
p0:771 .
SPARQL 查询:
PREFIX skos-mla: <http://www.mlacustom.com#>
PREFIX term: <http://www.mla.com/term/>
select ?iri ?o {
graph<thesaurus-term>{
bind(term:7 as ?iri)
term:7 skos:narrower ?o .
}
}
上述查询将返回 4 个三元组作为输出。
我想要的是它应该只返回一个 json 结构,例如
{
"iri": "http://www.mla.com/term/7",
"narrowers": ["http://www.mla.com/term/768", "http://www.mla.com/term/769", "http://www.mla.com/term/770", "http://www.mla.com/term/771"]
}
以上 JSON 只是为了说明问题。 实际上,我需要一个更复杂的 json 结构,而不是字符串数组,我需要一个 json 对象数组。
我知道我可以读取响应并以任何格式重新创建整个 json,但它会影响性能。
【问题讨论】: