◆徐 巖 浩慶波
適用于搜索引擎的本體構建方法
◆徐 巖 浩慶波
(曲阜師范大學(濟寧)網絡信息中心 山東 273100)
近年來互聯網高速發展,互聯網上的信息呈現爆炸式增長的趨勢。信息檢索是從信息資源集合獲得與信息需求相關的信息資源的活動,由此可見信息檢索技術研究的重要性。國內外學者一直在研究基于關鍵詞的檢索方法,但是目前仍無法克服這些缺點:基于關于關鍵詞的方法沒有考慮查詢關鍵詞的語義信息;基于本體的檢索方法也存在著限定特定領域,檢索速度慢等缺點。本文旨在構建一個比較通用的本體庫適用于搜索引擎。
信息檢索;本體;搜索引擎
國內外學者在無數構建本體經驗中總結出了構建本體的基本方法。在構建本體之前,需要確定獲取概念、關系的數據庫,不同的數據庫對于本體的構建工作影響非常大。本體構建的數據源可以分為三大類:敘詞表、文本、關系數據庫[1],對于不同的數據源有不用的本體構建方法,常用的構建方法有IEEE 1074- 1995[2]、骨架法[3]、TOVE法(評價法)[4]、KACTUS工程法[5]。
本體構建的開發形式主要有兩種:一種是可視化的手工構建,另一種則是自動化構建。可視化構建工具比較多,例如Protégé[6]、WebODE[7]等。自動化構建一般是使用Jena[8]工具。相比較而言,Protégé等可視化工具手工構建比較適合用于小規模的本體構建任務,Jena工具包編碼半自動形式化適合用于較大規模的本體構建任務。
在語義搜索中非常重要的一項任務就是如何對本體中的節點之間的語義距離進行量化來表示其重要程度,早在19世紀80年代,學者就已經開始對基于樹狀本體結構的語義相似度進行研究,提出較為代表性的理論方法有基于路徑距離。基本思想是根據兩個概念在本體模型中的距離長度來衡量概念間的語義距離,其中,具有代表性的方法有:Wu & Palmer法[9]、Leacock & Chodorow[9]法等。
雖然國內外學者一直在研究基于關鍵詞的檢索方法,但是目前任無法克服這種缺點:基于關于關鍵詞的方法沒有考慮查詢關鍵詞的語義信息;基于本體的檢索方法也存在著限定特定領域,檢索速度慢等缺點。本文旨在構建一個比較通用的本體庫適用于搜索引擎。
計算機科學中本體主要用于信息交換和共享,本體的描述語言是面向計算機的。W3C在2014年月25日發布了用于描述本體的Resource Description Framework (RDF)的標準。RDF拓展了Web的鏈接結構,使用URI來表征兩個事物之間的關系以及兩個事物本身(資源、屬性和陳述),這種結構也通常稱為三元組(triple)。RDF優點是使用簡單三元組模型,使得不同的應用程序之間能夠混合、公開和共享結構化和半構造型數據,但是RDF也有其缺點:對概念之間的推理支持不太好[10]。
W3C在2009年10月27日發布了RDF的改進語言:OWL的預覽版,在2012年12月11日正式推出了OWL的標準。OWL旨在表達事物、事物組和事物之間的豐富和復雜的知識關系。OWL有三個版本,它們可以適應各個不同領域的需求。
OWL Full:該語言是最完整的OWL語言,可以最大限度的描述和表達一個對象。包含了OWL定義的所有原語,同時還支持所有原語與RDF或RDFS的組合,以及通過原語間的相互作用重新設定預定義原語的意思。
OWL DL:在一定程度上支持描述邏輯推理,屬于OWL Full的子語言,在原語的數量和使用上都受到了限制,不具備OWL Full那么強大的能力,但卻是三種語言中表達能力最強的一類,當需要高效推理時可以選用這種語言。
OWL Lite:是更嚴格地對OWL DL的構造進行了限制的產物,只適用于只有一個分類層次或者簡單屬性的約束,不支持枚舉類、任意基數約束和類不相交陳述,其優點為實現簡單、容易上手,目前大多數的本體項目均采用OWL Lite。
隨著本體的研究深入,越來越多的學者或者機構開發本體知識庫。由于開發一個知識庫是一個龐大的信息的組織工程,在開發中遇到了各種各樣的問題:如何減少重復勞動、圖形化編輯降低開發門檻等。國內外的開發者為了解決以上的問題開發了眾多的本體開發工具,例如:Protégé、Jena、OntoEdit、WebOnto、WebODE、和KAON等。本文著重介紹Protégé和Jena。
(1)Protégé
又常常簡單地拼寫為“Protege”,是一個史丹佛大學開發的本體編輯和知識獲取軟件。開發語言采用Java,屬于開放源碼軟件。由于其優秀的設計和眾多的插件,Protégé已成為目前使用最廣泛的本體論編輯器之一。
(2)Jena
Jena是一個由HP公司開發的Java開源工具包,提供了用于本體開發的各種基礎功能,例如創建本體、解析、查詢、推理等。除此之外,Jena推理可以使用內置的推理引擎,如Generic rule reasoner、OWL reasoner、RDFS rule reasoner等,也可以通過DIG接口連接不同的推理引擎,如pellet、racer、fact等。
搜索引擎的文檔數目之多、種類之多以至于很難用一個本體完整地表達出來。圖書館內部的書籍和搜索引擎的文檔有幾分相似之處,圖書館收藏的書關于世界的方方面面,可謂集天下之大成,然而卻總是井井有條。圖書館的書籍之所以多而不亂,其中一個重要原因是使用《中國圖書館分類法》來對這些書籍進行分類。倘如使用《中國圖書館分類法》對搜索引擎的文檔進行歸類并使用其中的概念作為推理的依據,那么問題就迎刃而解了。
《中國圖書館分類法》(原稱《中國圖書館圖書分類法》)是我國建國后編制出版的一部具有代表性的大型綜合性分類法,是當今國內圖書館使用最廣泛的分類法體系,簡稱《中圖法》。《中圖法》第四版全面補充新主題、擴充類目體系,使分類法跟上科學技術發展的步伐。同時規范類目,完善參照系統、注釋系統,調整類目體系,增修復分表,明顯加強類目的擴容性和分類的準確性。《中圖法》覆蓋各個領域并且是領域專家參與制定的,完全能夠適用于搜索引擎。
因此,只需要將《中圖法》的分類標準作為本體的概念,分類標準之間的上下級關系作為本體的subclass of關系,即可完成本體的構建。
訪問網站http://www.ztflh.com/可以發現,各個網頁的DOM結構一致,因此可以使用廣度遍歷的算法結合jena工具以及網頁抽取工具jsoup來自動化的完成本體構建的過程,大大提高效率。
算法流程如下:
算法輸入:網站初始鏈接URL=http://www.ztflh.com/,jena本體模型ontModel
(1)申請抓取隊列fetchUrlQueue,將URL入隊。
(2)如果抓取隊列fetchUrlQueue不為空,從隊頭出隊一個url記為fetchUrl并跳轉步驟(3);如果抓取隊列fetchUrlQueue為空則跳轉(4)。
(3)訪問fetchUrl,解析返回結果。找到當前fetchUrl頁面的父級分類標準記為C_p,當前頁面的子級分類標準記為D={c_1,c_2,c_3,c_4,…c_n}.如果ontModel中不存在資源C_p那么就創建資源C_p。分別給資源C_p添加子類c_1,c_2,c_3,c_4,…c_n。將c_1,c_2,c_3,c_4,…c_n子類的網頁的url入隊列fetchUrlQueue,并跳轉到步驟(2)。
(4)將ontModel輸入到文件lib.owl并退出。
算法輸出:文件lib.owl
以下是用Java語言實現的算法:

圖1 使用Java實現本體自動化構建
運行以上代碼,并開發可視化算法,最終得到以下結果(由于分類比較多,只展開了三層):

圖2 構建完成的本體可視化展示
本文介紹了構建適用于搜索引擎的本體的思路和方法,并且給出了算法以及實現。最后,根據程序運行的結果得到本體文件。
[1]余凡.領域本體構建方法及實例研究[M].武漢大學出版社,2015.
[2]IEEE Standard for Developing Software Life Cycle Processes[J].IEEE Computer Society,1996.
[3]M. Fernández López,OverviewOfMethodologies For Building Ontolo-gies[J].Proceedings of the IJCAI- 99 workshoponOntologiesand Problem-SolvingMethods(KRR5) Stockholm,1999.
[4]M. Grǜninger,M. S. Fox. Methodology for the Design and Evaluation of Ontologies[J]. Workshop on Basic Ontological Issues in Knowledge Sharing,1995.
[5]A. Bemaras, et al. Building and reusing ontologies for electrical net-work applications[J].In:Proc. of the European Conf on Artificial Intelligence. Budapest,Hungary: John Wiley and Sons,1996.
[6]Protégé [EB/OL].http://protege.stanford.edu/.
[7]Arpírez J C,Corcho O,Fernández-López M, et al. WebODE:a scalable workbench for ontological engineering[C]//Proceedings of the 1st international conference on Knowledge capture.ACM,2001.
[8]Jena [EB/OL].https://jena.apache.org/.
[9]Courtney Corley,Rada Mihalcea.Measuring the semantic similarity of texts.In Proceedings of the ACL Workshop on Empirical Modeling of Semantic Equivalence and Entailment (EMSEE '05).Association for Computational Linguistics,2005.
[10]于娟,馬金平,李永.基于Web本體語言OWL的知識表示[J].計算機工程與設計,2006.