python - 获取维基数据上多个实体列表的记录

标签 python sparql pseudocode records wikidata

我正在映射维基数据中的多个实体(Q 条目),我需要相同的属性记录(P 条目)。对于这个问题,假设我有一个包含五个 Wikidata 实体(Q1、Q2、Q3、Q4、Q5)的列表,我想为其检索相同的属性记录(例如 P1、P2 和 P3)。我提前知道所有 Q 和 P。

我了解如何对单个记录(例如 Q1)提出 SPARQL 查询,并且我还了解如何使用特殊的 SERVICE wikibase:label 函数为 P1、P2 和 P3 指定标签的返回。

第一个问题,是否有一种方法可以仅使用 SPARQL 通过给定的 SPARQL 查询循环实体列表(Q1 到 Q5)?

如果答案为“否”,是否存在任何示例 Python 或伪代码用于发出循环访问外部标识符列表(Q1 到 Q5)的单个 SPARQL 查询(例如作为外部文本或 CSV 文件提供)?

如果有一种简单的方法可以解决这个问题,我很想听听。

最佳答案

我认为您正在寻找 VALUES 子句:

SELECT ?item ?itemLabel ?class ?classLabel ?projectLabel WHERE {
  VALUES ?item { wd:Q1 wd:Q2 wd:Q3 wd:Q4 wd:Q5 }
  ?item wdt:P31 ?class;
        wdt:P5008 ?project.
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}

Try it!

关于python - 获取维基数据上多个实体列表的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51912599/

相关文章:

python - 将任务分配给Python中的模块

python - 未能捕获语法错误python

rdf - SPARQL、沙盒入门

java - 无法使用 Apache Jena 运行特定的 SPARQL 查询

algorithm - 计算机总是一次计算两个数字吗?

python - 无法使用 mongodb 协议(protocol)支持列出 azure document db 中的集合

python - bash:复制具有相同模式的文件

rdf - 为什么我的 SPARQL 查询如此慢?

algorithm - 如何找到字符串的所有可能字母组合?

shell - Bash-如果再声明,该如何表达