1

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

IE。给定,uri1,uri2,uri3 ...我们希望查询给我们

uri1 标签1

uri2 标签2

uri3 标签3

虽然我们可以发出单独的查询来获取每个 uri 的标签,但理想情况下,我们希望避免发出大量请求。

我试图从构造、联合和子查询的角度进行思考,但收效甚微。

谢谢!

4

1 回答 1

5

您没有说明标签在 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))
}
于 2012-09-05T09:45:42.157 回答