• Aucun résultat trouvé

Chapitre 6 : Réalisation et expérimentation du système SARIPOD

2. Les agents du système SARIPOD

2.2 Rôle des différents agents

La coopération entre les différents agents du système SARIPOD est représentée par la figure 6.2. Ces agents sont répartis sur les trois couches ci-dessus dans des concentrations variables. Ces différents agents sont : agent utilisateur ; agents d’interface ; agent lexicographique ; agent de mesures possibilistes ; agent sélectionneur ; agent page Web ; agent crawler ; agent d'historique; agents superviseurs [Elayeb et al., 2007b].

Agents utilisateurs

L’agent utilisateur est la porte d’entrée des requêtes externes au système. Il facilite à l’utilisateur la formulation de sa requête proposée au système. L’agent utilisateur est capable de garder les préférences de l’utilisateur au fur et à mesure que celui-ci utilise le système. En effet, il enregistre dans une base d’historique les requêtes déjà jouées par un utilisateur ainsi que les préférences correspondantes dans le but de pouvoir les utilisées ultérieurement. Il est capable aussi de stocker de l’information pour l’utilisateur et d’agir comme un agent ressource. Évidemment il y a autant d’agents utilisateurs qu’il y a d’utilisateurs. Chaque agent s’occupe de l’utilisateur auquel il est rattaché.

Agents d’interface

Ils ont pour rôle d’assurer la communication entre le système et ses utilisateurs. Ils sont de deux types :

a. Agent d’entrée

L’agent d’entrée analyse la requête utilisateur et transmet par la suite les mots-clés recherchés à l'agent lexicographique qui détermine leurs mots proches à partir du RPMH de dictionnaire de mots.

b. Agent de sortie

L’agent de sortie est chargé de présenter les résultats de la recherche à l’utilisateur. En effet, il est capable de confronter les résultats de sortie aux préférences de l’utilisateur. Cette confrontation nécessite la présentation des pages Web recherchées selon les préférences proposées, dans le cas où le résultat fourni par l’agent sélectionneur est différent de celui préféré par l’utilisateur.

Figure 6.2 : La coopération entre les agents de SARIPOD Agents superviseurs

Ils veillent au bon fonctionnement du système, tous les autres agents doivent être à leur service et sous leur responsabilité. Ils sont chargés d’affecter les tâches aux différents agents intervenant dans le processus de recherche d’informations (agent médiateur), de décider en cas d’une multitude de choix (agent décideur) et de contrôler les erreurs possibles lors d’une

Couche de communication

avec l’utilisateur Couche de traitement d’informations Couche d’extraction d’informations Agent Utilisateur Agent d’entrée Agent de sortie Agents d’interface

Agents Superviseurs Agent Décideur Agent Médiateur Agent Contrôleur d’erreur

Agent Lexicographique

RPMH de dictionnaire « Le Grand Robert » Agent Sélectionneur

Agent Historique

Base d’historique <R’, Liste d’ URL> Agent Crawler

Agent Page Web

Agent Mesures Possibilistes

session de sélection des documents Web les plus pertinents (agent contrôleur d’erreur). Nous détaillons dans la suite la tâche de chacun de ces trois agents.

a. Agent médiateur

Il a pour rôle d’affecter les différentes tâches de recherche aux agents appropriés. Un problème de recherche d’information peut être décomposé en plusieurs tâches à savoir :

1. L’entrée et l’analyse de la requête utilisateur de recherche d’information ;

2. L’interrogation du RPMH du dictionnaire via l’agent lexicographique qui détermine les mots les plus proches (synonymes) des mots-clés de l’utilisateur du système par l’application de l’approche à base de circuits existants entre les nœuds termes ;

3. La transformation des URLs crawlées en des pages Web et la détermination de leurs structures logiques par l’agent page Web;

4. La détermination de la pertinence de chaque document via l’agent de mesures possibilistes ;

5. L’organisation de ces documents dans un ordre décroissant de pertinence via un agent sélectionneur;

6. La sortie du résultat final de la recherche dans une représentation conforme aux préférences de l’utilisateur ;

7. Le stockage d’une copie du résultat final dans une base d’historique via un agent

d’historique.

Toutes ses tâches sont réalisées par les différents agents du système. En effet, l’agent crawler explore le Web pour extraire les URLs des pages Web recherchées. L’analyse des pages Web correspondantes à ses URLs est faite par l’agent page Web.

L’agent médiateur permet de planifier ces différentes tâches et les affecter aux différents agents du système, c’est un rôle moteur qui peut facilement être limité dans le cas où le système devient complètement distribué ; c'est-à-dire le nombre d’agents médiateurs est inversement proportionnel au degré de cognition des autres agents du système. Dans cette version du système SARIPOD, l’agent médiateur-facilitateur joue le rôle d’un facilitateur. L’agent médiateur (ou facilitateur) permet l’allocation des tâches, il dispose de l’information à propos des compétences d’autres agents. En fait, l’intérêt principal de cette architecture est de favoriser la cohérence du système. De plus le besoin d’optimisation est plus facilement satisfait. Connaissant l’ensemble des agents disponibles, il est plus facile à l'agent médiateur de choisir le “meilleur” des agents par rapport à une demande de tâche donnée. Mais l’inconvénient majeur de ce type de système est de constituer un goulot d’étranglement [Zaghdoud, 2003] qui peut diminuer considérablement les performances du système dès que le nombre des agents et des demandes augmente [Ferber, 1995].

En effet, pour le cas de la présente application, il est préférable d’utiliser un agent superviseur (ou médiateur), d’ailleurs le nombre d’agents est limité et le risque d’avoir un goulot d’étranglement est minime. Par contre, pour un développement réel du système SARIPOD l’aspect totalement distribué devient nécessaire.

b. Agent décideur

Cet agent décideur a un rôle fondamental dans le système SARIPOD. Dans un premier temps, il est chargé de faire une sélection post-traitement après avoir mené à terme les différentes pages Web sélectionnées par les agents sélectionneurs pour que les agents de sortie sachent organiser ce résultat dans l’ordre préféré par l’utilisateur. D’autre part, cet agent décideur sera doté d’une intelligence pour faire un prétraitement des documents Web pertinents, lui permettant ainsi de faire gagner au système un temps considérable.

b. Agent contrôleur d’erreur

Il est chargé de contrôler le bon fonctionnement du système en exécutant les directives de contrôle des erreurs communiquées par chaque agent du système. Il informe le décideur de ce qui se passe dans le système qui à son tour décide d’arrêter ou non un agent. Souvent, il analyse la cause d’erreur de chaque agent en difficulté, s’il s’agit par exemple d’un manque d’information, il essaye de résoudre ce problème en demandant plus d’information auprès de l’agent source d’erreur. Dans le pire des cas, il décide d’arrêter le fonctionnement d’un agent.

Agent lexicographique

Dans le cadre de la reformulation de la requête utilisateur, l’agent lexicographique veille sur la construction et l’interrogation du RPMH du dictionnaire de mots en vue de déterminer les mots sémantiquement proches des mots-clés proposés par l’utilisateur du système.

Cet agent interagit avec les agents d’interface pour décider la requête finale à proposer au crawler à travers les agents superviseurs.

Agent crawler

L’objectif de cet agent est de pouvoir crawler le Web selon la stratégie décrite dans le chapitre précédent. Il obtient un ensemble des URLs des pages Web, dont chacune contient un ou plusieurs mots-clés de la requête reformulée. Par ailleurs, cet agent se charge aussi de la création du RPMH de pages Web ainsi que leur classification sous forme de petits mondes. En fait, dans notre prototype, l’agent crawler interagit avec l’agent page Web via l’agent de mesures possibilistes pour permettre à l’agent sélectionneur de trier les pages Web sélectionnées selon leurs degrés de pertinences possibilistes (les tâches des ces agents seront détaillées dans la suite).

Agent page Web

L’agent page Web est chargé de l’analyse de pages Web collectées par l’agent crawler. La structure logique de chaque page Web est envoyée par cet agent vers l’agent de mesures possibilistes.

Agent de mesures possibilistes

Cet agent s’occupe du réseau possibiliste du système SARIPOD. Il calcul le scores de pertinence possibiliste de chaque page Web sélectionnée par l’agent crawler, en se basant sur la structure logique de chacune de ses pages. Ces scores seront acheminés vers l’agent sélectionneur qui décide leur organisation selon les préférences de l’utilisateur.

Agent sélectionneur

L’agent sélectionneur est capable de répondre à des propositions du type : le document d1 est préférable au document d2 ou l’ensemble {d1, d2} est préférable à l’ensemble {d3, d4}. En effet, cette proposition montre bien que la liste ordonnée des documents en réponse à un besoin utilisateur est traitée d’une manière qualitative, et que notre approche qualitative ordinale est utilisée dans la représentation des documents et des requêtes.

Par ailleurs, cet agent trie les documents Web dans un ordre décroissant de leurs degrés de pertinences possibilistes ; le document répondant le plus aux préférences de l’utilisateur sera affiché en tête de la liste triée des documents, retourné à l’agent de sortie qui vérifie sa conformité aux préférences de l’utilisateur.

Agent d’historique

Cet agent stocke une copie de chaque requête jouée par le système ainsi que sa réponse dans une base d’historique. En cas où l’utilisateur réjoue une requête, cet agent lui propose celle de l’historique et lui donne aussi la possibilité de changer ses préférences et relancer des nouveaux calculs des scores des pertinences possibilistes des documents Web.

Ainsi, le système SARIPOD bénéficie des avantages apportés par la richesse de la modélisation multi-agent, faisant coopérer les différentes tâches, et par les méthodes utilisées par les agents et particulièrement les agents de création des deux RPMH et du Réseau Possibiliste. D’autre part, nous avons proposé un système de communication entre les différents agents permettant de synchroniser leurs comportements et leurs actions sur l’ensemble des connaissances. Ces communications sont assurées via des messages qui rendent les agents plus indépendants. La figure 6.3 montre quelques communications par messages échangés entre les différents agents de la plate-forme SARIPOD.

Figure 6.3 : Communications par messages échangés entre les agents de SARIPOD Agent

Page Web Agent

Crawler

Liste des URLs crawlées

Confirmation de la reception de la liste des URLs crawlées

Agent Médiateur Les structures logiques des Pages Web analysées Confirmation de la reception des structures logiques Agent Historique Requête déjà jouée par SARIPOD ou non ? Requête déjà jouée Ou Nouvelle requête Agent d’Entrée Agent Sélectionneur

Tri déjà joué Ou Nouveau tri Tri déjà joué par SARIPOD ou non ?

Agent de Sortie Résultat conforme avec le profil de l’utilisateur ou non ? Résultat conforme Ou

Résultat non conforme

Agent Lexicographique

Terme existant Ou

terme inexistant

Le terme de la requête est existant dans le RPMH de dictionnaire ou non ? Requête reformulée ou non ? Requête reformulée ou Rêquete non reformulée