1 / 84

BD DEDUCTIVES

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. 1. OBJECTIFS.

leal
Télécharger la présentation

BD DEDUCTIVES

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. 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. 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 Objectifs des SGBDD 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 Sql+lg. 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. 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 ! 2. RAPPELS DE LOGIQUE

  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), x+2 • 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)<40  Climat(y,t)  t>20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 F1+L1 F2 -L2 L1[s]  L2[s] F1[s] + F2[s] • 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.... B1 P 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. 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) HospitalGroup 1 Project Member Member Project Member Projet Member 2 3 4 5 6 Project Age Name Age Office Office Name Age Office Title Title Name 9 10 11 12 13 14 15 16 17 7 8 "Peter" 46 "Door 252" "Paul" 28 "Cancer" "Clone" "John" 32 Bulding Room Building Room 18 19 20 21 "A" "411" "Door" 252 Autre exemple

  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. Soit E la BD constituée par les relations : per ( nom ) par (parent, enfant ) EDB : per = {<paul>, <pierre>, <david>, <valérie>, <marie>, <jean>, <olivier>, <isabelle>} par = {<pierre,paul>, <marie,pierre>, <david,paul>, <jean david>, <valérie david>, <valérie,isabelle>} Programme P r1 : cmg(X,X)  per(X) r2 : cmg(X1,Y1)  par(X,X1),cmg(X,Y),par(Y,Y1) IDB : cmg = {<david,pierre>, <marie,valérie>, <valérie,marie>, ...} REQUETE : ? cmg ( valérie , X ) Exemple

  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. BDE pers = {<paul>, <pierre>, <jean>}père = {<pierre,paul>, <jean,pierre>} BDI grand-père ( Z , X )  père ( Y , X ) , père ( Z , Y ) Modèle 1 : {pers <paul>, pers <pierre>, pers <jean>, père <pierre,paul>, père <jean,pierre>, grand-père <jean,paul>, père <pierre,paul> père <jean,pierre>} Modèle 2 : {pers <paul>, pers <pierre>, pers <jean>, père<pierre,paul>, père <jean,pierre>, grand-père <jean,paul>, pers <paul>  pers <pierre>  pers <jean>} PPM : {pers <paul>, pers <pierre>, pers <jean>, père <pierre,paul>, père <jean,pierre>, grand-père <jean,paul>} Exemple :

  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,pierre) • Z = jean • grand-père(jean,paul) grand-père(jean,paul) • Ø

  28. 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 = {<paul>, <pierre>, <jean>} père = {<pierre,paul>, <jean,pierre>} grand-père ( Z , X ) père ( Y , X ) , père ( Z , Y ) Point Fixe : {pers <paul>, pers <pierre>, pers <jean>, père <pierre,paul>, père <jean,pierre>, grand-père <jean,paul>} Théorie du Point Fixe

  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, Henchen&Naqvi) • Comptage (Zaniolo)

  31. Clauses : R(X,Z)  B(X,Y),C(Y,Z) B  C = X,Z( B |><| C ) R = R  ( B  C ) Requêtes : R(X) ? donne X(R) Q(a,X) donne 1=a(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 ! 4.1 La génération naïve

  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 Ri+1 • Par suite on pose : Ri+1 = Ri  DELTAi • D'OU, SI f EST CONTINUE : • Ri+2 = f (Ri  DELTAi, P1,… Pm) • Ri+2 = f (Ri, P1, … Pm)  f (DELTAi,P1, … Pm) • Ri+2 = Ri+1  f (DELTAi, P1 … Pm) DELTAi+1 = 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. PARENT Jacques Lulu Jacques Lili Paul Jacques Jean Paul DELTA[0] Jacques Lulu Jacques Lili Paul Jacques Jean Paul DELTA[1] Paul Lulu Paul Lili Jean Jacques DELTA[2] Jean Lulu Jean Lili DELTA[3] Ø Application de l'Algorithme

  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. 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 ? Filtrage après avant Chaînage interpréter avant arrière compiler 4.3 La dérivation top-down Méthode

  37. 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 Le chaînage arrière 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. A1 : AMIF(x,y) AMI(x,y) A2 : AMIF(x,y) PARENT(x,z), AMIF(z,y) QUESTION : AMIF(toto, y ?) Exemple Récursif 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 ---> sous-questions {solutions} ---> y {problèmes} ---> 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. REQUETE AXIOMES (RECURSIFS) ANALYSEUR PROGRAMMES D'OPERATIONS RELATIONNELLES (AVEC BOUCLES) 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 --> PbC .

  44. Principe de Résolution • Résolution : • pour toute instance de PbC : PbC --> PbQ1 • pour toute solution de Q1 correspondant à un PbC, un PbQ2 est créée • PbC,SolQ1 --> PbQ2 • … • … • ainsi jusqu'à Qn . • une solution sur C est obtenue à partir des solutions de Q1,Q2,...,Qn : PbC,SolQ1,...,SolQn --> 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 --> PbQ2 . • PbC,SolQ1,SolQ2 --> PbQ3 . • optimisé : • PbC,SolQ1 --> PbQ2,Cont . • Cont,SolQ2 --> 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) --> 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) --> SolAnc _10(x,y) . règle 2 PbAnc_10(x),Par(x,z) --> PbAnc_10(z),Cont(x,z) . règle 2bis Cont(x,z),SolAnc_10(z,y) --> 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) --> 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) --> SolAnc _10(x,y) . règle 2 PbAnc_10(x) --> PbAnc_10(x). (Règle inutile) règle 2bis SolAnc_10(x,z), Par(z,y) --> SolAnc_10(x,y) . Initialisation : PbAnc_10 ("toto") .

More Related