使用 URI 查询资源

Query for resources using their URIs

我有一堆资源 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 }
}

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

您可以为此使用 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
}

问题不同,但的答案是相似的。