如果我们有一组 URI,我们如何在一个 SINGLE SPARQL QUERY 中获取所有这些 URI 的标签?
IE。给定,uri1,uri2,uri3 ...我们希望查询给我们
uri1 标签1
uri2 标签2
uri3 标签3
虽然我们可以发出单独的查询来获取每个 uri 的标签,但理想情况下,我们希望避免发出大量请求。
我试图从构造、联合和子查询的角度进行思考,但收效甚微。
谢谢!
如果我们有一组 URI,我们如何在一个 SINGLE SPARQL QUERY 中获取所有这些 URI 的标签?
IE。给定,uri1,uri2,uri3 ...我们希望查询给我们
uri1 标签1
uri2 标签2
uri3 标签3
虽然我们可以发出单独的查询来获取每个 uri 的标签,但理想情况下,我们希望避免发出大量请求。
我试图从构造、联合和子查询的角度进行思考,但收效甚微。
谢谢!
您没有说明标签在 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))
}