2016-01-15 4 views
4

Как бы вы запросили набор всех свойств, которые имеет элемент?Как получить все ярлыки свойства объекта викидата?

В частности, я ищу английские ярлыки для каждого элемента, который является значением свойства объекта.

E.g. «Earth»:

{ 
    "Challenger Deep", 
    "Solar System", 
    "oblate spheroid", 
    "geoid", 
    "World Ocean", 
    "Afro-Eurasia", 
    ... 
} 

Я использую библиотеку викиданные Toolkit на данный момент, но я бы рекомендации.

ответ

4

Сначала вам нужно использовать API MediaWiki с действием wbgetclaims, чтобы получить все свойства по каждой претензии. Например, для викиданного пункта Earth (Q2) запроса будет:

https://www.wikidata.org/w/api.php?action=wbgetclaims&format=xml&props=value&entity=Q2 

Затем вам нужно разобрать ответ и принять идентификатор из value для каждого property. В этом примере для свойства P1589 идентификатор объекта равен Q459173.

Последний шаг - получить все этикетки на английском языке по другому запросу. У вас есть два варианта, в обоих из них мы используем все запись идентификаторы из предыдущего шага, разделенных трубы |:

Update: Я нашел, как получить метки все предмет стоимости имущества путем использования только один запрос. Идея заключается в том, чтобы найти весь пункт links, а затем отфильтровать из них только из namespace 0, которые начинаются с Q.

https://www.wikidata.org/w/api.php?action=query&titles=Q2&generator=links&gplnamespace=0&gpllimit=100&prop=pageterms&wbptterms=label 
+1

, но я могу использовать викиданное Query Service SPARQL для этого они? – Alexan

+1

теперь кажется, что вы можете напрямую использовать id вместо numeric-id: maxlath

Смежные вопросы