1 / 39

輸出 XML 關鍵字查詢有效節點之研究 The Research on Identifying Contributors for XML Keyword Search

輸出 XML 關鍵字查詢有效節點之研究 The Research on Identifying Contributors for XML Keyword Search. 指導教授:張 雅 惠 老師 研 究 生 :簡 伯 先. 大綱. 背景說明 MaxMatch 系統 TDPrune 系統 LevelPrune 系統 改進方式 實驗 結論. 背景說明. 背景說明 -XML 樹與杜威編碼. 杜威編碼 節點 之間的結構關 係 父子關係: 1.2 為 1.2.3 之父親節點。 祖孫關係: 1.2 為 1.2.3.2 之祖先節點

celina
Download Presentation

輸出 XML 關鍵字查詢有效節點之研究 The Research on Identifying Contributors for XML Keyword Search

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 輸出XML關鍵字查詢有效節點之研究The Research on Identifying Contributors for XML Keyword Search 指導教授:張 雅 惠 老師 研究 生 :簡 伯 先 DBLAB @ NTOU

  2. 大綱 • 背景說明 • MaxMatch系統 • TDPrune系統 • LevelPrune系統 • 改進方式 • 實驗 • 結論 DBLAB @ NTOU

  3. 背景說明 DBLAB @ NTOU

  4. 背景說明-XML樹與杜威編碼 • 杜威編碼 • 節點之間的結構關係 • 父子關係:1.2 為 1.2.3 之父親節點。 • 祖孫關係:1.2 為 1.2.3.2 之祖先節點 • 兄弟關係:1.2.2 為 1.2.3 之兄弟節點 DBLAB @ NTOU

  5. 背景說明-MaxMatch[LC08]之查詢輸出結果 資訊需求:球員Jim的守備位置(POSITION)及其隊名(TEAM_NAME) : 對應節點 (match) : SLCA( Smallest Lowest Common Ancestor ) : 貢獻節點 (contributor) : 相關對應節點 (relevant match) • MaxMatch[LC08]進一步篩選輸出結果 DBLAB @ NTOU

  6. 背景說明-研究目的 • 研究目的: • 探討以關鍵字查詢XML文件時,如何有效率的產生如MaxMatch[LC08]所定義之輸出結果。 DBLAB @ NTOU

  7. MaxMatch系統 DBLAB @ NTOU

  8. MaxMatch系統-判別貢獻節點 • 子孫對應關鍵字集合 (descendant match): • 節點及其所有子孫節點所包含的關鍵字之集合。 • 貢獻節點: • 若一節點的子孫對應關鍵字集合被其任一兄弟節點所 “真包含” ,則該節點非貢獻節點。 • 相關對應節點: • 任一對應節點至其SLCA路徑上的所有節點皆為貢獻節點,則該對應節點為相關對應節點。 B C A, B DBLAB @ NTOU

  9. MaxMatch系統-第一次追蹤 • Post-order累加 • 節點本身的dMatch (子孫對應關鍵字集合 ) • 父親節點的dMatchSet(孩子節點有哪些dMatch) 111(7) dMatchSet(布林陣列) 100(4) 110(6) 001(1) 100(4) dMatch(整數) 001(1) 100(4) 100(4) 100(4) 110(6) 100(4) 010(2) 100(4) 100(4) 100(4) 010(2) DBLAB @ NTOU

  10. MaxMatch系統-第二次追蹤 • Pre-order判斷是否為貢獻節點 111(7) (4)10 = (1002) (110)2 =(6)10 100(4) 110(6) 001(1) 100(4) 001(1) 100(4) 100(4) 100(4) 110(6) 100(4) 010(2) 100(4) 100(4) 100(4) 010(2) DBLAB @ NTOU

  11. MaxMatch系統-總計算量 • 我們將對應節點及其祖先節點分為以下三類: vc:本身被判斷為貢獻節點 vpc:父親被判斷為貢獻節點,本身非貢獻節點。 是否能避免計算vpnc節點而又能產生同樣的查詢結果?? vpnc:父親非貢獻節點 vall: + + • MaxMatch: • 對vall類節點計算其dMatch及dMatchSet。 • 再判斷vc及vpc類節點是否為貢獻節點。 DBLAB @ NTOU

  12. TDPrune系統 DBLAB @ NTOU

  13. TDPrune系統-流程 SLCA SLCA MaxMatch: post-order產生vall及其dMatch、dMatchSet pre-order 判斷vc及vpc是否為貢獻節點。 讀取索引 找SLCA 分群 match 對應節點 SLCA TDPrune: pre-order 產生貢獻節點。 讀取索引 找SLCA 分群 match DBLAB @ NTOU

  14. TDPrune系統-反轉索引 • 每一個關鍵字的反轉索引為一個feq✕ max_depth的二維陣列,其中: • feq:包含該關鍵字之節點的總個數 • max_depth:上述節點中最深的節點之層數 節點個數 第N層的編碼配上其第1 ~ (N-1)層的編碼皆代表一個該節點之 祖先節點。 節點最大深度 DBLAB @ NTOU

  15. TDPrune系統-計算SLCA • 計算SLCA有許多演算法 • 與MaxMatch一樣,我們採用 [XP05] 所提出的方法來計算SLCA。 kwMatch1 SLCA: kwMatch2 讀取索引 計算SLCA kwMatch3 , • 1 Y. Xu and Y. Papakonstantinou. Efficient Keyword Search for Smallest LCAs in XML Databases. In SIGMOD, 2005. [XP05] : DBLAB @ NTOU

  16. TDPrune系統-分群 kwMatch1 0 ~ 0 • MaxMatch: • 將所有該群的對應節點混合並排序後,存入一節點串列中。 • TDPrune: • 利用一個大小為 ( 2 ✕關鍵字個數 )的數字陣列dmatch_range 記錄。 1 ~ 1 kwMatch2 0 ~ 1 2 ~ 2 kwMatch3 0, 0 ) dmatch_range = ( 0, 0, 0, 1, • 1 0 ~ 0 1 ~ 1 dmatch_range = ( 1, 1, 2, 2, 1, 1 ) DBLAB @ NTOU

  17. TDPrune系統-產生貢獻節點 kwMatch1 A 1.2 ( -1, 0, -1, 1, -1, 0 ) ( -1, 0, 1, 1, -1, 0 ) ( 0, 0, 0, 1, 0, 0 ) ( 0, 0, 0, 1, -1, 0 ) kwMatch2 C 1.2.1 1.2.2 1.2.3 A, B B B ( -1, -1, 1, 1, -1, -1 ) ( -1, -1, -1, -1, 0, 0 ) ( 0, 0, 0, 0, -1, -1 ) C kwMatch3 • 1 DBLAB @ NTOU

  18. TDPrune系統-產生貢獻節點 kwMatch1 A 1.2 kwMatch2 1.2.1 1.2.2 1.2.3 B ( -1, -1, 1, 1, -1, -1 ) ( -1, -1, -1, -1, 0, 0 ) ( -1, 0, 0, 0, -1, -1 ) ( 0, 0, 0, 0, -1, -1 ) ( -1, 0, -1, 0, -1, -1 ) A 1.2.2.1 B 1.2.2.2 ( 0, 0, -1, -1, -1, -1 ) ( -1, -1, 0, 0, -1, -1 ) C kwMatch3 • 1 DBLAB @ NTOU

  19. TDPrune系統-產生貢獻節點 kwMatch1 A 1.2 kwMatch2 1.2.1 1.2.2 1.2.3 B 1.2.2.1 1.2.2.2 ( 0, 0, -1, -1, -1, -1 ) ( -1, 0, -1, -1, -1, -1 ) ( -1, -1, 0, 0, -1, -1 ) C kwMatch3 • 1 1.2.2.1.1 ( 0, 0, -1, -1, -1, -1 ) DBLAB @ NTOU

  20. LevelPrune系統 DBLAB @ NTOU

  21. LevelPrune系統 1.2 cur_level串列 1.2.1 1.2.2 1.2.3 1.2 next_level串列 cur_level串列 1.2.1 1.2.2 next_level串列 輸出: 1.2 DBLAB @ NTOU

  22. LevelPrune系統 1.2.1 1.2.2 無孩子節點 1.2.2.1 1.2.2.2 cur_level串列 1.2.1 1.2.2 next_level串列 1.2.2.1 1.2.2.2 輸出: 1.2 1.2.1 1.2.2 DBLAB @ NTOU

  23. LevelPrune系統 • 相較於TDPrune以深度優先來追蹤節點,LevelPrune以廣度優先的方式來追蹤節點。 • TDPrune: • LevelPrune: DBLAB @ NTOU

  24. 改進方式 DBLAB @ NTOU

  25. 改進方式-XML樹 kwMatch2 DBLAB @ NTOU

  26. 改進方式-編碼行導向儲存 1 列導向儲存: 行導向儲存: ( a, b, c, d, 0, 15 ) kwMatch3 kwMatch3 DBLAB @ NTOU

  27. 改進方式-編碼壓縮暨索引壓縮 編碼壓縮: 編碼未壓縮: 1 kwMatch3 kwMatch3 ( a, b, c, d, 0, 15 ) 2次 1.2 ( a, b, c, d, 0, ? ) 15次 ( a, b, c, d, 0, 13 ) 索引未壓縮: 索引壓縮: DBLAB @ NTOU

  28. 實驗 DBLAB @ NTOU

  29. 實驗-實驗環境 • 個人電腦: • CPU: Intel i7 2600 ( 3.4GHz ✕ 4 cores)。 L1: 64KB、L2: 256KB、L3: 8MB • RAM: 16GB。 • OS: Windows 7 Enterprise 64bit • 實作工具: • Microsoft Visual C++ 2010 • 以Oracle Berkeley DB來儲存索引 • 比較系統: • TDPrune、LevelPrune、LevelPrune+、MaxMatch • 資料集: DBLAB @ NTOU

  30. 實驗-多樣化查詢句1 • 實驗:以[LC08]所用來測試的查詢句來比較。 • 結果: • 執行時間: MaxM > TD > Level > Level+ • TD > Level: • TD需保存及處理較多節點串列資訊。 • Level > Level+ • Level+使用了 • 編碼行導向儲存 • 編碼壓縮 • 索引壓縮 DBLAB @ NTOU

  31. 實驗-多樣化查詢句2 • 結果: • TQ10、TQ11中,由於|vall|高,所以MaxM時間大幅增加。 • 需處理節點個數相同時,本論文之三系統略快於MaxM。 DBLAB @ NTOU

  32. 實驗-關鍵字個數 • 實驗:變動關鍵字個數。 • 資料集:DBLP • 結果: • 關鍵字個數與花費時間無明顯相關 DBLAB @ NTOU

  33. 實驗-對應節點個數 • 實驗:變動對應節點總個數。 • 資料集:SwissProt • 結果: • 對應節點總個數上升有很大可能導致|vall|上升,進而增加執行時間,但並非絕對。 DBLAB @ NTOU

  34. 實驗-輸出節點數量 • 實驗:變動輸出節點總數量(|vc|)。 • 資料集:DBLP • 結果: • 實驗時間隨輸出節點總數量上升。 • 本論文三系統時間高於MaxMatch。(後述) DBLAB @ NTOU

  35. 實驗-輸出節點比率 • 實驗:變動輸出節點比率。(|vc|+|vpc|) / |vall| • 結果: • 本論文三系統與MaxMatch之時間差隨輸出節點比率上升而減少。 • Level系列系統較TD為慢。(後述) DBLAB @ NTOU

  36. 實驗-節點使用快取記憶體情況 • 節點若能在被從快取記憶體中移出之前進行存取,則其第二次存取較快 • MaxMatch: • LevelPrune: • TDPrune: DBLAB @ NTOU

  37. 實驗-輸出節點數量 • 實驗:變動輸出節點總數量。 • 本論文三系統時間高於MaxMatch。 • 選用關鍵字 (incollection、book、proceedings、article、inproceedings、www)皆為根節點之孩子,造成如下樣式答案樹。 所有系統皆無法利用快取記憶體的優勢 … • 本論文三系統對節點進行較複雜的處理(分配dmatch_range),因此較慢。 DBLAB @ NTOU

  38. 實驗-輸出節點比率 • 實驗:變動輸出節點比率。 • 執行時間Level高於TD。 根節點 • 選用關鍵字(dblp、year、2008、2007、2004)造成如下樣式答案樹。 TDPrune: • 於處理第二層及第三層節點時 • TDPrune會使用快取記憶體。 • Level無法使用。 … year year year year year 2008 2004 2004 2008 2007 DBLAB @ NTOU

  39. 結論 • 提出TDPrune、LevelPrune、LevelPrune+系統 • 相較MaxMatch,大部份情況下會處理較少節點 • 即使需處理同樣多節點,也有機會因快取記憶體的優勢來減少計算時間 • 在處理相同節點,及無法使用快取記憶體的情況下,三系統效能略輸MaxMatch。 • 未來研究方向 • 依據fanout、depth,在查詢時自動選擇合適的系統。 • 支援Top-k的關鍵字查詢 DBLAB @ NTOU

More Related