Как найти правильное свойство для запросов Wikidata Sparql? - PullRequest
0 голосов
/ 02 ноября 2019

Как мне найти правильное свойство для запроса?

Скажем, я хочу найти всех королей в викидате.

Моя Первая попытка была такой:

SELECT ?king ?kingLabel
WHERE
{
   #all result where occupation is king
  ?king wdt:P106 wd:Q12097.

  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }

}

Возвращено всего 515 попаданий. Я думаю, что это очень маленькое число для всех королей.

Вторая попытка :

SELECT ?king ?kingLabel
WHERE
{
   # all result where position held is king
  ?king wdt:P39 wd:Q12097.

  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }

}

, которая вернула 817 хитов.

Так что вы можетевидите, я использовал разные свойства: P106 против P39. Они вернули другой набор результатов. И это только два свойства, может быть, существуют еще 10-12 свойств, которые я еще не обнаружил, и было бы лучше для моего запроса.

edit: И в довершение всего использованиеданное свойство не кажется последовательным. Для свойства P39 (занимаемая должность) некоторые вики-страницы имеют значение Q12097 (король), другие имеют Q6412254 (король Венгрии). Итак, как вы можете видеть, невозможно получить всех королей в викиданных одним запросом. Или я должен получить кучу свойств и разобрать их значения для слова king? Это было бы кошмаром, но сейчас я не могу найти лучший способ.

Сейчас, к сожалению, использование свойств кажется мне специальным, и поэтому я использую метод проб и ошибок дляобнаружение свойств.

Итак, мой вопрос (и он не связан только с проблемой 'king'):

Если я хочу сформулировать запрос, как можноЯ решаю, какая недвижимость лучше?

...