of 34 /34
דד"ד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

  • Upload
    redell

  • View
    53

  • Download
    0

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: בס"ד 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

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

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

שאילתת

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

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

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

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

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

(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>

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

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

semester grades

semester student name student id grade record grade record grade record

Spring 2004 Roni Ron 034567890

course number gradecourse name

85234322FILE SYSTEMS

gradecourse numbercourse name

80236360THEORY OF COMPILATION

gradecourse numbercourse name

DATABASE SYSTEMS 236363 85

r

s1

s2 s4 s6s8

s3

s5 s7

s9

s10

s11

s12

s13

s14

s15

s16

s17

s18

s19

s20

s21

s22

s23

s24

s25

s26

s27

s28

Page 5: בס"ד 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ומקיימת ש:

Page 6: בס"ד 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

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

CTL (Computation Tree Logic)

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

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

p € CTL אז p € AP1. אם

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

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

CTLהן נוסחאות

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

Page 8: בס"ד 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 קבוצת מצבים התחלתיים , תת קבוצה של

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

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

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

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

Page 10: בס"ד 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

Page 11: בס"ד 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)))

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

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

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

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

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

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

Page 13: בס"ד 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}

Page 14: בס"ד 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=-1 X=1

X=0

s2

s1

s0

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

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

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שאילתא של

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

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

:סימונים

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

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

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

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

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

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

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

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

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

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 ≠ ø }

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

בחזרה לדוגמא

semester grades

semester student name student id grade record grade record grade record

Spring 2004 Roni Ron 034567890

course number gradecourse name

85234322FILE SYSTEMS

gradecourse numbercourse name

80236360THEORY OF COMPILATION

gradecourse numbercourse name

DATABASE SYSTEMS 236363 85

r

s1

s2 s4 s6s8

s3

s5 s7

s9

s10

s11

s12

s13

s14

s15

s16

s17

s18

s19

s20

s21

s22

s23

s24

s25

s26

s27

s28

Page 20: בס"ד 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 }

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

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)

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

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( (

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

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

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

שעץ

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

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

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

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

בחזרה לדוגמא

semester grades

semester student name student id grade record grade record grade record

Spring 2004 Roni Ron 034567890

course number gradecourse name

85234322FILE SYSTEMS

gradecourse numbercourse name

80236360THEORY OF COMPILATION

gradecourse numbercourse name

DATABASE SYSTEMS 236363 85

r

s1

s2 s4 s6s8

s3

s5 s7

s9

s10

s11

s12

s13

s14

s15

s16

s17

s18

s19

s20

s21

s22

s23

s24

s25

s26

s27

s28

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

המשך הדוגמא

התשובה התרגום השאילתא

/[descendant::semester] T,r |= EXEF semester { r }

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

T,r |= EXEF semester Λ

EXEF year

ø

//[child::course number[child::236363]]

כל הצמתיםs:כך ש

T,s |= EX )course number Λ EX 236363(

{ s8 }

//[child::grade[child::85]] כך ש:sכל הצמתים

T,s |= EX )grade Λ EX 85(

{ s8 , s22 }

Page 26: בס"ד 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 100מיוצג ע"י הפקטור MB גודל של

מדדו את זמן התרגום של מסמך:1ניסוי XMLלמודל איתו ה SuSNV יודע לעבוד ( fכתלות בגודל הקובץ )המבוטא בפקטור הגודל התקבל גרף שמתנהג כמו פולינום מדרגה רביעית 26.6 KB גודל הקובץ הקטן ביותר שנמדד: 6.6 MB גודל הקובץ הגדול ביותר שנמדד:

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

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

2הניסויים

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

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

ל 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 andchild::mailbox]Q6 //[self::person and descendant::payment]

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

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

4הניסויים

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

5הניסויים

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

6הניסויים

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

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

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

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

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

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

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

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

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

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

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

מסובך יותר

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

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