选择查询内的 SPARQL 实体列表

标签 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") 
}

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/

相关文章:

rdf - 是否可以在 DBPedia 中检索三元组的源数据集?

rdf - 如何从 SPARQL 查询访问土地注册处住宅类型

SPARQL - 启用推理时获取断言类

SPARQL查询获取特定uri的信息

rdf - 计算具有最多谓词的 DBPedia 资源

oop - SPARQL 主语及其所有父类(super class)的所有谓词-宾语对

sparql - 维基数据端点中的路径查询?

random - sparql:为每个节点随机选择一个连接

xml - 通过 SPARQL 使用 R XML 编码问题

rdf - SPARQL 查询构造带有选择路径的子图(路径有不同的长度)