輸出 xml 關鍵字查詢有效節點之研究 the research on identifying contributors for xml...

39
DBLAB @ NTOU 輸輸 XML 輸輸輸輸輸輸輸輸輸輸輸輸 The Research on Identifying Contributors for XML Keyword Search 輸輸輸輸 輸 輸 輸 輸輸 輸 輸 輸 輸 輸 2011/07/19 1/39

Upload: celina

Post on 18-Mar-2016

58 views

Category:

Documents


0 download

DESCRIPTION

輸出 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 之祖先節點 - PowerPoint PPT Presentation

TRANSCRIPT

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

DBLAB @ NTOU

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

指導教授:張 雅 惠 老師研 究 生 :簡 伯 先

2011/07/19 1/39

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

大綱 背景說明 MaxMatch 系統 TDPrune 系統 LevelPrune 系統 改進方式 實驗 結論

DBLAB @ NTOU2011/07/19 2/39

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

DBLAB @ NTOU

背景說明2011/07/19 3/39

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

背景說明 -XML 樹與杜威編碼

DBLAB @ NTOU

杜威編碼 節點之間的結構關係

父子關係: 1.2 為 1.2.3 之父親節點。 祖孫關係: 1.2 為 1.2.3.2 之祖先節點 兄弟關係: 1.2.2 為 1.2.3 之兄弟節點

2011/07/19 4/39

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

背景說明 -MaxMatch[LC08] 之查詢輸出結果

DBLAB @ NTOU

關鍵字JimPOSITIONTEAM_NAME

: 對應節點 (match)資訊需求:球員 Jim 的守備位置 (POSITION)及其隊名 (TEAM_NAME) : SLCA ( Smallest Lowest Common Ancestor ): 貢獻節點 (contributor): 相關對應節點 (relevant match)

MaxMatch[LC08]進一步篩選輸出結果

2011/07/19 5/39

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

背景說明 - 研究目的

DBLAB @ NTOU

研究目的: 探討以關鍵字查詢 XML 文件時,如何有效率的產生如 MaxMatch[LC08] 所定義之輸出結果。

2011/07/19 6/39

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

DBLAB @ NTOU

MaxMatch 系統2011/07/19 7/39

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

MaxMatch 系統 - 判別貢獻節點

DBLAB @ NTOU

關鍵字 代號Jim APOSITION BTEAM_NAME

C

子孫對應關鍵字集合 (descendant match) : 節點及其所有子孫節點所包含的關鍵字之集合。

⊃A, B

C B

貢獻節點: 若一節點的子孫對應關鍵字集合被其任一兄弟節點所 “真包含” ,則該節點非貢獻節點。

相關對應節點: 任一對應節點至其 SLCA路徑上的所有節點皆為貢獻節點,則該對應節點為相關對應節點。

2011/07/19 8/39

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

MaxMatch 系統 - 第一次追蹤

DBLAB @ NTOU

關鍵字 二進位 十進位MLB 001 1James 010 2POSITION

100 4

1. Post-order 累加a) 節點本身的 dMatch ( 子孫對應關鍵字集合

)b) 父親節點的 dMatchSet

( 孩子節點有哪些 dMatch)

001(1)

01234567

010(2)

100(4)

100(4)

100(4)

001(1)

100(4)

010(2)

100(4)

110(6)01234567 01234567 01234567 01234567

01234567

01234567 01234567 01234567

01234567

110(6)

111(7)

100(4)

100(4)

100(4)

100(4)0123456701234567

0123456701234567

01234567

01234567

01234567

0123456701234567

01234567

01234567

01234567

01234567

01234567

0123456701234567

01234567

01234567

2011/07/19 9/39

dMatch( 整數 )

dMatchSet( 布林陣列 )

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

MaxMatch 系統 - 第二次追蹤

DBLAB @ NTOU

關鍵字 二進位 十進位MLB 001 1James 010 2POSITION

100 4

1. Pre-order 判斷是否為貢獻節點

001(1)

010(2)

100(4)

100(4)

100(4)

001(1)

100(4)

010(2)

100(4)

110(6)

110(6)

111(7)

100(4)

100(4)

100(4)

100(4)01234567

01234567

01234567

01234567

01234567 01234567

01234567

01234567

01234567

01234567

(4)10 = (1002) (110)2 = (6)10

2011/07/19 10/39

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

MaxMatch 系統 - 總計算量

DBLAB @ NTOU

vc :本身被判斷為貢獻節點vpc :父親被判斷為貢獻節點, 本身非貢獻節點。vpnc :父親非貢獻節點vall : + +

MaxMatch :1. 對 vall 類節點計算其 dMatch 及 dMatchSet 。2. 再判斷 vc 及 vpc 類節點是否為貢獻節點。

是否能避免計算vpnc 節點而又能產生同樣的查詢結果 ??

2011/07/19 11/39

我們將對應節點及其祖先節點分為以下三類:

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

DBLAB @ NTOU

TDPrune 系統2011/07/19 12/39

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

DBLAB @ NTOU

找 SLCA 分群

SLCA

對應節點

post-order產生 vall 及其dMatch 、dMatchSet

match

pre-order判斷 vc 及vpc 是否為貢獻節點。

match

pre-order產生貢獻節點。

TDPrune 系統 - 流程SLCA

SLCA

讀取索引

找 SLCA 分群讀取索引

MaxMatch:

TDPrune:

2011/07/19 13/39

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

TDPrune 系統 - 反轉索引

DBLAB @ NTOU

Jim1. 2

.2.

1.

1

1. 3.

2.

1.

1節點個數

節點最大深度

每一個關鍵字的反轉索引為一個feq ✕ max_depth 的二維陣列,其中:

feq :包含該關鍵字之節點的總個數 max_depth :上述節點中最深的節點之層數

第 N 層的編碼配上其第 1 ~ (N-1)層的編碼皆代表一個該節點之祖先節點。2011/07/19 14/39

TEAM

1. 21. 31. 4

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

TDPrune 系統 - 計算 SLCA

DBLAB @ NTOU

計算 SLCA 有許多演算法 與 MaxMatch 一樣,我們採用 [XP05] 所提出的方法來計算 SLCA 。

Y. Xu and Y. Papakonstantinou. Efficient Keyword Search for Smallest LCAs in XML Databases. In SIGMOD, 2005.

[XP05] :

關鍵字JimPOSITIONTEAM_NAME

SLCA:

,

2011/07/19 15/39

TEAM_NAME

1. 2. 11. 3. 11. 4. 1

POSITION

1. 2.

2. 2

1. 2.

3. 2

1. 3.

2. 2

1. 4.

2. 2

Jim1. 2

.2.

1.

1

1. 3.

2.

1.

1

0

1

0

1

2

3

10

1

2

kwMatch1

kwMatch2

kwMatch3

讀取索引 計算SLCA

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

TDPrune 系統 - 分群

DBLAB @ NTOU

MaxMatch: 將所有該群的對應節點混合並排序後,存入一節點串列中。

TDPrune: 利用一個大小為 ( 2 ✕ 關鍵字個數 )的數字陣列 dmatch_range 記錄。

TEAM_NAME

1. 2. 11. 3. 11. 4. 1

POSITION

1. 2.

2. 2

1. 2.

3. 2

1. 3.

2. 2

1. 4.

2. 2

Jim1. 2

.2.

1.

1

1. 3.

2.

1.

1

0

1

0

1

2

3

10

1

2

kwMatch1

kwMatch2

kwMatch3

0 ~ 0

0 ~ 1

0 ~ 0

dmatch_range = (

dmatch_range = ( 1, 1, 2, 2, 1, 1 )

0, 0,

0, 1,

0, 0 )

1 ~ 1

2 ~ 2

1 ~ 1

2011/07/19 16/39

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

TDPrune 系統 - 產生貢獻節點

DBLAB @ NTOU

TEAM_NAME

1. 2. 11. 3. 11. 4. 1

POSITION

1. 2.

2. 2

1. 2.

3. 2

1. 3.

2. 2

1. 4.

2. 2

Jim1. 2

.2.

1.

1

1. 3.

2.

1.

1

0

1

0

1

2

3

10

1

2

kwMatch1

kwMatch2

kwMatch3

( 0, 0, 0, 1, 0, 0 ) 1.2

1.2.1( -1, -1, -1, -1, 0, 0 )

( 0, 0, 0, 1, -1, 0 )

1.2.2( 0, 0, 0, 0, -1, -1 )

( -1, 0, 1, 1, -1, 0 )

1.2.3( -1, -1, 1, 1, -1, -1 )

( -1, 0, -1, 1, -1, 0 ) A

B

C

C A, B

B

2011/07/19 17/39

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

TDPrune 系統 - 產生貢獻節點

DBLAB @ NTOU

TEAM_NAME

1. 2. 11. 3. 11. 4. 1

POSITION

1. 2.

2. 2

1. 2.

3. 2

1. 3.

2. 2

1. 4.

2. 2

Jim1. 2

.2.

1.

1

1. 3.

2.

1.

1

0

1

0

1

2

3

10

1

2

kwMatch1

kwMatch2

kwMatch3

1.2

1.2.1( -1, -1, -1, -1, 0, 0 )

1.2.2( 0, 0, 0, 0, -1, -1 )

1.2.3( -1, -1, 1, 1, -1, -1 )

A

B

C1.2.2.1

( 0, 0, -1, -1, -1, -1 )

( -1, 0, 0, 0, -1, -1 )

1.2.2.2( -1, -1, 0, 0, -1, -1 )

( -1, 0, -1, 0, -1, -1 )

A B

2011/07/19 18/39

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

TDPrune 系統 - 產生貢獻節點

DBLAB @ NTOU

TEAM_NAME

1. 2. 11. 3. 11. 4. 1

POSITION

1. 2.

2. 2

1. 2.

3. 2

1. 3.

2. 2

1. 4.

2. 2

Jim1. 2

.2.

1.

1

1. 3.

2.

1.

1

0

1

0

1

2

3

10

1

2

kwMatch1

kwMatch2

kwMatch3

1.2

1.2.1 1.2.2 1.2.3

A

B

C1.2.2.1

( 0, 0, -1, -1, -1, -1 )

1.2.2.2( -1, -1, 0, 0, -1, -1 )

1.2.2.1.1( 0, 0, -1, -1, -1, -1 )

( -1, 0, -1, -1, -1, -1 )

2011/07/19 19/39

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

DBLAB @ NTOU

LevelPrune 系統2011/07/19 20/39

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

LevelPrune 系統

DBLAB @ NTOU

cur_level 串列next_level 串列

1.2

1.2.1 1.2.2 1.2.3

1.2

1.2.1 1.2.2

輸出: 1.2

cur_level 串列next_level 串列

2011/07/19 21/39

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

LevelPrune 系統

DBLAB @ NTOU

1.2.1

1.2.1 1.2.2

輸出: 1.2

cur_level 串列next_level 串列

1.2.1

無孩子節點1.2.2

1.2.2

1.2.2.1 1.2.2.2

1.2.2.1 1.2.2.2

2011/07/19 22/39

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

LevelPrune 系統 相較於 TDPrune 以深度優先來追蹤節點, LevelPrune 以廣度優先的方式來追蹤節點。

DBLAB @ NTOU

TDPrune:

LevelPrune:

2011/07/19 23/39

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

DBLAB @ NTOU

改進方式2011/07/19 24/39

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

改進方式 -XML 樹

DBLAB @ NTOU

POSITION

1. 2.

2. 2

1. 2.

3. 2

1. 2.

4. 2

1. 2.

5. 2

1. 2.

6. 2

:1. 2

.15.

2

1. 3.

2. 2

1. 4.

2. 2

0

1

2

3

4

13

14

15

kwMatch2

2011/07/19 25/39

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

改進方式 - 編碼行導向儲存

DBLAB @ NTOU

POSITION

1. 2.

2. 2

1. 2.

3. 2

1. 2.

4. 2

1. 2.

5. 2

1. 2.

6. 2

:1. 2

.15.

2

1. 3.

2. 2

1. 4.

2. 2

0

1

2

3

4

13

14

15

kwMatch3

1( a, b, c, d, 0, 15 )

POSITION

1.

2. 2. 2

1.

2. 3. 2

1.

2. 4. 2

1.

2. 5. 2

1.

2. 6. 2

:1.

2. 15.

2

1.

3. 2. 2

1.

4. 2. 2

0

1

2

3

4

13

14

15

kwMatch3

111…11

22…234

列導向儲存: 行導向儲存:

1222 1232 … 1422

2011/07/19 26/39

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

0

1

2

3

4

13

14

15

改進方式 - 編碼壓縮暨索引壓縮

DBLAB @ NTOU

1( a, b, c, d, 0, 15 ) POSITION

1. 2. 2. 2-

15.-

13.3. 2

1. 2. 4. 21. 2. 5. 21. 2. 6. 2

:1. 2. 15. 21. 3. 2. 21. 4. 2. 2

0

1

2

3

4

13

14

15

kwMatch3

編碼壓縮:POSITIO

N1. 2

.2. 2

1. 2.

3. 2

1. 2.

4. 2

1. 2.

5. 2

1. 2.

6. 2

:1. 2

.15.

2

1. 3.

2. 2

1. 4.

2. 2

kwMatch3

編碼未壓縮:

1.2

( a, b, c, d, 0, ? ) 15次

2 次

2011/07/19 27/39

( a, b, c, d, 0, 13 )

索引未壓縮:索引壓縮:

1,1,1,1,1,…,1,1,1,1,

2,2,2,2,2,…,2,2,3,4,

… …

1,-15, 2,-13,3,4, … …

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

DBLAB @ NTOU

實驗2011/07/19 28/39

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

實驗 - 實驗環境

DBLAB @ NTOU

個人電腦: 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

資料集:2011/07/19 29/39

大小 節點個數 最大深度 平均深度DBLP 820M

B3800 萬 6 3.4

SwissProt

109MB

499 萬 6 4.02

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

實驗 - 多樣化查詢句 1

DBLAB @ NTOU

實驗:以 [LC08] 所用來測試的查詢句來比較。 結果:

執行時間: MaxM > TD > Level > Level+

2011/07/19 30/39

TD > Level: TD 需保存及處理較多節點串列資訊。

Level > Level+ Level+ 使用了

編碼行導向儲存 編碼壓縮 索引壓縮

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

實驗 - 多樣化查詢句 2

DBLAB @ NTOU2011/07/19

|vc |+|vpc | |vall | ( |vc |+|vpc | ) / |vall |

TQ09 640 8030 7.97%TQ10 3980 85450 4.66%TQ11 7080 37580 18.84%TQ12 270 270 100%TQ13 4410 4410 100%TQ14 3000 3000 100%TQ15 2430 4780 50.84%TQ16 5080 5080 100%

結果: TQ10 、 TQ11 中,由於 |vall | 高,所以 MaxM 時間大幅增加。 需處理節點個數相同時,本論文之三系統略快於

MaxM 。31/39

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

實驗 - 關鍵字個數

DBLAB @ NTOU

實驗:變動關鍵字個數。 資料集: DBLP 結果:

關鍵字個數與花費時間無明顯相關

2011/07/19

關鍵字個數

|vc |+|vpc | |vall | ( |vc |+|vpc | ) / |vall |

3 2092830 3492614

37.42%

4 1659706 3586660

43.93%

5 1652157 3545149

32.35%

6 1630675 3592943

32.35%

32/39

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

實驗 - 對應節點個數

DBLAB @ NTOU

實驗:變動對應節點總個數。 資料集: SwissProt 結果:

對應節點總個數上升有很大可能導致 |vall | 上升,進而增加執行時間,但並非絕對。

2011/07/19

對應節點個數

|vc |+|vpc | |vall | ( |vc |+|vpc | ) / |vall |

低 2704 10032 26.95%

中 1141 1141 100%

高 228223 246169 92.71%

33/39

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

實驗 - 輸出節點數量

DBLAB @ NTOU

實驗:變動輸出節點總數量 (|vc |) 。 資料集: DBLP 結果:

實驗時間隨輸出節點總數量上升。 本論文三系統時間高於 MaxMatch 。 ( 後述 )

2011/07/19

|vc | |vall | |vc | / |vall |TQ31 37515 37515 100%TQ32 694578 694578 100%TQ33 1628968 162896

8100%

TQ34 2566518 2566518

100%

34/39

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

實驗 - 輸出節點比率

DBLAB @ NTOU

實驗:變動輸出節點比率。 (|vc|+|vpc|) / |vall | 結果:

本論文三系統與 MaxMatch 之時間差隨輸出節點比率上升而減少。 Level 系列系統較 TD 為慢。 ( 後述 )

2011/07/19

|vc |+|vpc | |vall | ( |vc |+|vpc | ) / |vall |

TQ35 1692111 3290757

51.42%

TQ36 1954575 3423417

57.09%

TQ37 2216267 3555974

62.33%

TQ38 2404463 3649707

65.88%

35/39

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

實驗 - 節點使用快取記憶體情況

DBLAB @ NTOU2011/07/19

TDPrune:

LevelPrune:

節點若能在被從快取記憶體中移出之前進行存取,則其第二次存取較快 MaxMatch:

36/39

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

實驗 - 輸出節點數量

DBLAB @ NTOU

實驗:變動輸出節點總數量。 本論文三系統時間高於

MaxMatch 。

2011/07/19

選用關鍵字 (incollection 、 book 、 proceedings 、 article 、 inproceedings 、 www) 皆為根節點之孩子,造成如下樣式答案樹。

所有系統皆無法利用快取記憶體的優勢

37/39

本論文三系統對節點進行較複雜的處理 ( 分配dmatch_range) ,因此較慢。

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

實驗 - 輸出節點比率

DBLAB @ NTOU

實驗:變動輸出節點比率。 執行時間 Level 高於 TD 。

2011/07/19

選用關鍵字(dblp 、 year 、 2008 、 2007 、 2004)造成如下樣式答案樹。TDPrune

: 於處理第二層及第三層節點時 TDPrune會使用快取記憶體。 Level 無法使用。

38/39

year

year

year

year

year

2008

2004

2004

2007

2008

根節點

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

結論

DBLAB @ NTOU

提出 TDPrune 、 LevelPrune 、 LevelPrune+ 系統 相較 MaxMatch ,大部份情況下會處理較少節點 即使需處理同樣多節點,也有機會因快取記憶體的優勢來減少計算時間 在處理相同節點,及無法使用快取記憶體的情況下,三系統效能略輸 MaxMatch 。

未來研究方向 依據 fanout 、 depth ,在查詢時自動選擇合適的系統。 支援 Top-k 的關鍵字查詢

2011/07/19 39/39