我的问题很简单:我有一个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" |
IE。我怎么能告诉 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}
}
}
会工作,但不是我的“真实”案例。还有其他解决方案吗?