查询dbpedia sparql以获得更多结果

时间:2012-09-18 08:02:29

标签: sparql dbpedia

我想从dbpedia获取一些数据。 我有实体网址,并希望获得有关本地化的一些信息。 现在我打电话给这样的查询:

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" )
}

为每个网址(用网址替换{0})。 但我想优化它并在一个查询中获得更多实体的结果。 还有可能不在每一行设置网址吗?

此致 彼得

1 个答案:

答案 0 :(得分:1)

嗯,看起来我已经找到了两个问题的答案。 你知道吗(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}, ...)  )
        }

也许对其他人有帮助? 或者也许有人知道更好的解决方案?