Bases de données déductives en pratique

Preview:

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Bases de données déductives en pratique

Par : Robert DenicourtMichael Glenn

Le 16 décembre 2002

16 décembre 2002 INF 7115 - Bases de données 2

Plan de la présentation

Survol théoriqueExemple du domaine médicalExemple du domaine de la gestion de

réseau

16 décembre 2002 INF 7115 - Bases de données 3

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)

16 décembre 2002 INF 7115 - Bases de données 4

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

16 décembre 2002 INF 7115 - Bases de données 5

Survol théorique

La force de la BDD

C’est le langage de programmation.

Prolog premier langage Made in Montréal

16 décembre 2002 INF 7115 - Bases de données 6

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

16 décembre 2002 INF 7115 - Bases de données 7

Domaine médical

Le processus de résolution de problème

16 décembre 2002 INF 7115 - Bases de données 8

Domaine médical

La conception du système DISI

La base de connaissance

La base faits

Le moteur d’inférence

16 décembre 2002 INF 7115 - Bases de données 9

Domaine médical

La base de connaissance

16 décembre 2002 INF 7115 - Bases de données 10

Domaine médical

Syntaxe des règles dans ILOG Rules

16 décembre 2002 INF 7115 - Bases de données 11

Domaine médical

Schéma de l’organisation du système DISI

16 décembre 2002 INF 7115 - Bases de données 12

Domaine médical

La base de faits

16 décembre 2002 INF 7115 - Bases de données 13

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

16 décembre 2002 INF 7115 - Bases de données 14

Domaine de la gestion de réseau

Types de données du MIB :ComposantesFonctions / Relations entre les

composantes

Grand volume de données+

Règles définissant les relations entre les données

Base de données déducive

16 décembre 2002 INF 7115 - Bases de données 15

Domaine de la gestion de réseau

SGR MIB

Requêtes / Réponses

SGR MIB

Requêtes / Réponses

SGR MIB

SGR MIB

Requêtes / Réponses

SGR MIB

SGR MIB

Centralisé Distribué

Hybride

16 décembre 2002 INF 7115 - Bases de données 16

Domaine de la gestion de réseau

Protocoles de gestion de réseauBasé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

16 décembre 2002 INF 7115 - Bases de données 17

Domaine de la gestion de réseau

Modélisation avec ERC+ (Entity-Relationship for Complex objects

16 décembre 2002 INF 7115 - Bases de données 18

Domaine de la gestion de réseau

Développé avec AditiSyntaxe 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).

16 décembre 2002 INF 7115 - Bases de données 19

Domaine de la gestion de réseau

cpu1 cpu2 cpu3

slotb slota slotb slota

device

cable_connection

a2a1

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

Les faits…

Relation Attributs

16 décembre 2002 INF 7115 - Bases de données 20

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

16 décembre 2002 INF 7115 - Bases de données 21

Domaine de la gestion de réseau

Exemple 1 : <- device_list(Device).

16 décembre 2002 INF 7115 - Bases de données 22

Domaine de la gestion de réseau

Unification : association de faits à une variable…

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

12

3

<- device_list(Device).Answer Set for device :cpu1cpu2cpu3

1

2

3

Règle correspondante trouvée

Évaluation des composantes de la règle

Unification des faits avec la variable

16 décembre 2002 INF 7115 - Bases de données 23

Domaine de la gestion de réseau

<- path(cpu1,cpu3).Exemple 2 :

16 décembre 2002 INF 7115 - Bases de données 24

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

1 2

3

<- path(cpu1,cpu3).True

1

2

3

Règle correspondante trouvée

Évaluation de la condition : cable_connection(cpu1, _, cpu3, _, _, _) -> Faux

Deuxième règle correspondante évaluée

4

5

4 5 Évaluation de la première condition : cable_connection(cpu1, _, Z, _, _, _) -> Z=cpu2 (True)

6

6 Vérification de la deuxième condition (appel récursif) : path(cpu2, cpu3) -> True

ET logique

Recommended