发明内容
本发明所要解决的技术问题是提供一种本体与关系数据库模式之间的映射方法,其能够缩短建立关系数据库模式与本体之间映射关系的难度和时间花费。
本发明解决技术问题所采用的技术方案是:一种本体与关系数据库模式之间的映射方法,包括如下步骤:
建立RS2O图模型,RS2O图的定义为:G=(V,lblv,ε,lblε),其中,V代表节点集合,lblv代表节点标记集合,ε代表边集合,lblε代表边标记集合;
步骤1)将本体的信息转化为RS2O图A,其转化包括以下内容:
1-1)初始化RS2O图A,V初始化为{nT},lblv初始化为{(nT,T)},ε和lblε均初始化为空集;其中nT和T分别代表表示顶层本体的节点和节点标记;
1-2)为本体的每一个类创建类节点,类节点的节点标记包括其类名;为本体中的每一个属性创建属性节点,属性节点的节点标记包括属性名;
1-3)为本体各属性的每一个定义域和值域创建有向边;
对于定义域,有向边的方向由代表该属性定义域的类节点指向该属性的属性节点;对于值域,有向边的方向由该属性的属性节点指向代表该属性值域的类节点;若该属性的值域为通用值域,则创建一条由该属性的属性节点指向nT的有向边;
若属性为数据属性,其边标记包括“val”标记;若属性为对象属性,其边标记包括“ref”标记;
步骤2)将关系数据库模式的信息转化为RS2O图B,其转化包括以下内容:
2-1)初始化图RS2O图B,其V、lblv、ε和lblε均初始化为空集;
2-2)为关系数据库模式的每一个表创建表节点并以其表名作为该节点的节点标记;为表的每一个列创建列节点并以其列名作为该节点的节点标记;
2-3)在每一个列的列节点同其所属表的表节点之间创建有向边,有向边的方向由代表该列的列节点指向其所属表的表节点,并以“val”作为其边标记;
2-4)为表结构的每一个外键列创建键节点,并创建两个边标记为“ref”的有向边,两有向边分别由代表该外键列的列节点指向该外键列所引用的两个表的表节点;
步骤3)对RS2O图A和RS2O图B进行映射匹配:
3-1)结合本体的RS2O图A和关系数据库模式的RS2O图B,建立对偶连通图PCG,形成映射对和由映射对构成的邻居;
3-2)为对偶连通图的邻居映射对之间加上反向边,并为每一条边添加权值,形成诱导传播图,权值为传播系数ω;
3-3)在诱导传播图中,使用σ(x,y)≥0代表映射对(x,y)的节点x和节点y之间的相似度,其中x∈A,y∈B;基于σ值进行不动点迭代计算;
在不动点迭代计算过程中,每完成一次所有映射对的相似度不动点迭代计算后,首先对计算结果进行人工反馈,分别针对计算结果中接受的映射对和拒绝的映射对的相似度进行赋值;然后对计算结果进行判定,若计算结果收敛或达到迭代次数上限,则完成计算,否则进行下一次的不动点迭代计算;
完成所有映射对的相似度不动点迭代计算,得到关系数据库模式元素与本体元素之间的一对一映射关系。
进一步的,传播系数ω的计算公式如下:
设在诱导传播图中,边e由映射对n1指向映射对n2,其传播系数ω(n1,n2)=(score(n1)*score(n2))/outl,其中,score(n1)为n1映射对节点间的相似度,score(n2)为n2映射对节点间的相似度,outl为图中具有相同标记的有向边的边数。
进一步的,所述步骤3-3)包括如下步骤:
3-3.1)采用编辑距离算法计算节点x和节点y间的编辑距离,并采用最小编辑距离作为两节点间的初始化相似度σ0;由σi代表第i次迭代后的相似度,公式如下:
其中,映射对(au,bu)和映射对(av,bv)均表示映射对(x,y)的邻居映射对,其中,映射对(au,bu)表示的映射对和映射对(x,y)之间的边由映射对(au,bu)指向映射对(x,y),映射对(av,bv)表示的映射对和映射对(x,y)之间的边由映射对(x,y)指向映射对(av,bv);
3-3.2)根据步骤3-3.1)的公式,在完成一次所有映射对的相似度不动点迭代计算后,将各映射对的相似度除以本次计算的最大相似度;
3-3.3)根据步骤3-3.2)的计算结果进行人工反馈,若接受映射对则将该映射对的相似度赋值为1,若拒绝映射对则将该映射对的相似度赋值为0;
3-3.4)根据步骤3-3.3)的结果进行如下判断:
若映射对的不动点迭代计算结果收敛或达到迭代次数上限计算结果任不收敛,则该映射对的计算完成;否则将映射对的结果带入3-3.1)进行下一次的不动点迭代计算;
针对计算完成的映射对,若映射对的不动点迭代计算结果收敛,则该映射对的节点匹配,得到该映射对两节点所代表的关系数据库模式元素和本体元素之间的映射关系;若映射对达到迭代次数上限计算结果任不收敛,则该映射对的节点间不匹配;
3-3.5)完成所有映射对的相似度不动点迭代计算,得到关系数据库模式元素与本体元素之间的一对一映射关系。
进一步的,所述步骤3)之后设置有步骤4):将关系数据库模式的元素替换为与其存在映射关系的本体元素,得到本体化的关系数据库模式。
进一步的,在所述步骤4)中将得到的本体化的关系数据库模式采用XML SchemaDefinition格式进行封装。
本发明的有益效果是:通过建立中间模型,也即RS2O图模型,分别将关系数据库模式和本体转换为RS2O图,利用带标记的有向图将关系数据库模式和本体进行统一表示。RS2O图模型,将本体中的类元素类比为关系数据库模式中的表,本体中类元素间通过定义域和值域经有向边建立联系,关系数据库中通过外键关系经有向边建立表间的联系,从而构成本体与构成关系数据库模式元素的对应。
然后通过本体与关系数据库模式的RS2O图形成对偶连通图以及诱导传播图,再经不动点迭代计算节点间相似度;每次迭代计算后,由计算获得的相似度确定候选映射关系,经人工反馈后确认,因此,极大的降低了人工代价,在降低映射关系的获取难度和时间花费的同时,又有效保证了最终获得的映射关系的正确率总是为100%。
具体实施方式
下面结合说明书附图和实施例对本发明进一步说明。
如图1、图3所示,本发明的一种本体与关系数据库模式之间的映射方法,包括如下步骤:
建立RS2O图模型,RS2O图的定义为:G=(V,lblv,ε,lblε),其中,V代表节点集合,lblv代表节点标记集合,ε代表边集合,lblε代表边标记集合;
步骤1)将本体的信息转化为RS2O图A,其转化包括以下内容:
1-1)初始化RS2O图A,V初始化为{nT},lblv初始化为{(nT,T)},ε和lblε均初始化为空集;其中nT和T分别代表表示顶层本体的节点和节点标记;
1-2)为本体的每一个类创建类节点,类节点的节点标记包括其类名;为本体中的每一个属性创建属性节点,属性节点的节点标记包括属性名;
1-3)为本体各属性的每一个定义域和值域创建有向边;
对于定义域,有向边的方向由代表该属性定义域的类节点指向该属性的属性节点;对于值域,有向边的方向由该属性的属性节点指向代表该属性值域的类节点;若该属性的值域为通用值域,则创建一条由该属性的属性节点指向nT的有向边;
若属性为数据属性,其边标记包括“val”标记;若属性为对象属性,其边标记包括“ref”标记;
步骤2)将关系数据库模式的信息转化为RS2O图B,其转化包括以下内容:
2-1)初始化图RS2O图B,其V、lblv、ε和lblε均初始化为空集;
2-2)为关系数据库模式的每一个表创建表节点并以其表名作为该节点的节点标记;为表的每一个列创建列节点并以其列名作为该节点的节点标记;
2-3)在每一个列的列节点同其所属表的表节点之间创建有向边,有向边的方向由代表该列的列节点指向其所属表的表节点,并以“val”作为其边标记;
2-4)为表结构的每一个外键列创建键节点,并创建两个边标记为“ref”的有向边,两有向边分别由代表该外键列的列节点指向该外键列所引用的两个表的表节点;
步骤3)对RS2O图A和RS2O图B进行映射匹配:
3-1)结合本体的RS2O图A和关系数据库模式的RS2O图B,建立对偶连通图PCG,形成映射对和由映射对构成的邻居;
3-2)为对偶连通图的邻居映射对之间加上反向边,并为每一条边添加权值,形成诱导传播图,权值为传播系数ω;
3-3)在诱导传播图中,使用σ(x,y)≥0代表映射对(x,y)的节点x和节点y之间的相似度,其中x∈A,y∈B;基于σ值进行不动点迭代计算;
在不动点迭代计算过程中,每完成一次所有映射对的相似度不动点迭代计算后,首先对计算结果进行人工反馈,分别针对计算结果中接受的映射对和拒绝的映射对的相似度进行赋值;然后对计算结果进行判定,若计算结果收敛或达到迭代次数上限,则完成计算,否则进行下一次的不动点迭代计算;
完成所有映射对的相似度不动点迭代计算,得到关系数据库模式元素与本体元素之间的一对一映射关系。
上述nT代表本体中最顶层的概念,也即顶层本体,类似Thing在本体建模中的地位。在RS2O图中用于连接没有值域或定义域的本体对象属性,代替它们的值域或定义域。
本发明首先通过RS2O图模型,利用带标记的有向图将关系数据库模式和本体进行统一表示,使其适用于有向图的计算;然后借鉴Similarity Flooding算法,通过本体与关系数据库模式的RS2O图形成对偶连通图以及诱导传播图,再经不动点迭代计算节点间相似度,在每次迭代计算后经人工反馈也即用户反馈后对计算结果进行判断,确认匹配关系。上述人工反馈的方式,可以通过人工反馈赋值使该映射对在之后的判断中直接判定为接受或拒绝,或通过赋值提高或降低该映射对相似度在候选映射关系中的排名等方式进行。
人工反馈仅针对计算结果中接受的映射对和拒绝的映射对的相似度进行赋值,对无法判断的映射对不进行赋值,也即人工反馈处理的计算结果是该次迭代计算结果的子集;且根据每一次的不动点迭代计算结果排序能够获得候选的映射关系以方便人工反馈,因此能极大的降低了人工代价,在降低映射关系的获取难度和时间花费的同时,又有效保证了最终获得的映射关系的正确率总是为100%。
Similarity Flooding算法,简称SF算法,中文称为相似性洪泛法,是由斯坦福大学的Melnik等人提出的一个图匹配算法。SF算法的主要思想是依据数据库模式中的列属性和数据类型进行迭代不动点计算得到匹配结果,应用于同类型模式的匹配,也即实体联系模型之间的匹配以及XML模式之间的匹配。上述节点对、邻居、对偶连通图、诱导传播图、相似度不动点迭代计算的概念均可参照SF算法,SF算法的示例图如图2所示。
针对SF算法,结合图2,简介如下:
对偶连通图,英文为Pairwise Connectivity Graph,简称PCG,是由有向图A和有向图B派生出来的辅助数据结构,图中的每条边用一个三元组(s,p,o)表示,其中,s表示源点,p表示边名,o表示目的点。为了说明由A和B得到对偶连通图的方法,这里需要定义对偶连通图:
对偶连通图中的每个节点都来自A×B,并把(x,y)这样的节点叫做映射对。结合图2中的映射对(a,b)和(a1,b1),如果a与b相似,那么a1在某种程度上也可能与b1相似,这种可能性是源于l1边在图A中连接a和a1并且在图B中连接b和b1。在对偶连通图中体现了这种可能性,并把(a,b)和(a1,b1)叫做邻居。
诱导传播图,英文为Induced Propagation Graph,简称IPG,是从PCG图推导而来,加上了反向的边,边的权代表传播系数,衡量传播给邻居相似性的多少。
SF算法对于遵循相同模型规则的模式元素的匹配效果显著,但如背景技术部分所述,本体与关系数据库模式之间存在巨大的差异,SF算法在关系数据库模式和本体的匹配上效果较差,并不适用于本体与关系数据库模式之间的映射匹配。针对SF算法,进一步的可参考文献《Similarity Flooding:A Versatile Graph Matching Algorithm and Its Application toSchema Matching》(Melnik S,Molina-Garcia H,Rahm E,ICDE conference,2002:117-128)。
本发明通过建立RS2O图这一中间模型,并利用RS2O图这一中间模型将关系数据库模式和本体转化为统一的有向标记图,并通过关系数据库模式和本体的RS2O图形成SF算法的对偶连通图,使之适用于SF算法,突破了SF算法的局限;同时,对SF算法进行改良,引入人工反馈,从根本上改变了原SF算法的结构,删除了过滤的步骤,使得匹配结果正确可用。其次,本发明的方法,通过赋予边标记以统一的、额外的标记,能够额外的集成特定领域的信息,使得对某些领域的匹配工作更加有效。
针对传播系数ω,可采用现有的任意算法。进一步的,本发明引入新的边权值也即传播系数算法,使得边权值的计算更能反映节点对的相似程度,具体的,传播系数ω的计算公式如下:
设在诱导传播图中,边e由映射对n1指向映射对n2,其传播系数ω(n1,n2)=(score(n1)*score(n2))/outl,其中,score(n1)为n1映射对节点间的相似度,score(n2)为n2映射对节点间的相似度,outl为图中具有相同标记的有向边的边数。
针对相似度的不动点迭代计算,同样可采用现有的任意算法。在本发明中,具体的,所述步骤3-3)包括如下步骤:
3-3.1)采用编辑距离算法计算节点x和节点y间的编辑距离,并采用最小编辑距离作为两节点间的初始化相似度σ0;由σi代表第i次迭代后的相似度,公式如下:
其中,映射对(au,bu)和映射对(av,bv)均表示映射对(x,y)的邻居映射对,其中,映射对(au,bu)表示的映射对和映射对(x,y)之间的边由映射对(au,bu)指向映射对(x,y),映射对(av,bv)表示的映射对和映射对(x,y)之间的边由映射对(x,y)指向映射对(av,bv);
3-3.2)根据步骤3-3.1)的公式,在完成一次所有映射对的相似度不动点迭代计算后,将各映射对的相似度除以本次计算的最大相似度;
3-3.3)根据步骤3-3.2)的计算结果进行人工反馈,若接受映射对则将该映射对的相似度赋值为1,若拒绝映射对则将该映射对的相似度赋值为0;
3-3.4)根据步骤3-3.3)的结果进行如下判断:
若映射对的不动点迭代计算结果收敛或达到迭代次数上限计算结果任不收敛,则该映射对的计算完成;否则将映射对的结果带入3-3.1)进行下一次的不动点迭代计算;
针对计算完成的映射对,若映射对的不动点迭代计算结果收敛,则该映射对的节点匹配,得到该映射对两节点所代表的关系数据库模式元素和本体元素之间的映射关系;若映射对达到迭代次数上限计算结果任不收敛,则该映射对的节点间不匹配;
3-3.5)完成所有映射对的相似度不动点迭代计算,得到关系数据库模式元素与本体元素之间的一对一映射关系。
上述编辑距离算法为现有算法,使用节点标记的字符串匹配。迭代次数上限可直接引用现有SF算法的定量计算方法,在本实施例中,设定的迭代上限是对偶连通图中映射对数量的平方。
进一步的,所述步骤3)之后设置有步骤4):将关系数据库模式的元素替换为与其存在映射关系的本体元素,得到本体化的关系数据库模式。此时,各成员关系数据库表结构的元素均替换为与其存在映射关系的本体元素,因此,能够直接实现各成员关系数据库间的语义互通和数据交换,而无需转换。
为了进一步提高跨平台的通用性,在所述步骤4)中将得到的本体化的关系数据库模式采用XML Schema Definition格式进行封装。
XML是eXtensible Markup Language的缩写,中文称为可扩展标记语言,其易于在任何应用程序中读写数据,不依附于特定浏览器,是当前数据交换常用的公共语言。
XML Schema Definition简称XSD,是用于描述XML文档的结构。具体的讲,文档设计者可以通过XSD指定一个XML文档所允许的结构和内容,并可据此检查一个XML文档是否是有效的。其次,XSD本身是一个XML文档,符合XML语法结构,可以用通用的XML解析器解析它。一个XSD通常会定义:文档中出现的元素、文档中出现的属性、子元素、子元素的数量、子元素的顺序、元素是否为空、元素和属性的数据类型、元素或属性的默认和固定值。
XML层次树结构表示的XSD图是以一个根为基础建立的,其他子元素都必须与根元素相关。所以关系数据库模式也要表示成一种“树”型结构才能转换成XSD的层次树结构。为了执行转换过程,用户需要选择一个根关系。因此,封装过程如图4所示,首先将本体化后的关系数据库模式表示为一种扩展实体关系模型,从关系数据库模式中找出表中分类关系,关系包括主键,外键和复合键,然后依据数据的语义约束将它们的关系进行分类,这样就得到了关系模式的语义抽象——扩展实体关系;然后选择一个根关系,之后将扩展实体关系模型的各元素转化为XML的元素。
采用XSD格式进行数据封装,能够直接用于数据结构验证,能够极大的方便数据交换和共享,具体方式可采用任意的现有方式。