本發(fā)明涉及電力系統(tǒng)信息集成領(lǐng)域,尤其涉及的是一種基于異構(gòu)信息模型映射的配網(wǎng)信息交互方法及系統(tǒng)。
背景技術(shù):
智能電網(wǎng)的快速發(fā)展帶來了大量跨系統(tǒng)互動業(yè)務(wù)。由于各業(yè)務(wù)部門引入的分布式應(yīng)用系統(tǒng)互不兼容,用電客戶需要在各子系統(tǒng)間來回切換,導(dǎo)致重復(fù)工作、效率低下,形成“信息孤島”。這不僅提高了信息交換的難度,也帶來了管理障礙。標(biāo)準(zhǔn)化是保障數(shù)據(jù)一致性、消除“信息孤島”的有效武器,構(gòu)建國際通用的標(biāo)準(zhǔn)及統(tǒng)一語義的電網(wǎng)信息模型是較為理想的技術(shù)路線和發(fā)展方向。針對電力企業(yè)的集成需求,國際電工委員會(internationalelectrotechnicalcommission,iec)制定了一系列國際標(biāo)準(zhǔn),用于規(guī)范系統(tǒng)或應(yīng)用間信息交互的語法、語義、格式及接口。iec61970系列標(biāo)準(zhǔn)定義的cim(commoninformationmodel,公共信息模型)模型為異構(gòu)系統(tǒng)間信息交互提供了公共語義基礎(chǔ),也使得數(shù)據(jù)交互具有靈活性和可擴(kuò)展性;iec61968標(biāo)準(zhǔn)主要關(guān)注配電自動化系統(tǒng)的信息交互,其定義的接口參考模型(interfacereferencemodel,irm)規(guī)定了信息交換格式,有利于消除異構(gòu)系統(tǒng)和應(yīng)用間的信息孤島。
標(biāo)準(zhǔn)化的統(tǒng)一信息模型是實(shí)現(xiàn)信息集成和數(shù)據(jù)交互的基礎(chǔ)。cim/xml將cim表述為使用rdf/xml作為交換具體系統(tǒng)模型語言的rdfschema詞匯集。iec61970標(biāo)準(zhǔn)采用基于該詞匯集的xml文件來描述能夠映射到cim模型中的電力系統(tǒng)交互數(shù)據(jù),并以此為載體,實(shí)現(xiàn)異構(gòu)子系統(tǒng)間的數(shù)據(jù)交換。由于xml的開放性和靈活性,用戶可定義私有標(biāo)簽,即私有擴(kuò)展。國內(nèi)外制定了一系列一致性測試方案,用于檢驗(yàn)?zāi)P偷臉?biāo)準(zhǔn)化程度,避免因模型版本和私有擴(kuò)展存在差異導(dǎo)致高級應(yīng)用和業(yè)務(wù)系統(tǒng)不滿足統(tǒng)一的語義、語法,影響信息集成效率和互操作成功率。
為了滿足信息集成和數(shù)據(jù)交互的需求,除了標(biāo)準(zhǔn)化,信息模型的差異化比對和融合也尤為關(guān)鍵;然而電力系統(tǒng)信息模型的無縫融合始終是一項(xiàng)國際化難題。由于模型規(guī)模龐大、程度復(fù)雜,而且亟待融合的模型雙方都處于動態(tài)更新中,造成交互語義的不可解析,從而使組件間的數(shù)據(jù)無法共享,智能配電網(wǎng)信息集成難以實(shí)現(xiàn)。模型互不兼容問題可能阻礙智能配電網(wǎng)的全局信息交互,為此,iectc57專門成立第19工作組來解決iec61970、iec61968和iec61850之間協(xié)調(diào)、融合和互操作的難題。但是,到目前為止仍存在大量技術(shù)難點(diǎn)需要解決和完善。國家電網(wǎng)公司也積極開展了部分基于信息模型標(biāo)準(zhǔn)的互操作試驗(yàn)和試點(diǎn)工程,但與真正實(shí)現(xiàn)深入的模型間融合仍有巨大差距。
面對大量的系統(tǒng)異構(gòu),目前信息模型分析技術(shù)僅限于模型層的比較和數(shù)據(jù)層的一致性校驗(yàn),未涉及到基于模型映射的信息交互。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是提供一種基于異構(gòu)信息模型映射的配網(wǎng)信息交互方法及系統(tǒng),解決傳統(tǒng)互操作試驗(yàn)、以及電力企業(yè)信息集成過程中因模型異構(gòu)導(dǎo)致的語義沖突問題。
為解決上述問題,本發(fā)明提出一種基于異構(gòu)信息模型映射的配網(wǎng)信息交互方法,包括以下步驟:
s1:獲取至少兩個不同版本的cim/xml電網(wǎng)模型的基本模型,分別解析為本體語言描述的本體模型;
s2:針對兩個本體模型,遍歷本體模型內(nèi)所有模型元素,根據(jù)不同本體模型中的元素間的相似度高低得到元素間的若干最優(yōu)映射關(guān)系;
s3:將每對最優(yōu)映射關(guān)系以一條xpath路徑表達(dá)式格式存儲;
s4:遍歷全部xpath路徑表達(dá)式,將映射關(guān)系文件的全部xpath路徑翻譯成包含相應(yīng)模板規(guī)則的一xslt腳本,所述模板規(guī)則包括模式和模板,所述模式用于在源xml文檔中定位節(jié)點(diǎn),所述模板用于定義對應(yīng)節(jié)點(diǎn)的映射處理規(guī)則;
s5:獲取待處理的源xml文檔,解析出所述源xml文檔中的類、屬性及關(guān)聯(lián)關(guān)系作為待轉(zhuǎn)換節(jié)點(diǎn),遍歷全部待轉(zhuǎn)換節(jié)點(diǎn),與所述xslt腳本完成模式匹配和模板匹配,通過xslt處理器完成各節(jié)點(diǎn)的轉(zhuǎn)換,形成目標(biāo)xml文檔。
根據(jù)本發(fā)明的一個實(shí)施例,所述步驟s1包括以下步驟:
s11:存儲至少兩個不同版本的cim/xml電網(wǎng)模型的基本模型至數(shù)據(jù)倉庫;
s12:根據(jù)源xml文件對應(yīng)的第一版本,導(dǎo)入第一版本對應(yīng)的cim/xml電網(wǎng)模型的基本模型;
s13:對所述第一版本對應(yīng)的cim/xml電網(wǎng)模型的基本模型進(jìn)行解析,并校驗(yàn)該cim/xml電網(wǎng)模型的基本模型的rdf語法格式,若結(jié)果為是,則繼續(xù);
s14:將所述第一版本對應(yīng)的cim/xml電網(wǎng)模型的基本模型在內(nèi)存中轉(zhuǎn)換為第一本體模型,導(dǎo)入rdfs規(guī)則文檔,完成rdfs模式驗(yàn)證,檢查所述第一本體模型是否符合rdfs定義的通用規(guī)則,若結(jié)果為是,則繼續(xù);
s15:根據(jù)目標(biāo)xml文件對應(yīng)的第二版本,導(dǎo)入第二版本對應(yīng)的cim/xml電網(wǎng)模型的基本模型;
s16:對所述第二版本對應(yīng)的cim/xml電網(wǎng)模型的基本模型進(jìn)行解析,并校驗(yàn)該cim/xml電網(wǎng)模型的基本模型的rdf語法格式,若結(jié)果為是,則繼續(xù);
s17:將所述第二版本對應(yīng)的cim/xml電網(wǎng)模型的基本模型在內(nèi)存中轉(zhuǎn)換為第二本體模型,導(dǎo)入rdfs規(guī)則文檔,完成rdfs模式驗(yàn)證,檢查所述第二本體模型是否符合rdfs定義的通用規(guī)則,若結(jié)果為是,則繼續(xù)。
根據(jù)本發(fā)明的一個實(shí)施例,所述步驟s2包括:遍歷兩個本體模型內(nèi)的所有模型元素,判斷元素中的名稱和結(jié)構(gòu)的相似度,以相似度高的作為最優(yōu)映射關(guān)系,得到若干最優(yōu)映射關(guān)系,元素與元素之間為一對一映射關(guān)系或一對多映射關(guān)系。
根據(jù)本發(fā)明的一個實(shí)施例,所述判斷元素中的名稱和結(jié)構(gòu)的相似度,以相似度高的元素之間的關(guān)系作為最優(yōu)映射關(guān)系包括:
首先判斷兩個模型間元素中的名稱,若相似度為100%,則將相應(yīng)元素之間的關(guān)系作為最優(yōu)映射關(guān)系;否則再判斷兩個模型間元素中的結(jié)構(gòu)的相似度,在名稱和結(jié)構(gòu)的相似度分別超過一定值時,對兩個模型間元素中的名稱和結(jié)構(gòu)的相似度進(jìn)行加權(quán)求和,計算綜合匹配度,以綜合匹配度高的作為元素間的最優(yōu)映射關(guān)系。
根據(jù)本發(fā)明的一個實(shí)施例,所述步驟s5包括以下步驟:
s51:創(chuàng)建一新的轉(zhuǎn)換工廠實(shí)例,進(jìn)行xslt處理;
s52:獲取待處理的源xml文檔,解析出所述源xml文檔中的類、屬性及關(guān)聯(lián)關(guān)系作為待轉(zhuǎn)換節(jié)點(diǎn),抽取所有待轉(zhuǎn)換節(jié)點(diǎn)組裝成源節(jié)點(diǎn)樹;
s53:深度遍歷源節(jié)點(diǎn)樹中的全部待轉(zhuǎn)換節(jié)點(diǎn),并一一與xslt腳本中的每條模板規(guī)則的模式進(jìn)行比較,若模式匹配且存在匹配的模板,則引用對應(yīng)模板處理該待處理節(jié)點(diǎn),并將轉(zhuǎn)換結(jié)構(gòu)插入目標(biāo)節(jié)點(diǎn)樹;
s54:完成全部待轉(zhuǎn)換節(jié)點(diǎn)的xslt轉(zhuǎn)換后,得到組裝的目標(biāo)節(jié)點(diǎn)樹,根據(jù)目標(biāo)節(jié)點(diǎn)樹輸出目標(biāo)xml文檔。
根據(jù)本發(fā)明的一個實(shí)施例,還包括步驟s6:運(yùn)用一致性測試工具測試生成的目標(biāo)xml文檔是否符合信息交互的語義規(guī)范,生成驗(yàn)證文檔。
根據(jù)本發(fā)明的一個實(shí)施例,所述xpath路徑表達(dá)式包括:源模型節(jié)點(diǎn)名、目標(biāo)模型節(jié)點(diǎn)名、源模型類名、目標(biāo)模型類名、原模型屬性名、目標(biāo)模型屬性名及映射轉(zhuǎn)換操作。
本發(fā)明還提供一種基于異構(gòu)信息模型映射的配網(wǎng)信息交互系統(tǒng),包括:
數(shù)據(jù)倉庫模塊,用于存儲至少兩個不同版本的cim/xml電網(wǎng)模型的基本模型,至少能夠與源xml文檔和目標(biāo)xml文檔的版本對應(yīng);
數(shù)據(jù)庫連接模塊,用于從所述數(shù)據(jù)倉庫模塊中獲取兩個不同版本的cim/xml電網(wǎng)模型的基本模型,并分別解析為本體語言描述的本體模型;
映射模塊,用于:
針對兩個本體模型,遍歷本體模型內(nèi)所有模型元素,根據(jù)不同本體模型中的元素間的相似度高低得到元素間的若干最優(yōu)映射關(guān)系;
將每對最優(yōu)映射關(guān)系以一條xpath路徑表達(dá)式格式存儲;以及
轉(zhuǎn)換模塊,用于:
遍歷全部xpath路徑表達(dá)式,將映射關(guān)系文件的全部xpath路徑翻譯成包含相應(yīng)模板規(guī)則的一xslt腳本,所述模板規(guī)則包括模式和模板,所述模式用于在源xml文檔中定位節(jié)點(diǎn),所述模板用于定義對應(yīng)節(jié)點(diǎn)的映射處理規(guī)則;
獲取待處理的源xml文檔,解析出所述源xml文檔中的類、屬性及關(guān)聯(lián)關(guān)系作為待轉(zhuǎn)換節(jié)點(diǎn),遍歷全部待轉(zhuǎn)換節(jié)點(diǎn),與所述xslt腳本完成模式匹配和模板匹配,通過xslt處理器完成各節(jié)點(diǎn)的轉(zhuǎn)換,形成目標(biāo)xml文檔。
根據(jù)本發(fā)明的一個實(shí)施例,還包括模型數(shù)據(jù)輸入模塊,用于導(dǎo)入與導(dǎo)出所述待處理的源xml文檔。
根據(jù)本發(fā)明的一個實(shí)施例,還包括:
用戶登錄模塊,用于電力企業(yè)用戶身份的認(rèn)證,以實(shí)現(xiàn)訪問;
用戶界面模塊,用于異構(gòu)信息模型映射的解析結(jié)果、映射結(jié)果、轉(zhuǎn)換結(jié)果的顯示;
用戶操作模塊,用于解析結(jié)果、映射結(jié)果、轉(zhuǎn)換結(jié)果的管理與修正。
采用上述技術(shù)方案后,本發(fā)明相比現(xiàn)有技術(shù)具有以下有益效果:
本發(fā)明解決電網(wǎng)企業(yè)信息集成在語義規(guī)范上的不一致以及互操作過程中出現(xiàn)的模型不匹配問題,便于異構(gòu)cim模型的維護(hù)和升級,可以為電力運(yùn)營商在規(guī)范企業(yè)級消息總線、維護(hù)各系統(tǒng)廠商模型與消息一致性方面提供很好的支撐;
本發(fā)明提出的信息交互機(jī)制基于可擴(kuò)展樣式表語言xslt,從數(shù)據(jù)層實(shí)現(xiàn)對交互消息xml文件格式的轉(zhuǎn)換,即可以實(shí)現(xiàn)異構(gòu)信息模型映射的配網(wǎng)信息交互;
本發(fā)明提出的信息交互系統(tǒng),既可以實(shí)現(xiàn)總線上實(shí)時交互信息的采集與處理,對總線交互信息進(jìn)行在線轉(zhuǎn)換與驗(yàn)證,也可以離線對交互的消息進(jìn)行轉(zhuǎn)換與驗(yàn)證。
附圖說明
圖1為本發(fā)明一實(shí)施例的基于異構(gòu)信息模型映射的配網(wǎng)信息交互方法的流程示意圖;
圖2為本發(fā)明一實(shí)施例的模型映射轉(zhuǎn)換原理示意圖;
圖3為本發(fā)明一實(shí)施例的基于異構(gòu)信息模型映射的配網(wǎng)信息交互方法的架構(gòu)圖;
圖4為本發(fā)明一實(shí)施例的基于異構(gòu)信息模型映射的配網(wǎng)信息交互系統(tǒng)的架構(gòu)圖。
具體實(shí)施方式
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖對本發(fā)明的具體實(shí)施方式做詳細(xì)的說明。
在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明。但是本發(fā)明能夠以很多不同于在此描述的其它方式來實(shí)施,本領(lǐng)域技術(shù)人員可以在不違背本發(fā)明內(nèi)涵的情況下做類似推廣,因此本發(fā)明不受下面公開的具體實(shí)施的限制。
參看圖1,本發(fā)明提出一種基于異構(gòu)信息模型映射的配網(wǎng)信息交互方法,包括以下步驟:
s1:獲取至少兩個不同版本的cim/xml電網(wǎng)模型的基本模型,分別解析為本體語言描述的本體模型;
s2:針對兩個本體模型,遍歷本體模型內(nèi)所有模型元素,根據(jù)不同本體模型中的元素間的相似度高低得到元素間的若干最優(yōu)映射關(guān)系;
s3:將每對最優(yōu)映射關(guān)系以一條xpath路徑表達(dá)式格式存儲;
s4:遍歷全部xpath路徑表達(dá)式,將映射關(guān)系文件的全部xpath路徑翻譯成包含相應(yīng)模板規(guī)則的一xslt腳本,所述模板規(guī)則包括模式和模板,所述模式用于在源xml文檔中定位節(jié)點(diǎn),所述模板用于定義對應(yīng)節(jié)點(diǎn)的映射處理規(guī)則;
s5:獲取待處理的源xml文檔,解析出所述源xml文檔中的類、屬性及關(guān)聯(lián)關(guān)系作為待轉(zhuǎn)換節(jié)點(diǎn),遍歷全部待轉(zhuǎn)換節(jié)點(diǎn),與所述xslt腳本完成模式匹配和模板匹配,通過xslt處理器完成各節(jié)點(diǎn)的轉(zhuǎn)換,形成目標(biāo)xml文檔。
參看圖1-3,下面對基于異構(gòu)信息模型映射的配網(wǎng)信息交互方法進(jìn)行具體的描述,但不應(yīng)以此為限。
cim/xml電網(wǎng)模型的基本模型是現(xiàn)有的模型,具有多個版本,隨著cim模型的版本更新和應(yīng)用領(lǐng)域的不斷拓展,產(chǎn)生了大量異構(gòu)的電力系統(tǒng)交互數(shù)據(jù)。配電網(wǎng)交互數(shù)據(jù)量大,且交互信息多變,在異構(gòu)xml數(shù)據(jù)間人工完成匹配映射是對人力的極大消耗,且容易出現(xiàn)錯漏。xml將數(shù)據(jù)與顯示分開,若要顯示文檔中的數(shù)據(jù),就要給xml文檔添加樣式信息。一種選擇是使用css(cascadingstylesheets,層疊樣式表),另一種選擇就是使用xslt。xslt比css要復(fù)雜很多,功能也更強(qiáng)大。css不能對源xml文檔的數(shù)據(jù)進(jìn)行計算、整理和排序,而這些在xslt中容易實(shí)現(xiàn)。
在步驟s1中,獲取至少兩個不同版本的cim/xml電網(wǎng)模型的基本模型進(jìn)行解析,并分別轉(zhuǎn)換為本體語言描述的本體模型。通過解析,可以將模型內(nèi)的各個信息元素分解出來,從而可以在完成對cim模型xmi文件的本體解析后,建立哈希表以節(jié)點(diǎn)形式存儲模型信息,構(gòu)建待映射元素集,提升了模型解析與讀取的效率和準(zhǔn)確度。
本體語言具有強(qiáng)語義和較為完備的邏輯推理機(jī)制,因此使用本體解析可以得到cim模型的所有信息??蛇x的,cim的本體模型由owl語言描述,可由rdfs規(guī)則驗(yàn)證。owl語言包含三種子語言,為owl-lite、owl-dl及owl-full。
具體的,步驟s1進(jìn)一步包括以下步驟:
s11:存儲至少兩個不同版本的cim/xml電網(wǎng)模型的基本模型至數(shù)據(jù)倉庫;
s12:根據(jù)源xml文件對應(yīng)的第一版本,導(dǎo)入第一版本對應(yīng)的cim/xml電網(wǎng)模型的基本模型;
s13:對所述第一版本對應(yīng)的cim/xml電網(wǎng)模型的基本模型進(jìn)行解析,并校驗(yàn)該cim/xml電網(wǎng)模型的基本模型的rdf語法格式,若結(jié)果為是,則繼續(xù);若結(jié)果為否,則報出語法錯誤提示;
s14:將所述第一版本對應(yīng)的cim/xml電網(wǎng)模型的基本模型在內(nèi)存中轉(zhuǎn)換為第一本體模型,導(dǎo)入rdfs規(guī)則文檔,完成rdfs模式驗(yàn)證,檢查所述第一本體模型是否符合rdfs定義的通用規(guī)則,若結(jié)果為是,則繼續(xù);
s15:根據(jù)目標(biāo)xml文件對應(yīng)的第二版本,導(dǎo)入第二版本對應(yīng)的cim/xml電網(wǎng)模型的基本模型;
s16:對所述第二版本對應(yīng)的cim/xml電網(wǎng)模型的基本模型進(jìn)行解析,并校驗(yàn)該cim/xml電網(wǎng)模型的基本模型的rdf語法格式,若結(jié)果為是,則繼續(xù);若結(jié)果為否,則報出語法錯誤提示;
s17:將所述第二版本對應(yīng)的cim/xml電網(wǎng)模型的基本模型在內(nèi)存中轉(zhuǎn)換為第二本體模型,導(dǎo)入rdfs規(guī)則文檔,完成rdfs模式驗(yàn)證,檢查所述第二本體模型是否符合rdfs定義的通用規(guī)則,若結(jié)果為是,則繼續(xù)。
模型轉(zhuǎn)換是在兩個模型之間進(jìn)行的,在具有多個版本的模型時,可以分別執(zhí)行基于異構(gòu)信息模型映射的配網(wǎng)信息交互方法來一一進(jìn)行轉(zhuǎn)換。
在步驟s2中,針對兩個本體模型,遍歷本體模型內(nèi)所有模型元素,根據(jù)不同本體模型中的元素間的相似度高低得到元素間的若干最優(yōu)映射關(guān)系。
由于版本更新時,大部分元素信息都做了保留,只有少部分的名稱或結(jié)構(gòu)上的更新,因而只要對兩個模型解析出來的元素的相似度進(jìn)行分析,尤其是名稱和結(jié)構(gòu)的相似度,如果相似度高,說明相應(yīng)的兩個元素之間是對應(yīng)的,可以發(fā)生映射轉(zhuǎn)換。
較佳的,步驟s2包括:遍歷兩個本體模型內(nèi)的所有模型元素,判斷元素中的名稱和結(jié)構(gòu)的相似度,以相似度高的作為最優(yōu)映射關(guān)系,得到若干最優(yōu)映射關(guān)系,元素與元素之間為一對一映射關(guān)系或一對多映射關(guān)系。
更佳的,判斷元素中的名稱和結(jié)構(gòu)的相似度,以相似度高的元素之間的關(guān)系作為最優(yōu)映射關(guān)系進(jìn)一步包括:
首先判斷兩個模型間元素中的名稱,若相似度為100%,則將相應(yīng)元素之間的關(guān)系作為最優(yōu)映射關(guān)系;否則再判斷兩個模型間元素中的結(jié)構(gòu)的相似度,在名稱和結(jié)構(gòu)的相似度分別超過一定值時,對兩個模型間元素中的名稱和結(jié)構(gòu)的相似度進(jìn)行加權(quán)求和,計算綜合匹配度,以綜合匹配度高的作為元素間的最優(yōu)映射關(guān)系。
基于待映射元素集的名稱及結(jié)構(gòu)相似度,可以導(dǎo)出映射轉(zhuǎn)換規(guī)則庫。
在步驟s3中,將每對最優(yōu)映射關(guān)系以一條xpath路徑表達(dá)式進(jìn)行存儲。為了方便后續(xù)的轉(zhuǎn)換腳本生成,將映射關(guān)系以xpath形式存儲成xml文件。
xpath路徑表達(dá)式可以包括:源模型節(jié)點(diǎn)名、目標(biāo)模型節(jié)點(diǎn)名、源模型類名、目標(biāo)模型類名、原模型屬性名、目標(biāo)模型屬性名及映射轉(zhuǎn)換操作等,具體根據(jù)存儲內(nèi)容及路徑而定。
在步驟s4中,遍歷全部xpath路徑表達(dá)式,將映射關(guān)系文件的全部xpath路徑翻譯成包含相應(yīng)模板規(guī)則的一xslt腳本,模板規(guī)則包括模式和模板,所述模式用于在源xml文檔中定位節(jié)點(diǎn),所述模板用于定義對應(yīng)節(jié)點(diǎn)的映射處理規(guī)則。為該腳本添加模型版本、編碼、命名空間等信息。
為了實(shí)現(xiàn)xml轉(zhuǎn)換,需要將映射關(guān)系文件的所有xpath路徑翻譯成xslt腳本。xslt腳本中包含一系列模板規(guī)則。模板規(guī)則由模式和模板兩部分組成,模式用于在xml源文檔中定位節(jié)點(diǎn),模板為所有節(jié)點(diǎn)定義處理規(guī)則。每個模板規(guī)則都由標(biāo)簽<xsl:template>標(biāo)明,用屬性match來指定模式,由元素內(nèi)容構(gòu)成模板,并通過模板的實(shí)例化來構(gòu)成結(jié)果樹。指定模式的屬性可以包括源xml文檔版本的類、屬性及關(guān)聯(lián)關(guān)系(元素,或稱元數(shù)據(jù)信息),后續(xù)通過相應(yīng)的元素進(jìn)行定位。
擴(kuò)展樣式表轉(zhuǎn)換語言(extensiblestylesheetlanguagetransformation,xslt)可實(shí)現(xiàn)xml數(shù)據(jù)的轉(zhuǎn)換,即將xml源樹轉(zhuǎn)換為xml結(jié)果樹。電力系統(tǒng)信息模型數(shù)據(jù)層采用扁平的cim/rdf格式,屬于良構(gòu)(well-formed)的xml文檔。xslt技術(shù)能對樹狀結(jié)構(gòu)存儲的xml文檔進(jìn)行轉(zhuǎn)換,并可以控制輸出的格式。因此,可以運(yùn)用xslt語言完成異構(gòu)信息模型的數(shù)據(jù)層轉(zhuǎn)換。
在步驟s5中,獲取待處理的源xml文檔,解析出所述源xml文檔中的類、屬性及關(guān)聯(lián)關(guān)系作為待轉(zhuǎn)換節(jié)點(diǎn),遍歷全部待轉(zhuǎn)換節(jié)點(diǎn),與所述xslt腳本完成模式匹配和模板匹配,通過xslt處理器完成各節(jié)點(diǎn)的轉(zhuǎn)換,形成目標(biāo)xml文檔。
應(yīng)用轉(zhuǎn)換引擎讀取并解析待轉(zhuǎn)換的源xml文檔,同時加載xslt腳本,實(shí)現(xiàn)異構(gòu)模型間交互數(shù)據(jù)的自動轉(zhuǎn)換。
具體的,步驟s5(轉(zhuǎn)換引擎)進(jìn)一步包括以下步驟:
s51:創(chuàng)建一新的轉(zhuǎn)換工廠實(shí)例,進(jìn)行xslt處理;轉(zhuǎn)換工廠實(shí)例可以通過java轉(zhuǎn)換工廠(transformerfactory)創(chuàng)建;
s52:獲取待處理的源xml文檔,解析出所述源xml文檔中的類、屬性及關(guān)聯(lián)關(guān)系作為待轉(zhuǎn)換節(jié)點(diǎn),抽取所有待轉(zhuǎn)換節(jié)點(diǎn)組裝成源節(jié)點(diǎn)樹;
s53:深度遍歷源節(jié)點(diǎn)樹中的全部待轉(zhuǎn)換節(jié)點(diǎn),并一一與xslt腳本中的每條模板規(guī)則的模式進(jìn)行比較,若模式匹配且存在匹配的模板,則引用對應(yīng)模板處理該待處理節(jié)點(diǎn),并將轉(zhuǎn)換結(jié)構(gòu)插入目標(biāo)節(jié)點(diǎn)樹;如果找不到相匹配的模板,意味著找不到映射對象,即源模型中的該節(jié)點(diǎn)在映射到新模型的過程中被刪除;
s54:完成全部待轉(zhuǎn)換節(jié)點(diǎn)的xslt轉(zhuǎn)換后,得到組裝的目標(biāo)節(jié)點(diǎn)樹,根據(jù)目標(biāo)節(jié)點(diǎn)樹輸出目標(biāo)xml文檔。
運(yùn)用java轉(zhuǎn)換工廠(transformerfactory)作為xslt處理器,解析出源xml文檔中的類、屬性及關(guān)聯(lián)關(guān)系,深度遍歷所有待轉(zhuǎn)換節(jié)點(diǎn),與xslt腳本完成模式匹配及模板匹配,用xslt處理器完成對節(jié)點(diǎn)集的相應(yīng)轉(zhuǎn)換操作,將分散的數(shù)據(jù)段拼接整合,形成完整的目標(biāo)xml文檔。
xpath作為在xslt中使用的一種表達(dá)式語言,能夠識別xml文檔中的組成元素,選擇文檔中的所有節(jié)點(diǎn)。xpath位置路徑(locationpath)能夠很好的存儲映射關(guān)系中的每個映射節(jié)點(diǎn)、其子節(jié)點(diǎn)及轉(zhuǎn)換操作,從而生成對應(yīng)的xslt腳本。xslt處理過程包含四個要素:輸入xml文檔、輸入xslt腳本、xslt處理器及輸出xml文檔。xslt腳本本身也是一種良構(gòu)的xml文檔,與源模型xml文檔一樣作為xslt處理器的輸入,在轉(zhuǎn)換過程中不被修改。
在一個實(shí)施例中,基于異構(gòu)信息模型映射的配網(wǎng)信息交互方法還可以包括步驟s6:運(yùn)用一致性測試工具測試生成的目標(biāo)xml文檔是否符合信息交互的語義規(guī)范,生成驗(yàn)證文檔。轉(zhuǎn)換出的xml文檔若能通過所述一致性測試,則說明轉(zhuǎn)換得到的數(shù)據(jù)符合新版本模型語義,信息交互成功。
一致性測試工具基于cimschema和cimprofile的本體集成驗(yàn)證方法來分析模型與語義的一致性。
本發(fā)明實(shí)施例是從實(shí)際的cim/xml(公共信息模型commoninformationmodel/可擴(kuò)展標(biāo)記語言extensiblemarkuplanguage)電網(wǎng)模型中解析出元數(shù)據(jù)信息,運(yùn)用基于本體的模型映射算法處理元數(shù)據(jù)信息,生成最優(yōu)映射關(guān)系集,并存儲成xpath路徑格式。將路徑表達(dá)式翻譯成一系列模板規(guī)則,用模板規(guī)則屬性來定位xml源文檔的節(jié)點(diǎn),由元素內(nèi)容構(gòu)成的模板為節(jié)點(diǎn)定義處理規(guī)則,并通過模板的實(shí)例化來構(gòu)成結(jié)果樹。運(yùn)用java轉(zhuǎn)換工廠作為xslt處理器,遍歷每個節(jié)點(diǎn),并一一與xslt樣式表中的每條模板規(guī)則的模式進(jìn)行比較,處理與模板模式相匹配的節(jié)點(diǎn),并將轉(zhuǎn)換結(jié)果插入目標(biāo)節(jié)點(diǎn)樹。為了驗(yàn)證信息交互過程中xml數(shù)據(jù)與模型的語義一致性,提出采用一致性測試工具,運(yùn)用基于cimschema和cimprofile的本體集成驗(yàn)證方法來進(jìn)行驗(yàn)證。這種信息交互方法能夠充分利用xslt技術(shù)在數(shù)據(jù)轉(zhuǎn)換方面的優(yōu)勢,實(shí)現(xiàn)電網(wǎng)異構(gòu)模型cim/xml元數(shù)據(jù)層的語義識別、交互與驗(yàn)證。
參看圖4,本發(fā)明還提供一種基于異構(gòu)信息模型映射的配網(wǎng)信息交互系統(tǒng),包括:
數(shù)據(jù)倉庫模塊,用于存儲至少兩個不同版本的cim/xml電網(wǎng)模型的基本模型,至少能夠與源xml文檔和目標(biāo)xml文檔的版本對應(yīng);
數(shù)據(jù)庫連接模塊,用于從所述數(shù)據(jù)倉庫模塊中獲取兩個不同版本的cim/xml電網(wǎng)模型的基本模型,并分別解析為本體語言描述的本體模型;
映射模塊,用于:
針對兩個本體模型,遍歷本體模型內(nèi)所有模型元素,根據(jù)不同本體模型中的元素間的相似度高低得到元素間的若干最優(yōu)映射關(guān)系;
將每對最優(yōu)映射關(guān)系以一條xpath路徑表達(dá)式格式存儲;以及
轉(zhuǎn)換模塊,用于:
遍歷全部xpath路徑表達(dá)式,將映射關(guān)系文件的全部xpath路徑翻譯成包含相應(yīng)模板規(guī)則的一xslt腳本,所述模板規(guī)則包括模式和模板,所述模式用于在源xml文檔中定位節(jié)點(diǎn),所述模板用于定義對應(yīng)節(jié)點(diǎn)的映射處理規(guī)則;
獲取待處理的源xml文檔,解析出所述源xml文檔中的類、屬性及關(guān)聯(lián)關(guān)系作為待轉(zhuǎn)換節(jié)點(diǎn),遍歷全部待轉(zhuǎn)換節(jié)點(diǎn),與所述xslt腳本完成模式匹配和模板匹配,通過xslt處理器完成各節(jié)點(diǎn)的轉(zhuǎn)換,形成目標(biāo)xml文檔。
根據(jù)本發(fā)明的一個實(shí)施例,還包括模型數(shù)據(jù)輸入模塊,用于導(dǎo)入所述待處理的源xml文檔。
根據(jù)本發(fā)明的一個實(shí)施例,還包括:
用戶登錄模塊,用于電力企業(yè)用戶身份的認(rèn)證,以實(shí)現(xiàn)訪問;
用戶界面模塊,用于異構(gòu)信息模型映射的解析結(jié)果、映射結(jié)果、轉(zhuǎn)換結(jié)果的顯示;
用戶操作模塊,用于解析結(jié)果、映射結(jié)果、轉(zhuǎn)換結(jié)果的管理與修正。
數(shù)據(jù)倉庫模塊、數(shù)據(jù)庫連接模塊和數(shù)據(jù)輸入模塊屬于物理層,映射模塊以及轉(zhuǎn)換模塊屬于功能層,用戶登錄模塊、用戶界面模塊和用戶操作模塊屬于用戶層。
參看圖4,功能層又分為模型層和數(shù)據(jù)層,模型層提出基于本體的異構(gòu)信息模型映射算法,通過對模型節(jié)點(diǎn)名稱和結(jié)構(gòu)相似度的計算生成映射關(guān)系集,通過逐一計算綜合評價指標(biāo),將指標(biāo)最優(yōu)的映射關(guān)系以路徑表達(dá)式格式輸出。以模型層映射關(guān)系為基礎(chǔ),在數(shù)據(jù)層生成模型數(shù)據(jù)的轉(zhuǎn)換腳本,完成配電網(wǎng)異構(gòu)模型的實(shí)例數(shù)據(jù)解析和轉(zhuǎn)換。信息交互系統(tǒng)以webservice形式從信息交互總線接收符合iec61968標(biāo)準(zhǔn)格式的消息,提取消息體內(nèi)的cim/rdf實(shí)例數(shù)據(jù)輸入xslt處理器,轉(zhuǎn)換輸出新版本下的實(shí)例數(shù)據(jù)并封裝成iec61968消息發(fā)送到信息交互總線。本發(fā)明解決電網(wǎng)企業(yè)異構(gòu)信息模型間信息交互的難題,提升配網(wǎng)各系統(tǒng)交互效率,協(xié)助維護(hù)交互數(shù)據(jù)的一致性,便于實(shí)現(xiàn),為智能配電網(wǎng)異構(gòu)信息模型間的信息集成。
本發(fā)明能夠解析cim/xml電網(wǎng)模型(包含擴(kuò)展模型),并對cim/xml電網(wǎng)模型提供元素映射關(guān)機(jī)搜索、建立與篩選。在此基礎(chǔ)上,將映射關(guān)系翻譯成xslt轉(zhuǎn)換腳本,對源xml文檔進(jìn)行解析、轉(zhuǎn)換并測試其語義一致性。能夠規(guī)范企業(yè)集成總線上交互信息的語義,利于電網(wǎng)異構(gòu)模型的管理、維護(hù)與升級。
本發(fā)明雖然以較佳實(shí)施例公開如上,但其并不是用來限定權(quán)利要求,任何本領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和范圍內(nèi),都可以做出可能的變動和修改,因此本發(fā)明的保護(hù)范圍應(yīng)當(dāng)以本發(fā)明權(quán)利要求所界定的范圍為準(zhǔn)。