2016-05-29 70 views
0

我有一個SPARQL查詢返回歐洲的首都及其人口。查詢如下所示:SPARQL查詢最終標籤

select ?s ?pop 
where { 
    ?s <http://dbpedia.org/ontology/populationTotal> ?pop . 
    ?s a <http://dbpedia.org/ontology/place> 
} 

在此狀態下,它將以以下形式返回城市的名稱:例如, "<http://dbpedia.org/resource/London>"和我想要的是在這種情況下只顯示London。那麼,有沒有辦法告訴SPARQL我只想要最終的標籤?

我的查詢此端點:https://rdf.s4.ontotext.com/4730361296/demo01/repositories/test01

回答

0

的這裏的建議是類似的其他問題 - 使用SPARQL來檢查數據。因此,首先嚐試此查詢,看看是否有任何定義標籤屬性:

select * 
where { 
    ?s <http://dbpedia.org/ontology/populationTotal> ?pop . 
    ?s a <http://dbpedia.org/ontology/place> . 
    ?s ?p ?o . 
} 

在這種情況下,你會發現沒有標籤屬性已爲place類定義來定義。如果需要,您可以使用本地名稱 - 最後一個斜槓(或散列)作爲名稱後面的文本。試試這個查詢:

select * 
where { 
    ?s <http://dbpedia.org/ontology/populationTotal> ?pop . 
    ?s a <http://dbpedia.org/ontology/place> . 
    BIND(REPLACE(xsd:string(?s), ".*[/#]", "") AS ?label) 
}