моя проблема очень проста: у меня есть источник my:g1
, который содержит:
my:a1 my:b "literal 1"
Затем у меня есть второй источник 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" |
т.е. как я могу сказать sparql использовать одну и ту же переменную для "literal 1"
и "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}
}
}
будет работать, но это не мой "настоящий" случай. Есть ли другие решения?