efficient keyword search over virtual xml views

44
Efficient Keyword Search over Virtual XML Views Feng Shao Lin Guo Chavadar Botev Anand Bhaskar Muthiah Chettiar Fan Yang

Upload: hashim-pierce

Post on 03-Jan-2016

45 views

Category:

Documents


3 download

DESCRIPTION

Efficient Keyword Search over Virtual XML Views. Feng Shao Lin Guo Chavadar Botev Anand Bhaskar Muthiah Chettiar Fan Yang. רקע: מהו XML ? מסמך XML מורכב מאלמנטים מקוננים, החל באלמנט השורש כל אלמנט יכול להכיל תכונות וערכים - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Efficient Keyword Search over Virtual XML Views

Efficient Keyword Search over Virtual XML Views

Feng Shao

Lin Guo

Chavadar Botev

Anand Bhaskar

Muthiah Chettiar

Fan Yang

Page 2: Efficient Keyword Search over Virtual XML Views

?XMLרקע: מהו

מורכב מאלמנטים מקוננים, החל באלמנט השורשXML מסמך •

כל אלמנט יכול להכיל תכונות וערכים•

יוחזר עבור כל אלמנט ואלמנט, ולא עבור כל XML ניקוד לשאילתה המבוצעת על מסמך •המסמך

:TF-IDF - במסמך זה נתייחס לניקוד לפי שיטת

tf(e,k) מספר המופעים של מילת המפתח – k באלמנט eוצאצאיו

למספר האלמנטים view - יחס מספר האלמנטיםב kשמכילים את

| ( ) |( )

{ | ( ) ( , )}

V Didf k

e e V D contains e k

( , ) ( ( , ) log( ( )))k Qscore e Q tf e k idf k

Page 3: Efficient Keyword Search over Virtual XML Views

Dewey ID שיטת מספור לאלמנטים בה המספור של האלמנטים הינו – prefix של אביו בתור ID של אלמנט מסויים מכיל את ה IDהיררכי כך ש

Page 4: Efficient Keyword Search over Virtual XML Views

?Viewרקע: מהו

• View.הוא טבלה וירטואלית, המוגדרת בעזרת שאילתה

דומה מאוד לטבלה אמיתית, מלבד העובדה שהוא לא שומר מידע•

הנתונים שבו מחושבים דינאמית כאשר פונים אליו•

views עלות גבוהה של זמן חישוב ושל משאבי חישוב בעת חישוב שאילתות מעל •

Page 5: Efficient Keyword Search over Virtual XML Views

הצגת הבעיה

, פעולה זו יקרה בגלל ההנחה keyword לפי view הבעיה הינה בעת חיפוש ב •שמבצעים חיפוש על דף "מוכן"

. זה יקח זמן רב.view בשביל לבצע את החיפוש, דרוש מימוש ה •

מפריע במיוחד בעת ביצוע פעולות בזמן אמת•

הערכים הטובים ביותר, וכדי לעשות את זה צריך לתת ניקוד Kבד"כ מחזירים את • איננו כזה, ומימוש כולו View). הניקוד דורש מסמך ממשי. TF-IDFלמסמך (לדוגמה

ערכים יקר ובזבזניKרק לשם הצגת

הערכים הטובים K, והחזרת XML ב viewsהמאמר מציג דרך לחיפוש יעיל מעל (בהתאם לשיטת הניקוד)

Page 6: Efficient Keyword Search over Virtual XML Views

דוגמה

שילוב מידע

אתר מסויים שומר מידע על ספרים, אתר שני על ביקורות לספרים.

נרצה לאחד בין ספר לביקורות עליו ולבצע שאילתות על התוצאה המתקבלת

Page 7: Efficient Keyword Search over Virtual XML Views

XQuery והכנסת השאילתה ע"י viewיצירת ה

Page 8: Efficient Keyword Search over Virtual XML Views

הגדרה פורמלית לבעיה

1עבור שאילתה: 2{ , ,...., }nQ k k k

Vמבט

Dומסד נתונים

כך ש:s היא הסדרה keywordsתוצאת החיפוש ע"פ

view הוא אלמנט ב s כל אלמנט ב •

q מכיל את Q: e ב q, וכל מילת חיפוש s ב e עבור כל אלמנט •

e מכיל את s, אם הוא מכיל את כל view ב e לכל אלמנט •

התוצאות בעלות הניקוד הגבוה ביותרk מכיל את sהערה:

q Q

Page 9: Efficient Keyword Search over Virtual XML Views

רעיון הפתרון המרכזי

שימוש באינדקסים המבוססים על נתוני הבסיס

viewנחשב את השאילתה מעל הנתונים הדרושים בלבד, ולא מעל כל ה

Page 10: Efficient Keyword Search over Virtual XML Views

•Inverted list index משמש לביצוע חיפוש לפי - keywords

• path index משמש להערכת נתיב ב – XML

האינדקסים הקיימים

Page 11: Efficient Keyword Search over Virtual XML Views

מהן הבעיות העומדות בפנינו?

כיצד פותחים במדויק את השדות שדרושים לנו, בלי לפתוח את כל •המסד?

, כך view כיצד נותנים ניקוד לכל מסמך בשאילתה שנבצע על ה • וחיפשנו בו?viewשהתוצאות תהיינה זהות למצב בו מימשנו את ה

Page 12: Efficient Keyword Search over Virtual XML Views

האלגוריתם המוצע מורכב משלושה שלבים:

– עץ אשר מייצג במדוייק אילו חלקים מנתוני QPT (query pattern tree)יצירת 1)הבסיס דרושים לחישוב התוצאה הפוטנציאלית. לשם יצירתו, האלגוריתם מנתח

מהשאילתה.keywords ואת ה viewאת הגדרת ה

בנפרדXML מחושב עבור כל מסמך

- מכיל חלקים קטנים מנתוני הבסיס. PDT – pruned document treeיצירת 1) שחושב QPTחלקים אלו הם החלקים הדרושים לשם מענה על השאילתה, לפי ה

נבנה אך ורק ע"י אינדקסים, ללא כל גישה למסד הבסיס.PDTבשלב הקודם. ה

.keywords כמו כן, בשלב זה נשמרות סטטיסטיקות לגבי ה

בנפרדXML מחושב עבור כל מסמך

התוצאות הטובות K) ומימוש view (במקום מעל ה PDTפיתוח השאילתה מעל ה 1)ביותר.

K זה השלב היחיד בו יש גישה לנתוני הבסיס, וגם היא, רק עבור מי שמחזיר את התוצאות הטובות ביותר.

Page 13: Efficient Keyword Search over Virtual XML Views

PDT תואם עבור כל QPT

QPT מכיל רק אלמנטים שמתאימים לצמתים ב •

מכיל רק ערכים שהכרחיים בעת הערכת השאילתה•

Page 14: Efficient Keyword Search over Virtual XML Views

תרשים המערכת

• QPT מזהה בדיוק את החלקים הדרושים לביצוע השאילתה ומשכתב את ולא מנתוני המקורPDTכך שתיקרא מה המקוריתהשאילתה

PDT. השאילתה המשוכתבת מוערכת על ה query evaluator אין כל שינוי ל •

התוצאות מקבלות ניקוד, ורק אלו עם התוצאות הגבוהות ביותר ממומשות•

Page 15: Efficient Keyword Search over Virtual XML Views

QPTמבנה ה

קו רגיל – אב/בן•

קו כפול – צאצא/אב קדמון•

קו מקווקו – קשר אופציונאלי•

קו רציף – קשר הכרחי•

לצמתים יכולה להיות תכונה•

• V דרוש ליצירת ה – view

• C שייך לפלט ה – view משתמשים ,בו רק בזמן המימוש

Page 16: Efficient Keyword Search over Virtual XML Views

PDT האילוצים של ה 3

רק אם יעמוד PDT, ייבחר ל QPT ב n במסמך, שתואם לצומת eאלמנט בשלושת האילוצים הבאים:

(1Ancestor constraint אלמנט שהוא אב קדמון של – e שתואם לאביו ,, ייבחר גם הואQPT ב nשל

(2Descendant constraint בין חובה – עבור כל קשת n לעבר בנו, לפחות ייבחר גם הואnאלמנט ילד או צאצא אחד של

(3Predicate constraint אם - eעלה, הוא יעמוד בכל התכונות הדרושות

Page 17: Efficient Keyword Search over Virtual XML Views

PDTהגדרה פורמלית –

Page 18: Efficient Keyword Search over Virtual XML Views
Page 19: Efficient Keyword Search over Virtual XML Views
Page 20: Efficient Keyword Search over Virtual XML Views

האלגוריתם המוצע

מאופיין ע"י:

באינדקסים פרופורציוני לגודל השאילתה ולא לנתוני lookups מספר ה •הבסיס

Page 21: Efficient Keyword Search over Virtual XML Views

Prepare Listsאלגוריתם

:PDT ושל ערכי האלמנטים הדרושים ל dewey ID’s מטרתו: הכנת רשימות של •

- ערכים שאין חובה שיהיה להם בן

V - ערכי

שאין חובה שיהיה להם בן (כולל עלים). הם QPT לצמתי lookup תחילה נעשה • (למעשה ממלאים אותה descendant מבלי למלא את דרישת ה PDTיכולים להיות ב

באופן ריק).

) – נחפש רק אלמנטים שמקיימים predicat עם תכונה (QPT אם האלמנט מקושר ב •את התכונה

lookups (ניתן לשלב עם ה V annotation נפרדים עבור צמתי lookups נעשה •הקודמים)

נקבל את הרשימות עבור כל בעל המסלול אותו נחפש. נמזג את lookups ב • את הערך ID, המקשרת לכל dewey IDהרשימות ונקבל רשימה ממוזגת וממוינת לפי

שלו (כאשר קיים ערך)

)books//book/isbn (לדוגמה, נקבל רשימה ממוזגת עבור

עבור הניקודtf לקבלת inverted index לבסוף, עוברים על ה •

q QPT

Page 22: Efficient Keyword Search over Virtual XML Views

נקבל:booksעבור

Page 23: Efficient Keyword Search over Virtual XML Views
Page 24: Efficient Keyword Search over Virtual XML Views

PDTיצירת ה

, prepareLists האלגוריתם עושה מעבר מיזוג יחיד על הרשימות שהכנו ב •PDTומייצר את ה

ויכיל אלמנטים וערכים (כפי descendant/ancestor ישמור על תנאי PDT ה •keywords עבור ה tf) ו preparedListsשהשגנו ב

dewey ID הרעיון המרכזי: עיבוד האלמנטים לפי סדר ה •

descendant - יעיל עבור דרישת ה

Page 25: Efficient Keyword Search over Virtual XML Views

CT.MinIDPath האלמנט המתאים ל – IDהמינימלי ואבותיו הקדומים

Page 26: Efficient Keyword Search over Virtual XML Views

AddCTNodeפונקציית

• Candidate tree כל צומת :cn בעץ זה מכיל מספיק מידע כדי לבדוק דרישות descendant/ancestore

•ID .מזהה ייחודי לצומת – Prefix של Dewey ID ב pathLists

•QNode הצומת התואם ב – QPT

•PL – ancestors של הצומת כך שה QNode שלהם הוא אביו של cn

•DM אם לא0 אם הוא קיים, 1 – ממפה כל בן/צאצא חובה ל

•PdtCache צאצאי – cn שמספקים את דרישת descendant אבל עדיין יש לבדוק ancestorאת דרישת ה

Page 27: Efficient Keyword Search over Virtual XML Views
Page 28: Efficient Keyword Search over Virtual XML Views
Page 29: Efficient Keyword Search over Virtual XML Views

הלולאה הראשית באלגוריתם

חדשים ל ID’s מוסיפה •CT לפי) pathlists(

מייצרת בעזרת צמתי •CT את צמתי ה PDT

תמיד נשמר העיקרון •שכל צומת שעיבדנו וידוע שהוא צומת ב

PDT יהיה או ב ,CT או התוצאהPDTב

Page 30: Efficient Keyword Search over Virtual XML Views

שלושת הצעדים בלולאה הראשית

CT ל pathlists המינימלי הבא ב IDהוספת ה 1)

שלו) מהשורש כלפי ancestor מינימלי וה ID (minIDPath ב ID’sהעתקת ה 2)PDT cache הסופי או ל PDTמטה ל

שאין להם ילדיםminIDpathמחיקת הצמתים ב 3)

Page 31: Efficient Keyword Search over Virtual XML Views

1צעד

CT ל pathlists המינימלי הבא ב IDהוספת ה

Page 32: Efficient Keyword Search over Virtual XML Views

2צעד

PDT ליצירת צמתי CT.minIDPathב CTשימוש בצמתי

של צאצאים המקיימים את id’s מכיל CT של צומת PDTCacheבאופן כללי, ה descendantדרישת ה

Page 33: Efficient Keyword Search over Virtual XML Views

כעת נלך מהעלים לכיוון השורש, ו"נקפל" צמתים

כי אין לו ילדים והוא book 1.1, נקפל את title ואת isbn* לדוגמה, אחרי שנקפל את )year (אין לו descendantלא מקיים את דרישת

לעולם לא תמולא בעתיד descendant, דרישת dewey ID כיוון שמעבדים צמתים לפי •

התוצאה PDT של השורש, עובר ל PDT cache* כל מי שנמצא ב

3צעד

Page 34: Efficient Keyword Search over Virtual XML Views

שלו PDT cache לפני שמוחקים צומת, יש להתייחס ל descendant לכן מקיימים דרישת PdtCache נמצאים ב isbn, title - לדוגמה,

ancestor - צריך לבדוק האם הם מקיימים דרישת שלהם Parent List - נבדוק את ה

. לכן אפשר להוציאן מה PDT - הצמתים הרשומים שם, ידוע לגביהם שהם לא צמתי cache

של האב PDT Cache - אחרת, נעביר את הצמתים ל

:book 1.2 - לדוגמה, הסרת

הסופיPDT שלו יועבר ל cache, כל מי שב bookכשנסיר את

Page 35: Efficient Keyword Search over Virtual XML Views
Page 36: Efficient Keyword Search over Virtual XML Views

ניקוד

• tf עבור כל keyword כאמור, נשמר ב ,pdt

PDT עבור כל אלמנט ב tf-idf ניתן לחשב את ערך tf בעזרת •

התוצאות הטובות ביותר, ונממש רק אותןk נחשב את •

Page 37: Efficient Keyword Search over Virtual XML Views

הרחבות ואופטימיזציות

PDTCache ב descendant האלגוריתם תמיד שם את מי שממלא תנאי •

הסופיPDT, יכנס ישירות ל ancestor - ניתן לשפר את זה ע"י כך שמי שממלא גם תנאי

CT לצומת ה InPdt - לשם כך, נוסיף דגל

הסופיPDT כאשר הצומת יכנס ל 1 - נקבע את הדגל ל

InPdt = 1 הסופי כאשר לאחד מהוריהם PDT - בנים יכנסו ל

QPT יכול להתאים לכמה צמתי Dewey ID כשיש טאג-ים בשמות שחוזרים על עצמם, •

השני a, ה ”a/a/a“/ והנתיב המלא התואם הוא ”a//a“// יש QPT - לדוגמה, אם ב QPTלשני הצמתים ב מתאים

התואם, אוסף של כל QNode במקום את ה CT - כדי לפתור זאת, ניתן לשמור בצומת ו Parent List שיכולים להיות תואמים, לכל אחד מהם את ה QNodesה

DescendantMapשלו

Page 38: Efficient Keyword Search over Virtual XML Views

ניסויים

500MBלשם בדיקה, השתמשו בנתונים בגודל

שלהםauthors (au) ושמו אותם מתחת ל articlesלקחו

2MB, זיכרון 3.4GHZמעבד

Windows XP

Page 39: Efficient Keyword Search over Virtual XML Views
Page 40: Efficient Keyword Search over Virtual XML Views
Page 41: Efficient Keyword Search over Virtual XML Views

# of keywords

Page 42: Efficient Keyword Search over Virtual XML Views
Page 43: Efficient Keyword Search over Virtual XML Views

סיכום

וירטואליםxml views בניית מערכת אשר מבצעת חיפוש מעל •

view אלגוריתם ייחודי לשימוש במידע חלקי בלבד הרלוונטי לשאילתה ול •

מאלטרנטיבות 10 נבדק בניסוי והתגלו תוצאות מהירות ביותר מאשר פי •אחרות

Page 44: Efficient Keyword Search over Virtual XML Views

!תודה רבה