單永剛
摘 要: 語義推理的功能使得知識庫更具人工智能,具有實用意義。文章根據語義模型的特點,構建了基于關系數據庫的知識庫語義存儲體系,該存儲體系的模式空間和實例空間相分離,降低了結構和數據的耦合性,使語義的存儲范圍更具完整性、語義的推理效果更具智能性。面向該存儲體系的語義推理方法實現了相關語義(專家知識)的推理和相似語義(詞匯)的推理,同時,該方法也考慮到了推理范圍的可控能力和推理結果的語義還原能力。分析表明,該方法能應用于實際,但仍存在一些可改進之處。
關鍵詞: 推理; 語義; 模式空間; 實例空間; 知識庫; 關系數據庫
中圖分類號:TP182 文獻標志碼:A 文章編號:1006-8228(2013)07-48-04
0 引言
Tim Berners-Lee曾在TED的演講中提到“數據就是聯系,聯系產生數據”,Tim Hanis等人在解釋語義圖模式時強調“數據之間的聯系不是數據庫結構的一部分,而是數據的一部分”[1],“聯系”是語義數據的重要特點。知識庫內容的簡單呈現不符合當下熱門的Web3.0理念,知識庫的設計思想應該提升到語義層面,充分考慮知識元數據之間的語義聯系,具備語義推理功能的知識庫在學習資源建設中大有用武之地。
知識庫是一個局部的語義數據庫,在關系數據庫中為知識庫建立一套靈活的語義存儲體系,該存儲體系可根據實際情況創建相應類(如某門課程)的對象及其屬性,它繼承了RDF語義數據的框架和內容的分離性,能靈活應對各類元數據描述的框架需求,從而克服本體的框架和內容緊耦合性的不足之處。存儲體系包括模式空間和實例空間,其中前者提供構建語義框架的基本屬性和基本元素,后者用于存儲語義實例數據,它們反映在關系數據庫中就是模式空間表和實例空間表,模式空間與實例空間相分離是關系數據庫完整、高效地存儲語義數據的前提。
筆者在文獻[2]中對語義數據存儲于關系數據庫的實現方法作了詳細闡述。雖然關系數據庫存儲語義數據使語義存儲的長久性更有保障,而且,這種存儲方式使得語義數據的操作更為簡便,但是不得不忽略一個弱點——基于關系數據庫的語義存儲體系的推理能力有限。本文通過對模式空間表和實例空間表的邏輯組織,來加強關系數據庫語義存儲體系的語義推理能力,這是對知識庫存儲體系的一個完美補充。
1 知識庫存儲體系的基本原理
語義數據可以理解為概念集合,它由類標識符集、屬性標識符集和數據類型標識符集組成,它是實現語義數據邏輯模型與關系數據存儲模型相映射,進而在關系數據庫中建立模式空間表和實例空間表的基礎,圖1是一個由本體編輯工具protégé[3]模擬出的關于出版物本體的語義模型,本文以該模型為例來介紹在關系數據庫中實現語義推理的基本原理和基本條件。
圖1中帶符號“●”的是本體的類(class),帶符號“◆”的是本體的實例(indivisuals of class),類之間、實例之間的箭頭線表示謂詞關系,類與實例之間的箭頭線表示繼承關系。
定義1:類與類之間構成的子圖稱為模式(Schema)空間圖,根據模式空間圖的模型生成的關系數據表稱為模式空間表。
定義2:實例與實例之間構成的子圖稱為實例(Instance)空間圖,根據實例空間圖的模型生成的關系數據表稱為實例空間表。
2 模式空間表和實例空間表
語義數據存儲于關系數據庫,不僅是為存儲而存儲,其主要目的是用來讀取、推理數據,常規的存儲方式中,按順序查詢數據表的推理策略不但效果不佳,而且推理效率也低下,模式空間與實例空間相結合而構建的存儲體系,最大限度地保留了語義模型的特征,通過模式空間表之間的邏輯關系獲取相關語義的元組ID,再通過索引查詢從實例空間表中獲取元組ID所對應的語義數據。
2.1 模式空間表
2.1.1 類表(ObjectClass)
存儲語義數據的所有類,主要信息來源是類標識符集合A,類表的數據項用來對每個類基本情況的描述,如:是否啟用該類的對象實體、是否屏蔽對象實體的一些屬性等。類表的一個重要的作用就是用來定義對象實體的文本信息字段,這些字段所構成的表用來存儲DH語義圖(有向超圖結構的RDF語義圖[5])中的標簽所描述的文本信息,如圖1中Person類為它的對象實體定義了表Author{Education、Professional、Degree…}則,Lucy,Jim的相關信息可以存儲到Author表中。
2.1.2 數據屬性表(ObjectProperty)
存儲語義數據關系屬性類型,每項數據表達一個該數據項相關的關系屬性的實例表,該實例表存儲Subject-Object的數據。該表主要數據來源是實體的描述信息,即元數據。但是要注意到的是,在實際應用中,ObjectProperty 的Subject和Object并不都是1:1的關系,恰恰絕大部分關系是1:n的關系,如:在圖1中,{publication1 hasAuthor (lucy,tom,…)},{lucy isAuthorof (publication1,publication2,…)},這種情況帶來兩個問題:查詢效率降低;存儲空間浪費。解決問題的方法是不管Object有多少個組成部分,都把它存儲在一個變長的數據字段中,這樣既可以明顯提高存儲效率,也可以實現一次完成Object的查詢。
2.1.3 數據屬性類型表(DatatypeProperty)
存儲語義數據的屬性類型,每項數據表達一個該數據項相關的數據屬性的實例表,該表存儲Subject-Data的數據。該表主要數據來源是屬性標識符集合U,由于在固定領域范圍內集合U的元素數量是有限的,這使得實現垂直分割數據更具有可行性。
數據屬性類型表中,為每項數據設置一個互逆屬性字段,聲明該類的屬性互逆的屬性值。在圖1中,集合Ea具有對稱性,所以每個屬性的逆屬性就是相互對稱的二元關系的元素,如:R
2.1.4 數據類型表(Datatype)
數據類型表存儲語義數據所有的數據類型及其與關系數據庫的映射關系,它的數據來源是數據類型標識符集K,如:語義描述體系XML Schema的數據類型Xsd:string、Xsd:datetime在關系數據庫中,分別對應數據類型VARCHAR、TIMESTAMP。
2.2 實例空間表
實例空間表對描述對象的具體描述,實例空間表的屬性(即關系數據庫表的字段)根據實際應用需要從模式空間表中獲取,實例空間表一般包括:推理索引表、三元組表、實例數據表、實例語義聯系表等。
2.2.1 推理索引表
Reasoning_Table={ID,SubjectID,Predicate,Type},其中:Predicate記錄Subject在所在領域本體中應該有的謂詞集合(如:hasAuthor,BothCiting,…),Predicate字段存儲的是一系列謂詞的集合,謂詞集合也即數據屬性類型表的對象,由于語義數據存儲于關系數據的存儲對象是對語義圖(如圖1模型)的存儲,包括數據結構的存儲和數據內容的存儲,因此,推理索引表的類型、結構和內容可以從語義模型中獲取。局部語義網或某個領域本體的推理索引表的集合構成推理知識庫。
2.2.2 三元組表
Predicate_Table={ID,SubjectID,ObjectID}繼承了數據屬性表的結構,用于垂直記錄三元組數據,Predicate即三元組的謂詞,它是三元組表的表名,如:isAuthorof、hasAuthor,當推理要查詢關系“hasAuthor”時,只要查找hasAuthor三元組表即可,能提高推理效率。三元組表是基于相關詞匯推理的推理規則。
2.2.3 實例數據表
Semantic_Table={Subject_ID,ClassName,Description1, Description2…},該表的數據結構根據類表自主生成,它用于記錄某主題的語義信息。三元組的Subject和Object在關系數據庫中只是描述角色上的不同,作為數據項并無差別,因此,實例數據表的字段Subject_ID既可以適合Subject的ID也適合Object的ID。
2.2.4 實例語義聯系表
Reration_Table={ID, Subject, Objects},實例語義聯系表用以描述Subject的主題有聯系的詞匯,如:subject=“CPU”,則Object=“內存,硬盤,主板,AMD,Intel…”,它不同于三元組表,三元組表的數據基于共同的謂詞,數據自動從語義數據中采集,而實例語義聯系表是基于相關領域專家的思維規則,匯集了專家們的領域知識,它使得知識庫的語義更加豐富,語義推理結果更具“智能性”。實例語義聯系表是基于專家知識推理的推理規則。
2.3 模式空間表與實例空間表的關系
模式空間表和實例空間表之間的關系是類似于面向對象思想中的“類”與“對象”之間的關系,后者有選擇地繼承前者的屬性,前者為后者派生特定領域的類或屬性,這是一種“決定”關系。圖2是模式空間表與實例空間表之間的“決定”關系圖,其中:深色的為模式空間表,淺色為實例空間表,箭頭方向表示“決定關系”。由圖2可知,當謂詞集和領域確定時(數據類型表是固定的),相關的實例數據表的結構就也確定了。
3 推理算法
3.1 推理步驟
基于關系數據庫的知識庫的語義推理主要分兩類推理:描述詞匯的推理(相似性)和專家知識的推理(相關性),兩者分開計算,同時推理。
推理步驟如下:①判斷預設推理條件(如:推理層次i),如果成立則開始推理工作;②描述詞匯推理:根據條件確定Subject在相應環境下的謂詞集,根據垂直存儲的特點,謂詞即三元組表的表名,以此查找在相關表中所有與該Subject有關系的Object1;③專家知識推理:根據條件確定Subject在實例語義聯系表中相關的Object2;④在實例數據表中查詢Object(Object1+Object2)的所有數據描述信息(Descriptions),存儲中間結果,輸出相關信息;⑤判斷推理條件,如果推理層次i>0,則把本次推理返回的所有Object作為新的推理的Subject,逐個重復步驟①-④,推理層次i自減1,直到條件不滿足,其中步驟②和步驟③為并列關系。
3.2 算法說明
相關謂詞:同一語境下類與類存在某種關系,則它們為相關類,類的本身一定是它自己的相關類,如圖1中的三個類:Article、Person和Publication兩兩相關,并且每個類都是自己的相關類。相關謂詞是由相關類集合的全二元關系組成,如{Article,Person,Publication}的相關謂詞為:{Citing,Cited,BothCiting,BothCited,Publish,IsPublished,isAuthorofhasAuthor},相關謂詞集合在推理運算時能起到兩個作用:①由數據屬性類型表的互逆屬性可知,相關謂詞也具有互逆屬性,這可以省去一半的算法開銷;②相關謂詞的分類、集中存儲,有助于在推理時能精準地找到相關的三元組表,大大提高查詢效率。
語義模糊性:由于語義數據存在模糊性或不精確性,檢索需要支持數據的模糊語義表達[4]。特別在關系數據庫中查詢數據時,精確的計算方法將失去大量的語義聯系,查詢語義數據時,所涉及的查詢條件均須采用模糊表達式,如:查詢必須要考慮到通配符命令、嵌套查詢、視圖查詢等的靈活運用。
算法思想:最常用的語義推理算法包括Tableau算法和Rete算法兩種[6],前者強調判斷知識的可滿足性或知識之間的包含關系,后者強調存儲語義匹配的中間結果,以提高規則匹配的效率。本文所述的是基于關系數據庫的知識語義推理算法,它所建立的推理算法模型同時考慮到了以上兩種算法的側重點。
3.3 推理算法
3.4 算法評價與應用實例
該算法的優點是,能自主控制推理范圍(參數i);相似性和相關性相結合的推理使得推理結果更加豐富和智能化;推理中間過程的存儲,一方面增加了推理的效率,另一方面能快捷地生成主題相關的語義脈絡(即語義圖)。缺點是,遞歸函數的特性使得推理規則數據表的數據量不能過大,算法不適合大型知識庫;存儲中間結果將消耗存儲空間。
采用上述方法,課題組完成了本文的基金項目“智能型”網絡課程的研發,該項目的“智能”實現過程如下:網絡課程平臺把課程資源根據課程教師的教學經驗和詞匯之間的關聯語義化,并把語義化的元資源存儲于關系數據庫語義存儲體系(包括語義聯系的存儲),即生成基于本課程內容的知識庫,再根據網絡課程的交互學習的“語境”,把3.3中的算法函數實例化,推理出該語境下的相關語義(如:學習元資源),有準對性地推送給學習者。這種網絡課程的人工智能化方法,對遠程教育有很大的實用意義。
4 結束語
本文在介紹語義模型的基礎上,構建了由模式空間和實例空間組成的關系數據語義存儲體系。模式空間表和實例空間表保障了該存儲體系有能力完全存儲知識庫語義數據,并能模擬出知識語義的推理算法。知識語義的推理包括面向三元組信息的相似性推理和面向專家知識的相關性推理。算法設定了推理范圍控制參數,使推理范圍能靈活控制。
算法在假設知識庫是某領域知識元數據的有限集合的基礎上進行,如果實例空間表中的數據量過大或預設推理層次過多,遞歸函數將導致算法次數急劇增加,進而影響推理效率,因此該算法在如何減少計算次數方面還有待更多的研究。
參考文獻:
[1] T HANIS, D NOLLER. Semantic models A flexible foundation formodel-driven application architectures[C/OL]. (2011-10-11)[2013-37].http://www.ibm.com/developerworks/industry/library/ind-semanticmodels/index.html.
[2] Yonggang Shan, Jiangfeng Yu, Dongyi Chen. Implementation Method of the Semantic Data be Stored into the Relational Database[C].China:Najing,2012.8,CSSS2012.
[3] 陶皖,廖述梅.當前本體編輯工具的分析與研究[J]計算機工程與設計,2005.26(3):761-763
[4] 金海,袁平鵬.語義網數據管理技術及應用[M].科學出版社,2010.
[5] ANTONIO A, MORALES M, SERODIO M E V. A DirectedHypergraph Model for RDF[C/OL].(2007-6-6)[2013-2-15].http://ceur-ws.org/Vol-275/paper24.pdf.
[6] 湯怡潔,周子健.語義web環境下語義推理的研究與實現[J].圖書館雜志,2011.30(3):69-75