第37卷第8期 计算机工程 2011年4月 Vol.37 No.8 Computer Engineering April 2011 ·软件技术与数据库· 文章编号:1000一3428(2011)08004304 文献标识码:A 中图分类号:TP311 CIM逻辑模型的关系实现 榜文',柳明2 (1.广东工业大学土木与交通工程学院,广州510006; 2.华南理工大学电力学院广东省绿色能源技术重点实验室,广州510640) 捕要:针对逻辑模型在查询和存储方面的不足,定义与其具有一致表示能力的关系模型,并将逻辑模型中以句子形式表示的逻辑约束转 化为针对关系模型中逻辑关系的势的约束。根据模型的访问,以EC61970所采用的数据访问接口DAF为例,在上述关系模型中给出基于 关系代数的实现。研究结果表明,通过选择合理的关系模型,可以在保持逻辑模型丰富的表达能力的基础上,利用关系代数提高模型访问 的效率,同时保证约束判定的有效性。 关健闻:关系模型;公用信息模型;模型验证;模型访问;模型表示 Relation Implementation of CIM Logical Model LIU Wen',LIU Ming? (1.Faculty of Civil and Transportation Engineering,Guangdong University of Technology,Guangzhou 510006,China,2.Guangdong Key Laboratory of Clean Energy Technology,School of Electric Power,South China University of Technology,Guangzhou 510640,China) [Abstract]Corresponding to the lack in abilities of storage and query,a relation scheme,which owns the identical representation with CIM logical model,is defined.Those constraints in logical model,which take the form of logical sentences,are transformed into constraints on the cardinal of some related logical relations.With respects to the model access,the DAF interface,which is the basic CIS interface of IEC61970,is realized by relation algebra as an example.Research results show that the efficiencies of query and availability of constraint verification can be acquired by a well choosing relation scheme,while the rich representative ability of logical model is still reserved. [Key words]relation model;common information model;model validation;model access;model representation D0:10.3969.issm.1000-3428.2011.08.015 1概述 为0(R),它们的详细介绍见参考文献[5]。 数据模型需要很好地支持模型的表示、存储和访问。文 关系模型中的约束称为数据的完整性约束,本文将完整 献[1]利用逻辑方法为CM模型和元模型提供了一个形式化 性约束表示为对某个关系势的约束。为简洁起见,也采用了 的语言,同时也指出了它在存储和查询等方面的缺陷,使得 关系数据库中通常内嵌的主键、外键和可选键3个约束(它们 它只适合作为一个理论工具,而不适合直接在工程实践中加 也可以表示为对关系势的约束)。针对数据类型的约束(即所 以使用。 谓的域完整性约束),本文没有涉及,它需要结合具体的数据 一个较好的工程解决方案必须解决逻辑模型在存储和查 库产品来考虑。 询方面的问题,同时还必须保持与逻辑模型一致的表示能力, 3 模型描述的物理关系 关系模型无疑是一个较好的选择。采用关系模型进行CIM模 用关系模型来表示逻辑模型,直接的方法就是用关系分 型的存储和管理已经有了很多研究2,但是这些工作主要是 别记录论域、基础定义的谓词和函数的解释(元谓词和函数 面向数据的管理,因此没有涉及模型的验证,更毋论模型的 可以分别用度为n和+1的关系描述)。这种思路需要解决 变换和元模型的版本管理。本文给出的关系模型与文献[1]的 2个问题: 逻辑模型有一致的表示能力,可保证逻辑模型中得到的结果 (1)论域中所有简单数值构成的集合是一个无限集合,显 可以直接在关系模型中实现。 然不能够用一个关系显式地保存。 2 关系棋型 (2)诱导定义的二元谓词PExenso刻画了一个具有传递性 关系模型中关系的数学内涵是集合论意义下的关系,即 质的关系(扩展关联),但是关系代数不具备描述传递关系的 一组域D1,D2,,D所构成的笛卡儿集D×D2×…×D上的一 能力,因此,需要利用一个关系显式地记录所有的扩展关联。 个子集R={山}=2,m。R中的每一个元素称为元组,它可以 本文在考虑了上面2个因素的基础上,定义了一组物理 表示为一个有序k元组=<1,2,…,,称k为关系的度,记 关系,通过它们可以直接进行逻辑模型中部分谓词的判定和 为Deg(R),称m为关系的势,记为Card(R)。 基金项目:国家“863”计划基金资助项目(2007AA05Z244);广东 关系模型上的数据操作可以用一组算子来表示,称为关 省科技-工业攻关计划基金资助项目(2009B060700001) 系算子。本文使用到的关系算子包括二元关系算子并算子(记 作者筒介:柳文(1967一),女,硕士,主研方向:电力系统建模与 为RUS)、差算子(记为R-S)、笛卡儿积算子(记为R×S)、投 分析;柳明,讲师、博士 影算子(记为π(R)和关系R在限制F下的选择算子(记 收满日期:2010-08-11E-mail:1wen@126.com C1994-201I China Academic Journal Electronic Publishing House.All rights reserved.http://www.cnki.net
CIM 逻辑模型的关系实现 柳 文 1 ,柳 明 2 (1. 广东工业大学土木与交通工程学院,广州 510006; 2. 华南理工大学电力学院广东省绿色能源技术重点实验室,广州 510640) 摘 要:针对逻辑模型在查询和存储方面的不足,定义与其具有一致表示能力的关系模型,并将逻辑模型中以句子形式表示的逻辑约束转 化为针对关系模型中逻辑关系的势的约束。根据模型的访问,以 IEC61970 所采用的数据访问接口 DAF 为例,在上述关系模型中给出基于 关系代数的实现。研究结果表明,通过选择合理的关系模型,可以在保持逻辑模型丰富的表达能力的基础上,利用关系代数提高模型访问 的效率,同时保证约束判定的有效性。 关键词:关系模型;公用信息模型;模型验证;模型访问;模型表示 Relation Implementation of CIM Logical Model LIU Wen1 , LIU Ming2 (1. Faculty of Civil and Transportation Engineering, Guangdong University of Technology, Guangzhou 510006, China; 2. Guangdong Key Laboratory of Clean Energy Technology, School of Electric Power, South China University of Technology, Guangzhou 510640, China) 【Abstract】Corresponding to the lack in abilities of storage and query, a relation scheme, which owns the identical representation with CIM logical model, is defined. Those constraints in logical model, which take the form of logical sentences, are transformed into constraints on the cardinal of some related logical relations. With respects to the model access, the DAF interface, which is the basic CIS interface of IEC61970, is realized by relation algebra as an example. Research results show that the efficiencies of query and availability of constraint verification can be acquired by a well choosing relation scheme, while the rich representative ability of logical model is still reserved. 【Key words】relation model; common information model; model validation; model access; model representation DOI: 10.3969/j.issn.1000-3428.2011.08.015 计 算 机 工 程 Computer Engineering 第 37 卷 第 8 期 Vol.37 No.8 2011 年 4 月 April 2011 ·软件技术与数据库· 文章编号:1000—3428(2011)08—0043—04 文献标识码:A 中图分类号:TP311 1 概述 数据模型需要很好地支持模型的表示、存储和访问。文 献[1]利用逻辑方法为 CIM 模型和元模型提供了一个形式化 的语言,同时也指出了它在存储和查询等方面的缺陷,使得 它只适合作为一个理论工具,而不适合直接在工程实践中加 以使用。 一个较好的工程解决方案必须解决逻辑模型在存储和查 询方面的问题,同时还必须保持与逻辑模型一致的表示能力, 关系模型无疑是一个较好的选择。采用关系模型进行 CIM 模 型的存储和管理已经有了很多研究[2-4],但是这些工作主要是 面向数据的管理,因此没有涉及模型的验证,更毋论模型的 变换和元模型的版本管理。本文给出的关系模型与文献[1]的 逻辑模型有一致的表示能力,可保证逻辑模型中得到的结果 可以直接在关系模型中实现。 2 关系模型 关系模型中关系的数学内涵是集合论意义下的关系,即 一组域 D1,D2,…,Dk 所构成的笛卡儿集 D1×D2×…×Dk 上的一 个子集 R={ti,}i=1,2,…,m。R 中的每一个元素称为元组,它可以 表示为一个有序 k 元组 t=,称 k 为关系的度,记 为 Deg(R),称 m 为关系的势,记为 Card(R)。 关系模型上的数据操作可以用一组算子来表示,称为关 系算子。本文使用到的关系算子包括二元关系算子并算子(记 为 R∪S)、差算子(记为 R-S)、笛卡儿积算子(记为 R×S)、投 影算子(记为 1 2 ,, , ( ) l π ii i " R )和关系 R 在限制 F 下的选择算子(记 为 σF(R),它们的详细介绍见参考文献[5]。 关系模型中的约束称为数据的完整性约束,本文将完整 性约束表示为对某个关系势的约束。为简洁起见,也采用了 关系数据库中通常内嵌的主键、外键和可选键 3 个约束(它们 也可以表示为对关系势的约束)。针对数据类型的约束(即所 谓的域完整性约束),本文没有涉及,它需要结合具体的数据 库产品来考虑。 3 模型描述的物理关系 用关系模型来表示逻辑模型,直接的方法就是用关系分 别记录论域、基础定义的谓词和函数的解释(n 元谓词和函数 可以分别用度为 n 和 n+1 的关系描述)。这种思路需要解决 2 个问题: (1)论域中所有简单数值构成的集合是一个无限集合,显 然不能够用一个关系显式地保存。 (2)诱导定义的二元谓词 PExtension 刻画了一个具有传递性 质的关系(扩展关联),但是关系代数不具备描述传递关系的 能力,因此,需要利用一个关系显式地记录所有的扩展关联。 本文在考虑了上面 2 个因素的基础上,定义了一组物理 关系,通过它们可以直接进行逻辑模型中部分谓词的判定和 基金项目:国家“863”计划基金资助项目(2007AA05Z244);广东 省科技-工业攻关计划基金资助项目(2009B060700001) 作者简介:柳 文(1967-),女,硕士,主研方向:电力系统建模与 分析;柳 明,讲师、博士 收稿日期:2010-08-11 E-mail:l_wen@126.com
4 计算机工程 2011年4月20日 函数的计算;对于其他的谓词和函数,则可以利用物理关系 名称不同。该关系可用于函数FDataType求值。 构造相应的逻辑关系(它们本身不包含新的信息,只是对物理 (2)Rgole(RoleID,Name,ClassID,RoleType, 关系中信息的重新组织)来进行求值和实现判定。 SupLimit,SubLimit)描述元模型中的角色。其中,RoleID作 3.1 数据类型和数值的关系模型 为主键标识角色;Name和ClassID的解释和约束与关系 元模型中的数据类型和数值可用以下关系描述: RAmribute同;SubLimit和SubLimit用来表示角色维度的上下 (I)关系RDataType(DataTypeID,Name,Category)用来描述 限(此处需要引入特殊的符号来表示常元NF,如-1); 数据类型。其中,DataTypeID作为主键标识数据类型;Name RoleType表示该角色的类型(简单角色、容器角色和成员角 表示它的名称,TypelD表示它的分类,可以取:StringType, 色)。该关系可以实现函数FSupLimit和FSubLimit的求值。 BoolType,FloatType,IntegerType,ComplexType,EnumType, (3)关系Rinverrole(RolelD,InverseRolelD)描述元模型中的 ExtendType,分别与5种原生类型、枚举类型和扩展类型对 关联。其中,RoleID作为主键标识角色;InverseRolelD给出 应。Category和Name共同构成一个可选键以保证不同的枚 与该角色共同构成关联的逆角色,它作为可选键可以保证每 举和扩展类型不会重名。 个角色只参与一个关联。它们的合法性由引自RRe的外键约 (2)关系Rsimplevalue(ValueID,TypelD DataType,Value)i记 束保证。 录所有的枚举数值和其他模型中使用到的简单数值。其中, 3.4 实例的关系模型 ValueID作为主键标识简单数值;ypeID表示该数据的数据 元模型的实例(对象、属性实例和角色实例)可以用下面 类型,其合法性由引自关系RpataType的外键约束保证;Value 这些关系描述: 表示一个具体的数值。数值本身的合法性验证需要在具体实 (I)关系Robiec(ObjectID,ClassID)描述模型中的对象。其 现中进行,因此,这里的Value本身并没有意义,必须将它 中,ObjectID作为主键标识对象;ClassID给出该对象的元模 和TypelD结合才能够明确它的意义。可以认为实现系统中定 型(类),其合法性由引自Rcas的外键约束保证。 义了一组类型转换函数,如用Csim(x)表示对x按照类型 (2)RAtibuteoper(PropertyID,AttributeID,ObjectID, String进行转换。利用该关系可以实现谓词PValueDoma的判定 ValueID)描述模型中的属性实例。其中,PropertyID作为主键 (只考虑模型中的数值。元模型中的数值,如名称、单位描述 标识属性实例;AttributeID表示它的类型;ObjectID表示它 和角色维度等可以直接交由数据库判断)。 所属的对象;ValueID指向它的具体数值。后3个字段的合法 (3)关系R Base Type(DataTypeID,BaseTypeID)用于记录所有 性分别由引自RAtribute、Robject和RsimpleValue的外键约束保证。 扩展数据类型的基类型。其中,DataTypeID作为主键标识扩 为保证每个属性在一个对象中只有一个实例,需要 展类型;BaseTypelD给出它的基类型,它们的合法性均可以 AttributelD和ObjectID构成一个复合的可选键。该关系结合 由引自RpataType的外键约束在一定程度上给予保证。该关系 关系Rsimple Value可以实现函数FValue的求值。 可实现函数FBaseType的计算。 (3)关系RRoleProperty(PropertyID,RolelD,ObjectID)记录模 (4)关系Rumi(DataTypeID,Unit)用于记录所有扩展类型 型中的角色实例。其中,PropertyID作为主键标识角色实例; 的单位描述。其中,DataTypeID作为主键标识扩展类型,其 RolelD表示它的类型;ObjectID表示它所从属的对象。后两 合法性由引自RpataType的外键约束保证;Unit给出它的单位 者的合法性由引自RRole和Robiect的外键约束保证。 描述。该关系可实现函数Funm的计算。 (4)RinversePropert(PropertyID,InversePropertyID)描述模型 3.2类的关系模型 中的关联实例。其中,PropertyID作为主键标识角色实例; 元模型中的类可以用如下关系描述: InversePropertyID给出与它共同构成关联的角色实例,它作 (I)关系RClass((ClassID,Name)用于描述类。其中,ClassID 为可选键以保证一个角色只参与一个关联。它们的合法性均 作为主键标识类;Name表示该类的名称,它的可选键约束 由引自RRoleProperty的外键约束保证。 可以保证不同的类名称不同。 3.5 论城的关系模型 (2)关系Rsuper(ClassID,SuperClassID)用来表示类之间的 逻辑模型中的论域包括了所有的类、属性、角色、数据 继承关系。其中,ClassID作为主键标识类;SuperClassID表 类型、属性和角色的实例、简单数值。基于这些关系,可以 示该类的父类。它们的合法性均由引自Rcas的外键约束保 构造关系RElement((ElementID,ElementType)表示论域。其中, 证。该关系可以实现函数Fspr的计算。 ElementlD用于标识建模元素,其取值与关系RDataType、 (3)关系RExtension(ClassID,ExtendClassID)描述类之间的 RsimpleValue、RChass、RAuribute、Rgole、Robjeet、RAuributeProperty和 广义扩展关联。其中,ClassID表示一个类;ExtendClassID RRoleProperty的主键相同;ElementType表示建模元素的类型, 表示该类广义的扩展类。引自RClass的外键约束保证它们是 如健值来自关系RpataType,那么取值同该关系中的TypelD, 类,同时它们共同构成的复合主键可以保证关系中的元组没 如键值取自FRole,那么取值同该关系中的RoleType,对于来 有重复。该关系用于谓词PExtension的判定。 自其他关系的键值,该字段可以分别取对应的关系名。为保 3.3属性与角色的关系模型 证ElementID满足主键约束,要求构成该关系的不同关系中 元模型中的属性和角色可采用以下关系描述: 的主键取值不重复,这可以通过给不同关系主键的高位分配 (1)RAttribute(AttributelD,Name,ClassID,DataTypelD) 不同值来实现。该关系可以实现与ElementType取值对应的 描述元模型中的属性。其中,AttributeID作为主键来标识属 谓词判定,如谓词Pcas可判定如下: 性;Name表示其名称;ClassID表示它所属的类,其合法性 Card(CIxs-c(RHleme)=1 由引自Rc1as的外键约束保证;DataTypeID表示属性的数据 3.6 基于逻辑关系的函数计算 类型,其合法性由引自RpataType的外键约束保证。ClassID与 对于部分不能直接求值的函数,需要构造相应的逻辑关 Name共同构成一个复合可选键,保证同一个类的不同属性 系来辅助求值,研究如下: C1994-2011 China Academic Journal Electronic Publishing House.All rights reserved.http://www.cnki.net
44 计 算 机 工 程 2011 年 4 月 20 日 函数的计算;对于其他的谓词和函数,则可以利用物理关系 构造相应的逻辑关系(它们本身不包含新的信息,只是对物理 关系中信息的重新组织)来进行求值和实现判定。 3.1 数据类型和数值的关系模型 元模型中的数据类型和数值可用以下关系描述: (1)关系 RDataType(DataTypeID,Name,Category)用来描述 数据类型。其中,DataTypeID 作为主键标识数据类型;Name 表示它的名称,TypeID 表示它的分类,可以取:StringType, BoolType,FloatType,IntegerType,ComplexType,EnumType, ExtendType,分别与 5 种原生类型、枚举类型和扩展类型对 应。Category 和 Name 共同构成一个可选键以保证不同的枚 举和扩展类型不会重名。 (2)关系 RSimpleValue(ValueID,TypeID DataType,Value)记 录所有的枚举数值和其他模型中使用到的简单数值。其中, ValueID 作为主键标识简单数值;TypeID 表示该数据的数据 类型,其合法性由引自关系 RDataType 的外键约束保证;Value 表示一个具体的数值。数值本身的合法性验证需要在具体实 现中进行,因此,这里的 Value 本身并没有意义,必须将它 和 TypeID 结合才能够明确它的意义。可以认为实现系统中定 义了一组类型转换函数,如用 CString(x)表示对 x 按照类型 String 进行转换。利用该关系可以实现谓词 PValueDomain 的判定 (只考虑模型中的数值。元模型中的数值,如名称、单位描述 和角色维度等可以直接交由数据库判断)。 (3)关系 RBaseType(DataTypeID,BaseTypeID)用于记录所有 扩展数据类型的基类型。其中,DataTypeID 作为主键标识扩 展类型;BaseTypeID 给出它的基类型,它们的合法性均可以 由引自 RDataType 的外键约束在一定程度上给予保证。该关系 可实现函数 FBaseType 的计算。 (4)关系 RUnit(DataTypeID,Unit)用于记录所有扩展类型 的单位描述。其中,DataTypeID 作为主键标识扩展类型,其 合法性由引自 RDataType 的外键约束保证;Unit 给出它的单位 描述。该关系可实现函数 FUnit 的计算。 3.2 类的关系模型 元模型中的类可以用如下关系描述: (1)关系 RClass(ClassID,Name)用于描述类。其中,ClassID 作为主键标识类;Name 表示该类的名称,它的可选键约束 可以保证不同的类名称不同。 (2)关系 RSuper(ClassID,SuperClassID)用来表示类之间的 继承关系。其中,ClassID 作为主键标识类;SuperClassID 表 示该类的父类。它们的合法性均由引自 RClass 的外键约束保 证。该关系可以实现函数 FSuper 的计算。 (3)关系 RExtension(ClassID,ExtendClassID)描述类之间的 广义扩展关联。其中,ClassID 表示一个类;ExtendClassID 表示该类广义的扩展类。引自 RClass 的外键约束保证它们是 类,同时它们共同构成的复合主键可以保证关系中的元组没 有重复。该关系用于谓词 PExtension 的判定。 3.3 属性与角色的关系模型 元模型中的属性和角色可采用以下关系描述: (1)关系 RAttribute(AttributeID,Name,ClassID,DataTypeID) 描述元模型中的属性。其中,AttributeID 作为主键来标识属 性;Name 表示其名称;ClassID 表示它所属的类,其合法性 由引自 RClass 的外键约束保证;DataTypeID 表示属性的数据 类型,其合法性由引自 RDataType 的外键约束保证。ClassID 与 Name 共同构成一个复合可选键,保证同一个类的不同属性 名称不同。该关系可用于函数 FDataType 求值。 (2) 关 系 RRole(RoleID , Name , ClassID , RoleType , SupLimit,SubLimit)描述元模型中的角色。其中,RoleID 作 为主键标识角色;Name 和 ClassID 的解释和约束与关系 RAttribute 同;SubLimit 和 SubLimit 用来表示角色维度的上下 限(此处需要引入特殊的符号来表示常元 INF, 如-1); RoleType 表示该角色的类型(简单角色、容器角色和成员角 色)。该关系可以实现函数 FSupLimit 和 FSubLimit 的求值。 (3)关系 RInverRole(RoleID,InverseRoleID)描述元模型中的 关联。其中,RoleID 作为主键标识角色;InverseRoleID 给出 与该角色共同构成关联的逆角色,它作为可选键可以保证每 个角色只参与一个关联。它们的合法性由引自 RRole 的外键约 束保证。 3.4 实例的关系模型 元模型的实例(对象、属性实例和角色实例)可以用下面 这些关系描述: (1)关系 RObject(ObjectID,ClassID)描述模型中的对象。其 中,ObjectID 作为主键标识对象;ClassID 给出该对象的元模 型(类),其合法性由引自 RClass 的外键约束保证。 (2)关系 RAttributeProperty(PropertyID,AttributeID,ObjectID, ValueID)描述模型中的属性实例。其中,PropertyID 作为主键 标识属性实例;AttributeID 表示它的类型;ObjectID 表示它 所属的对象;ValueID 指向它的具体数值。后 3 个字段的合法 性分别由引自 RAttribute、RObject 和 RSimpleValue 的外键约束保证。 为保证每个属性在一个对象中只有一个实例,需要 AttributeID 和 ObjectID 构成一个复合的可选键。该关系结合 关系 RSimpleValue 可以实现函数 FValue 的求值。 (3)关系 RRoleProperty(PropertyID,RoleID,ObjectID)记录模 型中的角色实例。其中,PropertyID 作为主键标识角色实例; RoleID 表示它的类型;ObjectID 表示它所从属的对象。后两 者的合法性由引自 RRole 和 RObject 的外键约束保证。 (4)RInverseProperty(PropertyID,InversePropertyID)描述模型 中的关联实例。其中,PropertyID 作为主键标识角色实例; InversePropertyID 给出与它共同构成关联的角色实例,它作 为可选键以保证一个角色只参与一个关联。它们的合法性均 由引自 RRoleProperty 的外键约束保证。 3.5 论域的关系模型 逻辑模型中的论域包括了所有的类、属性、角色、数据 类型、属性和角色的实例、简单数值。基于这些关系,可以 构造关系 RElement(ElementID,ElementType)表示论域。其中, ElementID 用于标识建模元素,其取值与关系 RDataType、 RSimpleValue、RClass、RAttribute、RRole、RObject、RAttributeProperty 和 RRoleProperty 的主键相同;ElementType 表示建模元素的类型, 如键值来自关系 RDataType,那么取值同该关系中的 TypeID, 如键值取自 RRole,那么取值同该关系中的 RoleType,对于来 自其他关系的键值,该字段可以分别取对应的关系名。为保 证 ElementID 满足主键约束,要求构成该关系的不同关系中 的主键取值不重复,这可以通过给不同关系主键的高位分配 不同值来实现。该关系可以实现与 ElementType 取值对应的 谓词判定,如谓词 PClass 可判定如下: Card ( ) 1 (σ ($1 ) ($2 Class) Element =∧ = x R ) = (1) 3.6 基于逻辑关系的函数计算 对于部分不能直接求值的函数,需要构造相应的逻辑关 系来辅助求值,研究如下:
第37卷第8期 柳文,柳明:CM逻辑模型的关系实现 子 (I)为对函数FName求值,构造逻辑关系 (4)对象必须具有元模型中规定的属性实例。引入辅助 Rme(ElementID,Name)=Tsisa(Rgoe )U 关系 7sis2(RArbue )U 7s1.2(RpuaType )U Rcs (2) R,(ObjectlD,AuributelD)=元s1,s(osa-s4(Rotc×RAuribue) 表示建模元素与其名称之间的关系。利用它可以实现函数 R,(ObjectlD,AuributelD)=元3Ly(Cs-ss(Rsa×Ruo) FName的求值。 分别表示元模型定义中每个对象应该具有的属性和模型中实 (2)为计算函数FContainet,构造逻辑关系 例化了的属性。利用它们,由约束 Rcomine (ContainerID,MemberID)= Card(R-R3)=0 (11a) s31(RAbncopery ss1(RAmbue U (3) 可以保证属性实例合法,由约束 7s3si(RgaleProper U7s3si(Rgole) Card(R-R3)=0 (11b) 表示属性(属性实例)和角色(角色实例)与类(对象)之间的关 可以保证对象具有了所有合法的属性实例。 系。利用它可对函数FComtainer求值。 (5)对象所承担的角色必须符合元模型中的上(下)限的要 (3)为计算函数FMea,构造逻辑关系 求。定义函数 R (MetaElementlD,ElementlD)= F(o6seiD,goleD)兰 7s12(Roee)Uss2(RgolePopeny )U (4) πs1.s2(RAtributePropery) Card(oaasnhauohwisg(RgaxRdtetne) 表示元模型和它的实例之间的关系。利用它可以实现函数 计算某个对象的指定角色的维度,据此可以对模型进行验证。 FMea的求值。 (6)属性实例必须有一个合法的数值(简单数值)。构造辅 (4)为对函数Finverse求值,构造逻辑关系 助关系 R(ElementlD,InverseElementlD)= R.(ArtributelD,ValueTypelD)=Ts(s(RAmbex RyeU 元3L,2(RimveneRole)Ur3Ls(RinverePop) (5) TsLy(Cs4kss(Rri×RcIr) 表示存在互逆关系的建模元素。利用它可以实现函数FInverse Rs(AttributeID,ValueTypelD)= 的求值。 T2,s(C4ass(RribucPoper×RsmleValue) 4棋型约束的关系表示 分别表示元模型中定义的属性-属性值模式和模型中实际存 在关系模型的定义中,已经以键的形式实现了逻辑模型 在的模式。利用它们,约束可以表示为: 中的大部分约束。针对剩下的约束,可以定义相应的逻辑关 Card(R3-R3)=0 (12) 系,并将逻辑约束表示为对这些逻辑关系的势约束。需要指 (7)每个角色实例必须与另一个角色实例构成一个合法 出的是,本文给出的约束表示方式并不是唯一的,同时,为 的关联。由 了能够以最基本的关系运算的形式给出约束,本文的实现也 Card(不(Rgolepopenty)-Ti(Riveopn》=0 (13) 不是最优的。本文不讨论所有的约束,只是以其中的7个例 保证每个角色都参与了一个关联。由 子介绍约束实现的思路。 (14) (1)类和类之间不能直接或间接的互为子(父)类。该约束 Card(Csa-s3 (SIS4)(Rivanseropety×Rerseopeny)=0 的等价形式为: 可以保证构成关联的角色实例满足互逆关系。为验证关联的 Card(g-sws-s4(RExteo×RExtensic)》=0 (6) 模式合法,引入辅助关系 (2)在角色之间定义的关联必须合法。由约束 Card(o6I-4h2as(Rimvensek ole×RimvereRole))=0 (7) R(RolelD,InverseRolelD)=TssT 0s1-s32- 可以保证构成关联的2个角色互逆。引入逻辑关系 R(RoleType,InverserRoleType)= 表示模型中所有关联实例所对应的模式,由 T37s(CS1s3S2-s(RImverseRole×Rgole×RRak)) Card(R-RimenseRale)=0 (15) 可以判断模式的合法性。 表示模型中存在的所有关联模式,然后由约束 R-(Simple Role,SimpleRole)- 5DAF数据查询接口的关系实现 Card(ContainerRole,MemberRole)- =0 (8) EC61970中CIS定义的模型访问接口包括4类:基于 (MemberRole,ContainerRole) DAFI阿的模型访问;对DAF的扩展(GDA),支持模型的修改 可以保证所有的模式均合法。 和带过滤的查询;基于DAIS的大容量高速数据访问;基于 (3)扩展类型的基类型必须是原生类型。约束 HDAIS的历史数据访问.其中,DAF是上述所有接口的基础, 元31(C3-xeTye(RDuyp))- 因此,本文以DAF为例讨论接口的关系实现。讨论的目的是 Card =0 (9) 给出一个查询的关系实现,没有充分考虑实现的优化。 s(RBaseType) 5.1 接口get values 可保证每一个扩展类型有一个基类型。由 该查询接口定义如下: Ts(o0.s(Ruype×RTe- ResourceDescription get values( Card (StringType)-(BoolType)- =0 (10) in ResourcelD resource, (ComplexType)-(FloatType)- in PropertySequence properties) (IntegerType) raises(UnknownResource,QueryError); 可以保证扩展类型的基类型都是原生类型。 它用于查询描述一个资源(resource,标识一个对象)的一 C1994-201I China Academic Journal Electronic Publishing House.All rights reserved.http://www.cnki.net
第 37 卷 第 8 期 45 柳 文,柳 明:CIM 逻辑模型的关系实现 (1)为对函数 FName 求值,构造逻辑关系 Name $1,$2 Role $1,$2 Attribute $1,$2 DataType Class ( , ) () ()( ) R ElementID Name R R RR π π π = ∪ ∪ ∪ (2) 表示建模元素与其名称之间的关系。利用它可以实现函数 FName 的求值。 (2)为计算函数 FContainer,构造逻辑关系 Container $3,$1 AttributeProperty $3,$1 Attibute $3,$1 RoleProperty $3,$1 Role ( ,) ( ) () ( ) () R ContainerID MemberID R R R R π π π π = ∪ ∪ ∪ (3) 表示属性(属性实例)和角色(角色实例)与类(对象)之间的关 系。利用它可对函数 FContainer 求值。 (3)为计算函数 FMeta,构造逻辑关系 Meta $1,$2 Object $1,$2 RoleProperty $1,$2 AttributeProperty ( ,) () ( ) ( ) R MetaElementID ElementID R R R π π π = ∪ ∪ (4) 表示元模型和它的实例之间的关系。利用它可以实现函数 FMeta 的求值。 (4)为对函数 FInverse 求值,构造逻辑关系 Inverse $1,$2 InverseRole $1,$2 InverseProperty (, ) ( )( ) R ElementID InverseElementID π π R R = ∪ (5) 表示存在互逆关系的建模元素。利用它可以实现函数 FInverse 的求值。 4 模型约束的关系表示 在关系模型的定义中,已经以键的形式实现了逻辑模型 中的大部分约束。针对剩下的约束,可以定义相应的逻辑关 系,并将逻辑约束表示为对这些逻辑关系的势约束。需要指 出的是,本文给出的约束表示方式并不是唯一的,同时,为 了能够以最基本的关系运算的形式给出约束,本文的实现也 不是最优的。本文不讨论所有的约束,只是以其中的 7 个例 子介绍约束实现的思路。 (1)类和类之间不能直接或间接的互为子(父)类。该约束 的等价形式为: Card 0 (σ ($2 $3) ($1 $4) Extension Extension =∧= ( ) R R× =) (6) (2)在角色之间定义的关联必须合法。由约束 Card ( ) 0 (σ ($1 $4) ($2 $3) InverseRole InverseRole =∧≠ R R× =) (7) 可以保证构成关联的 2 个角色互逆。引入逻辑关系 ( ) 1 $7,$12 ($1 $3) ($2 $8) nverseRole Role Role (, ) ( ) I R RoleType InverserRoleType π σ =∧= R RR = × × 表示模型中存在的所有关联模式,然后由约束 1 (,) Card ( , ) 0 (, ) R SimpleRole SimpleRole ContainerRole MemberRole MemberRole ContainerRole ⎛ ⎞ − − ⎜ ⎟ − = ⎝ ⎠ (8) 可以保证所有的模式均合法。 (3)扩展类型的基类型必须是原生类型。约束 $1 $3 ExtendType DataType ( ) $1 BaseType ( ) Card 0 ( ) R R π σ π = ⎛ ⎞ − ⎜ ⎟ = ⎝ ⎠ (9) 可保证每一个扩展类型有一个基类型。由 $5 $2 $3 BaseType DataType ( ) ( ) ( )( ) Card 0 ( )( ) ( ) R R StringType BoolType ComplexType FloatType IntegerType π σ = ⎛ ⎞ × − ⎜ ⎟ − − = − − ⎝ ⎠ (10) 可以保证扩展类型的基类型都是原生类型。 (4)对象必须具有元模型中规定的属性实例。引入辅助 关系 R ObjectID AttributeID R R 2 $1,$3 $2 $4 Object Attribute (, ) ( ) = × π σ( ) = R ObjectID AttributeID R R 3 $1,$4 $1 $5 Object AttributeProperty (, ) ( ) = × π σ( = ) 分别表示元模型定义中每个对象应该具有的属性和模型中实 例化了的属性。利用它们,由约束 Card( ) 0 R R 2 3 − = (11a) 可以保证属性实例合法,由约束 Card( ) 0 R R 2 3 − = (11b) 可以保证对象具有了所有合法的属性实例。 (5)对象所承担的角色必须符合元模型中的上(下)限的要 求。定义函数 ( ) ObjectID RoleID ObjectID RoleID ($1 x ) ($4 ) ($1 $5) Object RoleProperty ( ,) Card ( ) x Fx x σ = ∧= ∧= R R× 计算某个对象的指定角色的维度,据此可以对模型进行验证。 (6)属性实例必须有一个合法的数值(简单数值)。构造辅 助关系 ( ) ( ) 4 $1,$6 $4 $5 Attribute BaseType $1,$4 $4 $5 Attribute BaseType (, ) ( ) ( ) R AttributeID ValueTypeID R R R R π σ π σ = ≠ = × × ∪ ( ) 5 $2,$6 $4 $5 AttributeProperty SimpleValue (, ) ( ) R AttributeID ValueTypeID π σ = R R = × 分别表示元模型中定义的属性-属性值模式和模型中实际存 在的模式。利用它们,约束可以表示为: Card( ) 0 R R 5 4 − = (12) (7)每个角色实例必须与另一个角色实例构成一个合法 的关联。由 Card ( ) ( ) 0 (π π $1 RoleProperty $1 InverseProperty R R − ) = (13) 保证每个角色都参与了一个关联。由 Card ( ) 0 (σ ($2=$3) ($1 $4) InverseProperty InverseProperty ∧ ≠ R R× =) (14) 可以保证构成关联的角色实例满足互逆关系。为验证关联的 模式合法,引入辅助关系 InverseProperty 6 $4,$7 ($1 $3) ($2 $6) RoleProperty RoleProperty (, ) R R RoleID InverseRoleID R R π σ =∧= ⎛ ⎞ ⎛ ⎞ × ⎜ ⎟ ⎜ ⎟ = × ⎜ ⎟ ⎜ ⎟ ⎝ ⎠ ⎝ ⎠ 表示模型中所有关联实例所对应的模式,由 Card( ) 0 R R 6 InverseRole − = (15) 可以判断模式的合法性。 5 DAF 数据查询接口的关系实现 IEC61970 中 CIS 定义的模型访问接口包括 4 类:基于 DAF[6]的模型访问;对 DAF 的扩展(GDA),支持模型的修改 和带过滤的查询;基于 DAIS 的大容量高速数据访问;基于 HDAIS 的历史数据访问。其中,DAF 是上述所有接口的基础, 因此,本文以 DAF 为例讨论接口的关系实现。讨论的目的是 给出一个查询的关系实现,没有充分考虑实现的优化。 5.1 接口 get_values 该查询接口定义如下: ResourceDescription get_values( in ResourceID resource, in PropertySequence properties) raises( UnknownResource, QueryError); 它用于查询描述一个资源(resource,标识一个对象)的一
46 计算机工程 2011年4月20日 组特性(properties,.即属性和角色实例)。若资源无定义,那 查询异常的判断方式如下: 么抛出UnknownResource意外;资源有定义但某个特性不是 (I)异常UnknownResource判断与前面相同。 用于描述该资源时,抛出QueryError意外。 (2)当associ中的property参数不是角色,即 考虑查询的合法性,意外可以判定如下: Card(sIpope(RimeeRale)=0 (19) (I)resource没有指向一个对象,即下式满足时抛出意外 满足时,抛出UnknownAssociation异常。 UnknownResource: (3)异常QueryError由2种情况引起:associ中的property Card(sI-roure Robiea)=0 (16 参数是一个角色,但是其参与的关联不是source对象的合法 (2)为判断意外QueryError,构造辅助关系: 关联;properties指定的特性不是source对象的合法属性。其 R(AttributelD)=7ss)(Rotjet x RAumbue) 中后者在前面已经介绍,下面考虑前者。定义辅助关系 R(RolelD)=Tg(Csas4it-ou,)(R5et×Rgole)) R:(RolelD,.ClassID)=元sL(Rae)Urg(cs-s(Reat×RinerseRole) popes 表示类与角色(包括直接属于该类的角色和与该类的角色组 R(PropertylD)= 成关联的角色)的关联模式。利用该关系,下式满足时抛出 其中,R,和Rg分别表示对象元模型(类)中定义的属性和角色; Query Error意外: 关系Rg表示要查询的特性,由参数properties的元素构造。 Card((RotjtR=0 (20) 式(17)不满足时抛出意外: 合法的查询可实现如下: Card(R-Rs-R)=0 (17 (I)针对Inverse取false的情况,构造辅助关系 对于合法的查询,查询结果可构造如下: s-S5-sourceM(S4-property 6) (1)构造辅助关系 Rs(PropertylD)=Is 气(Robct×Rgolepey×Riversco) Ro(PropertyID,Value)= 表示查询中要求的角色实例。针对Inverse取true的情况,首 (s1-SS-reuce(S-10)S1-EnuType) 先构造辅助关系: R(ProperID,InversePropertylD)= R (PropertylD,ValuelD)= Rob×Rgalepropety -e-7S-S10(S11-nmType) s3.,7 (s1-55-urce )S3-56) RimversePropety 不可() 此时,查询中要求的角色实例可表为: R(PropertyID,PropertyID)=Ts3ss (sss(Rotjca x RRoleope) Ris(PropertyID)=Ts(G(2-53s-popemy)(Risx Rgoleprope) 其中,R10表示非枚举属性和它的属性取值;R11表示枚举属 (2)构造辅助关系 性和它取值的D;R2表示角色特性,它的D和它的值是一 R,(ObjectlD)=元u(os-s(R:×Rgolepo) 致的。上述关系的并 表示这些角色实例所属的对象。 R3 RIoURUR2 (18) (3)利用type参数过滤获得需要查询的对象 就是所需要的查询结果。 Rs(ObjectlD)=πsi(口si-2AM5-pe,(R,×Roje)U (2)用R1a中的每个元组填充Property Value结构,将它们 Ts1(C(s2-uwMs3-pe(R,×RExtension) 复合成Property ValueSequence数组。 (3)将Property ValueSequence数组与resource复合形成 对于不需要过滤的情况,直接取R18=R17。 ResourceDescription结构作为查询结果。 (4)针对关系R1g中的每个对象分别调用接口get values 该实现将角色特性纳入了返回结果,实际应用中,角色 复合获得的结果以构成返回结果。 特性可直接用接口get_related_values查询。 上述实现假定不能采用该接口查询枚举性质的属性,因 5.2接口get_extent_.values 为接口get_values已经可以确定枚举属性的值(即一个预先定 该查询用于获得描述一个类的所有实例的一组指定特性 义好的对象)。 的值。其查询合法性判断和接口的实现与接口get_values类 5.4接口get_descendent_values 似,不展开介绍。 该接口从一组资源出发,通过一系列的关联定位到目标 接口get_related_values 资源,并返回这组目标资源的指定属性值,它是前面所有查 5.3 该接的定义如下: 询的一种推广。限于篇幅,本文不给出其完整实现,只是概 述其实现步骤: ResourceDescriptionlterator get related values( in PropertySequence properties, (I)给资源组source、关联association和叠代计数器 in Association assoc, counter分别赋值sources、path[O](表示path数组中的第I个 in ResourcelD source) 元素)和0。 raises(UnknownResource,UnknownAssociation,QueryError ) (2)由source和association定位到另一组资源new 它用于获得与资源(sourc©)存在某种关联(结构 source(类似get_related_values,只是不需要查询资源的特性 association中的property成员)的所有资源的指定特性 值),Counter++。 (properties)。查询对象的确定需要参考结构association的 (3)Path[Counter]为空转步骤(4),否则给source和 inverse成员的取值。结构association中的type用于对被查询 association分别赋值new_source和path[counter]。 对象过滤(在type非空的情况下,要求被查询对象属于ype (4)对source查询指定的特性值并返回结果。 指定的类或其广义的扩展子类)。 (下转第49页) C1994-201I China Academic Journal Electronic Publishing House.All rights reserved.http://www.cnki.net
46 计 算 机 工 程 2011 年 4 月 20 日 组特性(properties,即属性和角色实例)。若资源无定义,那 么抛出 UnknownResource 意外;资源有定义但某个特性不是 用于描述该资源时,抛出 QueryError 意外。 考虑查询的合法性,意外可以判定如下: (1)resource 没有指向一个对象,即下式满足时抛出意外 UnknownResource: Card ( ) 0 ( ) σ $1 resource Object = R = (16) (2)为判断意外 QueryError,构造辅助关系: R AttributeID R R 7 $3 ($2 $4) ($1 resource) Object Attribute () ( ) = × π σ( ) = ∧= R RoleID R R 8 $3 ($2 $4) ($1 resource) Object Role () ( ) = × π σ( ) =∧= ( ) [ ] 1 9 0 () ( ) Len properties i R PropertyID properties i − = = ∪ 其中,R7 和 R8 分别表示对象元模型(类)中定义的属性和角色; 关系 R9 表示要查询的特性,由参数 properties 的元素构造。 式(17)不满足时抛出意外: Card 0 (RRR 987 −− =) (17) 对于合法的查询,查询结果可构造如下: (1)构造辅助关系 ( ) 10 ($1 $5 resource) ($6 $7) ($8 $10) ($11 EnumType) $3,$9 Object AttributeProperty SimpleValue DataType R PropertyID Value ( ,) RR R R σ π == ∧ = ∧ = ∧ ≠ = ⎛ ⎞ ⎜ ⎟ × ×× ⎝ ⎠ ( ) 11 ($1 $5 resource) ($6 $7) ($8 $10) ($11 EnumType) $3,$7 Object AttributeProperty SimpleValue DataType R PropertyID ValueID ( ,) RR R R σ π == ∧ = ∧ = ∧ = = ⎛ ⎞ ⎜ ⎟ × ×× ⎝ ⎠ R PropertyID PropertyID R R 12 $3,$3 $2 $5 Object RoleProperty (,) ( ) = × π σ( = ) 其中,R10 表示非枚举属性和它的属性取值;R11 表示枚举属 性和它取值的 ID;R12 表示角色特性,它的 ID 和它的值是一 致的。上述关系的并 R13 10 11 12 = RRR ∪ ∪ (18) 就是所需要的查询结果。 (2)用 R13 中的每个元组填充 PropertyValue 结构,将它们 复合成 PropertyValueSequence 数组。 (3)将 PropertyValueSequence 数组与 resource 复合形成 ResourceDescription 结构作为查询结果。 该实现将角色特性纳入了返回结果,实际应用中,角色 特性可直接用接口 get_related_values 查询。 5.2 接口 get_extent_values 该查询用于获得描述一个类的所有实例的一组指定特性 的值。其查询合法性判断和接口的实现与接口 get_values 类 似,不展开介绍。 5.3 接口 get_related_values 该接的定义如下: ResourceDescriptionIterator get_related_values( in PropertySequence properties, in Association assoc, in ResourceID source ) raises( UnknownResource, UnknownAssociation, QueryError ); 它用于获得与资源 (source) 存在某种关联 ( 结 构 association 中 的 property 成 员 ) 的所有资源的指定特性 (properties)。查询对象的确定需要参考结构 association 的 inverse 成员的取值。结构 association 中的 type 用于对被查询 对象过滤(在 type 非空的情况下,要求被查询对象属于 type 指定的类或其广义的扩展子类)。 查询异常的判断方式如下: (1)异常 UnknownResource 判断与前面相同。 (2)当 associ 中的 property 参数不是角色,即 Card ( ) 0 (σ $1 property InverseRole = R ) = (19) 满足时,抛出 UnknownAssociation 异常。 (3)异常 QueryError 由 2 种情况引起:associ 中的 property 参数是一个角色,但是其参与的关联不是 source 对象的合法 关联;properties 指定的特性不是 source 对象的合法属性。其 中后者在前面已经介绍,下面考虑前者。定义辅助关系 R RoleID ClassID R R R 14 $1,$2 $8,$2 $1 $7 Role InverseRole ( , ) () ( ) = × π πσ Role ∪ ( ) = 表示类与角色(包括直接属于该类的角色和与该类的角色组 成关联的角色)的关联模式。利用该关系,下式满足时抛出 QueryError 意外: Card ( ) 0 (σ ($1 source) ($2 $4) ($3 property) Object 14 = ∧=∧= R R× =) (20) 合法的查询可实现如下: (1)针对 Inverse 取 false 的情况,构造辅助关系 ( ) ( ) ($1 $5 source) ($4 property) ($3 $6) 15 $7 Object RoleProperty InverseProperty R PropertyID RR R σ π ⎛ ⎞ == ∧ = ∧ = = ⎜ ⎟ × × ⎝ ⎠ 表示查询中要求的角色实例。针对 Inverse 取 true 的情况,首 先构造辅助关系: 16 Object RoleProperty $3,$7 ($1 $5 source) ($3 $6) InverseProperty R ProperID InversePropertyID (, ) R R R π σ == ∧ = = ⎛ ⎞ ⎛ ⎞ × × ⎜ ⎟ ⎜ ⎟ ⎝ ⎠ ⎝ ⎠ 此时,查询中要求的角色实例可表为: R PropertyID R R 15 $4 ($2 $3) ($4 property) 16 RoleProperty () ( ) = × π σ( =∧= ) (2)构造辅助关系 R ObjectID R R 17 $4 $1 $2 15 RoleProperty () ( ) = × π σ( = ) 表示这些角色实例所属的对象。 (3)利用 type 参数过滤获得需要查询的对象 ( ) ( ) 18 $1 ($1 $2) ($3 type) 17 Object $1 ($2 $4) ($3 ype) 17 Extension () ( ) ( ) t R ObjectID R R R R π σ π σ =∧= =∧= = × × ∪ 对于不需要过滤的情况,直接取 R18=R17。 (4)针对关系 R18 中的每个对象分别调用接口 get_values, 复合获得的结果以构成返回结果。 上述实现假定不能采用该接口查询枚举性质的属性,因 为接口 get_values 已经可以确定枚举属性的值(即一个预先定 义好的对象)。 5.4 接口 get_descendent_values 该接口从一组资源出发,通过一系列的关联定位到目标 资源,并返回这组目标资源的指定属性值,它是前面所有查 询的一种推广。限于篇幅,本文不给出其完整实现,只是概 述其实现步骤: (1)给资源组 source、关联 association 和叠代计数器 counter 分别赋值 sources、path[0](表示 path 数组中的第 1 个 元素)和 0。 (2)由 source 和 association 定位到另一组资源 new_ source(类似 get_related_values,只是不需要查询资源的特性 值),Counter++。 (3)Path[Counter] 为空转步骤 (4) ,否则给 source 和 association 分别赋值 new_source 和 path[counter]。 (4)对 source 查询指定的特性值并返回结果。 (下转第 49 页)
第37卷第8期 钟将,孙启干,李静:基于归一化向量的文本分类算法 9 表1 TanCorpV1.0数据集上的F1值 (%) 95 类别 kNN(=30) NV(=6,i=0.3) ONV-INN 人才 84.30 87.63 21.21 85 体育 97.22 98.33 39.93 卫生 84.69 90.76 39.65 娱乐 94.86 96.09 23.93 房产 94.06 97.98 65.99 70 数有 86.02 86.45 3.08 汽车 95.56 95.70 3.15 0 23456789 电脑 85.27 91.23 40.46 归一化调权参数B 科技 79.63 87.25 37.41 财经 83.13 87.31 24.78 图3=2时F1值随调权参数B的变化曲线 Macro-FI 88.76 92.16 30.25 由图2和图3可以得出结论: 表2Sog0u数据集上的F1值 (%) (1)=2选取1%的特征词时,宏平均F1值已经达到 类别 kNN(=30) NV=6,=0.2) ONV-ANN 84.5%,说明NV分类算法特征选取的精确有效性。 78.01 83.67 25.74 体有 95.36 96.97 34.70 (2)随着降维阀值1的增大,宏平均F1值先不断升高, 健康 77.71 84.06 28.49 当=0.2时,F1值几乎达到最高值,随着1的再次不断增大, 军事 85.47 92.90 51.14 招聘 71.32 84.52 46.03 FI趋于稳定。=5或6时,取得最优宏平均FI。 数有 79.84 82.96 15.48 文化 62.19 72.82 28.11 5 结束语 旅游 68.34 85.13 53.03 文本分类系统的目的是对文本集进行有序组织,把相似 财经 77.11 87.13 43.77 的、相关的文本组织在一起。它作为知识的组织工具,为信 Macro-FI 78.04 86.06 36.52 息检索提供了更高效的搜索策略和更准确的查询结果。本文 由表1和表2可以得出结论:(1)NV算法的分类精度明 通过归一化向量思想提出NV文本分类算法。 显优于kNN算法。NV算法在TanCorpVI.O数据集上宏平均 实验结果表明:NV文本分类算法能够取得很好的分类 F1值可以达到92%以上,在S0gou数据集上达到86%。 精度;在时间性能上,NV算法仅使用kNN算法约1/IO的时 (2)在2套数据集上NV分类算法F1值均优于kNN算法,小 间。下一步将对NV分类算法做进一步研究。 类上最大的优化率甚至可以达到50%以上。NV分类器在 2套数据集上宏平均F1优于kNN分类器30%以上。 实验2参数变化测试实验 参考文献 在TanCorpV1.0数据集上改变调权参数B和降维阚值1 [ Sebastiani F.Machine Learning in Automated Text Categorization[J] 的实验结果如图2、图3所示。 ACM Comput.Surv.,2002.34(1):1-47. [2]林森,唐发根.基于L0g似然比的特征选择算法)计算机 92 工程,2009,35(19)56-58,61. 91 0 [3] 徐燕,李锦涛,王斌,等.基于区分类别能力的高性能特 89 征选择方法U.软件学报,2008,19(182-89 88 [4]Salton G The SMART Retrieval System:Experiments in Automatic 87 86 Documents Processing[M].New York,USA:Prentice Hall,1971. [5】谭松波,王月粉.中文文本分类语料库-TanCorpV1.0DB/OL] 81.0010.20304050.6Q708Q.91.01.1 (2010-04-10).http://www.searchforum.org.cn/tansongbo/corpus. 降维国值: htm 图2 宏平均F1值随调权参数B和降维侧值1变化的曲线 编辑顾逸斐 (上接第46页) 6结束语 参考文献 本文针对CM的逻辑模型定义了与它有同样表示能力 []袁金平,鲍爱华,姚莉.语义Wb技术及其逻辑基础) 的关系模型,对于逻辑模型中以理论形式(一致的句子集合) 计算机工程,2008,34(24):194-196. 给出的约束,给出了与它们等价的关系表达式。针对 [2]胡继芳,王宁.EC61970与新一代EMS数据库管理系 统)电力系统自动化,2000,2424)38-40. IEC61970所采用的数据访问接口DAF,在上述关系模型中给 [3)张慎明,卜凡强,姚建国,等.遵循EC61970标准的实时数据 出了基于关系代数的实现。 库管理系统[.电力系统自动化,2002,26(24:26-30. 本文的研究表明,通过建立与逻辑模型等价的关系模型, [4王晓波,潘纪元.电力调度中心统一数据平台的设计.电力 可以在保持逻辑模型丰富的表达能力的基础上,利用关系代 系统自动化,2006,30(22):89-92 数有效提高查询的效率和确定性。需要指出的是,本文的工 [5]Ullman J D.Widom J.A First Course in Database System[M]. 作主要是理论层面的,因此,对于优化考虑不多,在数据查 [S.1.]:Prentise Hall,1997. 询的实现中,优化是必须考虑的问题。 编辑索书志 C1994-201I China Academic Journal Electronic Publishing House.All rights reserved.http://www.cnki.net
第 37 卷 第 8 期 49 钟 将,孙启干,李 静:基于归一化向量的文本分类算法 表 1 TanCorpV1.0 数据集上的 F1 值 (%) 类别 kNN(k=30) NV(β=6, λ=0.3) ONV-kNN 人才 84.30 87.63 21.21 体育 97.22 98.33 39.93 卫生 84.69 90.76 39.65 娱乐 94.86 96.09 23.93 房产 94.06 97.98 65.99 教育 86.02 86.45 3.08 汽车 95.56 95.70 3.15 电脑 85.27 91.23 40.46 科技 79.63 87.25 37.41 财经 83.13 87.31 24.78 Macro-F1 88.76 92.16 30.25 表 2 Sogou 数据集上的 F1 值 (%) 类别 kNN(k=30) NV(β=6, λ=0.2) ONV-kNN IT 78.01 83.67 25.74 体育 95.36 96.97 34.70 健康 77.71 84.06 28.49 军事 85.47 92.90 51.14 招聘 71.32 84.52 46.03 教育 79.84 82.96 15.48 文化 62.19 72.82 28.11 旅游 68.34 85.13 53.03 财经 77.11 87.13 43.77 Macro-F1 78.04 86.06 36.52 由表 1 和表 2 可以得出结论:(1)NV 算法的分类精度明 显优于 kNN 算法。NV 算法在 TanCorpV1.0 数据集上宏平均 F1 值可以达到 92%以上,在 Sogou 数据集上达到 86%。 (2)在 2 套数据集上 NV 分类算法 F1 值均优于 kNN 算法,小 类上最大的优化率甚至可以达到 50%以上。NV 分类器在 2 套数据集上宏平均 F1 优于 kNN 分类器 30%以上。 实验 2 参数变化测试实验 在 TanCorpV1.0 数据集上改变调权参数 β 和降维阈值 λ 的实验结果如图 2、图 3 所示。 图 2 宏平均 F1 值随调权参数 β 和降维阈值 λ 变化的曲线 图 3 λ=2 时 F1 值随调权参数 β 的变化曲线 由图 2 和图 3 可以得出结论: (1)β=2 选取 1%的特征词时,宏平均 F1 值已经达到 84.5%,说明 NV 分类算法特征选取的精确有效性。 (2)随着降维阈值 λ 的增大,宏平均 F1 值先不断升高, 当 λ=0.2 时,F1 值几乎达到最高值,随着 λ 的再次不断增大, F1 趋于稳定。β=5 或 6 时,取得最优宏平均 F1。 5 结束语 文本分类系统的目的是对文本集进行有序组织,把相似 的、相关的文本组织在一起。它作为知识的组织工具,为信 息检索提供了更高效的搜索策略和更准确的查询结果。本文 通过归一化向量思想提出 NV 文本分类算法。 实验结果表明:NV 文本分类算法能够取得很好的分类 精度;在时间性能上,NV 算法仅使用 kNN 算法约 1/10 的时 间。下一步将对 NV 分类算法做进一步研究。 参考文献 [1] Sebastiani F. Machine Learning in Automated Text Categorization[J]. ACM Comput. Surv., 2002, 34(1): 1-47. [2] 林 森, 唐发根. 基于 Log 似然比的特征选择算法[J]. 计算机 工程, 2009, 35(19): 56-58, 61. [3] 徐 燕, 李锦涛, 王 斌, 等. 基于区分类别能力的高性能特 征选择方法[J]. 软件学报, 2008, 19(1): 82-89. [4] Salton G. The SMART Retrieval System: Experiments in Automatic Documents Processing[M]. New York, USA: Prentice Hall, 1971. [5] 谭松波, 王月粉. 中文文本分类语料库-TanCorpV1.0[DB/OL]. (2010-04-10). http://www.searchforum.org.cn/tansongbo/corpus. htm. 编辑 顾逸斐 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (上接第 46 页) 6 结束语 本文针对 CIM 的逻辑模型定义了与它有同样表示能力 的关系模型,对于逻辑模型中以理论形式(一致的句子集合) 给出的约束,给出了与它们等价的关系表达式。针对 IEC61970 所采用的数据访问接口 DAF,在上述关系模型中给 出了基于关系代数的实现。 本文的研究表明,通过建立与逻辑模型等价的关系模型, 可以在保持逻辑模型丰富的表达能力的基础上,利用关系代 数有效提高查询的效率和确定性。需要指出的是,本文的工 作主要是理论层面的,因此,对于优化考虑不多,在数据查 询的实现中,优化是必须考虑的问题。 参考文献 [1] 袁金平, 鲍爱华, 姚 莉. 语义 Web 技术及其逻辑基础[J]. 计算机工程, 2008, 34(24): 194-196. [2] 胡继芳, 王 宁. IEC 61970 与新一代 EM S 数据库管理系 统[J]. 电力系统自动化, 2000, 24(24): 38-40. [3] 张慎明, 卜凡强, 姚建国, 等. 遵循IEC 61970 标准的实时数据 库管理系统[J]. 电力系统自动化, 2002, 26(24): 26-30. [4] 王晓波, 藩纪元. 电力调度中心统一数据平台的设计[J]. 电力 系统自动化, 2006, 30(22): 89-92. [5] Ullman J D, Widom J. A First Course in Database System[M]. [S. 1.]: Prentise Hall, 1997. 编辑 索书志