Query optimization 可以在查询中进行更快的筛选吗?

Query optimization 可以在查询中进行更快的筛选吗?,query-optimization,sparql,wikidata,Query Optimization,Sparql,Wikidata,这个查询对于“WHERE IN”。。。因为不需要检查“宇宙”,只需在()中设置小的 SELECT ?item ?itemLabel ?of ?ofLabel WHERE { ?item wdt:P31 ?of. FILTER ( ?item IN ( wd:Q28114532, wd:Q27745011,wd:Q3415363,wd:Q3415324,wd:Q2877432,wd:Q2877444, wd:Q2396644,wd:Q3444776,wd:Q2877428

这个查询对于“WHERE IN”。。。因为不需要检查“宇宙”,只需在()中设置小的

SELECT ?item ?itemLabel ?of ?ofLabel
WHERE 
{
  ?item wdt:P31 ?of.
  FILTER ( ?item IN (
    wd:Q28114532, wd:Q27745011,wd:Q3415363,wd:Q3415324,wd:Q2877432,wd:Q2877444,
    wd:Q2396644,wd:Q3444776,wd:Q2877428,wd:Q578757,wd:Q2877445,wd:Q2333617
  ) )
  SERVICE wikibase:label { 
     bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".
  }
}
还有其他方法可以更快地完成同样的事情吗?


类似的问题也会出现,但检查项目是否具有“任何依赖关系”-某个对象的实例、子实例、类或子类(例如Q7860962)


正如@AKSW所指出的,您可以使用。您的第一次查询速度将提高约150倍:

选择标签的项目标签
哪里
{值(?项){
(wd:Q28114532)(wd:Q27745011)(wd:Q345363)(wd:Q345324)(wd:Q2877432)(wd:Q2877444)
(wd:Q2396644)(wd:Q34444776)(wd:Q2877428)(wd:Q578757)(wd:Q2877445)(wd:Q2333617)
}
?第wdt项:第31页,共页。
服务wikibase:标签{
bd:serviceParam wikibase:language“[AUTO_language],en”。
}
}

在第二个查询中,还应添加:

SELECT?item?itemLabel?x?xLabel
哪里
{
值(?项){
(wd:Q28114532)(wd:Q27745011)(wd:Q345363)(wd:Q345324)(wd:Q2877432)(wd:Q2877444)
(wd:Q2396644)(wd:Q34444776)(wd:Q2877428)(wd:Q578757)(wd:Q2877445)(wd:Q2333617)
}
?项目wdt:P31?x。
?x(wdt:P31 | wdt:P279)*wd:Q7860962。
提示:先前提示:准备“前进”。
服务wikibase:标签{
bd:serviceParam wikibase:language“[AUTO_language],en”。
}
}

在这个简单的查询中,没有优化的余地。我的意思是,它只是一个单一的三重模式+一个过滤器。另一种方法是通过SPARQL
VALUES
子句使用内联数据:
SELECT?item?itemLabel?,其中{item wdt:P31?of.VALUES?item{wd:q2814532 wd:q2774511 wd:q345363 wd:q345324 wd:q28777444 wd:q444776 wd:q287757 wd:q287445 wd:q333617}服务wikibase:label{bd:serviceParam wikibase:language“[AUTO_language],en.}}
SELECT ?item ?itemLabel ?x ?xLabel
WHERE 
{
  ?x (wdt:P31|wdt:P279)* wd:Q7860962 .
  ?item wdt:P31 ?x .
  FILTER ( ?item IN (
    wd:Q28114532, wd:Q27745011,wd:Q3415363,wd:Q3415324,wd:Q2877432,wd:Q2877444,
    wd:Q2396644,wd:Q3444776,wd:Q2877428,wd:Q578757,wd:Q2877445,wd:Q2333617
  ) )
  SERVICE wikibase:label { 
     bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".
  }
}