1 / 40

DTD Inference for Views of XML Data

DTD Inference for Views of XML Data. Yannis Papakonstantinou and Victor Vianu U.C. San Diego Given by Irit Gefner 17.11.02. על סדר היום. מוטיבציה הגדרות וטענות אלגוריתם סיכום. מוטיבציה. מוטיבציה. נגדיר : מבנה נתונים המתאים למסמך XML . מבנה נתונים המתאים ל DTD .

grace
Download Presentation

DTD Inference for Views of XML Data

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. DTD Inference for Views of XML Data Yannis Papakonstantinou and Victor Vianu U.C. San Diego Given by Irit Gefner 17.11.02

  2. על סדר היום • מוטיבציה • הגדרותוטענות • אלגוריתם • סיכום Type Inference

  3. מוטיבציה Type Inference

  4. מוטיבציה נגדיר: מבנה נתונים המתאים למסמך XML. מבנה נתונים המתאים ל DTD. שאילתה על מסמך XML. המטרה: בניה של DTD המתאים ביותר לחלקי ה XML בתוצאת השאילתה. Type Inference

  5. loto - Labeled Ordered Tree Object Type Inference

  6. - הגדרהlotot over Σ • עץ סדור. • כל קודקוד מתאים לאלמנט ב XML. • תווית הקודקוד היא סוג האלמנט. (type name) • Σ היא קבוצת ה type names ב XML. • נסמן ב n)) את התווית של n. עבור n איבר ב t. • נסמן ב tree(n) את תת העץ של t ששורשו הוא n. Type Inference

  7. root: dealer; dealer: UsedCars, NewCars; UsedCars: ad*; NewCars: ad*; ad: (model, year) + model; ltd - Loto Type Definition Type Inference

  8. - הגדרהltd d over Σ • מכיל הגדרה של סוג השורש (type name מ Σ). • מתאים לכל a ב Σ שפה מעל Σ. נסמן ב d(a). • אם n1,n2,..,nk הם הבנים של n, אז המילה (nk)(n1).. שייכת ל d((n)) • נסמן ב d(root) את הסוג של השורש. • loto tמספק את d אם: - השורש של t הוא מסוג d(root). - לכלn ב t עם הבנים n1,n2,..,nk המילה (nk)(n1) (n2).. שייכת ל d((n)) • נסמן בT(d) את קבוצת ה lotos שמספקים את d. Type Inference

  9. הגדרות נוספות... • ltd נקרא רגולרי אם לכל a ב Σ, d(a) שפה רגולרית. • נאמר כי d,d’שקולים אם T(d)=T(d’). • נאמר כי dיותר הדוק מ d’, אם T(d)  T(d’). • נאמר כי dהדוק לקבוצה T של lotos, אם T=T(d). • נאמר כי dקרובל T אם  T(d)T. Type Inference

  10. סגירות תחת החלפת תת עץ Lad = {(model,year),(model)} הגדרות נוספות... • לכל a ב Σ, נסמן ב La את השפה שמכילה את כל המילים (nk)(n1).. עבור כל n1,..,nkשהם בנים של איבר ב t בעל תווית a. קבוצה T של lotosסגורה תחת החלפת תת עץ כאשר: אם t,t’ ב T. n איבר ב t. n’ איבר ב t’. ומתקיים (n’)=(n). אז t’’ המתקבל מ t על ידי החלפת tree(n) ב tree(n’) שייך ל T. לכל a ב Σ, נסמן ב La את השפה שמכילה את כל המילים (nk)(n1).. עבור כל n1,..,nkשהם בנים של איבר ב t בעל תוית Type Inference

  11. מספר טענות • לקבוצה T של lotos יש ltdהדוק אם"ם מתקיימים שני התנאים: La שפה רגולרית. T סגורה תחת החלפת תת עץ. אם ל T אין ltdהדוק נתעניין בקירובים. אם יש כאלה נחפש את ההדוק ביותר מביניהם. • לקבוצה T מעל Σ יש ltdהדוק ביותר אם"ם לכל a ב Σ, La היא שפה רגולרית. Type Inference

  12. root: section; section: intro, section*, conc; נדון בתוצאת השאילתה המבקשת את כל הintro וה conc. Ltd קרוב: root: view; view: (intro + conc)*; Ltd קרוב יותר: root: view; view: ( + intro),(intro + conc)*, conc; - המשך - • אם אין ltdהדוק ביותר, יש אינסוף קירובים. Type Inference

  13. root: UsedCars; UsedCars: ad*; ad: model, year; root: NewCars; NewCars: ad*; ad: model; מוגבלDTD ראינו מסמך בודד שלא ניתן למצוא לו ltd הדוק. בעייתיות בשרשור מסמכים. ראינו מסמך בודד שלא ניתן למצוא לו ltd הדוק. • ראינו מסמך בודד שלא ניתן למצוא לו ltd הדוק. • בעייתיות בשרשור מסמכים. • אי יכולת לבטא מספר חזרות של סוג מסוים. root: dealers; dealers: dealer*; dealer: UsedCars, NewCars; UsedCars: ad*; NewCars: ad*; ad: (model,year) + model; נגדיר מנגנון specialization. Type Inference

  14. Specializaion • Specialized ltd d = < Σ , Σ’ , d ,  > • d הוא ltd מעל Σ. • d הוא specialized ltd מעל Σ’. •  ממפה מ Σ’ ל Σ. לכל תווית ב Σ, יש קבוצה של תוויות ב Σ’ root: dealer; dealer: UsedCars, NewCars; UsedCars: ad_u*; NewCars: ad_n*; ad_u: model,year; ad_n: model; root: dealer; dealer: (UsedCars, NewCars; UsedCars: ad*; NewCars: ad*; ad: (model, year) + model; הערה: ltds כאלו אפשר להמיר לאוטומטים מעל עצים. ולכן בדיקת הכלה למשל תבוצע בזמן אקספוננציאלי ובדיקת ריקנות בזמן פולינומיאלי. Type Inference

  15. Select X where body לכל קודקוד פנימי, תווית מהצורה: p1.X1… pkXkpk+1 לכל צלע היוצאת מקודקוד, תווית מהצורה: <Xi,p> Xiמשתנה שמופיע בקודקוד. pביטוי רגולרי. Select loto-ql root <p’> pl.X’.pr פונקצית הקשירה : יש במסמך איברים n0…nm כך ש (X’) = n0 (n1)… (nm)p ול nm יש בנים y11..y1i1…y(k+1)1..y(k+1)i(k+1) כך שלכל 0  j  k מתקיים (yj1)… (yjik)pj(Xj) = yjij <X’,p> p1.X1… pkXkpk+1 Type Inference

  16. דוגמא • root: journal; • journal: (mathArticle, compAtricle)*; • mathArticle: abstract, theorem*, summary, ref; • compArticle: abstract, section+, summary, ref; • theorem: (proof + theorem)*; • Section: intro, section*, conc; Type Inference

  17. Select loto-ql • שאילתה לקבלת כל רכיבי ה intro וה conc המופיעים בעומק כלשהו תחת CompArticle. journal <CompArticle, section+> Σ*(intro+conc).X. Σ* root: view; view: (intro, A, conc)*; A: (intro, A, conc)*; Type Inference

  18. Select loto-ql • שאילתה לקבלת כל רכיבי ה mathArticle שיש תחתם רכיב theorem שתחתיו יש proof. journal <> Σ*mathArticle.X. Σ* <X, theorem> Σ* proof Σ* Type Inference

  19. רגע לפני האלגוריתם • ראינו כי בניה של ltd לתוצאה של שאילתה זקוקה לעיתים למנגנון ה specialization. • וכן כי יש שאילתות שהתוצאה שלהן תתואר ע"י ltd חסר הקשר. • בהינתן ltd d ושאילתה qloto-ql השאלה האם יש ltd רגולרי הדוק או הדוק ביותר עבור q(T(d)), אינה ניתנת להכרעה. • זאת משום שכפי שראינו הרגולריות היא תנאי הכרחי לקיום ltd הדוק. והבעיה, האם דקדוק חסר הקשר מגדיר שפה רגולרית אינה כריעה. Type Inference

  20. ניווט לעומק • נניח ltd d וביטוי רגולרי p מעל Σ. a תווית ב Σ. נדון בשאלה אם ב lotos שמספקים את d, יש מסלול שיוצא מאיבר בעל תווית a ונמצא ב p. נאמר כי: • pמסופק ב a. אם יש מסלול כזה בחלק מ T(d). • pלא מסופק ב a. אם אין אף מסלול כזה. • pואלידי ב a. אם יש מסלול כזה לכל איבר בעל תווית a בכל loto ב T(d). Type Inference

  21. רדוקציה לאוטומטים מעל עצים • נסמן ב Rd את קבוצת ה lotos ששורשם a ומספקים את d. • נסמן ב Rp את קבוצת ה lotos ששורשם ב a וממנו יוצא מסלול ב p. • מהם ניתן לבנות בזמן פולינומיאלי אוטומטי עצים top-down לא דטרמיניסטים. R’d, R’p • pמסופק ב a, אם R’d ∩R’pלא ריק. בדיקה פולינומיאלית. • pואלידי ב a, אם R’d R’p. בדיקה אקספוננציאלית. Type Inference

  22. Type Tightening • נגדיר לקבוצה T(d) של lotos, תת-קבוצה מקסימלית של lotos שבה p ואלידי ב a. • זוהי תת-קבוצה ממש, אם ב (d)T, p מסופק אך לא ואלידי. • נבנה specialized ltd עבור קבוצה זו. ונסמן: tighten(a,d,p) הבניה אפשרית: • הפעלת specialization על Rd ∩Rp Type Inference

  23. אלגוריתם – 1 • יהיו ltd d והשאילתה q מעל Σ. נבנה את dq • השורש – view. • לכל a ב Σ, dq(a) = d(a) • יהא p אוטומט מעל Σ שמקבל את p. עם מצב ההתחלה s ופונקצית המעברים . • תהא ph השפה המתקבלת מ p אם מתחילים ממצב h. root <p> pl.X.pr Type Inference

  24. אלגוריתם – 1 • נגדיר את dq(view) כדקדוק חסר הקשר: • הטרמינלים הם Σ. • המשתנים הם זוגות <h,a> כאשר h מצב ב p המשתנה ההתחלתי הוא <s,view> • נגדיר את הייצור ב <h,a> נבחין בין המקרה בו h אינו מצב מקבל באוטומט לבין המקרה שהוא כן. Type Inference

  25. אלגוריתם – 1 • אם h אינו מצב מקבל, הניווט לעומק. • לכל סוג b, ב Σ. (h,b)h’ = ph’ ואלידי ב b{<h’,b>} ph’מסופק אך לא ואלידי ב b{,<h’,b>}<h,a>  ph’לא מסופק ב b{} Type Inference

  26. אלגוריתם – 1 • אם h מצב מקבל, הניווט לרוחב (בבנים של a) • <h,a>  th(d(a)) • th עושה התאמה של כל מילה w ב d(a) לתווית pl.X.pr root <p> ההתאמה: מעבר על אותיות w. לכל אות z, בדיקה אם תחילית המילה עד לאותה אות נמצאת ב pl ושאר המילה ב pr. אם יש התאמה פולטת לרצף z<h,z> אם אין התאמה פולטת לרצף <h,z> pl.X.pr Type Inference

  27. דוגמא - שאילתה 1 • שאילתה לקבלת כל רכיבי ה intro וה conc המופיעים בעומק כלשהו תחת CompArticle. journal <CompArticle, section+> Σ*(intro+conc).X. Σ* Type Inference

  28. אלגוריתם – דוגמא 1 • אוטומט שמקבל את (compArticle,section+): (s,compArticle) = h1Ph1 = section+ Ph1 ואלידי ב compArticle ולכן <s,compArticle>  {<h1,compArticle>} (h1,section) = h2Ph2 = section* Ph2 ואלידי ב section ולכן <h1,compArticle>  {<h2,section>} Type Inference

  29. אלגוריתם –דוגמא 1 h2 הוא מצב מקבל. צריך להפעיל את f: התאמה בין d(section) ובין התווית Σ*(intro+conc).X. Σ* d(section) = intro, section*, conc w = intro, conc ==> intro, <h2,intro>, conc, <h2,conc> w = intro, section, conc ==> intro, <h2,intro>, <h2, section>, conc, <h2,conc> w ==> intro, <h2,intro>, <h2, section>*, conc, <h2,conc> Type Inference

  30. דוגמא 1 - תוצאה • <s,compArticle>  {<h1,compArticle>} • <h1,compArticle>  {<h2,section>} • <h2,section>  • intro, <h2,intro>, <h2, section>*, conc, <h2,conc> • <h2,intro> = <h2,conc> =  • ביטול מצבים מיותרים: • root: view; • view: (intro, A*, conc)*; • A: (intro, A*, conc)*; Type Inference

  31. אלגוריתם – 2 • צריך להבטיח את קיום המסלול p’ מ X. • השפה d(view) תשתמש ב d’ = specialized ltds tighten(a,d,p’) root <p> pl.X.pr <X,p’> * Type Inference

  32. אלגוריתם – 2 לכל a ב Σ, אם מתקיים התנאי נמשיך עם a’, האיבר המתאים ב d’. כלומר: p’ ואלידי ב a{<h’,a’>} p’מסופק אך לא ואלידי ב a{,<h’,a’>}<h,a>  p’לא מסופק ב a{} Type Inference

  33. דוגמא - שאילתה 2 • שאילתה לקבלת כל רכיבי ה mathArticle שיש תחתם רכיב theorem שתחתיו יש proof. journal <> Σ*mathArticle.X. Σ* <X, theorem> Σ* proof Σ* Type Inference

  34. אלגוריתם – דוגמא 2 יש לבצע specialization על מנת להבדיל בין mathArticles שיש תחתם theroem עם proof ובין mathArticles אחרים. Specialized ltd: root: journal; Journal: (mathArticle + compArticle + p_mathArticle)*; p_mathArticle: abstract, theorem*, p_theorem, theorem*, summary, ref; p_theorem: (proof + theorem)*, proof, (proof + theorem)*; ואז f תתאים בין d(journal) ובין Σ*p_mathArticle.X. Σ* Type Inference

  35. דוגמא 2 - תוצאה root: view; view: p_mathArticle*; p_mathArticle: abstract, theorem*, p_theorem, theorem*, summary, ref; p_theorem: (proof + theorem)*, proof, (proof + theorem)*; theorem: (proof + theorem)*; Type Inference

  36. תוצאה • בהנתן ltd d רגולרי ושאילתת loto-ql q. ניתן לבנות specialized ltdחסר הקשר הדוק, עבור q(T(d)). סיבוכיות הבניה: אקספוננציאלית. הגודל: פולינומיאלי ב d ואקספוננציאלי ב q. • אם ב ltd אין מעגלים או שבשאילתה אין מעגלים לעומק, ניתן לבנות specialized ltdרגולרי הדוק, עבור q(T(d)). Type Inference

  37. שאילתות מורכבות הרחבה: ניתן להכליל להרבה משתנים. שאילתות הכוללות attributes וטקסט. שאילתה עם בניה מורכבת של התוצאה (למשל group by) ביצוע: צריך לקחת בחשבון משתנים ב pl וב pr, כלומר אחים. צריך לבצע tighten לכל משתנה. בניווט לעומק צריך לקשר בין אוטומטים. Type Inference

  38. שימושים • בהינתן ltd d,d’ רגולריים ושאילתה loto-ql q, ניתן לקבוע אם q(T(d))T(d’). ההוכחה תשתמש ב: • בדיקת הכלה בין דקדוק חסר הקשר לשפה רגולרית • בדיקת הכלה בין שפות עצים רגולריים • סיבוכיות: אקספוננציאלית Type Inference

  39. שימושים • בדיקת התאמה: ניתן לבדוק אם מבניות תוצאה של שאילתה מתאימה להגדרה קודמת. • אופטימיזציות - באחסון התוצאה - בניית שאילות וביצוען • הצגת התוצאה (XSL) Type Inference

  40. THE END!

More Related