如何在特定类别的维基数据中搜索?

时间:2016-05-23 10:52:33

标签: wikidata wikidata-api

我目前正在使用以下查询在维基数据中搜索:

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

我需要找到不同的成分和食物。

所以查询是用丹麦语搜索草莓。我的问题是我得到了像绘画和人物的结果。反正有搜索特定类别的食物吗?或以某种方式限制“虚假”命中的“噪音”?

我试图查看维基数据并在Google上搜索,但我不清楚我有哪些选项。

2 个答案:

答案 0 :(得分:1)

您可以使用Wikidata Query Service执行此操作。

要查找丹麦语中的所有食物,您可以使用以下查询:

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

query link

或者,为了获得丹麦语中标有“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". }
}

query link

答案 1 :(得分:0)

我担心目前还没有简单的方法可以获得这种量身定制的搜索结果,但是出于同样的需求(对于our case中的书籍),我们最终得到了2个解决方案:

1 - 搜索和过滤

2 - 过滤并搜索

  • 制作SPARQL请求,获取所有有效结果(请参阅query.wikidata.org documentation),一劳永逸(但需要定期更新)
  • 将所有这些结果放在您自己的搜索引擎中。请参阅我们的Wikidata Subset Search Engine项目
  • 然后,在需要时,请向该搜索引擎提出请求