[發明專利]一種基于spark的大規模知識圖譜語義查詢方法有效
| 申請號: | 201710326554.4 | 申請日: | 2017-05-10 |
| 公開(公告)號: | CN107247738B | 公開(公告)日: | 2019-09-06 |
| 發明(設計)人: | 陳華鈞;陳曦;張寧豫;吳朝暉 | 申請(專利權)人: | 浙江大學 |
| 主分類號: | G06F16/33 | 分類號: | G06F16/33;G06F16/36 |
| 代理公司: | 杭州天勤知識產權代理有限公司 33224 | 代理人: | 胡紅娟 |
| 地址: | 310013 浙江*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 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)將上一次的鏈接結果作為最后鏈接結果返回。
2.如權利要求1所述的基于spark的大規模知識圖譜語義查詢方法,其特征在于,所述操作元語包括:transformation元語和action元語。
3.如權利要求2所述的基于spark的大規模知識圖譜語義查詢方法,其特征在于,所述transformation元語包括:
Generate元語:生成一個分布式內存對象;
filter元語:根據查詢條件過濾相關數據;
prepartition元語:采用預分區的方法存儲索引;以及
join元語:將兩個分布式內存對象進行連接操作。
4.如權利要求1所述的基于spark的大規模知識圖譜語義查詢方法,其特征在于,所述根據每個三元組模式的特征分配不同的得分函數的分配原則為:
三元組模式僅包含一個變量,得分為5;
三元組模式包含一個變量且主語和謂語的類型確定,得分為4;
三元組模式包含一個變量且主語和謂語的類型不確定,得分為3;
三元組模式包含兩個變量,得分為2。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于浙江大學,未經浙江大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710326554.4/1.html,轉載請聲明來源鉆瓜專利網。





