一种基于Redis的RDF数据分布式存储和查询方法_2

文档序号:8457376阅读:来源:国知局
【主权项】
1. 一种基于Redis的RDF数据分布式存储方法,其特征在于,按照如下步骤实现: 51 :提供一基于Redis的RDF数据分布式存储系统,该存储系统包括:一个管理节点 (ManageNode)以及与该管理节点(ManageNode)相匹配的处理节点(ProcessNode)和存 储节点(StorageNode);其中,所述管理节点(ManageNode)提供对外的接口,负责接收以 及解析外部的RDF数据; 52 :在存储节点(StorageNode)的Redis中,首先根据RDF数据本体中的定义,建立以 主语所属的类命名的类数据库,同时在该类数据库中,为每一个属性建立以该属性命名的 属性集合,即谓语集合;根据解析后RDF数据对应的三元组中主语的类型和谓语,将主语为 同一类、谓语相同的主语不重复地置于该类数据库中的谓语集合中,并为该谓语集合中的 每个主语建立以该主语和其对应的谓语命名的宾语集合,用以存放该主语及其谓语对应的 所有宾语;然后为每一个谓语建立谓语反转备份,即根据同一个谓语,建立一个以该谓语反 转谓语命名的反转谓语集合;再将解析后RDF数据对应的三元组中主语为同一个类、谓语 相同的宾语不重复地置于该反转谓语集合中,并为该反转谓语集合中每个宾语建立以该宾 语和其对应的谓语命名的主语集合,以存放该宾语及其谓语对应的所有主语。
2. 根据权利要求1所述的一种基于Redis的RDF分布式存储方法,其特征在于:每个 存储节点(StorageNode)包含一个Redis,每个Redis中均能创建N个类数据库,且该N为 正整数。
3. 根据权利要求1所述的一种基于Redis的RDF分布式存储方法,其特征在于:所述 管理节点(ManageNode)通过每个存储节点(StorageNode)对应的IP地址、端口地址以及 类数据库编号访问每个存储节点(StorageNode)的Redis中的类数据库。
4. 根据权利要求1所述的一种基于Redis的RDF分布式存储方法,其特征在于:在 所述存储系统中,所述处理节点(ProcessNode)通过Redis提供的API与所述存储节点 (StorageNode)进行通信。
5. 根据权利要求1所述的一种基于Redis的RDF分布式存储方法,其特征在于:在所 述存储系统中,所述处理节点(ProcessNode)和所述存储节点(StorageNode)为多对多 的关系。
6. -种基于权利要求]-5任一项所述的一种基于Redis的RDF分布式存储方法的基 于Redis的RDF数据分布式查询方法,其特征在于,包括如下步骤: 531 :管理节点(ManageNode)判断查询语句对应的Type;若查询语句的主语所属类已 知、谓语未知,则转入步骤S32 ;若查询语句的主语所属类未知、谓语已知,则转入步骤S33 ; 若查询语句的主语所属类已知、谓语已知,则转入步骤S34 ; 532 :从所述存储系统的各个存储节点(StorageNode)的Redis对应的类数据库中进 行查找; 533 :从查询语句的本体文件中获取谓语的定义域,将所有谓语的定义域的交集作为查 询的主语类型,转化为主语所属类已知、谓语已知的类型,并转入步骤S34 ; 534 :管理节点(ManageNode)判断查询语句中的主语或宾语是否已知,若主语或者宾 语其中有一个已知,管理节点(ManageNode)直接进行查询,且该查询过程的时间复杂度为 0 (1);若主语和或宾语均未知,则转入步骤S35 ; 535 :管理节点(ManageNode)查找处理节点(ProcessNode)的注册表,根据该注册表 中已注册的处理节点(ProcessNode)的个数,将整个查询任务分割成对应个数的子任务,并 分配给各个处理节点(ProcessNode)进行查询;处理节点(ProcessNode)根据子查询任务 中查询语句对应的存储节点(StorageNode),从该存储节点(StorageNode)中进行查询; 处理节点(ProcessNode)查询完成后将结果返回给管理节点(ManageNode)。
7. 根据权利要求6所述的一种基于Redis的RDF分布式查询方法,其特征在于:主语 或宾语已知的查询,管理节点(ManageNode)将查询分成三个阶段:查询语句分析、定位数 据集和执行查询操作。
8. 根据权利要求6所述的一种基于Redis的RDF分布式查询方法,其特征在于:对于 元组模式个数较多和语义较复杂的查询语句,管理节点(ManageNode)将查询任务分成多 个子查询任务并传送至处理节点(ProcessNode)进行执行。
9. 根据权利要求6所述的一种基于Redis的RDF分布式查询方法,其特征在于:对于 元组模式个数较多和语义较复杂的查询语句,管理节点(ManageNode)通过连接选择策略 树(SST)生成连接策略,且在所述连接选择策略树(SST)中,选择策略树包含一个根节点: Decision节点,用于生成连接策略;所述Decision节点下一级是由每条查询语句中谓语对 应生成的Pi节点,Pi节点包含两种子节点:Si(主语)节点和Oi(宾语)节点,且Si(主 语)节点包括所有谓词为Pi的主语实例,〇i(宾语)节点包括所有谓词为Pi的宾语实例; 除了Decision节点外,每个节点都具有自己的权值,符号定义如下:Pi:SST中第i个P节 点;Si:第i个P节点的S子节点;Oi:第i个P节点的0子节点;sj:Si节点下的第j个s 子节点;〇j:〇i节点下的第j个〇节点;权值计算公式如下:
SST根据每个Pi节点的Si节点的权值value(Si)和Oi节点的权值value(Oi),获取 查询数据集,具体包括如下步骤: 541 :若value(Si)>value(Oi),则转入步骤S42 ;若如果value(Si)〈value(Oi),则转入 步骤S43 ;若value(Si)=value(Oi),则随机转入步骤S42或步骤S43 ; 542 :将查询语句的宾语作为key,对应的主语集合作为value存入Map中,且 value(Pi)=value(Oi); 543 :将查询语句的主语作为key,对应的宾语集合作为value存入Map中,且 value(Pi)=value(Si)〇
【专利摘要】本发明涉及一种基于Redis的RDF分布式存储和查询方法,所述RDF分布式存储方法采用Type-P数据分配的、基于Redis的RDF分布式存储系统的RDF分布式存储方法;所述RDF分布式查询方法通过判断查询语句复杂程度,选择不同的查询方式,以达到快速有效的查询。本发明所提出的一种基于Redis的RDF分布式存储方法和查询方法,通过将分布式存储系统和优化后的查询方法结合起来,有效的缩小了查询范围,提高了查询效率,并且在查询的元组模式个数较多和语义较复杂时也能高效工作,从而满足了大规模RDF数据的存储与查询的需求。
【IPC分类】G06F17-30
【公开号】CN104778277
【申请号】CN201510213313
【发明人】汪璟玢, 董书暕
【申请人】福州大学
【公开日】2015年7月15日
【申请日】2015年4月30日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1