曾偉桂
(北京信息科技大學(xué),北京 100101)
化工行業(yè)工藝復(fù)雜,儲存物料危險性大,一旦引發(fā)事故,往往造成極強的破壞力,社會影響巨大。近年來,化工事故發(fā)生量在政府管理下有所降低,但事故強度愈演愈烈[1],化工行業(yè)的安全形勢依然嚴峻。
將知識圖譜引入化工安全領(lǐng)域,利用大數(shù)據(jù)、人工智能等相關(guān)信息技術(shù)整合存儲海量的化工安全知識,構(gòu)建基于化工安全領(lǐng)域的知識圖譜,便于從業(yè)人員更好地利用化工安全領(lǐng)域豐富的知識,對中國化工安全發(fā)展、對國家發(fā)展具有長遠意義。
2012年5月17日,Google公司為了提高搜索引擎能力、改善用戶搜索質(zhì)量及搜索體驗,首次采用了“知識圖譜(knowledge graph)”技術(shù)[2],知識圖譜應(yīng)運而生。知識圖譜是知識庫與語義網(wǎng)絡(luò)相結(jié)合的產(chǎn)物,用于描述客觀世界中的實體、實體與實體之間的關(guān)系。它用節(jié)點表示語義符號,用邊表示語義之間的關(guān)系,從而把現(xiàn)實世界中的人、事和物聯(lián)系在一起,得到一個類似“多關(guān)系圖(multi-relational Graph)”的巨大語義網(wǎng)絡(luò)。隨著人工智能的不斷發(fā)展,知識圖譜技術(shù)體系亦日趨完善,其已在金融領(lǐng)域、搜索引擎、問答系統(tǒng)、電商平臺、社交網(wǎng)絡(luò)等方面有了一定的應(yīng)用,在解決大數(shù)據(jù)文本分析和圖像理解等方面發(fā)揮著重要作用。
基于行業(yè)領(lǐng)域劃分,知識圖譜可分為開放領(lǐng)域的知識圖譜和特定領(lǐng)域的知識圖譜[3],具有廣闊的研究與應(yīng)用前景。針對化工安全這個特定的領(lǐng)域,創(chuàng)新性地引入知識圖譜技術(shù),通過對近年來全國近100起化工爆炸事故的研究,初步完成了化工安全知識圖譜的構(gòu)建,并基于Neo4j對數(shù)據(jù)進行存儲。
知識圖譜的架構(gòu)包括自身的邏輯結(jié)構(gòu)及構(gòu)建知識圖譜所采用的技術(shù)架構(gòu)[4]。根據(jù)不同的需求和應(yīng)用,知識圖譜可能涉及不同技術(shù)。從最原始的數(shù)據(jù)(包括結(jié)構(gòu)化、半結(jié)構(gòu)化、非結(jié)構(gòu)化數(shù)據(jù))出發(fā),到最終形成知識圖譜這一過程,包含了信息抽取、知識表示、實體對齊、知識推理、質(zhì)量評估等步驟[5]。其理論架構(gòu)如圖1所示:
圖1 知識圖譜理論架構(gòu)
知識定義可分為實體定義和關(guān)系定義。在化工生產(chǎn)過程中易發(fā)且影響最大的幾類事故中以化工爆炸為例,針對其實體定義主要有兩部分,一是化工爆炸事故本體概念圖譜,二是化工爆炸事故案例相關(guān)圖譜。
和本體概念圖譜對應(yīng)的是不同化工爆炸相關(guān)的事件圖譜,如圖2所示。
圖2 化工爆炸事故本體&案例圖譜
由于尚未建立實體之間的聯(lián)系,就沒辦法解釋各個概念之間的關(guān)系類型,所以建立各個實體之間的連接,以關(guān)系為導(dǎo)向,對于豐富化工安全知識庫、提升搜索效果和可視化展示至關(guān)重要。針對化工爆炸事故中的關(guān)系定義,可以歸納為表1所示類型。
表1 化工爆炸事故關(guān)系表
知識抽取指的是通過人工或自動等方式從數(shù)據(jù)源中提取實體、屬性及關(guān)系的技術(shù)[6]。知識抽取包括實體、關(guān)系及屬性抽取三個方面[7]。針對化工爆炸事故案例,通過對全國近100起化工爆炸事故進行研究,對化工園區(qū)或企業(yè)爆炸的致災(zāi)因素進行綜合分析。人工抽取部分實體和關(guān)系如表2所示。
表2 部分實體關(guān)系表
圖數(shù)據(jù)庫(Graph Database)是一種不限于SQL的新型數(shù)據(jù)庫,它使用圖結(jié)構(gòu)的方式建模,數(shù)據(jù)模型主要是以節(jié)點和邊來體現(xiàn),因而圖數(shù)據(jù)庫能夠運用圖結(jié)構(gòu)的自然伸展特點,解決一系列非常復(fù)雜的設(shè)計問題。
Neo4j是圖數(shù)據(jù)庫中比較流行的一款產(chǎn)品,由于其具有更豐富的關(guān)系表示、更完整的事務(wù)支持、更快的數(shù)據(jù)庫操作、更直觀的數(shù)據(jù)展示等優(yōu)點,故基于Neo4j構(gòu)建化工安全知識圖譜。
Cypher是專門為圖像數(shù)據(jù)庫設(shè)計的語言,淺顯易懂,具有豐富的表現(xiàn)力,能高效地查詢和更新圖數(shù)據(jù),借鑒了SQL結(jié)構(gòu)。查詢可由各種各樣的語句組合,采用如MATCH、WHERE和DELETE等類似SQL的語句來組合模式,以表達預(yù)期操作。
利用Cypher 語言使用多個關(guān)系的復(fù)雜模式能夠表達任意復(fù)雜概念,支持各種使用場景的特點,可以更高效地對化工安全知識數(shù)據(jù)進行增刪改查,并基于Neo4j實現(xiàn)知識存儲。
Neo4j批量數(shù)據(jù)導(dǎo)入提供了三個工具,即Load CSV、neo4j-admin import及Cypher CREATE語句。由于neo4j-admin import適合于海量數(shù)據(jù)的初始化導(dǎo)入,需要停止neo4j服務(wù)器并清庫,故采用Load CSV和Cypher語句對實體關(guān)系數(shù)據(jù)進行導(dǎo)入、增加、修改等操作。
LOAD CSV用于從處理好的CSV文件中導(dǎo)入數(shù)據(jù),通過批量導(dǎo)入CSV文件導(dǎo)入節(jié)點和關(guān)系,創(chuàng)建化工安全知識圖譜。部分代碼如圖3、圖4所示。
圖3 部分節(jié)點導(dǎo)入代碼
圖4 部分關(guān)系導(dǎo)入代碼
需要注意的是,設(shè)置LOAD CSV中file:///URL中的根路徑必須設(shè)置為數(shù)據(jù)庫服務(wù)器上的文件系統(tǒng)的單個目錄,它讓所有的請求從file:///URL加載時都使用根路徑的相對路徑。
此外,還可以通過Cypher語句對已創(chuàng)建好的知識圖譜進行增加或修改操作,如圖5所示。
圖5 增加節(jié)點關(guān)系代碼
Neo4j圖數(shù)據(jù)庫通過Cypher語言中的MATCH關(guān)鍵字指定查詢模式(Patterns),即將節(jié)點和關(guān)系的語法組合在一起的表達模式。為了增強模塊性和減少重復(fù),Cypher允許將模式賦給一個變量,這使得匹配到的路徑可以用于其他表達式。例如:通過Cypher語句MATCH p=()-[r :CAUSE]->()RETURN p LIMIT 25,可以查詢到如圖6所示的部分實體關(guān)系圖譜。
圖6 部分實體關(guān)系圖譜
結(jié)合化工安全這個特定領(lǐng)域,創(chuàng)新性地引入了知識圖譜技術(shù)。針對化工安全事故類中的爆炸事故,通過對全國近100起化工爆炸事故的研究,對化工園區(qū)或企業(yè)爆炸的致災(zāi)因素進行綜合分析,抽取出其中的實體和關(guān)系,初步構(gòu)建了化工安全知識圖譜,并基于Neo4j,實現(xiàn)了知識存儲。研究表明,利用知識圖譜技術(shù)對化工安全領(lǐng)域的知識進行管理是可行的,為后續(xù)化工安全知識圖譜的應(yīng)用提供重要參考。