2 つのクエリがあります。
クエリ 1:
SELECT DISTINCT ?o COUNT(?o)
WHERE
{ ?s1 ?somep1 <predicate_one-uri>. ?s1 ?p ?o}
クエリ 2:
SELECT DISTINCT ?o COUNT(?o)
WHERE
{?s2 ?somep2 <predicate_two-uri>.?s2 ?p ?o.}
クエリごとに異なる結果セットが返されます (予想どおり)。これら 2 つのセットの結合を作成する必要があります。私が理解していることから、以下のクエリで必要なセットが得られるはずです。
SELECT DISTINCT ?o COUNT(?o)
WHERE
{
{ ?s1 ?somep1 <predicate_one-uri>.?s1 ?p1 ?o}
UNION
{?s2 ?somep2 <predicate_two-uri>.?s2 ?p2 ?o.}
}
問題は、クエリ 1 の結果の一部がユニオン セットにないことと、クエリ 2 の場合はその逆であることです。クエリ 1 とクエリ 2 のすべての結果が組み込まれていないため、ユニオンは正しく機能していません。目的の結果セットを達成するための sparql クエリ。
ただし、次のクエリを作成した場合 (単純に COUNT 関数を削除します):
SELECT DISTINCT ?o
WHERE
{
{ ?s1 ?somep1 <predicate_one-uri>.?s1 ?p ?o}
UNION {?s2 ?somep2 <predicate_two-uri>.?s2 ?p ?o.}
}
適切な結果セットが得られます。しかし、変数の頻度も必要です?o
。