用于为关系型数据库自动生成语义映射的方法和系统的制作方法_3

文档序号:9417359阅读:来源:国知局
[0059] 对于从语义映射处理模块获得的内部模型表示的D2RQ映射X0,以及从模式映射 处理模块获得的内部模型表示的模式映射YX,映射合成模块进行XO和YX的映射合成。根据 本发明的一个实施例,可以采用一个基于图遍历的算法来实现映射合成。以GXO代表D2RQ 映射XO的图结构表示,以GYX代表模式映射YX的图结构表示,以GYO代表D2RQ映射YO的 图结构表示,该算法如下:
[0060] 首先,从d2rq: ClassMap出发,在GXO图上遍历,通过边rdf: type反向指向D2RQ 类映射的结点,称之为集合NC ;
[0061] 对于任一结点c e NC,在GXO图上遍历,通过边d2rq:uriPattern指向空白结点, 继而通过边IinkToRDB指向关系型数据库X中"表名.列名"的结点,称之为集合NX ;
[0062] 对于任一结点X e NX,在GYX图上遍历,通过边IinkFromAssociation反向指向联 合结点,继而,一方面,通过边IinkToAssociation反向指向模式映射名的结点,称之为集 合匪;另一方面,通过边IinkFromAssociation指向关系型数据库Y中"表名.列名"的结 点,称之为集合NY ;
[0063] 对于任一结点m e匪,在GYX图上遍历,通过边IinkToAssociation指向联合结 点,继而通过边IinkFromAssociation指向双方都是关系型数据库Y中"表名.列名"的结 点u和V,定义集合NE = {〈u, v>};
[0064] 新建结点w,指向D2RQ类映射的结点c和模式映射名的结点m。
[0065] 举例来说,对于下面的D2RQ映射以及模式映射:
[0066] map:student rdf:type d2rq:ClassMap ;
[0067] d2rq:class onto:Student ;
[0068] d2rq:uriPattern "Student/OOStudent. name@@" ;·
[0069] Ml: VsdL: Vnamei Undergraduate (idl, name) ^3M2* Student (id2, name)
[0070] M2: Vid I ,: Vnamei Graduate (idl, name) - 3id2, Student (id2, name)
[0071] 如图5c所示,右边是D2RQ映射map: student的图结构表示,左边是模式映射Ml 和M2的图结构表示。从d2rq:ClassMap出发,在右图上遍历,通过边rdf:type反向指 向D2RQ类映射的结点map: student,再通过边d2rq:uriPattern指向空白结点,继而通过 边IinkToRDB指向关系型数据库X中的结点Student, name。接着,在左图上遍历,通过边 IinkFromAssociation反向指向两个联合结点,继而,一方面,通过边IinkToAssociation 分别反向指向模式映射名的结点Ml和M2,另一方面,通过边IinkFromAssociation分 别指向关系型数据库Y中的结点Undergraduate, name和Graduate, name。此外,从 Ml和M2出发,在左图上遍历,通过边IinkToAssociation指向联合结点,继而通过边 IinkFromAssociation并没有找到任何指向双方都是关系型数据库Y中"表名.列名" 的结点。因此,新建结点map: student 1和map: student2,分别指向D2RQ类映射的结点 map: student以及模式映射名的结点Ml和M2。
[0072] 虽然这里以例子的方式对映射合成模块的实现细节进行了说明,但本领域技术人 员可以理解的是,这些仅仅是为了示例的目的,本发明并不限于这些具体实现。
[0073] 映射编译模块对映射合成模块所合成的结果进行编译,获得相应的D2RQ映射Y0。 下面将结合一个示例描述通过图遍历实现的映射编译模块的实施例。
[0074] 从新建结点w出发,找到其指向D2RQ类映射的结点c和模式映射名的结点m ;
[0075] 从D2RQ类映射的结点c出发,通过边d2rq: class找到关联数据本体O相应的类 名 cn,得到 RDF 三兀组 w d2rq:class cn ;
[0076] 从模式映射名的结点m出发,通过边IinkToAssociation继而边 IinkFromAssociation 找到结点 y e NY,得到 RDF 三兀组 w d2rq:uriPattern "綱y@@" ;
[0077] 从模式映射名的结点m出发,如果相应的集合NE非空,那么对于每对关系型数据 库Y中"表名·列名"的结点u和V,其中<u, v> e NE,得到RDF三元组w d2rq: join "u = V"。
[0078] 举例来说,对于上述映射合成的如图5c所示的图结构表示,从新建的结点 map: student 1出发,找到其指向D2RQ类映射的结点map: student和模式映射名的结 点Ml。从map: student出发,通过边d2rq: class找到关联数据本体0相应的类名 onto: Student。从 Ml 出发,通过边 IinkToAssociation 继而边 IinkFromAssociation 找到 结点Undergraduate, name e NY。此外,从Ml出发,发现相应的集合NE为空集,即无需相应 的 d2rq: join 条件。最后,得到如下的 D2RQ 映射。map: studentlrdf: type d2rq: ClassMap ;
[0079] d2rq:class onto:Student ;
[0080] d2rq:uriPattern ^Student/iiUndergraduate. nameii^ ;.
[0081 ] 类似地,从新建的结点map: student2出发,找到其指向D2RQ类映射的结点 map: student和模式映射名的结点M2。从map: student出发,通过边d2rq: class找到 关联数据本体〇相应的类名〇nto:Student。从M2出发,通过边IinkToAssociation继 而边 IinkFromAssociation 找到结点 Graduate, name e NY。此外,从 M2 出发,发现 相应的集合NE为空集,即无需相应的d2rq: jo in条件。最后,得到如下的D2RQ映射。 map:student2rdf: type d2rq:ClassMap ;
[0082] d2rq:class onto:Student ;
[0083] d2rq:uriPattern " Student/??Graduate. name@@" ;·
[0084] 虽然这里以例子的方式对映射编译模块的实现细节进行了说明,但本领域技术人 员可以理解的是,这些仅仅是为了示例的目的,本发明并不限于这些具体实现。
[0085] 并且,上面虽然是以各个模块的实现为例进行了说明,本领域技术人员可以理解 的是,上述实现同样适用于根据本发明的用于自动生成语义映射的方法中的相应步骤。 [0086] 本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算 机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
[0087] 计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形 设备。计算机可读存储介质例如可以是一一但不限于一一电存储设备、磁存储设备、光存储 设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质 的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只 读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、 便携式压缩盘只读存储器(⑶-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例 如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用 的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁 波、通过波导或其他传输媒介传播的电磁波
[0088] (例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
[0089] 这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/ 处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或 外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网 关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接 收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备 中的计算机可读存储介质中。
[0090] 用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指 令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语 言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言一诸如 Smalltalk、C++等,以及常规的过程式编程语目一诸如"C"语目或类似的编程语目。计算机 可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独 立的软件包执行、部分在用户计算机上部
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1