我正在嘗試對具有給定資源作爲其主題的屬性的值執行簡單更新。SPARQL更新無法正常工作
這裏是我的查詢:
WITH <http://127.0.0.1:3000/dendro_graph>
DELETE { <http://127.0.0.1:3000/project/datanotes/records/teste/filho%20do%20teste> <http://purl.org/dc/elements/1.1/creator> ?o0 .
}
INSERT
{
<http://127.0.0.1:3000/project/datanotes/records/teste/filho%20do%20teste> <http://purl.org/dc/elements/1.1/creator> "creator1" .
}
WHERE { <http://127.0.0.1:3000/project/datanotes/records/teste/filho%20do%20teste> <http://purl.org/dc/elements/1.1/creator> ?o0 .
}
這樣做的結果是,刪除被執行,但不將INSERT;我最終破壞了該屬性的所有實例,但沒有添加新的值。
如果我刪除了WHERE子句,最終會出現重複的三元組,因爲它似乎沒有執行DELETE。
我在做什麼錯?
編輯:
此代碼將產生重複:
WITH <http://127.0.0.1:3000/dendro_graph>
DELETE
{
<http://127.0.0.1:3000/project/datanotes/records/teste/filho%20do%20teste> <http://purl.org/dc/elements/1.1/creator> ?o0 .
}
INSERT
{
<http://127.0.0.1:3000/project/datanotes/records/teste/filho%20do%20teste> <http://purl.org/dc/elements/1.1/creator> "creator1" .
}
其中SPARQL引擎和您正在使用哪個版本? – AndyS
當你說「沒有WHERE子句」時,我假設你的意思是「WHERE {}」,否則它是一個語法錯誤。 當「WHERE {}」被使用時,?o0未被綁定,所以沒有任何東西被DELETE刪除。 – AndyS
嗨,安迪,我正在使用Virtuoso版本:06.01.3127。當你說?o0沒有綁定時,你的意思是在DELETE子句中的?o0和WHERE子句之間沒有對應關係?如果是這樣的話,我該如何刪除所有具有指定主題和謂詞的三元組,如'?o0。',但是我不知道該對象然後執行插入操作?謝謝 –