在下面的 DBpedia 查询中,有没有办法将 UNION 合并为单个模式?
PREFIX prop: <http://resedia.org/ontology/>
PREFIX res: <http://resedia.org/resource/>
SELECT DISTINCT ?language ?label
WHERE {
{res:Spain prop:language ?language}
UNION
{res:France prop:language ?language}
UNION
{res:Italy prop:language ?language}
?language rdfs:label ?label .
FILTER langMatches(lang(?label), "en")
}
SPARQL spec提到一些有关 RDF 集合的内容,但我不太明白它在描述什么。看起来以下语法应该有效,但事实并非如此。
PREFIX prop: <http://resedia.org/ontology/>
PREFIX res: <http://resedia.org/resource/>
SELECT DISTINCT ?language ?label
WHERE {
(res:Spain res:France res:Italy) prop:language ?language
?language rdfs:label ?label .
FILTER langMatches(lang(?label), "en")
}
有没有办法在 SELECT 查询中定义这样的 URI 列表(或“多重集”或“包”)?
最佳答案
在 SPARQL 1.1 中您可以做到
SELECT DISTINCT ?language ?label
WHERE {
?country prop:language ?language .
?language rdfs:label ?label .
VALUES ?country { res:Spain res:France res:Italy }
FILTER langMatches(lang(?label), "en")
}
关于选择查询内的 SPARQL 实体列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2949466/