Ctl model checking for processing simple xpath queries
Download
1 / 34

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


  • 122 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' בס"ד CTL Model Checking For Processing Simple XPath Queries' - redell


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


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

נבצע את השאילתא באופן הבא: 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>


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

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


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

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

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

כאשר:

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

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

L: ∑->2^N

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

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


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

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

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

M=(S,R,L,S0)

כאשר:

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

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

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

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


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

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

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

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


הסמנטיקה

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


קיצורים

EFf=E(trueUf)

AFf=¬EG¬f

AXf=¬EX¬f

AGf=¬EF¬f

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


CTL בדיקת מודל

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

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

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

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

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


דוגמא

שתחומו {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מספר נוסחאות

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


בחזרה לדוגמא

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


המשך הדוגמא

/[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 את נוסחת ה


בחזרה לדוגמא

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



הניסויים 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 גודל הקובץ הגדול ביותר שנמדד:

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



הניסויים 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]

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





מסקנות

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

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

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

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

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

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

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

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

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


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

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

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

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

מסובך יותר



ad