Download presentation
Presentation is loading. Please wait.
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 Inference2/40 על סדר היום מוטיבציה הגדרות וטענות אלגוריתם סיכום
3
Type Inference3/40 מוטיבציה
4
Type Inference4/40 מוטיבציה נגדיר : מבנה נתונים המתאים למסמך XML. מבנה נתונים המתאים ל DTD. שאילתה על מסמך XML. המטרה : בניה של DTD המתאים ביותר לחלקי ה XML בתוצאת השאילתה.
5
Type Inference5/40 loto - Labeled Ordered Tree Object
6
Type Inference6/40 - הגדרה loto t over Σ עץ סדור. כל קודקוד מתאים לאלמנט ב XML. תווית הקודקוד היא סוג האלמנט. (type name) Σ היא קבוצת ה type names ב XML. נסמן ב n)) את התווית של n. עבור n איבר ב t. נסמן ב tree(n) את תת העץ של t ששורשו הוא n.
7
Type Inference7/40 ltd - Loto Type Definition root: dealer; dealer: UsedCars, NewCars; UsedCars: ad*; NewCars: ad*; ad: (model, year) + model;
8
Type Inference8/40 - הגדרה ltd d over Σ מכיל הגדרה של סוג השורש (type name מ Σ). מתאים לכל a ב Σ שפה מעל Σ. נסמן ב d(a). אם n 1,n 2,..,n k הם הבנים של n, אז המילה (n k ) (n 1 ).. שייכת ל d( (n)) נסמן ב d(root) את הסוג של השורש. loto t מספק את d אם : - השורש של t הוא מסוג d(root). - לכל n ב t עם הבנים n 1,n 2,..,n k המילה (n k ) (n 1 ) (n 2 ).. שייכת ל d( (n)) נסמן ב T(d) את קבוצת ה lotos שמספקים את d.
9
Type Inference9/40 הגדרות נוספות... 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.
10
Type Inference10/40 ל כ ל a ב Σ, נ ס מ ן ב L a א ת ה ש פ ה ש מ כ י ל ה א ת כ ל ה מ י ל י ם ( n k ) ( n 1 ).. ע ב ו ר כ ל n 1,.., n k ש ה ם ב נ י ם ש ל א י ב ר ב t ב ע ל ת ו י ת L ad = {(model,year),(model)} סגירות תחת החלפת תת עץ קבוצה T של lotos סגורה תחת החלפת תת עץ כאשר : אם t,t’ ב T. n איבר ב t. n’ איבר ב t’. ומתקיים (n’)= (n). אז t’’ המתקבל מ t על ידי החלפת tree(n) ב tree(n’) שייך ל T. הגדרות נוספות... לכל a ב Σ, נסמן ב L a את השפה שמכילה את כל המילים (n k ) (n 1 ).. עבור כל n 1,..,n k שהם בנים של איבר ב t בעל תווית a.
11
Type Inference11/40 מספר טענות לקבוצה T של lotos יש ltd הדוק אם " ם מתקיימים שני התנאים : L a שפה רגולרית. T סגורה תחת החלפת תת עץ. אם ל T אין ltd הדוק נתעניין בקירובים. אם יש כאלה נחפש את ההדוק ביותר מביניהם. לקבוצה T מעל Σ יש ltd הדוק ביותר אם " ם לכל a ב Σ, L a היא שפה רגולרית.
12
Type Inference12/40 - המשך - אם אין ltd הדוק ביותר, יש אינסוף קירובים. root: section; section: intro, section*, conc; נדון בתוצאת השאילתה המבקשת את כל ה intro וה conc. root: view; view: ( + intro), (intro + conc)*, conc; Ltd קרוב יותר : root: view; view: (intro + conc)*; Ltd קרוב :
13
Type Inference13/40 מוגבל DTD ראינו מסמך בודד שלא ניתן למצוא לו ltd הדוק. בעייתיות בשרשור מסמכים. אי יכולת לבטא מספר חזרות של סוג מסוים. נגדיר מנגנון specialization. root: UsedCars; UsedCars: ad*; ad:model, year; root: NewCars; NewCars: ad*; ad:model; root: dealers; dealers: dealer*; dealer: UsedCars, NewCars; UsedCars: ad*; NewCars: ad*; ad:(model,year) + model; ראינו מסמך בודד שלא ניתן למצוא לו ltd הדוק. בעייתיות בשרשור מסמכים. ראינו מסמך בודד שלא ניתן למצוא לו ltd הדוק.
14
Type Inference14/40 Specializaion Specialized ltd d = d הוא ltd מעל Σ. d הוא specialized ltd מעל Σ’. ממפה מ Σ’ ל Σ. לכל תווית ב Σ, יש קבוצה של תוויות ב Σ’ הערה : ltds כאלו אפשר להמיר לאוטומטים מעל עצים. ולכן בדיקת הכלה למשל תבוצע בזמן אקספוננציאלי ובדיקת ריקנות בזמן פולינומיאלי. 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;
15
Type Inference15/40 Select loto-ql Select X where body לכל קודקוד פנימי, תווית מהצורה : p 1.X 1 … p k X k p k+1 לכל צלע היוצאת מקודקוד, תווית מהצורה : X i משתנה שמופיע בקודקוד. p ביטוי רגולרי. p 1.X 1 … p k X k p k+1 pl.X’.pr root פונקצית הקשירה : יש במסמך איברים n 0 …n m כך ש (X’) = n 0 (n 1 )… (n m ) p ול n m יש בנים y1 1..y1 i1 …y(k+1) 1..y(k+1) i(k+1) כך שלכל 0 j k מתקיים (yj 1 )… (yj ik ) p j (X j ) = yj ij
16
Type Inference16/40 דוגמא root: journal; journal: (mathArticle, compAtricle)*; mathArticle: abstract, theorem*, summary, ref; compArticle: abstract, section +, summary, ref; theorem: (proof + theorem)*; Section:intro, section*, conc;
17
Type Inference17/40 Select loto-ql journal Σ*(intro+conc).X. Σ* שאילתה לקבלת כל רכיבי ה intro וה conc המופיעים בעומק כלשהו תחת CompArticle. root: view; view: (intro, A, conc)*; A: (intro, A, conc)*;
18
Type Inference18/40 Select loto-ql journal Σ*mathArticle.X. Σ* <><> שאילתה לקבלת כל רכיבי ה mathArticle שיש תחתם רכיב theorem שתחתיו יש proof. Σ* proof Σ*
19
Type Inference19/40 רגע לפני האלגוריתם ראינו כי בניה של ltd לתוצאה של שאילתה זקוקה לעיתים למנגנון ה specialization. וכן כי יש שאילתות שהתוצאה שלהן תתואר ע " י ltd חסר הקשר. בהינתן ltd d ושאילתה q loto-ql השאלה האם יש ltd רגולרי הדוק או הדוק ביותר עבור q(T(d)), אינה ניתנת להכרעה. זאת משום שכפי שראינו הרגולריות היא תנאי הכרחי לקיום ltd הדוק. והבעיה, האם דקדוק חסר הקשר מגדיר שפה רגולרית אינה כריעה.
20
Type Inference20/40 ניווט לעומק נניח ltd d וביטוי רגולרי p מעל Σ. a תווית ב Σ. נדון בשאלה אם ב lotos שמספקים את d, יש מסלול שיוצא מאיבר בעל תווית a ונמצא ב p. נאמר כי : - p מסופק ב a. אם יש מסלול כזה בחלק מ T(d). - p לא מסופק ב a. אם אין אף מסלול כזה. - p ואלידי ב a. אם יש מסלול כזה לכל איבר בעל תווית a בכל loto ב T(d).
21
Type Inference21/40 רדוקציה לאוטומטים מעל עצים נסמן ב R d את קבוצת ה lotos ששורשם a ומספקים את d. נסמן ב R p את קבוצת ה lotos ששורשם ב a וממנו יוצא מסלול ב p. מהם ניתן לבנות בזמן פולינומיאלי אוטומטי עצים top-down לא דטרמיניסטים. R’ d, R’ p p מסופק ב a, אם R’ d ∩ R’ p לא ריק. בדיקה פולינומיאלית. p ואלידי ב a, אם R’ d R’ p. בדיקה אקספוננציאלית.
22
Type Inference22/40 Type Tightening נגדיר לקבוצה T(d) של lotos, תת - קבוצה מקסימלית של lotos שבה p ואלידי ב a. זוהי תת - קבוצה ממש, אם ב (d)T, p מסופק אך לא ואלידי. נבנה specialized ltd עבור קבוצה זו. ונסמן : tighten(a,d,p) הבניה אפשרית : הפעלת specialization על R d ∩ R p
23
Type Inference23/40 אלגוריתם – 1 יהיו ltd d והשאילתה q מעל Σ. נבנה את d q השורש – view. לכל a ב Σ, d q (a) = d(a) יהא p אוטומט מעל Σ שמקבל את p. עם מצב ההתחלה s ופונקצית המעברים . תהא p h השפה המתקבלת מ p אם מתחילים ממצב h. pl.X.pr root
24
Type Inference24/40 אלגוריתם – 1 נגדיר את d q (view) כדקדוק חסר הקשר : הטרמינלים הם Σ. המשתנים הם זוגות כאשר h מצב ב p המשתנה ההתחלתי הוא נגדיר את הייצור ב נבחין בין המקרה בו h אינו מצב מקבל באוטומט לבין המקרה שהוא כן.
25
Type Inference25/40 אם h אינו מצב מקבל, הניווט לעומק. לכל סוג b, ב Σ. (h,b) h’ = p h’ ואלידי ב b { } p h’ מסופק אך לא ואלידי ב b { , } p h’ לא מסופק ב b { } אלגוריתם – 1
26
Type Inference26/40 אלגוריתם – 1 אם h מצב מקבל, הניווט לרוחב ( בבנים של a) t h (d(a)) t h עושה התאמה של כל מילה w ב d(a) לתווית pl.X.pr ההתאמה : מעבר על אותיות w. לכל אות z, בדיקה אם תחילית המילה עד לאותה אות נמצאת ב pl ושאר המילה ב pr. אם יש התאמה פולטת לרצף z אם אין התאמה פולטת לרצף pl.X.pr root
27
Type Inference27/40 דוגמא - שאילתה 1 journal Σ*(intro+conc).X. Σ* שאילתה לקבלת כל רכיבי ה intro וה conc המופיעים בעומק כלשהו תחת CompArticle.
28
Type Inference28/40 אלגוריתם – דוגמא 1 אוטומט שמקבל את (compArticle,section + ): (s,compArticle) = h1 P h1 = section + P h1 ואלידי ב compArticle ולכן { } (h1,section) = h2 P h2 = section* P h2 ואלידי ב section ולכן { }
29
Type Inference29/40 אלגוריתם – דוגמא 1 h2 הוא מצב מקבל. צריך להפעיל את f: התאמה בין d(section) ובין התווית Σ*(intro+conc).X. Σ* d(section) = intro, section*, conc w = intro, conc ==> intro,, conc, w = intro, section, conc ==> intro,,, conc, w ==> intro,, *, conc,
30
Type Inference30/40 דוגמא 1 - תוצאה { } intro,, *, conc, = = ביטול מצבים מיותרים : root: view; view: (intro, A*, conc)*; A: (intro, A*, conc)*;
31
Type Inference31/40 אלגוריתם – 2 צריך להבטיח את קיום המסלול p’ מ X. השפה d(view) תשתמש ב d’ = specialized ltds tighten(a,d,p’) pl.X.pr root *
32
Type Inference32/40 לכל a ב Σ, אם מתקיים התנאי נמשיך עם a’, האיבר המתאים ב d’. כלומר : p’ ואלידי ב a { } p’ מסופק אך לא ואלידי ב a { , } p’ לא מסופק ב a { } אלגוריתם – 2
33
Type Inference33/40 דוגמא - שאילתה 2 journal Σ*mathArticle.X. Σ* <><> שאילתה לקבלת כל רכיבי ה mathArticle שיש תחתם רכיב theorem שתחתיו יש proof. Σ* proof Σ*
34
Type Inference34/40 אלגוריתם – דוגמא 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. Σ*
35
Type Inference35/40 דוגמא 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)*;
36
Type Inference36/40 תוצאה בהנתן ltd d רגולרי ושאילתת loto-ql q. ניתן לבנות specialized ltd חסר הקשר הדוק, עבור q(T(d)). סיבוכיות הבניה : אקספוננציאלית. הגודל : פולינומיאלי ב d ואקספוננציאלי ב q. אם ב ltd אין מעגלים או שבשאילתה אין מעגלים לעומק, ניתן לבנות specialized ltd רגולרי הדוק, עבור q(T(d)).
37
Type Inference37/40 שאילתות מורכבות הרחבה : ניתן להכליל להרבה משתנים. שאילתות הכוללות attributes וטקסט. שאילתה עם בניה מורכבת של התוצאה ( למשל group by) ביצוע : צריך לקחת בחשבון משתנים ב pl וב pr, כלומר אחים. צריך לבצע tighten לכל משתנה. בניווט לעומק צריך לקשר בין אוטומטים.
38
Type Inference38/40 שימושים בהינתן ltd d,d’ רגולריים ושאילתה loto-ql q, ניתן לקבוע אם q(T(d)) T(d’). ההוכחה תשתמש ב : - בדיקת הכלה בין דקדוק חסר הקשר לשפה רגולרית - בדיקת הכלה בין שפות עצים רגולריים סיבוכיות : אקספוננציאלית
39
Type Inference39/40 שימושים בדיקת התאמה : ניתן לבדוק אם מבניות תוצאה של שאילתה מתאימה להגדרה קודמת. אופטימיזציות - באחסון התוצאה - בניית שאילות וביצוען הצגת התוצאה (XSL)
40
THE END!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.