我想从dbpedia获取一些数据。我有实体网址,并希望获得一些关于本地化的信息。现在我像这样调用query:
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT DISTINCT * WHERE
{
<{0}> rdfs:label ?label .
OPTIONAL {
<{0}> geo:lat ?lat ;
geo:long ?long .
} .
OPTIONAL {
<{0}> dbo:Country ?dboCountry
} .
OPTIONAL {
<{0}> dbpedia-owl:country ?dbpediaContry .
?dbpediaContry dbpprop:cctld ?ccTLD
}.
OPTIONAL {
<{0}> dbpprop:country ?dbpropContry
}
FILTER ( lang(?label) = "en" )
}
对于每个url (用url替换{0} )。但我希望对其进行优化,并在一个查询中获得更多实体的结果。还有没有可能不在每一行都设置url?
关注Piotr
发布于 2012-09-19 04:55:09
嗯,看起来我已经找到了两个问题的答案。您是否知道此(http://en.wikipedia.org/wiki/Rubber_duck_debugging)解决方案是:
SELECT DISTINCT *
WHERE {
?uri rdfs:label ?label .
OPTIONAL { ?uri geo:lat ?lat .
?uri geo:long ?long} .
FILTER (?uri IN ({0}, {1}, ...) )
}
也许这会对其他人有帮助?或者也许有人知道更好的解决方案?
https://stackoverflow.com/questions/12472753
复制相似问题