Title: BD DEDUCTIVES
1BD 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
21. 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
3Exemple 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
4Exemple 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 ?
5Objectifs 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
6Couplage 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
7Utilisation
- 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 ...
82. 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 !
9Syntaxe
- 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))
10Sé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)
11Forme 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)
12Infé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
13Principe 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)
14Questions 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 ?
153. LE LANGAGE DATALOG
- Langage de Règles pour BD déductives
- Basé sur les clauses de Horn (comme Prolog)
- Sémantique Ensembliste
- Extensions Possibles
163.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 !
173.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, ...),
....
18Les 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
19Exemples 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)
20Autre 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)
213.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
22Base 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
23Exemple
- 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 )
24Thé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
25Exemple
- 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
26Thé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
27Exemple
- 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)
- Ø
28Thé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
294. 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
30Mé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)
314.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 !
324.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
33Algorithme 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
34Application 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
- Ø
35Bilan
- 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
364.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
37Le 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 )
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
38Exemple 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
39Mé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
40Mé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
414.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
42Principe 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.
43Mé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 .
44Principe 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 .
45Pré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.
46Amé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 .
47Application 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
48Rè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") .
49Application 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
50Rè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") .
514.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.
52Point 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.
53Restriction 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).
54Initialisation
- 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).
55Marquage
- 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.
56Exemple (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).
57Exemple (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)
58Bilan
- 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
595. EVOLUTIONS DE DATALOG
- 6.1. Extension avec les fonctions
- 6.2. Extension avec la négation
- 6.3. Extension avec les ensembles et collections
605.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)
61Risque 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
62Exemple
- 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
63Fonctions 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
64Dé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
65Condition 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
66Rè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.
67Puissance 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).
695.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)
70Sé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)
71Stratification
- 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)
72Programme 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).
73Programme 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 ?
74Sé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
75Exemple
- 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...
765.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
77Exemple (BOM)
PIECES
COMPOSANT a a a b b
COMPOSE b c d c d
78Opé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
79Opé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
80Quelques 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
815.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)
82Et 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
836. 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, ....
84Définition de connaissances
Interrogation
Mise à jour
Inférence
Recherche et Mise à jour
Tables
Règles