在下面的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")
}
Run Code Online (Sandbox Code Playgroud)
该SPARQL规范提到了一些关于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")
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在SELECT查询中定义这样的URI列表(或"multiset"或"bag")?
在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")
}
Run Code Online (Sandbox Code Playgroud)