此查询适用于http://dbpedia.org/snorql/。为什么我的查询不能在wikidata.dbpedia.org/sparql上运行?
但它不适用于http://wikidata.dbpedia.org/sparql。
我该如何解决这个问题才能在http://wikidata.dbpedia.org/sparql中工作?
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbpedia: <http://dbpedia.org/resource>
PREFIX dbpprop: <http://dbpedia.org/property>
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
SELECT DISTINCT *
WHERE{
?city rdf:type dbo:PopulatedPlace.
OPTIONAL {?city rdfs:label ?labelEN. FILTER (lang(?labelEN) = 'en').}
OPTIONAL {?city rdfs:label ?labelES. FILTER (lang(?labelES) = 'es').}
OPTIONAL {?city dbo:populationTotal ?pop.}
OPTIONAL {?city dbo:country ?country.
OPTIONAL {?country rdfs:label ?countryEN . FILTER (lang(?countryEN) = 'en').}
OPTIONAL {?country rdfs:label ?countryES . FILTER (lang(?countryES) = 'es').}
}
OPTIONAL {?city geo:long ?long.}
OPTIONAL {?city geo:lat ?lat.}
FILTER (?pop>1000000).
}
LIMIT 100
用''city dbo:populationTotal?pop.'替换'OPTIONAL {?city dbo:populationTotal?pop。}'' –
@StanislavKralin这不是必要的,但确实更有用。 – AKSW
@HumanFromEarth你的查询很有效,但是由于一堆OPTIONAL(这是一堆左连接),查询非常昂贵并且导致超时 - 在这种情况下,Virtuoso有一些随时功能,它返回在给定的时间。 WebUI中的默认值是30秒,您可以增加它。 – AKSW