Optimization 优化WikiData查询以获得许多带有标签的结果

Optimization 优化WikiData查询以获得许多带有标签的结果,optimization,query-optimization,sparql,wikidata,Optimization,Query Optimization,Sparql,Wikidata,我目前有以下疑问: SELECT DISTINCT ?location ?place_eng ?admin_eng ?country_eng WHERE { { ?settlement wdt:P279 wd:Q486972. ?place wdt:P31 ?settlement. ?place wdt:P1082 ?population. FILTER(?population > 400) OPTIONAL { ?place wdt:P625

我目前有以下疑问:

SELECT DISTINCT ?location ?place_eng ?admin_eng ?country_eng WHERE {
  {
    ?settlement wdt:P279 wd:Q486972.
    ?place wdt:P31 ?settlement.
    ?place wdt:P1082 ?population.
    FILTER(?population > 400)
    OPTIONAL { ?place wdt:P625 ?location. }
    OPTIONAL { ?place wdt:P131 ?admin. }
    OPTIONAL { ?place wdt:P17 ?country. }
  }

  SERVICE wikibase:label {
    bd:serviceParam wikibase:language "en".
    ?place rdfs:label ?place_eng.
  }
  SERVICE wikibase:label {
    bd:serviceParam wikibase:language "en".
    ?admin rdfs:label ?admin_eng.
  }
  SERVICE wikibase:label {
    bd:serviceParam wikibase:language "en".
    ?country rdfs:label ?country_eng.
  }
}
正如你们所看到的,我需要人口超过400的人类住区,以及它们的坐标、一级行政、国家和名称,全部用英语。如果不包含标签,查询运行正常,但如果包含标签,则会超时。我还需要其他语言的标签,所以这显然不是理想的

我在SPARQL是个新手。你能帮我优化这个查询以便它运行吗

此外,由于我打算在以后将结果与从类似的单独查询中获得的标签连接起来,我如何才能做到这一点?假设我现在只获取没有标签的数据,如何编写一个查询来获取我已经拥有的数据的标签(我愿意让脚本来完成查询工作)