【技术实现步骤摘要】
本专利技术涉及主数据管理,更具体地说本专利技术涉及将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难直接按照所设定的条件直接 查询得出结果。另夕卜,该 ...
【技术保护点】
一种将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[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。