10. תכנות לוגי ב-Datalog שקפים: אלדר פישר

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
מציאת צורה של מבני Tensegrity
Advertisements

מעבר מביטוי רגולרי ל – NFA (גזור ושמור) משפט: לכל ביטוי רגולרי r קיים אוטומט סופי A כך ש – L(A)=L(R). לכל אוטומט סופי A קיים ביטוי רגולרי r כך ש – L(A)=L(R).
תחשיב הפסוקים חלק ו'.
72120 – ביוכימיה של התא תרגיל מס' 3: קינטיקה אנזימתית.
שיעור 6 האטמוספירה בתנועה.
מגוון גנטי.
ניתוח תחבירי (Parsing) - המשך
Atom Interferomtry סוגי אינטרפרומטרים סוגי אינטרפרומטרים מודל של Double Y Interferometer מודל של Double Y Interferometer סיבוב של האינטרפרומטר סיבוב של.
שדות מגנטיים של זרמים משלוח ספינות חלל מכדור הארץ לחלל נעשה ע"י רקטות. אבל כאשר נתחיל לייבא מינרלים מהחלל לארץ, לא יהיה לרשותנו דלק לשליחת ספינות חלל.
שערוך תאורה מתוך צל Group meeting
תורת התורים תיאור חלקי עולם כרשתות של תורים לצורך: יישומים: הבנה
בדיקת תכונות של גרפים במודל מטריצת השכנויות ענב וינרב ינון חביב.
הרצאה 11: סמנטיקה ומשפט השלמות. אינטרפרטציה אינטרפטציה M מורכבת מ- 1. קבוצה D≠ ,D - תחום האינטרפטציה. 2. פרושים של פרדיקטים, פונקציות וקבועים ב- D, כלומר,
סמינר במדעי המחשב חורף תשסט תורת הטיפוסים הפשוטים הבסיסית הרצאה מס 3 ינון רפופורט חלק 1 משפט בנית הנושא.
בשעור הקודם הגדרנו את מושג השטף החשמלי השטף החשמלי דרך משטח A הוא כמות קווי השדה שעוברת דרך המשטח.
מבוא לסימולציות: מערכות בקרה
תורות עם שוויון. תהי Гתורה מעל שפה שמכילה יחס בינרי =. אנו נכתוב s  t במקום ~s = t. Г נקראת תורה עם שוויון אם הנוסחאות הבאות הן משפטים של Г: A6. הרפלקסיביות.
התנהגות הרוח במערכות סינופטיות
פוטנציאל חשמלי בטיול בפרק הלאומי של הסיקוויה מישהו נוכח ששערות בת הלוויה שלו סומרות. הוא צילם אותה. חמש דקות אחר כך פגע ברק במקום הזה הרג מבקר ופצע שבעה.
משוואות מקסוול וגלים אלקטרומגנטיים
אופציות מה נלמד? מושגים בסיסיים באופציות אסטרטגיות השקעה בסיסיות
ניתוח תחבירי (Parsing) של דקדוקי LR(1)
מבני נתונים 08 מיון.
מימון ד"ר זיו רייך , רו"ח.
מוטציות התא – מבנה ותפקוד המוטציות, השפעותיהן והגורמים להן
Confidence intervals based on bootstrap “tables”
מבני נתונים ויעילות אלגוריתמים
גודל פיזיקאלי סקלרי אינו תלוי בכיוון
בס"ד אינטגרלים משולשים (והחוט המשולש לא במהרה יינתק)
מבני נתונים ויעילות אלגוריתמים
בתשלומי המעסיקים לקופות גמל
תקשורת אלקטרו-אופטית מרצה: רועי עמרם.
בהנחיית פרופ' עוזי אורנן
ניהול הייצור למערכות מידע – ניהול האיכות, תרשימי בקרה
שירטוט מערכות אופטיות בסיסיות
ניהול הייצור למערכות מידע תרגול – ניהול פרוייקטים
מרתון בכימיה - פרויקט נחשון יום א
שעור 4 השלמות בתרשימי בקרה תרשימי C תרשימי U עקרונות הדגימה: מושגים
אופציות מה נלמד? מושגים בסיסיים באופציות אסטרטגיות השקעה בסיסיות
גישת תיק השקעות גיוון.
מדיניות תעסוקה בישראל ערביי ישראל פורום ספיר 4 נובמבר 2010
היבט כולל על הדואליות בין קינמטיקה וסטטיקה
אנימציה2: המתכת אבץ בתמיסת יוני נחושת
בדיקת מונוטוניות של פונקציות בוליאניות
בקרה במכונות מושגי יסוד תרשים מלבנים חוג פתוח/סגור משתנה מבוקר/מבקר
בקרת ביטוי גנים בפרוקריוטיים
הרצאה 7 מבוא לסטטיסטיקה התפלגות נורמלית
גלגול, פיתול ותנע זוויתי
אולימפיאדה צעירה ע"ש אילן רמון שלב ג' 2013
ליאור שפירא, חיים קפלן וחברים
גלים אלקטרומגנטיים.
תורת התורים תיאור חלקי עולם כרשתות של תורים לצורך: יישומים: הבנה
אורך, היקף, שטח ונפח.
השוואה בין מחלקות.
נושא 4: זרם חילופין.
תורת הגרפים.
מדדים בית ספריים לניבוי אפקטיביות ההטמעה של טכנולוגיות חדשניות:
מתוך "טעם של כימיה" מזון למחשבה שומנים ושמנים
סימולציה- קוטביות מולקולות סימולציה- צורות מולקולה
מבני נתונים ויעילות אלגוריתמים
מבני נתונים ויעילות אלגוריתמים
זרם חילופין AC.
גלאי FM באפנון FM משתנה תדר הגל הנושא ע"י המשרעת של אות המידע, בעוד שהמשרעת של הגל הנושא נשארת קבועה. גלאי FM צריך לזהות את שינויי התדר ולהפוך אותם לשינויי.
בניית רובוט במבנה משולש הנשלט ע"י מחשב כף יד
מטוס נוסעים A380.
אלגוריתם סנכרון למערכות OFDMA
אנרגיה בקצב הכימיה פרק א'
סדרה סופית של תשלומים קבועים :
72120 – ביוכימיה של התא מנגנוני קטליזה אנזימתית - כימוטריפסין
שומנים ושמנים.
Μεταγράφημα παρουσίασης:

10. תכנות לוגי ב-Datalog שקפים: אלדר פישר 236363 מערכות מסדי נתונים 10. תכנות לוגי ב-Datalog שקפים: אלדר פישר

הרעיון הכללי במודל הלוגי בשפת השאילתה DRC (עבור מסדים רלציונים) התייחסנו ישירות לסדרות הערכים, כשקבענו עבורן תנאים המתארים אלו מהן יכללו בתוצאת הביטוי. כאן אנו נכתוב תוכנית לוגית – סדרה של תנאים האמורים להתקיים עבור מספר רלציות שרק חלקן מאוחסנות מראש במאגר, בעוד האחרות מוגדרות למעשה באמצעות התנאים. אנו נדרוש עתה מהמסד חישוב של פיתרון עבור התוכנית, ז"א תכנים עבור הרלציות שאינן מאוחסנות במאגר, אשר ביחד עם תכני הרלציות המאוחסנות יקיימו את כל תנאי התוכנית. לבסוף, השאילתה תהיה שאילתה פשוטה על הרלציות – בד"כ מהו תוכן אחת הרלציות המוגדרות ע"י התוכנית הלוגית (בד"כ נאפשר גם הטלה ו/או תנאי בחירה נוסף בשלב זה).

מושגי יסוד ב-Datalog הרלציות המשתתפות ייוצגו ב-Datalog ע"י מילים המתחילות באות קטנה, שיקראו פרדיקטים. בדומה ל-DRC, לפרדיקטים יהיו משתנים שמספרם כמספר העמודות ברלציה המתאימה, וגם כאן סדר המשתנים יקבע לפי סדר כל שהוא שקבענו על העמודות. דוגמאות: human(X), parent(X, Y). משתנים ב-Datalog ייוצגו ע"י מילים המתחילות באות גדולה. פרדיקטים המתאימים לרלציות שתוכנן שמור במסד הנתונים יקראו פרדיקטים מפורשים, או EDB (Extensional DataBase). פרדיקטים המתאימים לרלציות שאינן במאגר, ושתוכנם מוגדר ע"י הפיתרון של התוכנית הלוגית הנתונה, יקראו פרדיקטים סתומים, או IDB (Intensional DataBase). שורה בתוכן של רלציה תיקרא גם עובדה עבור הפרדיקט המתאים.

Datalog – תחביר בסיסי בתחביר הבסיסי (בהמשך גם נראה אפשרות להכללה) סוג התנאי המותר היחידי הוא מהצורה pred(X1,…,Xk)φ1,…,φn כאשר: pred הוא פרדיקט סתום. X1,…,Xk הם סמלי משתנים כל שהם. כל φi הוא נוסחא אטומית אשר יכולה להשתמש במשתנים X1,…,Xk ובמשתנים נוספים, שנסמנם Z1,…,Zm. הנוסחאות האטומיות המותרות הן אלו של פרדיקטים מפורשים או סתומים (עם הצבה של משתנים בפרדיקט, בדומה לנוסחאות האטומיות המתאימות לרלציות ב-DRC), השוואות בין משתנים (עם אחד מסימני ההשוואה הרגילים), והשוואות בין משתנים לקבועים. לדוגמא: benadam(Nm)  ancestor(F,Nm), F=“Adam”

דוגמא לתוכנית התוכנית הבאה מגדירה מספר פרדיקטים סתומים על בסיס הפרדיקטים המפורשים parent(X,Y) ו-human(X). פרדיקטים אחרים יוגדרו בדוגמאות בהמשך. grandparent(X,Y)parent(X,Z),parent(Z,Y) sibling(X,Y)  XY, parent(Z,X), parent(Z,Y) ancestor(X,Y)  parent(X,Y) ancestor(X,Y)  parent(X,Z), ancestor(Z,Y) כרגע עוד לא הגדרנו מהי משמעות התוכנית, ואיך (והאם) מבטיחים שהפרדיקטים הסתומים אכן יקבלו את התוכן המרומז משמותיהם.

משמעות התחביר משמעות הנוסחא pred(X1,…,Xk)φ1,…,φn היא זו: לכל הצבה אפשרית של ערכים במשתנים X1,…,Xk,Z1,..,Zm, אם מתקיימים כל התנאים φ1,…, φn אז התוכן המתאים ל-pred חייב להכיל גם את ההצבה הנ"ל ל-X1,…,Xk. בתרגום ללוגיקה מסדר ראשון משמעות התנאי שחייב להתקיים עבור התוכן של pred היא זו: X1,..,Xk,Z1,…,Zm ( (φ1φ2…φn)  pred(X1,…,Xk) ) שימו לב שבמובן מסוים זוהי למעשה נוסחת Horn.

סימונים מקוצרים ניתן "להציב" ישירות קבוע במקומו של משתנה, במקום הוספה של תנאי הקובע שהמשתנה חייב להיות זהה לאותו קבוע. למשל: הביטוי benadam(X)  ancestor(“Adam”,X) שקול לביטוי benadam(X)  ancestor(Y,X), Y=“Adam” הביטויים benadam(“Adam”)  true או פשוט benadam(“Adam”) שקולים ל-benadam(X)  X=“Adam” בנוסף, ניתן להשתמש ב-" _ " עבור משתנה המופיע פעם אחת בלבד באחד התנאים. למשל: busy(X)  parent(X,_)

חיסרון במושג הפיתרון לא כל פיתרון עבור תוכנית לוגית הכתובה ב-Datalog הוא טוב עבורינו. למשל, אנו יכולים להציב בכל פרדיקט סתום את "רלצית כל השורות האפשריות" ולספק בכך את התוכנית, אולם הדבר לא נותן כלל מידע על הנתונים האגורים במסד. ברצוננו אם כך לנסח מושג של פיתרון אשר מתקבל ממנו מידע אמיתי על המסד, ושבמידת האפשר יהיה יחיד עבור הנתונים האגורים בפרדיקטים המפורשים.

נקודות שבת על מנת לצמצם את קבוצת הפיתרונות האפשריים נדרוש פיתרון שיהיה גם נקודת שבת עבור התוכנית. הווה אומר: פיתרון עבור הרלציות הסתומות, כך שבנוסף לכך לכל שורה ברלציה סתומה קיים תנאי אשר "מצדיק" אותה: לכל α1,…,αk כך ש-pred(α1,…,αk) מתקיים, יהיה לפחות תנאי אחד pred(x1,…,xk)φ1,…,φn בתוכנית הלוגית, והצבה β1,…,βm עבור המשתנים הנוספים בתנאי זה, כך ש-φ1,…,φn כולם מתקיימים עבור הצבת הערכים α1,…,αk,β1,…,βm בהתאמה. עדיין יתכנו פתרונות גרועים לתוכנית. למשל, אם ב-parent יש "מעגל", אז ancestorיכול להכיל שורות נוספות עם תכונה ראשונה זהה לזו של שורות המעגל, ואלו "יצדיקו" זו את זו. נסתכל על המצב המעגלי p(x)<-q(x) ו-q(x)<-p(x) אזי כל הצבה ל-p ו-q כך ש-p=q תביא לנקודת שבת. אבל זו לא נקודה מינימלית כי כל השמטה של x מסויים גם מ-p וגם מ-q תביא לקבוצת עובדות המקיימות את כל הכללים שהיא תת קבוצה של הקבוצה המקורית. לכן נקודת שבת אינה דווקא נקודה מינימלית.

פתרונות מינימלים כיוון נוסף לצמצום מושג הפיתרון הוא הדרישה שהפיתרון יהיה מינימלי – אנו נדרוש תוכן עבור הרלציות הסתומות שלא זו בלבד שיקיים את תנאי התוכנית, אלא שבנוסף לכך לא תהיה אף תת קבוצה (ממש) שלו אשר גם היא תקיים את התנאים. פיתרון מינימלי הוא בפרט נקודת שבת עבור התוכנית. כעיקרון יכולים להיות מספר פתרונות מינימלים. מיד נראה משפט הקובע שכאן הפיתרון המינימלי הוא אכן יחיד.

עובדות יכיחות גישה אחרת לפירוש התוכנית היא להתמקד רק בעובדות יכיחות. עובדה pred(α1,…,αk) (כאשר α1,…,αk סידרה של קבועים) תיקרא יכיחה אם ניתן להסיק את קיום העובדה α1,…,αk ב-pred מתוך תוכן הרלציות המתאימות לפרדיקטים המפורשים, ע"י סדרה סופית של הפעלות של תנאים מתוך התוכנית הלוגית בהצבות מתאימות במשתנים. הרעיון: עבור שורה pred(X1,…,Xk)φ1,…,φn בתוכנית, והצבה α1,…,αk במשתנים X1,…,Xk, אם יש הצבה β1,…,βm במשתנים הנוספים Z1,..,Zm כך שמתקיימים כל φ1,…,φn, אז נוסיף את pred(α1,…,αk) כעובדה שחייבת להיות בתוכן pred. עובדה יכיחה היא עובדה שנוכל להגיע אליה לאחר מספר סופי של צעדים כאלה.

דוגמא ליכיחות דוגמא: נניח שעבור הפרדיקט המפורש parent(X,Y) (בדוגמת התוכנית מקודם) המאגר שלנו כולל את העובדות: parent(“Avraham”, “Itzchak”) parent(“Itzchak”, “Yaakov”) נוכיח עתה עובדות עבור ancestor. מהצבת X=“Avraham” ו-Y=“Itzchak” בתנאי התוכנית ancestor(X,Y)  parent(X,Y) נקבל ancestor(“Avraham”,“Itzchak”). מהצבת X=“Avraham”, Y=“Yaakov” ו-Z=“Itzchak” בתנאי ancestor(X,Y)  parent(X,Z), ancestor(Z,Y) נקבל ancestor(“Avraham”,“Yaakov”).

המשפט המרכזי קבוצת כל העובדות היכיחות ע"י סדרה סופית של היסקים היא פיתרון עבור תוכנית ה-Datalog. יתרה מכך, הקבוצה הזו היא הפיתרון המינימלי היחיד של התוכנית. במצב מעגלי כגון p(x)<-q(x) ו-q(x)<-p(x) אזי כל הצבה ל-p ו-q כך ש-p=q תביא לנקודת שבת. לעומת זאת לא תהיה כאן ולו עובדה יכיחה אחת. (כי אין שום ערך התחלתי לאף אחד מהטבלאות) לכן זו תהיה נקודת שבת אך לא נקודת שבת מינמלית. כאשר אין שלילות פתרון מינימלי ונקודת שבת מינימלית הן זהות. ע"פ הספר database and knowlede – base systems vol 1 Jeffrey D. Ullman (p. 100) ב-datalog משמעות התוכנית היא ע"פ נקודת מינימלית ולא ע"פ נקודת שבת מינימלית. הוכחת משפט זה אינה במסגרת הקורס, אולם הנכם מוזמנים למצוא אותה בספרות.

סיכום מושגי הפיתרון פיתרון (ללא תנאים נוספים) – יכול להיות אפילו "רלציית" כל הערכים האפשריים. נקודת שבת – פיתרון עם התנאי הנוסף "לכל עובדה בתוכן הפרדיקטים הסתומים יש שורה בתוכנית והצבה המצדיקה אותה" (יכול להיות שהצידוק משתמש בעובדה עצמה). קצת יותר חלש מ"פיתרון שאי אפשר להסיר ממנו עובדה אחת כך שיישאר פיתרון". פיתרון מינימלי – פיתרון שאי אפשר להסיר ממנו כמות כל שהיא של עובדות מהפרדיקטים הסתומים כך שיישאר פיתרון (ובפרט הוא נקודת שבת). לפי המשפט מקודם תמיד יש בדיוק פיתרון אחד כזה, והוא קבוצת העובדות היכיחות. כאשר מאפשרים שלילות (ראו בהמשך) המצב מסובך יותר.

ביטויים בטוחים ב-Datalog ביטויים כגון “equal(X,Y)X=Y”, או אף “anything(X)true”, יגרמו לפרדיקטים לקבל מספר אין-סופי של עובדות. על מנת להבטיח שמצב כזה לא יקרה, ושבנוסף לכך ערכי הפרדיקטים הסתומים יהיו תלויים אך ורק בפרדיקטים המפורשים (ולא בתחומי ההגדרה), אנו נצטרך להגביל עצמנו לביטויים בטוחים. ביטוי pred(X1,…,Xk)φ1,…,φn עם משתנים נוספים Z1,…,Zm, יקרא בטוח אם כל המשתנים X1,…,Xk,Z1,…,Zm הם מתוחמים. משתנה X יקרא מתוחם אם הוא מופיע ב-φi שהוא פרדיקט (סתום או מפורש), או בהשוואה מהטיפוס “X=α” כאשר α קבוע, או בהשוואה מהטיפוס “X=Y” כאשר Y הוא משתנה מתוחם.

אפשרות חישוב האלגוריתם הבא יחשב, אם כי באיטיות, את נקודת השבת המינימלית עבור תוכנית Datalog בטוחה. עבור כל pIDB אפס את Rp (לקבוצה ריקה). חזור על התהליך הבא כל עוד ניתן להוסיף באמצעותו שורות: עבור תנאי p(X1,…,Xk)φ1,…,φn עם משתנים נוספים Z1,…,Zm, ועבור הצבה α1,…,αk,β1,…,βm במשתנים X1,…,Xk,Z1,…,Zm אשר מקיימת את φ1,…,φn (ביחס ל-Rq הנוכחיות), הוסף את השורה α1,…,αk ל-Rp. הערכים שצריך לבדוק בהצבות הנ"ל הם רק אלו המופיעים במסד הנתונים עבור רלציות ה-EDB, ובתוכנית עצמה. כאשר אין יותר אפשרות להוסיף אף שורה לאף רלציה Rp, פלוט את הרלציות.

מימוש של מספר פעולות של RA ניתן לממש הטלות ב-Datalog (ביחס לפירוש נקודת השבת המינימלית) באופן הבא: proj (X1,…,Xk)pred (X1,…,Xk,Xk+1,…,Xm) איחודים וחיתוכים ניתן לממש כך: intersect(X1,…,Xk) pred1(X1,…,Xk),pred2(X1,…,Xk) union(X1,…,Xk) pred1(X1,…,Xk) union(X1,…,Xk) pred2(X1,…,Xk) איך נממש צירופים טבעיים ? join(X1,…,Xk,Y1,…,Ym,Z1,…,Zn) pred1(X1,…,Xk,Y1,…,Ym),pred2(Y1,…,Ym,Z1,…,Zn) תרגיל למחשבה: איך נממש בחירה (selection) לפי ביטוי  ? רמז – ראשית כדאי להעביר את  ל-Disjunctive Normal Form.

גרף תלויות לתוכנית Datalog ניתן להתאים גרף מכוון, שיקרא גרף התלויות. בגרף זה יהיה צומת לכל פרדיקט המשתתף בתוכנית. קשת תהיה מ-pred1 ל-pred2 אם ורק אם pred1 מופיע בלפחות אחד התנאים של לפחות אחת הפסוקיות המגדירות את pred2. האם יתכנו קשתות נכנסות לצמתים המתאימים לפרדיקטים המפורשים ?

גרף תלויות – דוגמא עבור התוכנית (כאשר parent הוא הפרדיקט המפורש היחיד): sibling(X,Y)  XY, parent(Z,X), parent(Z,Y) cousin(X,Y)  parent(Xp,X), parent(Yp,Y), sibling(Xp,Yp) cousin(X,Y)  parent(Xp,X), parent(Yp,Y), cousin(Xp,Yp) יתקבל הגרף sibling parent cousin

מימוש ב-RA של קטע תוכנית לוגית אם פרדיקט סתום pred תלוי אך ורק בפרדיקטים שאת תוכנם אנו יודעים מראש (למשל, פרדיקטים מפורשים), אז ניתן לחשב את ערכו של pred כביטוי רלציוני (ב-RA, או ב-Safe-DRC השקול בכוחו ל-RA) המשתמש ברלציות המתאימות. דוגמא: נניח ש-parent(X,Y) הוא פרדיקט מפורש המתאים לרלציה Parent[Father,Son] השמורה במאגר הנתונים, ונניח ש-grandparent(X,Y) מוגדר ע"י grandparent(X,Y)parent(X,Z),parent(Z,Y). אז ניתן לחשב את הרלציה המתאימה ל-grandparent באמצעות הביטוי: Father1,Son2(Son1=Father2(ParentParent) )

תוכניות לא-רקורסיביות וחישוב ב-RA תוכנית Datalog בעלת מעגלים (מכוונים) בגרף התלויות תיקרא רקורסיבית. תוכנית ללא מעגלים כאלה תיקרא לא-רקורסיבית. עבור תוכנית לא רקורסיבית, ניתן יהיה לחשב את נקודת השבת המינימלית (מבחינת התוכן של הפרדיקטים הסתומים) באמצעות מספר קבוע של פעולות RA באופן הבא: ראשית, נכתוב מיון טופולוגי של צמתי גרף התלויות. זאת אומרת: נקבע סדר טוב על הפרדיקטים כך שכל פרדיקט יהיה תלוי אך ורק בפרדיקטים הנמצאים לפניו בסדר זה. עתה נעבור על הפרדיקטים הסתומים לפי סדרם, כשכל אחד יחושב כביטוי RA בפרדיקטים אשר חישובם יסתיים לפניו.

תוכניות רקורסיביות וחישוב ב-RA קיימות תוכניות Datalog רקורסיביות שפתרונן מניב רלציות שאין אפשרות לחשבן ע"י נוסחת RA קבועה מראש. לדוגמא: עבור הפרדיקט המפורש parent(X,Y) הגדרנו כזכור את הפרדיקט הסתום ancestor(X,Y) באופן הבא: ancestor(X,Y)parent(X,Y) ancestor(X,Y)parent(X,Z),ancestor(Z,Y) נקודת השבת המינימלית תיתן ל-ancestor את הסגור הטרנזיטיבי של parent: העובדה ancestor(α,β) תתקיים אם ורק אם עבור k כל שהוא קיימים α = 1,2,3,…,k = β, כך שלכל 1  i < k מתקיימת העובדה parent(i,i+1). כזכור מדוגמת קווי הרכבות ותחנות החילוף, אין אפשרות לחשב את הסגור הטרנזיטיבי ע"י נוסחת RA, אם כי ניתן לחשבו כ"גבול" של סדרה של נוסחאות כאלו.

חוזק תיאורי – סיכום ביניים את כל ביטויי ה-RA המונוטונים, ז"א אלו המורכבים מהפעולות הרלציוניות , , , ,  בלבד, ניתן לחשב ע"י תוכניות Datalog לא רקורסיביות (בדומה לדוגמאות שראינו). מצד שני, את הפיתרון של כל תוכנית Datalog לא רקורסיבית ניתן לחשב ע"י פעולות RA כנ"ל. תוכניות Datalog רקורסיביות יכולות לתת תוצאות שאין עבורן ביטוי RA.

תוספת של ביטויים אריתמטיים להגדלת החוזק התיאורי של Datalog, יש המוסיפים אפשרות לביטויים אריתמטים פשוטים בתנאי ההשוואות של הפסוקיות. הדבר שקול לתוספת של הפרדיקטים (האין-סופיים) המוגדרים מראש mult(X,Y,Z), add(X,Y,Z), כך שלכל זוג מספרים טבעיים i,j אלו יכילו את העובדות mult(i,j,ij), add(i,j,i+j). כמובן שהשתתפות בפרדיקט כזה אינה תוחמת את המשתנה לצרכי בדיקה של בטיחות. ראו לדוגמא את התוכנית: positive(1)true positive(I)positive(J),add(J,1,I) פרטים ודוגמאות נוספות יינתנו בתרגיל. כאשר לא נאמר אחרת אנו נניח שעומד לרשותנו Datalog טהור ללא ההרחבות האריתמטיות.

Datalog וחישוב הפרשים נניח ש-pred1 ו-pred2 הם פרדיקטים מפורשים המתאימים לרלציות T1 ו-T2 בהתאמה, הנמצאות במסד הנתונים. טענה: לא קיימת תוכנית Datalog אשר מחשבת את T1\T2. תקציר ההוכחה: נשים לב שבתחביר הבסיסי, מושג הפיתרון עבור הפרדיקטים הסתומים הוא מונוטוני – הוספת עובדות לפרדיקטים המפורשים אינה יכולה לגרוע עובדות מהפרדיקטים הסתומים. מצד שני, תוספת של שורות ל-T2 אכן גורעת שורות מ-T1\T2, כך שלא נוכל לייצר באמצעות תוכנית Datalog פרדיקט שערכו יובטח להיות זהה ל-T1\T2.

תוספת של שלילות ל-Datalog על מנת לאפשר את כתיבתן של שאילתות שאינן מונוטוניות, אנו נאפשר גם כתיבתם של תנאים המורכבים משלילות של פרדיקטים. באופן פורמלי: פסוקית ב-Datalog עם שלילות היא פסוקית מהצורה pred(X1,…,Xk)φ1,…,φn, כאשר כל φi הוא או השוואה, או פרדיקט (שמוצבים בו משתנים כל שהם), או שלילה של פרדיקט. גם כאן משמעות הפסוקית היא שעבור פיתרון קביל של התוכנית הלוגית, הגרירה חייבת להתקיים לכל הצבה במשתנים. כאשר נבדוק את הבטיחות של פסוקית, הופעה של משתנה בשלילה של פרדיקט לא תחשב כמתחמת אותו, אלא רק הופעה בפרדיקט ללא שלילה תחשב כמתחמת את המשתנה.

שלילות ומשתנים חסרי שם לפי הסימונים שנלמדו עד עתה, לא ניתן יהיה להשתמש במשתנים חסרי שם (סימון "_") בפרדיקטים המופיעים בשלילה, מכיוון שאלו יתאימו למשתנים לא מתוחמים. נהוג להשתמש בשלילה בסימון "_" במשמעות אחרת המערבת תוספת של פרדיקט עזר סתום. לדוגמה, הנוסחא ¬parent(X,_) (כחלק משורה בתוכנית) פירושה יהיה ¬parent2(X), כאשר parent2 הוא פרדיקט סתום חדש שהתנאי היחידי המגדיר אותו הוא parent2(X)parent(X,_).

בעיות עם שלילות כאשר אנו מאפשרים שלילות, אפשר בקלות להגיע למצב שבו אין לנו פתרונות שהם נקודות שבת כלל. לדוגמא: lier(X)human(X),¬lier(X) גם במקרים שבהם קיימות נקודות שבת, יתכנו נקודות שבת מינימליות רבות שאין עבורן דרך טובה לבחור אחת. לדוגמא: naysayer(X)human(X),¬yeahsayer(X) yeahsayer(X)human(X),¬naysayer(X)

תוכניות Datalog מרובדות (Stratified) ריבוד (stratification) עבור תוכנית Datalog עם שלילות הוא פונקציה מקבוצת הפרדיקטים אל המספרים הטבעיים המקיימת את התנאים הבאים: אם pred1 תלוי ב-pred2, אז ערך הריבוד הניתן ל-pred2 אינו עולה על זה של pred1. אם pred1 תלוי ב-pred2 באמצעות שלילה, ז"א שהשלילה של pred2 מופיעה באחת הפסוקיות המגדירות את pred1, אז הריבוד הניתן ל-pred2 קטן ממש מזה של pred1. ניתן להוכיח (ראו בספרות) את הטענה הבאה: תוכנית Datalog היא ניתנת לריבוד אם ורק אם גרף התלויות שלה אינו כולל מעגל עם קשתות הנובעות משלילות.

ריבוד ונקודות שבת גם עבור תוכניות Datalog מרובדות קיימות דוגמאות עם מספר נקודות שבת מינימליות. עם זאת, תמיד מובטח שפלט האלגוריתם הבא יהיה נקודת שבת מינימלית שאינה תלויה בריבוד הספציפי: עבור על כל רמות הריבוד של התוכנית, מהראשונה עד האחרונה. – בשלב ה-i, חשב פיתרון מינימלי עבור כל פסוקיות ה-IDB מהרמה ה-i, תוך שימוש בערכים שחושבו עבור הרמות הקודמות. אם תוכנית ה-Datalog המרובדת בטוחה, אז ניתן לממש את האלגוריתם ללא התיחסות לקבוצות אין-סופיות, והתוצאה תהיה תלויה אך ורק בערכי הפרדיקטים המפורשים ובתוכנית. נקודת השבת הנמצאת ע"י אלגוריתם זה נקראת: נקודת השבת המושלמת – Perfect Fixed Point.

החוזק התיאורי של Datalog – סיכום ניתן לבטא בביטויי Datalog בטוחים וחסרי שלילה פעולות שלא ניתן לבטאן ב-RA. עם זאת, לא כל ביטוי RA ניתן לבטא בביטוי Datalog. החוזק התיאורי של ביטויי Datalog בטוחים, חסרי שלילה, ולא רקורסיביים, זהה לזה של ביטויי RA המשתמשים בפעולות , , , ,  בלבד. החוזק התיאורי של ביטויי Datalog בטוחים ולא רקורסיביים עם שלילות זהה לזה של ביטויי RA כלליים. וויתור על הבטיחות מגדיל את החוזק התיאורי (ועם שלילות ניתן יהיה לבטא בפרט כל ביטוי ב-DRC), אבל עלול לגרום לתוצאות אין-סופיות ולתוצאות שאינן תלויות בתחום הגדרת המשתנים.

מספר מילים על המודל הלוגי הסיבה לחוזק התיאורי של Datalog נעוצה בכך ששפה זו מתייחסת לתחביר לוגי המהווה הרחבה של הלוגיקה מסדר ראשון אשר שמשה אותנו עבור DRC. הרחבה זו קרויה Fixed Point Logic, ונחקרה ע"י הלוגיקאים כאחת מהאפשרויות לפתור את חוסר היכולת לבטא סגור טרנזיטיבי בלוגיקה מסדר ראשון.