Запрос API REST Викиданных с соответствующим идентификатором

#wikidata-api

Вопрос:

Я пытаюсь выполнить выравнивание для набора известных идентификаторов VIAF. Я хотел бы запросить API REST Викиданных с идентификатором VIAF (P214) и получить набор из одного или нескольких идентификаторов сущности Викиданных (QXXXXX), соответствующих этой сущности VIAF. Я не могу найти никаких примеров этого ни в документации API Викиданных, ни в других источниках в Интернете.

Я возился с различными перестановками запросов , используя action=wbsearchentities и action=query , все безрезультатно.

Не мог бы кто-нибудь любезно указать мне набор документов или пример кода, в котором перечислены правильные параметры запроса для такого поиска?

Ответ №1:

Предположим, вы хотите найти элемент, идентификатор VIAF которого равен «113230702» (т. Е. Дуглас Адамс).

Решение 1

Воспользуйся action=query :

 https://www.wikidata.org/w/api.php?action=queryamp;format=jsonamp;list=searchamp;srsearch=haswbstatement:P214=113230702
 

Ответ на URL-адрес:

 {"batchcomplete":"","query":{"searchinfo":{"totalhits":1},"search":[{"ns":0,"title":"Q42","pageid":138,"size":319024,"wordcount":1204,"snippet":"Douglas AdamsnDouglas Adamsnu0414u0443u0433u043bu0430u0441 u0410u0434u0430u043cu0441nDouglas AdamsnDouglas AdamsnDouglas AdamsnDouglas AdamsnDouglas AdamsnDouglas AdamsnDouglas AdamsnDouglas Adams","timestamp":"2021-08-13T22:04:39Z"}]}}
 

Решение 2

Используйте Службу Запросов к Викиданным:

 https://query.wikidata.org/bigdata/namespace/wdq/sparql?format=jsonamp;query=SELECT DISTINCT ?x
WHERE {
  ?x wdt:P214 "113230702"
}
 

Этот последний URL-адрес получен из следующего запроса SPARQL:

 SELECT DISTINCT ?x
WHERE {
  ?x wdt:P214 "113230702"
}
 

Ответ на URL-адрес:

 {
  "head" : {
    "vars" : [ "x" ]
  },
  "results" : {
    "bindings" : [ {
      "x" : {
        "type" : "uri",
        "value" : "http://www.wikidata.org/entity/Q42"
      }
    } ]
  }
}
 

Комментарии:

1. Идеальный. Спасибо!

2. Не за что! Пожалуйста, подумайте о том, чтобы отметить ответ как принятый.

3. Я пытался, но там говорилось, что мне нужен «опыт» не менее 15 лет, которого, по-видимому, мне не хватает. Или ты имеешь в виду что-то другое?