将SPARQL查询转化成SQL查询的方法和装置制造方法及图纸

技术编号:4262022 阅读:384 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及主数据管理,更具体地说本发明专利技术涉及一种将SPARQL查询转化成SQL查询的方法和装置,以便支持关系数据库上的语义查询和分析推理功能。根据本发明专利技术的将SPARQL查询转化成SQL查询的方法包括:加载链接关系数据与本体的映射信息;加载映射信息中所引用的元数据信息;对含有N-Ary节点的SPARQL查询进行展开以生成SPARQL查询模式树;以及根据映射信息和元数据信息将SPARQL查询模式树中的模式节点转换成相应的SQL语句。

【技术实现步骤摘要】

本专利技术涉及主数据管理,更具体地说本专利技术涉及将SPARQL查询转化 成SQL查询的方法和装置,以便支持关系数据库上的语义查询和分析推 理功能。
技术介绍
随着市场竟争的加剧,现在公司越来越严重地依赖于各种信息,比如 客户数据和产品信息等等。能够由公司跨交易处理和系统重复使用的核心 商业实体(entity)通常称作主数据,比如客户、供应商、账户、产品或组织 单元的列表或等级。近来,知名的数据管理解决方案提供商,比如IBM、 Oracle、 SAP等公司已经发布了他们各自的主数据管理(MDM, master data management)方案,特别是关于客户数据管理(CDM(customer data management),也称作客户数据集成(CDI , customer data integration))和 产品信息管理(PIM, product information management)的解决方案。但是, 称为语义失配的问题已经成为有效使用这些系统的障碍。语义失配常常是由于查询和底层数据使用不同层级的概念粒度和术语 变体而导致的。图1示出了使用不同层级的概念粒度所导致的语义失配的 两个示例。图1所示的第 一个查询请求返回EDOX公司的所有位于欧洲且从事IT 行业的股东,然而公司却是按照所在的城市对所处的地区进行登记并且按 照具体的IT产品对所涉及的业务进行登记。也就是说,各个公司并不是 按照所处的各大洲进行位置登记,而且也没有按照所从事的行业进行登 记。这样自然就出现了语义失配的情况,m难直接按照所设定的条件直接 查询得出结果。另夕卜,该查询还要求返回EDOX的所有直接和间接股东, 这将导致递归查找,而其迭代次数在执行前无法预知。对于该查询,最终 通过传递闭包和包含推理的方法得到检索结果为FOO公司。图1所示的第二个查询请求返回生产无线电通信产品并且由加拿大公 司持有股份的软件公司,然而潜在的可能匹配的公司却将其业务登记为无7线电通信软件。同样,对于该查询,也无法按照所设定的条件直接查询得 出结果。对于该查询,最终通过分类和包含推理的方法得到检索结果为BAR公司。从以上两个示例可以看出,查询是以不同层级的概念粒度进行的,并 且都需要进行递归查找。递归查找指的是内在的逻辑关系。另外一种语义失配在这里称作术语变体,由于非常容易理解,因此在 这里不再给出具体的示例。一般而言,可以将语义失配归结为知识隔阂,这是因为该问题不仅仅 由于术语选择不同而导致,而且往往也由于缺^目当的本体知识所导致。通常该知识隔阂可以通过引入本体(ontology)来弥补,如图1的右上部 分所示。本体描述了概念层级、概念属性以及概念之间的关系。但是,本体的归并是一项非常复杂瑣碎的任务。例如,对于上面提到的第一个查询, 必须对Hold关系的传递闭包进行复杂的推理和计算。针对该问题,提出了将关系数据库中的数据发布为虚拟RDF数据存储 库(virtual Resource Description Frame store)的解决方案。例如,在 http:〃www.w3.org/2007/03/RdfRDB/papers/d2rq-positionpaper/中介绍了 基于D2R(database to RDF)映射的系统平台,可为用户提供对发布的RDF 虚拟数据的SPARQL查询,但该平台仅包括简单的查询功能。另外,在 http:〃ieeexplore.ieee.org/Xplore/login.jsp url=/iel5/10810/34089/01623850 pdf tp=&isnumber=&arnumber=1623850中提出 一种利用关系OWL (Web Ontology Language,网络本体语言)来把关系数据库发布成虚拟 RDF存储库的方法,并利用SPARQL语言对虚拟RDF存储库提供简单 的查询。但是,这些系统平台和方法均没有提供在发布的关系数据库上的分析 功能,并且还经常产生大量的低效SQL,给系统和网络造成过重的负担。 因此,对于已有的虚拟RDF存储库来说,仍然面临着如何高效地将语义 SPARQL查询翻译成SQL查询以及如何在语义查询处理中支持数据分析 推理功能的问题和挑战。
技术实现思路
鉴于上述情况,本专利技术提出一种新的SPAQRL模式树结构来对标准 SPARQL查询进行扩展,并在此基础上提供一种高效的将SPARQL查询转化成SQL查询的方法和装置,以便在对用户的语义查询进行处理时支 持数据分析推理功能。根据本专利技术的一个方面,提供一种将SPARQL查询转化成SQL查询 的方法,包括加载链接关系数据与本体的映射信息;加载映射信息中所 引用的元数据信息;对含有N-Ary节点的SPARQL查询进行展开以生成 SPARQL查询模式树;以及根据映射信息和元数据信息将SPARQL查询 模式树中的模式节点转换成相应的SQL语句。才艮据本专利技术的另一个方面,提供一种将SPARQL查询转化成SQL查 询的装置,包括SPARQL查询解析器,用于对扩展后的SPARQL查询 进行解析以生成包括N-Ary节点的SPARQL模式树;DataLog引擎, 用于对包括N-Ary节点的SPARQL模式树进行展开和推定处理,以 生成SPARQL查询模式树;以及SQL生成器,用于根据映射信息和元数 据信息将SPARQL查询模式树中的模式节点转换成相应的SQL语句。优选地,对包含递归规则的N-Ary节点进行推定,并将推定结果作为 临时表格存储在关系数据库中;以及将SPARQL查询模式树中的该N-Ary 节点用与临时表格相关联的临时模式替代。根据本专利技术的一个优选实施例,所生成的SPARQL查询模式树包括 TRIPLE节点、AND节点、OR节点、FILTER节点、临时 模式节点、或者除递归规则之外的其他规则,并且将所生成的SPARQL 查询模式树中包括的TRIPLE节点、AND节点、OR节点、或 者FILTER节点转换成相应的SQL语句。根据本专利技术的一个具体实施例,所述映射信息包括关系数据库的字段 和RDF类或属性之间的映射关系;以及所述元数据信息包括数据库字段 的数据类型、允许为空标志以及主关键词标志等。本专利技术也提供应用上述将SPARQL查询转化成SQL查询的方法及其 装置的主数据管理系统。另外,本专利技术还提供用于实现上述将SPARQL查询转化成SQL查询 的方法的计算;^4呈序。此外,本专利技术也提供至少计算机可读介质形式的计算机程序产品,其 上记录有用于实现上述将SPARQL查询转化成SQL查询的方法的计算机 程序代码。附图说明参照下面结合附图对本专利技术实施例的说明,会更加容易地理解本专利技术 的以上和其它目的、特点和优点。在附图中,相同的或对应的技术特征或 部件将采用相同或对应的附图标记来表示。图1示出了使用不同层级的概念粒度所导致的语义失配的两个具体示例。图2示出了可实现本专利技术的分布式数据处理系统的方框图。图3示出了根据本专利技术一个实施例的扩展后的SPARQL查询的示例。图4示出了根据本专利技术一个实施例的SPARQL查询的展开处理的示例。图5示出了根据本专利技术一个实施例的规则和SPARQL查询的示例。 图6示出了根据本专利技术一个实本文档来自技高网
...

【技术保护点】
一种将SPARQL查询转化成SQL查询的方法,包括: 加载链接关系数据与本体的映射信息; 加载映射信息中所引用的元数据信息; 对含有N-Ary节点的SPARQL查询进行展开以生成SPARQL查询模式树;以及 根据映射 信息和元数据信息将SPARQL查询模式树中的模式节点转换成相应的SQL语句。

【技术特征摘要】
1.一种将SPARQL查询转化成SQL查询的方法,包括加载链接关系数据与本体的映射信息;加载映射信息中所引用的元数据信息;对含有N-Ary节点的SPARQL查询进行展开以生成SPARQL查询模式树;以及根据映射信息和元数据信息将SPARQL查询模式树中的模式节点转换成相应的SQL语句。2. 如权利要求1所述的将SPARQL查询转化成SQL查询的方法, 还包括对包含递归规则的N-Ary节点进行推定,并将推定结果作为临时表 格存储在关系数据库中;以及将SPARQL查询模式树中的该N-Ary节点用与临时表^相关联的临 时模式替代。3. 如权利要求2所述的将SPARQL查询转化成SQL查询的方法, 其中所生成的SPARQL查询模式树包括TRIPLE节点、AND节点、 OR节点、FILTER节点、临时模式节点、或者除递归规则之外的 其他规则;以及所述根据映射信息和元数据信息将SPARQL查询模式树中的模式节 点转换成相应的SQL语句包括,将所生成的SPARQL查询模式树中包括 的TRIPLE节点、AND节点、OR节点、或者FILTER节点 转换成相应的SQL语句。4. 如权利要求3所述的将SPARQL查询转化成SQL查询的方法, 其中将TRIPLE节点转换成相应的SQL语句包括从映射信息中搜索与TRIPLE节点的谓词相匹配的TripleRelation;通过TRIPLE节点中的主语和宾语对搜索到的匹配TripleRelation 进行剪枝;生成包括剪枝处理后余下的TripleRelation的主语、谓词和宾语的字段的SELECT子句;生成连接条件以构造FROM子句;根据映射信息添加各种M以构造WHERE子句;以及从SELECT子句、WHERE子句、Alias、以及连接^f的字段中提 取表名称,以生成与该TRIPLE节点相对应的SQL语句。5. 如权利要求4所述的将SPARQL查询转化成SQL查询的方法, 其中TripleRelation才艮据映射信息来生成,并且组织为三元结构的形式< 主语的IRI模式,谓词,宾语的IRI或文^漠式>;在剪枝处理中仅保留与TRIPLE节点的主语/宾语的数据类型和主 语/宾语的IRI或文^^式相兼容的TripleRelation;以及在剪枝处理中过滤字段中的空记录。6. 如权利要求3所述的将SPARQL查询转化成SQL查询的方法, 其中将AND节点转换成相应的SQL语句包括将AND节点所包含的子SQL展平;生成子查询之间的连接条件;检测并缩减不必要的自连接;以及替换WHERE条件中的相关字段,以生成SQL语句。7. 如权利要求6所述的将SPARQL查询转化成SQL查询的方法, 其中检测并缩减不必要的自连接包括检测并缩减主关键词上的自连接。8. 如权利要求3所述的将SPARQL查询转化成SQL查询的方法, 其中将OR节点转换成相应的SQL语句包括生成子查询的UNION的SQL;以及缩减不必要的UNION,以生成SQL语句。9. 如权利要求3所述的将SPARQL查询转化成SQL查询的方法, 其中将FILTER节点转换成相应的SQL语句包括为FILTER节点中的每一个变量确定字段;通过映射信息或者元数据信息获取数据类型信息;以及根据所获取的数据类型信息和所确定的字段,通过IRI或文4^式生 成该FILTER节点的布尔面,以生成SQL语句。10. 如权利要求1 ~ 9任一所述的将SPARQL查询转化成SQL查询 的方法,其中所述映射信息包括关系数据库的字段和RDF类或属性之间的映射关 系;以及所述元数据信息包括数据库字段的数据类型、允许为空标志以及主关 键词标志。11. 一种将SPARQL查询转化成SQL查询的装置,包括SPARQL查询解析器,用于对扩展后的SPARQL查询进行解析以生 成包括N-Ary节点的SPARQL模式树;DataLog引擎,用于对包括N-Ary节点的SPARQL模式树进行 展开和推定处理,以生成SPARQL...

【专利技术属性】
技术研发人员:曹锋马力孙行智王晨王晓元潘越查尔斯丹尼尔沃尔夫森保罗安东鲁道夫万兰
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1