针对目前电力信息交互总线模式在语义规范上的缺陷以及在互操作过程中出现的模型不匹配问题,提出在IEC 61968标准消息总线上增加语义模型验证环节,即进行信息模型的IEC 61968标准一致性校验。验证是指从消息体(message payload)中解析出电网模型元数据(metadate)信息,并将其与统一的信息模型(CIM及其扩展)进行比对,分析语法格式的兼容性和模型语义的一致性,筛选出不兼容信息,从而便于进行信息模型的管理和维护,从根源上保证总线语义的一致性。
贡献:
- 采用网络本体语言(OWL)构建IEC 61968标准语义信息模型,并结合验证算法实现模型一致性测试;
- 提出了基于公共信息模型(CIM)和基于子集的2种本体验证模式;
- 开发了一套模型验证工具。
IEC 61968标准模型及其扩展
(1)公共信息模型(CIM)
IEC TC57(IEC第57技术委员会)为电力系统管理及其信息交换提供了CIM。CIM 只是为异构系统间的信息交互提供了一个通用语义,并不能满足所有设备厂商和电力企业的需求。因此,针对企业的业务需求进行私有模型扩展是必要的,当这种扩展被IEC TC57接纳时,所谓的私有模型也就成为了标准通用模型,这也使得CIM版本不断更新升级。
(2)信息交换模型
IEC 61968/70系列标准不仅定义了抽象的CIM ,还制定了一套通用服务、子集(profile)以及消息定义格式。
- 信息模型层:主要包括基于统一建模语言 (UML)的CIM 以及针对特定业务需求进行的模型扩展,为信息交互提供了一套基于 CIM 的公共语义。
- 业务场景层:为了解决不同的格式描述导致的信息交互困难的问题,需要从信息模型层中提取一组类、属性的集合,并对其进行约束规范。IEC 61968-13标准针对配电网建立了配电网公共需求(common distribution power system model,CDPSM)子集。
- 语法层:该层为子集的实现提供了一套规则定义,为应用间的互操作提供了具体的实现方式。
(3)模型校验机制
IEC 61968标准定义的接口参考模型(IRM)规 定,应用组件间的通信要求以下两个层次上的兼容性。
- 消息格式和协议。
- 消息内容必须相互理解,包括消息布局和语义级的应用问题。
因此,需要从语义、语法两个层面上对模型和消息分别进行校验。
以往的总线模式,总线上发布的消息只能保证其语法上的兼容性。因此,极有可能出现因为模型不匹配或者语义不一致而导致信息交互失败,这种模式不利于查找错误来源。因此,提出在消息总线上部署验证服务环节,当总线上出现新部署的应用或者应用组件进行模型更新时,需要将其待发布的消息XML进行元数据校验,从根本上保证了总线语义的一致性。
部署在总线上的应用组件每进行一次模型更新(元数据),需要首先向验证服务器传递一条待发布的消息,验证服务器将验证结果返回给应用组件(专属通信通道)。若验证结果是不兼容的,则该组件不允许向总线上发布消息,需要根据提供的不兼容信息对模型进行核实和修改。若验证通过,则可以向总线服务订阅方发布相应的业务消息,并且在下一次模型更新之前不必再向验证服务器传送消息。经过该验证流程,可以保证总线上传递的信息模型均符合CIM或特定子集的要求。
基于本体的模型验证
(1)模式与子集
- 模式(schema):用某种数据描述语言来描绘元数据与元数据之间的相互关系;
- 子集:针对特定的业务需求从相应的模式中选择一组类以及属性的集合,并对其进行了约束规范;
由于CIM是IEC使用UML发布的,因此需要将其转化为计算机可识别的语言。IEC 61970-501标准给出了如何将 CIM/UML模型映射为 CIM/RDFS,但是考虑到RDFS在语义表达能力上的不足,而文章提到的信息模型验证需要更强的语义表达以及逻辑推理,因此引入OWL作为验证模式的知识层表示,并构建CIM语义信息模型。
(2)OWL的引入
本体:是共享概念化的、显式的、形式化的说明。
代表性的语义表示语言(本体语言)有:
- 资源描述框架(RDF):语义表达能力上的不足;
- 资源描述框架模式(RDFS):语义表达能力上的不足;
- 本体接口语言(OIL)
- 美国国防高级设计署(DARPA)标注语言(DAML)+OIL
- 网络本体语言(OWL):公认为未来的OWL标准。位于RDFS的上层,基于 RDFS语法和本体原语(类等),增加了更加丰富的原语集(传递、基数等)以及描述类与属性的域结构。
OWL语言提供了以下3种表达能力依次增强的子语言:
- OWL-lite:支持的用户是那些需要一个分类体系和简单约束功能的人,它支持基数约束,但只允许基数值为0或1。
- OWL-DL(description logic):在保证计算完备性(所有结果均可计算)和可判定性(所有结果都能在有限时间内结束)的基础上,支持最强表达能力。它包含了 OWL的全部语言构造成分,但它们的使用受一定限制。
- OWL-full:支持最大限度的表达能力,支持RDF语言的自由使用,但是不保证推理的可计算性。
- 从业务层次出发,从描述逻辑的语义表达以及逻辑推理能力方面考虑,选择OWL-DL作为模型配置语言。
- 对于CIM全模型的描述,并无涉及具体业务规范,只是提供一组公共语义,选择表达能力更强的OWL-full语言更为合适。
(3)验证模式
模型验证首先是通过解析 CIM/XLM,抽取该数据模型的元数据信息,并将其与基于本体描述的语义模式进行比对,该语义模式可以是基于标准CIM及其扩展的全模型,也可以是统一配置的子集,具体的模式选择需要结合实际应用需求。
CIM/XLM是将CIM语义信息模型及其扩展映射为包含电力系统模型信息的CIM/RDF应用,其必须遵循CIM语义以及子集的约束机制。
对CIM/XLM校验可以实现2个层次目标:
- 第1层:通过验证实现不同CIM版本或私有模型扩展的差异化分析;构建如图4中标准CIM全模型及其扩展作为验证模式,通过校验可以最大限度地找出信息模型层的差异性。
- 第2层:针对不同的业务场景和不同的业务子集,校验其逻辑规则,并且通过本体的逻辑推理实现应用间语义辨识。主要从实际互操作角度出发,各厂家之间对信息模型达成共识,包括基于某一发布的CIM版本进行私有扩展,并对其中的某些类、属性进行强制约束,即统一配置了业务子集。为了实现该层次校验任务,需要构建如图4中基于子集的验证模式。对将各厂家发布的CIM/XLM与统一配置的子集进行对比,不 仅可以校验出某些类、属性、关系的差异,也可以发现其中某些强制类、属性的缺失。
例如在某CIM/RDF中,其ACLineSegment类的资源对象ACLineSegment_106533没有电抗这一 属 性,若与上文提到的CDPSM(其中ACLineSegment.x为强制属性)进行校验,则会在验证结果中出现基数冲突错误,即该属性的信息缺失。如下图:
