我需要搜索全文中包含某些特定单词的维基百科页面。为了改进结果,我想将结果限制为描述作为特定实体实例的实体的页面。
为了搜索全文,我可以使用维基百科 API,使用查询操作和搜索生成器。
为了过滤给定实体的实例,我可以使用 Wikidata API 和 SPARQL 查询。
有没有办法在应用两个过滤器的单个查询中执行这两个操作?
最佳答案
自 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")
}
关于sparql - 单个查询中的 Wikipedia API 和 SPARQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41350932/