SPARQL实体在选择查询中列出

wyn*_*ynz 2 sparql

在下面的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")?

Bla*_*lia 7

在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)