潘理虎 張佳宇* 張英俊 謝建林
1(太原科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 山西 太原 030024)2(太原科技大學(xué)環(huán)境與安全學(xué)院 山西 太原 030024)
煤礦的安全生產(chǎn)和管理一直是該領(lǐng)域研究的熱點(diǎn),雖然近幾年國(guó)家采取一系列政策使得煤礦安全形勢(shì)有所好轉(zhuǎn)[1],但事故發(fā)生率及事故總量仍高于世界其他主要煤炭生產(chǎn)國(guó),面臨的安全隱患不容小覷。且因信息化智能應(yīng)用的增多,當(dāng)前行業(yè)數(shù)據(jù)產(chǎn)生速率加快,累計(jì)了大量的數(shù)據(jù)。這些數(shù)據(jù)形式多樣,數(shù)量龐大,傳統(tǒng)的數(shù)據(jù)管理方式已無(wú)法滿(mǎn)足行業(yè)數(shù)據(jù)管理需求[2]。
本體通過(guò)對(duì)領(lǐng)域知識(shí)的組織和管理,不僅能夠有效地對(duì)礦井情景進(jìn)行形式化描述,而且通過(guò)Jena推理機(jī)和自定義規(guī)則對(duì)知識(shí)的推理,還能充分挖掘其中的隱含信息。知識(shí)圖譜是一種結(jié)構(gòu)化的語(yǔ)義知識(shí)庫(kù),可以將網(wǎng)絡(luò)信息、數(shù)據(jù)資源關(guān)聯(lián)為語(yǔ)義知識(shí),以備后續(xù)研究利用,是目前大數(shù)據(jù)時(shí)代知識(shí)的表示方式[3]。因此,將本體與知識(shí)圖譜相結(jié)合,能夠更加有效地對(duì)煤礦領(lǐng)域知識(shí)之間的聯(lián)系進(jìn)行分析,特別是在煤礦安全監(jiān)測(cè)監(jiān)控方面。目前存在的煤礦安全監(jiān)測(cè)監(jiān)控系統(tǒng)大多側(cè)重于對(duì)人員及設(shè)備信息的監(jiān)測(cè)監(jiān)控,忽略了人員、設(shè)備、操作及環(huán)境等信息之間的內(nèi)在聯(lián)系,知識(shí)圖譜能夠?qū)⒕略O(shè)備、環(huán)境狀態(tài)、操作狀態(tài)等信息進(jìn)行關(guān)聯(lián),使得相關(guān)工作人員快速高效全方位地掌握礦井信息,在事故防治以及安全管理方面均有一定意義。
知識(shí)圖譜的構(gòu)建方式有兩種[4],一種是自頂向下的構(gòu)建方式,一種是自底向上的構(gòu)建方式。前者指的是預(yù)先為知識(shí)庫(kù)定義好本體或數(shù)據(jù)模式,然后再將實(shí)體加入到知識(shí)庫(kù)中,即利用一些現(xiàn)有結(jié)構(gòu)化知識(shí)庫(kù)作為基礎(chǔ)知識(shí)庫(kù),F(xiàn)reebase項(xiàng)目就是采用此方式[5]。后者指的是先利用相關(guān)技術(shù)把開(kāi)放鏈接數(shù)據(jù)和在線百科數(shù)據(jù)中有用實(shí)體提取出來(lái),從中選擇置信度較高的添加到知識(shí)庫(kù)中,從而構(gòu)建出頂層本體模式[6]。
本文采用的是自頂向下的知識(shí)圖譜構(gòu)建方式。在分析比較常用的幾個(gè)本體建模方法后,結(jié)合煤礦數(shù)據(jù)特點(diǎn),采用七步法與METHONTOLOGY法相結(jié)合的本體構(gòu)建方法對(duì)煤礦領(lǐng)域本體進(jìn)行建模。并基于該本體構(gòu)建煤礦領(lǐng)域核心知識(shí)圖譜,具體可分為三步:(1) 對(duì)本體與圖數(shù)據(jù)庫(kù)的映射匹配機(jī)制進(jìn)行分析,并制定映射規(guī)則;(2) 根據(jù)具體規(guī)則將本體數(shù)據(jù)進(jìn)行存儲(chǔ),并補(bǔ)充實(shí)體內(nèi)容,實(shí)現(xiàn)初始知識(shí)圖譜構(gòu)建;(3) 在前兩步的基礎(chǔ)上,設(shè)計(jì)并開(kāi)發(fā)煤礦安全監(jiān)測(cè)監(jiān)控原型系統(tǒng),使得相關(guān)工作人員能夠及時(shí)對(duì)礦井信息進(jìn)行全面了解,以此減少事故發(fā)生量,保障人員和設(shè)備安全性。
本體的構(gòu)建方法各異,最常見(jiàn)的有七步法[7]、骨架法、METHONTOLOGY法[8]、TOVE法[9]、IDEF5法、SENSUS法和KACTUS法。其中,七步法、骨架法、TOVE法及METHONTOLOGY法的生命周期較為完整,但溯本追源,七步法、骨架法和TOVE法均未有真正的生命周期。從其配套的相關(guān)技術(shù)角度看,七步法和METHONTOLOGY法有其相關(guān)配套技術(shù),只是METHONTOLOGY法相對(duì)不全,而其余方法配套的相關(guān)技術(shù)皆不確定。就方法說(shuō)明的詳細(xì)程度而論,七步法、METHONTOLOGY法及IDEF5法較多,而其余方法相對(duì)較少。除此之外,每種方法的構(gòu)建形式不一,除七步法采用半自動(dòng)方式構(gòu)建,其余大多數(shù)為人工方式構(gòu)建。由此可知,七步法和METHONTOLOGY法較為成熟。
煤礦領(lǐng)域數(shù)據(jù)是指煤炭生產(chǎn)和管理過(guò)程中所產(chǎn)出的數(shù)據(jù),具有數(shù)據(jù)量大、種類(lèi)多、價(jià)值密度低及數(shù)據(jù)產(chǎn)生變化快的特點(diǎn)[10]。在煤炭生產(chǎn)過(guò)程中會(huì)有瓦斯監(jiān)測(cè)數(shù)據(jù)、設(shè)備運(yùn)轉(zhuǎn)數(shù)據(jù)、事故發(fā)生因素及工作人員個(gè)人信息等不同種類(lèi)數(shù)據(jù)產(chǎn)生。且礦井員工在工作過(guò)程中會(huì)使用多種監(jiān)測(cè)設(shè)備與傳感器,以實(shí)現(xiàn)對(duì)員工的實(shí)時(shí)監(jiān)控,在這過(guò)程中會(huì)有海量數(shù)據(jù)產(chǎn)生,但真正有用的數(shù)據(jù)卻很少,因而數(shù)據(jù)價(jià)值密度并不高。與此同時(shí),該領(lǐng)域中信息化應(yīng)用逐漸增多,伴隨著數(shù)據(jù)的產(chǎn)生量與速度也在急速增長(zhǎng)。利用本體能夠有效地組織和管理煤礦領(lǐng)域數(shù)據(jù),但由于七步法在構(gòu)建本體的過(guò)程中往往會(huì)忽略?xún)?nèi)容的更新,而煤礦領(lǐng)域數(shù)據(jù)更新速度快,倘若在構(gòu)建途中有新知識(shí)出現(xiàn),或知識(shí)發(fā)生變化,該方法則不再適用。METHONTOLOGY法在每一步操作完成后都能對(duì)其進(jìn)行修改,恰好彌補(bǔ)以上不足。因此,本文提出了一種將兩者相結(jié)合的本體構(gòu)建方法,具體開(kāi)發(fā)流程如圖1所示。
圖1 本體開(kāi)發(fā)流程
1) 明確構(gòu)建本體領(lǐng)域及范圍 本文從煤礦安全的角度出發(fā),通過(guò)書(shū)籍、文獻(xiàn)、電子資料等途徑獲取信息,抽象出煤礦安全監(jiān)測(cè)的相關(guān)對(duì)象,了解設(shè)備、環(huán)境、操作、工種、災(zāi)害(事故)之間的關(guān)聯(lián)關(guān)系,確定了構(gòu)建本體的領(lǐng)域范圍包括:采煤工作面、掘進(jìn)工作面、井下通風(fēng)、井下運(yùn)輸及安全監(jiān)測(cè)監(jiān)控。
2) 分析復(fù)用該領(lǐng)域已有本體可能性 通過(guò)查閱、調(diào)研已有本體模型,對(duì)郭華的瓦斯監(jiān)控系統(tǒng)本體[11]、藥慧婷的煤礦掘進(jìn)工作面本體[12]、劉婷的采煤工作面本體[13]、李婉婉的通風(fēng)系統(tǒng)本體及運(yùn)輸系統(tǒng)本體[14]進(jìn)行分析復(fù)用。
3) 獲取領(lǐng)域知識(shí) 通過(guò)實(shí)地調(diào)研及對(duì)領(lǐng)域?qū)<业脑L談,以國(guó)家安監(jiān)局制定的規(guī)程為主要知識(shí)源,《中國(guó)分類(lèi)主題詞表》中的礦山詞表、CNKI文獻(xiàn)以及《煤礦機(jī)電設(shè)備操作技術(shù)工人》、《通風(fēng)安全技術(shù)工人》等書(shū)籍為輔,并結(jié)合領(lǐng)域術(shù)語(yǔ)標(biāo)準(zhǔn),完成對(duì)煤礦領(lǐng)域知識(shí)的獲取。
4) 確定領(lǐng)域核心概念 對(duì)獲取數(shù)據(jù)進(jìn)行分類(lèi)、分析、歸并整理,提取出核心概念,如表1所示。
表1 煤礦領(lǐng)域數(shù)據(jù)術(shù)語(yǔ)(部分)
由于上述概念存在語(yǔ)義重復(fù)、表達(dá)不規(guī)范等問(wèn)題,因此,以上術(shù)語(yǔ)并不是最終本體中的概念,接下來(lái)本文將對(duì)其進(jìn)一步整合,使其具有唯一性。
5) 建立領(lǐng)域核心概念層次 通過(guò)分層的形式可對(duì)領(lǐng)域中概念有一個(gè)明確的認(rèn)識(shí),例如:高層的類(lèi)代表最高抽象層次的概念,而低層的類(lèi)是高層類(lèi)的子類(lèi),其繼承了高層類(lèi)所有的屬性,實(shí)體概念更加具體。且在Protégé中,最頂層的類(lèi)是Thing,本文中定義的五大類(lèi):設(shè)備、災(zāi)害、環(huán)境、操作以及工種均為該類(lèi)的子類(lèi),例如操作(Operation)類(lèi),詳情見(jiàn)圖2。
圖2 煤礦領(lǐng)域本體中操作類(lèi)
6) 定義概念間屬性及約束 只定義煤礦領(lǐng)域知識(shí)中的類(lèi)和類(lèi)的層次結(jié)構(gòu)還無(wú)法完整地表達(dá)煤礦領(lǐng)域知識(shí),還需通過(guò)屬性及屬性約束來(lái)詳細(xì)描述類(lèi)的結(jié)構(gòu)及特征。屬性包括兩類(lèi):對(duì)象屬性、數(shù)據(jù)屬性。其中,對(duì)象屬性是指對(duì)類(lèi)之間的關(guān)系進(jìn)行描述,如圖3所示,hasApparatus可以表示在某個(gè)工作地點(diǎn)有一個(gè)儀器。而數(shù)據(jù)屬性是指對(duì)類(lèi)本身所具有的特質(zhì)進(jìn)行描述,如4所示,hasGasConcentrationValue指氣體的濃度值。
圖3 煤礦領(lǐng)域本體中部分對(duì)象屬性
圖4 煤礦領(lǐng)域本體中部分?jǐn)?shù)據(jù)屬性
7) 本體實(shí)例化 為了能夠?qū)?gòu)建的本體模型應(yīng)用到實(shí)際問(wèn)題中,需要給本體中的類(lèi)添加相應(yīng)的實(shí)例和屬性,以擴(kuò)充本體內(nèi)容。例如在圖5中,為鉆眼工(DrillingWorker)添加了屬性和實(shí)例。
圖5 鉆井工人的屬性及實(shí)例
鉆眼工是工種的一個(gè)子類(lèi),具備使用設(shè)備(isUsing some Apparatus)、工作環(huán)境(isWorkingOn some Environment)、工作范圍(isWorkingOn some WorkingPlace)屬性,而HuRui、Lily等為鉆眼工的實(shí)例(Members),能夠繼承上述屬性。如圖6所示,Lily是一名鉆眼工,在Place1工作,同時(shí)在這里工作的還有HuRui、LiuHuan等。
圖6 鉆井工人Lily的屬性描述
8) 邏輯推理及檢測(cè) 邏輯推理是指根據(jù)現(xiàn)有材料按邏輯思維的規(guī)律、規(guī)則形成概念、從而作出判斷,達(dá)到推理的目的。Protégé自帶推理機(jī)制,可以對(duì)實(shí)例進(jìn)行一致性檢測(cè),消除語(yǔ)義差異,即其可以保持本體邏輯關(guān)系的一致性,避免本體出現(xiàn)語(yǔ)義矛盾,能夠?yàn)楹罄m(xù)本體推理提供保障。例如,為工作地點(diǎn)添加一個(gè)實(shí)例Place2,且滿(mǎn)足hasGasConcentrationValue some float[>=0.05],hasO2ConcentrationValue some float[<=0.2],hasTemperatureConcentrationValue some integer[>=650]三個(gè)屬性中任意一個(gè),那么,就代表Place2不安全,需要相關(guān)工作人員采取對(duì)應(yīng)措施處理。如圖7、圖8所示,給工作地點(diǎn)添加實(shí)例Place1和實(shí)例Place3,并將其數(shù)據(jù)屬性hasGasConcentrationValue分別設(shè)定為0.08f和0.02f,經(jīng)一致性推理后可知,Place1是一個(gè)危險(xiǎn)工作地,而Place3安全。
圖7 添加實(shí)例Place1、Place2、Place3
圖8 一致性檢測(cè)后
9) 本體更新 本體更新的數(shù)據(jù)來(lái)源主要有兩個(gè):一是經(jīng)過(guò)邏輯推理和一致性檢測(cè)后所得數(shù)據(jù);二是煤礦領(lǐng)域出現(xiàn)的新數(shù)據(jù)。本文從CNKI數(shù)據(jù)庫(kù)檢索到1999年-2017年間有關(guān)煤礦領(lǐng)域文獻(xiàn)2 564篇,對(duì)其進(jìn)行數(shù)據(jù)抽取,并按煤礦領(lǐng)域本體的概念分類(lèi)對(duì)本體內(nèi)容進(jìn)行補(bǔ)充,實(shí)現(xiàn)本體更新,更新后本體如圖9所示。
圖9 煤礦領(lǐng)域本體模型
10) 文檔化 通過(guò)以上步驟,本文煤礦領(lǐng)域本體模型基本構(gòu)建完成。本體描述語(yǔ)言O(shè)WL能夠?qū)崿F(xiàn)本體模型的形式化表示,為后續(xù)數(shù)據(jù)實(shí)例化、本體推理等提供標(biāo)準(zhǔn)、統(tǒng)一的語(yǔ)言規(guī)范。煤礦領(lǐng)域本體OWL文件部分內(nèi)容如下:
(1) 類(lèi)的存儲(chǔ):
(2) 對(duì)象屬性的存儲(chǔ):
(3) 數(shù)據(jù)屬性的存儲(chǔ):
對(duì)于特色農(nóng)產(chǎn)品而言,要想實(shí)現(xiàn)其標(biāo)準(zhǔn)化翻譯,不僅要提高企業(yè)的重視程度,更要政府加強(qiáng)對(duì)農(nóng)產(chǎn)品英文翻譯的規(guī)范。同時(shí),也要對(duì)特色農(nóng)產(chǎn)品的名稱(chēng)以及中英文簡(jiǎn)介進(jìn)行明確規(guī)范。在實(shí)際中,不同的農(nóng)產(chǎn)品企業(yè)對(duì)于同一種農(nóng)產(chǎn)品的簡(jiǎn)介并不相同,這樣既不利于外國(guó)友人對(duì)中國(guó)特色農(nóng)產(chǎn)品進(jìn)行了解,也不利于特色農(nóng)產(chǎn)品向國(guó)際化方向發(fā)展。由此可見(jiàn),要提高政府對(duì)農(nóng)產(chǎn)品英文翻譯的重視程度,嚴(yán)格規(guī)范英漢名稱(chēng)與簡(jiǎn)介信息,培養(yǎng)專(zhuān)業(yè)的農(nóng)產(chǎn)品英文翻譯團(tuán)隊(duì),增加專(zhuān)業(yè)的農(nóng)產(chǎn)品翻譯人員,鼓勵(lì)相關(guān)人員進(jìn)行市場(chǎng)調(diào)研,推動(dòng)市場(chǎng)經(jīng)濟(jì)快速發(fā)展。 rdf:about="#hasCO2ConcentrationValue"/>
(4) 一般公理的存儲(chǔ):
rdf:about="#ThreeChainScraperConveYorMachine"/>
本體通常使用OWL語(yǔ)言描述,其保存格式為RDF三元組。而RDF圖[15-16]由多個(gè)三元組構(gòu)成,三元組=<主語(yǔ),謂語(yǔ),賓語(yǔ)>。圖數(shù)據(jù)庫(kù)中的節(jié)點(diǎn)可由主語(yǔ)和賓語(yǔ)轉(zhuǎn)化,節(jié)點(diǎn)之間的邊可由謂語(yǔ)轉(zhuǎn)化,表示主語(yǔ)和賓語(yǔ)之間的關(guān)系。因此,本體文件能夠映射到圖數(shù)據(jù)庫(kù)實(shí)現(xiàn)知識(shí)的存儲(chǔ)。
本文中,對(duì)此有如下定義:
定義1將RDF的存儲(chǔ)模型定義為:
r=
(1)
式中:s表示主語(yǔ),p表示謂語(yǔ),o表示賓語(yǔ)。
定義2圖數(shù)據(jù)庫(kù)中的圖結(jié)構(gòu)形式化為:
G=
(2)
式中:V為圖數(shù)據(jù)庫(kù)中節(jié)點(diǎn)集合;E為邊集合;P為屬性鍵值對(duì)集合;src、tgt和lbl都表示函數(shù)關(guān)系,分別表示為圖中每條邊都有一個(gè)起點(diǎn),圖中每條邊都有一個(gè)終點(diǎn),圖模型中每一個(gè)節(jié)點(diǎn)/邊都可以設(shè)置零個(gè)或多個(gè)標(biāo)簽來(lái)標(biāo)識(shí)。
考慮到RDF具有空節(jié)點(diǎn)、數(shù)據(jù)類(lèi)型不同等問(wèn)題,制定具體的映射規(guī)則來(lái)約束存儲(chǔ)關(guān)系的映射,包括節(jié)點(diǎn)映射規(guī)則、邊映射規(guī)則。
1) 節(jié)點(diǎn)映射規(guī)則:
(1)S為RDF的主語(yǔ)集,O為RDF的賓語(yǔ)集,V為圖數(shù)據(jù)庫(kù)的節(jié)點(diǎn)集,S和O都可以映射成V,且V不重復(fù)出現(xiàn),即主語(yǔ)s、賓語(yǔ)o及節(jié)點(diǎn)v之間存在一個(gè)映射函數(shù),能夠?qū)⒅髡Z(yǔ)s和賓語(yǔ)o映射為圖數(shù)據(jù)庫(kù)中的節(jié)點(diǎn)v。
(2)U為RDF中的URI集合,是三元組中的主語(yǔ)或者賓語(yǔ),則有u∈U∩u∈(S∪O)。在圖數(shù)據(jù)庫(kù)中為其設(shè)置一個(gè)屬性,構(gòu)成屬性集f(vu),且以“uri”為標(biāo)簽。
f(vu)={("URI",str(u))}
lbl(vu)="uri"
式中:vu為u在圖數(shù)據(jù)庫(kù)中的對(duì)應(yīng)節(jié)點(diǎn),str(u)為代表該URI的字符串。
(3)B為空節(jié)點(diǎn)集合,b在RDF中為空節(jié)點(diǎn)的主語(yǔ)或者賓語(yǔ),則有b∈B∩b∈(S∪O)。在圖數(shù)據(jù)庫(kù)中為其設(shè)置一個(gè)屬性,構(gòu)成屬性集f(vb),且以“bnode”為標(biāo)簽。
f(vb)={("URI",str(b))}
lbl(vu)="bnode"
式中:vb∈V,str(b)表示唯一標(biāo)識(shí)該空節(jié)點(diǎn)的字符串。
(4)L為文字節(jié)點(diǎn)集合,l在RDF三元組中為L(zhǎng)iteral的主語(yǔ)或賓語(yǔ),則有l(wèi)∈L∩l∈(S∪O)。在圖數(shù)據(jù)庫(kù)中為l設(shè)置三個(gè)屬性,構(gòu)成屬性集f(vl),且以“Literal”為標(biāo)簽。
f(vl)={("value",str(l)),("datatype",type(l))("lang",t(l)}
lbl(vl)="literal"
式中:str(l)為文本值,type(l)為文本的數(shù)據(jù)類(lèi)型,t(l)為文本的語(yǔ)言。
2) 邊映射規(guī)則:
(1) 存在一個(gè)從RDF三元組到圖數(shù)據(jù)庫(kù)的邊映射函數(shù),能夠?qū)崿F(xiàn)三元組謂語(yǔ)P到圖數(shù)據(jù)庫(kù)邊E的映射。
(2) RDF三元組可表示為,如(1)所述,謂語(yǔ)p能夠映射成圖數(shù)據(jù)庫(kù)里的邊e,若將str(p)作為標(biāo)簽,則有:
lbl(e)=str(p)src(e)=vstgt(e)=vo
式中:vs為邊e的開(kāi)始節(jié)點(diǎn),vo為邊e的結(jié)束節(jié)點(diǎn)。
(3) 若RDF三元組中的謂語(yǔ)P都為URI,那么,就不需要設(shè)置額外的屬性,設(shè)置標(biāo)簽lbl即可確定。
以圖6中的鉆井工人Lily為例,其相應(yīng)RDF圖表示見(jiàn)圖10。
圖10 工人信息RDF圖
采用以上映射規(guī)則,可以將圖10中各元素表示為:
V={v1,v2,v3}E={e1,e2}
src(e1)=v1tgt(e1)=v2lbl(e1)="rdf:type"
src(e2)=v1tgt(e2)=v2lbl(e2)="isWorkingOn"
f(v1)={("URI",Lily)}
f(v2)={("URI",DrillingWorker)}
f(v3)={("URI",place1)}
按映射規(guī)則映射后,得到對(duì)應(yīng)的圖數(shù)據(jù)存儲(chǔ)圖如圖11所示。
圖11 工人信息RDF圖映射后的圖數(shù)據(jù)存儲(chǔ)
Neo4j是一個(gè)典型的、高性能NOSQL圖數(shù)據(jù)庫(kù),用Java語(yǔ)言實(shí)現(xiàn),存儲(chǔ)方式不同于一般數(shù)據(jù)庫(kù)的表格存儲(chǔ),以網(wǎng)絡(luò)的方式對(duì)結(jié)構(gòu)化數(shù)據(jù)進(jìn)行存儲(chǔ)。與其他非關(guān)系型數(shù)據(jù)庫(kù)相比,Neo4j支持ACID事務(wù),支持海量數(shù)據(jù)存儲(chǔ),具有成熟數(shù)據(jù)庫(kù)的所有特性,能夠很好地解決煤礦領(lǐng)域數(shù)據(jù)價(jià)值密度低、數(shù)量大、更新速度快的問(wèn)題。因此,本文選用Neo4j圖數(shù)據(jù)庫(kù)來(lái)進(jìn)行研究。
根據(jù)第2節(jié)對(duì)本體與圖數(shù)據(jù)庫(kù)的映射匹配分析,本文采用知識(shí)存儲(chǔ)映射算法將煤礦領(lǐng)域本體內(nèi)容映射到Neo4j圖數(shù)據(jù)庫(kù)中,實(shí)現(xiàn)本體數(shù)據(jù)到圖數(shù)據(jù)的轉(zhuǎn)換與煤礦領(lǐng)域知識(shí)的存儲(chǔ),即先讀取已存儲(chǔ)的RDF文件,并對(duì)每一個(gè)三元組進(jìn)行遍歷,最后根據(jù)存儲(chǔ)映射規(guī)則實(shí)現(xiàn)知識(shí)的存儲(chǔ)。涉及到的知識(shí)存儲(chǔ)映射算法[17-18]如下。
輸入:RDF文件,Neo4j圖數(shù)據(jù)庫(kù)地址(dbURI)
輸出:Neo4j圖數(shù)據(jù)庫(kù)中存儲(chǔ)的本體內(nèi)容
(1) 用Jena API讀取RDF文件進(jìn)行讀,獲取全部三元組R,并將三元組Ri(共n個(gè)三元組,i≤n)解析得Triple={s,p,o}。
(2) 經(jīng)RestAPIFacade訪問(wèn)連接Neo4j圖數(shù)據(jù)庫(kù)(dbURI),使用Transaction開(kāi)啟事務(wù),并為節(jié)點(diǎn)和邊建立索引RestNode、RestRelationship。
(3) 從RestNode中獲取Triple.s及Triple.o的對(duì)應(yīng)節(jié)點(diǎn)Vs和Vo,判斷Vs和Vo是否已經(jīng)存在于數(shù)據(jù)庫(kù)中,若不存在,則創(chuàng)建新節(jié)點(diǎn)并將其添加到RestNode中。
(4) 從RestRelationship中獲取Triple.p的對(duì)應(yīng)邊Ep,判斷Ep是否已經(jīng)存在于數(shù)據(jù)庫(kù)中,若不存在,則創(chuàng)建一條由Vs指向Vo的有向邊,并將其加入到RestRelationship中。
(5) 判斷三元組Ri是否已全部遍歷,若i≥n,則已全部遍歷,繼續(xù)下一步操作;若i (6) Neo4j圖數(shù)據(jù)庫(kù)中得到已存儲(chǔ)的本體內(nèi)容。 存儲(chǔ)算法流程如圖12所示。 圖12 知識(shí)存儲(chǔ)算法流程 知識(shí)存儲(chǔ)具體實(shí)現(xiàn)過(guò)程見(jiàn)圖13。 圖13 本體數(shù)據(jù)到Neo4j圖數(shù)據(jù)庫(kù)的存儲(chǔ)實(shí)現(xiàn)過(guò)程 (1) 采用Jena API對(duì)煤礦領(lǐng)域本體文件(cms.rdf)進(jìn)行讀取及解析,并在Neo4j圖數(shù)據(jù)庫(kù)中建立一個(gè)名為“c”的圖數(shù)據(jù)庫(kù),然后將解析后的所有RDF三元組數(shù)據(jù)存儲(chǔ)于此圖模型中,該過(guò)程核心代碼如下: //對(duì)RDF文件進(jìn)行讀取 InputStream in=FileManager.get().open(inputFileName); //在Jena中創(chuàng)建一個(gè)默認(rèn)模型 Model model=ModelFactory.createDefaultModel(); //將文件中讀取所有RDF三元組,并將其存儲(chǔ)于模型 Model.read(in,"","RDF"); //對(duì)圖數(shù)據(jù)庫(kù)進(jìn)行初始化操作,即建立一個(gè)名為“c”的圖 //數(shù)據(jù)庫(kù) GraphDatabaseService cgraph=new GraphDatabaseFactory().newEmbeddedDatabase(NEO_STORE); //為“c”圖數(shù)據(jù)庫(kù)創(chuàng)建對(duì)象 NeoGraph graph=new NeoGraph(cgraph); //為“c”圖數(shù)據(jù)庫(kù)的對(duì)象創(chuàng)建一個(gè)模型 Model cmodel=ModelFactory.createModelForGraph(graph); //將三元組保存到圖對(duì)象模型中 cmodel.add(model); (2) 圖13中Neo4j存儲(chǔ)結(jié)構(gòu)部分指的是,nodes和relationships除了兩者間映射關(guān)系外,還可以結(jié)合實(shí)際情況為其自身添加properties。 (3) 經(jīng)前兩個(gè)步驟,Neo4j中會(huì)產(chǎn)生相應(yīng)的存儲(chǔ)文件,主要有三部分構(gòu)成:nodes存儲(chǔ)文件、relationships存儲(chǔ)文件以及properties文件。 (4) 通過(guò)Neo4j將存儲(chǔ)的煤礦領(lǐng)域知識(shí)進(jìn)行可視化展示。 目前,我國(guó)采取的安全管理模式仍以“事后管理”為主,主要是因?yàn)轭I(lǐng)域數(shù)據(jù)分析工具稀缺,無(wú)法做到“事前預(yù)防”。且大多數(shù)煤礦安全監(jiān)測(cè)監(jiān)控系統(tǒng)只能滿(mǎn)足于對(duì)井下數(shù)據(jù)進(jìn)行監(jiān)測(cè)監(jiān)控需求,并不能對(duì)其搜集的數(shù)據(jù)進(jìn)行分析與推理?;谥R(shí)圖譜的煤礦安全監(jiān)測(cè)監(jiān)控系統(tǒng)不僅可以清晰地展示數(shù)據(jù)的具體信息,給用戶(hù)傳達(dá)更加多維的知識(shí),幫助用戶(hù)決策。而且,能夠?qū)χR(shí)信息進(jìn)行推理與分析,及時(shí)發(fā)現(xiàn)礦井中的隱含信息,有助于事故的提前預(yù)防和治理,對(duì)煤礦安全生產(chǎn)和安全管理有著重要意義。 根據(jù)以上需求,本文設(shè)計(jì)并開(kāi)發(fā)了煤礦安全監(jiān)測(cè)監(jiān)控原型系統(tǒng),實(shí)現(xiàn)對(duì)煤礦資源的合理利用及增加數(shù)據(jù)公開(kāi)透明性。 該煤礦安全監(jiān)測(cè)監(jiān)控系統(tǒng)平臺(tái)的知識(shí)圖譜是基于煤礦領(lǐng)域本體構(gòu)建的,具體系統(tǒng)架構(gòu)如圖14所示。 圖14 煤礦安全監(jiān)測(cè)監(jiān)控系統(tǒng)架構(gòu)圖 (1) 數(shù)據(jù)層 數(shù)據(jù)層主要是為了給系統(tǒng)提供數(shù)據(jù)與規(guī)則,是系統(tǒng)運(yùn)行的意義所在。本文數(shù)據(jù)主要來(lái)自煤礦領(lǐng)域本體、相關(guān)文獻(xiàn)提取知識(shí)等。 (2) 技術(shù)層 技術(shù)層引入Jena推理機(jī)制、知識(shí)存儲(chǔ)方法等,能夠?qū)?shù)據(jù)進(jìn)行讀取、存儲(chǔ)和查詢(xún)等操作,進(jìn)而實(shí)現(xiàn)知識(shí)推理與知識(shí)展示。 (3) 應(yīng)用層 應(yīng)用層主要為用戶(hù)提供交互操作,能夠使用戶(hù)在自己權(quán)限允許的范圍內(nèi)進(jìn)行操作。例如,普通用戶(hù)可以對(duì)本體模型及規(guī)則進(jìn)行上傳、補(bǔ)充、修改、查看及推理,也可以在系統(tǒng)內(nèi)對(duì)實(shí)體、實(shí)體關(guān)系進(jìn)行添加、刪除,以及關(guān)系的查詢(xún)。 (4) 展示層 展示層主要的目的是通過(guò)網(wǎng)頁(yè)的形式能夠向用戶(hù)直觀地展示系統(tǒng)中所有功能模塊,便于用戶(hù)管理與使用。 煤礦安全監(jiān)測(cè)監(jiān)控系統(tǒng)能對(duì)煤礦井下設(shè)備、人員、環(huán)境狀態(tài)等信息進(jìn)行展示,用戶(hù)能夠很直接地了解煤礦井下安全狀況。以環(huán)境狀態(tài)為例,描述一個(gè)環(huán)境,需要知道環(huán)境名稱(chēng)、環(huán)境類(lèi)型、環(huán)境指標(biāo)及環(huán)境狀態(tài),而其中的環(huán)境狀態(tài)必須在狀態(tài)實(shí)體構(gòu)建好的基礎(chǔ)上才能創(chuàng)建成功。即對(duì)環(huán)境狀態(tài)進(jìn)行了約束,構(gòu)成環(huán)境與狀態(tài)之間的依賴(lài)關(guān)系,如圖15、圖16所示,只有創(chuàng)建了normal、abnormal狀態(tài)實(shí)體,才能在創(chuàng)建CO2環(huán)境實(shí)體時(shí)選擇對(duì)應(yīng)環(huán)境狀態(tài),否則環(huán)境實(shí)體無(wú)法順利建立。 圖15 狀態(tài)實(shí)體信息展示界面 圖16 環(huán)境實(shí)體信息展示界面 該系統(tǒng)還可以對(duì)已有數(shù)據(jù)進(jìn)行關(guān)系查詢(xún),在關(guān)系類(lèi)型中選擇對(duì)應(yīng)關(guān)系,即可得到對(duì)應(yīng)實(shí)體及實(shí)體間關(guān)系。例如,選擇被包含的關(guān)系(INCLUDED_IN)后,查詢(xún)結(jié)果如圖17所示,對(duì)應(yīng)圖譜展示如圖18所示,Apparatus State儀器狀態(tài)包含on運(yùn)行狀態(tài)、off關(guān)閉狀態(tài)和Disabled無(wú)法使用狀態(tài),而on運(yùn)行狀態(tài)又包含Abnormal異常狀態(tài),Abnormal異常狀態(tài)包含Smoking煙霧、Heat熱量、Damp潮濕、Spark火花等狀態(tài)。 圖17 INCLUDED_IN關(guān)系查詢(xún)結(jié)果(部分) 圖18 對(duì)應(yīng)INCLUDED_IN關(guān)系查詢(xún)圖譜(部分) 本文在分析比較幾種常見(jiàn)的本體構(gòu)建方法后,提出一種基于七步法和METHONTOLOGY法的本體構(gòu)建方法,并用該方法構(gòu)建了煤礦領(lǐng)域本體模型。通過(guò)對(duì)本體與圖數(shù)據(jù)庫(kù)映射匹配機(jī)制的分析研究,將煤礦領(lǐng)域數(shù)據(jù)存儲(chǔ)于Neo4j圖數(shù)據(jù)庫(kù)中,實(shí)現(xiàn)煤礦領(lǐng)域核心知識(shí)圖譜的構(gòu)建。并進(jìn)一步設(shè)計(jì)開(kāi)發(fā)了煤礦安全監(jiān)測(cè)監(jiān)控系統(tǒng),實(shí)現(xiàn)了對(duì)礦井設(shè)備、人員等隱含信息的推理、部分圖譜展示及關(guān)系查詢(xún)功能,有助于煤礦事故防治與應(yīng)急救援,為礦井安全生產(chǎn)與管理提供基本保障。4 煤礦安全監(jiān)測(cè)監(jiān)控系統(tǒng)
4.1 系統(tǒng)設(shè)計(jì)
4.2 系統(tǒng)實(shí)現(xiàn)
5 結(jié) 語(yǔ)