【发布时间】:2019-07-25 05:59:38
【问题描述】:
我正在尝试返回一组担任过政治职务的人(爱丁堡大学校友)的结果。我想返回所担任办公室的标题标签,以及每个办公室的开始和结束日期,许多人担任多个职位。如果该人仅担任一个职位,我似乎能够获得其中一个或可以使其发挥作用,但在多个办公室担任职务时无法使两者结合在一起。
我当前的查询版本如下。这将给我开始和结束日期,而不是如果政治办公室的标签,例如英国 [x] 议会的成员,?officeLabel 返回一个值,例如:statement/Q4668868-E3734C7D-40F0-4D4A-8208-E3D6B8C944CB
SELECT DISTINCT ?alumni ?fullName ?roleLabel ?officeLabel ?start ?end WHERE {
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
?alumni wdt:P69 wd:Q160302.
?alumni rdfs:label ?fullName.
?alumni wdt:P106 ?role.
#Use Values to separate out politicians - Q82955
VALUES (?role) {
(wd:Q82955)
}
#Select only where position of office is stated but make dates optional
?alumni p:P39 ?office.
OPTIONAL { ?office pq:P580 ?start. }
OPTIONAL { ?office pq:P582 ?end. }
FILTER(LANGMATCHES(LANG(?fullName), "en"))
FILTER(NOT EXISTS { FILTER(LANGMATCHES(LANG(?fullName), "en-ca")) })
FILTER(NOT EXISTS { FILTER(LANGMATCHES(LANG(?fullName), "en-gb")) })
}
ORDER BY ?fullName
LIMIT 10
【问题讨论】:
标签: properties sparql wikidata qualifiers