我正在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文件形式提供?
如果有一种简单的方法可以解决这个问题,我很想听听。
答案 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". }
}