王 飛,易綿竹,譚 新,陳永升,向一帆
(1.信息工程大學(xué)洛陽校區(qū) 語言工程系 河南 洛陽 471003;2.91709部隊(duì) 吉林 琿春 133300)
隨著互聯(lián)網(wǎng)的發(fā)展,一維關(guān)系已不足以描述真實(shí)數(shù)據(jù).本體將領(lǐng)域中的對(duì)象和事件通過語義建立起關(guān)聯(lián)關(guān)系,用以描述領(lǐng)域知識(shí),體現(xiàn)了本體語義的優(yōu)勢[1].語義數(shù)據(jù)可表示為RDF格式,描述一個(gè)節(jié)點(diǎn)具有一組屬性,或?qū)傩钥醋鞴?jié)點(diǎn)間的關(guān)系[2].數(shù)據(jù)存儲(chǔ)形式影響了知識(shí)的應(yīng)用效率,過去采用關(guān)系型數(shù)據(jù)存儲(chǔ)本體知識(shí),隨著數(shù)據(jù)量增加和多關(guān)系數(shù)據(jù)的存儲(chǔ)需求,產(chǎn)生了非關(guān)系型數(shù)據(jù)庫(NoSQL)[3].關(guān)系型數(shù)據(jù)庫將數(shù)據(jù)存儲(chǔ)成一維關(guān)系數(shù)據(jù),每一維包含一個(gè)主鍵,而非關(guān)系型數(shù)據(jù)庫的每個(gè)節(jié)點(diǎn)和關(guān)系均可包含多個(gè)屬性,更適合存儲(chǔ)和處理復(fù)雜的多關(guān)系型數(shù)據(jù).
本文構(gòu)建的涉藏領(lǐng)域本體以國家安全為目標(biāo),以事件為中心將對(duì)象建立語義關(guān)聯(lián),形成多關(guān)系數(shù)據(jù).涉藏領(lǐng)域?qū)ο蟀嗣?、地理?shí)體名和組織機(jī)構(gòu)名.從語言學(xué)角度分析,事件通過動(dòng)詞表示,對(duì)象通過名詞表示,對(duì)象作為語義角色參與事件中,形成多屬性值對(duì)的語義描述框架.關(guān)系型數(shù)據(jù)庫在存儲(chǔ)和查詢含有多屬性值對(duì)的數(shù)據(jù)時(shí)存在如下問題:查詢效率低下;空間浪費(fèi);可視化效果不好;不易發(fā)現(xiàn)所有關(guān)系.涉藏領(lǐng)域本體知識(shí)類型較多,且存在屬性差異,導(dǎo)致信息存儲(chǔ)空間不同,非關(guān)系型數(shù)據(jù)庫更適合存儲(chǔ)和表示復(fù)雜的數(shù)據(jù)結(jié)構(gòu),并形成知識(shí)圖譜,便于處理和挖掘涉藏領(lǐng)域?qū)嶓w的關(guān)聯(lián)關(guān)系,幫助發(fā)現(xiàn)隱含知識(shí),輔助決策.
本體作為一種形式化知識(shí)表示方式,概念之間需要特定的語言對(duì)其進(jìn)行約束和推理[4].本體知識(shí)通常采用OWL(web ontology language)或RDF本體描述語言,存儲(chǔ)在關(guān)系型數(shù)據(jù)庫中[5].RDF以“實(shí)體-屬性-值”三元組描述實(shí)體與實(shí)體之間的關(guān)系,對(duì)知識(shí)共享和知識(shí)交換提供支持[6].隨著互聯(lián)網(wǎng)技術(shù)和語義web的發(fā)展,基于web的本體描述語言占據(jù)了主要地位[7].目前西藏主題的本體主要面向通用領(lǐng)域,以處理藏文信息.Jiang[8]提出基于HowNet概念相似度和藏英詞典獲取藏語本體.Qiu[9]在藏語本體中基于構(gòu)式獲取藏語詞匯的概念.Xu[10]提出基于本體計(jì)算藏語概念相似度,用于推進(jìn)藏語信息處理.這類本體不具有國家安全領(lǐng)域關(guān)注的對(duì)象,并且在知識(shí)表示研究的推動(dòng)下,構(gòu)建方法也需要進(jìn)一步更新.本體編輯工具Protégé[11]因其開源、方便、模塊清晰等優(yōu)點(diǎn),在本體構(gòu)建領(lǐng)域受到廣泛應(yīng)用[12].雖然Protégé提供了友好界面和一致性檢驗(yàn),但它仍需要人工輸入和編輯大量的數(shù)據(jù)信息,很難構(gòu)建大規(guī)模的本體工程[13],存在很多限制.Protégé產(chǎn)生的文件格式為RDF或OWL,表現(xiàn)力還有欠缺[14].NoSQL數(shù)據(jù)庫可以表示多種關(guān)系和屬性,并支持知識(shí)動(dòng)態(tài)存儲(chǔ)和演化,適合大數(shù)據(jù)實(shí)時(shí)處理[15].Neo4j是一種高性能的可視化效果較好的NoSQL 數(shù)據(jù)庫.
為了將涉藏領(lǐng)域本體中不同類型的知識(shí)關(guān)聯(lián),符合本體語義分布特性,本文提出采用Protégé構(gòu)建領(lǐng)域本體、Neo4j圖數(shù)據(jù)庫進(jìn)行知識(shí)存儲(chǔ)的方法,能更加直觀表現(xiàn)事件與對(duì)象的所有關(guān)系,同時(shí)可以提高存儲(chǔ)效率,減小存儲(chǔ)空間,為用戶提供更好的可視化查詢效果.在涉及國家安全的涉藏領(lǐng)域中可以描繪出各個(gè)實(shí)體的語義關(guān)系網(wǎng)絡(luò),便于發(fā)現(xiàn)和預(yù)測知識(shí).
基于本體語義構(gòu)建的涉藏領(lǐng)域本體是事件驅(qū)動(dòng)的,分析文本中動(dòng)詞和專名,就能得到領(lǐng)域中主要概念.事件概念中,語義角色構(gòu)成其屬性,屬性值具有語義選擇限制;對(duì)象概念屬性為數(shù)據(jù)屬性,描述對(duì)象基本特征;動(dòng)詞的屬性是其在句子中的用法,也就是動(dòng)詞的句法結(jié)構(gòu);專名和實(shí)例的屬性按照概念定義的語義框架,根據(jù)文本內(nèi)容進(jìn)行實(shí)例化.涉藏領(lǐng)域本體中不同類型知識(shí)通過關(guān)系相互映射,概念之間具有“is-a”關(guān)系,概念和實(shí)例之間具有“instance-of”關(guān)系,概念與詞匯之間通過語種標(biāo)簽指示,共同形成涉藏領(lǐng)域本體知識(shí)庫.
本體語義理論將表示文本意義的概念和詞匯分開,詞匯和短語的意義通過詞匯所映射的本體概念表達(dá).基于本體定義的語義框架對(duì)文本進(jìn)行分析,生成文本意義表征(text meaning representation,TMR)[16].TMR基于輸入文本的語義依存關(guān)系構(gòu)建,以動(dòng)詞為中心,文本中的句法模式作為屬性被記錄在詞匯框架中,文本中的語義角色被填充在TMR中,表達(dá)文本含義.本體定義的語義框架區(qū)分粒度較細(xì),包含中心、屬性、側(cè)面和值,表示為(head(slot(facet(filler)+)+)+),以相關(guān)領(lǐng)域中的句子(1)“Indian PM Narendra Modi has visited Mr.Obama at the White House.”為例,產(chǎn)生的TMR為
(1) VISIT-1
VISIT是動(dòng)詞visit所映射的概念,它表示從屬于社會(huì)事件的訪問事件,root屬性指出文本中表示訪問意義的詞匯是動(dòng)詞visit,句子(1)所表示的訪問事件被記為索引VISIT-1.概念VISIT的語義框架表示為
(2) VISIT
本體概念VISIT中的第1列表示語義屬性,第2列是屬性的不同側(cè)面,sem表示基本語義限制,relaxable-to表示語義限制的放寬,第3列是屬性值的限定條件,在概念和詞匯中由概念或變量填充,在事件和對(duì)象實(shí)例中由文本的具體值填充,否則為空.en-lex表示動(dòng)詞visit是概念VISIT的英語表示,描述為
(3) visit
詞匯visit記錄了它的基本句法模式,map-concept表示詞匯visit映射到概念VISIT,由VISIT的語義描述框架表示其含義.句中的Obama是專有名詞,它作為對(duì)象實(shí)例表示為
(4) Barack Obama
按照本體語義所定義的框架,領(lǐng)域內(nèi)的事件和對(duì)象都通過關(guān)系和屬性相互聯(lián)系起來,建立了語義關(guān)聯(lián)數(shù)據(jù),如圖1所示.
圖1 本體語義關(guān)聯(lián)數(shù)據(jù)Fig.1 Ontology semantic linked data
本體構(gòu)建工具使開發(fā)者可以只關(guān)注本體的結(jié)構(gòu)組織,而不必關(guān)心細(xì)節(jié),提高了本體構(gòu)建的效率.本體編輯器Protégé的基本操作都使用圖形用戶接口,操作時(shí)編輯器會(huì)檢測內(nèi)部邏輯一致性.Protégé編輯的本體存儲(chǔ)為RDF/XML數(shù)據(jù)格式.XML是可擴(kuò)展的,允許用戶自定義模式或標(biāo)簽,RDF基于XML語法,但是與規(guī)范XML模式不同,RDF模式對(duì)數(shù)據(jù)的描述更豐富[17].RDF用三元組來描述語義關(guān)系,提供了一個(gè)設(shè)計(jì)好的知識(shí)表示環(huán)境.每個(gè)RDF三元組包括兩個(gè)實(shí)體和一個(gè)關(guān)系,這類似于句子的主語、謂語和賓語.RDF初始化了本體描述,進(jìn)行語義聲明,開發(fā)了復(fù)雜的形式表述,使得文本和數(shù)據(jù)信息能夠適應(yīng)知識(shí)表示環(huán)境,而這些對(duì)使用者來說都是透明的,使用者只需要將知識(shí)保存為相應(yīng)的數(shù)據(jù)格式.
本體語義的知識(shí)框架可以看作是復(fù)合型三元組,每個(gè)三元組可以看作一維的屬性值對(duì),每個(gè)概念至少具有一個(gè)屬性,適合采用RDF來描述,容易被計(jì)算機(jī)處理.基于本體語義理論構(gòu)建的涉藏領(lǐng)域本體中每個(gè)知識(shí)條目都可以表示成多維RDF數(shù)據(jù),這好比將一個(gè)復(fù)雜的高維結(jié)構(gòu)在形式上降維處理,使得后期的存儲(chǔ)應(yīng)用將會(huì)更加高效.因此對(duì)于涉藏領(lǐng)域語義數(shù)據(jù)的存儲(chǔ)就是對(duì)多維RDF數(shù)據(jù)的存儲(chǔ).例如對(duì)(1)事件實(shí)例的RDF表示為
圖2 RDF數(shù)據(jù)結(jié)構(gòu)Fig.2 RDF data structure
專有名詞(4)的RDF可以簡化表示為
用Protégé構(gòu)建初始本體并保存成RDF格式數(shù)據(jù)可以減少一定的工作量,它能夠建立起本體概念的知識(shí)表示,以及概念與詞匯和實(shí)例的映射關(guān)系,詞匯的屬性需要單獨(dú)記錄為XML格式文件.多維RDF數(shù)據(jù)本身構(gòu)成了語義網(wǎng)絡(luò),可以在格式轉(zhuǎn)換后用圖數(shù)據(jù)庫存儲(chǔ)和表示.
Neo4j圖數(shù)據(jù)庫模型的基本組成是節(jié)點(diǎn)(nodes)、關(guān)系(relationships)和屬性(properties),它們都是獨(dú)立存儲(chǔ)的.節(jié)點(diǎn)和關(guān)系都可以創(chuàng)建任意多的屬性,通過key-value對(duì)表示,類似于一個(gè)hashMap數(shù)據(jù)結(jié)構(gòu).Neo4j能夠有效解決多維RDF數(shù)據(jù)中屬性個(gè)數(shù)多少不一帶來的內(nèi)存浪費(fèi)問題,通過深度遍歷接口在多數(shù)據(jù)連接查詢時(shí)保持較快的查詢速度,與存儲(chǔ)的數(shù)據(jù)量無關(guān),在大規(guī)模數(shù)據(jù)集中體現(xiàn)出了良好的性能.
由于Neo4j存儲(chǔ)的知識(shí)表示方式與本體語義的知識(shí)表示框架有一定的區(qū)別,并非簡單地將基于Protégé構(gòu)建的涉藏領(lǐng)域本體轉(zhuǎn)儲(chǔ)進(jìn)Neo4j中,為了達(dá)到較好的可視化存儲(chǔ)和查詢效果,需要重新設(shè)計(jì)兩種知識(shí)表示方法的轉(zhuǎn)換.按照圖1的示例,本文設(shè)計(jì)基于涉藏領(lǐng)域本體的RDF數(shù)據(jù)與Neo4j模型中的元素對(duì)應(yīng)關(guān)系如下:
1) 節(jié)點(diǎn).(a) Neo4j模型中的節(jié)點(diǎn)表示為領(lǐng)域本體中不同類型的知識(shí),如概念、TMR和專名的名稱,也就是將涉藏領(lǐng)域事件和對(duì)象的概念名和實(shí)例名作為實(shí)體節(jié)點(diǎn).由于動(dòng)詞詞匯僅包含抽象的句法屬性,在Neo4j中存儲(chǔ)時(shí)會(huì)產(chǎn)生大量相同的存儲(chǔ)結(jié)構(gòu),造成空間冗余,因此將動(dòng)詞詞匯作為事件實(shí)例的一個(gè)詞根屬性表示,不再將其具體的屬性存儲(chǔ)在Neo4j中.(b) 除事件類型的節(jié)點(diǎn)外,其他節(jié)點(diǎn)按照本體語義定義的語義框架創(chuàng)建多個(gè)屬性-值對(duì).
2) 關(guān)系.(a) 模型中的關(guān)系連接領(lǐng)域本體中不同類型的知識(shí)節(jié)點(diǎn),如概念之間的“is-a”關(guān)系,概念與TMR或?qū)Cg的“instance-of”關(guān)系,詞匯與概念之間的“map-concept”映射關(guān)系,TMR與詞匯之間的“root”關(guān)系,即通常所說的對(duì)象屬性.(b) 涉藏領(lǐng)域本體的語義框架在存儲(chǔ)到Neo4j模型中時(shí),一個(gè)重要的變化就是需要將事件屬性(agent、theme、location和time)轉(zhuǎn)換為Neo4j模型中的關(guān)系.做這個(gè)轉(zhuǎn)換的原因有兩點(diǎn):事件關(guān)聯(lián)了很多對(duì)象,如果某一個(gè)對(duì)象作為屬性值出現(xiàn),就不再具有實(shí)體節(jié)點(diǎn)的特點(diǎn),Neo4j模型中關(guān)系和屬性是有區(qū)別的,不便于展示一個(gè)對(duì)象同時(shí)關(guān)聯(lián)到多事件的情況;在Neo4j模型中,一個(gè)事件或者對(duì)象作為實(shí)體節(jié)點(diǎn)是可以共享關(guān)系的,但是不能共享屬性.如果將對(duì)象作為事件屬性進(jìn)行查詢,則只能遍歷所有的數(shù)據(jù),分別查到包含該屬性的所有事件,而將事件屬性作為關(guān)系則可以多關(guān)系共享同一個(gè)對(duì)象節(jié)點(diǎn),查詢效率高,且符合查詢需要,是多關(guān)系數(shù)據(jù)價(jià)值的體現(xiàn).
3) 屬性.經(jīng)過如上的調(diào)整,則屬性就僅作為對(duì)象概念和實(shí)例性質(zhì)的基本描述,即所謂的數(shù)據(jù)屬性,例如PERSON對(duì)象概念的屬性主要包括ALIAS、SOCIAL-ROLE、GENDER和 NATIONALITY等.
4) 索引.涉藏領(lǐng)域本體數(shù)據(jù)本身是分布式的,存儲(chǔ)在Neo4j模型中也是分布式的,一個(gè)概念節(jié)點(diǎn)可能對(duì)應(yīng)著多個(gè)詞匯節(jié)點(diǎn)或者實(shí)例節(jié)點(diǎn),也就存在著多個(gè)關(guān)系.Neo4j模型對(duì)節(jié)點(diǎn)、關(guān)系和屬性都是分別存儲(chǔ)的,因此以概念為中心,將概念所映射的同類型知識(shí)單獨(dú)索引,例如概念“INFORM”所映射的英語動(dòng)詞“say”、“tell”和“urge”可分別索引為“INFORM-1”、“INFORM-2”和“INFORM-3”.增加索引的好處在于封裝,使得對(duì)數(shù)據(jù)庫操作變得簡化.
為了驗(yàn)證存儲(chǔ)效果,本文從公開網(wǎng)站按照領(lǐng)域?qū)<医o出的相關(guān)主題詞,基于網(wǎng)頁標(biāo)簽信息采集西藏相關(guān)英語新聞,數(shù)據(jù)采集的時(shí)間跨度從2010年1月至2017年4月,獲得了30 410個(gè)句子,經(jīng)處理后得到領(lǐng)域相關(guān)的概念和實(shí)例,篩選了一些具有典型意義的知識(shí),共建立了771個(gè)節(jié)點(diǎn)、3 833條屬性、1 033個(gè)關(guān)系.
使用Neo4j提供的接口將Protégé保存的本體數(shù)據(jù)和擴(kuò)展的XML屬性描述數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫,分別使用Node、Relationship和Property數(shù)據(jù)類型建立節(jié)點(diǎn)、關(guān)系和屬性.在數(shù)據(jù)庫中,每一個(gè)節(jié)點(diǎn)會(huì)根據(jù)它的類型定義不同的特征,節(jié)點(diǎn)關(guān)系通過邊表示,對(duì)象屬性則單獨(dú)展示.如事件meet-with1在Neo4j中可視化為以事件為中心的輪子圖,事件中所有參與對(duì)象都以語義角色作為關(guān)系與meet-with1關(guān)聯(lián),如圖3所示.
分別查看每個(gè)節(jié)點(diǎn),又會(huì)顯示其數(shù)據(jù)屬性.整個(gè)庫就是大量的事件和對(duì)象關(guān)聯(lián)形成的知識(shí)圖譜,通過全部連接可以發(fā)現(xiàn)隱含知識(shí),局部可以發(fā)現(xiàn)細(xì)節(jié).以對(duì)象為中心可以查看關(guān)聯(lián)的事件,如the White House作為兩個(gè)meet-with事件中的location而將兩個(gè)事件關(guān)聯(lián)起來,由此可以發(fā)現(xiàn)兩個(gè)事件的隱含關(guān)系,繼續(xù)查看事件可挖掘更多相關(guān)屬性,如圖4所示.
圖3 涉藏領(lǐng)域事件存儲(chǔ)效果Fig.3 Event storage effect in Tibet domain
圖4 關(guān)聯(lián)同一地點(diǎn)的事件Fig.4 The events linked with the same location
表1 涉藏領(lǐng)域數(shù)據(jù)存儲(chǔ)結(jié)果Tab.1 Data storage result of Tibet domain
實(shí)驗(yàn)對(duì)RDF三元組以O(shè)WL文件式存儲(chǔ)和在Neo4j中存儲(chǔ)所占的存儲(chǔ)空間以及查詢響應(yīng)時(shí)間進(jìn)行了對(duì)比.在Protégé構(gòu)建過程中,按階段分別測試了3組規(guī)模不同的RDF文件和Neo4j模型數(shù)據(jù),結(jié)果如表1所示.
在相同數(shù)據(jù)量的情況下,Neo4j存儲(chǔ)空間更小,通過多次查詢同一類型知識(shí)系統(tǒng)反饋的響應(yīng)時(shí)間計(jì)算出查詢的平均響應(yīng)時(shí)間.由于響應(yīng)時(shí)間受到計(jì)算機(jī)系統(tǒng)性能的影響很大,表1作為一個(gè)參考值,數(shù)據(jù)量較小時(shí)對(duì)比效果不明顯,但相同條件下Neo4j的響應(yīng)時(shí)間更短.
本文分析了基于本體語義理論構(gòu)建的涉藏領(lǐng)域本體的語義框架,發(fā)現(xiàn)其數(shù)據(jù)結(jié)構(gòu)不適合用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫進(jìn)行存儲(chǔ),提出了非關(guān)系型數(shù)據(jù)存儲(chǔ)的方法.將涉藏領(lǐng)域的語義框架轉(zhuǎn)換成RDF數(shù)據(jù)格式,按照語義邏輯將不同類型的知識(shí)與圖數(shù)據(jù)庫Neo4j中的基本存儲(chǔ)元素一一對(duì)應(yīng).該方法的查詢效果較好,能夠按照查詢者的意圖只顯示相關(guān)實(shí)例及關(guān)系,同時(shí)得出以下結(jié)論:1) 無論知識(shí)表示方式如何,對(duì)于Neo4j來說,都將分解成節(jié)點(diǎn)和邊的關(guān)系進(jìn)行存儲(chǔ);2) Neo4j的可視化效果較好,能夠顯示出不同類型知識(shí)節(jié)點(diǎn)之間的所有關(guān)系和屬性;3) Neo4j消除了很多冗余信息,存儲(chǔ)效率高,存儲(chǔ)空間較小,查詢響應(yīng)速度較快.基于Neo4j圖數(shù)據(jù)庫存儲(chǔ)涉藏領(lǐng)域本體的方法借助了目前較為流行的NoSQL存儲(chǔ)技術(shù),為本體語義的知識(shí)存儲(chǔ)和表示提供了更適合的解決方案,有利于涉藏領(lǐng)域的知識(shí)發(fā)現(xiàn)和查詢.