我有一个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 :(得分: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)
}