Как искать в Викиданных в определенных категориях?

В настоящее время я ищу в Викиданных со следующим запросом:

https://www.wikidata.org/w/api.php?action=wbsearchentities&language=da&limit=20&format=json&search=jordb%C3%A6r&uselang=da

Мне нужно найти различные ингредиенты и продукты питания.

Таким образом, запрос ищет клубнику на датском языке. Моя проблема в том, что я получаю такие результаты, как картины и лица. Можно ли как-то искать в определенных категориях, таких как еда? или как-то ограничить "шумность" "ложных" попаданий?

Я пытался просмотреть Викиданные и выполнить поиск в Google, но мне не ясно, какие у меня есть варианты.


person Ronnie Jespersen    schedule 23.05.2016    source источник
comment
Вы можете проверить свойство instance of (P31) результатов, чтобы увидеть, принадлежат ли они к одной и той же категории.   -  person leo    schedule 23.05.2016
comment
Привет, @leo, извини за поздний ответ. Содержимое не соответствует P31, и не похоже, что все они имеют instance of. К сожалению, я пришел к выводу, что с едой/ингредиентами это просто невозможно.   -  person Ronnie Jespersen    schedule 31.05.2016


Ответы (2)


Для этого можно использовать службу запросов Викиданных.

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

SELECT DISTINCT ?food ?label WHERE {
   ?food (wdt:P31?/wdt:P279*) wd:Q2095.
   ?food rdfs:label ?label.
   SERVICE wikibase:label { bd:serviceParam wikibase:language "da". }
   FILTER((LANG(?label)) = "da")
} ORDER BY ?label

запрос ссылки

Или, чтобы получить все продукты питания с надписью «Jordbær» на датском языке, вы можете сделать что-то вроде этого:

SELECT DISTINCT ?food ?foodLabel WHERE {
  ?food (wdt:P31?/wdt:P279*) wd:Q2095 ;
        rdfs:label "Jordbær"@da;
  SERVICE wikibase:label { bd:serviceParam wikibase:language "da". }
}

запросить ссылку

person Jan Drewniak    schedule 20.07.2017

Боюсь, на данный момент нет простого способа получить такие адаптированные результаты поиска, но есть такая же потребность (для книг в наш случай), мы нашли 2 обходных пути:

1 – поиск и фильтрация

2 — фильтровать и искать

  • сделайте запрос SPARQL, чтобы получить все действительные результаты (см. документацию query.wikidata.org), один раз для всех (но нуждается в периодическом обновлении)
  • поместите все эти результаты в свою собственную поисковую систему. См. наш проект Поисковая система подмножества Викиданных.
  • затем, при необходимости, отправьте запрос в эту поисковую систему.
person maxlath    schedule 20.07.2017