1 / 34

בס"ד 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. הרעיון המרכזי.

redell
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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. בס"דCTL Model Checking For Processing Simple XPath Queries Authors: Loredana Afanasiev , Massimo Franceschet Maarten Mark , Maarten de Rijke Presented by: Doron Grinberg

  2. הרעיון המרכזי נבצע את השאילתא באופן הבא: XML על מסמךSimple Xpathבהינתן שאילתת למבנה קריפקה מתאים (לפחות את החלק הרלוונטי לשאילתא) .XML1. נתרגם את מסמך ה- מתאימה.CTL לנוסחתSimple XPath2. נתרגם את שאילתת ה- ביחס למבנה הקריפקה באמצעות כלי לבדיקת מודל,CTL3. נבדוק את נוסחת ה- ומכאן נסיק את התשובה לשאילתא.

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

  4. ייצוג המסמך כעץ 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

  5. XMLהגדרת עץ מסמך כולל הסימן המיוחד *XML קבוצת התויות בצמתי ה ∑תהי T)=N ,R ,L( הוא : XML עץ מסמך כאשר: N - r קבוצת הצמתים כולל השורש R – N×N קבוצת קשתות העץ שהיא תת קבוצה של L: ∑->2^N מגדירה את קבוצת הצמתים שמסומנים באותה תוית,∑פונקצית סימון, שלכל תוית ב L= (*) Nומקיימת ש:

  6. מרכיבי לוגיקה טמפורלית פסוקית 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

  7. CTL (Computation Tree Logic) APנתונה קבוצה של נוסחאות אטומיות- מוגדרת באופן הבא:CTLהלוגיקה הטמפורלית p € CTL אז p € AP1. אם אז גם: f,g € CTL2. אם ¬ f , fVg , EXf , E(f U g) , EGf CTLהן נוסחאות הינו זוג של כמת מסלול ואופרטור טמפורליCTLאופרטור של

  8. מבנה קריפקה מתפרשת מעל מבנה קריפקה.CTL מוגדר באופן הבא:Mמבנה קריפקה M=(S,R,L,S0) כאשר: S- קבוצת מצבים (סופית) R - (טוטלית) S×Sרלצית המעברים , תת קבוצה של L : S -< 2^AP - פונקצית סימון מצבים שמתאימה לכל מצב קבוצה של נוסחאות אטומיות שנכונות במצב S0 (אופציונלי) -Sקבוצת מצבים התחלתיים , תת קבוצה של

  9. מסלולים במבנה קריפקה כך ש:π =S0 S1 S2... הינה סדרה Sממצב Mמסלול במבנה קריפקה .(Si , Si+1) € Riולכל S0=S . Sjממצב π הוא סיפא של מסלול πj

  10. הסמנטיקה 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

  11. קיצורים EFf=E(trueUf) AFf=¬EG¬f AXf=¬EX¬f AGf=¬EF¬f A(f1Uf2)=(¬EG¬f2) Λ (¬E(¬f2U(¬f1 Λ ¬f2)))

  12. CTL בדיקת מודל f שמספקיםאתM נחשב את קבוצת המצבים ב f -CTL ונוסחת Mבהינתן מבנה Sf = { s | M,s|=f } Sf מוכלת ב-S0 אז בדיקת מודל מחזירה "כן" אםS0אם נתונה קבוצת מצבים התחלתיים (f (כלומר שכל המצבים ההתחלתיים מספקים את ומחזירה "לא" (+דוגמא נגדית) אחרת

  13. דוגמא שתחומו {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}

  14. המשך הדוגמא שמצבי המבנה מספקים: 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

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

  16. 1 Simple Xpathהסמנטיקה של סימונים: T= )N,R,L(XMLעץ מסמך n,m € N צמתים בעץ המסמך r € Nשורש עץ המסמך [[p]] T,nn והצומתT ביחס לעץp קבוצת הצמתים התואמים לפרדיקט (R)+R הסגור הטרנזיטיבי של (R)* R הסגור הרפלקסיבי והטרנזיטיבי של

  17. 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

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

  19. בחזרה לדוגמא 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

  20. המשך הדוגמא /[descendant::semester] = { r } /[descendant::semester and descendant::year] = ø //[child::course number[child::236363]] = { s8 } //[child::grade[child::85]] = { s8 , s22 }

  21. 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)

  22. 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) )

  23. 3 CTL תרגום הפרדיקטים לנוסחאות משפט: הוא פרדיקט כלשהו אזיpו-הוא שורש העץ r, T=(N,R,L) מיוצג ע"יXMLנניח שעץ T,r |= W(p) אם ורק אם מתקיים: /[p]={ r }1. שאילתא אבסולוטית היא קבוצת הצמתים המספקים //[p]2. קבוצת התשובה של שאילתא רלטיבית T ביחס לעץ W)p) - CTL את נוסחת ה

  24. בחזרה לדוגמא 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

  25. המשך הדוגמא

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

  27. הניסויים 2

  28. הניסויים 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] בשקף הבא מוצגים הגרפים שהתקבלו כאשר כל גרף מתייחס לשאילתא אחת ומציג את הזמן הנדרש לכל מעבד לעבד את השאילתא כתלות בגודל הקובץ

  29. הניסויים 4

  30. הניסויים 5

  31. הניסויים 6

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

  33. יתרונות השיטה 1. פיתוח כלים יעילים יותר לבדיקת מודל תייעל את ביצוע השאילתא 2. כלים לבדיקת מודל בנויים לעבוד על גרפים כך שגם אם במסמך יש מצביעים ) ומתקבל במקום עץ מסמך גרף מסמך ביצוע השאילתא לא נעשה ID, IDREF) מסובך יותר

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

More Related