La base déductive : faits et règles

Une base faite de faits stockés et de règles qui en déduisent d'autres, en Datalog : lire une règle, poser une requête, déduire à la main ce que produit une règle non récursive et la rapprocher de l'algèbre relationnelle.

  • 26 cartes
  • 5 thèmes
  • Gratuit

Le programme, thème par thème

Le poids de chaque thème suit celui que lui donne l'examen.

  1. Notions
  2. Questions
  3. Ranger et relier
  4. Mises en situation
  5. Comprendre

Quelques cartes du deck

  • Base déductive : de quoi s'agit-il ?

    Voir la réponse

    Base qui contient des faits stockés et des règles, et qui en déduit à la demande d'autres faits qu'on ne lui a jamais écrits.

    Une relation comme grand-parent n'a pas besoin d'être stockée : la règle la reconstruit à partir des parents, et elle suit les faits quand ils changent.

  • Avec ces faits et cette règle, quels faits frere_ou_soeur sont déduits ?

    ```prolog
    parent(ana, bob).
    parent(ana, cleo).
    parent(bob, dan).

    frere_ou_soeur(X, Y) :- parent(P, X), parent(P, Y), X != Y.
    `

    • frere_ou_soeur(bob, cleo) et frere_ou_soeur(cleo, bob)
    • Seulement frere_ou_soeur(bob, cleo)
    • frere_ou_soeur(bob, cleo), frere_ou_soeur(cleo, bob) et frere_ou_soeur(dan, dan)
    • Aucun, car aucun parent n'est partagé par deux faits parent distincts
    Voir la réponse

    frere_ou_soeur(bob, cleo) et frere_ou_soeur(cleo, bob)

    Avec P = ana, X et Y prennent chacun bob et cleo : quatre couples, dont deux éliminés par X != Y. Les deux restants sont symétriques, car la règle n'impose aucun ordre entre X et Y. Avec P = bob, le seul couple est (dan, dan), éliminé lui aussi : dan n'a ni frère ni sœur.

  • Dans une règle, ce qui précède :- s'appelle la … et ce qui le suit le ….

    Voir la réponse

    Dans une règle, ce qui précède :- s'appelle la tête et ce qui le suit le corps.

    La tête est la conclusion, un seul atome ; le corps est la liste des conditions, séparées par des virgules qui se lisent « et ».

  • Datalog : de quoi s'agit-il ?

    Voir la réponse

    Langage de règles pour bases déductives, où l'on écrit des faits et des règles sans symboles de fonction, et où l'on interroge par un but.

    Sans symbole de fonction, une règle ne fabrique aucune valeur nouvelle : elle combine les constantes déjà présentes, donc chaque question a un ensemble fini de réponses et la déduction s'arrête toujours.

  • Une table chef_du_chef(employe, grand_chef) est remplie à la main chaque semaine à partir de chef(employe, chef). Elle est souvent en retard sur les changements d'organigramme. Quelle correction la garde toujours exacte ?

    • Lancer le remplissage chaque jour au lieu de chaque semaine
    • La déduire d'une règle : chef_du_chef(E, G) :- chef(E, C), chef(G, C).
    • Stocker aussi le grand-chef dans chaque fait chef
    • La déduire d'une règle : chef_du_chef(E, G) :- chef(E, C), chef(C, G).
    Voir la réponse

    La déduire d'une règle : chef_du_chef(E, G) :- chef(E, C), chef(C, G).

    Une table recopiée à la main est une donnée dérivée stockée : elle peut s'écarter des faits. Une règle recalcule à chaque question et suit donc toujours chef, à condition d'enchaîner les deux faits par le chef intermédiaire C : chef(E, C), chef(G, C) relie deux employés de même chef. Un remplissage plus fréquent réduit le retard sans le supprimer.