SPARQL查询最终标签

时间:2016-05-29 21:00:58

标签: 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

1 个答案:

答案 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)
}