【问题标题】:Wikipedia API and SPARQL in a single query单个查询中的 Wikipedia API 和 SPARQL
【发布时间】:2016-12-27 19:16:38
【问题描述】:

我需要搜索 全文 中包含某些特定单词的 Wikipedia 页面。为了改进结果,我想将结果限制为描述实体的页面,这些实体是特定实体的实例

为了搜索全文,我可以使用 Wikipedia API,使用 query actionsearch generator

为了过滤给定实体的实例,我可以使用 Wikidata API 和 SPARQL 查询。

有没有办法在应用两个过滤器的单个查询中执行这两个操作?

【问题讨论】:

    标签: sparql wikipedia wikipedia-api wikidata


    【解决方案1】:

    由于June 2017,从维基数据SPARQL调用维基媒体API是possible

    SELECT ?wikidata_item ?wikipedia_title {
        SERVICE wikibase:mwapi {
          bd:serviceParam wikibase:endpoint "en.wikipedia.org" .
          bd:serviceParam wikibase:api "Generator" .
          bd:serviceParam mwapi:generator "search" .
          bd:serviceParam mwapi:gsrsearch "triplestore" .
          bd:serviceParam mwapi:gsrlimit "max" .
          ?wikidata_item wikibase:apiOutputItem mwapi:item . 
          ?wikipedia_title wikibase:apiOutput mwapi:title .
     }
      # hint:Prior hint:runFirst "true".
      ?wikidata_item wdt:P31 wd:Q3539533  .
      FILTER (?wikipedia_title != "Blazegraph")
    }
    

    Try it!

    【讨论】:

      【解决方案2】:

      不,它们具有完全独立的不交互的搜索后端。 Wikidata API 使用 SQL 查询;搜索 API 使用 Elasticsearch; SPARQL 服务使用 Blazegraph。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-01-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-03
        相关资源
        最近更新 更多