曲朝阳,孙鹏飞
(东北电力大学信息工程学院,吉林吉林132012)
目前在电力系统中,特别是在智能电网建设过程中存在的一个突出问题是系统数据多而决策支持缺乏,出现这种不足的原因,一方面在于决策知识的缺乏,激增的数据超过了人和系统所能接受、处理和利用的范围,导致数据无法被及时、合理地组织,决策者未能从数据中得到应有的启示[1],使电网故障恢复能力和自愈功能减弱;另一方面,知识的表示形式使其不能被有效地利用,这是因为目前的知识表示方法不利于电网知识的发现,不能形式化地表示电网领域知识。
电网领域普遍采用的知识表示方法有自然语言法、谓词逻辑法、面向对象知识表示法等十多种方法[2]。自然语言虽然最易于理解,但自然语言,特别是汉语有很强的二义性,要准确地描述知识,二义性是首先应该避免的;谓词逻辑和其它的知识表示方法也都存在着知识表示隐晦、推理效率低、可视化水平差以及动态知识协同处理困难等弊端,然而这些问题在电力系统中都是尤其重要的,基于本体语言的表示方法可以很好地解决这些问题。
本文将网络本体语言OWL应用于电网领域知识表示,构建了一个基于OWL本体语言的电网知识本体。统一了电网领域知识的概念,清晰地阐明了电网领域知识之间的相互联系和相互作用,使电网领域知识得到有效组织,有利于电网知识的提取和利用。
本体论源于哲学,原意指对客观事物的本质认识。随着人们对本体认识的不断加深,本体论思想逐渐被引入到知识表示研究中,以解决在知识表示中存在的非显式、明确性差和知识推理能力不足等问题。在经历了自然语言法、产生式规则法等之后,目前知识表示方法的研究主要集中于本体表示法,其在各领域知识表示中的研究和应用是目前的热点。基于本体的知识表示依赖于具体的本体语言,目前OWL被认为是最优秀的本体语言,同时也被万维网联盟定为本体语言的标准。
OWL本体语言是在总结了XML、RDF、DML-ONT等本体语言的基础上提出的[3],它继承了这些语言的开发经验,既保证了强大的语义表达能力,又添加了更多新的属性约束、逻辑关系,如类间的不相交性、基数、等价性等,使其具有更丰富的语义和逻辑表达能力,除此之外,OWL与RDF、DAML、OIL等本体语言有很好的兼容性和交互性[4],它采用基于XML和RDF的语法规则,所以在对网络资源的标引和本体建模方面具有广阔的应用前景。
OWL包含了三种子语言OWL Lite,OWL DL和OWL Full,它们的表达能力逐渐增强,但由于它们由下而上,添加了更多的公理定义、规则约束和属性关系,而目前支持OWL Full的推理机尚未问世,所以它的知识推理能力不如OWL DL强。OWL DL拥有和OWL Full相同的语言结构成分集,二者的区别在于它们与RDF的兼容程度不同。前者与RDF的混合使用受一定的限制,而后者可以随时和RDF混合使用,它与RDF在类、属性、个体和数值方面的定义完全相同。综上可知,OWL DL兼顾了知识表示与推理[5],所以本文将采用OWL DL来实现对电网领域知识的表示和建模。
知识是人们在长期的生活及社会实践中积累起来对客观事物及其规律的认识与经验,是经过人的思维整理过的各种信息、数据而得到的抽象的产物[6]。在电网领域,知识可概括为静态和动态两种。静态知识包括设备类知识、电力规程类知识、电力故障诊断及决策知识等;动态知识包括电网运行产生的实时数据和信息以及预测型知识,即由历史的或当前的数据推测未来的数据和状态,也可以认为是以时间为关键属性的知识。
电网知识具有四种特点:
(1)多样性,电力设备的种类繁多,形式复杂,设备类知识类目是多样的。
(2)关联性,一个事件和另一事件之间存在关联关系或依赖关系,如开关和电流的属性之间存在关联,当开关断开时,电流为0,开关闭合,电流为相应的值。关联知识在电网领域是广泛存在的,对关联知识的分析在知识推理过程中有重要意义。
(3)协同性,电网知识都不是孤立存在的,决策措施的做出往往需要综合运用多方面的知识。
(4)隐晦性,电网中大量的原始数据和信息,可能是不完整的、有噪声的、模糊的、随机的,本身不具有实际意义,真正有价值的知识是隐藏在这些数据和信息背后的,需要通过一定的知识发现手段来发现。
由于电网领域知识具有上述特性,目前的知识表示方法往往只对某一特定领域的知识表示有效,而这些方法并不能合理地应于电网领域。基于本体论的知识表示法是目前知识表示的前沿,并已经在生物学、医药学、电子政务等领域知识表示中得到广泛应用,显示了很好的效果。本文将本体论思想引入到电网领域知识表示中,确定了电网领域共同认可的词汇,提供对电网领域知识概念的一致理解,提出基于OWL网络本体语言的电网知识表示方法,该方法可详尽地描述电网领域相关知识,具有较好的知识推理能力,为知识更高层次的研究和应用奠定了基础。
知识表示就是把某一领域知识转化为机器可处理的具有语义的编码的过程,基于OWL本体语言实现对电网知识的表示应该包括以下过程:
(1)确定电网领域涉及到的知识种类,了解电网知识特征。
(2)定义类和类之间的关系,构建本体模型。
(3)使用OWL进行知识表示。
在遵循OWL语法规则下,采用OWL本体语言实现电网知识表示,最终形成OWL知识文档,多个文档就构成了基于本体表示的电网知识库[7]。
基于OWL的电网领域知识表示的大致过程可由下图概括:
图1 基于OWL的电网领域知识表示过程
OWL本体语言遵循XML语法并有自身的特点。在基于OWL的电网知识表示过程中,概念类、知识属性及公理三个元素是最基本的知识元,其中最核心的是电网知识类的定义,后两者都是基于知识类上的关系,电网知识类是电网知识对象的抽象。
电网知识类常用的定义方法是显式定义:owl:Class,定义时显式地给出类名,例如:
在上面的示例中通过语法"rdf:ID="定义了类"Generator"和"Synchronous generator",完成类的定义以后,通过rdf:resource="#Generator"来引用Generator类。
电网知识表示中属性的作用非常关键,它表示的是一种二元关系,描述知识的众多元素之间通过属性的关联而联系在一起。OWL语言中有三种常用的表示不同类型关系的属性,分别如下:
(1)表示类之间的关系的属性,记为"owl:ObjectProperty",其值域是电网知识类或类的具体的某个实例。
(2)表示类与数据类型之间关系的属性,记为"owl:DatatypeProperty",其值域是XML Schema数据类型、rdfs:Literal或枚举类型。
(3)表示子属性关系,记为"rdfs:subProperty Of",该属性关系是rdfs对rdf的扩展,在电网知识推理过程中有重要应用。
除上述三种基本的属性关系外,基于OWL的电网知识表示常用的属性还包括传递属性、对称属性"等。每种属性都有一定的属性值,包括基数约束与值约束。基数约束包含owl:cardinality,owl:min-Cardinality和 owl:maxCardinality三种[8]。值约束包含 owl:allValuesFrom,owl:someValuesFrom,owl:has-Value,前两种值约束作用是把属性值限定在某个类或一个枚举类的取值范围,owl:hasValue则把属性值限定为某一个具体的类的实例或具体的数值。
此外,公理是基于OWL的电网知识表示中另一重要概念,它说明了电网知识类、属性和实例之间的关系。类公理包含三种:子类、等价和类不相交关系。属性公理包含子属性、对等、互逆关系。实例关系有两种类型:一是表明实例所属类或属性值的陈述;二是实例之间是否等同,与之相关的词汇包括owl:sameAs,owl:differentFrom 和 owl:AllDifferent等。
综上,类、属性和公理是基于OWL电网知识表示过程中必不可少的元素,是建立OWL电网知识本体模型的基本原语。通过以上分析可以看出,基于OWL的电网知识表示方法的核心思想和基本过程是在明确电网知识内涵以后,将电网知识中的概念和组成电网知识的某些元素抽象为OWL语言中描述知识的元素,进而使用符合OWL本体语言的知识表示原语,并遵循一定的语法规则来完成对电网知识的完整描述。该方法在兼顾知识表示的完备性和明确性的同时更注重于对知识内容的表示,而不是知识的具体形式[9]。
本文以电网中相关知识为研究对象,首先构建一个电网知识类,进而派生出电力设备类和电力规程类,再由电力设备类划分出多个类别的设备,如Transformer类,Generator类等。基于以上分析和对类、属性以及公理的定义,下面的程序段具体地给出了基于OWL DL语言的电网本体知识的表示方法:
以上程序段的含义是定义了电网知识本体的概念,它包括两类知识:电力设备类知识和电力规程类知识,并且说明了这两大类知识之间的一种不相交关系。然后定义了升压变压器类,指出它变压器类的一个子类,继承了变压器类的所有属性。
这段代码定义了隔离开关类,并对隔离开关类的属性作了限制。
本段代码定义了隔离开关的操作属性,主要有“开”和“关”两种,分别表示隔离开关处于工作和断开的状态。综上,这几段代码给出了电网知识本体的表示方法,这里将电网知识分为了两大类:设备类知识和规程类知识,并定义了二者之间的一种不相交关系,设备类知识主要包括了电力系统中常用的设备的本身所固有的一些基本属性,在实际应用中还应该包含设备的动态信息;规程类知识包括电力生产中诸多规则和前文列举的关联知识。从这部分代码可看出,基于OWL语言的知识表示方法可详尽地表示电网领域知识以及知识之间的传递、包含、继承等关系,同时具有良好的可扩展性,可以根据知识表示的需要实时添加,这就有利于知识更新。
本文着重对电网领域中的知识表示进行研究,明确了电网中知识来源,针对目前知识表示方法不适于电网知识表示的问题提出基于本体语言OWL的表示方法,给出了使用该方法表述电网知识的基本思想和一般过程,通过文末的实例已经可以看出,OWL具有很强的表达能力,实现了以一种明确的、形式化的方式来表示电网知识,便于机器识别,提高了互操作性,促进知识共享。同时基于具体领域知识表达的需要,支持更多的语义扩展,使其描述的知识内容更丰富。基于OWL本体语言的电网知识表示是未来电网领域知识研究的基础,为对电网知识进行更高层次的利用和电网知识可视化展现提供了必要支持。
[1]曲朝阳.智能电网知识可视化引擎的研究[D].保定:华北电力大学,2009,12.
[2]张沛超,胡炎,郁惟镛.继电保护专家系统中知识的面向对象表示法[J].继电器,2001,29(2):16-19.
[3]李景.主要本体表示语言的比较研究[J].现代图书情报技术,2005,21(1):1-4.
[4]于娟,马金平.基于Web本体语言OWL的知识表示[J].计算机工程与设计,2006,22(27):4356-4357.
[5]韩韧,黄永忠,刘振林,等.OWL本体构建方法的研究[J].计算机工程与设计,2008,29(6):1397-1399.
[6]谢新文.基于OWL的模具企业经验知识库构建方法的研究[J].计算机技术与发展,2011,3(21):1-5.
[7]于洁,王磊.基于本体的电网运行知识库构建与研究[J].计算机应用研究,2008,25(12):3615-3616.
[8]苏亚萍.基于本体的领域知识建模研究[D].长春:吉林大学2007,5.
[9]王钰,袁小红,石纯一,等.关于知识表示的讨论[J].计算机学报,1995,18(3):212-224.