SPARQL SELECT 查询不适用于 Protege 的多个匹配项
SPARQL SELECT query not working on Protege for multiple matches
我正在尝试 运行 select 门徒查询:
SELECT ?subject WHERE {
?subject uni4:friendof uni4:t3 .
}
以上查询给出 'd3' 作为结果。
SELECT ?subject WHERE {
?subject uni4:friendof uni4:t4 .
}
此查询给出 'd4' 作为结果。
但是当我 运行 以下查询时,我没有得到任何结果。
SELECT ?subject WHERE {
?subject uni4:friendof uni4:t3 .
?subject uni4:friendof uni4:t4
}
为什么会这样?这里有什么问题?
因为最后一个查询询问的主题都是 t3
和 t4
的朋友。
如果您希望返回两个结果,UNION
是可行的方法:
SELECT DISTINCT ?subject WHERE {
{ ?subject uni4:friendof uni4:t3 }
UNION
{ ?subject uni4:friendof uni4:t4 }
}
或者在 SPARQL 1.1 中,您可以使用 VALUES
作为更紧凑的替代方案:
SELECT DISTINCT ?subject WHERE {
?subject uni4:friendof ?friend
VALUES ?friend { uni4:t3 uni4:t4 }
}
我正在尝试 运行 select 门徒查询:
SELECT ?subject WHERE {
?subject uni4:friendof uni4:t3 .
}
以上查询给出 'd3' 作为结果。
SELECT ?subject WHERE {
?subject uni4:friendof uni4:t4 .
}
此查询给出 'd4' 作为结果。
但是当我 运行 以下查询时,我没有得到任何结果。
SELECT ?subject WHERE {
?subject uni4:friendof uni4:t3 .
?subject uni4:friendof uni4:t4
}
为什么会这样?这里有什么问题?
因为最后一个查询询问的主题都是 t3
和 t4
的朋友。
如果您希望返回两个结果,UNION
是可行的方法:
SELECT DISTINCT ?subject WHERE {
{ ?subject uni4:friendof uni4:t3 }
UNION
{ ?subject uni4:friendof uni4:t4 }
}
或者在 SPARQL 1.1 中,您可以使用 VALUES
作为更紧凑的替代方案:
SELECT DISTINCT ?subject WHERE {
?subject uni4:friendof ?friend
VALUES ?friend { uni4:t3 uni4:t4 }
}