如何在SPARQL 1.1中使用替換函數,尤其是在更新命令中?SPARQL 1.1:如何使用替換函數?
例如,如果我有多個三元組?s?p?o其中?o是一個字符串,並且對於所有三元組,其中?o包含字符串「gotit」我想插入一個額外的三元組,其中「gotit」被「haveit」取代,我怎麼能這樣做?我試圖達到這個是芝麻2.6.0。
我嘗試這樣幼稚的做法:
INSERT { ?s ?p replace(?o,"gotit","haveit","i") . }
WHERE { ?s ?p ?o . FILTER(regex(?o,"gotit","i")) }
但是這引起了語法錯誤。
我也沒有使用替換的查詢結果列表,像這樣:
SELECT ?s ?p (replace(?o,"gotit","haveit","i") as ?r) WHERE { .... }
的SPARQL文檔沒有包含如何使用此功能的例子。
是否有可能使用函數來創建新的值,而不僅僅是測試現有的值,如果是的話,怎麼樣?
感謝您指出使用?名稱而不是?o的錯誤。我試圖簡化這裏的實際查詢並忘記將名稱更改爲?o。 我試着用我的SESAME安裝BIND查詢,但它也給我一個語法錯誤...我將不得不弄清楚,如果這是在最新的版本支持! – Johsm
我剛剛測試過這個,它在SOEIM-Lite存儲庫的芝麻版本2.6.5中很好用。 – Johsm