2012-09-18 105 views
0

我想從dbpedia獲取一些數據。 我有實體網址,希望獲得一些關於本地化的信息。 現在我打電話詢問這樣的:查詢dbpedia sparql獲取更多結果

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})。 但我想優化它,並在一個查詢中獲得更多實體的結果。 也有可能不在每行中設置網址?

問候 彼得

回答

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}, ...) ) 
     } 

也許這將是對別人有幫助嗎? 或者,也許有人知道更好的解決方案?