BD DEDUCTIVES - PowerPoint PPT Presentation

1 / 84
About This Presentation
Title:

BD DEDUCTIVES

Description:

Concepts : introduction des concepts de base. Utilisation : exemples d'application ... Pouvoir d duire des informations de la base. Inf rer des donn es non ... – PowerPoint PPT presentation

Number of Views:385
Avg rating:3.0/5.0
Slides: 85
Provided by: christiane151
Category:

less

Transcript and Presenter's Notes

Title: BD DEDUCTIVES


1
BD DEDUCTIVES
  • Méthode OCULTE
  • Objectifs définition des buts
  • Concepts introduction des concepts de base
  • Utilisation exemples d'application
  • Langages langages ou interfaces
  • Techniques algorithmes, produits
  • Evolution perspectives

2
1. OBJECTIFS
  • Pouvoir déduire des informations de la base
  • Inférer des données non enregistrées
  • à partir des données de la base
  • de règles de connaissances
  • Permettre l'insertion, la mise à jour, la
    recherche de connaissances

Information
Données
Connaissances
Règles
Faits extensionnels
Faits intentionnels
3
Exemple de faits
  • PLAGE (Cabourg, Sable) CLIMAT (Cabourg, 18)
  • PLAGE (Deauville, Sable) CLIMAT (Deauville,19)
  • PLAGE (Nice, Galets) CLIMAT (Palavas, 21)
  • PLAGE (Palavas, Sable)
  • PERSONNE (Julie, 24)
  • PERSONNE( (Paul, 40)
  • Seuls les faits positifs sont enregistrés dans la
    BD

CLIMAT Nom Temp
Cabourg 18 Deauville 19 Palavas 21
PLAGE Nom Qualité
Cabourg Sable Deauville Sable Nice Galets Palavas
Sable
PERSONNE Qui Age
Julie 24 Paul 40
4
Exemple de règles et questions
  • Règles
  • Toute personne de moins de 40 ans aime aller sur
    une plage de sable lorsque la température moyenne
    est supérieure à 20
  • Les risques de piqûres par des insectes sont
    importants (0.7) lorsque la température est
    supérieure à 25
  • Questions
  • Qui peut être aller sur une plage hier ?
  • Combien de personnes seront piquées par un
    insecte à Cabourg le 14 juillet 1998 ?

5
Objectifs des SGBDD
  • Etendre les SGBD classiques
  • relationnels
  • objets
  • Permettre la définition et la gestion de règles
  • Permettre d'interroger des faits déduits
  • Permettre de concrétiser des faits déduits
  • Extension des mécanismes de vues et déclencheurs

INFORMATIONS
QUESTIONS
MISES A JOUR
BD intentionnelle
Méta-données
REGLES
BD extentionnelle
Données
BD
6
Couplage ou intégration ?
lg. règles
Sqllg. règles
MOTEUR REGLES
MOTEUR REGLES
SGBD
SGBD
Couplage fort
Couplage faible
lg. intégré
MOTEUR REGLES
SGBD
Intégration
7
Utilisation
  • Interfaces intelligentes aux BD
  • Maintient de l'intégrité
  • Cohérence des règles
  • Optimisation de requêtes
  • Capture des règles de l'entreprise
  • Formalisation logique des problèmes BD
  • Beaucoup de promesses, peu de réalisations ...

8
2. RAPPELS DE LOGIQUE
  • Inférence logique
  • Logique du 1er ordre
  • Mécanisme de déduction
  • Langage formel basé sur le calcul de prédicats
  • permet d'écrire des phrases (formules) sur un
    ensemble d'objets (univers)
  • à partir de phrases reconnus, on peut en déduire
    d'autres
  • Prolog réalise une implémentation en mémoire
  • basée sur le chaînage arrière
  • forme de clauses
  • Les systèmes experts sont plus riches
  • chaînage arrière et avant (mixte)
  • calculs de vraissemblances
  • modèles objets
  • toujours en mémoire !

9
Syntaxe
  • Termes
  • variables (x,y,z, ...), constantes (a, b, c,
    ...),
  • fonctions de termes (f, g ,h)
  • exemple x, f(x), g(x,a), f(g(x,a)), age(x), x2
  • Formules
  • atomiques prédicats de termes P(x,y), Q(g(x,a)
  • conjonctives, disjonctives, négatives F1?F2
    F1?F2, ?F1
  • quantifiées ?x F(x????xF(x)
  • Exemple
  • ?x ?y (Personne(x) ? Age(x)lt40 ? Climat(y,t) ?
    tgt20???Aime(x,y))

10
Sémantique
  • Interprétation sur un domaine de discours D
  • chaque constante désigne un objet spécifique
  • chaque prédicat désigne une relation particulière
  • chaque fonction n-aire une fonction de Dn dans D
  • Toute formule possède une valeur de vérité sur D
  • Un modèle de F est un domaine où F est vraie
  • Certaines formules n'ont pas de modèle
  • formules non satisfaisables
  • contraire des tautologies (toujours vraies)

11
Forme clausale
  • Toute formule fermée (sans variable libre) peut
    être mise sous la forme de clauses
  • P11?P12?... ? Q11?Q12? ...
  • P21?P22?... ? Q21?Q22? ...
  • ...
  • Pn1?Pn2?... ? Qn1?Qn2? ...
  • Technique
  • élimnation des implications, réduction de la
    portée des négations
  • mise sous forme normale conjonctive (ET de OU)
  • élimnation des quantificateurs (il existe devient
    un skolem)
  • écriture des clauses sous forme (négatif) ?
    (positif)

12
Inférence
  • Qu'est-ce-que l'inférence ?
  • La faculte de déduire logiquement un théorème
    (formule logique vraie) à partir d'un ensemble de
    faits et d'un ensemble de règles (formules)
  • Résultat
  • Pour les formules du 1er ordre, il existe un
    mécanisme complet d'inférence
  • La méthode de resolution due a Robinson 1965

13
Principe de la déduction
  • Pour des clauses de Horn
  • OU noté , NOT noté -, addition algébrique de
    formules
  • l'algorithme d'unification de formules décide si
    deux formules peuvent être rendues identiques par
    renomage ou assignation (spécialisation) de
    variables
  • Règle d'inférence générale
  • F1L1 F2 -L2 L1s ? L2s
  • F1s F2s
  • regroupe modus ponens (F, F?P / P) et
    spécialisation F(x) /F(a)
  • Permet de tout déduire (clause ? si contradiction)

14
Questions de base
  • Comment exprimer les règles (connaissances) et
    les théorèmes a démontrer (questions) ?
  • Comment assurer la cohérence des données et des
    règles ?
  • Comment évaluer efficacement une question a
    partir des faits et des règles ?
  • Quid des mises à jour et des règles modifiant la
    base ?

15
3. LE LANGAGE DATALOG
  • Langage de Règles pour BD déductives
  • Basé sur les clauses de Horn (comme Prolog)
  • Sémantique Ensembliste
  • Extensions Possibles

16
3.1 Les faits
  • Ce sont des formules vraies à variable instanciée
  • Paul est le père de Pierre
  • PERE( pierre , paul )
  • Les faits sont les tuples des relations
    classiques
  • R(A1 dom,A2 dom, ...An dom)
  • R(a1, a2,an), R(b1,b2, ...bn), ...
  • Ils sont donc rangés dans une BD relationnelle
  • Les tables apparaissent comme des prédicats
    instanciés
  • Tout fait non enregistré dans la BD est faux !

17
3.2 Les règles clauses de Horn
  • Les Règles sont des loies déductives
  • P1?? ? Pk ? R1 s'écrit R1 ??P1, P2, , Pk
  • Si x est le père de y et si y est le père de z
    alors x est le grand-père de z
  • Règle grand-père ( z , x ) ???père ( y , x ) ,
    père ( z , y )
  • Elles permettent d'exprimer
  • Jointure
  • P (x, y, z, ...) ??B1 (x, y, ...), B2 (y, z,
    ...), ....
  • Restriction
  • P (x, y, ...) ??B1 (x, y, ...), y ??a , ....
  • Projection
  • P (x, z, ...) ??B1 (x, y, ...), B2 (y, z, ...),
    ....

18
Les règles récursives
  • Récursion
  • P ( x, y,...) ??B1 ( x, y...), P ( y,...), B2
    (...), ....
  • P est calculé en fonction de P (Boucle while)
  • En général initialisé par une règle non récursive
  • P ( x, y,...) ??B0 ( x, y...)
  • Différentes formes
  • linéaire P ?????P...
  • quadratique P ?????P...,P...
  • polynomiale P ?????P...P,...,P....

P
B1
B2
Exp. algèbre
P
19
Exemples Typiques
  • BD relationnelle
  • PERE (PERE personne, ENFANT personne)
  • MERE(MERE personne, ENFANT personne)
  • Règles simples
  • PARENT(x,y) ??PERE(x,y)
  • PARENT(x,y) ? MERE(x,y)
  • GRAND_PARENT(x,y) ? PARENT(x,z),PARENT(z,y)
  • Règles récursives
  • ANCETRE(x,y) ? PARENT(x,y)
  • ANCETRE(x,y) ? PARENT(x,z),ANCETRE(z,y)

20
Autre exemple
  • BD semi-structurée
  • Documents(Source, Label, Cible, Contenu)
  • Permet d'exprimer les expressions régulières de
    recherche
  • Récursion linéaire
  • Sélection du graphe de l'Hopital Hos
  • Hos(x,,l,y,c) ??Doc(x,l,y,c), Root(x,"Hos")
  • Hos(y,k,z,d) ??Hos(x,l,y,c),Doc(y,k,z,d)

21
3.3 Sémantique d'un programme
  • Sémantiques logiques
  • Théorie du modèle
  • plus petit modèle du programme logique
  • Théorie de la preuve
  • faits déductibles par preuve de théorème
  • Sémantique opérationnelle
  • Théorie du point fixe
  • point fixe par calculs itératifs

22
Base extensionnelle et intentionnelle
  • EDB Extensional Data Base
  • Ensemble des faits connus
  • IDB Intensional Data Base
  • Ensemble des faits déduits
  • Pour une clause
  • La tête prédicat IDB
  • Le corps prédicat(s) IDB et/ou prédicat(s) EDB

23
Exemple
  • Soit E la BD constituée par les relations
  • per ( nom )
  • par (parent, enfant )
  • EDB
  • per ltpaulgt, ltpierregt, ltdavidgt, ltvalériegt,
    ltmariegt, ltjeangt, ltoliviergt, ltisabellegt
  • par ltpierre,paulgt, ltmarie,pierregt,
    ltdavid,paulgt, ltjean davidgt, ltvalérie davidgt,
    ltvalérie,isabellegt
  • Programme P
  • r1 cmg(X,X) ? per(X)
  • r2 cmg(X1,Y1) ? par(X,X1),cmg(X,Y),par(Y,Y1)
  • IDB
  • cmg ltdavid,pierregt, ltmarie,valériegt,
    ltvalérie,mariegt, ...
  • REQUETE
  • ? cmg ( valérie , X )

24
Théorie du Modèle
  • Modèle
  • Ensemble de
  • tous les faits connus ( EDB )
  • tous les faits qui peuvent être déduits des
    règles ( IDB )
  • toutes combinaisons des faits précédents
  • Plus Petit Modèle
  • Intersection de tous les modèle
  • Sémantique du modèle
  • Un fait est vrai s'il appartient au Plus Petit
    Modèle

25
Exemple
  • BDE
  • pers ltpaulgt, ltpierregt, ltjeangtpère
    ltpierre,paulgt, ltjean,pierregt
  • BDI
  • grand-père ( Z , X ) ? père ( Y , X ) , père ( Z
    , Y )
  • Modèle 1
  • pers ltpaulgt, pers ltpierregt, pers ltjeangt, père
    ltpierre,paulgt, père ltjean,pierregt, grand-père
    ltjean,paulgt, père ltpierre,paulgt ??père
    ltjean,pierregt
  • Modèle 2
  • pers ltpaulgt, pers ltpierregt, pers ltjeangt,
    pèreltpierre,paulgt, père ltjean,pierregt, grand-père
    ltjean,paulgt, pers ltpaulgt ? pers ltpierregt ? pers
    ltjeangt
  • PPM
  • pers ltpaulgt, pers ltpierregt, pers ltjeangt, père
    ltpierre,paulgt, père ltjean,pierregt, grand-père
    ltjean,paulgt

26
Théorie de la Preuve
  • Sémantique de la preuve
  • Un fait est vrai s'il peut être démontré par le
    théorème de résolution
  • Théorème de résolution
  • A partir d'axiomes A, on veut déduire le théorème
    T
  • méthode par l'absurde contradiction entre A et
    ?T
  • A est vrai donc ?T est faux ? T est vrai

27
Exemple
  • Axiomes
  • père(pierre,paul), père(jean,pierre)
  • grand-père(Z,X) ??père(Y,X),père(Z,Y)
  • Théorème
  • grand-père(jean,paul) C?A?B C??(A?B)
    C??A??B
  • grand-père(Z,X)??père(Y,X)??père(Z,Y) père(pierre,
    paul)
  • Y pierre X paul
  • grand-père(Z,paul) ??père(Z,pierre) père(jean,pier
    re)
  • Z jean
  • grand-père(jean,paul) ?grand-père(jean,paul)
  • Ø

28
Théorie du Point Fixe
  • Point Fixe
  • On applique plusieurs fois l'ensemble des règles
    à E(EDB ), jusqu'à ce qu'il n'y ait plus de
    nouveaux faits produits
  • c'est le point fixe
  • Sémantique du Point Fixe
  • Un fait est vrai s'il appartient au Point Fixe
    (PPM)
  • Exemple
  • pers ltpaulgt, ltpierregt, ltjeangt
  • père ltpierre,paulgt, ltjean,pierregt
  • grand-père ( Z , X ) ??père ( Y , X ) , père ( Z
    , Y )
  • Point Fixe
  • pers ltpaulgt, pers ltpierregt, pers ltjeangt, père
    ltpierre,paulgt, père ltjean,pierregt, grand-père
    ltjean,paulgt

29
4. TECHNIQUES D'EVALUATION
  • Stratégie de recherche
  • Bottom-Up on part des faits pour arriver à la
    solution
  • Top-Down on part de la solution, et on remonte
    aux faits
  • Objectif de l'optimisation
  • interprétation ou réécriture du programme
  • évaluation naïve du programme réécrit
  • Information considérée
  • syntaxique structure du programme, structure de
    la requête
  • sémantique ajout de connaissances sémantiques

30
Méthodes
  • Bottom-Up
  • Naîve calcul du point fixe par itération
  • Semi-naîve itération sans recalculs
  • Top-Down
  • QSQ (L. Vieille)
  • Alexandre (J. Rohmer)
  • Magic Set (F. Bancilhon)
  • Fonctionnelle (G. Gardarin, HenchenNaqvi)
  • Comptage (Zaniolo)

31
4.1 La génération naïve
  • Clauses
  • R(X,Z) ? B(X,Y),C(Y,Z)
  • B ? C ?X,Z( B gtlt C )
  • R R ? ( B ? C )
  • Requêtes
  • R(X) ? donne ?X(R)
  • Q(a,X) donne ??1a(Q)
  • Exemples
  • r1 cmg(X,X) ??per(X)
  • CMG CMG ? PER
  • r2 cmg(X1,Y1) ? par(X,X1),cmg(X,Y),par(Y,Y1)
  • CMG CMG ??? ( PAR ?CMG ) ??PAR
  • Equation au point fixe
  • calculable par itération
  • très lourd pour trouver les cmg de toto !

32
4.2 La génération semi-naive
  • Objectif améliorer les performances
  • On constate de manière générale Ri?inclus dans
    Ri1
  • Par suite on pose Ri1 Ri ? DELTAi
  • D'OU, SI f EST CONTINUE
  • Ri2 f (Ri ? DELTAi, P1, Pm)
  • Ri2 f (Ri, P1, Pm) ? f (DELTAi,P1, Pm)
  • Ri2 Ri1 ? f (DELTAi, P1 Pm) ??DELTAi1 f
    (DELTAi,P1, Pm)
  • D'où la méthode du DELTA
  • seulement valables pour des données acycliques
  • problème de test d'arrêt

33
Algorithme Différentiel (Semi-Naïf)
  • Algorithm fix(f,R)
  • Begin
  • DELTA f (Ø,P1, Pm)
  • R DELTA
  • While DELTA????Ø do R change si
    données cycliques
  • DELTA f (DELTA,P1, Pm)
  • R R ? DELTA
  • od
  • End

34
Application de l'Algorithme
  • PARENT
  • Jacques Lulu
  • Jacques Lili
  • Paul Jacques
  • Jean Paul
  • DELTA0
  • Jacques Lulu
  • Jacques Lili
  • Paul Jacques
  • Jean Paul
  • DELTA1
  • Paul Lulu
  • Paul Lili
  • Jean Jacques
  • DELTA2
  • Jean Lulu
  • Jean Lili
  • DELTA3
  • Ø

35
Bilan
  • Comment générer efficacement une relation
    récursive ?
  • ne pas travailler tuple a tuple
  • appliquer la méthode du delta
  • utiliser si possible des opérateurs spécialisés
  • ex fermeture transitive
  • lors de la premiere passe (jointure), garder des
    identifiants en place des tuples
  • travailler sur un graphe de la relation

36
4.3 La dérivation top-down
  • Lors de l'interrogation, les constantes sont
    employés afin de sélectionner les faits relevants
  • Trois dimensions
  • quel filtre remonter ?
  • comment utiliser les règles ?
  • générer un plan ou interpréter dynamiquement ?


Méthode
37
Le chaînage arrière
  • A1 GM(x,z) ??mère(x,y), mère(y,z)
  • A2 GM(x,z) ??mère(x,y), père(y,z)
  • A3 GP(x,y) ??GM(z,y),?mari(x,z)
  • QUESTION ? GP( a,y )
  • Graphe ET/OU

GP (a ,y?)
A3
GM (z, y?) mari (a,z)
z c
GM (c, y?)
A1
A2
mère (c, y1) père (y1, y?)
mère (c, y1) mère (y1, y?)
d
d
f
e
petits enfants de a
38
Exemple Récursif
  • A1 AMIF(x,y) ? AMI(x,y)
  • A2 AMIF(x,y) ?? PARENT(x,z), AMIF(z,y)
  • QUESTION AMIF(toto, y ?)

AMIF (toto,y ?)
A1
A2
AMI (toto, y ?)
PARENT (toto,z) AMIF (z,y)
z po1,po2
y a1,a2)
AMIF (pji, y ?)
A1
A2
AMI (pji,y ?) PARENT (pji,
z) AMIF (z,y)
y aji1,aji2
z p'1,p'2
Questions ---gt sous-questions
solutions ---gt y

problèmes ---gt z
39
Méthode QoSaQ Vieille87
  • Améliorations du chainage arrière
  • Grouper les sous-questions
  • Garder les problèmes en mémoire z
  • Eliminer un problème déjà traité (élimination de
    questions déjà posées)
  • Limites
  • Méthode tuples à tuples
  • Peut s'appliquer à des règles générales
  • Gestion mémoire importante

40
Méthodes compilées
  • Problèmes
  • Obligation d'optimiser les axiomes/question,
    c'est-à-dire d'effectuer le plus tôt possible les
    restrictions
  • Nécessité de programmes iteratifs ou d'opérateurs
    de calcul de points fixes


41
4.4 Méthode d'Alexandre Rohmer85
  • Méthode compilée pour l'optimisation de
    programmes de règles
  • Cibler les faits relevants (données pertinentes)
    à la question
  • Efficacité en place mémoire et en temps
  • Terminaison lors de l'évaluation d'axiomes
    récursifs

42
Principe d' Alexandre
  • Chaînage mixte simuler du chaînage arrière par
    du chaînage avant.
  • Le chaînage arrière est simulé par une phase de
    réecriture de règles propageant les constantes.
  • L'évaluation s'effectue par un chaînage avant sur
    ces nouvelles règles afin de garantir la
    terminaison.

43
Mécanisme de base
  • Phase de reécriture basée sur le mécanisme de
    résolution
  • Soit une clause C ? Q1, Q2,. ...., Qn .
  • On cherche à résoudre un but C' unifiable à C.
  • Résoudre C' consiste à se poser un problème sur
    le prédicat C --gt PbC .

44
Principe de Résolution
  • Résolution
  • pour toute instance de PbC PbC --gt PbQ1
  • pour toute solution de Q1 correspondant à un PbC,
    un PbQ2 est créée
  • PbC,SolQ1 --gt PbQ2
  • ainsi jusqu'à Qn .
  • une solution sur C est obtenue à partir des
    solutions de Q1,Q2,...,Qn PbC,SolQ1,...,SolQn
    --gt SolC .

45
Précision du Problème
  • La signature d'un littéral P(x1,...,xn) est
    représentée par une chaîne de caractères
    P_m1,...,mn où
  • mi 0 si xi est libre dans P
  • mi 1 sinon .
  • La signature permet de compiler l'unification
    en propageant dans les règles la position des
    variables instanciées par des constantes ou par
    des jointures.

46
Améliorations
  • Le mécanisme de résolution décompose chaque
    prédicat en un prédicat Pb et un prédicat Sol .
  • optimisation 1 ne pas décomposer les prédicats
    instantiés car ceci introduit des jointures
    inutiles.
  • optimisation 2 introduire des prédicats de
    continuation
  • Exemple
  • PbC,SolQ1 --gt PbQ2 .
  • PbC,SolQ1,SolQ2 --gt PbQ3 .
  • optimisé
  • PbC,SolQ1 --gt PbQ2,Cont .
  • Cont,SolQ2 --gt PbQ3 .

47
Application les Ancêtres (1)
  • Définition du prédicat ancêtre "Anc"
  • Anc(x,y) ??Par(x,y) .
  • Anc(x,y) ??Par(x,z) ,
    Anc(z,y).
  • But Anc("toto",y) --gt signature Anc_10

Par
Père
Fils
toto eric toto jean jean
pierre pierre luc olivier
marc noël toto noël
olivier
48
Règles Transformées (1)
  • Transformation des règles par Alexandre

règle 1
PbAnc_10(x) , Par(x,y) --gt SolAnc
_10(x,y) .
règle 2
PbAnc_10(x),Par(x,z) --gt PbAnc_10(z),Cont(x,z) .
règle 2bis
Cont(x,z),SolAnc_10(z,y) --gt SolAnc_10(x,y) .
Initialisation PbAnc_10 ("toto") .
49
Application les Ancêtres (2)
  • Définition du prédicat ancêtre "Anc"
  • Anc(x,y) ??Par(x,y) .
  • Anc(x,y) ???Anc(x,z) ,
    Par(z,y).
  • But Anc("toto",y) --gt signature Anc_10

Par
Père
Fils
toto eric toto jean jean
pierre pierre luc olivier
marc noël toto noël
olivier
50
Règles Transformées (2)
  • Transformation des règles par Alexandre

règle 1
PbAnc_10(x) , Par(x,y) --gt SolAnc
_10(x,y) .
règle 2
PbAnc_10(x) --gt PbAnc_10(x). (Règle inutile)
règle 2bis
SolAnc_10(x,z), Par(z,y) --gt SolAnc_10(x,y) .
Initialisation PbAnc_10 ("toto") .
51
4.5 Méthode Magic Set Bancilhon86
  • Variante de Alexandre
  • basée sur l'idée d'un petit génie
  • avant application du chaînage avant semi-naïf, il
    marque les tuples utiles du prédicat récursif R
    à l'aide d'un prédicat associé, appelé magique et
    noté MAGIQUE_R.
  • Ainsi, les inférences en chaînage avant ne sont
    effectuées que pour les tuples susceptibles de
    générer des réponses, qui sont marqués par le
    prédicat magique.

52
Point de départ
  • Programme de règles signées et graphe SIP de
    propagation de constantes par effets de bord.
  • L'intention est de générer un programme de règles
    qui, à l'aide du ou des prédicats magiques,
    modélise le passage des informations entre
    prédicats selon le graphe SIP choisi.
  • Pour chaque prédicat récursif signé Rxx, un
    prédicat magique est créé , noté MAGIQUE_Rxx dont
    les variables sont celles liées dans Rxx
  • l'arité du prédicat MAGIQUE_Rxx est donc le
    nombre de bits à 0 dans la signature xx ainsi,
    un prédicat magique contiendra des constantes qui
    permettront de marquer les tuples de Rxx utiles.

53
Restriction des règles
  • Chaque règle est modifiée par addition des
    prédicats magiques à sa partie condition, de
    sorte à restreindre l'inférence aux tuples
    marqués par les prédicats magiques.
  • Une règle
  • B1xx,B2xx...R10,C1xx,C2xx... ? R10(x,y)
  • sera transformée en
  • MAGIC_R10(x), B1xx,B2xx...R10,C1xx,C2xx... ?
    R10(x,y)
  • qui signifie que la condition ne doit être
    exécutée que pour les tuples de R10 marqués par
    le prédicat MAGIC_R10(x).

54
Initialisation
  • Le problème un peu plus compliqué à résoudre est
    de générer les constantes du (ou des) prédicat(s)
    magique(s) de sorte à marquer tous les tuples
    utiles et, si possible, seulement ceux-là.
  • Une première constante est connue pour un
    prédicat magique celle dérivée de la question
  • par exemple, avec la question ? R(a,x), on
    initialisera le processus de génération des
    prédicats magiques par MAGIC_R10(a).

55
Marquage
  • La génération des autres tuples du (ou des)
    prédicat(s) magique(s) s'effectue en modélisant
    les transmissions de constantes à tous les
    prédicats dérivés par le graphe SIP choisi.
  • Pour chaque occurrence de prédicat dérivé Rxx
    apparaissant dans le corps d'une règle, on génère
    une règle magique définissant les variables liées
    de Rxx
  • la conclusion de la règle est MAGIQUE_Rxx(...)
  • la condition est composée de tous les prédicats
    qui précédent Rxx dans le graphe SIP, les
    prédicats dérivés étant remplacés par les
    prédicats magiques correspondants.

56
Exemple (1)
  • Les Ancêtres définis linéairement
  • question ?ANC(Jean,y)
  • (r1) MAGIC_ANC10(x),PAR(x,y)?? ANC10(x,y)
  • (r2) MAGIC_ANC10(x),PAR(x,z) ? MAGIC_ANC10(Z)
  • MAGIC_ANC10(x),P(x,z),ANC10(z,y)? ANC10(x,y)
  • La question permet d'initialiser le chaînage
    avant avec
  • MAGIC_ANC10(Jean).

57
Exemple (2)
  • Les mêmes chefs définis quadratiquement
  • question ?MC(Jean,y)
  • (r1) SER(s,x),SER(s,y) ? MSER(x,y)
  • (r2)MAGIC_MC10(x),MSER(x,y) ? MC10(x,y)
  • (r3)MAGIC_MC10(x),CHEF(x,z1) ? MAGIC_MC10(z1)
  • MAGIC_MC10(x),CHEF(x,z1),MC10(z1,z2),MSER(z2,z3)?
    MAGIC_MC10(z3)
  • MAGIC_MC10(x),CHEF(x,z1),MC10(z1,z2),MSER(z2,z3),M
    C10(z3,z4),CHEF(y,z4) ? MC10(x,y)
  • Le prédicat MAGIC_MC10 sera initialisé par
  • MAGIC_MC10(Jean)

58
Bilan
  • Approche compilée (Réécriture, et évaluation)
  • Faut-il toujours appliquer Alexandre/Magic set ?
  • pas d'initialisation de la récursion
  • signature "nulle"(extraire les invariants de
    boucle)
  • peut compliquer inutilement
  • Evaluation des performances
  • focalisation données utiles / coût global des
    operations

59
5. EVOLUTIONS DE DATALOG
  • 6.1. Extension avec les fonctions
  • 6.2. Extension avec la négation
  • 6.3. Extension avec les ensembles et collections


60
5.1 Support des fonctions
  • Intérêt d'introduire des fonctions dans les
    prédicats
  • Calculs, structures
  • Fonctions usagers (ADT )
  • Encapsulation
  • Point de vue logique
  • Symboles de fonctions f, g, h,
  • Possibilités d'interpréter les fonctions
    (réécritures)

61
Risque d'Infinitude
  • Problème
  • Finitude du domaine d'interprétation
  • a, f,(a), f(f(a)), f(f(..(a))),
  • Indécidabilite
  • Une solution
  • Interpréter les fonctions (réécriture canonique)
  • Conserver des domaines finis

62
Exemple
  • EXEMPLE
  • BOOL (0) BOOL (1)
  • BOOL (AND (x,y)) ?? BOOL (x), BOOL (y)
  • BOOL (OR (x,y)) ? BOOL (x), BOOL (y)
  • AND et OR interprétés
  • le programme génère 0,1
  • (AND (0,0) AND (1,0) 0 OR (0,0) 0 OR
    (1,0) 1 )
  • plus petit modèle booléen

63
Fonctions Non Interprétées
  • AND et OR non interprétés
  • le programme génère
  • 0,1, AND (0,0), AND (1,0), , AND (AND
    (0,0),0),
  • OR (0,0), , OR (AND (0,0),
  • plus petit modèle infini
  • Interprétation pas toujours possible

64
Dépendance de Sureté
  • PROBLEME DE "SAFETY"
  • Approche Dépendance de sûreté
  • Une dépendance de sûreté X ? Y est vérifiée si
    pour une valeurde X il existe un nombre fini de
    valeurs de Y correspondante.
  • Exemple
  • Z X Y alors X,Y ?? Z mais Z?? X est faux

65
Condition de Sureté
  • Une variable X est sûre si X apparait dans un
    prédicat de base ou s'il existe une dépendance de
    sûreté depuis un ensemble de variables sûres vers
    X.
  • Exemple
  • ENTIER (x) ? ENTIER (y), x y 1
  • y est sûr (ENTIER est un prédicat de base)
  • x est sûr car y ? x

66
Règles Evaluables Bottom-Up
  • Une règle est évaluable bottom-up si toutes les
    variables de la règle sont sûres et si la règle
    n'est pas récursive.
  • Exemples
  • DERIVE (x) ? BASE (y), x y 1
  • est évaluable bottom-up et est sûre.
  • DERIVE (x) ? BASE (y), xgty
  • n'est pas évaluable bottom-up car x est non sûre.
  • ENTIER (x) ? ENTIER (y), x y 1
  • n'est pas évaluable bottom-up car récursive
  • cependant les variables sont sûres.

67
Puissance de DatalogFonc
  • (1) ETENDRE L'ALGEBRE AUX FONCTIONS
  • Restriction ??(R) avec critère Q
  • Jointure R1 gtlt R2 avec critère Q où Q est une
    formule bien formée de logique avec des fonctions
    possibles (e.g., f(attributs) g (variable))
  • Projection ? t1, t2, tn (R) où t1, t2, tn
    sont des termes de logiques avec fonctions.
  • (2) AJOUTER LES BOUCLES WHILE
  • pour la récursion

68
Exemple
  • Traduire en algèbre relationnelle étendue le
    parcours d'un graphe avec concaténation de labels
    (cheminement)
  • PARCOURS (x,y,t) ?? GRAPHE (x,y,t)
  • PARCOURS (x,z,tu) ?? GRAPHE (x,y,t), PARCOURS
    (y,z,u).

69
5.2 le support de la négation
  • Motivations
  • Avoir la difference
  • Traiter les exceptions
  • La négation permet des règles du type
  • A ? L1,L2..., Ln
  • L1, L2, Ln étant des littéraux positifs ou
    négatifs
  • Exemples
  • PARCOURS (x,z,tu) ? GRAPHE (x,y,t), PARCOURS
    (y,z,u), INTERDIT (x,y)
  • VOL (X) ? OISEAU (x), PINGOUIN (x)

70
Sémantique d'un Programme
  • Problème
  • Plusieurs modèles minimaux pour un programme
    DATALOG(neg)
  • Exemple
  • oiseau (pégase) vol (x) ? oiseaux (x) ,
    pingouin (x)
  • admet deux modeles minimaux
  • oiseau (pégase) pingouin (pégase)
  • oiseau (pégase) vol (pégase).
  • equivalent a information disjonctive
  • vol(x) ? pingouin (x) ? oiseaux (x)


71
Stratification
  • Idée intuitive
  • définir des strates telles qu'un prédicat négatif
    soit complétement calculé avant négation
  • interpréter B(x) comme "x" n'est pas un tuple
    de "B"
  • Exemple
  • R( a) Q (x) ? R (x) S (b) P (x) ? Q (x)
    est stratifiable
  • S1 R (a) Q (x) ? R (x) et S2 S (b) P
    (x) ? Q (x)
  • fix (S1) R (a) Q (a)
  • S2 est remplacé par S (b) P(x) ? Q(y), x???y
  • fix (S2/S1) R (a) Q (a) S (b) P (b)

72
Programme non Stratifiable
  • Tout programme n'est pas stratifiable
  • EXEMPLES
  • P (x) ? P (x)
  • Q (x) ? P(x) P (x) ? Q (x)
  • ne sont pas stratifiables
  • Condition
  • Il ne faut pas que la négation traverse la
    récursion
  • (pas de cycle récursif avec négation).

73
Programme Interprétable
  • Un programme non stratifiable peut avoir une
    signification
  • Even(0)
  • Odd(1)
  • Odd(x) ? Succ(x,y), Odd(y)
  • Even(x) ? Succ(x,y), Even(y)
  • Comment calculer les nombres pairs et impairs
    avec ces règles ?

74
Sémantique Bien-fondée
  • Pour appliquer une règle avec négation, il est
    suffisant  de connaître une sous-estimation des
    faits négatifs (NF).
  • Procédure possible
  • 1. Ø is a first underest. of NF
  • 2. Underest. of NF --gt Underst. of PF (Rule)
  • 3. Underest. of PF --gt Overest. of NF (Neg)
  • 4. Overest. of NF --gt Overest. of PF (Rule)
  • 5. Overest. of PF --gt Underest. of NF (Neg)
  • Converge vers NF and PF

75
Exemple
  • Even(0)
  • Even(x) ? Succ(x,y), Even(y)
  • H1. No number is Even (U NF)
  • R2. No number is Even except 0 (U PF)
  • N3. All numbers are Even except 0 (O NF)
  • R4. All numbers are Even except 1 (O PF)
  • N5. No number is Even except 1 (U NF)
  • etc...

76
5.3 Le support des ensembles
  • Motivations
  • Généraliser les aggrégats
  • Offrir les opérateurs Nest / Unnest / Flatten
  • Deux types de domaines sont introduits
  • DOMAINES SIMPLES x, y, z,
  • DOMAINES ENSEMBLES X, Y, Z,
  • Le langage est nommé DATALOG ens

77
Exemple (BOM)
  • Bill of Material

PIECES
COMPOSANT a a a b b
COMPOSE b c d c d
78
Opération Nest et Unnest
  • OPERATIONS NEST
  • COMPOSE (x,Y) ? PIECE (x,y), Y ltygt
  • OPERATION UNNEST
  • PIECE (x,y) ? COMPOSE (x,Y), y ? Y
  • Le test d'appartenance permet de dégrouper

79
Opérations sur Ensemble
  • Autres manipulations d'ensembles
  • PREDICATS D'INCLUSION X ? Y, X ??Y
  • FONCTIONS UNION, INTERSECTION, DIFFERENCE
  • ??????? X,Y - -gt X ??Y
  • ??????? X,Y, - - gt X ??Y
  • - X,Y - - gt X - Y

80
Quelques redondances !
  • Possibilité d'obtenir les ensembles avec
    fonctions et   négation
  • X - -gt X
  • ? X,Y - - gt X ? Y interprétée
  • SPIECE (x,Y) ? PIECE (x,y), Y y
  • SPIECE (x,Y) ? SPIECE (x,Z), SPIECE (x,T), Y Z
    ? T
  • COMPOSE (x,Z) ? SPIECE (x,Y), SPIECE (x,Z), Y lt
    Z

81
5.4 Le support des mises à jour
  • Pour accroiître la puissance du langage, il est
    possible d'inclure les mises à jour en tête de
    règles
  • La suppression est effectuée par la négation en
    tête de règle
  • Chemin(x,y) ? Interdit(x,y)
  • La mise à jour est une suppression suivie d'une
    insertion
  • Chemin(x,y), Chemin(y,x) ?? Interdit(x,y)

82
Et les objets !
  • Possibilité d'ajouter des classes
  • Création d'objet en tête de règle

Algèbre relationnelle avec fonctions
DATALOGFonc, Neg,Neg
ROL
DATALOGFonc, Neg
Récursion
Mise à jour
Invention d'objet
83
6. CONCLUSION
  • DATALOG fonc, neg, set est très puissant
  • Enrichissement possibles
  • création et destruction d'objets
  • langages multi-actions
  • conditions disjonctives
  • support complet des objets (classe, héritage)
  • Langage de règles de production
  • déclaration de types abstraits (objets)
  • modules, procédures, composants, ....


84
Définition de connaissances
Interrogation
Mise à jour
Inférence
Recherche et Mise à jour
Tables
Règles
Write a Comment
User Comments (0)
About PowerShow.com