本发明涉及数据采集与互通技术领域,特别是涉及一种数据本体映射方法及系统。
背景技术:
在面向mes(manufacturingexecutionsystem,制造执行系统)的工业互联网标识数据采集与互通系统中,企业mes系统中的工业设备数据是非常重要的一类数据,但是这些数据之间会存在多种异构性,主要包括(1)数据类型异构,即数据资源表现形式多种多样,有机构化表格、半结构化的xml文件、非结构化的图表等多种类型的数据;(2)语义异构,即数据在概念含义层面存在歧义,同一个事物可能有多种表述,如“温度”既可以被表述为“temperature”,也可以被表述为“temp”,而同一种表述也可能代表不同的事物,如“temp”可以指设备中的“温度”,也可以指“临时文件”;(3)单位异构,即同一概念的数据表述采用不同的单位,致使数据间的分析对比存在不一致性,如温度数据既有用华氏表述的也有用摄氏表述的;(4)精度异构,即数据表述采用不同的精度范围。数据之间的异构导致这些数据无法很好的进行互联互通和共享。
技术实现要素:
基于此,本发明的目的是提供一种数据本体映射方法及系统,提高了工业设备数据本体映射的准确性。
为实现上述目的,本发明提供了如下方案:
一种数据本体映射方法,所述方法包括:
提取待映射的第一本体中概念,获得第一概念集合,提取待映射的第二本体中概念,获得第二概念集合;
将所述第一概念集合中概念与所述第二概念集合中概念进行两两配对,获得概念对集合;
计算所述概念对集合中各概念对的数据相似度、名称相似度和描述文本相似度;
将所述数据相似度、所述名称相似度和所述描述文本相似度加权计算获得所述概念对的综合相似度;
根据各所述概念对的综合相似度构造概念相似度矩阵;
根据所述概念相似度矩阵进行所述第一本体中概念和所述第二本体中概念之间的映射。
可选地,所述计算所述概念对集合中各概念对的数据相似度,具体包括:
根据所述概念对构造数据属性对:将所述概念对中两个概念分别记为第一概念和第二概念,将所述第一概念中数据属性集合与所述第二概念中数据属性集合两两配对,获得所述概念对中的所述数据属性对;
计算各所述数据属性对的相似度;
根据各所述数据属性对的相似度构造数据属性相似度矩阵;
根据第一相似度阈值从所述数据属性相似度矩阵中判断等同数据属性对;
记录等同数据属性对的数量;
根据概念对中等同数据属性对数量确定所述概念对的数据相似度。
可选地,所述计算所述概念对集合中各概念对的名称相似度,具体包括:
采用编辑距离法计算所述概念对集合中各概念对的名称相似度。
可选地,所述计算所述概念对集合中各概念对的描述文本相似度,具体包括:
根据所述概念对构造token序列对:将所述概念对中两个概念分别记为第一概念和第二概念,从所述第一概念中描述文本中提取单词的第一token序列,从所述第二概念中描述文本中提取单词的第二token序列;
将所述第一token序列和第二token序列中各个单词无重复的记录为一维数组;
根据所述一维数组中各单词在所述第一token序列中的tf-idf权值确定第一向量;
根据所述一维数组中各单词在所述第二token序列中的tf-idf权值确定第二向量;
将所述第一向量和所述第二向量之间夹角的余弦值作为所述概念对的描述文本相似度。
可选地,所述将所述数据相似度、所述名称相似度和所述描述文本相似度加权计算获得所述概念对的综合相似度的计算公式为:
其中,simend表示所述综合相似度,simdata表示所述数据相似度,wdata表示数据相似度权值,simlable表示所述名称相似度,wlable表示名称相似度权值,simdescribe表示所述描述文本相似度,wdescribe表示描述文本相似度权值,dnum(aci)表示概念aci含有的数据属性个数,dnum(bcj)表示概念bcj含有的数据属性个数,vnum(ac1)表示概念aci中描述文本向量中不为0的元素个数,vnum(ac2)表示概念bcj中描述文本向量中不为0的元素个数,d表示概念aci中描述文本和概念bcj中描述文本中不重复单词的个数。
可选地,所述根据所述概念相似度矩阵进行所述第一本体中概念和所述第二本体中概念之间的映射,具体包括:
选取所述概念相似度矩阵中相似度最大元素;
判断所述最大元素是否大于第二相似度阈值;
若最大元素大于所述第二相似度阈值,将所述最大元素对应的概念对作为等同概念对,并将所述最大元素在所述概念相似度矩阵中同行和同列的元素修改为0;
若所述概念相似度矩阵中存在大于所述第二相似度阈值,则返回“选取所述概念相似度矩阵中相似度最大元素”。
可选地,用owl:equvalentclass为所述等同概念对建立相等关系。
可选地,所述方法还包括:
若等同数据属性对对应的概念对为等同概念对,则所述概念对的数据属性匹配,否则,所述概念对的数据属性不匹配。
可选地,用owl:equvalentproperty为所述概念对的数据属性匹配建立相等关系。
本发明还公开了一种数据本体映射系统,所述系统包括:
概念集合提取模块,用于提取待映射的第一本体中概念,获得第一概念集合,提取待映射的第二本体中概念,获得第二概念集合;
概念对集合获取模块,用于将所述第一概念集合中概念与所述第二概念集合中概念进行两两配对,获得概念对集合;
各相似度计算模块,用于计算所述概念对集合中各概念对的数据相似度、名称相似度和描述文本相似度;
综合相似度计算模块,用于将所述数据相似度、所述名称相似度和所述描述文本相似度加权计算获得所述概念对的综合相似度;
概念相似度矩阵构造模块,用于根据各所述概念对的综合相似度构造概念相似度矩阵;
文体映射模块,用于根据所述概念相似度矩阵进行所述第一本体中概念和所述第二本体中概念之间的映射。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明公开了一种数据本体映射方法及系统,该方法中计算两个待映射文本构成的概念对集合中各概念对的数据相似度、名称相似度和描述文本相似度;并通过所述数据相似度、所述名称相似度和所述描述文本相似度加权计算获得所述概念对的综合相似度,通过综合相似度使能够进行数据匹配且降低了数据异构性的影响,提高了工业设备数据本体映射的准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一种数据本体映射方法流程示意图;
图2为本发明一种数据本体映射方法详细流程示意图;
图3为本发明描述文本相似度计算流程示意图;
图4为本发明一种数据本体映射系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种数据本体映射方法及系统,提高了工业设备数据本体映射的准确性。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明的技术思路:为了解决现有技术中的问题,实现工业领域中设备数据的互联互通,面向mes的工业互联网标识数据采集与互通系统采用本体作为这些数据表达和存储的方式。首先,本体作为一种特定领域之中某套概念及其相互之间关系的形式化表达方式,其被广泛的应用在异构数据集成上面,通过本体的存储,异构数据之间的异构性可以得到一定程度上的消除。其次,不同的本体之间可以通过本体映射找出相同的概念和属性,也即表达相同含义的数据。所以如果将相同领域每个企业的设备数据本体都互相进行本体映射的话,就可以实现领域工业设备数据的互联互通。本发明提出的一种面向mes的工业互联网标识数据采集与互通系统的工业设备数据本体映射方法,首先能够消除工业设备数据在被本体表达之后依然存在的异构性,其次能够找出不同企业的设备数据本体中相同的概念和属性,也即表达相同含义的数据,从而实现领域工业设备数据的互联互通。目前存在的本体映射方法并没有专门针对工业设备数据本体的,大多数方法都是普适性方法,其他一小部分方法也都主要针对医疗、交通、石油等其他领域。相较于现有的这些本体映射方法,本方法对工业设备数据本体的针对性更强,映射的准确性更高。
图1为本发明一种数据本体映射方法流程示意图,如图1所示,一种数据本体映射方法包括以下步骤:
步骤101:提取待映射的第一本体中概念,获得第一概念集合,提取待映射的第二本体中概念,获得第二概念集合。
第一概念集合中概念数为m,第一概念集合a={ac1,ac2,…acm},第二概念集合中概念数为n,第二概念集合b={bc1,bc2,...bcn},其中,aci,i∈[1,m]和bcj,j∈[1,n]分别是第一本体和第二本体中的概念。
步骤102:将所述第一概念集合中概念与所述第二概念集合中概念进行两两配对,获得概念对集合。
其中,步骤102具体包括:将集合a和集合b中所有的概念两两配对,最终形成m×n对概念对,概念对集合为{(ac1,bc1),(ac1,bc2)...(ac1,bcn)...(acm,bcn)}。概念对集合中m×n个概念对。
步骤103:计算所述概念对集合中各概念对的数据相似度、名称相似度和描述文本相似度。
步骤104:将所述数据相似度、所述名称相似度和所述描述文本相似度加权计算获得所述概念对的综合相似度。
步骤105:根据各所述概念对的综合相似度构造概念相似度矩阵。
步骤106:根据所述概念相似度矩阵进行所述第一本体中概念和所述第二本体中概念之间的映射。
其中,步骤103具体包括:
所述计算所述概念对集合中各概念对的数据相似度,具体包括:
根据所述概念对构造数据属性对:将所述概念对中两个概念分别记为第一概念和第二概念,将所述第一概念中数据属性集合与所述第二概念中数据属性集合两两配对,获得所述概念对中的所述数据属性对。
概念对中概念ac1有s个数据属性,概念bc1有t个数据属性,表示成集合为dpa={dpa1,dpa2...dpas}和dpb={dpb1,dpb2...dpbt},其中dpai,i∈[1,s]和dbbj,j∈[1,t]分别为概念ac1和概念bc1的数据属性。每个数据属性都会有很多数据值,同一概念下的数据属性的数据数量是相同的,该数量与概念对应的实例数量相同。数据属性的数据总共分为5中数据类型,包括xsd:boolean、xsd:integer、xsd:double、xsd:datetime和xsd:string,一个数据属性的所有数据只能是其中一种类型,所以上述5种类型简称为数据属性的数据类型。将所有数据属性两两配对,最终形成s×t对数据属性对{(dpa1,dpb1),(dpa1,dpb2)...(dpa1,dpbt)...(dpas,dpbt)}。
计算各所述数据属性对的相似度。
数据属性对的相似度实际上是数据属性的数据相似度。如果两个数据属性的数据类型不一致,则需要对其中之一的数据进行类型转换,根据不同的情况会有不同的转换规则,也会存在特定的两个数据类型数据无法对比的情况,若无法对比,则属性对的相似度为0,具体转换规则如表1所示。
表1数据属性数据类型转换规则
本实施例中数据相似度的计算方法有两种,首先按照方法一计算数据属性的数据相似度。计算公式如式(1)所示。
式中num1same为数据属性1中与数据属性2中数据值相同的数据个数,num2same为数据属性2中与数据属性1中数据相同的数据的个数,num1与num2分别为数据属性1和数据属性2中的数据个数。例如:数据属性1中所有数据为[1,2,3,4,4,5],数据属性2中所有的数据为[3,3,4,5,6,6]。数据属性1中的数据3、4、5与数据属性2中的数据3、4、5相同,所以数据属性1中有3、4、4、5总共四个数据与数据属性2中数据相同,num1same=4。同理,数据属性2中有数据3、3、4、5与数据属性1中数据相同,num2same=4。数据属性1和数据属性2数据总数都为6,所以num1、num2=6。
经过公式(1)的计算,得到了方法一下数据属性的数据相似度,接下来利用方法二计算数据属性的数据相似度。计算公式如式(2)所示。
式中lengthsame为两个数据属性数据范围重合的长度,lengthall为两个数据属性数据范围合成后的总长度。例如:数据属性1中的数据为[1,2,3,4,4,5],数据属性2中所有的数据为[3,3,4,5,6,6],则数据属性1的数据范围为1~5,长度为4。数据属性2的数据范围为3~6,长度为3。数据属性1和数据属性2数据范围重合的部分为3~5,长度为2,所以lengthsame=2。两个数据属性数据范围合成后变为1~6,长度为5,所以
至此,分别得到了方法一和方法二下的数据属性数据相似度,取其中数据属性数据相似度值大的相似度作为数据属性对的相似度。
根据各所述数据属性对的相似度构造数据属性相似度矩阵。
相似度矩阵如式(3)所示。
其中第i行第j列的元素sdij为数据属性对(dpai,dpbj)的相似度。
根据第一相似度阈值从所述数据属性相似度矩阵中判断等同数据属性对。具体为:选取相似度矩阵中最大的元素,判断其是否大于0.8,若大于0.8,则将其对应的属性对视为等同属性对,并将该元素对应行和列的其他元素变为0,重复上述操作,直至矩阵中不存在大于0.8的元素或矩阵元素全部为0。将等同属性对存入二维数组dpsame当中,将等同属性对的数量记为num11,其下标“11”代表概念对(ac1,bc1),若是概念对(aci,bcj)的等同属性对的数量则记为numij。
记录等同数据属性对的数量。
根据概念对中等同数据属性对数量确定所述概念对的数据相似度。
概念对的数据相似度计算公式如式(4)所示。
simdata=1-e-0.2num(4)
其中num为等同属性对数量,将num11带入计算得到概念对(ac1,bc1)的数据相似度,记为simdata(ac1,bc1)。其它概念对的数据相似度计算方法完全相同。
所述计算所述概念对集合中各概念对的名称相似度,具体包括:
采用编辑距离法计算所述概念对集合中各概念对的名称相似度。概念对的名称相似度的计算公式如式(5)所示。
其中,ed(lable(e1),lable(e2))为名称e1和名称e2之间的编辑距离,max(|lable(e1)|,|lable(e2)|)为名称e1和名称e2与空字符串之间编辑距离较大的取值。计算概念对(ac1,bc1)的名称相似度时,把ac1的名称带入e1位置,把bc1的名称带入e2位置,进行计算,得到名称相似度记为simlable(ac1,bc1)。其他概念对名称相似度计算方法相同。
所述计算所述概念对集合中各概念对的描述文本相似度之前,对各概念对的描述文本进行文本预处理。
使用nlp英文处理工具nltk对描述文档进行处理。
首先使用nltk分词工具word_tokenize分别将两本体中所有概念的描述文本变为单词的token序列。例如文本“hellomr.adam,howareyou?ihopeeverythingisgoingwell.todayisagoodday,seeyoudude”经过分词工具分词后变为token序列[′hello′,′mr.′,′adam′,′,′,′how′,′are′,′you′,′?′,′i′,′hope′,′everything′,′is′,′going′,′well′,′.′,′today′,′is′,′a′,′good′,′day′,′,′,′see′,′you′,′dude′,′.′]。
接下来使用nltk工具去掉所有token序列中的停用词,如‘is’‘a’‘of’‘the’等,最终保留下来的单词语义信息较为丰富。
然后使用nltk的词干还原工具,将上步得到的所有token序列中具有时态语态、或者名词复数形式的单词还原为原型。比如将‘working’还原为‘work’。最终得到了所有单词均为原型的无停用词的token序列,简称标准token序列。
所述计算所述概念对集合中各概念对的描述文本相似度,具体包括:
根据所述概念对构造token序列对:将所述概念对中两个概念分别记为第一概念和第二概念,从所述第一概念中描述文本中提取单词的第一token序列,从所述第二概念中描述文本中提取单词的第二token序列。
将所述第一token序列和第二token序列中各个单词无重复的记录为一维数组。具体为:用nltk的textcollection类从所有token序列中提取单词,形成一个总单词序列,用一维数组存储,一维数组中的单词包括所有文本中出现过的所有单词,并且无重复,记为[w1,w2,...wd]。
根据所述一维数组中各单词在所述第一token序列中的tf-idf权值确定第一向量。根据所述一维数组中各单词在所述第二token序列中的tf-idf权值确定第二向量。具体为:使用nltk的textcollection类计算每个token序列中所有单词的tf-idf权值,并根据此权值对每个token序列都生成一个向量,向量形式如式(6)所示。
vector=[ti1,ti2,...tid](6)
式中tli为总单词序列中的单词wi在该token序列中的tf-idf权值,若该token序列当中不含有总单词序列中的某个单词wj,则向量对应位置的值tlj为0。
将所述第一向量和所述第二向量之间夹角的余弦值作为所述概念对的描述文本相似度。余弦计算公式如式(7)所示。
其中tik1、tik2分别为第一向量和第二向量中的第k个元素。任意两个概念之间的描述文本相似度记为simdescribe(aci,bcj)。
其中,步骤104具体包括,所述将所述数据相似度、所述名称相似度和所述描述文本相似度加权计算获得所述概念对的综合相似度的计算公式为:
其中,simend表示所述综合相似度,simdata表示所述数据相似度,wdata表示数据相似度权值,simlable表示所述名称相似度,wlable表示名称相似度权值,simdescribe表示所述描述文本相似度,wdescribe表示描述文本相似度权值,dnum(aci)表示概念aci含有的数据属性个数,dnum(bcj)表示概念bcj含有的数据属性个数,vnum(ac1)表示概念aci中描述文本向量中不为0的元素个数,vnum(ac2)表示概念bcj中描述文本向量中不为0的元素个数,d表示概念aci中描述文本和概念bcj中描述文本中不重复单词的个数,即d表示一维数组[w1,w2,...wd]的维数。
其中,步骤106具体包括:
选取所述概念相似度矩阵中相似度最大元素。
判断所述最大元素是否大于第二相似度阈值。
若最大元素大于所述第二相似度阈值,将所述最大元素对应的概念对作为等同概念对,并将所述最大元素在所述概念相似度矩阵中同行和同列的元素修改为0。
若所述概念相似度矩阵中存在大于所述第二相似度阈值,则返回“选取所述概念相似度矩阵中相似度最大元素”。
本实施例中用owl:equvalentclass为所述等同概念对建立相等关系。
所述方法还包括:若等同数据属性对对应的概念对为等同概念对,则所述概念对的数据属性匹配,否则,所述概念对的数据属性不匹配。
本实施例中用owl:equvalentproperty为所述概念对的数据属性匹配建立相等关系。
下面用本发明一种数据本体映射方法的详细过程实施例。
本体映射目的是找到两个本体中相同的概念和属性。相同的概念通过owl:equvalentclass建立联系,相同的属性通过owl:equvalentproperty建立联系。首先计算两本体中所有概念之间的相似度,概念相似度计算有三种策略,分别是基于数据的方法(步骤2.1)、基于名称的方法(步骤2.2)和基于描述文档的方法(步骤2.3)。每一对概念的相似度都用上述三种方法计算,最终通过对三种方法所得相似度加权平均,得到最终的相似度(步骤2.4)。然后利用计算所得的相似度构造概念相似度矩阵,之后通过一定的方法从相似度矩阵中筛选出等同的概念对,等同概念对用owl:equvalentclass建立联系(步骤3)。在计算概念对的数据相似度时,会得到许多可能相同的属性对,这些属性对被存在一个二维数组中。在筛选出等同概念对之后,就可以判断这些属性对是否真的相同,若两个属性所对应的概念是等同概念,两个属性是等同属性,用owl:equvalentproperty建立联系,否则两个属性不是等同属性。整体工作流程如图2所示。
step1:提取所有概念对
待映射的两个本体设为本体a(第一本体)和本体b(第二本体),其含有概念数分别为m和n。提取出本体a和本体b中所有的概念,形成两个概念集合a={ac1,ac2,...acm}和b={bc1,bc2,...bcn}其中aci,i∈[1,m]和bcj,j∈[1,n]分别是本体a和本体b中的概念。将集合a和集合b中所有的概念两两配对,最终形成m×n对概念对,概念对集合为{(ac1,bc1),(ac1,bc2)...(ac1,bcn)...(acm,bcn)}
step2:计算所有概念对相似度
step1中得到了m×n对概念对,本步骤要计算所有概念对之间的相似度。由于所有概念对相似度计算方法都是相同的,所以本步骤以概念对(ac1,bc1)的相似度计算为例进行说明。概念相似度由三种相似度加权而得,三种相似度包括数据相似度、名称相似度和描述文档相似度。首先计算数据相似度,然后计算名称相似度,最后计算描述文档相似度。
step2.1计算概念数据(dataproperty)相似度
step2.1.1构造数据属性对
设概念ac1有s个数据属性,概念bc1有t个数据属性,表示成集合为dpa={dpa1,dpa2...dpas}和dpb={dpb1,dpb2...dpbt},其中dpai,i∈[1,s]和dbbj,j∈[1,t]分别为概念ac1和概念bc1的数据属性。每个数据属性都会有很多数据值,同一概念下的数据属性的数据数量是相同的,该数量与概念对应的实例数量相同。数据属性的数据总共分为5中数据类型,包括xsd:boolean、xsd:integer、xsd:double、xsd:datetime和xsd:string,一个数据属性的所有数据只能是其中一种类型,所以上述5种类型简称为数据属性的数据类型。将所有数据属性两两配对,最终形成s×t对数据属性对{(dpa1,dpb1),(dpa1,dpb2)...(dpa1,dpbt)...(dpas,dpbt)}。接下来计算所有数据属性对的相似度。
step2.1.2计算数据属性对的相似度
数据属性对的相似度实际上是数据属性的数据相似度。如果两个数据属性的数据类型不一致,则需要对其中之一的数据进行类型转换,根据不同的情况会有不同的转换规则,也会存在特定的两个数据类型数据无法对比的情况,若无法对比,则属性对的相似度为0。具体转换规则如表1所示。本实施例中数据相似度的计算方法有两种,首先按照方法一计算数据属性的数据相似度。计算公式如式(1)所示。
式中num1same为数据属性1中与数据属性2中数据值相同的数据个数,num2same为数据属性2中与数据属性1中数据相同的数据的个数,num1与num2分别为数据属性1和数据属性2中的数据个数。例如:数据属性1中所有数据为[1,2,3,4,4,5],数据属性2中所有的数据为[3,3,4,5,6,6]。数据属性1中的数据3、4、5与数据属性2中的数据3、4、5相同,所以数据属性1中有3、4、4、5总共四个数据与数据属性2中数据相同,num1same=4。同理,数据属性2中有数据3、3、4、5与数据属性1中数据相同,num2same=4。数据属性1和数据属性2数据总数都为6,所以num1、num2=6。
经过公式(1)的计算,得到了方法一下数据属性的数据相似度,接下来利用方法二计算数据属性的数据相似度。计算公式如式(2)所示。
式中lengthsame为两个数据属性数据范围重合的长度,lengthall为两个数据属性数据范围合成后的总长度。例如:数据属性1中的数据为[1,2,3,4,4,5],数据属性2中所有的数据为[3,3,4,5,6,6],则数据属性1的数据范围为1~5,长度为4。数据属性2的数据范围为3~6,长度为3。数据属性1和数据属性2数据范围重合的部分为3~5,长度为2,所以lengthsame=2。两个数据属性数据范围合成后变为1~6,长度为5,所以lengthall=5,
至此得到了方法一和方法二下的数据属性数据相似度,取其中值大的相似度作为数据属性对的相似度。
step2.1.3构造数据属性相似度矩阵,选取匹配属性对
step2.1.2计算得到了所有数据属性对的相似度,本步利用这些相似度构造相似度矩阵,矩阵的元素为数据属性对的相似度。相似度矩阵如式(3)所示。
其中第i行第j列的元素sdij为数据属性对(dpai,dpbj)的相似度。选取相似度矩阵中最大的元素,判断其是否大于0.8,若大于0.8,则将其对应的属性对视为等同属性对,并将该元素对应行和列的其他元素变为0,重复上述操作,直至矩阵中不存在大于0.8的元素或矩阵元素全部为0。将等同属性对存入二维数组dpsame当中,将等同属性对的数量记为num11,其下标“11”代表概念对(ac1,bc1),若是概念对(aci,bcj)的等同属性对的数量则记为numij
step2.1.4计算概念对的数据相似度
step2.1.3中得到了概念对(ac1,bc1)的等同属性对的数量mun11,本步根据此数量计算概念对的数据相似度,计算公式如式(4)所示。
simdata=1-e-0.2num(4)
其中num为等同属性对数量,将num11带入计算得到概念对(ac1,bc1)的数据相似度,记为simdata(ac1,bc1)。其它概念对的数据相似度计算方法完全相同,不再赘述。
step2.2计算概念名称相似度
step2.1得到了概念对的数据相似度,本步骤计算概念的名称相似度。名称相似度的计算采用编辑距离法,计算公式如式(5)所示。
其中ed(lable(e1),lable(e2))为名称e1和名称e2之间的编辑距离,max(|lable(e1)|,|lable(e2)|)为名称e1和名称e2与空字符串之间编辑距离较大的取值。计算概念对(ac1,bc1)的名称相似度时,把ac1的名称带入e1位置,把bc1的名称带入e2位置,进行计算,得到名称相似度记为simlable(ac1,bc1)。其他概念对名称相似度计算方法相同。
step2.3计算描述文件相似度
在本体中的所有概念除了具有名称以外还具有注释文档,用来补充说明概念的性质。本专利将注释文档定义为概念的描述文档,本步骤旨在计算概念的描述文档的相似度。本步骤计算文档相似度时需将两个本体(即本体a和本体b)中所有概念的描述文档集中在一起同时处理,不同于以上步骤可以单独计算不同概念对的相似度。描述文件相似度计算流程图如附图3所示。
step2.3.1文档预处理
本步骤使用nlp英文处理工具nltk对描述文档进行处理。
首先使用nltk分词工具word_tokenize分别将两本体中所有概念的描述文本变为单词的token序列。例如文本“hellomr.adam,howareyou?ihopeeverythingisgoingwell.todayisagoodday,seeyoudude”经过分词工具分词后变为token序列['hello','mr.','adam',',','how','are','you','?','i','hope','everything','is','going','well','.','today','is','a','good','day',',','see','you','dude','.']。
接下来使用nltk工具去掉所有token序列中的停用词,如‘is’‘a’‘of’‘the’等,最终保留下来的单词语义信息较为丰富。
然后使用nltk的词干还原工具,将上步得到的所有token序列中具有时态语态、或者名词复数形式的单词还原为原型。比如将‘working’还原为‘work’。最终得到了所有单词均为原型的无停用词的token序列,简称标准token序列。
2.3.2构造文本向量
step2.3.1得到了两本体中所有概念的描述文档的标准token序列。用nltk的textcollection类从所有token序列中提取单词,形成一个总单词序列,用一维数组存储,一维数组中的单词包括所有文档中出现过的所有单词,并且无重复,记为[w1,w2,…wd]。使用nltk的textcollection类计算每个token序列中所有单词的tf-idf权值,并根据此权值对每个token序列都生成一个向量,向量形式如式(6)所示。
vector=[ti1,ti2,…tid](6)
式中tli为总单词序列中的单词wi在该token序列中的tf-idf权值,若该token序列当中不含有总单词序列中的某个单词wj,则向量对应位置的值tlj为0。
step2.3.3计算文本相似度
step2.3.2中得到了两本体中所有概念的描述文档的向量。本步骤利用所得向量计算概念文本之间的相似度。两个概念之间文本相似度即为两个概念描述向量之间夹角的余弦值,余弦计算公式如式(7)所示。
其中tik1、tik2分别为概念描述向量1和概念描述向量2中的第k个元素。任意两个概念之间的描述文本相似度记为simdescribe(aci,bcj)。
step2.4综合相似度计算
通过step2.1、2.2、2.3得到了所有概念对的数据相似度、名称相似度和描述文本相似度。接下来将三种相似度加权计算得到概念对的综合相似度,也即最终的相似度。计算公式如式(8)所示。
其中,simend表示所述综合相似度,simdata表示所述数据相似度,wdata表示数据相似度权值,simlable表示所述名称相似度,wlable表示名称相似度权值,simdescribe表示所述描述文本相似度,wdescribe表示描述文本相似度权值,dnum(aci)表示概念aci含有的数据属性个数,dnum(bcj)表示概念bcj含有的数据属性个数,vnum(ac1)表示概念aci中描述文本向量中不为0的元素个数,vnum(ac2)表示概念bcj中描述文本向量中不为0的元素个数,d表示概念aci中描述文本和概念bcj中描述文本中不重复单词的个数。
经过计算,本步骤得到了所有概念对的相似度。
step3:构造概念相似度矩阵并选取匹配概念对
由step2,得到了所有概念对的相似度,接下来利用计算所得相似度构造概念相似度矩阵。矩阵如式(9)所示。
其中scij为概念对(aci,bcj)的相似度。
选取相似度矩阵中最大的元素,判断其是否大于0.8,若大于0.8,则将其对应的概念对视为等同概念对,并将该元素对应行和列的其他元素变为0,重复上述操作,直至矩阵中不存在大于0.8的元素或矩阵元素全部为0。等同概念对之间用owl:equvalentclass建立相等关系。到此为止,本体a和本体b之间概念的映射已经完成,下面进行数据属性的映射。
step4:选取匹配数据属性对
在step2.1.3中得到了存储等同数据属性对的二维数组dpsame。本步骤从dpsame中存储的等同数据属性对中筛选出最终匹配的数据属性对。筛选规则为:数据属性对所对应的两个概念是等同概念则数据属性对是匹配的,否则数据属性对不匹配。对于最终匹配的数据属性对,用owl:equvalentproperty建立相等关系,到此为止,两本体之间的映射全部完成。
本发明的技术效果如下:
本发明提出了一种面向mes的工业互联网标识数据采集与互通系统的工业设备数据本体映射方法。相对于现有的本体映射方法,本发明更适用于工业设备数据本体,映射的准确度更高。本发明的优点来源主要有两点。
首先,在step2.1.2中采用公式(2)进行属性对相似度的计算。因为工业设备数据存在精度异构,即数据表述采用不同的精度范围这一问题。现有的数据相似度计算方法要求数据精确匹配,如果两个原本相同的数据保留的位数不相同,那么传统的方法就会认为两个数据不同,如果两个属性的所有数据没有一对精确相同的,就认为属性相似度为0。但是公式二是一种范围匹配方法,该方法针对的是属性下所有的数据,如果两个属性下的所有数据的数据范围有所重合,那么属性对的相似度就不为0,相较于传统的方法,该方法能解决数据精度异构的问题,更适用于工业设备数据。
其次,在step2.4中,公式(8)中的三个权值是动态权值,根据概念对的具体情况不同而不同。现有的固定权值方法,其不能考虑到不同情况下概念对的差异,所以灵活性较差,计算所得相似度较低,相对于固定权值方法,本文动态权值相似度计算所得准确度更高。相对于现有的其他动态权值计算方法,本专利给予数据相似度的权值更高,因为工业设备数据本体最主要的特征还是数据,所以本发明权值赋予方法对工业设备数据本体映射的准确性更高。
本发明还公开了一种数据本体映射系统,如图4所示,所述系统包括:
概念集合提取模块201,用于提取待映射的第一本体中概念,获得第一概念集合,提取待映射的第二本体中概念,获得第二概念集合。
概念对集合获取模块202,用于将所述第一概念集合中概念与所述第二概念集合中概念进行两两配对,获得概念对集合。
各相似度计算模块203,用于计算所述概念对集合中各概念对的数据相似度、名称相似度和描述文本相似度。
综合相似度计算模块204,用于将所述数据相似度、所述名称相似度和所述描述文本相似度加权计算获得所述概念对的综合相似度。
概念相似度矩阵构造模块205,用于根据各所述概念对的综合相似度构造概念相似度矩阵。
文体映射模块206,用于根据所述概念相似度矩阵进行所述第一本体中概念和所述第二本体中概念之间的映射。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
1.一种数据本体映射方法,其特征在于,所述方法包括:
提取待映射的第一本体中概念,获得第一概念集合,提取待映射的第二本体中概念,获得第二概念集合;
将所述第一概念集合中概念与所述第二概念集合中概念进行两两配对,获得概念对集合;
计算所述概念对集合中各概念对的数据相似度、名称相似度和描述文本相似度;
将所述数据相似度、所述名称相似度和所述描述文本相似度加权计算获得所述概念对的综合相似度;
根据各所述概念对的综合相似度构造概念相似度矩阵;
根据所述概念相似度矩阵进行所述第一本体中概念和所述第二本体中概念之间的映射。
2.根据权利要求1所述的数据本体映射方法,其特征在于,所述计算所述概念对集合中各概念对的数据相似度,具体包括:
根据所述概念对构造数据属性对:将所述概念对中两个概念分别记为第一概念和第二概念,将所述第一概念中数据属性集合与所述第二概念中数据属性集合两两配对,获得所述概念对中的所述数据属性对;
计算各所述数据属性对的相似度;
根据各所述数据属性对的相似度构造数据属性相似度矩阵;
根据第一相似度阈值从所述数据属性相似度矩阵中判断等同数据属性对;
记录等同数据属性对的数量;
根据概念对中等同数据属性对数量确定所述概念对的数据相似度。
3.根据权利要求1所述的数据本体映射方法,其特征在于,所述计算所述概念对集合中各概念对的名称相似度,具体包括:
采用编辑距离法计算所述概念对集合中各概念对的名称相似度。
4.根据权利要求1所述的数据本体映射方法,其特征在于,所述计算所述概念对集合中各概念对的描述文本相似度,具体包括:
根据所述概念对构造token序列对:将所述概念对中两个概念分别记为第一概念和第二概念,从所述第一概念中描述文本中提取单词的第一token序列,从所述第二概念中描述文本中提取单词的第二token序列;
将所述第一token序列和第二token序列中各个单词无重复的记录为一维数组;
根据所述一维数组中各单词在所述第一token序列中的tf-idf权值确定第一向量;
根据所述一维数组中各单词在所述第二token序列中的tf-idf权值确定第二向量;
将所述第一向量和所述第二向量之间夹角的余弦值作为所述概念对的描述文本相似度。
5.根据权利要求1所述的数据本体映射方法,其特征在于,所述将所述数据相似度、所述名称相似度和所述描述文本相似度加权计算获得所述概念对的综合相似度的计算公式为:
其中,simend表示所述综合相似度,simdata表示所述数据相似度,wdata表示数据相似度权值,simlable表示所述名称相似度,wlable表示名称相似度权值,simdescribe表示所述描述文本相似度,wdescribe表示描述文本相似度权值,dnum(aci)表示概念aci含有的数据属性个数,dnum(bcj)表示概念bcj含有的数据属性个数,vnum(ac1)表示概念aci中描述文本向量中不为0的元素个数,vnum(ac2)表示概念bcj中描述文本向量中不为0的元素个数,d表示概念aci中描述文本和概念bcj中描述文本中不重复单词的个数。
6.根据权利要求2所述的数据本体映射方法,其特征在于,所述根据所述概念相似度矩阵进行所述第一本体中概念和所述第二本体中概念之间的映射,具体包括:
选取所述概念相似度矩阵中相似度最大元素;
判断所述最大元素是否大于第二相似度阈值;
若最大元素大于所述第二相似度阈值,将所述最大元素对应的概念对作为等同概念对,并将所述最大元素在所述概念相似度矩阵中同行和同列的元素修改为0;
若所述概念相似度矩阵中存在大于所述第二相似度阈值,则返回“选取所述概念相似度矩阵中相似度最大元素”。
7.根据权利要求1所述的数据本体映射方法,其特征在于,用owl:equvalentclass为所述等同概念对建立相等关系。
8.根据权利要求6所述的数据本体映射方法,其特征在于,所述方法还包括:
若等同数据属性对对应的概念对为等同概念对,则所述概念对的数据属性匹配,否则,所述概念对的数据属性不匹配。
9.根据权利要求8所述的数据本体映射方法,其特征在于,用owl:equvalentproperty为所述概念对的数据属性匹配建立相等关系。
10.一种数据本体映射系统,其特征在于,所述系统包括:
概念集合提取模块,用于提取待映射的第一本体中概念,获得第一概念集合,提取待映射的第二本体中概念,获得第二概念集合;
概念对集合获取模块,用于将所述第一概念集合中概念与所述第二概念集合中概念进行两两配对,获得概念对集合;
各相似度计算模块,用于计算所述概念对集合中各概念对的数据相似度、名称相似度和描述文本相似度;
综合相似度计算模块,用于将所述数据相似度、所述名称相似度和所述描述文本相似度加权计算获得所述概念对的综合相似度;
概念相似度矩阵构造模块,用于根据各所述概念对的综合相似度构造概念相似度矩阵;
文体映射模块,用于根据所述概念相似度矩阵进行所述第一本体中概念和所述第二本体中概念之间的映射。
技术总结