我正在用java寫一個sparql查詢來刪除具有特定ID的rdf數據。我想用要刪除的sparql查詢
Delete ?ID ?name Where {
?ID rdf:type ex:example ex:name ?name
FILTER(?ID ="something")
}
但它什麼也沒做。有誰知道我的錯誤是什麼?
我正在用java寫一個sparql查詢來刪除具有特定ID的rdf數據。我想用要刪除的sparql查詢
Delete ?ID ?name Where {
?ID rdf:type ex:example ex:name ?name
FILTER(?ID ="something")
}
但它什麼也沒做。有誰知道我的錯誤是什麼?
查詢是可能失敗的,越接近SPARQL查詢可能工作是...
DELETE WHERE {
?id rdf:type ex:example;
ex:name ?name .
FILTER(?id = <http://foo.com/some/example/uri>)
}
的VAR ?id
不能是字符串,因爲它被定位爲主題,在RDF所有科目都IRIS,不是文字。
如果您發佈一些示例數據,我們可能會提供更好的幫助。
RDF表示意味着我們只能通過刪除(子)圖來進行刪除。任何試圖刪除SELECT查詢中字段的等效內容都會導致錯誤。此外,還有多種DELETE查詢形式可以在SPARQL 1.1 Update specification中看到。在問題中的查詢的另一個問題是,所使用的DELETE格式是WHERE子句用於定義將被刪除的三元組時的快捷方式,但過濾器會混淆快捷方式。使用完整DELETE語法應該只是罰款:
PREFIX ex: <http://example.org#>
DELETE {
?id a ex:Example ;
ex:name ?name .}
WHERE {
?id rdf:type ex:Example ;
ex:name ?name .
FILTER(str(?id) != "")
}
我覺得現在的問題是SPARQL更新,因爲我得到的遭遇「‘刪除’」刪除‘’第6行的錯誤,列1 期待一個作者: 「前綴」... 「select」... 「construct」... 「describe」... 「ask」... 你知道我是否可以做任何事情來運行刪除查詢? – user1259487 2012-03-17 11:13:41
您正在使用哪個三重商店? – 2012-03-17 16:49:15
錯誤消息與SPARQL查詢和SPARQL更新之間的差異有關。他們在Jena中使用不同的類來表示(我猜可能是您正在使用的類),並且它們通常會作爲不同的端點URL公開:s。這些不符合設計,因此是錯誤。 – 2017-05-15 11:21:46