• Aucun résultat trouvé

Bases de donn´ees ´equivalentes `a un ensemble de litt´eraux de base

8.4 Sp´ecification d’un ´evaluateur de requˆetes

8.4.1 Bases de donn´ees ´equivalentes `a un ensemble de litt´eraux de base

D´efinition 8.4.1. Une base de donn´ees est une paire DB = hEDB, IDBi telle que EDB est un ensemble non vide et fini de litt´eraux de base positifs ou n´egatifs de LO et IDB est un ensemble fini et coh´erent de clauses de LO sans symbole de fonction.

On peut noter que les litt´eraux de EDB peuvent ˆetre positifs ou n´egatifs. IDB repr´esente les contraintes d’int´egrit´e de la base. Chaque base peut donc avoir ses propres contraintes d’int´egrit´e.

D´efinition 8.4.2. Soit DB = hEDB, IDBi une base de donn´ees. Soient a1, . . . , an

(respectivement P1, . . . , Pk) les symboles de constantes (respectivement les symboles de

pr´edicats) qui apparaissent dans les formules de EDB ∪ IDB. La base de Herbrand est l’ensemble de litt´eraux positifs ´ecrits avec les Pi et les aj.

Une interpr´etation de Herbrand de DB est une interpr´etation dont le domaine est {a1, ..., an}.

Un mod`ele de Herbrand de DB est une interpr´etation de Herbrand qui statisfait EDB∪ IDB.

D´efinition 8.4.3. Soient HM1, . . . , HMn les mod`eles de Herbrand de EDB ∪ IDB.

Soit L = {l : l est un litt´eral de la base de Herbrand tel que ∃ HMi ∃ HMj

HMi |= l et HMj |= ¬l}

La base de donn´ees DB = hEDB, IDBi est ´equivalente `a un ensemble de litt´eraux de base ssi pour toute conjonction satisfaisable l1∧ ... ∧ lm o`u ∀i ∈ {1, . . . , m} tel que li ∈ L

ou ¬li ∈ L, il existe i0∈ {1, . . . , m} tel que HMi0 |= l1∧ ... ∧ lm.

Exemple. Consid´erons DB1 = hEDB1, IDB1i avec EDB1 = {p(a)} et IDB1 = {¬p(x)∨

¬q(x), p(x) ∨ r(x)}. Les mod`eles de Herbrand de DB1 sont4 : {p(a)} et {p(a), r(a)}. On a

L = {r(a)}. On peut v´erifier que ¬r(a) est satisfait dans le premier mod`ele de Herbrand et que r(a) est satisfait dans le second. Donc DB1 est ´equivalente `a un ensemble de litt´eraux.

Consid´erons maintenant DB2 = hEDB2, IDB2i avec EDB2 = {p(a)} et IDB2 =

{¬p(x) ∨ q(x) ∨ r(x)}. Les mod`eles de Herbrand de DB2 sont {p(a), q(a)}, {p(a), r(a)}

et {p(a), q(a), r(a)}. On a L = {r(a), q(a)}. On peut v´erifier qu’aucun de ces mod`eles ne satisfont ¬q(a) ∧ ¬r(a). Donc DB2 n’est pas ´equivalente `a un ensemble de litt´eraux de

base.

Propri´et´e 8.4.1. Soit DB = hEDB, IDBi une base de donn´ees qui est ´equivalente `a un ensemble de litt´eraux de base. Soient l1, . . . , ln des litt´eraux de base de LO tels que

l1∨ ... ∨ ln n’est pas une tautologie. Alors,

EDB ∪ IDB |= l1 ∨ ... ∨ ln ssi ∃i0∈ {1...n} EDB ∪ IDB |= li0

Ce r´esultat assure que, dans une base de donn´ees ´equivalente `a un ensemble de litt´eraux de base, une disjonction de litt´eraux de base qui n’est pas une tautologie est d´erivable de la base de donn´ees ssi un de ces litt´eraux est d´erivable de la base de donn´ees. Cela implique qu’il n’y a pas de vraies donn´ees disjonctives d´erivables de ces bases de donn´ees.

8.4.2 Sp´ecification d’un ´evaluateur de requˆetes

Dans cette section, nous utilisons le m´eta-programme d´efini dans la section pr´ec´edente pour sp´ecifier un ´evaluateur de requˆete qui r´epond `a des requˆetes adress´ees `a plusieurs bases de donn´ees. Les r´eponses calcul´ees par l’´evaluateur sont les mˆemes que celles qui seraient calcul´ees par un ´evaluateur classique quand la requˆete est adress´ee `a une base de donn´ees obtenue en fusionnant plusieurs base de donn´ees avec une attitude majoritaire. Cependant, on remarquera que la fusion des bases de donn´ees n’est jamais calcul´ee.

Le m´eta-programme d´efini dans la section pr´ec´edente suppose que les bases de croyances sont des ensembles de litt´eraux propositionnels positifs ou n´egatifs. Consid´erer que les bases de donn´ees qui sont ´equivalentes `a un ensemble de litt´eraux de base nous permet de r´eutiliser le m´eta-programme : chaque litt´eral de base sera consid´er´e comme un litt´eral pro- positionnel. Cependant, nous devons ´etendre le m´eta-programme pour prendre en compte les clauses de IDB.

Extension du m´eta-progamme pour prendre IDB en compte

Nous notons h la fonction qui associe chaque clause de IDB avec un ensemble de formules de la fa¸con suivante :

h(l1∨ . . . ∨ ln) = {(¬l1∧ . . . ¬li−1∧ ¬li+1. . . ∧ ¬ln) → li, i ∈ {1, . . . , n}}

Dans ce cas, l’axiome (1) du m´eta-programme est remplac´e par les axiomes suivants : (1.1) EDB(db, l) si le litt´eral de base l appartient `a la partie EDB de la base de donn´ee db

(1.2) IDB(db, f ) si la formule f est dans h(c), o`u c est une clause de la partie IDB de db (1.3) EDB(db, l) → Bexp(db, l)

(1.4) IDB(db, (r → l)) ∧ Bconj(db, r) → Bexp(db, l)

(1.5) Bconj(db, nil)

(1.6) Bexp(db, l1) ∧ Bconj(db, r1) → Bconj(db, l1∧ r1)

Ces axiomes permettent de d´eriver l’ensemble des cons´equences de chaque base en tenant compte des contraintes d’int´egrit´e.

Propri´et´e 8.4.2. Soit db = hEDB, IDBi une base de donn´ees telle que IDB n’est pas r´ecursive. Soit l un litt´eral de base. Alors PROLOG prouve Bexp(db, l) ssi EDB∪IDB |= l.

Ce r´esultat assure que, si IDB n’est pas r´ecursive, l’axiome (1) peut ˆetre remplac´e par les axiomes (1.1), . . ., (1.6). Donc, en utilisant le th´eor`eme 8.1.2, si IDB n’est pas r´ecursive, le m´eta-programme d´efini pour les bases de croyances qui sont des ensembles de litt´eraux propositionnels peut ˆetre utilis´e dans le cas de bases de donn´ees du premier ordre qui sont ´equivalentes `a des ensembles de litt´eraux de base.

D´efinition des r´eponses

Nous allons utiliser deux types de questions. Nous d´efinissons tout d’abord les questions ferm´ees.

D´efinition 8.4.4. Soient db1, . . . , dbn n bases de donn´ees, chacune d’entre elles ´etant

« F est-il vrai dans la base de donn´ees obtenue en fusionnant db1, . . . , dbn » est d´efinie par :

– answer((db1∗ . . . ∗ dbn), F ) = OU I ssi PROLOG prouve B((db1∗ . . . ∗ dbn), F )

– answer((db1∗ . . . ∗ dbn), F ) = N ON ssi PROLOG prouve B((db1∗ . . . ∗ dbn, ¬F )

– answer((db1∗ . . . ∗ dbn), F ) =? sinon

On peut remarquer que nous utilisons une approche de type « monde ouvert ». Dans toute base de donn´ees (primitive ou obtenue par fusion d’autres bases), il peut exister une formule atomique F telle que ni F ni ¬F ne soient d´erivables. Ceci explique pourquoi la r´eponse ? peut parfois ˆetre retourn´ee. D’un point de vue op´erationnel, cela correspond au cas pour lequel les deux buts B((db1∗ . . . ∗ dbn), F ) et B((db1∗ . . . ∗ dbn), ¬F ) ´echouent en

temps fini dans PROLOG.

Nous d´efinissons maintenant les questions ouvertes.

D´efinition 8.4.5. Soient db1, . . . , dbn n bases de donn´ees, chacune d’entre elles ´etant

´equivalente `a un ensemble de litt´eraux. Soit F (X) un litt´eral ouvert. La r´eponse `a la question « quels sont les X qui satisfont F dans la base de donn´ees obtenue en fusionnant db1, . . . , dbn » est d´efinie par :

answer((db1 ∗ ... ∗ dbn), F (X)) = {A : tuple de symboles de constantes tel que

PROLOG prouve B((db1∗ ... ∗ dbn), F (A))}

8.4.3 Exemple

Consid´erons les trois bases de donn´ees suivantes :

db1 = hEDB1, IDBi, db2 = hEDB2, IDBi, db3 = hEDB3, IDBi

avec :

EDB1 = {etudiant(Jean), employe(Louis), self (P hilippe), self (Donald),

restaurant(Louis)}

EDB2 = {employe(P hilippe), employe(Louis), restaurant(Jean),

restaurant(Henri)}

EDB3 = {etudiant(Jean), employe(P hilippe)}

IDB = {∀x etudiant(x) → self (x), ∀x employe(x) → restaurant(x), ∀x ¬self (x) ∨ ¬restaurant(x)}

Les contraintes de IDB sont communes `a toutes les bases. IDB contient les contraintes suivantes : tous les ´etudiants mangent au self service, tous les employ´es mangent au res- taurant et soit on ne mange pas au self, soit on ne mange pas au restaurant.

On peut remarquer que chaque base de donn´ees est ´equivalente `a un ensemble de litt´eraux de base (ici tous les litt´eraux sont positifs) et que IDB n’est pas r´ecursive. Voila quelques requˆetes et les r´eponses g´en´er´ees par l’´evaluateur de requˆetes :

Est-ce que Jean est un ´etudiant dans la base obtenue en fusionnant db1, db2 et db3?

answer((db1∗ db2∗ db3), etudiant(Jean)) = OU I

Comme etudiant(Jean) est cru par la majorit´e des bases (db1 et db3), il est cru par le

Est ce que Jean n’est pas un employ´e dans la base obtenue en fusionnant db1, db2 et

db3?

answer((db1∗ db2∗ db3), ¬employe(Jean)) = OU I

Est ce que Donald est un ´etudiant dans la base obtenue en fusionnant db1, db2 et db3?

answer((db1∗ db2∗ db3), etudiant(Donald)) =?

La seule information que l’on a sur Donald est qu’il mange au self dans db1. On peut

donc juste dire que Donald n’est pas un employ´e, mais on ne sait pas s’il est un ´etudiant. Qui est ´etudiant dans la base obtenue en fusionnant db1 et db2?

answer((db1∗ db2), etudiant(x)) = ∅

Qui est ´etudiant dans la base obtenue en fusionnant db1, db2 et db3?

answer((db1∗ db2∗ db3), etudiant(x)) = {Jean}

Qui est un employ´e dans la base obtenue en fusionnant db1, db2 et db3?

answer((db1∗ db2∗ db3), employe(x)) = {P hilippe, Louis}

Qui mange au self service dans la base obtenue en fusionnant db1, db2 et db3?

answer((db1∗ db2∗ db3), self (x)) = {Jean, Donald}

Qui mange au restaurant dans la base obtenue en fusionnant db1, db2 et db3?

answer((db1∗ db2∗ db3), restaurant(x)) = {Louis, P hilippe, Henri}

Est-ce que est un ´etudiant dans la base obtenue en fusionnant db1 et db2?

answer((db1∗ db2), etudiant(Jean)) =?

8.5

Conclusion

Nous avons d´evelopp´e une logique modale qui permet de raisonner avec le r´esultat de la fusion de plusieurs bases de croyances. La logique M F poss`ede une axiomatique et est compl`ete et valide pour certaines formules int´eressantes. Nous nous sommes ´egalement int´eress´es `a des aspects d’implantation et nous avons d´evelopp´e en d´emonstrateur auto- matique pour M F .

L’extension du m´eta-programme servant de d´emonstrateur automatique pour M F `a des bases de donn´ees du premier ordre particuli`eres nous a ´egalement permis de sp´ecifier un ´evaluateur de requˆete. Remarquons que mˆeme si les bases pr´esent´ees en exemple n’uti- lisaient que des litt´eraux monadiques (i.e. on n’avait que des symboles de pr´edicats d’arit´e 1)), on peut utiliser cette approche avec des litt´eraux d’arit´e quelconque et pour des bases de donn´ees relationnelles quelconques. Nous allons voir dans le chapitre suivant que nous pouvons ´egalement utiliser cet ´evaluateur de requˆete pour fusionner les exigences ´emises par plusieurs agents.

Fusion d’exigences

Nous allons nous int´eresser dans ce chapitre `a la fusion d’exigences. Nous avons vu qu’un moyen de r´esoudre les conflits entre les diff´erents participants est de fusionner les exigences ´emises par ces participants pour proposer un seul ensemble d’exigences coh´erent. Bien sˆur, cette m´ethode peut sembler « radicale », mais on peut la voir comme un moyen de proposer un premier ensemble d’exigences aux participants. Libre `a eux ensuite de reformuler leurs exigences si cela ne leur convient pas.

Dans le chapitre pr´ec´edent, nous avons d´evelopp´e un ´evaluateur de requˆetes pour des bases de donn´ees qui implante une m´ethode de fusion majoritaire. Nous allons utiliser cet ´evaluateur pour fusionner des ensembles d’exigences, exprim´ees sans position ou avec position. Nous montrerons comment utiliser ´egalement l’´evaluateur d´evelopp´e par Cholvy dans [31] pour pouvoir affiner cette approche. Ces travaux ont ´et´e pr´esent´es dans [42] et [43].

9.1

Fusion simple d’exigences

Dans cette section, nous allons nous int´eresser `a la fusion d’exigences exprim´ees de fa¸con non ordonn´ee. Chaque ensemble d’exigences est mod´elis´e grˆace `a une base de donn´ees. Nous allons voir que nous pouvons mod´eliser les contraintes du domaine en utilisant les contraintes d’int´egrit´e de chaque base de donn´ees.