Raisonnement distribu´e dans un environnement de type Peer

publicité
Actes JNPC’04
Raisonnement distribué dans un
environnement de type Peer-To-Peer
P. Adjiman
P. Chatalic
F. Goasdoué
L. Simon
M.-C. Rousset
Résumé
Dans un système d’inférence peer-to-peer, chaque peer peut raisonner localement mais
peut également solliciter son voisinage constitué des peers avec lesquels il partage une partie
de son vocabulaire. Dans cet article, on s’intéresse aux systèmes d’inférence peer-to-peer dans
lesquels la théorie de chaque peer est un ensemble de clauses propositionnelles construites à
partir d’un vocabulaire local. Une caractéristique importante des systèmes peer-to-peer est
que la théorie globale (l’union des théories de tout les peers) n’est pas connue (par opposition aux systèmes de raisonnement fondés sur le partitionnement). La contribution de cet
article est double. Nous exposons le premier algorithme de calcul d’impliqués dans un environnement peer-to-peer: il est anytime et calcul les impliqués progressivement depuis le peer
interrogé jusqu’aux peers de plus en plus distant. Nous énonçons une condition suffisante
sur le graphe de voisinage du système d’inférence peer-to-peer garantissant la complétude de
notre algorithme. Nous présentons également quelques résultats expérimentaux prometteurs.
1 Introduction
R´ecemment, les syst`emes peer-to-peer ont fait l’objet d’une attention consid´erable li´e `a leur
architecture sous jacente, particuli`erement adapt´ee au passage `a l’´echelle des applications distribu´ee que l’on trouve sur Internet. Dans un syst`eme peer-to-peer, il n’y a aucun contrôle centralis´e ni aucune organisation hi´erarchique: chaque peer est ´equivalent en fonctionnalit´e et coop`ere
avec d’autres peers dans l’objectif de r´ealiser une tache collective. Les syst`emes peer-to-peer
ont ´evolu´e du simple syst`eme de partage de fichiers distribu´es (avec interrogation par mots cl´es)
comme Napster [13] et Gnutella [5] jusqu’aux syst`emes de gestion de donn´ees distribu´e ´evolu´e
comme Edutella [14] ou Piazza [8], qui offre un niveau s´emantique de descriptions des donn´ees
permettant l’expression de requêtes complexes pour extraire les donn´ees du syst`eme. Dans ces
syst`emes, la complexit´e du probl`eme de r´eponse `a une requête est directement li´e `a l’expressivit´e
du formalisme utilis´e pour mettre en relation les sch´emas des diff´erents peers via des correspondances s´emantique (mappings) [7].
Dans cet article, on s’int´eresse aux syst`emes d’inf´erence peer-to-peer dans lesquels chaque
peer peut r´epondre `a une requête en raisonnant sur sa th´eorie (propositionnelle) locale, mais
LRI, CNRS & Universit´e Paris-Sud – INRIA Futurs, Bˆatiment 490, 91405, Orsay Cedex, France
11
12
´egalement en posant des requêtes aux autres peers avec lesquels il est s´emantiquement reli´e via
un partage d’une partie de son vocabulaire.
Cet environnement englobe de nombreuses applications telles que les syst`emes d’int´egration
d’information peer-to-peer ou les agents intelligents dans lesquels chaque peer poss`ede sa propre
connaissance (sur ses donn´ees ou son domaine d’expertise) et une connaissance partielle des
autres peers. Dans ces conditions, lorsqu’un peer est sollicit´e pour ex´ecuter une tache de raisonnement, si il ne peut pas la r´esoudre localement dans sa totalit´e, il doit être capable de la d´ecouper
en sous taches `a distribuer aux peers appropri´e de son voisinage. Ainsi, ´etapes par ´etapes, la tache
initiale est d´ecoup´ee puis distribu´ee aux peers comp´etant pour en r´esoudre une partie. Les sorties de chaque sous taches doivent être ensuite recompos´es pour construire la sortie de la tache
initiale.
On s’int´eresse aux syst`emes d’inf´erence peer-to-peer dans lesquels la th´eorie de chaque peer
est un ensemble de clauses propositionnelles construites `a partir d’un ensembles de variables
propositionnelles repr´esentant son vocabulaire local. Chaque peer peut partager une partie de son
vocabulaire avec d’autres peers. Nous consid´erons la tache de raisonnement qui consiste `a trouver les consc´equences d’une certaine formes (par exemple des clauses ne contenant seulement
que certaines variables) pour une formule donn´ee en entr´ee exprim´ee en termes du vocabulaire
local d’un peer. Notons que d’autres taches de raisonnement comme la recherche d’impliquants
d’une certaine formes pour une formule donn´ee peut etre r´eduite par ´equivalence `a une tache de
recherche de consc´equences.
La contribution de cet article est double. Nous exposons le premier algorithme de calcul
d’impliqu´es dans un environnement peer-to-peer: il est anytime et calcul les impliqu´es progressivement depuis le peer interrog´e jusqu’aux peers de plus en plus distant. Nous ´enoncons une
condition suffisante sur le graphe de voisinage du syst`eme d’inf´erence peer-to-peer garantissant
la compl´etude de notre algorithme
Il est important de mettre en valeur la difference entre le probl´eme de raisonnement distribu´e
qu’on ´etudie dans cet article et le probl`eme de raisonnement sur des th´eories partitionn´ee obtenus par d´ecomposition ([3, 1]). Dans ce dernier probl`eme, une th´eorie centralis´ee (relativement
grande) est donn´ee, et on exploite sa structure afin de calculer la meilleure facon de la d´ecouper
dans l’objectif d’optimiser un algorithme de raisonnement travaillant sur des th´eorie partitionn´ee.
Dans notre probl`eme, la th´eorie compl`ete (i.e., l’union de toutes les th´eories locales) n’est pas
connue et la partition est impos´ee par l’architecture peer-to-peer elle meme. Comme nous allons
l’illustrer sur un exemple, (Section 2), les algorithmes fond´es sur la transmission de clauses entre
partitions (dans l’esprit de [1, 3, 4]) ne sont pas appropri´es pour notre probl`eme de recherche
de consc´equences. Notre algorithme d´ecoupe les clauses si elle contiennent des variables appartenant `a des vocabulaires de differnents peers. Chaque morceau d’une clause d´ecoup´ee et
ensuite transmis `a la th´eorie concern´ee pour calculer ses consc´equences. Les consc´equences de
chaque morceau doivent etre recompos´es pour constituer les consc´equences de la clause qui a ´et´e
d´ecoup´ee.
L’article est organis´e de la mani`ere suivante. La section 2 d´efinie formellement le probl`eme
d’inf´erence peer-to-peer auquel on va s’interesser. Dans la section 3, nous d´ecrivons un algorithme distribu´e de calcul de consc´equences et nous ´enoncons ses propri´et´ees. La section 4 d´ecrit
quelques r´esultats exp´erimentaux. Un ´etat de l’art est r´esum´e dans la section 5. On conclue sur
une br`eve discussion dans la section 6.
13
2 Inf´
erence peer-to-peer: d´
efinition du problème
Un syt`eme d’inf´erence peer-to-peer (P2PIS) est un r´eseau de th´eories appartenant `a des peers.
Chaque peer est un ensemble fini de formules propositionnelles du langage . On consid`ere
que est le langage des clauses sans r´ep´etitions de litt´eral que l’on peut construire `a partir d’un
ensemble fini de variables propositionnelles , appel´e le vocabulaire de .
Les peers peuvent etre s´emantiquement conn´ect´es en ayant des variables en commun dans
leur vocabulaire respectifs, appel´es variables partaǵees. Dans un P2PIS, aucun peer n’a la connaissance de la th´eorie globale du P2PIS. Chaque peer connait seulement sa th´eorie locale et sait qu’il
partage certaines variables de son vocabulaire avec d’autres peer du P2PIS (son voisinnage ). Il
ne connait pas necessairement tout les peers avec lesquelles il partage des variables. Quand un
nouveau peer se connecte au P2PIS, il se d´eclare simplement aupr´es des peers avec lesquelles il
vaut partager des variables. Un P2PIS peut etre formalis´e par un graphe de voisinage.
D´
efinition 1 (Graphe de voisinage) Soit une famille de théorie sous formes
. Un graphe de
clausale construites sur leurs vocabulaires respectifs , soit ')*') est
voisinnage est un graphe !
"$# VOIS ou est l’ensemble.-des
et VOIS %&(
/)0 noeuds
2 4 et + 0 76 98 .
VOIS , 135
un ensemble d’aretes etiquetées tel que pour chaque "+,# #
-
-
exprime que les peers
et
tous les deux qu’ils
Une arete ´etiquet´ee :+;# #
> savent
partagent la variable + . Pour un peer et un litt´eral < , VOIS :<=#
d´enote l’ensemble de peers
partagant la variable < avec .
Pour chaque th´eorie , on consid´ere un sous ensemble de variables cibles @ ? %A ,
supposé representer les variables d’intéret pour l’application, (e.g., les faits observables dans
une application de diagnostic basé sur les modèles, ou les classes representant les données dans
une application d’intégration d’informations). Pour une clause donnée (appelée la requete) en
entrée à un peer du P2PIS, l’objectif est de calculer toutes ses conscéquences (appelées r´eponses)
dont les variables appartiennent au langage cible.
Il est important de remarquer que meme si la requete est exprimé en termes du vocabulaire
local au peer intérrogé, les réponses attendues peuvent elles contenir des variables cibles de
différents peers. Les langages cibles manipulés par notre algorithme sont définis en termes de
variables cibles et nécessitent qu’une variable partagée ai le meme statut de cible dans tous les
peers qui la partage.
Définition 2 (Langage Cible) Soit !
"$# VOIS un P2PIS, et pour chaque peer , soit @?
- B0 VOIS alors + 0 @?C ssi + 0 D?E 8 .
l’ensemble de ses variables cibles tel que si :+;# #
> comme
Pour un sous ensemble F
de peers de , on définit son langage cible ?G1HI<KJL
KF
le
M langage des clauses (incluant la clause vide) construites avec uniquement des variables de
NOP D? .
Parmi les réponses possibles, on distingue les r´eponses locales, faisant intervenir uniquement les variables locales du peer intérrogé, les r´eponses navigationnelles, faisant intervenir les
variables d’un seul peer, et les r´eponses d’int´egration faisant intervenir des variables cibles de
plusieurs peers.
Définition 3 (Impliqués premiers propres par rapport à une théorie) Soit
une théorie sous
forme clausale et Q une clause. Une clause R est dite:
S impliqu´e premier de Q par rapportà ssi UTVQPWYX R et pour tout autre clause R[Z , si
!T/QPW\X ]R Z et R Z X ]R alors R Z;^ R .
S impliqu´e premier propre de Q par rapportà ssi c’est un impliqué premier de Q par rapport
à mais que X 2_R .
14
Définition 4 (Problème de calcul de conscéquences) Soit de théories
I et soitune famille
sous forme clausale ayant pour langage cible respectif (D?C VOIS un
"
$
#
F . Le probl`eme de calcul de consc´equence est, pour un peer et une clause Q 0 M donnés, de calculer l’ensemble des impliqués propres de Q par rapport à
construits à
partir de ?E1H <:JL
.
L’exemple qui suit illustre les principales caractéristiques de l’algorithme distribué présenté
dans la section 3.
@
Exemple 1 Considerons 4 peers. d´ecrit un tour op´erateur. Sa th´eorie exprime que ses actuelles
destinations lointaines ( ) sont soit le Kenya ( ) soit la Chilie ( ).
Ces destinations lointaines sont des destinations internationnales ( ) et on´ereuses ( ) Le peer
concerne
les formalit´es administratives et exprime qu’un passeport ( ) est requis pour les
s’interesse aux conditions sanitaires des voyageurs. Il exprime
destinations internationales.
qu’au Kenya, la vaccination contre la fievre jaune ( ) est fortement recommand´e et que de
) lorsque les logements se font en
fortes pr´ecaution doivent etre prises contre le paludisme (
bungalow ( ).
d´ecrit les conditions de logement pour les voyages: bungalow pour le Kenya et hotels
est requise,
( ) pour la Chilie. Il exprime ´egalement que lorsque la protection
). anti-paludisme
les logements sont ´equip´es de protections anti-moustiques (
It also expresses that when
anti-paludism Les variables partag´es ´etiquettent les aretes du graphe de voisinage (Figure 1) et
W and
les variables cibles sont d´efinis par: @? \ T W , D?G T W , D?E TY# 7#
D?E"! T$##[# # W .
$&%(' LL )) OK )
'
I
% ' I)
P
C
' L)
I
K
%(' KB )) FJK )
' '
K,C
! % '' KC ) ) BH
' PAL ) AM
PAL
B,PAL
F IG . 1 – Graphe de voisinage pour l’exemple du tour opérateur
Supposons que la requete est L est pos´ee au peer . Les consc´equences locales qui peuvent
etre d´eriv´es par un raisonnement local sur sont O,I et K * C. O est immediatement retourn´e
comme une r´eponse locale puisqu’il est dans ?G1HI<KJL
. Puisque I est partag´e avec , il est trans
mis comme requete `a , qui produit la clause P. Puisque P est dans ?E1HI<:JL
, c’est une r´eponse
navigationnelle de la requete initiale. La clause K * C est faite de variables partag´ees. Notre algorithme d´ecoupe de telles clauses et transmet chaque composant (ici K et C) s´eparement au
partagant respectivement K et C avec @ . C est ainsi transmis `a , qui retourne
voisinage de
la clause H pour seule r´eponse. De la meme mani`ere, la clause K est transmise (independem and (les deux partangant la variable K avec @ ). produit localement
ment) aux peers
il est retourn´e comme une r´eponse pour K. Mais B
0
la clause clause B. Comme B ?E1HI<:JL
est ´egalement partag´ee. Elle est donc transmise `a , qui produit en retour la clause + K * PAL.
Cette nouvelle clause est d´ecoup´ee en deux: + K and PAL. est int´errog´e pour PAL et retourne
AM comme seule r´eponse pour PL. est interrog´e pour calculer les impliqu´es de + K, pendant
que la requete complementaire K est toujours en cours de traitement.
15
Nous verrons dans la Section 3 que ceci est pris en compte dans notre algorithme grace `a
un historique qui garde trace de la branche de raisonnement en cours: lorsqu’une meme branche
de raisonnement contient deux litt´eraux oppos´es, elle est coup´ee et retourne comme r´eponse.
Dans notre exemple, la r´eponse produite par pour + K est donc , qui est renvoy´e en retour `a
. peut alors combiner les r´eponses obtenues par les deux branches de raisonnement r´esultant
du d´ecoupage de + K * PAL, `a savoir AM retourn´e par pour PAL, et retourn´e par pour
+ K. Ainsi produit AM comme r´eponse pour + K * PL. envoie cette r´eponse en retour `a
en tant
que r´eponse `a B.
transmet
`a chacune des r´eponses B, PAL et AM qu’il `a calcul´e pour , comme r´eponses
`a K. On ne d´etaillera pas la branche de raisonnement correspondant `a la propagation de K dans
, qui ajoute une nouvelle r´eponse, FJ, `a l’ensemble des r´eponses obtenues par pour K.
Une fois produites, ces r´eponses sont combin´es avec la seule r´eponse pour C (i.e., H). Ainsi,
l’ensemble des r´eponses produites pour la requete initiale est le suivant:
T H * B # H * PAL # H * AM # H * FJ W . Parmi ces r´eponse, il est important de remarquer que
certaines d’entres elles (e.g., H * Y) font intervenir des variables cibles de differents peers. De tels
impliqu´es ne peuvent etre obtenus par des algorithme fond´es sur le partiotionnement comme dans
[1]. Ceci est rendu possible grace `a la strat´egie de d´ecoupage/recombinaison de notre algorithme.
3 Algorithme distribu´
ee de calcul de consc´
equences
La version orientée message de notre algorithme est décrite dans la section 3.2. Nous montrons qu’il termine et qu’il calcul les même résultats que l’algorithme récursif décrit dans la
section 3.1.
Pour les deux algorithmes, nous utiliserons les notations suivantes:
:QL# >
– pour un littéral Q , J <:+
entre Q et une clause de ,
désigne l’ensemble de clauses obtenues par résolution
– pour un littéral Q , Q désigne la négation de Q ,
désignent la disjonction disjonction de
– pour une clause d’un peer , F (resp. littéraux d dont les variables sont partagées (resp. non partagée) avec un quelquonque
voisin de . Ainsi, la condition F
exprime le fait que ne partage aucune de ses
varibles avec son voisinage,
– un historique 71 est une liste de triplets K<# # (avec < un littéral, un peer, et une
# 7 # #E
K< # # # K< # # représente une branche
clause). Un historique K< #
de raisonnement engendrée par la propagation du littéral < via le peer , et le découpage
0
est
de la clause : pour chaque 1
, est un conscéquence de < et , et <
un littéral de que l’on propage dans
,
–
'
!"# %$ #& ( '*)))+',( #&
T *
'10 3N 24(50
est l’opérateur de distribution sur des ensembles de clauses:
=
* X Y0 # # 50 W . Si TV< # # < LW , on utilisera la notation
pour désigner .
))) - ( (
(60 7'8)))'9(50;:
/.
3.1 Algorithme r´
ecursif de calcul de consc´
equences
à Soit $# VOIS un P2PIS. :QL# #
calcule les impliqués du littéral Q par rapport
, commençant par le calcul des conscéquences de Q par rapport à , puis se laissant guider
16
par la topologie du graphe de voisinage du P2PIS. Pour garantir la terminaison, il est necessaire
de garder la trace des littéraux déja calculés par les peers. Ceci est fait par l’algorithme récursif
5
KQL# F # @# 71 , avec 1 l’historique de la branche de raisonnement terminant par la
propagation de Q dans F
(un ensemble de voisin du dernier peer ajouté à l’historique).
Algorithme 1: Algorithme r´ecursif de calcul de consc´equences
(QL# # )
(1)return :QL# T W# @#
(QL# )F 0 # @# 71 )
1 return
(1)si ( QP# #
3W 0[
0 F T t.q.
(2)sinon si il existe
ou pour chaque
M Q
(3)sinon LOCAL TVQPW@U
NOP BJ <"+
:QL# >=
0
(4)si
LOCAL return T 3W
0 LOCAL X 3
)0 ?E1HI<KJP
F > W
(5)sinon LOCAL T
0
, return LOCAL
(6)si pour chaque
LOCAL , F (7)sinon RESULTAT0 LOCAL
2
(8) pour tout
LOCAL t.q. F 0
J <"+ :QL# >
(9)
soit le peer de F
t.q.
(10) \Z PT+Q * VW , CZ
"\Z:# ACQ
0 F (11) pour tout litt´eral <
:<# ACQ K < # > # ZK# :QL#
(12)
REPONSE :< (13) COMBDISJ NO
REPONSE :< ]T3
W
(14) RESULTAT RESULTAT COMBDISJ
(15) return RESULTAT
+
+
' %
' 0
Théorème 1
(LQ # # 0 F
:QL# # )0 71
,
return
# X 1 est correct et termine.
Preuve:
# 7 # #/
:< # P# .
Correction: Si l’historique 71 n’est pas vide, il est de la forme :< #
que
Nous prouvons par recurrence sur le nombre d’appel recursif de (QL#F # D# 1
chaque résultat retourné par ( QL# F # @# 71
est un impliqué de TVQL# < #
# < W relatif
au langage cible. S = : l’une des conditions de la ligne (1), (2), (4) ou (6) est satisfaite.
!
– Si il existe un pair
gorithme retourne
_[TVQL# < # # <9W
0 F
Si il existe
[0 0
1 ou
tel que QL# #
LOCAL: dans les deux cas, l’al(respectivement dans les lignes (1) et (4)) qui est un impliqué de
relatif au language cible.
# 0 7 1 : dans cas un
/T QL# < # # <9W .
0
– Dans le dernier cas (ligne (6)), LOCAL , et c’est trivialement un impliqué de M
T/QL# < # # <9W (en tant que resolvant de Q et d’une clause de NOP ), et il est relatif au
language cible.
S Supposons l’hypothése de récurrence vrai pour , et soit ! $# VOIS un P2PIS tel que
(QL# F # @# 71 necessite
appel récursif pour términer. Soit un résultat retourné
par ( QL# F # @# 71 .
0 LOCAL, il est trivialement un impliqué de T/QL# < # # < W relatif au language
– Si –
0
0
tel que Q
ou pour chaque
F , KQL#
résultat vide est retourné (ligne (2)) puisque Q est déja dans _
cible.
17
0 2 LOCAL, il est obtenu à la ligne (13): il existe une clause = F * telle que
F _
<K< * ))) * <K< et>> * )))#* &* " , ou chaque est un résultat retourné par
Par hypothése de récurrence (le
5
:<K< # VOIS :<K< # # CZ #
:QL# # X 1 (ligne
>(12)).
Z
nombre d’appel récursif de 5
:<K< # VOIS K<:< #
#
#
KQL# # X 71 pour chaque <:< est inferieur à ), chaque est un impliqué de PT+Q * W@[T/<K< # QL# < # # <9W realtif au
language cible. Ainsi, *%))) * est un
impliqué de PT +Q *VW TVF
# QL# < # # < W ,
relatif au language cible. Puisque est relatif au language cible et que F *
3
, (i.e, * ))) * *3
) est relatif
au language cible , et c’est un impliqué de
PT +Q * VWG T # QL# < # # < W . Puisque 0 LOCAL, est un impliqué de TVQPW , et donc
est un impliqué de _!T/QL# < # # < W relatif au language cible.
Terminaison: à chaque appel récursif, un nouveau triplet /<# # est ajouté a l’historique. Si
– Si l’algorithme ne terminait pas, l’historique serait infini, ce qui est impossible puisque le nombre
de peers, de littéraux et de clauses dans un P2PIS est fini.
Le théoréme suivant énonce une condition suffisante pour que l’algorithme soit complet.
Théorème 2 Soit & "$# VOIS un P2PIS dont toutes les théories locale ont été saturées par
0 . 6 . il existe un chemin entre et Z in dont
résolution. Si pour chaque , Z et +
0 ) , (QL# # calcule
toutes les aretes sont etiquetée par + , alors pour chaque littéral Q
tout les impliqués propre de Q par rapport à relatif à ? J " .
Preuve:
S = : l’une des conditions des lignes (1), (2), (4) ou (6) est satisfaite.
!
– If either there exists a peer such that
is the only prime implicate of Q w.r.t (respectively Line (1) and Line (4)).
0
0 71 or 0 LOCAL: in both cases,
Q # # Y
TV< # # <9W and is returned by the algorithm
0
0]
0 – Si il existe
ou pour chaque
F tel que Q
F , :QL# #
1 : dans ce
cas, tout les impliqués premiers de Q par rapport à 5T/< #
sont des impliqués
#
<
9
W
premiers de UTV< #
# < W . Ainsi, l’ensemble des impliqués premiers propres de Q par
rapport à _ TV< #
# < 9W est vide: il est bien retourné par l’algorithme (ligne (2)).
0
– Si pour chaque
F alors chaque resolvant de Q par rapport à n’a pas de variables
partagé avec aucun des voisins de : si verifie la propriétée énoncée dans le théoréme,
cela signifie que chaque impliqués premier de Q par rapport à ne partage pas de variables avec aucune autre théorie de .
D’aprés le lemme 1, l’ensemble des impliqués propres de Q par rapport à 5(TV< #
# < 9W
est inclus dans LOCAL, et donc chaque impliqué premier propre de Q par rapport à T/< # # < W , qui est dans le language cible, est retourné par l’algorithme (ligne(6)).
S
Supposons l’hypothése de recurrence vrai pour , et soit "$# ACQ un P2PIS
respectant la propriétée énoncée dans le théoreme et tel que ( QL# F # @# 71
necessite
appels récursifs pour términer. Soit R un impliqués premier propre de Q par rapport à
_!T/< # # < W , qui est dans le language cible. Montrons que R 0 (QL#F # D# 1 .
0
donné, alors R
– Si R est un résolvant of Q par rapport à un de F
retourné par l’algorithme si il est dans le language cible.
LOCAL
et il est
18
– Si R n’est pas un résolvant de Q par rapport à un de F
donné, alors d’aprés
le lemme
# # < 9W M
1, soit Q partage ses variables avec
des
clauses
dans
, soit
/
T
<
N
O
M
il existe une clause +Q M *
dans NOP
telle que +Q*
a des variables partagées
avec _!T/< #
# < W NOP et R est un impliqué premier propre de par rapport à
PT+Q * W) T/QL# < # # < W . Ainsi, si les variables non partagées de sont des varibles
cibles, participe à une itération de la boucle de la ligne (8). Si verifie la propriétée
énoncée dans le théorème, CZ la verifie aussi.
Par hypothése de récurrence, (le nombre d’appels récursif necessaire pour obtenir REPONSE :<
0 F K< , REPONSE K< contient l’ensemble des
à la ligne (12) est inférieur à ),pour chaque <
impliqués premier propres de < par rapport à PT+Q * VW!T/QL# < #
# < 9W , qui sont dans
le language cible. Nous appliquons maintenant le lemme 2 pour affirmer que VR H(1 4 ,
qui est calculé à la ligne (13), contient l’ensemble des impliqués premiers propres de par
# < W , qui sont dans le language cible, et en particulier
rapport à LT +Q * VW T/QL# < #
R .
%
Lemme 1 Soit un ensemble de clauses et R un impliqué premier propre de Q par rapport à .
Soit Z@%
saturée par résolution telle qu’elle contienne les clauses partagant la variable de
Q . Si R est un impliqué premier propre de Q par rapport à , alors:
– soit R
est un impliqué premier propre de Q par rapport à
– soit la variable de Q est partagée dans des clauses de
%
Z,
Z,
– soit il existe une clause +Q *
de Z tel que a des variables partagées avec des clauses
de Z et R est un impliqué premier propre de par rapport à PT+Q * VW T/QPW .
%
Preuve:
Soit R un impliqué premier de Q par rapport à . Si R est différent de Q , il existe une clause
+Q * dans telle que R est un impliqué premier de par rapport à PT+Q * VW!T/QPW .
%
%
– Si une telle clause n’existe pas dans
partagée dans des clauses de Z .
Z , elle existe dans
Z
et donc la variable de Q est
– Si il existe une clause +Q *
in Z telle que R est un impliqué premier de par rapport à
PT+Q * VW TVQPW , et R n’est pas un impliqué premier de Q par rapport à Z , alors pour
chaque preuve de R il existe forcement une clause /Z dans Z avec qui, soit Q soit +Q *
devra faire l’objet d’une résolution. Donc soit Q soit a des variables partagées avec des
clauses de Z .
%
) ))
Lemme 2 Soit un ensemble de clauses, et soit ! < *
* < une clause. Pour
chaque
impliqué premier propre R de par rapport à , il existe R #
tel que R ^ R *
=
#
R
*R ,
0
et pour chaque 1
, R est un impliqué premier propre de < par rapport à .
# )))
Preuve:
Soit R un impliquée premier de par rapport à . Pour chaque
littéral < , soit ,
:< un en
semble de modèles de qui affecte < à vrai. Si ;
K< , cela signifie que est le seul
19
impliqué premier propre de < par rapport à . Pour chaque 1 tel que ,
:<
2 , chaque
modèle de ,
:< est un modèle de [T VW , et donc un modèle de R ; par conscéquent, R est
un impliqué premier propre de (TV< W , et, par définition d’un impliqué premier propre, il existe
X ]R . Par conscéquent, il existe
un impliqué premier propre R de < par rapport à tel que R
0
, R est un impliqué premier
R # #=R tel que R *
*(R X _R , et pour chaque 1
propre de < par rapport à (R pouvant etre ). Puisque $T/< *
#* < W X ]R * *>R *U< par rapport à , on a necessairement
, et R est un impliqué premier propre de < *
R ^ R * *YR .
# )))
)))
)))
)))
)))
3.2 Algorithme “orient´
e message” de calcul de consc´
equences
Dans cette section, nous présentons le résultat de la transformation du précédent algorithme
en une version distribuée orientée message de l’algorithme de calcul de conscéquence. L’algorithme est implanté localement dans chaque pair. Il est composé de trois procédures. Chacune
d’elle peut etre déclanchée par l’arrivée d’un message.
La procédure R ECEPTION M ESSAGE R EQUETE est déclanchée par la récéption d’un mes
sage J/QGJ J RU
E+ LJ # J J/+PJ # JVQ,J JP# 1 I# < envoyé par le pair E+ LJ au pair
J J/+LJ qui execute la procedure: a la demande de E+ J , avec qui il partage la variable de < , il traite le littéral < . La procedure R ECEPTION M ESSAGE R EPONSE est déclanchée
par la récéption d’un message J /J RU
E+ LJ # J J/+PJ # J /JP# 1 I# envoyée par
le pair E+ J au pair J J/+PJ qui execute la procedure: il traite la réponse (qui est
une clause dont les variables sont des variables cibles) envoyé par E+ LJ pour le littéral
< (qui est le dernier à avoir été ajouter dans l’historique) ; cette réponse doit etre combinée
avec les réponses des autres litteraux apparaissant dans la meme clause que < . La procédure
R ECEPTION M ESSAGE F INAL est déclanchée par la récéption d’un message ,1 P<9RU
E+ J #
le pair E+ LJ avertit le pair J J/+PJ que le calcul des réponses pour le littéral < (le dernier a avoir été ajouté dans l’historique) est términé. Ces procedures exploitent deux structures
stocke les réponses issues de
de données stockées localement sur chaque pair: REPONSE K<# 71
la propagation de < à travers la branche de raisonnement correspondant à 1 ; FINAL :QL# 1
vaut vrai quand la propagation de Q à travers la branche de raisonnement correspondant à 1
est términé. Le raisonnement est amorcé par l’utilisateur (que l’on considére comme un pair par
ticulier appelé 1<"1 J ) envoyant à un pair donné le message R*
1<:1 J # # QGJ G# #
qui déclanche la procédure R ECEPTION M ESSAGE R EQUETE "R*
J # # QGJ G# # Q
qui est
localement exécuté par . Dans la description des procédures, puisqu’elles sont executées loca
lement sur le peer recevant un message, nous noterons V1 le pair receveur du message.
Le théoréme suivant assure deux résultats importants: premierement, l’algorithme distibué
orienté message calcul les meme resultats que l’algorithme de la section 3.1, et donc, est complet
sous les meme conditions que dans le theoreme 2 ; deuxiemement, l’utilisateur est avertit de la
terminaison quand elle a lieu, ce qui est crucial dans le cadre d’un algorithme anytime.
( ( ( ( ( ( ( 1 ( J J/+PJ #,1
L<# 1I#=+ P1 1 Q ,
Théorème 3 Soit le résultat retourné par KQL# # . Si recoit de l’utilisateur le message
R*
1 <:1 J # # JVQGJ JP# # Q , alors le message RU
# 1<: 1 J # J /J# KQL# # # sera
produit. Si est le dernier resultat retourné par :QL# # , alors l’utilisateur sera avertit de
la terminaison par un message R*
#
1<"1 J #,1 L<# KQL# # + P1 #=+ P1 .
1 1 5
KQL# F # @# 71 Preuve:
S = : L’une des conditions des lignes (1), (2), (4) ou (6) de l’algorithme !
20
Algorithme 2: Proc´edure orient´e message pour le traitement de requete
R ECEIVE R EQUETE M ESSAGE(RU
E+ LJ # V1# JVQGJ JP# 71 I# Q )
0
(1) si Q # #
1
(2) envoie RU
V1 # E+ LJ # J /JP# : QL# V1 # X 1 # (3) envoie RU
V1 # E+ LJ #,1 L<# KQL# V1#=+ 1 X 1
#=+ P1
0 V1 or KQL# V1# 0 1
(4)sinon si Q
(5) envoie RU
V1 # E+ LJ #,1 L<# KQL# V1#=+ 1 X 1
#=+ P1 (6)sinon
J <:+PJ KQL# V1 (7) LOCAL V1 T/QPW
0
V1
(8) si
LOCAL /JP# : QL# V1# X 1 # (9)
envoie RU
V1# E+ J # J #=+ P1
(10) envoie RU
V1 # E+ LJ #,1 L<# KQL# V1#=+ 1 X 1
(11) sinon
0 LOCAL V1 X D0 ?E1HI<:JL
V1 W
(12) LOCAL V1 T
0
V1 # F
(13) si pour chaque
LOCAL 0
(14)
pour tout
LOCAL V1 (15)
envoie R*
V1# E+ J # VJ JP# KQL# V1# X 1 # (16)
envoie RU
V1# E+ J #,1 L<# KQL# V1#=+ P1 X 1
# + P1
(17) sinon
0 LOCAL V1 (18)
pour tout
(19)
si F JP# KQL# V1# X 1 # (20)
envoie R*
V1# E+ J # VJ (21)
sinon
0 F (22)
pour tout
litt´
eral < 0
?E1HI<:JL
V1 (23)
si <
V1 # X 1 " T/<W
(24)
REPONSE :<=# :QL#
(25)
sinon
V1 # X 1 " (26)
REPONSE :<=# :QL#
(27)
FINAL :<=# :QL#
V1# X 71 " 0
(28)
pour tout
VOIS :<=# V1
(29)
envoie R*
V1# [# JVQ,J JP# :QL# V1# X 1
#<
( % ( ( ( ( ( 4
( ( ( Algorithme 3: Message passing procedure for processing reponses
/JP# 1 I# )
R ECEIVE R EPONSE M ESSAGE(RU
E+ J # V1# J Z # E+ J # Z # K QL# V1# X 1 Z
(1) 1 est de la forme
:< REPONSE
(2)REPONSE :<KZ"# 71
K<:ZK# 1 T PW
(3)RESULTAT NO
REPONSE :<=# 1 ]T * PW
(4)si 1 Z , 1<"1 J sinon le premier pair Z de 71
0 RESULTAT
(5)pour tout
(6) envoie RU
V1 #
# VJ JP# KQL# V1# X 1 Z # ( ( ' 0
'
0
1 Z
est satisfaite. Nous avons montré dans la preuve du théorème 2 que si les conditions des lignes
(1) et (4) sont satisfaites, est le seul résultat retourné par l’algorithme. La condition de la ligne
correspond à la condition de la ligne (1) de l’algo(1) de l’algorithme :QL# F # @# 71
rithme RECEPTIONMESSAGEREQUETE(R*
KF # # JVQ,J J , 71 I# Q ) pour chaque de F , qui a
déclencher l’envoie d’un message R*
#F# J /JP# : QL# # X 71 # (ligne (2)) et d’un mes
sage message RU
# F#,1 L<=# :QL# # + P1 X 71
#=+ P1 (ligne(3)). Si la condition de la ligne (4)
21
Algorithme 4: Message passing procedure for notifying termination
R ECEIVE F INAL M ESSAGE(R*
E+ J # V1 #,1 P<=# 1 I# + P1 )
(1) 1 est de la forme :<KZ # E+ J # + P1 #/
:QL# V1# X 71 Z
+ P1
(2)FINAL :<KZ:# 1
0
+ P1
(3)si pour chaque
< F , FINAL K<# 1
(4) si 71 Z 1<"1 J sinon le premier peer Z de
(5) envoie RU
V1 #
#,1 L<=# :QL# V1# + P1 X 71 Z #=+ 1
0 F (6) pour tout <
V1# X 1 =Z " (7)
REPONSE :<=# :<=# E+ J # # :QL#
( ( 1 ( 1=Z
M
>
de l’algorithme 5
KQL# F # @# 71
est satisfaite, puisque LOCAL est NOP LOCAL , il
0 F tel que 0 . Cette condition
existe
correspond à la condition de la ligne (8) de l’algo
rithme pour RECEPTIONMESSAGEREQUETE(RU
F# # J/QGJ JP# 1 I# Q ), qui a déclanché l’en
voie d’un message R*
# F # J /JP# :QL# # X 1 # (ligne (9) et d’un message RU
# F#,1 L<=# :QL#
(ligne (10)). La condition (2) de l’algorithme 5
:QL#F # D# 1
, dans laquelle aucun résultat
n’est renvoyé (voir preuve de Théorème 2), correspond à la condition de la ligne (4) de l’algo
0 F , qui
rithme RECEPTIONMESSAGEREQUETE(R*
KF# # JVQ,J JP# 1 I# Q ), pour chaque
a seulement déclanché l’envoie d’un message final (ligne (5)). Finalement, si la condition de
la ligne (6) de l’algorithme 5
KQL# F # @# 1
verifiée, est necessairement un ele0 F tel que est
0 LOCAL
> . La condition de la ligne
ment de LOCAL, i.e., il existe
(6) de l’algorithme 5
:QL#F # D# 1
correspond à la condition de la ligne (13) dans
RECEPTIONMESSAGEREQUETE(R*
KF # # JVQGJ JP# 71 I# Q ), qui a déclanché l’envoie de tous les
> (ligne (15)), et
/JP# :QL# # X 1 # , avec une clause
messages R*
#F# J de LOCAL JP# KQL# # X 1 # . Il a également déclanché l’envoie en particulier le message RU
# F# VJ d’un message final (ligne (16)) por . Si est le dernier resultat retourné par 5
KQL# F # @# 71
,
0 F .
de tels messages finaux ont été envoyé par chaque
S Supposons l’hypothése de récurrence vrai pour , et soit ! "$# ACQ un P2PIS tel que
(QL# F # @# 71 necessite appels recursif pour terminer.
# + P 1 X 71 #=+ P1 0
– Si 0
( n’étant pas le dernier résultat retourné par l’algorithme) il existe
F tel que LOCAL > , et est l’une des clauses participant à l’itération de la boucle
de la ligne (18) de l’algorithme RECEPTIONMESSAGEREQUETE(RU
F# # VJVQGJ J# 71 I# Q ),
et verifiant la condition de la ligne (19), qui a déclanché l’envoie du message R*
#F# J /JP#
(ligne (20)).
0
LOCAL
0
0
)))
>
:QL# # X 1 # F et une clause < * * <*3
de LOCAL tel que
– Si 2 LOCAL, il existe
participe à l’itération de la boucle de la ligne (8) de l’algorithme 5
:QL# # D# 1
,
et est un élément *
* * de NO
REPONSE :< T3
W calculé>à la ligne
(??), ou chaque REPONSE :< est obtenu comme un résultat de 5
:<=# VOIS :<#
# Z # :QL#
(ligne (13)), qui necessite moins de appels recursive. Par récurrence, pour chaque littéral
un message
< 0 F , il existe 0 VOIS K< # > tel que envoie
R*
# # J /JP#
# JVQ,J JP# :QL# # X 1 # < . La boucle de la ligne (11)
si il a recu le message RU
#
de l’algorithme 5
KQL# F # , 71
correspond à la boucle de la ligne (22)de l’algo
rithme RECEPTIONMESSAGEREQUETE(R*
KF # # JVQGJ J , 1 , Q ), qui déclanche l’envoie
0 F des messages R*
#
, JVQGJ JP# KQL# # X 71 , < pour chaque littéral <
0
F
, envoie
(ligne (29)). Ainsi, par hypothése de récurrence pour chaque <
# # VJ - JP# K< #
# # :QL# # X 1 # . Quand le dernier de ces
un message R*
messages (disons RU
, # J /J , K< - # - # , :QL# # X 1 , - ) est traité, est
)))
' 0
'
# X 1 :< # # #/
:QL# # X 1 # 22
-
-
produit à la ligne- (3) de RECEPTIONMESSAGEREPONSE(R*
# , J /JP# :< #
:QL# # X 1 , ), et il existe un pair tel que doit lui envoyer le message R*
#
(ligne (6)).
- # ,
# J /JP#
:QL# # X 1 # – Si est le dernier résultat retourné par l’algorithme ( QL# F , , 71
, pour chaque
0 F , pour chaque 0 LOCAL > , pour chaque < 0 F , 5
K<# ACQ
K<# > , Z ,
"
>
de VOIS :<#
a envoyé
:QL# # X 1 a terminé, et, par récurrence, chaque pair
le message R*
# # ,1 L< , K<# [#=+ 1 , KQL# # X 71 , + 1 . Donc, la condition
de la ligne (3) de l’algorithme RECEPTIONMESSAGEFINAL(R*
[# #,1 L<# :<=# [# #
:QL# # X 1 # + P1 ) est satisfaite, ce qui declanche l’envoie d’un message R*
# #,1 L<#
(ligne (5)).
KQL# #=+ P 1 X 1 # + P 1 Par souci de simplification, les algorithmes que nous avons presentés s’applique à des littéraux.
Cela ne les empechent pas d’etre appliqués à des clauses quelconques: il suffit pour cela de
découper ces clauses en littéraux et d’utiliser l’operateur pour recombiner les resultats obtenus pour chaque littéral.
'
4 Experimentations
Une architecture P2PIS a été dévellopé en Java et déployée sur un cluster de 28 machines
Linux Athlon 1800+ avec 1GB de memoire.
Le calcul des impliqués locaux est assurée par une version locale de l’algorithme distribué
que nous avons présenté; nous avons optimisé le comportement global du programme en éliminant
autant que possible les clauses subsumées (les éliminer toutes étant impossible compte tenu du
caractere anytime et distribuée de notre algorithme).
Generation de benchmark: Evaluer les performances d’un systeme distribué n’est pas trivial. Nous avons choisis de nous focaliser sur des théories aléatoires car elles ont largement
été étudiées dans la litterature (dans un contexte centralisé), citons [17]; elles representent
également un véritable challenge pour la compilation: il est connu que de petites théories peuvent
engendrer d’enormes théories compilées. Notre générateur de benchmark prend en entrée les caracteristiques de notre graphe de voisinage ( noeuds et J arétes). Chaque noeud contient une
théorie en 3CNF générée aléatoirement contenant un nombre fixe de R clauses et de variables.
Chaque aréte du graphe connexe généré est étiqueté par Q variables qui sont nécessairement
communes aux deux peers concernés. Afin d’encoder simplement une variable partagé tout en
s’assurant que le théoreme 2 est applicable, nous ajoutons deux clauses dans les deux peers
concernés pour assurer l’équivalence entre la variable locale et distante. Ainsi, on peut affirmer
que la theorie globale sous jacente contient R clauses aléatoires de taille 3, variables, et
Q J clauses de taille 2 qui encodent l’équivalence entre variables partagées. On utilise un autre
parametre qui est le nombre de variables cibles de chaque peer.
J (pour ne pas obtenir de graphes trop
Dans notre experience, nous fixons Q 0 T # 7# W . Nous avonsetlimité
contraints), avec nos test à de petits peers (contenant moins
de 30 clauses). De telles théories peuvent déja contenir un nombre important d’impliqués [17].
Les algorithmes les plus performants [19] atteignent leurs limites sur des théories aléatoires
pouvant aller jusqu’a 150 clauses et 50 variables, ce qui correspond à seulement 5 peers de 30
clauses.
!
23
5
5
10
10
28
28
22
22
22
30
22
30
11
11
11
15
11
15
2
5
5
5
5
5
#Q (#T´ermin´e)
#Imp
55 (19, 5s)
14 (7)
55 (3, 1s)
7799 (1431)
40 (4, 1s)
23132 (1651)
40 (4, 2s)
7099 (648)
112 (20, 2s)
8120 (513)
112 (7, 4s)
1132 (54)
Temps
2,8,–,–
1,3,5,8
1,2,5,9
3,7,13,17
2,3,6,10
8,13,20,24
TAB . 1 – Resultats sur de nombreuses requetes posées à differents P2PIS
Analyse experimentale: Notre premiere constation est que, de manière générale, les clauses
les plus courtes apparaissent en premier et que les clauses produites contiennent des variables
provenant de plusieurs peers distants. Nous avons également observé des differences significatives dans le comportement de l’algorithme pour differentes requetes posées aux meme P2PIS.
Nous imposons une limite de temps de 30s pour chaque requete, qui represente un temps d’attente
limite raisonnable pour un utilisateur interrogant un P2PIS.
Les valeurs moyennes obtenues sont presentés dans le tableau 1. Chaque benchmark consiste
en une synthese effectuée sur un nombre
de requetes differentes sur le meme P2PIS. La
colonne
donne le nombre de requetes differentes posées au meme P2PIS, le nombre de
resquetes qui ont terminées avant la limite de temps et leurs temps de calcul
La colonne #Imp donne le nombre d’impliqués trouvés et sa médianne. La derniere colonne
donne le temps qu’il a fallu pour produire respectivement 2, 10, 100 et 1000 réponses (quant elle
existes).Ces valeurs donnent une idée de la vitesse de production de l’algorithme.
Les deux premières lignes ( ) montrent que reduire la taille du langage cible n’augmente
pas necessairement les performances. Pour un langage cible réduit, les peers interrogeront moin
leur voisinage et pourront trouver rapidement toutes les réponse (19 requetes ont terminées
en 5s). D’autre part, plus le langage cible est large, plus les premières réponses apparaitront
rapidement.
Pour les experiences avec 10 peers, on observe de grosses differences pour la colonne #Imp.
Ceci peut etre expliqué par une distribution peu homogene favorisant de nombreuses differences
de comportement d’un meme P2PIS sur differentes requetes. On peut voir que meme si seulement
10% des requetes terminent, la vitesse de production de l’algorithme est bonne (1000 clauses
). Quand la complexité des théories locales augmente
produites en moins de 10s pour R (R ), l’impact ressenti est la diminution de la vitesse de production.
Enfin, nous avons testé le passage à l’echelle de notre approche en déployant l’architecture
sur les 28 noeuds du cluster, avec des tailles de théories differentes.
Meme si peu de requetes terminent avant la limite de temps, notre algorithme passe bien à
l’echelle, et produit rapidement un assez grand nombre de clauses. On remarque que lorsque
les theories locales deviennent difficiles, les premiers résultats arrivent raisonnablement vite.
Notons que sur de telles théories (representant 988 clauses et 420 variables si on fait l’union de
toutes les théories locales) zres [19] n’a toujours pas terminé son calcul au bout de plus d’une
heure.
3!
5 Related work
L’algorithme décrit dans la section 3 peut etre vu comme la version distibuée d’une déduction
linéaire ordonnée [2] produisant de nouvelles clauses cibles, ce qui a été étendu dans [18] dans
l’objectif de produire tout les impliqués d’une clause donnée relative à un language cible, puis
24
étendu au premier ordre par Inoue dans [9]. Le calcul de nouvelles clauses dérivées (les “impliqués propres” dans la secition 2) à été largement étudié (voir [11] pour un résumé). En particulier, ce problème, également connu sous le nom de calcul de -impliqués a été étudié dans
[18, 9] et dans [10].
Nous avons déja mis en avant les differences entre nos traveaux et ceux de [1]. Dans un
environnement pair-a-pair, utiliser la décomposition en arbre du graphe de voisinnage est impossible, mais nous pouvons appliquer notre algorithme à des théories partitionnés à la place de
celui de [1]. Il pourrait prendre partie de la décomposition en arbre pour améliorer les performances. Comme nous l’avons montré dans l’exemple introductif, l’algorithme de [1] exige pour
etre complet que le language cible global soit l’union des langages cibles locaux. [6] exploite
cette particularité dans le but d’encoder un P2PIS ayant une architecture pair/super-pairs en
une théorie propositionnelle partionnée et ainsi utiliser l’algorithme de calcul de conscéquences
de [1]. La connaissance globale des variables cibles de tout le PDMS doit etre connu puis distibuée à travers les supers pairs. L’environnement de diagnostic pour des systémes embarqués
distribués ([16]) est fondé sur [1]. Nous pensons qu’il peut bénéficer de notre approche pour etre
appliqué à un veritable environnement pair-à-pair dans lequel aucune connaissance globale ne
doit etre partagée.
Dans les ATMS distribués [12], des agents echange des ensemble de nogood dans le but de
converger vers un ensemble global consistant de justifications. A la difference de la vision pairà-pair, une telle vision des ATMS est lié à une connaissance globale partagée par tout les agents
et à pour objectif de converger vers une unique solution globale.
6 Conclusion
Les contributions de cet articles sont à la fois théoriques et pratiques. Nous proposons le
premier algorithme distribué de calcul de conscéquence dans un environnement pair-à-pair, et
nous énoncons une condition suffisante pour garantir sa complétude. Nous avons dévelloppé
une architecture P2PIS qui implemente l’algorithme et pour laquelle nous obtenons de premiers
résultats prometteurs. Cette architecture est utilisée dans un projet en collaboration avec France
Télécom, qui a pour objectif d’enrichir les applications web de type pair- à-pair avec des services
de raisonnement (e.g., Someone [15]).
Jusqu’ici, nous avons restreint notre algorithme à l’utilisation d’un langage cible fondé sur
le vocabulaire. Cependant, il peut etre adapté à des langages cibles plus sophistiqués (e.g., impliqués d’une taille maximale donnée, langages fondés sur les litteraux et non pas que sur les
variables). Ceci peut etre fait en ajouté une simple balise sur tout les messages pour encoder
le langage cible désiré. Une autre extension possible de notre algorithme serait d’autoriser une
representation plus compacte des impliqués, comme cela est fait dans [19]. Ces travaux sont
liés à un opérateur efficace de distibution sur les clauses. Cette stratégie peut etre adaptée en
étendant les messages de notre algorithme dans l’objectif d’envoyer des ensembles compressés
de clauses à la place d’une seule clause comme c’est le cas actuellement, et ceci sans changer
profondement l’architecture de notre algorithme.
R´
ef´
erences
[1] E. Amir and S. McIlraith, ‘Partition-based logical reasoning’, in KR’00.
25
[2] C. L. Chang and R. C. Lee, Symbolic Logic and Mechanical Theorem Proving, Computer
Science Classics, Academic Press, 1973.
[3] R. Dechter and I. Rish, ‘Directed resolution: the davis-putnam procedure revisited’, in
KR’94.
[4] A. del Val, ‘A new method for consequence finding and compilation in restricted languages’, in AAAI’99.
[5] Gnutella. http://gnutella.wego.com.
[6] F. Goasdoue and M.-C. Rousset, ‘Querying distributed data through distributed ontologies:
a simple but scalable approach’, IEEE Intelligent Systems, (18), (2003).
[7] A. Halevy, Z. Ives, D. Suciu, and I. Tatarinov, ‘Schema mediation in peer data management
systems’, in ICDE’03.
[8] A. Halevy, Z. Ives, I. Tatarinov, and Peter Mork, ‘Piazza: data management infrastructure
for semantic web applications’, in WWW’03.
[9] K. Inoue, ‘Linear resolution for consequence finding’, Artificial Intelligence, (56), (1992).
[10] A. Kean and G. Tsiknis, ‘An incremental method for generating prime implicants/implicates’, Journal of Symbolic Computation, 9, (1990).
[11] P. Marquis, Handbook of Defeasible Reasoning and Uncertainty Management Systems,
volume 5, chapter Consequence Finding Algorithms, Kluwer Academic Publishers, 1999.
[12] C.L. Mason and R.R. Johnson, Distributed Artificial Intelligence II, chapter DATMS: a
framework for distributed assumption based reasoning, Pitman, 1989.
[13] Napster. http://www.napster.com.
[14] W. Nedjl, B. Wolf, C. Qu, S. Decker, M. Sintek, A. Naeve, M. Nilsson, M. Palmer, and
T. Risch, ‘Edutella: a p2p networking infrastructure based on rdf’, in WWW’02.
[15] M. Plu, P. Bellec, L. Agosto, and W. van de Velde, ‘The web of people: A dual view on the
WWW’, in Int. World Wide Web Conf., (2003).
[16] G. Provan, ‘A model-based diagnosis framework for distributed embedded systems’, in
KR’02.
[17] R. Schrag and J. Crawford, ‘Implicates and prime implicates in random 3-sat’, Artificial
Intelligence, 81, (1996).
[18] P. Siegel, Repr´esentation et utilisation de la connaissance en calcul propositionnel, Ph.D.
dissertation, Université d’Aix-Marseille II, 1987.
[19] L. Simon and A. del Val, ‘Efficient consequence finding’, in IJCAI’01.
Téléchargement