2015-04-01 28 views
0

我嘗試在DBpedia的SPARQL中編寫查詢以返回某個國家/地區高中的所有信息。我在這裏運行snorql上的查詢link,但它返回「無結果」。我在查詢中找不到任何錯誤。誰能幫忙?DBDB中的SPARQL不返回結果

SELECT ?school 
WHERE { 
?school a owl:school. 
?school owl:location ?city. 
?city owl:isPartOf ?state. 
?state owl:country <http://dbpedia.org/resource/United_States>. 
} 

編輯:

  1. http://dbpedia.org/ontology/school
  2. http://dbpedia.org/ontology/location
  3. http://dbpedia.org/ontology/country
+0

什麼是'owl:school'?什麼是'貓頭鷹:位置'?什麼是'owl:isPartOf'?什麼是'owl:country'?這些標識符不是[OWL 2](http://www.w3.org/TR/owl2-overview/)的一部分。 – 2015-04-01 11:03:19

+0

如果您訪問Snorql的鏈接,您會看到已經從virtuoso中設置了前綴。例如:'PREFIX貓頭鷹: ' – Tasos 2015-04-01 11:06:20

回答

3

你似乎弄錯了,你應該使用本體。您正在使用從映射到前綴owl,即命名空間各種標識符:

  • owl:school
  • owl:location
  • owl:isPartOf
  • owl:country

然而,當你不指定自定義前綴映射,則使用默認映射,根據其將owl映射到http://www.w3.org/2002/07/owl#,這是OWL 2。 OWL 2不包含所列標識符的任何定義,因此DBpedia不使用這些標識符。

DBpedia中使用標識符SchoollocationisPartOfcountry從名稱空間http://dbpedia.org/ontology/,其被映射到前綴dbpedia-owl。因此,在你的查詢中,只需使用你實際想要使用的本體的前綴。此外,請注意,dbpedia-owl:School是大寫,dbpedia-owl:school與小s是屬性。

SELECT ?school 
WHERE { 
    ?school a dbpedia-owl:School. 
    ?school dbpedia-owl:location ?city. 
    ?city dbpedia-owl:isPartOf ?state. 
    ?state dbpedia-owl:country <http://dbpedia.org/resource/United_States>. 
} 
+1

非常感謝。在編輯之前,我將它作爲dbpedia-owl。你可以看到歷史,但我認爲這是錯誤的,並將其改爲貓頭鷹。你知道我是否可以用「高中」來代替「學校」。在查詢中替換它不起作用。 – Tasos 2015-04-01 11:18:20

+0

@AnastasiosVentouris:自動支持的前綴的完整列表從[基於Web的前端](http://www.dbpedia.org/sparql)鏈接,它是[here](http://www.dbpedia。組織/ SPARQL?nsdecl)。至於高中,http://dbpedia.org/ontology/Highschool沒有顯示任何內容,通常意味着這樣的URI沒有定義。似乎有一個http://dbpedia.org/ontology/highschool屬性,但它不清楚它在DBpedia數據中實際應用的程度。 (Highschool是一個非常特定國家的概念,這可能是爲什麼它不被定義爲一個類。) – 2015-04-01 11:29:55