Ctl model checking for processing simple xpath queries
This presentation is the property of its rightful owner.
Sponsored Links
1 / 34

בס"ד CTL Model Checking For Processing Simple XPath Queries PowerPoint PPT Presentation


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

בס"ד CTL Model Checking For Processing Simple XPath Queries. Authors: Loredana Afanasiev , Massimo Franceschet Maarten Mark , Maarten de Rijke Presented by: Doron Grinberg. הרעיון המרכזי.

Download Presentation

בס"ד CTL Model Checking For Processing Simple XPath Queries

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


Ctl model checking for processing simple xpath queries

בס"דCTL Model Checking For Processing Simple XPath Queries

Authors: Loredana Afanasiev , Massimo Franceschet

Maarten Mark , Maarten de Rijke

Presented by: Doron Grinberg


Ctl model checking for processing simple xpath queries

הרעיון המרכזי

נבצע את השאילתא באופן הבא: XML על מסמךSimple Xpathבהינתן שאילתת

למבנה קריפקה מתאים (לפחות את החלק הרלוונטי לשאילתא) .XML1. נתרגם את מסמך ה-

מתאימה.CTL לנוסחתSimple XPath2. נתרגם את שאילתת ה-

ביחס למבנה הקריפקה באמצעות כלי לבדיקת מודל,CTL3. נבדוק את נוסחת ה-

ומכאן נסיק את התשובה לשאילתא.


Extensible markup language xml

(Extensible Markup Language) XML דוגמא למסמך

<semester grades>

<semester> Spring 2004 </semester>

<student name> Roni Ron </student name>

<student id> 034567890 </student id>

<grades record>

<course name> DATABASE SYSTEMS </course name>

<course number> 236363 </course number>

<grade> 85 </grade>

</grades record>

<grades record>

<course name> THEORY OF COMPILATION </course name>

<course number> 236360 </course number>

<grade> 80 </grade>

</grades record>

<grades record>

<course name> FILE SYSTEMS </course name>

<course number> 234322 </course number>

<grade> 85 </grade>

</grades record>

</semester grades>


Ctl model checking for processing simple xpath queries

ייצוג המסמך כעץ

r

s1

semester grades

s15

s22

s8

s4

s6

s2

semester

student name

student id

grade record

grade record

grade record

s5

s7

s3

Spring 2004

Roni Ron

034567890

s23

s13

s20

s25

s16

s18

s27

s11

s9

course name

course number

grade

course name

course number

grade

course name

course number

grade

s10

s14

s19

s26

s24

s28

s17

s21

s12

DATABASE SYSTEMS

236363

85

THEORY OF COMPILATION

236360

80

FILE SYSTEMS

234322

85


Ctl model checking for processing simple xpath queries

XMLהגדרת עץ מסמך

כולל הסימן המיוחד *XML קבוצת התויות בצמתי ה ∑תהי

T)=N ,R ,L( הוא : XML עץ מסמך

כאשר:

N - r קבוצת הצמתים כולל השורש

R – N×N קבוצת קשתות העץ שהיא תת קבוצה של

L: ∑->2^N

מגדירה את קבוצת הצמתים שמסומנים באותה תוית,∑פונקצית סימון, שלכל תוית ב

L= (*) Nומקיימת ש:


Ctl model checking for processing simple xpath queries

מרכיבי לוגיקה טמפורלית פסוקית

AP- קבוצה של נוסחאות אטומיות :

¬,V, Λ - אופרטורים בוליאניים :

- אופרטורים טמפורליים:

(future) F p : p ישנו מצב עתידי בו מתקיים

(globally) G p : מתקיים תמיד p

(next) X p : מתקיים במצב הבא p

(p until q) p U q : מתקיים (ויש כזה מצב עתידי) q מתקיים בכל המצבים עד למצב שבו p

A לכל מסלול : ,E- כמתי מסלול: קיים מסלול :

p

p

p

p

p

p

p

p

q

q


Ctl computation tree logic

CTL (Computation Tree Logic)

APנתונה קבוצה של נוסחאות אטומיות-

מוגדרת באופן הבא:CTLהלוגיקה הטמפורלית

p € CTL אז p € AP1. אם

אז גם: f,g € CTL2. אם

¬ f , fVg , EXf , E(f U g) , EGf

CTLהן נוסחאות

הינו זוג של כמת מסלול ואופרטור טמפורליCTLאופרטור של


Ctl model checking for processing simple xpath queries

מבנה קריפקה

מתפרשת מעל מבנה קריפקה.CTL

מוגדר באופן הבא:Mמבנה קריפקה

M=(S,R,L,S0)

כאשר:

S- קבוצת מצבים (סופית)

R - (טוטלית) S×Sרלצית המעברים , תת קבוצה של

L : S -< 2^AP - פונקצית סימון מצבים שמתאימה לכל מצב קבוצה של נוסחאות אטומיות שנכונות במצב

S0 (אופציונלי) -Sקבוצת מצבים התחלתיים , תת קבוצה של


Ctl model checking for processing simple xpath queries

מסלולים במבנה קריפקה

כך ש:π =S0 S1 S2... הינה סדרה Sממצב Mמסלול במבנה קריפקה

.(Si , Si+1) € Riולכל S0=S

. Sjממצב π הוא סיפא של מסלול πj


Ctl model checking for processing simple xpath queries

הסמנטיקה

M,s|=p <--> p € L(s)

M,s |= ¬ f <--> M,s|=f לא מתקיים

M,s|=f V g <--> M,s|=g או M,s|=f

M, s|=EXf <--> M,s1|=fכך ש: s=s0מ-π=s0 s1...קיים מסלול

M,s|=E(f1Uf2) <-->כך ש: k≥0כך שקיים s=s0מ-π=s0 s1...קיים מסלול

M,sj|=f1 0≤j>kולכל M,sk|=f2

M,s|=EGf <--> M,sj|=f j כך שלכל s=s0מ-π=s0 s1...קיים מסלול

אז :S0 אם נתונה קבוצת מצבים התחלתיים

M|=f <--> s0 € S0 לכל M,s0|=f


Ctl model checking for processing simple xpath queries

קיצורים

EFf=E(trueUf)

AFf=¬EG¬f

AXf=¬EX¬f

AGf=¬EF¬f

A(f1Uf2)=(¬EG¬f2) Λ (¬E(¬f2U(¬f1 Λ ¬f2)))


Ctl model checking for processing simple xpath queries

CTL בדיקת מודל

f שמספקיםאתM נחשב את קבוצת המצבים ב f -CTL ונוסחת Mבהינתן מבנה

Sf = { s | M,s|=f }

Sf מוכלת ב-S0 אז בדיקת מודל מחזירה "כן" אםS0אם נתונה קבוצת מצבים התחלתיים

(f (כלומר שכל המצבים ההתחלתיים מספקים את

ומחזירה "לא" (+דוגמא נגדית) אחרת


Ctl model checking for processing simple xpath queries

דוגמא

שתחומו {1,0,1-}xישנה תוכנית שמכילה משתנה

X=0במצב ההתחלתי

התוכנית מבצעת בלולאה אינסופית באופן לא דטרמיניסטי או הגדלה או הפחתה של המשתנה ב-1 כאשר אם פעולה תגרור ליציאה מתחום המשתנה היא לא תתבצע

נתאר מבנה קריפקה מתאים לתוכנית:

M=(S,R,L,S0)

AP={x=0 , x=-1 , x=1}

S={s0,s1,s2}

R={ (s0,s1) , (s0,s2) , (s1,s1) , (s1,s0) , (s2,s2) , (s2,s0) }

L : L(s0)={ x=0 }

L(s1)={ x=-1 }

L(s2)={ x=1 }

S0={s0}


Ctl model checking for processing simple xpath queries

המשך הדוגמא

שמצבי המבנה מספקים: CTLמספר נוסחאות

M,s0 |= A ( (x=0)U((x=-1) V (x=1)) )

M,s1 |= E G (x=-1)

M,s2 |= E X (x=0)

X=0

s0

s1

s2

X=-1

X=1


Simple xpath

Simple Xpathשל התחביר

מוגדר באופן הבא:p , הפרדיקט l € ∑התוית תהי

p = p and p | p or p | not p | path

path = step | step/path

step = axis :: l | axis :: l[p]

axis = self | child | descendant |descendant or self

//[p] או שאילתא רלטיבית/[p] היא או שאילתא אבסולוטיתSimple Xpathשאילתא של


1 simple xpath

1 Simple Xpathהסמנטיקה של

סימונים:

T= )N,R,L(XMLעץ מסמך

n,m € N צמתים בעץ המסמך

r € Nשורש עץ המסמך

[[p]] T,nn והצומתT ביחס לעץp קבוצת הצמתים התואמים לפרדיקט

(R)+R הסגור הטרנזיטיבי של

(R)* R הסגור הרפלקסיבי והטרנזיטיבי של


2 simple xpath

2 Simple Xpathהסמנטיקה של

[self] T = { (n,n) | n € N }

[child] T = R

[descendant] T = R+

[descendant_or_self] T = R*

------------------------------------------------------------------

[[p1 and p2]] T,n = [[p1]] T,n Λ[[p2]] T,n

[[p1 or p2]] T,n = [[p1]] T,n V [[p2]] T,n

[[not p]] T,n = N \ [[p]] T,n


3 simple xpath

3 Simple Xpathהסמנטיקה של

[[axis::l]] T,n = { m | (n,m) €[axis] T and m € L(l) }

[[ axis::l[p]]] T,n = { m | (n,m) €[axis] T and m € L(l) and [[p]] T,m≠ ø }

[[step/path]] T,n = { m | exists k: k €[[step]] T,n and m €[[path]] T,k }

------------------------------------------------------------------

/[p] = if [[p]] T,r ≠ ø : { r }

if [[p]] T,r = ø : ø

//[p] = { n € N | [[p]] T,n ≠ ø }


Ctl model checking for processing simple xpath queries

בחזרה לדוגמא

r

s1

semester grades

s15

s22

s8

s4

s6

s2

semester

student name

student id

grade record

grade record

grade record

s5

s7

s3

Spring 2004

Roni Ron

034567890

s23

s13

s20

s25

s16

s18

s27

s11

s9

course name

course number

grade

course name

course number

grade

course name

course number

grade

s10

s14

s19

s26

s24

s28

s17

s21

s12

DATABASE SYSTEMS

236363

85

THEORY OF COMPILATION

236360

80

FILE SYSTEMS

234322

85


Ctl model checking for processing simple xpath queries

המשך הדוגמא

/[descendant::semester] = { r }

/[descendant::semester and descendant::year] = ø

//[child::course number[child::236363]] = { s8 }

//[child::grade[child::85]] = { s8 , s22 }


1 ctl

1 CTL תרגום הפרדיקטים לנוסחאות

נגדיר את הפונקציה הבאה:l € ∑ עבור התוית

L(l) = if l = * : true

if l ≠ * : l

: CTL נגדיר את הפונקציה הבאה המשמשת להעברת פרדיקטים לנוסחאות

<self> = ε (empty string)

<child> = EX

<descendant>=EXEF

<descendant_or_self>=EF

-------------------------------------------------------------------------

W(p1 and p2) = W(p1) Λ W(p2)

W(p1 or p2) = W(p1) V W(p2)

W(not p) = ¬W(p)


2 ctl

2 CTL תרגום הפרדיקטים לנוסחאות

W(axis::l) = <axis> L(l)

W(axis::l[p]) = <axis> ( L(l) Λ W(p) )

W(axis::l/path) = <axis> ( L(l) Λ W(path) )

W(axis::l[p]/path) = <axis> ( L(l) Λ W(p) Λ W(path) )


3 ctl

3 CTL תרגום הפרדיקטים לנוסחאות

משפט:

הוא פרדיקט כלשהו אזיpו-הוא שורש העץ r, T=(N,R,L) מיוצג ע"יXMLנניח שעץ

T,r |= W(p) אם ורק אם מתקיים: /[p]={ r }1. שאילתא אבסולוטית

היא קבוצת הצמתים המספקים //[p]2. קבוצת התשובה של שאילתא רלטיבית

T ביחס לעץ W)p) - CTL את נוסחת ה


Ctl model checking for processing simple xpath queries

בחזרה לדוגמא

r

s1

semester grades

s15

s22

s8

s4

s6

s2

semester

student name

student id

grade record

grade record

grade record

s5

s7

s3

Spring 2004

Roni Ron

034567890

s23

s13

s20

s25

s16

s18

s27

s11

s9

course name

course number

grade

course name

course number

grade

course name

course number

grade

s10

s14

s19

s26

s24

s28

s17

s21

s12

DATABASE SYSTEMS

236363

85

THEORY OF COMPILATION

236360

80

FILE SYSTEMS

234322

85


Ctl model checking for processing simple xpath queries

המשך הדוגמא


Ctl model checking for processing simple xpath queries

הניסויים 1

עליו רצה 1.5 GB RAM עם1.6 GHZ ,4המחשב עליו הורצו הניסויים הינו פנטיום

2.4.21-ict1בגרסת Red Hat Linuxמערכת ההפעלה

Xmark הוכנו בעזרת תוכנתSimple Xpath ושאילתות הXMLקבצי ה

f=1 מיוצג ע"י הפקטור100MB גודל של

יודע לעבוד SuSNV למודל איתו הXML ניסוי 1: מדדו את זמן התרגום של מסמך

) fכתלות בגודל הקובץ (המבוטא בפקטור הגודל

התקבל גרף שמתנהג כמו פולינום מדרגה רביעית

26.6 KB גודל הקובץ הקטן ביותר שנמדד:

6.6 MB גודל הקובץ הגדול ביותר שנמדד:

הגרף שהתקבל מוצג בשקף הבא


Ctl model checking for processing simple xpath queries

הניסויים 2


Ctl model checking for processing simple xpath queries

הניסויים 3

Xpath ניסוי 2: הריצו את השאילתות הבאות על 3 מעבדים ל

XMchecker , ועלMacMill , על המעבד המהירXMLTaskForceEngineעל

CTL לבדיקת המודלים שלNuSMV אשר משתמש ב)XML Model Checker)

Q1 /[child::site/child::regions/child::africa/

child::item/ child::description/child::parlist/

child::listitem/child::text]

Q2 /[descendant::item/child::description/

child::parlist/ child::listitem/child::text]

Q3 /[descendant::item/descendant::text]

Q4 //[self::open auction and child::bidder]

Q5 //[self::item and child::payment and

child::mailbox]

Q6 //[self::person and descendant::payment]

בשקף הבא מוצגים הגרפים שהתקבלו כאשר כל גרף מתייחס לשאילתא אחת ומציג את הזמן הנדרש לכל מעבד לעבד את השאילתא כתלות בגודל הקובץ


Ctl model checking for processing simple xpath queries

הניסויים 4


Ctl model checking for processing simple xpath queries

הניסויים 5


Ctl model checking for processing simple xpath queries

הניסויים 6


Ctl model checking for processing simple xpath queries

מסקנות

לבצע את השאילתא כאשר המודל המתורגם נמצא בזכרון XMcheckerהזמן שלוקח ל●

בתנאים דומיםMacMill הראשי הוא זהה בסדר הגודל שלו לזה שלוקח ל

הוא בסדר גודל אחד גדול יותר מאשר למעבדים הנ"לXMLTaskForce הזמן הנדרש ל

כולל גם זמן תרגום של המסמך כולו הזמן משתווה XMchecker (כאשר זמן הביצוע של

)XMLTaskForce לזמן הביצוע של

עבור כל המעבדים נמצא כי השאילתות הרלטיביות (4,5,6) לוקחות פחות זמן מאשר ●

השאילתות האבסולוטיות (1,2,3)

זניחיםXMchecker לMacMillעבור גדלי הקבצים שנבדקו בניסוי זה ההפרשים בין ●

זמן ההמרה למודלים הוא גבוה יחסית●


Ctl model checking for processing simple xpath queries

יתרונות השיטה

1. פיתוח כלים יעילים יותר לבדיקת מודל תייעל את ביצוע השאילתא

2. כלים לבדיקת מודל בנויים לעבוד על גרפים כך שגם אם במסמך יש מצביעים

) ומתקבל במקום עץ מסמך גרף מסמך ביצוע השאילתא לא נעשה ID, IDREF)

מסובך יותר


Ctl model checking for processing simple xpath queries

ותודה על ההקשבה


  • Login