250 likes | 364 Views
Bases de données déductives en pratique. Par : Robert Denicourt Michael Glenn Le 16 décembre 2002. Plan de la présentation. Survol théorique Exemple du domaine médical Exemple du domaine de la gestion de réseau. Survol théorique. C’est quoi une BDD? C’est un SGBD dont le modèle de
E N D
Bases de données déductives en pratique Par : Robert Denicourt Michael Glenn Le 16 décembre 2002
Plan de la présentation • Survol théorique • Exemple du domaine médical • Exemple du domaine de la gestion de réseau INF 7115 - Bases de données
Survol théorique • C’est quoi une BDD? C’est un SGBD dont le modèle de données est le modèle relationnel. La principale particularité est qu’ils utilisent un langage de règles.(Prolog, Datalog) INF 7115 - Bases de données
Survol théorique • Qui utilise un SGBD déductif ? • La médecine • La robotique • La modélisation scientifique • L’analyse financière • Les SE avec de gros volumes de données INF 7115 - Bases de données
Survol théorique • La force de la BDD • C’est le langage de programmation. • Prolog premier langage Made in Montréal INF 7115 - Bases de données
Domaine médical • Système expert DISI Système expert pour l’aide à la décision et à l’enseignement des diagnostics infirmiers Cette démarche est un processus de résolution de problèmes INF 7115 - Bases de données
Domaine médical • Le processus de résolution de problème INF 7115 - Bases de données
Domaine médical • La conception du système DISI • La base de connaissance • La base faits • Le moteur d’inférence INF 7115 - Bases de données
Domaine médical • La base de connaissance INF 7115 - Bases de données
Domaine médical • Syntaxe des règles dans ILOG Rules INF 7115 - Bases de données
Domaine médical • Schéma de l’organisation du système DISI INF 7115 - Bases de données
Domaine médical • La base de faits INF 7115 - Bases de données
Domaine de la gestion de réseau • Système de Gestion de Réseau (SGR) : consiste à surveiller et contrôler le comportement du réseau afin d’optimiser son opération • Management Information Base (MIB) : composante du SGR qui emmagasine les données INF 7115 - Bases de données
Domaine de la gestion de réseau • Types de données du MIB : • Composantes • Fonctions / Relations entre les composantes Base de données déducive Grand volume de données + Règles définissant les relations entre les données INF 7115 - Bases de données
Domaine de la gestion de réseau INF 7115 - Bases de données
Domaine de la gestion de réseau • Protocoles de gestion de réseau • Basés sur modèle OSI (Open Systems Interconnection) de l’ISO (International Standards Organization) • CMIS/CMIP (Common Management Information Services/Common Management Information Protocol) -> OSI • SNMP (Simple Network Management Protocol) -> TCP/IP INF 7115 - Bases de données
Domaine de la gestion de réseau Modélisation avec ERC+ (Entity-Relationship for Complex objects INF 7115 - Bases de données
Domaine de la gestion de réseau • Développé avec Aditi • Syntaxe similaire à Prolog • Faits (Relations) • Règles device(deviceid, modelid, asset#, serial#, type, location, owner, user, suppier, manager). cable_connection(deviceid_a, port#_a, deviceid_b, port#_b, line_number, wire_classification). INF 7115 - Bases de données
Domaine de la gestion de réseau Les faits… device(cpu1, dx486, a_9201, tp_9211, cpu, lab_1, cams, students, total_peripherals, raj). device(cpu2, dx486, a_9202, tp_9212, cpu, lab_1, cams, students, total_peripherals, raj). device(cpu3, sx486, a_9203, tp_9213, cpu, lab_1, cams, students, total_peripherals, raj). cable_connection(cpu1, slotb, cpu2, slota, a1, coax). cable_connection(cpu2, slotb, cpu3, slota, a2, coax). Relation Attributs INF 7115 - Bases de données
Domaine de la gestion de réseau Les règles… device_list(Device) :-device(Device,_,_,_,_,_,_,_,_,_). device_list(Device, Loc) :-device(Device,_,_,_,_,_,_,_,_,_). device_list(Device, Model, Type, Loc) :-device(Device,Model,_,_,Type,Loc,_,_,_,_). path(X,Y) :-cable_connection(X,_,Y,_,_,_). path(X,Y) :-cable_connection(X,_,Z,_,_,_),path(Z,Y). INF 7115 - Bases de données
Domaine de la gestion de réseau Exemple 1 : <- device_list(Device). INF 7115 - Bases de données
Domaine de la gestion de réseau Unification : association de faits à une variable… 3 device(cpu1, dx486, a_9201, tp_9211, cpu, lab_1, cams, students, total_peripherals, raj). device(cpu2, dx486, a_9202, tp_9212, cpu, lab_1, cams, students, total_peripherals, raj). device(cpu3, sx486, a_9203, tp_9213, cpu, lab_1, cams, students, total_peripherals, raj). cable_connection(cpu1, slotb, cpu2, slota, a1, coax). cable_connection(cpu2, slotb, cpu3, slota, a2, coax). device_list(Device):-device(Device,_,_,_,_,_,_,_,_,_). device_list(Device, Loc) :-device(Device,_,_,_,_,_,_,_,_,_). device_list(Device, Model, Type, Loc) :-device(Device,Model,_,_,Type,Loc,_,_,_,_). path(X,Y) :-cable_connection(X,_,Y,_,_,_). path(X,Y) :-cable_connection(X,_,Z,_,_,_),path(Z,Y). 2 1 <- device_list(Device). Answer Set for device : cpu1 cpu2 cpu3 1 Règle correspondante trouvée Évaluation des composantes de la règle 2 Unification des faits avec la variable 3 INF 7115 - Bases de données
Domaine de la gestion de réseau Exemple 2 : <- path(cpu1,cpu3). INF 7115 - Bases de données
Domaine de la gestion de réseau device(cpu1, dx486, a_9201, tp_9211, cpu, lab_1, cams, students, total_peripherals, raj). device(cpu2, dx486, a_9202, tp_9212, cpu, lab_1, cams, students, total_peripherals, raj). device(cpu3, sx486, a_9203, tp_9213, cpu, lab_1, cams, students, total_peripherals, raj). cable_connection(cpu1, slotb, cpu2, slota, a1, coax). cable_connection(cpu2, slotb, cpu3, slota, a2, coax). device_list(Device) :-device(Device,_,_,_,_,_,_,_,_,_). device_list(Device, Loc) :-device(Device,_,_,_,_,_,_,_,_,_). device_list(Device, Model, Type, Loc) :-device(Device,Model,_,_,Type,Loc,_,_,_,_). path(X,Y) :-cable_connection(X,_,Y,_,_,_). path(X,Y) :-cable_connection(X,_,Z,_,_,_),path(Z,Y). 5 1 2 3 4 6 ET logique 1 Règle correspondante trouvée Évaluation de la condition : cable_connection(cpu1, _, cpu3, _, _, _) -> Faux 2 Deuxième règle correspondante évaluée 3 Évaluation de la première condition : cable_connection(cpu1, _, Z, _, _, _) -> Z=cpu2(True) 4 5 Vérification de la deuxième condition (appel récursif) : path(cpu2, cpu3) -> True 6 <- path(cpu1,cpu3). True INF 7115 - Bases de données