我查詢用一個簡單的SPARQL查詢的API:SPARQL獲得超過一個子項
PREFIX ...
SELECT DISTINCT *
WHERE {
?item dct:date ?date .
?item dct:title ?title .
?item rdfs:info ?info .
}
這將返回我的XML
<results>
<result>
<binding name='title'>
<literal>titletitle</literal>
</binding>
<binding name='info'>
<uri>link</uri>
</binding>
<binding name='date'>
<literal datatype='http://www.w3.org/2001/XMLSchema#dateTime'>2012-12-21T02:26:00+00:00</literal>
</binding>
<binding name='item'>
<uri>link</uri>
</binding>
</result>
...
</results>
但問題是:我知道,有與此項目匹配的多個rdfs:info鏈接。我如何查詢我得到的
...
<binding name='info'>
<uri>link1</uri>
</binding>
<binding name='info'>
<uri>link2</uri>
</binding>
<binding name='info'>
<uri>link3</uri>
</binding>
...
?這很簡單,還是我需要一個子查詢或一些奇怪的UNION
? 如果我只是嘗試
PREFIX ...
SELECT DISTINCT *
WHERE {
?item dct:date ?date .
?item dct:title ?title .
OPTIONAL (?item rdfs:info ?info1).
OPTIONAL (?item rdfs:info ?info2).
}
,將返回的?info1
和?info2
值的所有可能的排列。另外,我不知道信息項目的數量。
如果我加FILTER (?info1 != ?info2)
,我仍然會得到一些排列組合。我認爲從代數的角度來看,可能會丟棄排列組合。但我怎樣才能在uris上應用<
?
我發佈這http://answers.semanticweb.com/questions/20424/sparql-get-more-than-one-subitem並投票結束,因爲一個小時後,只有7個意見。這似乎是脫離主題。 –