Dtd inference for views of xml data
This presentation is the property of its rightful owner.
Sponsored Links
1 / 40

DTD Inference for Views of XML Data PowerPoint PPT Presentation


  • 74 Views
  • Uploaded on
  • Presentation posted in: General

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 .

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


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


Dtd inference for views of xml data

על סדר היום

  • מוטיבציה

  • הגדרותוטענות

  • אלגוריתם

  • סיכום

Type Inference


Dtd inference for views of xml data

מוטיבציה

Type Inference


Dtd inference for views of xml data

מוטיבציה

נגדיר:

מבנה נתונים המתאים למסמך XML.

מבנה נתונים המתאים ל DTD.

שאילתה על מסמך XML.

המטרה:

בניה של DTD המתאים ביותר לחלקי ה XML בתוצאת השאילתה.

Type Inference


Loto labeled ordered tree object

loto - Labeled Ordered Tree Object

Type Inference


Loto t over

- הגדרהlotot over Σ

  • עץ סדור.

  • כל קודקוד מתאים לאלמנט ב XML.

  • תווית הקודקוד היא סוג האלמנט. (type name)

  • Σ היא קבוצת ה type names ב XML.

  • נסמן ב n)) את התווית של n. עבור n איבר ב t.

  • נסמן ב tree(n) את תת העץ של t ששורשו הוא n.

Type Inference


Ltd loto type definition

root: dealer;

dealer: UsedCars, NewCars;

UsedCars: ad*;

NewCars: ad*;

ad: (model, year) + model;

ltd - Loto Type Definition

Type Inference


Ltd d over

- הגדרה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


Dtd inference for views of xml data

הגדרות נוספות...

  • 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


Dtd inference for views of xml data

סגירות תחת החלפת תת עץ

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


Dtd inference for views of xml data

מספר טענות

  • לקבוצה T של lotos יש ltdהדוק אם"ם מתקיימים שני התנאים: La שפה רגולרית. T סגורה תחת החלפת תת עץ.

    אם ל T אין ltdהדוק נתעניין בקירובים. אם יש כאלה נחפש את ההדוק ביותר מביניהם.

  • לקבוצה T מעל Σ יש ltdהדוק ביותר אם"ם לכל a ב Σ, La היא שפה רגולרית.

Type Inference


Dtd inference for views of xml data

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


Dtd inference for views of xml data

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


Specializaion

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


Select loto ql

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


Dtd inference for views of xml data

דוגמא

  • root: journal;

  • journal: (mathArticle, compAtricle)*;

  • mathArticle: abstract, theorem*, summary, ref;

  • compArticle: abstract, section+, summary, ref;

  • theorem: (proof + theorem)*;

  • Section:intro, section*, conc;

Type Inference


Select loto ql1

Select loto-ql

  • שאילתה לקבלת כל רכיבי ה intro וה conc המופיעים בעומק כלשהו תחת CompArticle.

journal

<CompArticle, section+>

Σ*(intro+conc).X. Σ*

root: view;

view: (intro, A, conc)*;

A: (intro, A, conc)*;

Type Inference


Select loto ql2

Select loto-ql

  • שאילתה לקבלת כל רכיבי ה mathArticle שיש תחתם רכיב theorem שתחתיו יש proof.

journal

<>

Σ*mathArticle.X. Σ*

<X, theorem>

Σ* proof Σ*

Type Inference


Dtd inference for views of xml data

רגע לפני האלגוריתם

  • ראינו כי בניה של ltd לתוצאה של שאילתה זקוקה לעיתים למנגנון ה specialization.

  • וכן כי יש שאילתות שהתוצאה שלהן תתואר ע"י ltd חסר הקשר.

  • בהינתן ltd d ושאילתה qloto-ql השאלה האם יש ltd רגולרי הדוק או הדוק ביותר עבור q(T(d)), אינה ניתנת להכרעה.

  • זאת משום שכפי שראינו הרגולריות היא תנאי הכרחי לקיום ltd הדוק. והבעיה, האם דקדוק חסר הקשר מגדיר שפה רגולרית אינה כריעה.

Type Inference


Dtd inference for views of xml data

ניווט לעומק

  • נניח ltd d וביטוי רגולרי p מעל Σ. a תווית ב Σ.

    נדון בשאלה אם ב lotos שמספקים את d, יש מסלול שיוצא מאיבר בעל תווית a ונמצא ב p.

    נאמר כי:

  • pמסופק ב a. אם יש מסלול כזה בחלק מ T(d).

  • pלא מסופק ב a. אם אין אף מסלול כזה.

  • pואלידי ב a. אם יש מסלול כזה לכל איבר בעל תווית a בכל loto ב T(d).

Type Inference


Dtd inference for views of xml data

רדוקציה לאוטומטים מעל עצים

  • נסמן ב 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


Type tightening

Type Tightening

  • נגדיר לקבוצה T(d) של lotos, תת-קבוצה מקסימלית של lotos שבה p ואלידי ב a.

  • זוהי תת-קבוצה ממש, אם ב (d)T, p מסופק אך לא ואלידי.

  • נבנה specialized ltd עבור קבוצה זו. ונסמן: tighten(a,d,p)

    הבניה אפשרית:

  • הפעלת specialization על Rd ∩Rp

Type Inference


Dtd inference for views of xml data

אלגוריתם – 1

  • יהיו ltd d והשאילתה q מעל Σ. נבנה את dq

  • השורש – view.

  • לכל a ב Σ, dq(a) = d(a)

  • יהא p אוטומט מעל Σ שמקבל את p. עם מצב ההתחלה s ופונקצית המעברים .

  • תהא ph השפה המתקבלת מ p אם מתחילים ממצב h.

root

<p>

pl.X.pr

Type Inference


Dtd inference for views of xml data

אלגוריתם – 1

  • נגדיר את dq(view) כדקדוק חסר הקשר:

  • הטרמינלים הם Σ.

  • המשתנים הם זוגות <h,a>

    כאשר h מצב ב p

    המשתנה ההתחלתי הוא <s,view>

  • נגדיר את הייצור ב <h,a>

    נבחין בין המקרה בו h אינו מצב מקבל באוטומט לבין המקרה שהוא כן.

Type Inference


Dtd inference for views of xml data

אלגוריתם – 1

  • אם h אינו מצב מקבל, הניווט לעומק.

  • לכל סוג b, ב Σ. (h,b)h’ =

    ph’ ואלידי ב b{<h’,b>}

    ph’מסופק אך לא ואלידי ב b{,<h’,b>}<h,a> 

    ph’לא מסופק ב b{}

Type Inference


Dtd inference for views of xml data

אלגוריתם – 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


Dtd inference for views of xml data

דוגמא - שאילתה 1

  • שאילתה לקבלת כל רכיבי ה intro וה conc המופיעים בעומק כלשהו תחת CompArticle.

journal

<CompArticle, section+>

Σ*(intro+conc).X. Σ*

Type Inference


Dtd inference for views of xml data

אלגוריתם – דוגמא 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


Dtd inference for views of xml data

אלגוריתם –דוגמא 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


Dtd inference for views of xml data

דוגמא 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


Dtd inference for views of xml data

אלגוריתם – 2

  • צריך להבטיח את קיום המסלול p’ מ X.

  • השפה d(view) תשתמש ב

    d’ = specialized ltds tighten(a,d,p’)

root

<p>

pl.X.pr

<X,p’>

*

Type Inference


Dtd inference for views of xml data

אלגוריתם – 2

לכל a ב Σ, אם מתקיים התנאי נמשיך עם a’, האיבר המתאים ב d’. כלומר:

p’ ואלידי ב a{<h’,a’>}

p’מסופק אך לא ואלידי ב a{,<h’,a’>}<h,a> 

p’לא מסופק ב a{}

Type Inference


Dtd inference for views of xml data

דוגמא - שאילתה 2

  • שאילתה לקבלת כל רכיבי ה mathArticle שיש תחתם רכיב theorem שתחתיו יש proof.

journal

<>

Σ*mathArticle.X. Σ*

<X, theorem>

Σ* proof Σ*

Type Inference


Dtd inference for views of xml data

אלגוריתם – דוגמא 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


Dtd inference for views of xml data

דוגמא 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


Dtd inference for views of xml data

תוצאה

  • בהנתן ltd d רגולרי ושאילתת loto-ql q. ניתן לבנות specialized ltdחסר הקשר הדוק, עבור q(T(d)).

    סיבוכיות הבניה: אקספוננציאלית.

    הגודל: פולינומיאלי ב d ואקספוננציאלי ב q.

  • אם ב ltd אין מעגלים או שבשאילתה אין מעגלים לעומק, ניתן לבנות specialized ltdרגולרי הדוק, עבור q(T(d)).

Type Inference


Dtd inference for views of xml data

שאילתות מורכבות

הרחבה:

ניתן להכליל להרבה משתנים.

שאילתות הכוללות attributes וטקסט.

שאילתה עם בניה מורכבת של התוצאה (למשל group by)

ביצוע:

צריך לקחת בחשבון משתנים ב pl וב pr, כלומר אחים.

צריך לבצע tighten לכל משתנה.

בניווט לעומק צריך לקשר בין אוטומטים.

Type Inference


Dtd inference for views of xml data

שימושים

  • בהינתן ltd d,d’ רגולריים ושאילתה loto-ql q, ניתן לקבוע אם q(T(d))T(d’).

    ההוכחה תשתמש ב:

  • בדיקת הכלה בין דקדוק חסר הקשר לשפה רגולרית

  • בדיקת הכלה בין שפות עצים רגולריים

  • סיבוכיות: אקספוננציאלית

Type Inference


Dtd inference for views of xml data

שימושים

  • בדיקת התאמה:

    ניתן לבדוק אם מבניות תוצאה של שאילתה מתאימה להגדרה קודמת.

  • אופטימיזציות

    - באחסון התוצאה

    - בניית שאילות וביצוען

  • הצגת התוצאה (XSL)

Type Inference


The end

THE END!


  • Login