论文浅尝 | SPARQL 语言的 ASK 查询表达性研究进展
論文作者之一:楊炫興,天津大學博士生。
鏈接:http://cic.tju.edu.cn/faculty/zhangxiaowang/publication/ASK.pdf
動機
SPARQL是萬維網聯盟(World Wide Web Consortium,簡記W3C)推薦的知識圖譜標準查詢語言,其包含四類查詢:SELECT、CONSTRUCT、ASK和DESCRIBE。與一般SELECT查詢返回解不同,ASK查詢返回布爾值(真或假)。自從2008年1月15日,萬維網聯盟W3C 首次發布SPARQL1.0到2013年進一步發布SPARQL1.1,以SELECT為代表的SPARQL基礎理論取得較大進展。近年來,牛津大學開始研究CONSTRUCT并取得一些進展。然而,歸咎于ASK基礎理論刻畫SPARQL的復雜問題,目前鮮有ASK基礎理論研究工作。這項工作開始嘗試研究ASK查詢的表達能力(即,布爾表達性),并對SPARQL1.0標準的核心語言(由四個構子AND、OPT_F、UNION、FILTER構成的語言)以及這些子語言與SPARQL1.1標準中三類否定構子(Negation):DIFF_F、DIFF和MINUS結合的子語言,共計64個子語言,給出了其完整的表達關系哈斯圖(Hasse Diagram)。相比SELECT查詢表達性,ASK查詢刻畫的是子語言之間更細微的表達差異性。這項工作研究結果將有助于為SELECT查詢提供優化理論基礎,進一步完善SPARQL理論體系是官方提出的為RDF數據定制的查詢語言。
亮點
本文的主要貢獻可以概括為以下四點:
(1)分析并刻畫了所有涉及SPARQL1.0算(AND,UNION,OPT_F,FILTER)的共16個子語言之間的表達關系哈斯圖。
(2)分析并刻畫了(1)中的16個子語言在引入MINUS算子后的表達關系哈斯圖。
(3)?? 分析并刻畫了(1)中的16個子語言在引入DIFF算子后的表達關系哈斯圖。
背景知識
SPARQL 算子語義簡介
SPARQL查詢的語義通過映射集合(Mapping Set)來體現:一條三元組模式(triple pattern)在一個給定的RDF圖上的語義為,一個包含所有能夠“將該三元組模式匹配到該RDF圖上(某條三元組)”的映射(mapping)的集合。
不同算子的語義代表了映射集合之間不同的二元操作,我們這里僅做直觀的介紹,具體的形式化定義請參考論文。
(1)AND 算子代表“連接”的語義:(P1 AND P2)返回的是一個包含所有“同時將 P1 和 P2 匹配到圖上(某個子圖)”的映射的集合。
(2)UNION 算子代表“聯合”的語義,(P1 UNION P2)返回一個包含所有“將 P1 或 P2 匹配到圖上(某個子圖)”的映射的集合。
(3)DIFF算子代表“減法”的語義,(P1 DIFF P2)返回一個包含所有“將P1匹配到圖上(某個子圖),且不能擴展為將 P2 匹配到圖上(某個子圖)”的映射的集合。
(4)MINUS算子的語義與DIFF相似。區別在于當 P1 和 P2 之間沒有共享變量時,P1 DIFF P2 返回的是空集(此時 P2 非空,而因為沒有共享變量不會產生沖突,任意P1中的映射都可擴展為 P2 中的映射)或 P1(此時 P2 為空集);而(P1 MINUS P2)返回的永遠是 P1。
(5)OPT 算子則是 AND 算子和DIFF的復合算子,(P1 OPT P2)= ((P1 AND P2) UNION (P1 DIFF P2))。
注:SPARQL標準支持OPT_F和DIFF_F,即允許FILTER內嵌到OPT和DIFF_F中。為了簡潔闡述它們語義,我們還是以OPT和DIFF為例來介紹。
?
下面我們通過簡單例子來展示不同算子的語義:
ASK查詢與SELECT查詢的區別
對于一個給定的查詢(即圖模式,graph pattern),SELECT查詢返回的是一個包含所有將該圖模式匹配到圖上的映射的集合,ASK則返回的該映射集合是否為空的真值(True/False)。
兩個查詢P,Q在SELECT查詢中等價當且僅當:對于任何查詢圖,P和Q在該圖上的SELECT查詢返回相同的映射集合。而兩個查詢P,Q在ASK查詢中等價當且僅當:對于任何查詢圖,P和Q在該圖上的ASK查詢返回相同的真值。因此兩個查詢P,Q在SELECT查詢中等價可以推導出其在ASK查詢中也等價,反之則不一定成立。
ASK查詢的表達性問題的定義
對于任意兩個子語言W1和W2,我們稱W1可被W2表達當且僅當:給定W1中任意的查詢P,W2中都可找到一個查詢Q,使得P和Q在ASK查詢中等價。
理論分析
我們通過分析不同算子能夠識別的圖模式的特征,并以此為依據來判斷64個子語言之間的可表達關系是否成立。
?
1.???? AND只能被含有OPT的ASK查詢表達
在ASK查詢中,AND僅能被包含OPT構子的查詢表達,這一點與SELECT查詢一樣。證明利用AND能表達圈性質,即一個圖是否含有圈。換言之,非AND非OPT的ASK查詢無法表達圈性質。
?
2.???? 含有OPT的ASK查詢與含有AND的ASK查詢之間可表達關系復雜
如果允許FILTER,那么含有OPT的ASK查詢能夠表達含有AND的ASK查詢;反之,如果不允許,那么含有AND的ASK查詢能夠表達含有OPT的ASK查詢。意外的是,含有OPT的ASK查詢與含有AND的ASK查詢不總是相互可表達。
3.???? FILTER不可被非DIFF_F或非OPT_F的ASK查詢
FILTER包含對約束條件進行查詢限制性,是不含有DIFF_F或OPT_F的ASK查詢所表達。證明利用了非DIFF_F或非OPT_F的ASK查詢無法識別完整的RDF圖,然而FILTER可以利用不等詞約束條件可以識別。
?
4.???? UNION在非MINUS的ASK查詢中是冗余的
UNION刻畫ASK查詢的非確定性。在ASK查詢下,UNION不確定性能被OPT和FILTER中的弱不確定性表達。證明分別利用了邏輯德·摩根定律思想與DIFF吸收定律和FILTER的析取邏輯關系來表達UNION。然而,MINUS相比DIFF太弱不足以表達UNION。
5.???? DIFF_F只能被含有DIFF和FILTER的ASK查詢表達
從DIFF_F的語義構造來看,DIFF_F同時含有DIFF和FILTER的語義特征。在ASK查詢,DIFF_F的語義仍然具有重要特性。而且DIFF_F和AND結合能夠表達整個本文研究SPARQL 1.1的核心子語言。從這個意義看,DIFF_F具有非常強大的表達性。除了AND,其它構子都能表示。DIFF相比DIFF_F來說,不能表達FILTER語義,因此ASK查詢表達能力也降低很多。幸運地是,DIFF具有DIFF_F除了FILTER之外所有的表達能力,因此比MINUS具有較強的ASK查詢表達能力。
?
6.???? MINUS可以被任何否定ASK查詢表達
在ASK查詢中,MINUS描述的最弱的否定ASK查詢。W3C仍然作為SPARQL1.1標準推薦,筆者覺得考慮工程實際需要。因為MINUS的語義邏輯性有所欠缺。在本項工作中,準確地給出了MINUS和DIFF差異之處(UNION查詢)。兩者之間差異的發現有助于工程師在實際應用中,能夠準確使用。
總結
本文通過分析6個SPARQL算子在ASK查詢中的表達性,刻畫出了所有包含這六個算子的子語言之間的表達關系哈斯圖。在ASK查詢中,DIFF,AND和FILTER算子分別代表了分隔圖(isolated graph),整體連通和查詢圖(同構層面上的)形狀這三個彼此不相交的性質。這些新發現的性質對于SPARQL的查詢的發現新優化方法提供了思路。
?
OpenKG
開放知識圖譜(簡稱 OpenKG)旨在促進中文知識圖譜數據的開放與互聯,促進知識圖譜和語義技術的普及和廣泛應用。
點擊閱讀原文,進入 OpenKG 博客。
總結
以上是生活随笔為你收集整理的论文浅尝 | SPARQL 语言的 ASK 查询表达性研究进展的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 技术人如何提升自己的核心竞争力
- 下一篇: 论文浅尝 | NumNet: 一种带有数