2016-01-29 67 views
2

我有一堆資源URI,我需要與它們相關的屬性值。對於單個資源,說<http://my.url/res#resourceUri>,我可以這樣寫查詢:使用URI查詢資源

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 } 
} 

有沒有一種辦法寫一個更短,更精簡的第二個查詢?

回答

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?是相似的。