朱從飛,任柯琦,李衛(wèi)政,張鈺荃,田發(fā)美
(1.寧波市水利水電規(guī)劃設(shè)計(jì)研究院有限公司,浙江 寧波 315176;2.寧波市水庫(kù)管理中心,浙江 寧波 315020;3.寧波市水資源信息管理中心,浙江 寧波 315016)
近年來,隨著經(jīng)濟(jì)水平與信息技術(shù)水平的提升,各城市、各領(lǐng)域都逐步開展信息化建設(shè),而水利信息化是國(guó)家信息化建設(shè)的重要組成部分。在當(dāng)前的水利信息化建設(shè)過程中,我國(guó)已然取得非常顯著的成果,實(shí)時(shí)監(jiān)測(cè)、預(yù)報(bào)預(yù)警水平都有較大提升。然而,在我國(guó)水利事業(yè)漫長(zhǎng)的發(fā)展過程中,雖積累了大量的水利信息資源,但由于各地區(qū)、各部門之間的信息建設(shè)標(biāo)準(zhǔn)不統(tǒng)一,存在數(shù)據(jù)壁壘,對(duì)水利信息資源的管理比較分散,導(dǎo)致信息利用率低下,“信息孤島”現(xiàn)象也日益嚴(yán)重,知識(shí)圖譜可以很好地解決這一問題。知識(shí)圖譜的概念2012 年由谷歌首次提出,它本質(zhì)上是一種語(yǔ)義網(wǎng)絡(luò)的知識(shí)庫(kù),將信息連接在一起形成關(guān)系網(wǎng)絡(luò),能顯著提高信息搜索能力,也為水利信息資源的整合、分析及管理提供一種更高效的方法[1-2]。
本文將對(duì)知識(shí)圖譜的研究現(xiàn)狀進(jìn)行簡(jiǎn)要介紹,同時(shí)詳細(xì)闡述水利領(lǐng)域知識(shí)圖譜的構(gòu)建方法,并以寧波市為例進(jìn)行實(shí)際應(yīng)用。通過構(gòu)建寧波市水利知識(shí)圖譜,為寧波市水旱災(zāi)害防御及水資源管理工作提供技術(shù)支持,推動(dòng)寧波市智慧水利建設(shè)和數(shù)字化改革進(jìn)一步發(fā)展。
知識(shí)圖譜按照覆蓋范圍的大小可以分為通用知識(shí)圖譜和領(lǐng)域知識(shí)圖譜2 大類。通用知識(shí)圖譜覆蓋范圍較廣且包含很多常識(shí)性知識(shí),受眾用戶多,通用性強(qiáng);領(lǐng)域知識(shí)圖譜覆蓋范圍較小,主要面向某一個(gè)具體領(lǐng)域,因而具有更強(qiáng)的專業(yè)性,更能滿足具體領(lǐng)域的深層次需求[3-5]。
在水利領(lǐng)域,知識(shí)覆蓋范圍廣,信息資源種類繁多,業(yè)務(wù)也非常豐富,為了整合共享水利信息資源,推動(dòng)水利業(yè)務(wù)協(xié)同和智能應(yīng)用建設(shè),眾多學(xué)者開展水利領(lǐng)域的知識(shí)圖譜構(gòu)建研究。劉建華等[6]構(gòu)建黃河流域生態(tài)保護(hù)和高質(zhì)量發(fā)展研究知識(shí)圖譜,該研究成果能夠輔助黃河流域的生態(tài)環(huán)境保護(hù)工作;段浩等[7]提出水利綜合知識(shí)體系的描述方法并構(gòu)建水利知識(shí)圖譜的框架和關(guān)鍵技術(shù)體系,可實(shí)現(xiàn)水利知識(shí)的跨域查詢與檢索。
以上關(guān)于知識(shí)圖譜研究現(xiàn)狀的論述很好地印證了當(dāng)前知識(shí)圖譜在各行業(yè)的應(yīng)用前景和價(jià)值,同時(shí)也為后續(xù)的智能化應(yīng)用建設(shè)打下良好基礎(chǔ)。但是當(dāng)前構(gòu)建水利領(lǐng)域知識(shí)圖譜大多數(shù)是理論內(nèi)容和方法介紹的研究,應(yīng)用方面的研究相對(duì)較少,因此本文將以寧波市為例來展示水利知識(shí)圖譜構(gòu)建的實(shí)際成果。
當(dāng)前,知識(shí)圖譜的構(gòu)建流程主要有以下3 種模式:自頂向下、自底向上、自頂向下與自底向上相結(jié)合。自頂向下的模式是先梳理概念,確定概念層,再進(jìn)行實(shí)體及關(guān)系的提取和填充;自底向上的模式是先從數(shù)據(jù)中提取出實(shí)體、關(guān)系和屬性,然后對(duì)提取出來的內(nèi)容進(jìn)行分析、歸納與總結(jié),完成概念層的構(gòu)建;自頂向下與自底向上相結(jié)合的模式是首先初步設(shè)計(jì)好概念層,然后提取實(shí)體及關(guān)系并對(duì)知識(shí)進(jìn)行整理歸納,在此基礎(chǔ)上進(jìn)一步完善概念層的設(shè)計(jì)。本文采用自頂向下與自底向上相結(jié)合的模式構(gòu)建水利知識(shí)圖譜。其中概念層主要通過水利學(xué)科的各類別知識(shí)、既往經(jīng)驗(yàn)以及相關(guān)行業(yè)標(biāo)準(zhǔn)來確定;數(shù)據(jù)層是以寧波市水利數(shù)據(jù)中心作為數(shù)據(jù)來源,通過對(duì)數(shù)據(jù)進(jìn)行處理后形成知識(shí)圖譜所需的三元組數(shù)據(jù)格式,最后借助Neo4j 平臺(tái)來完成水利知識(shí)圖譜的構(gòu)建。
水利對(duì)象數(shù)據(jù)一般存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)中,主要由對(duì)象名錄表、對(duì)象基礎(chǔ)信息表和對(duì)象關(guān)系表共3 類表組成。其中對(duì)象名錄表保存水利對(duì)象的對(duì)象名稱、對(duì)象代碼等信息,對(duì)象基礎(chǔ)信息表保存不同水利對(duì)象的特征信息,對(duì)象關(guān)系表記錄2 個(gè)水利對(duì)象之間的關(guān)系。
水利知識(shí)圖譜通常用三元組來表示,三元組的基本形式主要包括(實(shí)體1,關(guān)系,實(shí)體2)和(實(shí)體,屬性,屬性值)等。通過唯一的ID 號(hào)來標(biāo)識(shí)實(shí)體,實(shí)體間內(nèi)在特征通過屬性-屬性值來刻畫,實(shí)體之間的關(guān)聯(lián)通過關(guān)系來描述。
對(duì)于結(jié)構(gòu)化數(shù)據(jù),采用基于D2R 技術(shù)的知識(shí)圖譜構(gòu)建方法,利用信息系統(tǒng)中的結(jié)構(gòu)化對(duì)象數(shù)據(jù),抽取靜態(tài)對(duì)象及其相關(guān)關(guān)系。
通過基于多特征的命名實(shí)體消歧、基于詞典的屬性對(duì)齊和基于貝葉斯分析的屬性真值發(fā)現(xiàn)模塊,消除實(shí)體、關(guān)系、屬性及其對(duì)象之間的歧義,最終獲得跟水利對(duì)象有關(guān)的屬性及相應(yīng)的屬性值。
利用基于規(guī)則推理的方法,結(jié)合現(xiàn)有水利知識(shí),手工定義推理規(guī)則,服務(wù)水利知識(shí)推理。在概念層,通過一階謂詞邏輯表示定義相關(guān)推理規(guī)則;在實(shí)例層,再通過實(shí)例將推理規(guī)則實(shí)例化,找到符合推理規(guī)則的關(guān)系事實(shí)。
水利知識(shí)存儲(chǔ)的優(yōu)化目標(biāo)是減少冗余數(shù)據(jù)存儲(chǔ),提高查詢效率。首先對(duì)經(jīng)過質(zhì)量評(píng)估后的水利知識(shí)進(jìn)行基于主語(yǔ)的哈希劃分形成三元組表(TT);然后對(duì)哈希劃分后的三元組表進(jìn)行垂直劃分,形成只包含主語(yǔ)-賓語(yǔ)列的垂直劃分表(VP);最后通過監(jiān)控查詢工作負(fù)載,挖掘頻繁模式,對(duì)頻繁模式所對(duì)應(yīng)的垂直劃分表進(jìn)行半連接計(jì)算,形成頻繁謂詞擴(kuò)展垂直劃分表(FP-ExtVP)[4]。
本文以寧波市為例進(jìn)行水利知識(shí)圖譜構(gòu)建的實(shí)際應(yīng)用。
寧波市位于我國(guó)東部沿海,西部和南部分別與紹興、臺(tái)州相接,北臨杭州灣,東部有舟山群島天然屏障。寧波境內(nèi)有3 大水系,分別是甬江、奉化江和姚江,姚江、奉化江在“三江口”處交匯,共同匯入甬江。
當(dāng)前,浙江省正大力推進(jìn)數(shù)字化改革,寧波市也是全國(guó)首批水利現(xiàn)代化試點(diǎn)城市之一[8],這對(duì)于寧波市的水利信息化建設(shè)提出更高的要求。通過構(gòu)建寧波市水利知識(shí)圖譜,可以梳理和整合寧波市內(nèi)的水利信息資源,為進(jìn)一步推進(jìn)智慧水利建設(shè)打下更加堅(jiān)實(shí)的基礎(chǔ)。
3.2.1 水利數(shù)據(jù)獲取
本文所使用的數(shù)據(jù)來源為寧波市水利數(shù)據(jù)中心,該數(shù)據(jù)中心基本囊括了寧波市域內(nèi)的水利信息資源。通過水利數(shù)據(jù)共享平臺(tái)獲取寧波市內(nèi)各水利對(duì)象名錄及相應(yīng)的屬性數(shù)據(jù),基于水利基礎(chǔ)數(shù)據(jù)庫(kù)的構(gòu)建標(biāo)準(zhǔn),利用MySQL 數(shù)據(jù)庫(kù)構(gòu)建各水利對(duì)象的基礎(chǔ)信息表以及不同水利對(duì)象實(shí)體間的關(guān)系表,為后續(xù)水利知識(shí)圖譜概念層設(shè)計(jì)以及實(shí)體層構(gòu)建做準(zhǔn)備。
3.2.2 水利知識(shí)圖譜概念層設(shè)計(jì)
構(gòu)建水利知識(shí)圖譜,首先需要進(jìn)行概念層設(shè)計(jì)。在進(jìn)行概念層設(shè)計(jì)時(shí),先明確各水利對(duì)象概念之間的層級(jí)關(guān)系,本文對(duì)此進(jìn)行梳理,結(jié)果見表1。每個(gè)概念名稱都代表1 個(gè)概念節(jié)點(diǎn),其中第三級(jí)概念層中每個(gè)概念節(jié)點(diǎn)都對(duì)應(yīng)1 張水利對(duì)象基礎(chǔ)信息表和1 張水利對(duì)象名錄表。除頂層級(jí)別外,任何一層與其上一層的關(guān)系都是從屬關(guān)系。
表1 水利對(duì)象概念層級(jí)關(guān)系表
確定好概念節(jié)點(diǎn)后需要進(jìn)一步構(gòu)建屬性邊和屬性值類型節(jié)點(diǎn)。由于單獨(dú)設(shè)置屬性邊會(huì)使得圖譜構(gòu)建過于復(fù)雜,所以本文選擇直接利用節(jié)點(diǎn)來儲(chǔ)存屬性信息。水利對(duì)象的屬性及屬性類型根據(jù)水利對(duì)象基礎(chǔ)信息表進(jìn)行設(shè)置。
對(duì)于概念節(jié)點(diǎn)之間的關(guān)系構(gòu)建而言,不同層級(jí)之間的概念節(jié)點(diǎn)是從屬關(guān)系,例如“閘門”“堤防”“水庫(kù)”等都屬于“水利工程”這一概念;而處于同一層級(jí)的概念節(jié)點(diǎn)之間也有一定關(guān)系,例如“湖泊”與“行政區(qū)劃”之間的關(guān)系是“位于”。同一層級(jí)的概念節(jié)點(diǎn)關(guān)系根據(jù)水利對(duì)象關(guān)系表來構(gòu)建,構(gòu)建的關(guān)系可繼續(xù)應(yīng)用于后續(xù)實(shí)體節(jié)點(diǎn)間的關(guān)系。概念層模式設(shè)計(jì)見圖1。
圖1 概念層模式設(shè)計(jì)示意圖
最后利用Neo4j 平臺(tái)進(jìn)行水利知識(shí)圖譜概念層結(jié)構(gòu)的搭建,模型搭建結(jié)果見圖2。每個(gè)概念名稱都表示1 個(gè)概念節(jié)點(diǎn),在圖譜中用圓表示,不同層次的節(jié)點(diǎn)用不同顏色區(qū)分,節(jié)點(diǎn)與節(jié)點(diǎn)之間的關(guān)系用有向線段表示,具體關(guān)系則用標(biāo)簽文字的形式標(biāo)注在有向線段上。本次設(shè)計(jì)的水利知識(shí)圖譜概念層包含4 個(gè)層級(jí),共計(jì)29 個(gè)節(jié)點(diǎn)。
圖2 水利知識(shí)圖譜概念層模型圖
3.2.3 水利知識(shí)圖譜實(shí)體層構(gòu)建
概念層設(shè)計(jì)初步完成之后進(jìn)行實(shí)體層構(gòu)建。實(shí)體節(jié)點(diǎn)以及屬性節(jié)點(diǎn)的構(gòu)建可以通過提取對(duì)象基礎(chǔ)信息表來實(shí)現(xiàn),實(shí)體節(jié)點(diǎn)之間的關(guān)系可以繼承概念節(jié)點(diǎn)之間的關(guān)系,主要來自于對(duì)象關(guān)系表。實(shí)現(xiàn)知識(shí)及關(guān)系的提取可通過MySQL 數(shù)據(jù)庫(kù)來完成。利用語(yǔ)義翻譯工具對(duì)MySQL 數(shù)據(jù)庫(kù)中的水利對(duì)象實(shí)體信息表和實(shí)體對(duì)象關(guān)系表進(jìn)行字段抽取、識(shí)別與翻譯,例如:“甬江”識(shí)別為河流概念,“周皎水庫(kù)”識(shí)別為水庫(kù)概念,“寧波市”“甬江流域”與“甬江”的關(guān)系通過該工具可進(jìn)一步翻譯為“位于”,最后將識(shí)別與翻譯后的內(nèi)容轉(zhuǎn)換成CSV 文件,導(dǎo)入圖數(shù)據(jù)庫(kù)Neo4j 中即可完成這一過程。部分實(shí)體對(duì)象基礎(chǔ)信息和關(guān)系見表2~3。
表2 部分實(shí)體對(duì)象基礎(chǔ)信息展示表
表2 中,ID 號(hào)主要是為了方便實(shí)體與實(shí)體之的關(guān)系連接;Label 則表示該節(jié)點(diǎn)所要掛接的概念節(jié)點(diǎn),如代表“奉化江”的實(shí)體節(jié)點(diǎn)要掛接到“省級(jí)河道”的概念節(jié)點(diǎn)。在3.2.2 節(jié)中設(shè)計(jì)的概念層不包含“省級(jí)河道”這一概念,本文采取的是自頂向下與自底向上相結(jié)合的構(gòu)建模式,所以在構(gòu)建實(shí)體層時(shí),通過對(duì)提取的知識(shí)進(jìn)行整理歸納,進(jìn)一步細(xì)化概念層。表3 中,start_ID 和end_ID 表示實(shí)體關(guān)系指向,type 表示實(shí)體關(guān)系類型。
表3 部分實(shí)體對(duì)象關(guān)系展示表
實(shí)體知識(shí)提取完成之后,需要將各類實(shí)體相對(duì)應(yīng)概念層中的概念進(jìn)行實(shí)體填充,從而創(chuàng)建水利知識(shí)圖譜的本體。本文使用Cypher Load CSV 語(yǔ)句將實(shí)體關(guān)系和屬性信息批量導(dǎo)入圖數(shù)據(jù)庫(kù)。
實(shí)體信息表導(dǎo)入語(yǔ)句:
LOAD CSV FROM′file:///河流.csv′AS line
CREATE(:河流{entityID:line[1],name:line[2],City:line[3]
Basin:line[4],Length:line[5]})
實(shí)體關(guān)系導(dǎo)入語(yǔ)句:
LOAD CSV FROM′file:///位于.csv′AS row
Match(S:水位站{id:row[1]}),(E:水庫(kù)工程{id:row[2]})
Merge(S)-[r:關(guān)系{locate:row[4]}]->(E)
實(shí)體填充完成之后,水利知識(shí)圖譜的構(gòu)建流程結(jié)束。本次所構(gòu)建的水利知識(shí)圖譜存儲(chǔ)在Neo4j中,輸入相應(yīng)語(yǔ)句即可查詢知識(shí)圖譜內(nèi)容。例如,輸 入”match(m:` 市 級(jí) 河 道`)-[n:contain]-(p)return m,n,p”,查詢結(jié)果見圖3。
圖3 知識(shí)圖譜查詢結(jié)果展示圖
本文對(duì)水利知識(shí)圖譜的構(gòu)建流程進(jìn)行詳細(xì)介紹,包括水利數(shù)據(jù)獲取、概念層設(shè)計(jì)以及實(shí)體層構(gòu)建,并以寧波市為例,基于Neo4j 平臺(tái)進(jìn)行水利知識(shí)圖譜構(gòu)建的實(shí)際應(yīng)用。在圖譜構(gòu)建的應(yīng)用過程中,能夠發(fā)現(xiàn)在水利知識(shí)圖譜方面仍需進(jìn)行更加深入的研究,包括拓寬知識(shí)圖譜的覆蓋范圍、提高知識(shí)提取的精準(zhǔn)度以及知識(shí)圖譜的可視化展示。
知識(shí)圖譜在水利領(lǐng)域的應(yīng)用價(jià)值不僅僅局限于作為知識(shí)庫(kù)存在,而是能夠推動(dòng)水利數(shù)據(jù)自動(dòng)化和智能化處理,從而實(shí)現(xiàn)水利對(duì)象的全面互聯(lián),促進(jìn)水利事業(yè)的現(xiàn)代化發(fā)展[9]。