[发明专利]一种基于spark的大规模知识图谱语义查询方法有效
申请号: | 201710326554.4 | 申请日: | 2017-05-10 |
公开(公告)号: | CN107247738B | 公开(公告)日: | 2019-09-06 |
发明(设计)人: | 陈华钧;陈曦;张宁豫;吴朝晖 | 申请(专利权)人: | 浙江大学 |
主分类号: | G06F16/33 | 分类号: | G06F16/33;G06F16/36 |
代理公司: | 杭州天勤知识产权代理有限公司 33224 | 代理人: | 胡红娟 |
地址: | 310013 浙江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于spark大规模知识图谱语义查询方法,包括:(1)将每一个三元组中的实体、关系分别替换成为相应的id;(2)基于类别与关系构建分层的子图索引,并将其存储于hdfs文件中;(3)将sparql查询所涉及到的操作通过spark操作元语进行翻译;(4)根据每个三元组模式的特征分配不同的得分函数,确定sparql查询中每个三元组模式的执行顺序;(5)根据三元组模式的执行顺序、spark操作元语执行查询与链接,并将其链接结果通过映射表进行解析后返回。本发明支持海量语义数据的高效查询,具有很强的扩展性,对基于大规模语义数据的查询应用具有很好的实用价值。 | ||
搜索关键词: | 一种 基于 spark 大规模 知识 图谱 语义 查询 方法 | ||
【主权项】:
1.一种基于spark的大规模知识图谱语义查询方法,包括以下步骤:(1)将数据中的每一个实体和关系分配一个单独的id,构建相应的映射表;然后根据映射表将遍历数据集中的每一个三元组中的实体、关系分别替换成为相应的id,形成新三元组;(2)在spark上,基于类别对象与关系对象构建分层的子图索引,并将该子图索引存储于hdfs文件中;(3)将sparql查询所涉及到的操作通过spark操作元语进行翻译;(4)解析sparql查询语句,根据每个三元组模式的特征分配不同的得分函数,确定sparql查询中每个三元组模式的执行顺序;(5)根据三元组模式的执行顺序、spark操作元语执行sparql查询与链接,返回最后链接结果;(6)将返回的最后链接结果通过映射表进行解析,将解析后的结果作为查询执行结果;所述的步骤(2)的具体步骤为:首先,分别为每一个类别对象和关系对象构建一个索引表,得到类别索引表和关系索引表,且该类别索引表和关系索引表组成第一层索引表;然后,基于类别索引表、关系索引表的链接操作构建类别‑关系索引表和关系‑类别索引表,并将该类别‑关系索引表和关系‑类别索引表组成第二层索引表;接下来,基于类别‑关系索引表和关系‑类别索引表的链接操作构建类别-关系-类别表,将其作为第三层索引表;最后,将第一层索引表、第二层索引表以及第三次索引表以文件的形式存储在hdfs分布式文件系统中,文件名和索引表名称一致;所述步骤(5)的具体步骤为:(a)启动spark进程,通过generate元语初始化一个分布式内存抽象块;(b)判断当前未被选择的查询三元组模式池是否为空,若是,执行步骤(e),若否,执行步骤(c);(c)在当前未被选择的查询三元组模式池中选择当前得分最高的三元组模式,按照三元组模式的类型选择相应的索引表,并执行翻译操作,得出该三元组模式的查询结果,并将该三元组模式标记为已选择;(d)将当前查询结果和上一次查询结果进行join操作,并跳转执行步骤(b);(e)将上一次的链接结果作为最后链接结果返回。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201710326554.4/,转载请声明来源钻瓜专利网。