2016-11-06 48 views
0

我正在尋找某個地方的信息(例如:紐約http://dbpedia.org/page/New_York)。我試圖讓信息suchs爲nearestCity,博物館)... 我的請求返回什麼......查找關於某個地方的信息

String name = "New_York"; 
String s4 = "PREFIX g: <http://www.w3.org/2003/01/geo/wgs84_pos#>\n" + 
      "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n" + 
      "PREFIX onto: <http://dbpedia.org/ontology/>\n" + 
      "PREFIX dbpedia: <http://dbpedia.org/resource/>PREFIX dcterms: <http://purl.org/dc/terms/>\n"+ 
      "PREFIX dp: <http://dbpedia.org/resource/>\n"+ 
      "PREFIX dbprop: <http://dbpedia.org/property/>\n" + 
      "PREFIX grs: <http://www.georss.org/georss/>\n"+ 
      "PREFIX dbpedia-oll: <http://dbpedia.org/ontology/> \n"+ 
      "PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>PREFIX category: <http://dbpedia.org/resource/Category:>\n"+ 
      "\n" + 
      "SELECT ?nearestCity \n" + 

      "WHERE\n" + 
      "{ OPTIONAL{onto:"+name+" grs:nearestCity ?nearestCity .}\n"+ 
    " }\n" + 
      "LIMIT 300\n" + 
      ""; 
+0

請發佈真正的SPARQL查詢,而不是Java字符串串聯。 – AKSW

回答

2

有你在做查詢了幾個問題:

1)一些命名空間是錯誤的:資源 New_York具有URI:http://dbpedia.org/resource/New_York。在您的查詢中,將轉換爲"dbpedia:"+name而不是"onto:"+name

2)您正在查找的屬性指向資源New_York,而不是其他方法。例如,對於最近的城市之一,這是工作(再次注意其命名空間的屬性)查詢:

SELECT ?nearestCity where { 
?nearestCity <http://dbpedia.org/property/nearestCity> <http://dbpedia.org/resource/New_York>. 
}LIMIT 300 

(見results

而對於博物館:

SELECT ?m where { 
    ?m <http://dbpedia.org/ontology/museum> <http://dbpedia.org/resource/New_York>. 
    }LIMIT 300 

(請參閱results