我有Jena(2.6.4)和ARQ(2.8.8),無法從三重存儲中刪除數據。 SPARQL要求:Jena DELETE和URI
DELETE {?doc ?p ?o}
WHERE { ?doc ?p ?o;
<http://example#fullName> <file:/c:/1.txt> }
這個請求芝麻工作臺工作正常。
但是,當我試圖從Java與DB2第10節RDF三元店沒有發出它發生:
Dataset ds = RdfStoreFactory.connectDataset(store, conn);
GraphStore graphStore = GraphStoreFactory.create(ds) ;
UpdateAction.parseExecute(deleteDocumentString, graphStore);
我發現的唯一途徑 - 比較字符串:
{?doc base:fullName ?fname. FILTER(str(?fname) = "file:/c:/1.txt")
我重新對Jena 2.7.2,ARQ 2.9.2進行了沒有DB2的測試。相同的結果:DELETE {?doc?p?o} WHERE {?doc。 ?doc?p?o} - 沒有錯誤,沒有被刪除。要刪除我應該使用這個查詢:DELETE {?doc?p?o} WHERE {?doc ?fname。 FILTER(str(?fname)=「file:/ c:/1.txt」)?doc?p?o} –
gmlvsv
2012-07-27 07:24:56
我認爲問題在於你期待一個URI,但是這個值實際上是一個文字。我已經更新了我的答案,請參閱下文。不知道爲什麼Jena和芝麻之間會有所不同,除非你使用芝麻的不同版本的數據進行測試。 – 2012-07-30 22:07:31