殷浪
(武漢理工大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,湖北 武漢 430063)
隨著網(wǎng)絡(luò)的發(fā)展,當(dāng)今社會已經(jīng)步入了信息時代。網(wǎng)絡(luò)資源呈指數(shù)增長,互聯(lián)網(wǎng)己成為一個巨大的信息源,如何提高檢索質(zhì)量,尋求令人滿意的檢索模式和技術(shù)已經(jīng)是全球的研究重點。當(dāng)前基于關(guān)鍵詞的信息檢索由于數(shù)據(jù)缺乏語義信息及其查詢處理缺乏語義支持,只能查找出與用戶在語法層上匹配的信息,而無法給出與其在語義層上具有相關(guān)性的其他信息,從而導(dǎo)致信息查詢結(jié)果質(zhì)量低下。Tim Berners-Lee提出了語義網(wǎng),使網(wǎng)上信息提供具有計算機(jī)可以理解的語義,它的發(fā)展和成熟使得高效、高質(zhì)的語義檢索成為可能,以克服基于關(guān)鍵詞的信息檢索技術(shù)的缺陷。但是基于知識庫的語義查詢通常比較緩慢。本文研究了語義知識庫的相關(guān)存儲方案,并采用LUBM測試集從查詢時間和存儲空間這兩個方面比較幾種不同的存儲方案[1-3]。
Protégé是一款基于Java的圖形界面本體工具,是由美國斯坦福大學(xué)開發(fā)的免費(fèi)開源平臺。它為用戶提供了一系列的工具支持構(gòu)建領(lǐng)域本體模型和基于本體的知識庫應(yīng)用,常用于定義本體模式。
Jena是惠普實驗室提供的針對語義Web應(yīng)用的開源Java開發(fā)包[4]。它支持應(yīng)用程序調(diào)用Jena提供的接口操作本體數(shù)據(jù);支持主流的本體描述語言,如RDF、RDFS和OWL;支持多種本體的存儲模型,如內(nèi)存模型和數(shù)據(jù)庫模型等。Jena常用于定義實例并對本體數(shù)據(jù)進(jìn)行查詢維護(hù)等。本文將使用Jena API進(jìn)行相關(guān)查詢分析。
Sparql(Simple Protocol and RDF Query Language)是為RDF開發(fā)的一種查詢語言和數(shù)據(jù)獲取協(xié)議,它為W3C所開發(fā)的RDF數(shù)據(jù)模型所定義,但是能用于任何可以用RDF來表示的信息資源[5]。RDF的三元模式構(gòu)成了圖形模式,而Sparql的查詢解決方案試圖將每個圖形模式變量的綁定與查詢模型節(jié)點進(jìn)行匹配。
Sparql協(xié)議和 RDF查詢語言(Sparql)目前是 W3C的工作草案或推薦標(biāo)準(zhǔn),還在討論中。Sparql構(gòu)建在以前的 RDF查詢語言(例如 rdfDB、RDQL和 SeRQL)之上,擁有一些有價值的新特性。
Jena可以在文件系統(tǒng)中持久化本體知識庫,即基于文件系統(tǒng)的存儲。該方式實現(xiàn)起來比較簡單,很多本體相關(guān)工具都支持對文件格式的本體進(jìn)行存取。但是,這種方法不僅效率低,而且很難適應(yīng)數(shù)據(jù)量較大的情況。基于文件系統(tǒng)的存儲方式一般只適用于規(guī)模較小的本體。
早期的本體數(shù)據(jù)管理工作是基于文件系統(tǒng)實現(xiàn)的,它們用簡單的文件格式存儲本體數(shù)據(jù)并支持一些基本的操作。這類工作主要用來編輯和建立本體,并不是為大規(guī)模本體數(shù)據(jù)的存儲和查詢管理服務(wù)的,如Protégé。
由于關(guān)系數(shù)據(jù)庫技術(shù)發(fā)展成熟,大多數(shù)現(xiàn)有的本體數(shù)據(jù)管理工作使用關(guān)系或?qū)ο?關(guān)系數(shù)據(jù)庫管理系統(tǒng)作為后臺存儲。Jena就可以在關(guān)系數(shù)據(jù)庫(Relational Database)中持久化本體知識庫。當(dāng)前支持的數(shù)據(jù)庫引擎有 Oracle、PostgreSQL和 MySQL。 以 MySQL為例,下面的代碼說明了如何將OWL文件導(dǎo)入到MySQL持久化模型。
在持久化到數(shù)據(jù)庫后,可以通過ModelMaker.openModel(modelName)來訪問該模型。
TDB是Jena的一個組件,可大規(guī)模地存儲和查詢RDF數(shù)據(jù)集,且支持Sparql查詢[6]。TDB是一個具有高性能、非事務(wù)性的RDF數(shù)據(jù)存儲器,可以通過命令腳本和Jena API來訪問和管理TDB存儲。以下代碼是說明如何將OWL文件存儲為TDB的。
DatasetGraphTDB graph =TDBFactory.createDatasetGraph(TDBlocation);
TDBLoader.load(graph, "file:///"+owlfile);
3.1.1 硬件環(huán)境
本實驗測試是在個人電腦上進(jìn)行的。具體環(huán)境是:2.20 GHz Intel(R)Core(TM)2 Duo CPU T6600,2 GB 內(nèi)存,250 GB的硬盤,WindowsXP操作系統(tǒng),JavaSDK 1.6.1。
3.1.2 測試數(shù)據(jù)集
LUBM是Lehigh大學(xué)提出的語義Web數(shù)據(jù)測試集。它基于大學(xué)這個領(lǐng)域,采用機(jī)器自動生成的數(shù)據(jù)作為測試數(shù)據(jù),提供14個測試查詢和一套性能指標(biāo)[7]。它可以根據(jù)用戶指定的參數(shù)產(chǎn)生不同規(guī)模的數(shù)據(jù),由此測試在不同規(guī)模的環(huán)境下,系統(tǒng)的實例查詢性能。LUBM測試集是目前最流行的語義Web測試集。它生成的數(shù)據(jù)滿足本體層的規(guī)范,因此,也可以作為推理系統(tǒng)的測試數(shù)據(jù)集。但是LUBM測試結(jié)果也存在一個問題,即生成的數(shù)據(jù)中屬性的個數(shù)是固定的,僅有64個。隨著數(shù)據(jù)量的增加,數(shù)據(jù)會失去語義Web的一大特點——稀疏性,導(dǎo)致測試的結(jié)果不能反映實際應(yīng)用的效果。
這14個測試查詢,有的涉及推理機(jī),由于篇幅有限,只做了部分測試。以下是3個測試查詢語句。
庫容量和轉(zhuǎn)載時間的比較如表1所示。其中,庫容量是指各種不同的存儲方式所占用的磁盤空間的大小;轉(zhuǎn)載時間是指從文件形式的知識庫轉(zhuǎn)換到其他存儲方式所需要的時間。
由于關(guān)系型數(shù)據(jù)庫會保存知識庫中所有的三元關(guān)系,因此耗時會比較多。對于1個50 MB左右的OWL文件,就已經(jīng)耗時4個多小時。因此,如果是較大的本體知識庫,想借關(guān)系數(shù)據(jù)庫來改善檢索效率的話,其可行性需要斟酌。相對于關(guān)系數(shù)據(jù)庫,TDB所用時間要少很多,值得借鑒。
表1 庫容量和轉(zhuǎn)載時間比較
對于上面提到的3個Sparql查詢語句,在用文件系統(tǒng)、關(guān)系數(shù)據(jù)庫和TDB這3種不同的存儲方式存儲時,查詢所消耗的時間和查詢結(jié)果如表2所示。
表2 查詢測試結(jié)果
由表2可知,TDB在查詢方面要比文件系統(tǒng)和關(guān)系數(shù)據(jù)庫的效率高。
針對目前語義檢索領(lǐng)域中基于文件或者關(guān)系數(shù)據(jù)庫存儲方案下檢索效率慢的問題,本文分析了這幾種存儲方案在查詢響應(yīng)時間和存儲空間上的區(qū)別,并提出了基于TDB的知識庫存儲方案。實驗證明,該方法能較大程度上提高用戶檢索效率,并且能降低存儲所需空間。基于本體的語義檢索的知識中,推理機(jī)還沒有涉及。如果添加了推理機(jī),語義檢索的速度將會更慢,因不屬于本文研究內(nèi)容,故沒有作比較。
本體知識庫的存儲方案其實還有很多方式,如4store、BigData和BigOwlim等。由于能力有限,無法對每種方式進(jìn)行比較,只對研究項目所用到的存儲方式比較。這些將是以后研究工作中的重點。
[1]JARRAR M,MEERSMAN R.Ontologyengineering-the DOGMA approach[C].AdvancesinWebSemanticsI.Lecture Notes in Computer Science, 2009,4891:7-34.
[2] MILLER E. Semantic web applications[J]. INTAP Interoperability Technology Association for Information Processing, 2003(34):210-212.
[3] GRUBER T R. A translation approach to portable ontologies[J].Knowledge Acquisition, 1993,5(2):199-220.
[4]欒艷,丁二玉,駱斌.基于Ontology的語義檢索技術(shù)[J].計算機(jī)工程與應(yīng)用,2005,28(41):156-159.
[5]于水明.基于本體的語義檢索的應(yīng)用研究[D].大連:大連海事大學(xué),2007.
[6]謝圣獻(xiàn),謝光.語義檢索在電子商務(wù)中的應(yīng)用研究 [J].微計算機(jī)信息,2008,24(12):50-56.
[7]Gao Yuanbo, Pan Zhengxiang, HEFLN J.An evaluation ofknowledge base systems for large owl datasets[C].Third International Semantic Web Conference,2004:6-7.