簡體   English   中英

如何使用sparql查詢進入dbpedia中的特定頁面?

[英]How to get to a particular page in dbpedia using sparql query?

我有一個人的URI,例如http://dbpedia.org/resource/Ashok_Gehlot (通過HTTP檢索時,它會重定向到http://dbpedia.org/page/Ashok_Gehlot )。 我想提取有關此資源的信息。 我如何編寫SPARQL查詢來檢索例如Ashok Gehlot的生日? 在以下查詢中(到目前為止,我一直在嘗試)我需要替換什么???? 與?

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX dbpedia: <http://dbpedia.org/resource/>PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>PREFIX category: <http://dbpedia.org/resource/Category:>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>PREFIX foaf: <http://xmlns.com/foaf/0.1/>PREFIX dbpprop: <http://dbpedia.org/property/>
PREFIX dbprop: <http://dbpedia.org/property/>PREFIX grs: <http://www.georss.org/georss/>
PREFIX category: <http://dbpedia.org/resource/Category:>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX freebase: <http://rdf.freebase.com/ns/>
PREFIX db: <http://dbpedia.org/>
PREFIX dbp: <http://dbpedia.org/property/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX http: <http://www.w3.org/2006/http#>
SELECT ?x ?y WHERE {
  ?x ?????? http://dbpedia.org/resource/Ashok_Gehlot.
  ?x owl:birthdate ?z.
}

您不需要頁面的屬性,而需要屬性的屬性。 在這種情況下,資源為<http://dbpedia.org/resource/Ashok_Gehlot> RDF是基於圖的數據表示形式,而SPARQL查詢是基於圖的查詢語言。 您正在尋找源為<http://dbpedia.org/resource/Ashok_Gehlot>的圖的邊緣,其邊緣標簽為owl:birthdate (這沒有道理,但這是一個不同的問題),並且您想要檢索邊緣的另一端並將其值綁定到變量?z 因此,您的查詢將是:

select ?z where { 
  <http://dbpedia.org/resource/Ashok_Gehlot> owl:birthdate ?z
}

SPARQL結果

當然,該查詢沒有結果,因為該資源沒有屬性owl:birthdate 如果您瀏覽您在看到數據阿什·格洛 ,你會發現, 主要有

  • dbpedia-owl:birthDate 1951-05-03(xsd:date)
  • dbpprop:birthDate 3(xsd:integer)
  • dbpprop:dateOfBirth 1951(xsd:integer)

dbpedia-owl數據比dbpprop數據干凈得多,因此您應該使用它。 還注意到前綴dbpedia:縮寫<http://dbpedia.org/resource/> ,您的查詢應為:

select ?birthDate where { 
  dbpedia:Ashok_Gehlot dbpedia-owl:birthDate ?birthDate
}

SPARQL結果

--------------
| birthDate  |
|============|
| 1951-05-03 |
--------------

如果出於某種原因,使查詢更像是原始嘗試的形式確實很重要,則可以使用以下內容。 模式?x owl:sameAs? dbpedia:Ashok_Gehlot ?x owl:sameAs? dbpedia:Ashok_Gehlot意味着屬性owl:sameAs?x綁定到距離dbpedia:Ashok_Gehlot為零或一步的owl:sameAs 對於零步的情況, ?x只是dbpedia:Ashok_Gehlot ,這就是您想要的。 在一種情況下, ?x可以是owl:sameAs dbpedia:Ashok_Gehlot ,也可以。

select ?birthDate where { 
  ?x owl:sameAs? dbpedia:Ashok_Gehlot .
  ?x dbpedia-owl:birthDate ?birthDate .
}

SPARQL結果

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM