如果我们有一组URI,我们如何在一个SPARQL查询中获得所有URI的标签?
即。给定,uri1,uri2,uri3 ...我们希望查询能够提供给我们
uri1 label1
uri2 label2
uri3 label3
虽然我们可以发出单独的查询来获取每个uri的标签,但理想情况下,我们希望避免发出大量的请求。
我试图从构造、联合和子查询的角度进行思考,但收效甚微。
谢谢!
发布于 2012-09-05 17:45:42
您没有说明标签在RDF数据中是如何表示的,所以我假设它们是通过rdfs:label属性连接到URI的。那么查询就是这样的:
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?uri ?label { ?uri rdfs:label ?label }如果只想要特定URI的标签,可以通过过滤?uri变量来获得:
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?uri ?label {
?uri rdfs:label ?label
FILTER (?uri = ex:resource1 || ?uri = ex:resource2 || ?uri = ex:resource3)
}或者,如果你的商店支持SPARQL 1.1:
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?uri ?label {
?uri rdfs:label ?label
FILTER (?uri IN (ex:resource1, ex:resource2, ex:resource3))
}https://stackoverflow.com/questions/12278209
复制相似问题