获取Wikidata上多个实体列表的记录

时间:2018-08-18 21:13:50

标签: python sparql pseudocode records wikidata

我正在Wikidata中映射多个实体(Q个条目),为此我需要相同的属性记录(P个条目)。出于这个问题的原因,假设我有五个Wikidata实体(Q1,Q2,Q3,Q4,Q5)的列表,我想为其检索相同的属性记录(例如P1,P2和P3)。我事先知道所有Q和P。

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

>

第一个问题,是否有一种方法可以仅使用SPARQL来遍历具有给定SPARQL查询的实体列表(从Q1到Q5)?

如果答案为“否”,是否存在用于发布单个SPARQL查询的示例Python或伪代码,这些查询遍历外部标识符列表(从Q1到Q5),例如以外部文本或CSV文件形式提供?

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

1 个答案:

答案 0 :(得分:2)

我认为您正在寻找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!