私の問題は非常に単純です。次を含むソースmy:g1
があります。
my:a1 my:b "literal 1"
次に、次を含む 2 番目のソースmy:g2
があります。
my:a2 my:b my:c.
my:c rdfs:label "literal 2"
次のようなものを生成する SPARQL クエリを設定するにはどうすればよいですか。
| ?a | ?b | ?literal |
|-------|-------|-------------|
| my:a1 | my:b | "literal 1" |
| my:a2 | my:b | "literal 2" |
すなわち。"literal 1"
と の両方に同じ変数を使用するように sparql に指示するにはどうすればよい"literal 2"
ですか : 次のようなものを探しています
Select ?a ?b ?literal
where {
if (?g = my:g1) then
GRAPH ?g { ?a ?b ?literal}
else if (?g = my:g2) then
GRAPH ?g { ?a ?b ?c. ?c rdfs:label ?literal}
}
注:このクエリがひどく間違っていることは知っていますが、私の意図を明確にするためだけです
編集:
この特定のケースでは、次のような「ユニオン」ステートメント
select ?a ?b ?literal
where {
{
GRAPH my:g1 { ?a ?b ?literal}
}
union
{
GRAPH my:g2 { ?a ?b ?c. ?c rdfs:label ?literal}
}
}
動作しますが、私の「実際の」ケースではありません。他の解決策はありますか?