李曉露,左璇,劉日亮,陸一鳴,李聰利,林順富
(1.上海電力大學(xué) 電氣工程學(xué)院,上海 200093;2.國家電網(wǎng)有限公司,北京 100031;3.國網(wǎng)上海能源互聯(lián)網(wǎng)研究院,上海 201210;4.國網(wǎng)天津市電力公司,天津 300010)
隨著電網(wǎng)規(guī)模的不斷擴(kuò)大、分布式能源的高比例滲透,電網(wǎng)調(diào)度控制需要基于更加全面完整、一致準(zhǔn)確的電力系統(tǒng)模型,在更大的范圍上優(yōu)化配置源-網(wǎng)-荷-儲資源[1-3]。調(diào)控中心之間交換模型的質(zhì)量已成為提高整個電網(wǎng)安全穩(wěn)定運(yùn)行水平的關(guān)鍵。
采用公共信息模型(common information model, CIM)實現(xiàn)不同調(diào)控中心之間無縫、高效的模型交換,已在國內(nèi)外的工程實踐中得到驗證[4-7]。然而,由于應(yīng)用需求不斷發(fā)展、新應(yīng)用不斷涌現(xiàn)所導(dǎo)致的CIM版本變化頻繁、自定義擴(kuò)展不斷增加,使得交換模型的質(zhì)量管理面臨極大挑戰(zhàn)。因此,設(shè)計可靈活跟隨CIM版本變化和自定義擴(kuò)展的模型驗證工具極為重要。
模型驗證是將實例數(shù)據(jù)與所配置的標(biāo)準(zhǔn)信息模型校驗比對的過程[8]。目前的模型驗證工具主要基于標(biāo)準(zhǔn)信息模型進(jìn)行語義一致性測試,檢測出實例數(shù)據(jù)與標(biāo)準(zhǔn)信息模型的差異。文獻(xiàn)[9]從描述準(zhǔn)確性、模型全面性、關(guān)聯(lián)完備性3個方面進(jìn)行CIM數(shù)據(jù)一致性的校驗。文獻(xiàn)[10]針對IEC 61 968標(biāo)準(zhǔn)消息總線上互操作過程中出現(xiàn)的模型不匹配問題,設(shè)計了基于本體的信息模型驗證機(jī)制,實現(xiàn)了IEC 61 968標(biāo)準(zhǔn)的一致性測試。由于標(biāo)準(zhǔn)信息模型內(nèi)嵌在模型驗證工具中,應(yīng)用需求快速變化而導(dǎo)致的標(biāo)準(zhǔn)信息模型更新無法及時反饋到模型驗證工具,使得模型質(zhì)量校驗存在一定的滯后。
另一方面,知識圖譜在電力領(lǐng)域的應(yīng)用已成為近年的研究熱點。知識圖譜為管理和理解海量多源異構(gòu)數(shù)據(jù)提供了一種靈活的解決方式[11-15]。結(jié)合大數(shù)據(jù)與人工智能技術(shù),領(lǐng)域知識圖譜正逐步成為推動電力人工智能發(fā)展的核心驅(qū)動力之一[11]。電力知識圖譜應(yīng)用的主要挑戰(zhàn)之一是大規(guī)模知識圖譜自身的質(zhì)量問題,知識的不正確和缺失會導(dǎo)致錯誤傳播[12]。調(diào)度自動化系統(tǒng)、配電自動化系統(tǒng)、變電站自動化系統(tǒng)以及用電營銷系統(tǒng)等提供的模型是構(gòu)建電網(wǎng)模型知識圖譜的基礎(chǔ),以CIM作為知識圖譜的框架,在此框架上添加各業(yè)務(wù)系統(tǒng)的實例數(shù)據(jù)將形成電網(wǎng)模型的知識圖譜。
知識圖譜常用資源描述框架(RDF)數(shù)據(jù)圖表示,因此本文將基于RDF數(shù)據(jù)圖來研究靈活驗證電網(wǎng)模型質(zhì)量的方法。文獻(xiàn)[16]分析RDF模型驗證語言的相關(guān)需求,指出在模型交換中需要一種標(biāo)準(zhǔn)的驗證語言來驗證交換模型的質(zhì)量以保證互操作性。文獻(xiàn)[17]介紹幾種驗證RDF數(shù)據(jù)的方法,包括形狀表示語言(ShEx)和形狀約束語言(SHACL)。其中,SHACL是萬維網(wǎng)(W3 C)的RDF數(shù)據(jù)形狀工作組于2017年7月20日發(fā)布的正式推薦標(biāo)準(zhǔn),將驗證RDF數(shù)據(jù)圖的約束規(guī)則表示為一組形狀(shapes)[18]。
文獻(xiàn)[19-20]將SHACL應(yīng)用于歐洲輸電系統(tǒng)運(yùn)營商聯(lián)盟(ENTSO-E)的模型驗證中。文獻(xiàn)[19]將CIM RDF模式映射為SHACL形狀,但所處理的約束僅解決了常見的CIM屬性取值范圍、關(guān)聯(lián)重數(shù)等問題。文獻(xiàn)[20]將公共電網(wǎng)模型交換規(guī)范(CGMES)的對象約束語言規(guī)則轉(zhuǎn)換為SHACL形狀,但關(guān)于如何生成與電力領(lǐng)域知識緊密相關(guān)的SHACL SPARQL形狀沒有深入闡述。文獻(xiàn)[21]將SHACL應(yīng)用于版本變化的數(shù)據(jù)驗證,實現(xiàn)知識圖譜的質(zhì)量提升。
SHACL支持SPARQL查詢,利用領(lǐng)域知識圖譜所蘊(yùn)含的模式信息可進(jìn)一步實現(xiàn)SHACL形狀的優(yōu)化,以提升模型驗證的效率。本文從構(gòu)建準(zhǔn)確的電網(wǎng)模型知識圖譜的角度,研究將CIM模式子集以及用戶自定義的模型質(zhì)量驗證規(guī)則轉(zhuǎn)換為SHACL形狀的方法,使得基于SHACL的電網(wǎng)模型驗證工具可靈活跟隨CIM版本變化、CIM自定義擴(kuò)展,以及隨應(yīng)用需求演化而不斷更新的模型質(zhì)量要求。
基于SHACL的電網(wǎng)模型知識圖譜驗證架構(gòu)如圖1所示。SHACL校驗器以電網(wǎng)模型RDF數(shù)據(jù)圖、電網(wǎng)模型SHACL形狀圖為輸入,輸出校驗結(jié)果。通過驗證的電網(wǎng)模型數(shù)據(jù)圖可存儲入圖數(shù)據(jù)庫,以進(jìn)一步開展基于圖數(shù)據(jù)庫的知識推理。
圖1 基于SHACL的電網(wǎng)模型知識圖譜驗證架構(gòu)Fig.1 Architecture of validation of knowledge graph of power system model based on SHACL
電網(wǎng)模型知識圖譜驗證可分為如下幾個步驟:
(1)將CIM子集以及電網(wǎng)通用模型描述規(guī)范(CIM/E)、CIM可擴(kuò)展標(biāo)記語言/資源描述框架(XML/RDF)格式的電網(wǎng)模型文件或者對應(yīng)關(guān)系數(shù)據(jù)庫的信息文件,轉(zhuǎn)換為待驗證的RDF數(shù)據(jù)圖;
(2)將CIM子集以及自定義校驗規(guī)則映射為SHACL形狀圖;
(3)SHACL校驗器將SHACL形狀圖作用在電網(wǎng)模型RDF數(shù)據(jù)圖上,輸出模型驗證報告;
(4)模型質(zhì)量管理人員根據(jù)驗證結(jié)果報告,進(jìn)行確認(rèn);如果確認(rèn)模型存在錯誤,提示維護(hù)人員對電網(wǎng)模型錯誤進(jìn)行修正;
(5)驗證通過的電網(wǎng)模型RDF數(shù)據(jù)圖存儲入圖數(shù)據(jù)庫;
(6)持續(xù)對新的電網(wǎng)模型進(jìn)行驗證,保證電網(wǎng)模型知識圖譜的準(zhǔn)確、可靠。
知識圖譜本質(zhì)上是一種語義網(wǎng)絡(luò),每一條知識表示為(主體,謂語,客體)3元組,縮寫為(s, p, o),簡稱 SPO。
從邏輯結(jié)構(gòu)上,知識圖譜可分為模式層和數(shù)據(jù)層,分別對應(yīng)于領(lǐng)域本體映射的概念圖譜和領(lǐng)域?qū)嵗成涞膶嶓w圖譜。概念圖譜的構(gòu)建可自下而上從采集數(shù)據(jù)中提取資源模式,也可自上而下采用已有的資源模式[13]。對于電力企業(yè)來說,CIM已廣泛用作電力對象的元模型,可采用自上而下的方式構(gòu)建CIM基礎(chǔ)概念圖譜;在此基礎(chǔ)概念圖譜之上延伸,逐步涵蓋業(yè)務(wù)應(yīng)用系統(tǒng)的數(shù)據(jù)模式。實體圖譜則可從電力業(yè)務(wù)應(yīng)用系統(tǒng)的CIM/E、CIM XML/RDF格式的電網(wǎng)模型文件或者從關(guān)系數(shù)據(jù)庫中提取,由電網(wǎng)中實體內(nèi)部的屬性以及實體之間的復(fù)雜關(guān)系形成SPO3元組集合。電網(wǎng)模型概念圖譜和實體圖譜的SPO3元組集合共同組成了圖1中待驗證的電網(wǎng)模型RDF數(shù)據(jù)圖。
電網(wǎng)模型概念圖譜描述了電網(wǎng)模型的CIM本體信息,5元組形式為[22]
式中:C為概念集,表示CIM中定義的類;A為概念的屬性集,表示CIM中定義的類屬性;R為語義關(guān)系集,包含分類關(guān)系和非分類關(guān)系,表示CIM類之間的關(guān)系;X為公理集,是對概念、屬性、關(guān)系的約束,如CIM子集提供了關(guān)于強(qiáng)制性屬性、關(guān)聯(lián)重數(shù)數(shù)目的更具體的約束;I為實例數(shù)據(jù)集,用于描述領(lǐng)域中共同認(rèn)可的常識知識。
本文使用式(1)的C、A、R來構(gòu)建電網(wǎng)模型概念圖譜,X、I作為形成知識圖譜驗證規(guī)則的基礎(chǔ)。IEC TC57的CIM統(tǒng)一建模語言(UML)類圖可轉(zhuǎn)換為基于XML元數(shù)據(jù)交換(XMI)格式,再通過網(wǎng)絡(luò)本體語言(OWL)轉(zhuǎn)換工具轉(zhuǎn)換為OWL格式的CIM OWL文件,然后從該文件提取CIM模式。
CIM模式中,類之間有泛化、關(guān)聯(lián)、聚集3種靜態(tài)關(guān)系。以變電站(Substation)、電壓等級(VoltageLevel)、間隔(Bay)、斷路器(Breaker)、連接節(jié)點(Connectivity Node)、端點(Terminal)為例,CIM概念圖譜如圖2所示。
圖2 基于CIM的概念圖譜與實體圖譜示例Fig.2 An example of CIM-based concept graph and entity graph
電網(wǎng)模型中的一個實體對象對應(yīng)于圖中的一個節(jié)點,對象的屬性為節(jié)點的屬性,實體對象之間的關(guān)聯(lián)為節(jié)點之間的邊。從CIM/E、CIM XML/RDF格式的電網(wǎng)模型文件、關(guān)系數(shù)據(jù)庫中可以很方便地提取出構(gòu)建電網(wǎng)實體圖譜的SPO3元組集合。
實體圖譜的實體節(jié)點與概念圖譜的類節(jié)點之間建立rdf:type關(guān)聯(lián),表示實例與類之間的關(guān)系。實體圖譜中每個節(jié)點的標(biāo)簽為該節(jié)點所指向的概念圖譜節(jié)點的名字。由圖2可知,CB1是Breaker的實例,則CB1的標(biāo)簽為Breaker。為方便進(jìn)行圖計算,節(jié)點所屬類的父類信息也作為節(jié)點的標(biāo)簽進(jìn)行保存,則CB1的標(biāo)簽還可以有開關(guān)(Switch)、導(dǎo)電設(shè)備(Conducting Equipment)、電力系統(tǒng)資源(Power System Resource)、標(biāo)識對象(Identified Object)等[23]。節(jié)點的屬性名、節(jié)點之間的關(guān)聯(lián)名為CIM中對應(yīng)的屬性名、關(guān)聯(lián)名。
SHACL的形狀分為節(jié)點形狀和屬性形狀,其中節(jié)點形狀為作用于特定類型節(jié)點的約束,屬性形狀為作用于對象之間的關(guān)系或?qū)ο髮傩缘募s束[18]。這些用形狀描述的約束條件{s}形成了形狀圖S。將RDF數(shù)據(jù)圖記為 G={VG,EG},其中VG為節(jié)點集合,EG為邊的集合,表示了兩個節(jié)點之間的關(guān)系。SHACL校驗器就是校驗RDF數(shù)據(jù)圖上的目標(biāo)節(jié)點是否遵循形狀所描述的規(guī)則。
驗證電網(wǎng)模型RDF數(shù)據(jù)圖的SHACL形狀用(s,φ,q)來表示,s為形狀名,φ為一個約束,q為目標(biāo)節(jié)點的查詢語法。約束φ的構(gòu)造語法可以參考文獻(xiàn)[24]。
路徑 ρ的構(gòu)造語法為
式中:p為SPO3元組的謂語,表示節(jié)點的屬性或節(jié)點之間的關(guān)系;?p為p的反向角色;ρ1/ρ2為兩個路徑ρ1、ρ2的級聯(lián)。
目標(biāo)節(jié)點的查詢語法q為
式中:⊥為查詢的目標(biāo)節(jié)點是空;{v1,···,vn}為一節(jié)點列表;v1,···,vn∈VG;I(v)為類v的所有實例;s(p)為謂語p的主體;o(p)為p的客體。
基于本體進(jìn)行異構(gòu)數(shù)據(jù)源的集成應(yīng)用日益廣泛,從OWL生成SHACL形狀約束在業(yè)務(wù)流程上也更為快捷。本文基于CIM OWL進(jìn)行SHACL形狀設(shè)計。與文獻(xiàn)[19]相比,本文可處理的約束類型更為豐富,如表1所示。
表1 CIM模式一致性約束類型Table 1 CIM schema consistency constraint types
CIM OWL文件生成電網(wǎng)模型驗證的模式一致性SHACL 核心形狀的原則為:1個CIM類對應(yīng)生成1個節(jié)點形狀的實例,CIM類的1個屬性對應(yīng)生成1個屬性形狀的實例。屬性形狀可如下設(shè)計:
(1)對于1個實體與其他節(jié)點的關(guān)聯(lián)為二選一的路徑約束,用sh:alternativePath來表示,如Bay與上層容器的關(guān)聯(lián)只能在Bay.VoltageLevel和Bay.Substation中二選一;
(2)CIM類的屬性取值可能存在約束,例如cim:GeneratingUnit.initialP存在≥0的約束,可通過sh:minExclusive進(jìn)行定義;
(3)電網(wǎng)模型在序列化一對多的關(guān)聯(lián)時,一般規(guī)定關(guān)聯(lián)只需在重數(shù)為多的那一側(cè)進(jìn)行描述,則重數(shù)為1的一側(cè)指向重數(shù)為多的一側(cè)的關(guān)聯(lián)可用sh:inversePath來獲得;
(4)CIM類的屬性值之間的交叉約束,例如,一個發(fā)電機(jī)組對象的GeneratingUnit.max OperatingP屬性值必須大于等于GeneratingUnit.minOperatingP屬性值,屬性值之間的大小邏輯關(guān)系可通過sh:lessThanOrEquals進(jìn)行約束;
(5)基數(shù)約束是電網(wǎng)模型驗證中最常用的約束。如果某個屬性或關(guān)聯(lián)是強(qiáng)制的,可以規(guī)定sh:minCount為1。sh:maxCount規(guī)定了某個屬性或關(guān)聯(lián)最多的數(shù)目。如強(qiáng)制規(guī)定某個類與另一個類的關(guān)聯(lián)數(shù)目必須為m,則同時將sh:minCount和sh:maxCount規(guī)定為m;
(6)枚舉類型的屬性取值通過sh:in來約束,例如PowerTransformerEnd.connectionKind 屬性的值通過sh:in規(guī)定只能從WindingConnection.Yn、WindingConnection.Y、WindingConnection.D等枚舉值中選取。
除了驗證CIM OWL模式一致性的SHACL 核心形狀約束之外,本文基于SPARQL設(shè)計一類與電網(wǎng)模型領(lǐng)域知識結(jié)合更為緊密的規(guī)則。這類規(guī)則需要跨類或跨屬性進(jìn)行一致性校驗,利用SHACL SPARQL進(jìn)行此類規(guī)則的形狀定義。
構(gòu)造SHACL SPARQL形狀的步驟為:確定約束的范圍,可以是I(v)或是SPARQL查詢語句確定的節(jié)點;確定約束的形狀,即根據(jù)驗證規(guī)則構(gòu)造SPARQL查詢語句。
SPARQL 查詢語句的構(gòu)造為:SELECT vars(φ)WHERE{ triples(φ) FILTER (filters(φ) )},其中vars(φ)用于判斷查詢結(jié)果是否為空;triples(φ)定義WHERE約束子句的3元組模式。triples(φ)從第一個3元組開始在RDF圖上匹配,直至匹配完所有的3元組;filters(φ)中定義對 triples(φ)查詢結(jié)果的過濾條件,為關(guān)于 triples(φ)返回變量的邏輯運(yùn)算。
例如,對變壓器分接頭調(diào)節(jié)能力定義了一條規(guī)則[25-26],根據(jù)CIM中調(diào)壓分接頭(RatioTapChanger)、分接頭調(diào)節(jié)控制(TapChangerControl)、電力變壓器端(PowerTransformerEnd)之間的關(guān)聯(lián)關(guān)系。
如果電網(wǎng)模型的驗證規(guī)則進(jìn)行了更新,模型維護(hù)人員只需更改SHACL形狀圖。SHACL形狀圖作為SHACL校驗器的輸入,不會對SHACL校驗器內(nèi)部的實現(xiàn)邏輯產(chǎn)生影響。而常規(guī)的電網(wǎng)模型驗證工具需要在程序?qū)崿F(xiàn)時預(yù)先設(shè)計各種驗證規(guī)則的處理邏輯,規(guī)則更新則程序也需進(jìn)行相應(yīng)修改,導(dǎo)致模型驗證工具維護(hù)工作量大且很難及時跟蹤C(jī)IM模型版本的演化和電網(wǎng)驗證規(guī)則的更新。
SHACL校驗器的功能是在RDF數(shù)據(jù)圖G上應(yīng)用某個形狀s∈S,檢查目標(biāo)節(jié)點v是否滿足s,記為validate(s,G,v),直至S中的所有形狀均完成驗證。本文基于jena-shacl實現(xiàn)SHACL校驗器,校驗器內(nèi)部不進(jìn)行任何特定于電網(wǎng)模型領(lǐng)域的邏輯處理,因此電網(wǎng)驗證規(guī)則的更新無需校驗器進(jìn)行相應(yīng)的程序修改。
違反約束的節(jié)點或?qū)傩栽隍炞C報告中通過sh:message來提示,提示信息包括了需關(guān)注的對象統(tǒng)一資源標(biāo)識符(URI)和規(guī)則ID。因此,SHACL形狀定義中通過sh:message提示信息幫助定位模型問題;并對違反約束的嚴(yán)重程度(sh:severity)進(jìn)行分級,分為違反(sh:Violation)、警告(sh:Warning)、信息(sh:Info)3個級別。
為保證電網(wǎng)模型文件中所有的對象均被驗證,可定義一個SHACL形狀,以sh:in來枚舉RDF數(shù)據(jù)圖中允許出現(xiàn)的CIM類。如果出現(xiàn)了允許范圍之外的CIM類實例,則在驗證報告中予以提示,提醒模型維護(hù)人員及時增加相應(yīng)的校驗規(guī)則。例如,形狀圖中若未定義約束Asynchronous Machine類的形狀,而RDF數(shù)據(jù)圖存在AsynchronousMachine類的實例,則驗證報告將提示未定義AsynchronousMachine的SHACL形狀。
為方便SHACL形狀圖的管理,可針對不同的驗證需求設(shè)計多個SHACL形狀圖,分別用于驗證拓?fù)潢P(guān)系、潮流計算結(jié)果、模型動態(tài)屬性等。這些形狀圖為模型驗證全集的一個子集,定義了特定于某一類驗證需求的形狀約束。
為測試所定義的形狀圖能否正確檢出RDF數(shù)據(jù)圖中的錯誤,本文以某地區(qū)CIM XML電網(wǎng)模型作為測試案例進(jìn)行SHACL校驗。SHACL校驗器的驗證結(jié)果片段。
報告了檢出的模型錯誤,包括:斷路器BK1_1_CS關(guān)聯(lián)了3個端點,發(fā)電機(jī)組GN-SYM-1的最大運(yùn)行有功小于最小運(yùn)行有功,變壓器調(diào)壓分接頭TP12的調(diào)節(jié)能力超出了限制?;诖藞蟾婵煞奖愕囟ㄎ荒P椭序炞C失敗的節(jié)點、屬性以及失敗原因、嚴(yán)重程度等。
電網(wǎng)調(diào)度運(yùn)行需基于全面、準(zhǔn)確的電網(wǎng)模型進(jìn)行分析決策與控制。為提升電網(wǎng)模型質(zhì)量,本文基于CIM構(gòu)建了電網(wǎng)模型概念圖譜和實體圖譜,設(shè)計了驗證電網(wǎng)模型知識圖譜的CIM模式一致性形狀和基于SHACL SPARQL的跨類、跨屬性一致性形狀?;赟HACL設(shè)計電網(wǎng)模型知識圖譜驗證,可適應(yīng)CIM版本的更新以及自定義擴(kuò)展,模型驗證規(guī)則無須在SHACL校驗器中硬編碼,實現(xiàn)了靈活、快速、按需的電網(wǎng)模型管理,下一步將基于推理規(guī)則發(fā)現(xiàn)隱藏在模型中與邊界、業(yè)務(wù)流程等相關(guān)的深層次模型質(zhì)量問題。