View
217
Download
2
Embed Size (px)
Citation preview
DTD Inference for Views of XML Data
Yannis Papakonstantinou and Victor VianuU.C. San Diego
Given by Irit Gefner
17.11.02
Type Inference 2/40
על סדר היום
מוטיבציה
וטענות הגדרות
אלגוריתם
סיכום
Type Inference 3/40
מוטיבציה
Type Inference 4/40
מוטיבציה
:נגדיר
מבנה נתונים המתאים למסמך XML.
מבנה נתונים המתאים ל DTD.
שאילתה על מסמך XML.
:המטרה
בתוצאת XML המתאים ביותר לחלקי ה DTDבניה של השאילתה.
Type Inference 5/40
loto - Labeled Ordered Tree Object
Type Inference 6/40
loto t over Σהגדרה -
.עץ סדור
כל קודקוד מתאים לאלמנט בXML.
( .תווית הקודקוד היא סוג האלמנטtype name)
Σ היא קבוצת ה type names ב XML.
נסמן בn)) את התווית של n עבור .n איבר ב t.
נסמן בtree(n) את תת העץ של t ששורשו הוא n.
Type Inference 7/40
ltd - Loto Type Definition
root: dealer;dealer: UsedCars, NewCars;UsedCars: ad*;NewCars: ad*;ad: (model, year) + model;
Type Inference 8/40
ltd d over Σהגדרה - ( מכיל הגדרה של סוג השורשtype name מ Σ .)
מתאים לכלa ב Σ שפה מעל Σ נסמן ב .d(a).
אםn1,n2,..,nk הם הבנים של n אז המילה ,(nk) (n1).. שייכת ל d((n))
נסמן בd(root).את הסוג של השורש
loto t את מספקd:אם
.d(root) הוא מסוג t- השורש של
..(nk) (n1) (n2) המילה n1,n2,..,nk עם הבנים t ב n- לכלd((n))שייכת ל
נסמן בT(d) את קבוצת ה lotos שמספקים את d.
Type Inference 9/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.
Type Inference 10/40
לכל a ב
Σ, נסמן ב
L
a
את
השפה
שמכילה
את כל
המילי
ם (n
k
)
(n
1
)..
עבור כל
n
1
,..,
n
k
שהם בני
ם
של
איבר ב t בעל
תוי
ת
Lad = {(model,year),(model)}
סגירות תחת החלפת תת עץ קבוצהT של lotos כאשר:סגורה תחת החלפת תת עץ
’’t. אז (n’)=(n). ומתקיים ’t איבר ב ’t. n איבר ב T. n ב ’t,tאם .T שייך ל tree(n’) ב tree(n) על ידי החלפת tהמתקבל מ
...הגדרות נוספות לכלa ב Σ נסמן ב ,La את השפה שמכילה את כל המילים (nk)
(n1).. עבור כל n1,..,nk שהם בנים של איבר בt בעל תווית a.
Type Inference 11/40
מספר טענות
לקבוצהT של lotos יש ltd אם"ם מתקיימים שני הדוק סגורה תחת החלפת תת עץ.T שפה רגולרית. Laהתנאים:
. אם יש כאלה נחפש את קירובים נתעניין בהדוק ltd אין Tאם ל מביניהם.הדוק ביותר ה
לקבוצהT מעל Σ יש ltd אם"ם לכל הדוק ביותר a ב Σ, La היא שפה רגולרית.
Type Inference 12/40
- המשך -
אם איןltd קירובים, יש אינסוף הדוק ביותר.
root: section;section: intro, section*, conc;
.conc וה intro נדון בתוצאת השאילתה המבקשת את כל ה
root: view;view: ( + intro), (intro + conc)*, conc;
Ltd:קרוב יותר
root: view;view: (intro + conc)*;
Ltd:קרוב
Type Inference 13/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.הדוק
Type Inference 14/40
Specializaion
Specialized ltd d = < Σ , Σ’ , 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;
Type Inference 15/40
Select loto-qlSelect X where body
:לכל קודקוד פנימי, תווית מהצורה p1.X1… pkXkpk+1
< :לכל צלע היוצאת מקודקוד, תווית מהצורה Xi,p >
Xi .משתנה שמופיע בקודקוד p.ביטוי רגולרי
p1.X1… pkXkpk+1
pl.X’.pr
root
<p’>
<X’,p> פונקצית הקשירה :
(X’) = n0 כך ש n0…nm יש במסמך איברים
(n1)… (nm)p ול nm יש בנים y11..y1i1…y(k+1)1..y(k+1)i(k+1)
j k 0כך שלכל
(yj1)… (yjik)pj (Xj) = yjijמתקיים
Type Inference 16/40
דוגמא
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/40
Select loto-ql
journal
Σ*(intro+conc).X. Σ*
<CompArticle, section+>
שאילתה לקבלת כל רכיבי הintro וה conc המופיעים בעומק .CompArticleכלשהו תחת
root: view;view: (intro, A, conc)*;A: (intro, A, conc)*;
Type Inference 18/40
Select loto-ql
journal
Σ*mathArticle.X. Σ*
<>
שאילתה לקבלת כל רכיבי הmathArticle שיש תחתם רכיב theorem שתחתיו יש proof.
<X, theorem>
Σ* proof Σ*
Type Inference 19/40
רגע לפני האלגוריתם
ראינו כי בניה שלltd לתוצאה של שאילתה זקוקה לעיתים .specializationלמנגנון ה
וכן כי יש שאילתות שהתוצאה שלהן תתואר ע"יltd חסר הקשר.
בהינתןltd d ושאילתה q loto-ql השאלה האם יש ltd רגולרי , אינה ניתנת להכרעה.q(T(d))הדוק או הדוק ביותר עבור
זאת משום שכפי שראינו הרגולריות היא תנאי הכרחי לקיוםltd הדוק. והבעיה, האם דקדוק חסר הקשר מגדיר שפה רגולרית
אינה כריעה.
Type Inference 20/40
ניווט לעומק
נניחltd d וביטוי רגולרי p מעל Σ. a תווית ב Σ.
, יש מסלול שיוצא d שמספקים את lotosנדון בשאלה אם ב . p ונמצא ב aמאיבר בעל תווית
נאמר כי:
-p ב מסופק a אם יש מסלול כזה בחלק מ .T(d).
-p ב לא מסופק a.אם אין אף מסלול כזה .
-p ב ואלידי a אם יש מסלול כזה לכל איבר בעל תווית .a בכל loto ב T(d).
Type Inference 21/40
רדוקציה לאוטומטים מעל עצים
נסמן ב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/40
Type Tightening
נגדיר לקבוצהT(d) של lotos תת-קבוצה מקסימלית של ,lotos .a ואלידי ב pשבה
( זוהי תת-קבוצה ממש, אם בd)T, p.מסופק אך לא ואלידי
נבנהspecialized ltd :עבור קבוצה זו. ונסמן tighten(a,d,p)
הבניה אפשרית:
הפעלתspecialization על Rd ∩ Rp
Type Inference 23/40
1אלגוריתם –
יהיוltd d והשאילתה q מעל Σ נבנה את .dq
– השורשview.
לכלa ב Σ, dq(a) = d(a)
יהאp אוטומט מעל Σ שמקבל את p עם .. ופונקצית המעברים sמצב ההתחלה
תהאph השפה המתקבלת מ p אם מתחילים .hממצב
pl.X.pr
root
<p>
Type Inference 24/40
1אלגוריתם –
נגדיר אתdq(view):כדקדוק חסר הקשר
הטרמינלים הםΣ.
המשתנים הם זוגות<h,a>
p מצב ב hכאשר
<s,view>המשתנה ההתחלתי הוא
נגדיר את הייצור ב<h,a>
אינו מצב מקבל באוטומט לבין המקרה hנבחין בין המקרה בו שהוא כן.
Type Inference 25/40
אםh.אינו מצב מקבל, הניווט לעומק
לכל סוגb ב ,Σ. (h,b) h= ’
ph’ ואלידי ב b {<h’,b>}
ph’ מסופק אך לא ואלידי בb {,<h’,b>} <h,a>
ph’ לא מסופק בb {}
1אלגוריתם –
Type Inference 26/40
1אלגוריתם – אםh בבנים של( מצב מקבל, הניווט לרוחב a)
<h,a> th(d(a))
th עושה התאמה של כל מילה w ב d(a) לתווית pl.X.pr
ההתאמה:
מעבר על אותיותw .
לכל אותz בדיקה אם תחילית המילה עד לאותה ,.pr ושאר המילה ב plאות נמצאת ב
אם יש התאמה פולטת לרצףz<h,z>
אם אין התאמה פולטת לרצף<h,z>
pl.X.pr
root
<p>
Type Inference 27/40
1דוגמא - שאילתה
journal
Σ*(intro+conc).X. Σ*
<CompArticle, section+>
שאילתה לקבלת כל רכיבי הintro וה conc המופיעים בעומק .CompArticleכלשהו תחת
Type Inference 28/40
1אלגוריתם – דוגמא
אוטומט שמקבל את(compArticle,section+):
(s,compArticle) = h1 Ph1 = section+
Ph1 ואלידי ב compArticleולכן
<s,compArticle> {<h1,compArticle>}
(h1,section) = h2 Ph2 = section*
Ph2 ואלידי ב sectionולכן
<h1,compArticle> {<h2,section>}
Type Inference 29/40
1אלגוריתם –דוגמא
h2 הוא מצב מקבל. צריך להפעיל את f:
*Σ*(intro+conc).X. Σ ובין התווית d(section)התאמה בין
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/40
- תוצאה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/40
2אלגוריתם –
צריך להבטיח את קיום המסלולp’ מ X.
השפהd(view)תשתמש ב
d’ = specialized ltds tighten(a,d,p’)
pl.X.pr
root
<p>
*
<X,p’>
Type Inference 32/40
, האיבר המתאים ב ’a, אם מתקיים התנאי נמשיך עם Σ ב aלכל d’:כלומר .
p’ ואלידי ב a {<h’,a’>}
p’ מסופק אך לא ואלידי בa {,<h’,a’>} <h,a>
p’ לא מסופק בa {}
2אלגוריתם –
Type Inference 33/40
2דוגמא - שאילתה
journal
Σ*mathArticle.X. Σ*
<>
שאילתה לקבלת כל רכיבי הmathArticle שיש תחתם רכיב theorem שתחתיו יש proof.
<X, theorem>
Σ* proof Σ*
Type Inference 34/40
2אלגוריתם – דוגמא
שיש mathArticles על מנת להבדיל בין specializationיש לבצע אחרים.mathArticles ובין proof עם theroemתחתם
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)*; * Σ*p_mathArticle.X. Σ ובין d(journal) תתאים בין fואז
Type Inference 35/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)*;
Type Inference 36/40
תוצאה
בהנתןltd d רגולרי ושאילתת loto-ql q ניתן לבנות .specialized ltd עבור חסר הקשר הדוק ,q(T(d)).
סיבוכיות הבניה: אקספוננציאלית.
.q ואקספוננציאלי ב dהגודל: פולינומיאלי ב
אם בltd אין מעגלים או שבשאילתה אין מעגלים לעומק, ניתן .q(T(d)), עבור רגולרי הדוק specialized ltdלבנות
Type Inference 37/40
שאילתות מורכבותהרחבה:
.ניתן להכליל להרבה משתנים
שאילתות הכוללות attributes.וטקסט
למשל( שאילתה עם בניה מורכבת של התוצאה group by)
ביצוע:
צריך לקחת בחשבון משתנים ב pl וב pr.כלומר אחים ,
צריך לבצע tighten.לכל משתנה
.בניווט לעומק צריך לקשר בין אוטומטים
Type Inference 38/40
שימושים
בהינתןltd d,d’ רגולריים ושאילתה loto-ql q ניתן לקבוע אם ,q(T(d))T(d’).
ההוכחה תשתמש ב:
בדיקת הכלה בין דקדוק חסר הקשר לשפה רגולרית-
בדיקת הכלה בין שפות עצים רגולריים-
סיבוכיות: אקספוננציאלית
Type Inference 39/40
שימושים
:בדיקת התאמה
ניתן לבדוק אם מבניות תוצאה של שאילתה מתאימה להגדרה קודמת.
אופטימיזציות
- באחסון התוצאה
- בניית שאילות וביצוען
( הצגת התוצאהXSL)
THE END!THE END!