将SPARQL查询转化成SQL查询的方法和装置[发明专利]

[19]
中华人民共和国国家知识产权局
[12]发明专利申请公布说明书
[11]公开号CN 101593180A [43]公开日2009年12月2日
[21]申请号200810098376.5[22]申请日2008.05.30
[21]申请号200810098376.5
[71]申请人国际商业机器公司
地址美国纽约
[72]发明人曹锋 马力 孙行智 王晨 王晓元 潘越
查尔斯·丹尼尔·沃尔夫森 保罗·安
东·鲁道夫·万·兰 [74]专利代理机构北京集佳知识产权代理有限公司代理人高少蔚 李德山
[51]Int.CI.G06F 17/30 (2006.01)
权利要求书 5 页 说明书 16 页 附图 11 页
[54]发明名称
将SPARQL查询转化成SQL查询的方法和装置
[57]摘要
本发明涉及主数据管理,更具体地说本发明涉
及一种将SPARQL查询转化成SQL查询的方法和装置,
以便支持关系数据库上的语义查询和分析推理功能。
根据本发明的将SPARQL查询转化成SQL查询的方法
包括:加载链接关系数据与本体的映射信息;加载
映射信息中所引用的元数据信息;对含有N-Ary节
点的SPARQL查询进行展开以生成SPARQL查询模式树;
以及根据映射信息和元数据信息将SPARQL查询模式
树中的模式节点转换成相应的SQL语句。
200810098376.5权 利 要 求 书第1/5页    1.一种将SPARQL查询转化成SQL查询的方法,包括:
加载链接关系数据与本体的映射信息;
加载映射信息中所引用的元数据信息;
对含有N-A r y节点的S P A R Q L查询进行展开以生成S P A R Q L查询模式树;以及
根据映射信息和元数据信息将SPARQL查询模式树中的模式节点转换成相应的SQL语句。
2.如权利要求1所述的将S P A R Q L查询转化成S Q L查询的方法,还包括:
对包含递归规则的N-Ary节点进行推定,并将推定结果作为临时表格存储在关系数据库中;以及
将SPARQL查询模式树中的该N-Ary节点用与临时表格相关联的临时模式替代。
3.如权利要求2所述的将S P A R Q L查询转化成S Q L查询的方法,其中:
所生成的SPARQL查询模式树包括“TRIPLE”节点、“AND”节点、“OR”节点、“FILTER”节点、临时模式节点、或者除递归规则之外的其他规则;以及
所述根据映射信息和元数据信息将SPARQL查询模式树中的模式节点转换成相应的SQL语句包括,将所生成的SPARQL查询模式树中包括的“TRIPLE”节点、“AND”节点、“OR”节点、或者“FILTER”节点转换成相应的SQL语句。
4.如权利要求3所述的将S P A R Q L查询转化成S Q L查询的方法,其中将“TRIPLE”节点转换成相应的SQL语句包括:
从映射信息中搜索与“TRIPLE”节点的谓词相匹配的TripleRelation;    通过“TRIPLE”节点中的主语和宾语对搜索到的匹配TripleRelation 进行剪枝;
生成包括剪枝处理后余下的TripleRelation的主语、谓词和宾语的字
段的SELECT子句;
生成连接条件以构造“FROM”子句;
根据映射信息添加各种条件以构造“W H E R E”子句;以及    从SELECT子句、WHERE子句、Alias、以及连接条件的字段中提取表名称,以生成与该“T R I P L E”节点相对应的S Q L语句。
5.如权利要求4所述的将S P A R Q L查询转化成S Q L查询的方法,其中:
TripleRelation根据映射信息来生成,并且组织为三元结构的形式<;主语的IRI模式,谓词,宾语的IRI或文本模式>;
在剪枝处理中仅保留与“TRIPLE”节点的主语/宾语的数据类型和主语/宾语的I R I或文本模式相兼容的T r i p l e R e l a t i o n;以及    在剪枝处理中过滤字段中的空记录。
6.如权利要求3所述的将S P A R Q L查询转化成S Q L查询的方法,其中将“AND”节点转换成相应的SQL语句包括:
将“AND”节点所包含的子SQL展平;
生成子查询之间的连接条件;
检测并缩减不必要的自连接;以及
替换WHERE条件中的相关字段,以生成SQL语句。
7.如权利要求6所述的将S P A R Q L查询转化成S Q L查询的方法,其中检测并缩减不必要的自连接包括检测并缩减主关键词上的自连接。
8.如权利要求3所述的将S P A R Q L查询转化成S Q L查询的方法,其中将“OR”节点转换成相应的SQL语句包括:
生成子查询的UNION的SQL;以及
缩减不必要的UNION,以生成SQL语句。
9.如权利要求3所述的将S P A R Q L查询转化成S Q L查询的方法,其中将“FILTER”节点转换成相应的SQL语句包括:
为“FILTER”节点中的每一个变量确定字段;
通过映射信息或者元数据信息获取数据类型信息;以及
根据所获取的数据类型信息和所确定的字段,通过IRI或文本模式生成该“FILTER”节点的布尔面,以生成SQL语句。
10.如权利要求1~9任一所述的将S P A R Q L查询转化成S Q L查询的方法,其中:
所述映射信息包括关系数据库的字段和RDF类或属性之间的映射关系;以及
所述元数据信息包括数据库字段的数据类型、允许为空标志以及主关键词标志。
11.一种将S P A R Q L查询转化成S Q L查询的装置,包括:    SPARQL查询解析器,用于对扩展后的SPARQL查询进行解析以生成包括“N-Ary”节点的SPARQL模式树;
DataLog引擎,用于对包括“N-Ary”节点的SPARQL模式树进行展开和推定处理,以生成SPARQL查询模式树;以及
SQL生成器,用于根据映射信息和元数据信息将SPARQL查询模式树中的模式节点转换成相应的SQL语句。
12.如权利要求11所述的将SPARQL查询转化成SQL查询的装置,其中所述DataLog引擎包括:
DataLog推定器,用于对存在递归规则的“N-Ary”节点进行推定,将推定结果作为临时表格存储在关系数据库中,并将SPARQL查询模式树中的该N-A r y节点用与临时表格相关联的临时模式替代;以及    树展开器,用于对不包含递归规则的“N-Ary”节点进行展开,将其展开为SQL生成器能够直接处理的“TRIPLE”节点、“AND”节点、“OR”节点、或者“FILTER”节点。
13.如权利要求12所述的将SPARQL查询转化成SQL查询的装置,其中所述SQL生成器包括:
“T R I P L E”节点到S Q L语句的转换器,用于将S P A R Q L模式树中的“TRIPLE”节点翻译成SQL语句;
“A N D”节点到S Q L语句的转换器,用于将S P A R Q L模式树中的“AND”节点翻译成SQL语句;
“OR”节点到SQL语句的转换器,用于将SPARQL模式树中的“OR”
节点翻译成SQL语句;以及
“F I L T E R”节点到S Q L语句的转换器,用于将S P A R Q L模式树中的“FILTER”节点翻译成SQL语句。
14.如权利要求13所述的将SPARQL查询转化成SQL查询的装置,其中“T R I P L E”节点到S Q L语句的转换器按照下述将S P A R Q L模式树中的“TRIPLE”节点翻译成SQL语句:
从映射信息中搜索与“TRIPLE”节点的谓词相匹配的TripleRelation;    通过“TRIPLE”节点中的主语和宾语对搜索到的匹配TripleRelation 进行剪枝;
生成包括剪枝处理后余下的TripleRelation的主语、谓词和宾语的字段的SELECT子句;
生成连接条件以构造“FROM”子句;
根据映射信息添加各种条件以构造“W H E R E”子句;以及    从SELECT子句、WHERE子句、Alias、以及连接条件的字段中提取表名称,以生成与该“T R I P L E”节点相对应的S Q L语句。
15.如权利要求14所述的将SPARQL查询转化成SQL查询的装置,其中:
TripleRelation根据映射信息来生成,并且组织为三元结构的形式<;主语的IRI模式,谓词,宾语的IRI或文本模式>;
在剪枝处理中仅保留与“TRIPLE”节点的主语/宾语的数据类型和主语/宾语的I R I或文本模式相兼容的T r i p l e R e l a t i o n;以及    在剪枝处理中过滤字段中的空记录。
16.如权利要求13所述的将SPARQL查询转化成SQL查询的装置,其中“A N D”节点到S Q L语句的转换器按照下述将S P A R Q L模式树中的“AND”节点翻译成SQL语句:
将“AND”节点所包含的子SQL展平;
生成子查询之间的连接条件;
检测并缩减不必要的自连接;以及
替换WHERE条件中的相关字段,以生成SQL语句。

本文发布于:2024-09-24 14:30:37,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/395096.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:查询   信息   模式   生成   映射   包括   节点
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议