CN111506640A - 映射方法及装置 - Google Patents
映射方法及装置 Download PDFInfo
- Publication number
- CN111506640A CN111506640A CN202010315831.3A CN202010315831A CN111506640A CN 111506640 A CN111506640 A CN 111506640A CN 202010315831 A CN202010315831 A CN 202010315831A CN 111506640 A CN111506640 A CN 111506640A
- Authority
- CN
- China
- Prior art keywords
- cim
- target
- class
- node
- nodes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供映射方法及装置。方法包括:获取源端数据表;在使用计算机语言表示的目标CIM中,确定与源端数据表的名称相映射的n个类,n不小于1;n个类中每一类为目标类;根据目标CIM生成CIM子模型;其中,CIM子模型包括:目标类、目标类在目标CIM中的所有父类,目标类在目标CIM中的关联类,以及,每一父类在目标CIM中的关联类;任一目标类、父类或关联类为一个节点;相邻节点间所存在的关系由该相邻节点间的边所表征;在CIM子模型中确定与源端数据表中的字段相映射的属性;删除CIM子模型中未被映射的节点和属性,得到映射子模型;根据映射子模型生成消息模型。
Description
技术领域
本发明涉及数据处理领域,特别涉及映射方法及装置。
背景技术
公共信息模型(CIM)是用建模工具EA画的抽象模型,用于描述电力企业的所有主要对象,特别是电力运行相关的对象。CIM模型提供了一种用对象类和属性及类间关系来表示电力资源的标准方法,使得不同的电力系统之间可以通过统一的标准语言进行数据访问和信息交互。
数据服务平台是不同电力系统交互的平台,可与不同的电力系统对接,将数据按照标准格式提供给数据需求方。对于数据需求方而言,请参见图1a和图1b,其所需数据的来源方为数据源端系统,数据需求方向数据服务平台提出数据需求后,数据服务平台会获取所需的源端数据(一张或多张源端数据表,也可称为业务对象),按照CIM模型标准进行对所需源端数据进行抽取和转换并提供给数据需求方。在该过程中,针对该数据需求,需要有抽取源端数据、将源端数据转化为符合CIM模型标准要求的数据的逻辑,承载这些逻辑的是消息模型,数据服务平台是根据消息模型抽取和转化源端数据的。
数据服务平台需要为电网业务每个业务对象生成相应的消息模型,工作量巨大,然而,现有的消息模型的生成方式包括:以源端的一张数据表为业务对象,经过人工分析生成消息模型。目标,通过人工生成的消息模型只有一百多个,是电网业务的极小一部分,因此,如何自动生成消息模型成为目前要研究的课题。
发明内容
有鉴于此,本发明实施例提供映射方法及装置,以自动生成消息模型。
为实现上述目的,本发明实施例提供如下技术方案:
一种映射方法,应用于映射装置,包括:
获取业务对象所对应的源端数据表;
在使用计算机语言表示的公共信息模型CIM中,确定与源端数据表的名称相映射的n个类,n不小于1;所述n个类中每一类为目标类;所述使用计算机语言表示的CIM为目标CIM;
根据所述目标CIM生成最短路径树结构的CIM子模型;其中,所述CIM子模型包括:所述目标类、所述目标类在所述目标CIM中的所有父类,所述目标类在所述目标CIM中的关联类,以及,每一父类在所述目标CIM中的关联类;任一目标类、父类或关联类为一个节点,所述n个目标类的共同父类为所述CIM子模型的根节点;相邻节点间所存在的关系由该相邻节点间的边所表征;
在所述CIM子模型中确定与所述源端数据表中的字段相映射的属性;
删除所述CIM子模型中未被映射的节点和属性,得到映射子模型;
根据所述映射子模型生成消息模型;其中,所述消息模型包括:源端数据表的名称与目标类间的映射关系,源端数据表的字段与属性间的映射关系;所述消息模型用于:根据所述映射关系抽取源端数据,将抽取的源端数据转化为符合CIM模型要求的标准数据。
可选的,所述生成CIM子模型包括:针对所述n个目标类中的第i个目标类,逆向将所述第i个目标类的所有父类加入CIM子模型;i不小于1,不大于n;在所述目标CIM中查找与所述第i个目标类具有关联、聚合或组合关系的关联类,将查找到的关联类加入CIM子模型;在所述目标CIM中查找与目标父类具有关联、聚合或组合关系的关联类,将查找到的关联类加入CIM子模型;所述目标父类为所述所有父类中的任一父类。
可选的,若i>1,在完成将查找到的关联类加入CIM子模型后,所述生成CIM子模型还包括:检查当前得到的CIM子模型是否为连通图;若当前得到的CIM子模型不是连通图,在不连通的任意两节点间补全关系链,以使所述任意两节点相连通。
可选的,所述不连通的任意两节点包括第一节点和第二节点;所述在不连通的节点间补全关系链包括:遍历所述目标CIM,查找目标关系链;其中,任一目标关系链的起点为所述第一节点,终点为所述第二节点,或者,起点为所述第二节点,终点为所述第一节点;除起点、终点外,任一目标关系链还包括m个节点,m不小于1;任一目标关系链中相邻节点间存在的关系包括泛化、关联、聚合和组合关系中的至少一种,相邻节点间的关系决定相邻节点间边的权重值;计算查找到的各目标关系链的权重值和;选择权重值和最小的目标关系链作为最短关系链;在当前得到的CIM子模型中,补全所述最短关系链。
可选的,若相邻两节点间为泛化关系,则所述相邻两节点中的边为有向边,方向为由作为子类的节点指向作为父类的节点;若相邻两节点间为聚合或组合关系,则所述相邻两节点中的边为有向边,方向为由作为个体的节点指向作为整体的节点;若相邻两节点间为关联关系,则所述相邻两节点中的边为无向边。
可选的,存在泛化关系的相邻节点间边的权重值为a;a为正数;存在关联、聚合或组合关系的相邻节点间边的权重值为b;b为正数;a<b<2a;在任一目标关系链中,在存在M个节点构成的泛化子关系链时,若所述M个节点中任意相邻节点间有向边的方向均与路径走向相同,所述整个泛化子关系链的权重值等于所述任意相邻节点间有向边的权重值a,否则,所述整个泛化子关系链的权重值为无穷大;M不小于2,不大于m+2;所述路径走向为:由起点向终点的前进方向。
可选的,所述遍历所述目标CIM包括:以所述起点作为目标节点,访问与目标节点相邻的下一节点;若所述下一节点具有访问标记,且不是当前目标节点的上一节点,将所述下一节点以及所述下一节点在已遍历路径上的后续节点取消访问标记;将所述下一节点作为所述目标节点,访问与目标节点相邻的下一节点,直到所有和所述起点有路径相通的节点均具有访问标记。
可选的,在获取所述源端数据表之前,还包括:将抽象的公共信息模型转化为所述目标CIM;所述目标CIM包括:抽象的公共信息模型中定义的类,以及,类的直接关系属性,所述直接关系属性包括直接父类和直接关联类。
一种映射装置,包括:
获取单元,用于获取业务对象所对应的源端数据表;
第一映射单元,用于:
在使用计算机语言表示的公共信息模型CIM中,确定与源端数据表的名称相映射的n个类,n不小于1;所述n个类中每一类为目标类;所述使用计算机语言表示的CIM为目标CIM;
CIM子模型生成单元,用于:
根据所述目标CIM生成最短路径树结构的CIM子模型;其中,所述CIM子模型包括:所述目标类、所述目标类在所述目标CIM中的所有父类,所述目标类在所述目标CIM中的关联类,以及,每一父类在所述目标CIM中的关联类;任一目标类、父类或关联类为一个节点,所述n个目标类的共同父类为所述CIM子模型的根节点;相邻节点间所存在的关系由该相邻节点间的边所表征;
第二映射单元,用于:
在所述CIM子模型中确定与所述源端数据表中的字段相映射的属性;
删除所述CIM子模型中未被映射的节点和属性,得到映射子模型;
消息模型生成单元,用于:
根据所述映射子模型生成消息模型;其中,所述消息模型包括:源端数据表的名称与目标类间的映射关系,源端数据表的字段与属性间的映射关系;所述消息模型用于:根据所述映射关系抽取源端数据,将抽取的源端数据转化为符合CIM模型要求的标准数据。
可见,在本发明实施例中,基于使用计算机语言表示的CIM(目标CIM)自动生成消息模型,目标CIM可被基于计算机的映射装置所解析。在生成过程中,先根据目标CIM获取与源端数据表名称相映射的n个类(目标类),再生成包含n个目标类、目标类所有父类、目标类的关联类、父类的关联类的CIM子模型。源端数据表中的字段,可视为源端数据表名称下的属性,而CIM子模型中每一节点(类)也具有属性。数据服务平台从而可将CIM子模型中节点的属性与源端数据表中的字段(表征源端数据表的属性)相映射。之后,再删除未被映射的节点和属性,得到映射子模型。最后根据映射子模型生成消息模型的消息模型,消息模型可用于抽取源端数据,将抽取的源端数据转化为符合CIM模型要求的标准数据,这样,利用映射装置执行上述映射方法可实现自动生成消息模型的目的。
附图说明
图1a和图1b为数据服务平台向数据需求方提供标准数据的示意图;
图2为深度优先遍历连通图的示意图;
图3为本发明实施例提供的映射装置的一种示例性结构;
图4为本发明实施例提供的目标CIM的示意图;
图5为本发明实施例提供的映射方法的一种示例性流程;
图6a为本发明实施例提供的CIM子模型的示例图;
图6b为本发明实施例提供的XML文档的示意图;
图7为本发明实施例提供的生成CIM子模型的一种示例性流程;
图8a为本发明实施例提供的将两个类加入CIM子模型的示意图;
图8b为本发明实施例提供的i=1时加入父类后的CIM子模型的示意图;
图8c为本发明实施例提供的i=1时加入关联类后的CIM子模型的示意图;
图9为本发明实施例提供的在不连通的节点间补全关系链的示例性流程;
图10a为本发明实施例提供的CIM子模型的另一示意图;
图10b为本发明实施例提供的关系链示意图;
图11为本发明实施例提供的连通图示意图。
具体实施方式
为了引用和清楚起见,下文中使用的技术名词、简写或缩写总结如下:
CIM模型:公共信息模型,是使用建模工具EA画的抽象模型,用于描述电力企业的所有主要对象,特别是电力运行相关的对象。CIM模型提供了一种用对象类和属性及类间关系来表示电力资源的标准方法,使得不同的电力系统之间可以通过统一的标准语言进行数据访问和信息交互;
国家电网公司结合实际业务和运行系统的数据现状,在CIM模型基础上做了扩展,形成SG-CIM模型,其中SG-CIM4.0版本的模型涵盖了国网主营核心业务和系统数据;
数据服务平台:数据服务平台基于SG-CIM4.0,将分散于各电力系统的数据进行去重、转换和整合,将数据按照标准格式提供;
消息模型:数据需求方向数据服务平台提出数据需求后,数据服务平台会获取所需的源端数据(一张或多张源端数据表,也可称为业务对象),按照CIM模型标准对所需源端数据进行抽取和转换,并提供给数据需求方。在该过程中,针对该数据需求,需要有抽取源端数据、将源端数据转化为符合CIM模型标准要求的数据的逻辑,承载这些逻辑的是消息模型,数据服务平台是根据消息模型抽取和转化源端数据的。此外,消息模型还用于数据需求方解析其获得的消息;
消息:指在应用间传送的数据。对于数据服务平台来说,消息包含具体数据和元数据;
XML:可扩展标记语言,消息模型基于XML语言,可以写为XML文档;
类:类是对象的抽象,对象是客观存在且可以相互区分的事物。对象可以是具体的人、事、物,也可以是抽象的规则、计划或事件。如:电力变压器、组织、客户等;
属性:属性用于描述类。如某一类为电气设备,电气设备的额定电压、设备编号等为其属性,用于描述电气设备这一类;
对象集:对象集是在业务上同一类对象的集合,比如站内变压器、站内隔离开关都是对象,都属于站内设备这个对象集;
关系:类之间的关系通常是指不同对象集之间的关系,有一对一,一对多和多对多关系。关系的类型有泛化(其反向关系是继承)、关联、聚合、组合等。在泛化关系中,子类可以继承父类的属性和关系,如电力变压器继承导电设备的属性和关系;
图:graph,图可以视为一种由“节点”组成的抽象网络,网络中的各节点可以通过“边”实现彼此的连接,表示两节点有关联。图是数据结构和算法学中最强大的框架之一,几乎可以用来表现所有类型的结构或系统;
节点:vertex,表示某个事物或对象。也称节点为点、顶点、结点、端点等;
边:edge,表示事物与事物之间的关系(逻辑关系)。
权重:weight,在本发明中主要指边的权重(或称权值);
路径:path/shortest path,在图上任取两点,分别作为起点和终点,由起点到终点的不会重复经过同一个点和同一条边的路线,就是一条“路径”,路径是一种特殊的图结构;
路径权重:路径经过的边的权重总和就是路径的权重;
编辑距离算法:是模糊匹配的常用算法,通过计算两个字符串的相似度来得到两字符串的匹配程度。编辑距离,也称为Levenshtein距离,核心是通过递归计算出一对字符串间的最小编辑次数,编辑操作包括删除、插入、替换。编辑距离也即字符串转化成另一个字符串所付出的代价,代价越高,相似度越低;
单源最短路径算法:图论的基本算法,给定起始点,得到最短路径树SPT;
Dijkstra算法:常见的单源最短路径算法,其核心是松弛技术,即每步检查是否存在路径比当前路径更短。Dijkstra算法从起始节点开始,依次寻找距离最近的节点加入路径,并与当前两节点之间的路径比较,取较短的路径,直至遍历完全部节点,或者到达终止节点;
深度优先遍历:图的一种遍历方法,从起始节点v开始,依次访问与其相邻的节点,每访问一个节点便将其标记为已访问,若v的相邻节点w未被访问过,则以w为新的起始点继续往下进行,直至图中所有和v有路径相通的节点均已被访问为止。若此时图中仍有未访问的节点,则另选一个尚未访问的节点为新的起始点重复上述过程,直至图中所有的节点均已被访问;
举例来讲,以图2所示连通图为例,假定起始节点为V0,深度优先遍历可包括如下步骤:
步骤1:标记点V0,寻找未标记的、V0的相邻点。
假定找到点V1。
步骤2:标记点V1,以点V1为新起点,寻找未标记的、V1的相邻点。
假定找到点V4。
步骤3:同步骤2,直到遍历到点V3。此时路径为:V0-V1-V4-V6-V3。
因为与V3相邻的点(点V0,点V6)都被标记过,所以回溯到点V6,继续寻找与点V6相邻且未标记的点(假定找到点V7)。
步骤4:标记点V7,同步骤3,回溯至点V6。
步骤5:此时点V6的所有相邻点都被标记,回溯至点V4。
步骤6:同步骤5,继续回溯到点V1。
步骤7:寻找与点V1相邻且未标记的点(假定找到点V2)。
步骤8:同步骤2,遍历点V5。
步骤9:同步骤5,回溯到点V0,此时整个图的点都被遍历过,结束。图2中的虚线箭头表征了回溯方向。
在介绍完上述技术名词等后,下面介绍本发明所提供的技术方案。
本发明提供映射方法及映射装置,以自动生成消息模型。
图3示出了上述映射装置的一种示例性结构,包括获取单元1、第一映射单元2、CIM子模型生成单元3、第二映射单元4和消息模型生成单元5。本文后续将结合映射方法,介绍映射装置中各组成模块的作用。
映射装置可作为数据服务平台的组合部分,以硬件或软件(例如组件)的方式部署于数据服务平台上,提供自动生成消息模型的服务。
无论映射装置是否作为数据服务平台,其都依托于计算机架构实现其功能。
数据服务平台在硬件上包括一台计算机,或计算机集群。通过计算机或计算机集群上运行计算机程序来提供数据服务平台的服务(例如将分散于各电力系统的数据进行去重、转换和整合,将数据按照标准格式提供)。
本发明所提供的技术方案基于使用计算机语言表示的CIM(可称为目标CIM)实现。
与用建模工具EA画的CIM模型不同的是,使用计算机语言表示的目标CIM可被计算机解析,由于映射装置在硬件上也基于计算机,因此,目标CIM可被基于计算机的映射装置所解析。
目标CIM包括:抽象CIM模型中定义的类,以及,类的直接关系属性。这里的直接关系属性包括直接父类和直接关联类。
具体的,直接关系属性可使用key-value形式(例如字典)存储,其中key为某一类的名称,value包含该类的直接父类和直接关联类。
可将目标CIM看成图结构,一节点对应一个类,相邻节点间所存在的关系由该相邻节点间有向边和无向边表示。其中:
若相邻两节点间为泛化关系,则相邻两节点中的边为有向边,方向为由作为子类的节点指向作为父类的节点;
若相邻两节点间为聚合或组合关系,则相邻两节点中的边为有向边,方向为由作为个体的节点指向作为整体的节点;
若相邻两节点间为关联关系,则相邻两节点中的边为无向边。
图4示出了目标CIM的一部分,以节点Equipment为例,其与节点PowerSystemResources之间为泛化关系,其中,节点Equipment为子类,节点PowerSystemResources为父类,以带三角箭头的有向边表示泛化关系,方向为由Equipment指向节点PowerSystemResources。
节点Equipment与节点EquipmentContainer之间的关系包括聚合或组合关系,其中,Equipment为个体,EquipmentContainer为整体,以带棱形箭头的有向边表示聚合或组合关系,方向为由节点Equipment指向节点EquipmentContainer。
同时,节点Equipment与节点EquipmentContainer之间的关系还包括关联关系,以无向边表示。
对于节点Equipment而言,其直接父类为PowerSystemResource,直接关联类包括EquipmentContainer,在以Equipment为key的键值对中,value值包括PowerSystemResource和EquipmentContainer。
每一节点(类)具有一个或多个属性,一个类继承其祖先(所有父类)的所有属性和方法。
基于上述目标CIM,图5示出了由映射装置所执行的映射方法的一种示例性流程,包括:
S1:获取业务对象所对应的源端数据表。
具体的,步骤S1可由前述的获取单元1执行。
在一个示例中,在数据需求方向数据服务平台的数据需求中可包含:数据来源方(即数据源端系统)的标识(例如名称、地址等),以及所需的一个或多个数据表(即源端数据表)名称。这些源端数据表构成一个业务对象。
获取单元1可根据源端数据表名称获取相应的源端数据表。
在本发明其他实施例中,在执行步骤S1之前,还可包括如下步骤:将抽象的公共信息模型转化为目标CIM。该步骤可由获取单元1或其他单元执行。
S2:在目标CIM中,确定与源端数据表的名称相映射的n个类。
具体的,步骤S2可由前述的第一映射单元2执行,第一映射单元2可通过模糊匹配确定与源端数据表的名称相映射的n个类。为后续方便称呼,可将匹配出的n个类中的每一类称为目标类。
举例来讲,假定源端数据表的名称为“断路器表”,则可用中英文结合的模糊匹配方法,来确定名称中包含“Breaker”或“断路器”的类。
由于CIM模型用了资源资产分离的思想,因此,一般一个源端数据表的名称可与目标CIM中的两个类相映射。
S3:根据目标CIM生成最短路径树结构的CIM子模型。
具体的,步骤S3可由前述的CIM子模型生成单元3执行。
CIM子模型也使用计算机语言表示。
其中,CIM子模型包括:目标类,目标类在目标CIM中的所有父类,目标类在目标CIM中的关联类,以及,每一父类在目标CIM中的关联类;
任一目标类、父类或关联类为一个节点,n个目标类的共同父类为CIM子模型的根节点;相邻节点间所存在的关系由该相邻节点间的边所表征。
假定源端数据表的名称为“断路器表”,其对应的CIM子模型示例性的如图6a所示,在该子模型中,为称呼方便,为每一节点分配了编号。
其中,节点1和节点2为与“断路器”对应的目标类;节点3-8为节点1的所有父类,节点8-11为节点2的所有父类;此外,还包括作为关联类的节点,以节点6为例,其关联类包括:节点12。
本文后续将介绍生成CIM子模型的具体方式。
S4:在CIM子模型中确定与源端数据表中的字段相映射的属性;
源端数据表中的字段,可视为源端数据表名称下的属性,而CIM子模型中每一节点(类)也具有属性,因此,可在CIM子模型中查找与源端数据表中的字段相匹配的属性。
需要的是,CIM子模型是一个连通图。
之所以是连通图,是因为其不仅要体现表与类之间、字段与属性之间的映射,其还要体现字段与字段之间,或表间关系。
举例来讲,某源端数据表的一条记录中包括字段A和字段B。由于是在一条记录中,所以两字段天然具有关系。
举个最简单的例子,某数据表有“姓名”字段和“户籍”字段,其实姓名和户籍之间是具有关系的。
在很多情况下,字段A和字段B中的数据,可能分别存放在不同的数据表中。
例如,“姓名”字段中的具体内容存放在姓名数据表中,户籍字段中的具体内容存放在户籍数据表中。此时,姓名数据表和户籍数据表之间实际上是具有关联关系的。
字段间的关系,或者表间关系,也应该予以体现。
以表间关系为例,假定表A对应CIM子模型中的类a,表B对应CIM子模型中的类b,类a与类b之间的最短路径,体现的就是表A与表B之间的表间关系。
而如果类a与类b不存在路径,那么就无法体现出表A与表B之间的表间关系。
在映射时,可通过模糊匹配确定与源端数据表的字段相映射的属性,或与源端数据表相映射的类。
例如,下表1所示的断路器表中的字段EDDL(也即,额定电流),通过模糊匹配,可与ProductAssetModel类下属性ratedAmps(额定电流)相匹配。
需要说明的是,步骤S2和S4使用的模糊匹配的方法,即相似度计算。具体的,可通过计算编辑距离(Levenshtein距离)来计算相似度,通过大量数据验证设置阈值,以源端的表和字段为基准,同时匹配中文名和英文名,当相似度大于阈值时,认为匹配成功,选择相似度最高的类/属性。
而当最大相似度小于阈值时,可按照相似度排列输出前5个类/属性关系,由人工选择;若经由人工分析后,没有可匹配的类/属性,则认为模型不覆盖该表,需要完善CIM模型。
表1(断路器表的部分字段映射结果)
S5:删除CIM子模型中未被映射的节点、属性,得到映射子模型。
需要说明的是,映射子模型也是连通图。
可将被映射的节点,以及被映射的属性所在的节点称为映射节点,在映射子模型中,任两映射节点之间是连通的,具有最短路径。
步骤S4和S5可由前述的第二映射单元4执行。
S6:根据映射子模型生成消息模型。
步骤S6可由前述的消息模型生成单元5执行。
其中,消息模型至少包括:源端数据表的名称与目标类间的映射关系,源端数据表的字段与属性间的映射关系,此外,在一些情况下,消息模型还可包括表间关系、字段间的关系等。
消息模型用于:根据映射关系抽取源端数据,将抽取的源端数据转化为符合CIM模型要求的标准数据。
在一个示例中,消息模型生成单元5可生成消息模型XML文档。消息模型生成单元5具体可遵循基于RDF简化语法的CIM XML格式规范,解析CIM子模型的信息并生成消息模型XML文档,作为从源端取数的介质。针对断路器表生成XML文档如图6b所示,XML文档生成一次即可。
在抽取数据后,将抽取的数据按照映射关系放入XML文档,就得到符合CIM模型要求的标准数据表。
可见,在本发明实施例中,基于使用计算机语言表示的CIM(目标CIM)自动生成消息模型。目标CIM可被映射装置所解析,在生成过程中,映射装置先根据目标CIM获取与源端数据表名称相映射的n个类(目标类),再生成包含n个目标类、目标类所有父类、目标类的关联类、父类的关联类的CIM子模型。源端数据表中的字段,可视为源端数据表名称下的属性,而CIM子模型中每一节点(类)也具有属性。映射装置从而可将CIM子模型中节点的属性与源端数据表中的字段(表征源端数据表的属性)相映射。之后,再删除未被映射的节点和属性,得到映射子模型。最后根据映射子模型生成消息模型的消息模型,消息模型可用于抽取源端数据,将抽取的源端数据转化为符合CIM模型要求的标准数据,这样,实现了自动生成消息模型的目的。
而现有的消息模型的生成方式包括:以源端的一张数据表为业务对象,经过人工分析,手动将数据表映射到CIM模型中的类,将数据表中的字段映射到CIM模型中某一类的属性,生成包含映射关系的消息模型的消息模型。
现有技术的缺点主要包括三个方面:
一是人工生成消息模型的难度大、成本高,因为配置消息模型要求同时对业务系统的对象含义和CIM模型有较深的理解,对实施人员的业务和技术能力要求很高,现在通过人工生成的消息模型只有一百多个,是电网业务的极小一部分;
二是不同人配置的消息模型会有差异和相互矛盾,导致模型数据的关系错乱,不能支撑大数据分析;
三是不能灵活配置数据发布内容,对新需求的响应周期非常长,因为每个新的数据需求,都需要重新配置消息模型。
与之相比,本发明实施例实现了基于计算机自动生成消息模型,降低配置消息模型的工作量和对实施人员的要求,并消除了人为导致的模型差异;对新的数据需求,可以通过模糊查询匹配到CIM模型中的类和属性,生成相应的消息模型,大幅度提高响应时间。
下面以源端数据表的名称为“断路器表”为例,介绍生成CIM子模型的具体方式。图7示出了由CIM子模型生成单元3执行的生成CIM子模型的一种示例性流程,包括:
S700:将与源端数据表的名称相映射的n个类加入CIM子模型。
对于“断路器表”,通过模糊匹配,断路器表可以映射到目标CIM中的两个类——Breaker和BreakerInfo,这是由于CIM模型用了资源资产分离的思想,Breaker描述的是断路器的资源属性,BreakerInfo描述的是断路器的资产属性。
请参见图8a,可将这两个类加入CIM子模型。
为后续方便称呼,可将匹配出的每一类称为目标类。
S701:针对n个目标类中的第i个目标类,逆向将第i个目标类的所有父类加入CIM子模型。
其中,i不小于1,不大于n。
假定i=1,则加入父类后的CIM子模型请参见图8b,为后续称呼方便,将所有父类中的任一父类称为目标父类。
S702:在目标CIM中查找与第i个目标类具有关联、聚合或组合关系的关联类,将查找到的关联类加入CIM子模型。
在具有多层关联类的情况下,可将m层关联类加入CIM子模型。本领域技术人员可根据需要灵活设计m的取值,例如将m设置为3。
需要说明的是,这里的一层是以直接关联与否区分的。举例来讲,与节点3有直接关联、聚合或组合关系的关联类包括节点4和节点5,那么节点4和节点5,相对于节点3而言是第1层关联类。
假定节点4的关联类包括节点1,节点1相对于节点3而言,是第2层关联类。
假定节点1的关联类包括节点12,节点12相对于节点3而言,是第3层关联类。以此类推。
此外,在上述提及的四种关系中,泛化(继承)是一种特殊的关系,泛化关系可压缩,体现在:具有泛化关系的两个类,子类可以继承其所有祖先的关系和属性,比如图10a中,节点1(Switch)继承节点2的关系,所以Switch与节点3(Equipment)之间可以存在聚合关系。
但泛化关系是不可逆,其体现在:父类不具有子类的关系或属性,比如图10a中,节点7(ConnectivityNodeContainer)与节点3(Equipment)之间没有关系,这是因为:
对于图10a中的节点3而言,节点6是它的关联类,节点7是节点6的父类,由于不可逆,因此,节点7不是节点3的关联类,与节点3之间没有关系。
而若节点7是节点6的子类,那么节点6和节点7都是节点3的关联类,并且,由于可压缩,节点6和节点7都是节点3的直接关联类。
S703:在目标CIM中查找与目标父类具有关联、聚合或组合关系的关联类,将查找到的关联类加入CIM子模型。
假定i=1,加入关联类后的CIM子模型请参见图8c。
若i>1,在步骤S703后,还包括如下步骤:
S704:检查当前得到的CIM子模型是否为连通图。
S705:若当前得到的CIM子模型不是连通图,在不连通的任意两节点间补全关系链,以使该任意两节点相连通。
当然,若是连通图,则生成CIM子模型这一流程结束。
可将不连通的任意两节点称为第一节点和第二节点。
请参见图9,在不连通的两节点间补全关系链可包括如下步骤:
S91:遍历目标CIM,查找目标关系链。
其中,任一目标关系链的起点为第一节点,终点为第二节点,或者,起点为第二节点,终点为第一节点;
除起点、终点外,任一目标关系链还包括m个节点(m不小于1)。
任一目标关系链中相邻节点间存在的关系包括泛化、关联、聚合和组合关系中的至少一种,相邻节点间的关系决定相邻节点间边的权重值。
假定,以图10a所示的CIM模型(局部)为例,节点3与节点8之间的目标关系链(路径)可如图10b所示,包括:
关系链1:节点3->->节点6->->节点7->->节点4->->节点8;
关系链2:节点3->->节点4->->节点8。
在一个示例中,可令存在泛化关系的相邻节点间边的权重值为a;a为正数;令存在关联、聚合或组合关系的相邻节点间边的权重值为b;b为正数;
建模中倾向于选择关联、聚合、组合关系比较少的路径,所以可令a<b。而类自身的关联优先于父类的关联,所以b不可太大,可令2a>b。因此,a与b之间的关系为:a<b<2a。
S92:计算查找到的各目标关系链的权重值和,选择权重值和最小的目标关系链作为最短关系链;
可将目标关系链看作路径,那么求解两个类间最短关系链,等价于求解最短路径问题,即当模型中两个类间有多条目标关系链时,求解权重和最小的目标关系链。权重体现实际业务当中的关系,是对关系强弱的描述。
前述提及了,泛化关系可压缩以及不可逆。聚合、关联、组合关系是可逆的,但不可压缩。
在一个示例中,可进行如下设置:
任一目标关系链中,在存在M个节点构成的泛化子关系链时,若M个节点中任意相邻节点间有向边的方向均与路径走向相同,整个泛化子关系链的权重值等于任意相邻节点间有向边的权重值a;M不小于2,不大于m+2;
否则,整个泛化子关系链的权重值为无穷大;路径走向为:由起点向终点的前进方向。
仍以图10b所示的关系链为例,节点6、7、4构成一个泛化子关系链,其路径走向为由节点6指向节点4,根据图10a所示的关系,节点6与节点7间的有向边的方向为由节点6指向节点7,节点7与节点4间的有向边的方向为由节点7指向节点4,恰好与路径走向相同,因此,节点6、7、4的权重值可压缩为a。
再举例,如果节点A是节点B的子类,节点B是节点C的父类,则节点A、B、C之间的有向边方向为:A->B-<C,假定泛化子关系链的路径走向为:A->->B->->C,则B、C之间的路径走向与有向边方向相反,则该泛化子关系链的权重值为无穷大。
基于上述设置,图10b中的关系链1的权重和为b+a+b=2.6,关系链2的权重和为a+b=1.6,因此,关系链2为最短关系链。
S93:在当前得到的CIM子模型中,补全最短关系链。
此外,本发明实施例还可支持向CIM子模型手动添加新的类。
S91-S93是S705的细化步骤。
另外,若对两端点间自动生成的关联关系有异议,可遍历两端点间所有的目标关系链,并按权重和从小到大排列输出,以人工选择更合理的目标关系链,从而修正CIM子模型。
下面介绍如何遍历目标CIM,查找目标关系链。
对于两个类间所有目标关系链的查找,类似于对模型(图)的遍历,但传统的深度优先遍历算法(DFS)和广度优先遍历算法(BFS)不适用于带环图(模型转化成的图为带环图),因为DFS和BFS在遍历时只对图中的每个节点访问一次,但带环图的路径求解需要对环上的节点访问多次。
因此,基于深度优先遍历的思想,本实施例开创了一种全路径搜索算法,其核心是将标记节点是否已被访问的集合做成动态集合,如果在遍历时检索到下一个节点(以next表示)具有访问标记,且不是当前节点的上一个节点(环包含至少三个节点),那么将next节点以及next节点在已遍历路径上的后续节点取消访问标记。
举例来讲,请参见图11的连通图,假定第一条路径是1-2-3-5-6。
基于深度优先遍历的思想由点6回溯至点5,与点5相邻的点,除了点3还有点4,但点4到达不了点6。
此时,点1-6都已具有访问标记了。
回溯至点3,点3与点5、点4相邻,点3的上一节点是点2,点5不是其上一节点,所以将第一条路径中的点5和点6取消访问标记。
同时,点4也不是点3的上一节点,所以将点4取消访问标记。
以此类推,不作赘述。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及模型步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同PF来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的PF或模型的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、WD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (9)
1.一种映射方法,其特征在于,应用于映射装置,包括:
获取业务对象所对应的源端数据表;
在使用计算机语言表示的公共信息模型CIM中,确定与源端数据表的名称相映射的n个类,n不小于1;所述n个类中每一类为目标类;所述使用计算机语言表示的CIM为目标CIM;
根据所述目标CIM生成最短路径树结构的CIM子模型;其中,所述CIM子模型包括:所述目标类、所述目标类在所述目标CIM中的所有父类,所述目标类在所述目标CIM中的关联类,以及,每一父类在所述目标CIM中的关联类;任一目标类、父类或关联类为一个节点,所述n个目标类的共同父类为所述CIM子模型的根节点;相邻节点间所存在的关系由该相邻节点间的边所表征;
在所述CIM子模型中确定与所述源端数据表中的字段相映射的属性;
删除所述CIM子模型中未被映射的节点和属性,得到映射子模型;
根据所述映射子模型生成消息模型;其中,所述消息模型包括:源端数据表的名称与目标类间的映射关系,源端数据表的字段与属性间的映射关系;所述消息模型用于:根据所述映射关系抽取源端数据,将抽取的源端数据转化为符合CIM模型要求的标准数据。
2.如权利要求1所述的方法,其特征在于,
所述生成CIM子模型包括:
针对所述n个目标类中的第i个目标类,逆向将所述第i个目标类的所有父类加入CIM子模型;i不小于1,不大于n;
在所述目标CIM中查找与所述第i个目标类具有关联、聚合或组合关系的关联类,将查找到的关联类加入CIM子模型;
在所述目标CIM中查找与目标父类具有关联、聚合或组合关系的关联类,将查找到的关联类加入CIM子模型;所述目标父类为所述所有父类中的任一父类。
3.如权利要求2所述的方法,其特征在于,
若i>1,在完成将查找到的关联类加入CIM子模型后,所述生成CIM子模型还包括:
检查当前得到的CIM子模型是否为连通图;
若当前得到的CIM子模型不是连通图,在不连通的任意两节点间补全关系链,以使所述任意两节点相连通。
4.如权利要求3所述的方法,其特征在于,
所述不连通的任意两节点包括第一节点和第二节点;
所述在不连通的节点间补全关系链包括:
遍历所述目标CIM,查找目标关系链;其中,任一目标关系链的起点为所述第一节点,终点为所述第二节点,或者,起点为所述第二节点,终点为所述第一节点;除起点、终点外,任一目标关系链还包括m个节点,m不小于1;任一目标关系链中相邻节点间存在的关系包括泛化、关联、聚合和组合关系中的至少一种,相邻节点间的关系决定相邻节点间边的权重值;
计算查找到的各目标关系链的权重值和;
选择权重值和最小的目标关系链作为最短关系链;
在当前得到的CIM子模型中,补全所述最短关系链。
5.如权利要求3所述的方法,其特征在于,
若相邻两节点间为泛化关系,则所述相邻两节点中的边为有向边,方向为由作为子类的节点指向作为父类的节点;
若相邻两节点间为聚合或组合关系,则所述相邻两节点中的边为有向边,方向为由作为个体的节点指向作为整体的节点;
若相邻两节点间为关联关系,则所述相邻两节点中的边为无向边。
6.如权利要求5所述的方法,其特征在于,
存在泛化关系的相邻节点间边的权重值为a;a为正数;
存在关联、聚合或组合关系的相邻节点间边的权重值为b;b为正数;a<b<2a;
在任一目标关系链中,在存在M个节点构成的泛化子关系链时,若所述M个节点中任意相邻节点间有向边的方向均与路径走向相同,所述整个泛化子关系链的权重值等于所述任意相邻节点间有向边的权重值a,否则,所述整个泛化子关系链的权重值为无穷大;M不小于2,不大于m+2;所述路径走向为:由起点向终点的前进方向。
7.如权利要求4-6任一项所述的方法,其特征在于,所述遍历所述目标CIM包括:
以所述起点作为目标节点,访问与目标节点相邻的下一节点;
若所述下一节点具有访问标记,且不是当前目标节点的上一节点,将所述下一节点以及所述下一节点在已遍历路径上的后续节点取消访问标记;
将所述下一节点作为所述目标节点,访问与目标节点相邻的下一节点,直到所有和所述起点有路径相通的节点均具有访问标记。
8.如权利要求1所述的方法,其特征在于,在获取所述源端数据表之前,还包括:
将抽象的公共信息模型转化为所述目标CIM;
所述目标CIM包括:抽象的公共信息模型中定义的类,以及,类的直接关系属性,所述直接关系属性包括直接父类和直接关联类。
9.一种映射装置,其特征在于,包括:
获取单元,用于获取业务对象所对应的源端数据表;
第一映射单元,用于:
在使用计算机语言表示的公共信息模型CIM中,确定与源端数据表的名称相映射的n个类,n不小于1;所述n个类中每一类为目标类;所述使用计算机语言表示的CIM为目标CIM;
CIM子模型生成单元,用于:
根据所述目标CIM生成最短路径树结构的CIM子模型;其中,所述CIM子模型包括:所述目标类、所述目标类在所述目标CIM中的所有父类,所述目标类在所述目标CIM中的关联类,以及,每一父类在所述目标CIM中的关联类;任一目标类、父类或关联类为一个节点,所述n个目标类的共同父类为所述CIM子模型的根节点;相邻节点间所存在的关系由该相邻节点间的边所表征;
第二映射单元,用于:
在所述CIM子模型中确定与所述源端数据表中的字段相映射的属性;
删除所述CIM子模型中未被映射的节点和属性,得到映射子模型;
消息模型生成单元,用于:
根据所述映射子模型生成消息模型;其中,所述消息模型包括:源端数据表的名称与目标类间的映射关系,源端数据表的字段与属性间的映射关系;所述消息模型用于:根据所述映射关系抽取源端数据,将抽取的源端数据转化为符合CIM模型要求的标准数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010315831.3A CN111506640B (zh) | 2020-04-21 | 2020-04-21 | 映射方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010315831.3A CN111506640B (zh) | 2020-04-21 | 2020-04-21 | 映射方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111506640A true CN111506640A (zh) | 2020-08-07 |
CN111506640B CN111506640B (zh) | 2023-06-30 |
Family
ID=71877726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010315831.3A Active CN111506640B (zh) | 2020-04-21 | 2020-04-21 | 映射方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111506640B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113190608A (zh) * | 2021-05-28 | 2021-07-30 | 北京红山信息科技研究院有限公司 | 数据标准化采集方法、装置、设备及存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6516326B1 (en) * | 2000-10-30 | 2003-02-04 | Stone And Webster Consultants, Inc. | System and method for integrating electrical power grid and related data from various proprietary raw data formats into a single maintainable electrically connected database |
CN101046810A (zh) * | 2006-05-26 | 2007-10-03 | 华为技术有限公司 | 自动建立关系模型的系统及其方法 |
CN102521380A (zh) * | 2011-12-20 | 2012-06-27 | 浙江省电力公司 | 一种电网cim模型及svg图形数据导入的方法 |
CN102681855A (zh) * | 2012-05-25 | 2012-09-19 | 南京邮电大学 | 一种面向无线传感网的模型到代码的转化方法 |
CN103197926A (zh) * | 2013-02-28 | 2013-07-10 | 河北省电力建设调整试验所 | 一种实现建立iec61970电能质量cim模型的方法 |
CN105373550A (zh) * | 2014-08-25 | 2016-03-02 | 国家电网公司 | 数据映射方法及装置 |
US20160173319A1 (en) * | 2014-12-16 | 2016-06-16 | Oracle International Corporation | Method and system for management of an openflow agent in openflow devices |
CN106292576A (zh) * | 2016-07-18 | 2017-01-04 | 中国南方电网有限责任公司 | 一种scl模型与cim模型的映射方法 |
CN109213752A (zh) * | 2018-08-06 | 2019-01-15 | 国网福建省电力有限公司信息通信分公司 | 一种基于cim的数据清洗转换方法 |
US10216862B1 (en) * | 2016-09-26 | 2019-02-26 | Splunk Inc. | Predictive estimation for ingestion, performance and utilization in a data indexing and query system |
-
2020
- 2020-04-21 CN CN202010315831.3A patent/CN111506640B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6516326B1 (en) * | 2000-10-30 | 2003-02-04 | Stone And Webster Consultants, Inc. | System and method for integrating electrical power grid and related data from various proprietary raw data formats into a single maintainable electrically connected database |
CN101046810A (zh) * | 2006-05-26 | 2007-10-03 | 华为技术有限公司 | 自动建立关系模型的系统及其方法 |
CN102521380A (zh) * | 2011-12-20 | 2012-06-27 | 浙江省电力公司 | 一种电网cim模型及svg图形数据导入的方法 |
CN102681855A (zh) * | 2012-05-25 | 2012-09-19 | 南京邮电大学 | 一种面向无线传感网的模型到代码的转化方法 |
CN103197926A (zh) * | 2013-02-28 | 2013-07-10 | 河北省电力建设调整试验所 | 一种实现建立iec61970电能质量cim模型的方法 |
CN105373550A (zh) * | 2014-08-25 | 2016-03-02 | 国家电网公司 | 数据映射方法及装置 |
US20160173319A1 (en) * | 2014-12-16 | 2016-06-16 | Oracle International Corporation | Method and system for management of an openflow agent in openflow devices |
CN106292576A (zh) * | 2016-07-18 | 2017-01-04 | 中国南方电网有限责任公司 | 一种scl模型与cim模型的映射方法 |
US10216862B1 (en) * | 2016-09-26 | 2019-02-26 | Splunk Inc. | Predictive estimation for ingestion, performance and utilization in a data indexing and query system |
CN109213752A (zh) * | 2018-08-06 | 2019-01-15 | 国网福建省电力有限公司信息通信分公司 | 一种基于cim的数据清洗转换方法 |
Non-Patent Citations (2)
Title |
---|
万齐鸣等: "数据中台SG-CIM模型应用方法", 《电信科学》 * |
万齐鸣等: "数据中台SG-CIM模型应用方法", 《电信科学》, no. 03, 20 March 2020 (2020-03-20) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113190608A (zh) * | 2021-05-28 | 2021-07-30 | 北京红山信息科技研究院有限公司 | 数据标准化采集方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111506640B (zh) | 2023-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107609052B (zh) | 一种基于语义三角的领域知识图谱的生成方法及装置 | |
Ghahremanlou et al. | Geotagging twitter messages in crisis management | |
Grolinger et al. | Knowledge as a service framework for disaster data management | |
Wei et al. | On the spatial distribution of buildings for map generalization | |
CN111881290A (zh) | 一种基于加权语义相似度的配网多源网架实体融合方法 | |
KR102593171B1 (ko) | 정보 처리 방법, 장치, 전자 기기 및 저장 매체 | |
CN114676698A (zh) | 一种基于知识图谱的设备故障关键信息提取方法及系统 | |
Angles et al. | A Practical Query Language for Graph DBs. | |
CN111506640A (zh) | 映射方法及装置 | |
CN113377739A (zh) | 知识图谱应用方法、平台、电子设备及存储介质 | |
Missikoff et al. | A Controlled Language for Semantic Annotation and Interoperability in e-Business Applications1 | |
Sun et al. | Distance dynamics based overlapping semantic community detection for node‐attributed networks | |
Morshed et al. | Network-Based Information Extraction from IFC Files to Support Intelligent BIM Companion (iBcom) Technology | |
Pavković et al. | Modeling power system data using NoSQL database | |
Zhang et al. | Semantic web and geospatial unique features based geospatial data integration | |
Benazi et al. | A complex network community detection algorithm based on random walk and label propagation | |
Guo et al. | ITEM: extract and integrate entities from tabular data to RDF knowledge base | |
Fawei et al. | An Adaptable Ontology for Easy and Efficient University Data Management in Niger Delta University | |
Ye | Identify the semantic meaning of service rules with natural language processing | |
Avin et al. | On the elite of social networks | |
Camilleri et al. | Investigating the relationship between earthquakes and online news | |
Lytras et al. | Innovations, developments, and applications of semantic web and information systems | |
Gliwa et al. | Analysis of dependences between group dynamics and topic changes | |
Yu | Application of cluster analysis algorithm in the online intelligent teaching art resource platform | |
CN112685574B (zh) | 领域术语层次关系的确定方法、装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |