La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

BD DEDUCTIVES Méthode OCULTE Objectifs : définition des buts

Présentations similaires


Présentation au sujet: "BD DEDUCTIVES Méthode OCULTE Objectifs : définition des buts"— Transcription de la présentation:

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 Seuls les faits positifs sont enregistrés dans la BD
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
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 ?
Sql+lg. règles 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 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 Formules Exemple
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 ? Résultat
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 -L 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 : Règles simples :
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) 1 3 4 5 6 9 10 11 13 14 15 16 17 20 21 HospitalGroup Project Projet Member Name Age Office Title Building 12 18 19 Bulding Room 2 7 "John" "Peter" 46 "Door 252" "A" "411" "Paul" 28 "Door" 252 "Cancer" "Clone" 8 32

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 : EDB : Programme P
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 )

24 Théorie du Modèle Modèle : Plus Petit Modèle : Sémantique du 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 BDI Modèle 1 : Modèle 2 : PPM :
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>}

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 : Théorème : 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 Théorie du Point Fixe Point Fixe Sémantique du Point Fixe Exemple :
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>}

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 : Top-Down :
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 4.1 La génération naïve Clauses : Requêtes : Exemples :
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 !

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 Application de l'Algorithme
PARENT Jacques Lulu Jacques Lili Paul Jacques Jean Paul DELTA[0] DELTA[1] Paul Lulu Paul Lili Jean Jacques DELTA[2] Jean Lulu Jean Lili DELTA[3] Ø

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 ? Filtrage Chaînage après avant arrière interpréter compiler 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) & mère (y1, y?) mère (c, y1) & père (y1, y?) d d e f 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 ---> 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 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 ANALYSEUR REQUETE AXIOMES (RECURSIFS) PROGRAMMES D'OPERATIONS RELATIONNELLES (AVEC BOUCLES)

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

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),MC10(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 Une solution
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 : AND et OR interprétés : { 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), x>y 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 Datalog[Fonc]
(1) ETENDRE L'ALGEBRE AUX FONCTIONS Restriction : (R) avec critère Q Jointure R1 [><] 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,t+u)  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,t+u)  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 : Exemple :
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 --> Underst. of PF (Rule) 3. Underest. of PF --> Overest. of NF (Neg) 4. Overest. of NF --> Overest. of PF (Rule) 5. Overest. of PF --> 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 b COMPOSE b c d

78 Opération Nest et Unnest
OPERATIONS NEST : COMPOSE (x,Y)  PIECE (x,y), Y = <y> 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 - -> X Y : X,Y, - - > X Y - : X,Y - - > X - Y

80 Quelques redondances ! Possibilité d'obtenir les ensembles avec fonctions et   négation { } : X - -> {X}  : X,Y - - > 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 < 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 Algèbre relationnelle
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 Invention d'objet Mise à jour Récursion

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 Recherche et Mise à jour
Interrogation Mise à jour Définition de connaissances Inférence Recherche et Mise à jour Tables Règles


Télécharger ppt "BD DEDUCTIVES Méthode OCULTE Objectifs : définition des buts"

Présentations similaires


Annonces Google