3

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 でこれらの結果を取得するにはどうすればよいですか?

4

1 に答える 1

0

JSON-LD の結果は、おそらく後処理なしで目的の形式に最も近いものです。クエリを CONSTRUCT に書き直して、Accept: application/ld+json.

于 2014-10-28T20:53:14.683 に答える