Выберите членов парламента с помощью SPARQL из Wikidata - PullRequest
0 голосов
/ 09 апреля 2020

На основе викиданных я хочу составить список всех членов Европейского парламента, и мне нужны метаданные об их членстве, такие как дата начала и партия, которую они представляют.

Для начала я запускаю следующий запрос :

SELECT ?human ?humanLabel ?positionheldLabel
WHERE
{
# human position_held MembEuroParl
  ?human wdt:P39 wd:Q27169;
         wdt:P39 ?positionheld.
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE]". }
}

Возвращает список людей, которые когда-то были членами Европейского парламента, и занимаемые ими должности. Однако также, если эти должности не были членами парламента. См. Изображение.

enter image description here

Поэтому я изменяю запрос следующим образом, добавляя строку, в которой указанная должность должна быть членом парламента:

SELECT ?human ?humanLabel ?positionheld
WHERE
{
# ?human position_held MEP
  ?human wdt:P39 wd:Q27169;
         wdt:P39 ?positionheld.
  ?positionheld wdt:P31 wd:Q27169.
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE]". }
}

Однако этот последний запрос не возвращает никаких результатов. Кроме того, он кажется повторяющимся

Мой вопрос, как мне выбрать только те строки, в которых он является членом парламента? Ответ, вероятно, тривиален, но в настоящее время я остаюсь невежественным. То, что я хотел занять 1 минуту, занимает час.

...