Sparql 从Wikidata检索结果时超时
此从Wikidata检索电影海报的查询导致query.Wikidata.org上出现“已达到查询超时限制”错误:Sparql 从Wikidata检索结果时超时,sparql,wikidata,Sparql,Wikidata,此从Wikidata检索电影海报的查询导致query.Wikidata.org上出现“已达到查询超时限制”错误: #defaultView:ImageGrid SELECT ?item ?itemLabel ?pic ?fileTitle ?width ?height WHERE { ?item wdt:P31/wdt:P279* wd:Q11424 . ?item wdt:P3383 ?pic . BIND(STRAFTER(wikibase:decodeUri(STR(?pic)
#defaultView:ImageGrid
SELECT ?item ?itemLabel ?pic ?fileTitle ?width ?height
WHERE
{
?item wdt:P31/wdt:P279* wd:Q11424 .
?item wdt:P3383 ?pic .
BIND(STRAFTER(wikibase:decodeUri(STR(?pic)), "http://commons.wikimedia.org/wiki/Special:FilePath/") AS ?fileTitle)
SERVICE wikibase:label {
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en"
}
SERVICE wikibase:mwapi {
bd:serviceParam wikibase:endpoint "commons.wikimedia.org";
wikibase:api "Generator";
wikibase:limit "once";
mwapi:generator "allpages";
mwapi:gapfrom ?fileTitle;
mwapi:gapnamespace 6; # NS_FILE
mwapi:gaplimit 1;
mwapi:prop "imageinfo";
mwapi:iiprop "dimensions".
?size wikibase:apiOutput "imageinfo/ii/@size".
?width wikibase:apiOutput "imageinfo/ii/@width".
?height wikibase:apiOutput "imageinfo/ii/@height".
}
}
ORDER BY ?item
LIMIT 100
OFFSET 0
设置下限有效,结果少于100个,并按删除订单。但是,orderby
是确保后续查询检索所有结果所必需的,添加orderby?项
将再次引发超时错误。理想情况下,我希望使用最小宽度的海报进行过滤,但是添加过滤器(?宽度>1500)
无论限制有多低都会超时
对于优化查询以使其一致可靠地工作,有什么建议吗?即使只返回一个值,也可以重复查询,直到检索到所有值。@StanislavKralin这看起来不正确吗?您的子查询没有返回
?fileTitle
var我们应该用于mwapi。或者你的疑问背后的魔力是什么?据我所知,mwapi返回给定文件名的宽度和高度?此外,他确实希望使用分页,至少理论上需要排序依据。@unformeduser,是的,我的错误。美好的但是挑剔:视图pragma中的一个小错误打破了gridview:\defaultVew:ImageGrid
->\defaultView:ImageGrid
谢谢@stanislav kralin,第二个很好用!