efficient keyword search over virtual xml views
DESCRIPTION
Efficient Keyword Search over Virtual XML Views. Feng Shao Lin Guo Chavadar Botev Anand Bhaskar Muthiah Chettiar Fan Yang. רקע: מהו XML ? מסמך XML מורכב מאלמנטים מקוננים, החל באלמנט השורש כל אלמנט יכול להכיל תכונות וערכים - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/2.jpg)
?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](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/3.jpg)
Dewey ID שיטת מספור לאלמנטים בה המספור של האלמנטים הינו – prefix של אביו בתור ID של אלמנט מסויים מכיל את ה IDהיררכי כך ש
![Page 4: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/4.jpg)
?Viewרקע: מהו
• View.הוא טבלה וירטואלית, המוגדרת בעזרת שאילתה
דומה מאוד לטבלה אמיתית, מלבד העובדה שהוא לא שומר מידע•
הנתונים שבו מחושבים דינאמית כאשר פונים אליו•
views עלות גבוהה של זמן חישוב ושל משאבי חישוב בעת חישוב שאילתות מעל •
![Page 5: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/5.jpg)
הצגת הבעיה
, פעולה זו יקרה בגלל ההנחה keyword לפי view הבעיה הינה בעת חיפוש ב •שמבצעים חיפוש על דף "מוכן"
. זה יקח זמן רב.view בשביל לבצע את החיפוש, דרוש מימוש ה •
מפריע במיוחד בעת ביצוע פעולות בזמן אמת•
הערכים הטובים ביותר, וכדי לעשות את זה צריך לתת ניקוד Kבד"כ מחזירים את • איננו כזה, ומימוש כולו View). הניקוד דורש מסמך ממשי. TF-IDFלמסמך (לדוגמה
ערכים יקר ובזבזניKרק לשם הצגת
הערכים הטובים K, והחזרת XML ב viewsהמאמר מציג דרך לחיפוש יעיל מעל (בהתאם לשיטת הניקוד)
![Page 6: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/6.jpg)
דוגמה
שילוב מידע
אתר מסויים שומר מידע על ספרים, אתר שני על ביקורות לספרים.
נרצה לאחד בין ספר לביקורות עליו ולבצע שאילתות על התוצאה המתקבלת
![Page 7: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/7.jpg)
XQuery והכנסת השאילתה ע"י viewיצירת ה
![Page 8: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/8.jpg)
הגדרה פורמלית לבעיה
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](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/9.jpg)
רעיון הפתרון המרכזי
שימוש באינדקסים המבוססים על נתוני הבסיס
viewנחשב את השאילתה מעל הנתונים הדרושים בלבד, ולא מעל כל ה
![Page 10: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/10.jpg)
•Inverted list index משמש לביצוע חיפוש לפי - keywords
• path index משמש להערכת נתיב ב – XML
האינדקסים הקיימים
![Page 11: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/11.jpg)
מהן הבעיות העומדות בפנינו?
כיצד פותחים במדויק את השדות שדרושים לנו, בלי לפתוח את כל •המסד?
, כך view כיצד נותנים ניקוד לכל מסמך בשאילתה שנבצע על ה • וחיפשנו בו?viewשהתוצאות תהיינה זהות למצב בו מימשנו את ה
![Page 12: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/12.jpg)
האלגוריתם המוצע מורכב משלושה שלבים:
– עץ אשר מייצג במדוייק אילו חלקים מנתוני 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](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/13.jpg)
PDT תואם עבור כל QPT
QPT מכיל רק אלמנטים שמתאימים לצמתים ב •
מכיל רק ערכים שהכרחיים בעת הערכת השאילתה•
![Page 14: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/14.jpg)
תרשים המערכת
• QPT מזהה בדיוק את החלקים הדרושים לביצוע השאילתה ומשכתב את ולא מנתוני המקורPDTכך שתיקרא מה המקוריתהשאילתה
PDT. השאילתה המשוכתבת מוערכת על ה query evaluator אין כל שינוי ל •
התוצאות מקבלות ניקוד, ורק אלו עם התוצאות הגבוהות ביותר ממומשות•
![Page 15: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/15.jpg)
QPTמבנה ה
קו רגיל – אב/בן•
קו כפול – צאצא/אב קדמון•
קו מקווקו – קשר אופציונאלי•
קו רציף – קשר הכרחי•
לצמתים יכולה להיות תכונה•
• V דרוש ליצירת ה – view
• C שייך לפלט ה – view משתמשים ,בו רק בזמן המימוש
![Page 16: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/17.jpg)
PDTהגדרה פורמלית –
![Page 18: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/18.jpg)
![Page 19: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/19.jpg)
![Page 20: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/20.jpg)
האלגוריתם המוצע
מאופיין ע"י:
באינדקסים פרופורציוני לגודל השאילתה ולא לנתוני lookups מספר ה •הבסיס
![Page 21: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/21.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/22.jpg)
נקבל:booksעבור
![Page 23: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/23.jpg)
![Page 24: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/24.jpg)
PDTיצירת ה
, prepareLists האלגוריתם עושה מעבר מיזוג יחיד על הרשימות שהכנו ב •PDTומייצר את ה
ויכיל אלמנטים וערכים (כפי descendant/ancestor ישמור על תנאי PDT ה •keywords עבור ה tf) ו preparedListsשהשגנו ב
dewey ID הרעיון המרכזי: עיבוד האלמנטים לפי סדר ה •
descendant - יעיל עבור דרישת ה
![Page 25: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/25.jpg)
CT.MinIDPath האלמנט המתאים ל – IDהמינימלי ואבותיו הקדומים
![Page 26: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/26.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/27.jpg)
![Page 28: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/28.jpg)
![Page 29: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/29.jpg)
הלולאה הראשית באלגוריתם
חדשים ל ID’s מוסיפה •CT לפי) pathlists(
מייצרת בעזרת צמתי •CT את צמתי ה PDT
תמיד נשמר העיקרון •שכל צומת שעיבדנו וידוע שהוא צומת ב
PDT יהיה או ב ,CT או התוצאהPDTב
![Page 30: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/30.jpg)
שלושת הצעדים בלולאה הראשית
CT ל pathlists המינימלי הבא ב IDהוספת ה 1)
שלו) מהשורש כלפי ancestor מינימלי וה ID (minIDPath ב ID’sהעתקת ה 2)PDT cache הסופי או ל PDTמטה ל
שאין להם ילדיםminIDpathמחיקת הצמתים ב 3)
![Page 31: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/31.jpg)
1צעד
CT ל pathlists המינימלי הבא ב IDהוספת ה
![Page 32: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/32.jpg)
2צעד
PDT ליצירת צמתי CT.minIDPathב CTשימוש בצמתי
של צאצאים המקיימים את id’s מכיל CT של צומת PDTCacheבאופן כללי, ה descendantדרישת ה
![Page 33: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/33.jpg)
כעת נלך מהעלים לכיוון השורש, ו"נקפל" צמתים
כי אין לו ילדים והוא book 1.1, נקפל את title ואת isbn* לדוגמה, אחרי שנקפל את )year (אין לו descendantלא מקיים את דרישת
לעולם לא תמולא בעתיד descendant, דרישת dewey ID כיוון שמעבדים צמתים לפי •
התוצאה PDT של השורש, עובר ל PDT cache* כל מי שנמצא ב
3צעד
![Page 34: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/34.jpg)
שלו 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](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/35.jpg)
![Page 36: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/36.jpg)
ניקוד
• tf עבור כל keyword כאמור, נשמר ב ,pdt
PDT עבור כל אלמנט ב tf-idf ניתן לחשב את ערך tf בעזרת •
התוצאות הטובות ביותר, ונממש רק אותןk נחשב את •
![Page 37: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/37.jpg)
הרחבות ואופטימיזציות
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](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/38.jpg)
ניסויים
500MBלשם בדיקה, השתמשו בנתונים בגודל
שלהםauthors (au) ושמו אותם מתחת ל articlesלקחו
2MB, זיכרון 3.4GHZמעבד
Windows XP
![Page 39: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/39.jpg)
![Page 40: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/40.jpg)
![Page 41: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/41.jpg)
# of keywords
![Page 42: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/42.jpg)
![Page 43: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/43.jpg)
סיכום
וירטואליםxml views בניית מערכת אשר מבצעת חיפוש מעל •
view אלגוריתם ייחודי לשימוש במידע חלקי בלבד הרלוונטי לשאילתה ול •
מאלטרנטיבות 10 נבדק בניסוי והתגלו תוצאות מהירות ביותר מאשר פי •אחרות
![Page 44: Efficient Keyword Search over Virtual XML Views](https://reader036.vdocuments.net/reader036/viewer/2022062422/56813527550346895d9c925f/html5/thumbnails/44.jpg)
!תודה רבה