天天看點

《語義網基礎教程(原書第3版)》—— 3.8 通過SPARQL更新來增加資訊

本節書摘來自華章出版社《語義網基礎教程(原書第3版)》一 書中的第3章,第3.1節,作者:(希)grigoris antoniou(荷)paul groth(荷)frank van harmelen(荷)rinke hoekstra ,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

正如3.1節所述,sparql也定義了一個用來更新三元組存儲庫内容的協定。這就是sparql更新協定。本質上,它在sparql中引入了一系列新的關鍵詞來支援三元組的插入、加載和删除。以下我們展現每種請求的例子。

插入和加載三元組 以下插入一個三元組,闡述luxury apartment是apartment的一個子類。它将這個三元組加入三元組存儲庫的已有内容之中。

《語義網基礎教程(原書第3版)》—— 3.8 通過SPARQL更新來增加資訊

注意,資料本身仍是我們在第2章中就熟悉的turtle文法。

如果你在網際網路上有一個大的包含rdf的檔案,你可以使用以下指令将它加載進一個三元組存儲庫:

《語義網基礎教程(原書第3版)》—— 3.8 通過SPARQL更新來增加資訊

删除三元組 從一個三元組存儲庫中删除三元組有幾種方式。一種是使用delete data關鍵詞準确指定哪些三元組是你想要删除的。将之前插入的三元組删除可以這樣:

《語義網基礎教程(原書第3版)》—— 3.8 通過SPARQL更新來增加資訊
《語義網基礎教程(原書第3版)》—— 3.8 通過SPARQL更新來增加資訊

注意,在這種形式下是不允許變量的,所有三元組都必須被完整指定。

一種更加靈活的方式是使用delete where構造子。它可以删除比對指定圖模式的那些三元組。以下将要删除包含關于擁有超過2間卧室的較高價的電梯大廈的資訊的所有三元組。

《語義網基礎教程(原書第3版)》—— 3.8 通過SPARQL更新來增加資訊

在這兩種形式中,如果模式未能比對或者三元組不在三元組存儲庫中,那麼什麼都不會發生。

最後,要删除一個三元組存儲庫中的所有内容,可以如下使用clear構造子:

《語義網基礎教程(原書第3版)》—— 3.8 通過SPARQL更新來增加資訊

sparql更新提供了更多的構造子來管理部分三元組存儲庫。如果向一個三元組存儲庫中逐漸添加資料,那麼更新操作就特别有用了。在下一節中,我們讨論一種特殊情況,其中這些更新操作很有用。