如果我们有一组URI,我们如何在SINGLE SPARQL QUERY中获取所有这些标签?
即。鉴于,uri1,uri2,uri3 ...... 我们希望查询给我们
uri1 label1
uri2 label2
uri3 label3
虽然我们可以发出单独的查询来获取每个uri的标签,但我们最好还是避免发出大量请求。
我试图用构造,工会和子查询来思考,但收效甚微。
谢谢!
答案 0 :(得分:4)
您没有说明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))
}