Sparql 从Wikidata检索结果时超时

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)

此从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)), "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,第二个很好用!