2013-12-15 27 views
1

一個SPARQL查詢,我寫我JENASPARQL查詢REGEX/^name$/i(其實name是,可以是任何值的String變量,用空格或不是,它收到的參數方法)。寫作與耶拿,篩選和正則表達式

這裏的串查詢:

String authorquery = "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> " + 
       "PREFIX dc: <http://purl.org/dc/elements/1.1/> " + 
       "PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT " + 
       "?URIAutor WHERE { " + 
       "?URIAutor foaf:name ?Autor." + 
       "FILTER (regex(?Autor, \"" + "/^" + name + "$/" + "\", 'i') ).}"; 

那不是給我一個例外,但沒有返回時,我寫的,我敢肯定,是對數據庫的名稱我的結果。 這就是我想要的這個查詢:我在數據庫上有「Agatha Christie」這個名字。如果name=Agatha我希望查詢不返回任何內容。如果name =「Agatha Christie」(可以是不區分情況),我希望它只返回來自名爲「Agatha Christie」的作者的URI。對於名字「比爾克林頓」和「比爾蓋茨」同樣如此,如果name=Bill我不想找到兩個URI,但查詢應該不返回結果。只有在name="Bill Clinton"的情況下,結果纔會出現在「Bill Clinton」中。

我不知道問題是否與REGEX或將REGEX轉換爲帶有變量的字符串在中間。

你能幫我嗎?

回答

2

請勿在正則表達式字符串周圍放置/.../^name$會做。

+0

謝謝!那就對了! – Luciane