在单个sparql查询中获取多个uri的标签

时间:2012-09-05 09:20:10

标签: sparql

如果我们有一组URI,我们如何在SINGLE SPARQL QUERY中获取所有这些标签?

即。鉴于,uri1,uri2,uri3 ...... 我们希望查询给我们

uri1 label1

uri2 label2

uri3 label3

虽然我们可以发出单独的查询来获取每个uri的标签,但我们最好还是避免发出大量请求。

我试图用构造,工会和子查询来思考,但收效甚微。

谢谢!

1 个答案:

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