[英]simple sparql query from dbpedia
我有一個關於我正在嘗試從教程構建的SPARQL查詢的問題。 我想生成三元組,它返回一個樂隊成員列表以及他們使用DBPedia端點所在的樂隊。
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbp: <http://dbpedia.org/resource/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name ?bandname where {
?person foaf:name ?name .
?band dbo:bandMember ?person .
?band dbo:genre dbpedia:Punk_rock .
?band dbp:name ?bandname .
}
我也使用[SPARQL查詢驗證器] [2]試圖找出我的問題,似乎我使用了不正確的前綴“dbp:name?bandname”我只是希望在可能的情況下以JSON返回三元組。
一旦我可以運行,我想添加另一個前綴,從GeoNames,以查看與樂隊相關的地方,如果可能(但該部分是在未來)。 任何見解將不勝感激!
您的查詢存在一些問題。
PREFIX dbp: <http://dbpedia.org/property/>
這是我用來檢索與其成員關聯的樂隊列表的查詢:
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX dbp: <http://dbpedia.org/property/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?members ?bandName where {
?band dbo:genre dbr:Punk_rock .
?band dbp:currentMembers ?members.
?band foaf:name ?bandName
FILTER(langMatches(lang(?bandName), "en"))
}
過濾器部分允許我們避免重復,以防文字也在其他語言中定義。
但是如果你仍然想使用dbo:bandMember屬性,這個查詢也可以完成這項工作:
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX dbp: <http://dbpedia.org/property/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?personName ?bandName where {
?band dbo:bandMember ?person .
?person foaf:name ?personName .
?band dbo:genre dbr:Punk_rock .
?band foaf:name ?bandName
FILTER(langMatches(lang(?bandName), "en"))
FILTER(langMatches(lang(?personName), "en"))
}
希望有所幫助!
問題是未定義的前綴dbpedia
。 另外我認為你必須用foaf:name
替換dbp:name
foaf:name
:
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbp: <http://dbpedia.org/resource/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name ?bandname where {
?person foaf:name ?name .
?band dbo:bandMember ?person .
?band dbo:genre dbp:Punk_rock .
?band foaf:name ?bandname .
}
唉,使用SELECT
你不會得到三元組,而只是表格結果中的名稱(或其他東西)。 很像SQL。 如果你想要三元組,你需要CONSTRUCT
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.