Wikidata中的高效过滤器查询

时间:2019-05-16 08:58:09

标签: sparql wikipedia-api wikidata

我正在尝试在Wikidata上的SPARQL中形成有效的过滤器查询。让我解释一下我的过程:

  1. 我使用关键字查询搜索实体API,例如(苹果,橘子)
  2. API查询返回相关商品ID的列表,例如(wd:Q629269,wd:Q154950,wd:Q312,wd:Q95,wd:Q4878289,wd:Q10817602)
  3. 使用此ID列表,然后查询SPARQL并返回属于CLASS或某些类型的SUBLCASS的项目,例如(p:P31 / ps:P31 / wdt:P279 * wd:Q43229)-如果它是组织或其子类,则返回所有内容。
  4. 然后,对于ID列表中属于某些CLASS的项,如果存在则返回信息项,例如(可选的)。

我是SPARQL的新手。我的问题是,这是实现此输出的最有效方法吗?在我看来,效率很低,而且找不到类似类型的问题in the tutorial examples

您可以try the query here

    SELECT distinct ?item ?itemLabel ?itemDescription ?web ?inception ?ISIN
    WHERE{
      FILTER (?item IN (wd:Q629269, wd:Q154950, wd:Q312, wd:Q95, wd:Q4878289, wd:Q10817602))
      ?item p:P31/ps:P31/wdt:P279* wd:Q43229.
      OPTIONAL {
        ?item wdt:P856 ?web. # get item-web
        ?item wdt:P571 ?inception. # get item-web
        ?item wdt:P946 ?ISIN. # get item-isin
            }
      SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE]". }
        }
LIMIT 10

0 个答案:

没有答案