我需要在全文中搜索包含某些特定字词的维基百科页面。为了改进结果,我想将结果限制为描述 特定实体的实体的页面。
为了搜索全文,我可以使用维基百科API,使用查询操作和搜索生成器。
为了过滤给定实体的实例,我可以使用Wikidata API和SPARQL查询。
有没有办法在应用两个过滤器的单个查询中执行这两个操作?
答案 0 :(得分:3)
自June 2017起,possible是从Wikidata SPARQL调出到Wikimedia API的方法:
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")
}
答案 1 :(得分:1)
不,那些完全独立的搜索后端没有交互。 Wikidata API使用SQL查询;搜索API使用Elasticsearch; SPARQL服务使用Blazegraph。