使用URI查询资源

时间:2016-01-29 13:47:20

标签: sparql rdf

我有一堆资源URI,我需要与每个资源相关的属性值。对于单个资源,比如<http://my.url/res#resourceUri>,我可以编写此查询:

PREFIX v: <http://my.url/res#>
SELECT ?name
WHERE {
    <http://my.url/res#resourceUri> a v:t;
        rdfs:label ?name .
}

对于多种资源,我可以使用 UNION ,如下所示:

PREFIX v: <http://my.url/res#>
SELECT ?name
WHERE {
    { <http://my.url/res#resourceUri> a v:t; rdfs:label ?name } UNION
    { <http://my.url/res#anotherResource> a v:t; rdfs:label ?name }
}

有没有办法编写第二个查询的更短,更精简的版本?

1 个答案:

答案 0 :(得分:3)

您可以使用values。您的示例将写为

PREFIX v: <http://my.url/res#>

SELECT ?resource ?name WHERE {
  values ?resource { <http://my.url/res#resourceUri>
                     <http://my.url/res#anotherResource> }
  ?resource a v:t;
            rdfs:label ?name
}

问题不同,但how to use Union/or in sparql path with arbitrary length?的答案是相似的。