Как найти объект Wikidata по свойствам?

Я хотел бы знать, есть ли способ найти объект Wikidata по указанному свойству, используя их API. Например, существует множество сущностей, имеющих свойство Freebase ID (Property: P646). Это уникальный идентификатор, и я хочу получить сущность по этому идентификатору.

кто-нибудь знает, как этого добиться?

3 ответов


[обновил ответ: использование конечной точки SPARQL]

wdq заменяется официальным SPARQL конечная точка, где этот запрос выглядит следующим образом:

PREFIX wdt: <http://www.wikidata.org/prop/direct/>
SELECT ?item ?itemLabel WHERE {
  ?item wdt:P646 "/m/0gnfq" .
}

вы можете попробуйте на query.wikidata.org

и чтобы получить результаты этого запроса в JSON, вы можете сделать запрос по адресу"https://query.wikidata.org/sparql?format=json&query=YOURQUERY " где YOURQUERY-это кодированный URI SPARQL запрос:

https://query.wikidata.org/sparql?format=json&query=PREFIX%20wikibase%3A%20%3Chttp%3A%2F%2Fwikiba.se%2Fontology%23%3E%20PREFIX%20wdt%3A%20%3Chttp%3A%2F%2Fwww.wikidata.org%2Fprop%2Fdirect%2F%3E%20SELECT%20%3Fitem%20%3FitemLabel%20WHERE%20%7B%20%3Fitem%20wdt%3AP646%20%22%2Fm%2F0gnfq%22%20.%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22en%22%20.%20%7D%20%7D

[ответ: используя Wdq все]

вы можете получить API wmflabs (документация) такой:

http://wdq.wmflabs.org/api?q=string[646:/m/0gnfq]

здесь я запрашиваю объекты wikidata со свойством 646 стоимостью /m/0gnfq.

ответ будет выглядеть так:

{
  "status": {
    "error": "OK",
    "items": 1,
    "querytime": "161ms",
    "parsed_query": "STRING[646:'/m/0gnfq']"
  },
  "items": [
    180736
  ]
}

сущность, которую я искал, такова Q180736.

здесь запрос использует string parameter as Freebase IDs-это строки в wikidata, но для свойств, подразумевающих сущности wikidata как тип значения, вы нужно использовать


теперь есть конечная точка SPARQL вhttps://query.wikidata.org

там вы можете ввести свой запрос SPARQL для Wikidata. например, для свойства Freebase это может выглядеть так:

PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX v: <http://www.wikidata.org/prop/statement/>
PREFIX q: <http://www.wikidata.org/prop/qualifier/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT ?subject ?subjectLabel WHERE {
  ?subject wdt:P646 ?object .

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

Я тоже предпочитаю Wikidata Query API, но если вам нужна дополнительная информация об элементах, которые вы можете использовать Wikidata API. Например, в вашем случае, все элементы, которые ссылаются на идентификатор Свободной базы (P646) свойства:

https://www.wikidata.org/w/api.php?action=query&format=xml&generator=backlinks&gblnamespace=0&gbllimit=5000&prop=info&gbltitle=Property:P646