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

Get records for a list of multiple entities on Wikidata

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

我了解如何为单个记录(比如 Q1)提出 SPARQL 查询,并且我还了解如何使用 P1 的特殊服务 wikibase:label 函数指定标签的 return 、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!