AGATHE est une architecture proposée pour le système d’extraction des informations dans des domaines restreints sur le Web qui se base sur des agents et des ontologies.. Rapport du stage
Trang 1Laboratoire des Sciences de l'Information et des Systèmes
(LSIS)
Institut de la Francophonie pour
l’Informatique (IFI)
Rapport de fin du stage M2R
Sujet Collecte d’information sur le Web relatif à des domaines restreints, à base d’agents et
d’ontologies
Directeur : Bernard ESPINASSE Encadrant : Sébastien FOURNIER Réalisateur : Nguyen Manh Hung
Trang 2
Remerciements
Ce travail a été effectué au Laboratoire des Sciences de l’Information et des Systèmes (LSIS) dirigé par Monsieur le Professeur Norbert Giambiasi Je le remercie sincèrement de m’avait accueilli dans sa laboratoire
Que Monsieur Bernard Espinasse, Responsable de l’équipe Information et Connaissances Distribués (INCOD) du LSIS, reçoive toute l'expression de ma reconnaissance pour m'avoir proposé et dirigé ce sujet de recherche, et, pour tout son dynamisme et ses compétences scientifiques qui m'ont permis de mener à bien cette étude
Mes plus sincères remerciements vont également à Monsieur Sébastien Fournier, membre de l’équipe INCOD, qui en agissant à titre de co-directeur a fortement enrichi ma formation Ses conseils et ses commentaires auront été fort utiles
Merci aussi à tous mes collègues et amis du laboratoire qui se reconnaîtront ici Je leur exprime ma profonde sympathie et leur souhaite beaucoup de bien
Je souhaite enfin remercier mes amis pour leurs encouragements et leurs conseils lors de ce séjour en France
Trang 3Table des matières
Table des matières 1
Résumé 3
Abstract 4
Introduction 5
Chapitre 1 6
Problème d’extraction des informations 6
1.1 Extraction des informations sur le Web 6
1.1.1 Détermination des régions 6
1.1.2 Extraction des informations sur les régions 8
1.2 Utilisation de la syntaxe des marqueurs 9
1.3 Utilisation d’ontologie de domaine 10
1.3.1 Ontologie 10
1.3.2 EI à base d’ontologie 11
1.4 Extraction des informations par agent 12
1.4.1 Agent 12
1.4.2 EI à base d’agent 13
1.5 Conclusion 14
Chapitre 2 15
MasterWeb et AGATHE 15
2.1 MasterWeb 15
2.1.1 Architecture et fonctionnement 15
2.1.2 Agent d’extraction 16
2.2 AGATHE 17
2.2.1 Architecture et fonctionnement 17
2.2.2 Sous système d’extraction 18
2.3 Conclusion 22
Chapitre 3 23
Projection de MasterWeb à AGATHE 23
3.1 Spécification du problème 23
3.1.1 Problématique 23
3.1.2 Spécification générale 23
3.1.3 Spécification des agents 25
3.1.3 Spécification des protocoles 28
3.3 Conception 30
Trang 43.3.1 Outils utilisés 30
3.3.2 Les classes de MasterWeb 33
3.3.3 Les classes de AGATHE 34
3.3.4 Les messages 38
3.3.5 La base de données 38
3.4 Mise en œuvre 39
3.4.1 Contexte de teste 39
3.4.2 Résultat 39
3.4.3 Perspectives 42
3.5 Conclusion 42
Conclusion 43
Bibliographie 44
Annexe 47
A Les messages 47
B Les tables de la BD 48
C Prototypes 49
C.1 Prototype des agents 49
C.2 Prototype de contenu des message 51
Trang 5Résumé
Le problème d’extraction des informations sur Internet est de plus en plus complexe car l’environnement d’Internet devient le plus dynamique, hétérogène et distribué AGATHE est une architecture proposée pour le développement de système de collecte d’informations dans des domaines restreints sur le Web, à base des agents et des ontologies AGATHE réalise la recherche, la classification et l’extraction d’information de pages Web, en s’appuyant sur les ontologies notamment liées aux domaines restreints considérées Ces tâches de recherche, de classification et d’extraction des informations à base d’ontologies sont réalisées dans AGATHE par des agents logiciels spécialisés qui coopérèrent Ce stage se présenté comme une contribution au développement du système AGATHE, contribution plus particulier lié au développement du sous-système d’extraction selon un système multiagent
Trang 6in AGATHE by specialized software agents which cooperated This stage presented like a contribution to the development of AGATHE system, contribution more particular related
to the development of the extraction subsystem according to a multiagent system
Trang 7Introduction
Dans les dernières années, les pages Web et les informations qu’elles contiennent sont
de plus en plus nombreuses Il y a de plus en plus de sources d’information qui sont disponibles sur le Web En outre, les sources sont hétérogènes : elles sont créées par plusieurs personnes différentes ; les pages sont construites en utilisant des méthodes et des techniques différentes ; les informations sont présentées de n’importe façon sur la page… De plus, les pages Web sont dynamiques : leur structure est instable ; les informations présentées sont toujours mises à jour selon le besoin de leurs propriétaires
La cherche et l’extraction des informations pertinentes deviennent alors de plus en plus difficiles et complexes Dans ce contexte, l’extraction des informations (l’EI) sur le Web est l’objet de nombreuses recherches Plusieurs systèmes sont proposés selon des approches différentes pour l’EI
Le projet AGATHE [7] est développé dans l’équipe INCOD du Laboratoire des Sciences
de l’Information et des Systèmes (LSIS) en collaboration avec l’Université Fédérale de Pernambuco (Cin-UFPE - Brésil) AGATHE est une architecture proposée pour le système d’extraction des informations dans des domaines restreints sur le Web qui se base sur des agents et des ontologies AGATHE réalise la recherche, la classification et l’extraction d’information de pages Web, en s’appuyant sur les ontologies notamment liées aux domaines restreints considérés Ces tâches de recherche, de classification et d’extraction des informations à base d’ontologies sont réalisées dans AGATHE par des agents logiciels spécialisés qui coopérèrent Les processus de classification et d’extraction dans AGATHE, déclaratifs à base de règles, s’inspirent de MasterWeb, un système développé au Brésil [10]
L’objectif de ce stage est de contribuer au développement du système AGATHE, notamment à la conception et à la réalisation de sa partie d’extraction (clusters d’extraction) à partir de MasterWeb selon un système multiagent Ce document va présenter le travail sur ce stage Il est organisé comme suit : le chapitre 1 va présenter généralement l’état de l’art sur le problème d’EI sur le Web, en particulier les approches qui sont proches de MasterWeb et d’AGATHE ; le chapitre 2 va présenter le système MasterWeb et l’architecture AGATHE selon la tendance d’utilisation des agents et des ontologies pour le problème d’EI sur le Web ; le chapitre 3 va présenter la réalisation AGATHE à partir de MasterWeb : appliquer l’architecture AGATHE au système MasteWeb ; la dernière section serra conclusion
Trang 8Rapport du stage : Collecte d’information sur le Web relatif à des domaines restreints, à base d’agents et d’ontologies
Chapitre 1 Problème d’extraction des informations
Ce chapitre va présenter l’état de l’art du problème d’extraction des informations (EI) sur
le Web : la section 1 va présenter le contexte général de l’EI ; les trois sections suivantes vont présenter différentes approches dans l’EI : l’utilisation de structure des marqueurs, l’utilisation d’ontologie, l’utilisation d’agent ; la dernière section sera une conclusion du chapitre
1.1 Extraction des informations sur le Web
Les pages Web et les informations qu’elles contiennent sont de plus en plus nombreuses sur Internet La recherche et l’extraction des informations pertinentes sont de plus en plus difficiles et complexes Dans ce contexte, l’extraction des informations sur le Web est l’objet de nombreuses recherches
L’extraction des informations (l’EI) dépend de la nature des pages Web En se basant sur
la façon dont les informations sont présentées sur la page, on peut considérer que, aujourd’hui, il y a deux types de Web : le Web caché et le Web explicite Dans une page
du Web caché, les informations ne sont affichées qu’après avoir rempli quelques formulaires Une page du Web explicite est une page normale : les informations sont affichées dès que l’on entre dans la page Selon ces deux types de Web, les recherches sur l’EI sur le Web sont :
L’EI sur le Web caché On se concentre sur la génération automatique des informations à remplir les formulaires pour retirer des informations nécessaires L’EI sur le Web explicite On s’intéresse à la façon dont on détermine les régions qui contiennent des informations nécessaires sur une page et la manière dont on extraie des informations pertinentes à partir de ces régions
En général, les informations apparaissent sur le Web explicite sous forme de page HTML dont la structure est libre : elles peuvent se situer n’importe ó dans la page L’EI sur les pages Web doit passer deux grandes étapes :
Premièrement, la détermination des régions contenant des informations nécessaires
Deuxièmement, l’extraction des informations pertinentes à partir des régions déterminées
Les sous-sections suivantes vont présenter ces deux étapes
1.1.1 Détermination des régions
Comme les informations apparaissent n’importe ó dans la page Web Le problème qui
se pose est : comment peut-on déterminer si une région contient des informations
Trang 9Rapport du stage : Collecte d’information sur le Web relatif à des domaines restreints, à base d’agents et d’ontologies
nécessaires Plusieurs recherches s’intéressent à ce problème On peut distinguer trois grandes approches dans ces recherches [34] :
Approche basée sur le traitement du langage naturel (TLN)
Approche basée sur les marqueurs sémantiques Cette approche permet de créer
de nouveaux marqueurs personnels pour marquer le contenu sur une page Elle commence à être utilisée dans le domaine de Web Sémantique
Approche basée sur un modèle structuré commun Les informations sont structurées de façons différentes L’idée est de restructurer ces informations en une structure commune qui est indépendante de la source des informations L’EI sur plusieurs sources différentes devient plus facile et plus efficace Le traitement n’extrait qu’une seule structure Aujourd’hui, cette troisième approche est adoptée dans plusieurs recherches
Comme les informations sont structurées de façons différentes L’idée est de restructurer ces structures dans une structure commune qui est indépendante de la source des informations Le problème est comment peut-on construire la structure commune à partir des pages Web différentes On distingue trois grandes approches possibles :
L’utilisation des techniques XML L’utilisation d’arbre des marqueurs L’utilisation d’ontologie du Web Les sous-sections suivantes vont développer plus ces trois approches
a Utilisation de XML
La structure des marqueurs HTML dans une page Web ressemble à celle d’un document XML, l’idée est de projeter une page HTML sur un document XML ([11], [25], [28], [33], [34]) Tout d’abord, une page HTML est projetée en XML en complétant les marqueurs incomplets Puis, les régions contenant des informations sont déterminées en utilisant des techniques différentes : soit une ontologie de domaine ([28], [33], [34]), une transformation
en XSLT (Extensible Stylesheet Language Transformations) ([11], [25])
Cette approche a un grand avantage, c’est d’être simple et compréhensible car XML est populaire et ses techniques (ex XSLT) sont connues Cependant, elle a aussi un grand désavantage : la transformation en XML est seulement efficace dans le cas ó la structure
de la page HTML est toujours stable ([33], [34]) Actuellement, beaucoup de pages ont une structure qui change souvent, cette approche n’est alors plus applicable
b Utilisation d’arbre des marqueurs
Cette approche est aussi basée sur la structure des marqueurs HTML dans une page Web Cette structure ressemble à celle d’un arbre dont les nœuds correspondent aux paires des marqueurs HTML Il s’agit tout d’abord de créer tout d’abord un arbre DOM (Document Object Model) correspondant à chaque page HTML ([17], [24], [44]) de façon suivante : (i) Compléter des marqueurs qui n'ont qu'un tag, ex <P>, <Br> ; (ii)
Trang 10Rapport du stage : Collecte d’information sur le Web relatif à des domaines restreints, à base d’agents et d’ontologies
Supprimer les marqueurs inutiles (supprimer seulement ces marqueurs, ne supprime pas
le contenu dans des marqueurs); (iii) Chaque paire des marqueurs restante devient un noeud de l'arbre DOM ; (iv) Ce marqueur est contenu direct d'un marqueur parent devient
un fils direct du noeud correspondant au marqueur parent Puis, on peut éliminer des bruits (les nœuds inutiles) sur l’arbre en utilisant la technique sur l’arbre ST (Style Tree [44]) En suite, les régions contenant des informations sont déterminées en se basant sur des techniques différentes : en utilisant la distance éditée entre les chaỵnes caractères ([17], [44]) ; en calculant la cọncidence entre les chaỵnes caractères ([6], [24]) Les régions déterminées sont réservées à la phase d’extraction des données
La création d’un arbre DOM se fait selon des étapes claires et concrètes Cependant, elle n’est efficace qu’avec les pages dont les régions représentent les informations sous forme d’un tableau (en lignes et en colonnes [19]) ou sous une forme identique pour plusieurs pages ([6], [17], [24], [44]), ex pour les pages représentant les produits (livres, voitures, vêtements…) Elle ne marche plus sur les sites dont les pages ont des formulaires différents
c Utilisation d’ontologie du Web
Cette approche est aussi basée sur la structure des marqueurs HTML dans une page Web Une page HTML est construite par un ensemble des marqueurs HTML Cet ensemble contient les éléments définis et le nombre de type des éléments est limité On peut représenter ces marqueurs par un ensemble de classes et d’instances, on dit que l’ensemble des classes et instances correspondant aux marqueurs HTML est une ontologie Web
Le processus de détermination des régions est le suivant : tout d’abord, une page HTML est projetée sur l’ontologie Web dont chaque classe ou instance correspond à un marqueur HTML ; puis, les régions contenant des informations sont déterminées sur le résultat de la projection, ex ([7], [10]) utilisent les règles construites en JessTab [9] pour déterminer les régions
L’utilisation d’ontologie Web a un grand avantage : elle est appliquée à n’importe quel type de page Web Parce que l’ontologie Web est indépendante de la source, de la structure et du contenu de la page HTML Cependant, elle a aussi un désavantage : pour raisonner sur l’ontologie, il faut utiliser des règles dont la gestion est complexe et dont la manipulation n’est pas très facile
1.1.2 Extraction des informations sur les régions
Après avoir déterminé les régions contenant des informations, on a besoin d’extraire les informations nécessaires Trois principales approches peuvent être utilisées :
L’approche basée sur la syntaxe des marqueurs HTML
L’approche basée sur l’ontologie de domaine (extraction sémantique)
L’approche basée sur des agents
Trang 11Rapport du stage : Collecte d’information sur le Web relatif à des domaines restreints, à base d’agents et d’ontologies
Les sections suivantes vont présenter ces approches en détail
1.2 Utilisation de la syntaxe des marqueurs
Cette méthode est basée sur la même technique que celle utilisée pour l’étape de détermination des régions Elle est basée sur la structure de la page HTML de façons différentes : en utilisant XML et la transformation XSLT ([11], [25]) ; en utilisant la distance éditée entre les chaỵnes caractères ([17], [44]) ; en calculant la cọncide entre les chaỵnes caractères ([6], [24])
Dans cette méthode, il existe des outils, par exemple, RoadRunner [6] extraie automatiquement des données sur les pages en se basant la grammaire du codage HTML Il traite deux pages en parallèle : il calcule la similarité et la dissimilarité entre deux pages HTML en se basant sur la cọncidence entre deux chaỵnes de caractères
B.Lui et al ([17], [44]) a proposé une méthode extrayant des lignes de données en se basant sur l’arbre DOM avec deux hypothèses : (i) une région ne contient qu’un ou plusieurs tableaux ayant des lignes et des colonnes de données ; (ii) les données dans le même tableau ont la même structure La phase d’extraction ne traite que les sous arbres dont la racine est le nœud composant tous les marqueurs d’une région : on calcul la similarité entre les fils d’un nœud en utilisant la distance éditée S’ils sont semblables, ils seront considérés comme les lignes d’un tableau de données Dans le cas contraire, ils seront considérés comme des tableaux indépendants et chaque nœud et ses fils seront traités comme une région indépendante
En se basant sur la même hypothèse que les données ne sont apparues que dans les tableaux ayant des lignes et des colonnes de données, K.Lerman et al [19] a proposé un algorithme d’extraction de données en générant des templates pour les pages HTML selon trois étapes : (i) rechercher du template pour la page ; (ii) identifier les colonnes des données dans la pages avec une hypothèse que les données dans la même colonne ont
le même type ; (iii) identifier les lignes dans les colonnes en utilisant les labels Avec cet algorithme, on n’a pas besoin de distinguer les deux étapes de détermination de régions
et d’extraire des données
X Meng et al [24] a proposé une méthode qui s’appelle SG-WRAM (schema-guided approach to wrapper maintenance) Elle maintient les wrappers en se basant sur les caractéristiques syntaxiques selon quatre étapes [24] : (i) les caractéristiques sont obtenues à partir de schéma définie par l’utilisateur, des règles d’extraction précédentes
ou des résultats extrait ; (ii) reconnaỵtre des données en basant ces caractéristiques ; (iii) regrouper des données à la schéma, chaque groupe peut être une instance de la schéma ; (iv) les instances représentatives sont sélectionnées pour diminuer les règles d’extraction dans la phase suivante
Pour conclure, les méthodes basées sur la syntaxe des marqueurs se caractérisent ainsi :
Elles réalisent seulement un traitement syntaxique Le traitement est basé sur la grammaire du codage HTML, sur la syntaxe des marqueurs HTML ou sur la
Trang 12Rapport du stage : Collecte d’information sur le Web relatif à des domaines restreints, à base d’agents et d’ontologies
structure de la page HTML En conséquence, ces méthodes ne sont pas très complexes, les algorithmes sont clairs
Elles reposent sur plusieurs hypothèses : soit les pages HTML du même site ont une structure stable ([6], [17], [24], [44]) ; soit les régions des données sont sous forme d’un ou de plusieurs tableaux ([17], [19], [44]) ; soit les données dans les lignes ont la même structure ([17], [44]) ; soit les données dans la même colonne ont le même type ([19]) Chaque méthode peut seulement bien marcher sur un nombre limité des pages Web
Les données extraites sont « bruitées » Normalement, les données extraites sont toutes les informations dans un celle d’un tableau ou les informations entre un complet marqueur HTML Ces méthodes ne peuvent extraire qu’une partie des données, dans un celle d’un tableau, qui concerne dans un domaine spécifique
1.3 Utilisation d’ontologie de domaine 1.3.1 Ontologie
Récemment, les ontologies sont de plus en plus utilisées dans le contexte du Web Sémantique Svab et al [37] distingue trois types d’ontologie pour l’EI :
L’ontologie terminologique : elle représente les termes dans les langages humains Elle est applicable dans l’annotation de texte
L’ontologie de représentation : elle représente les objets Web dans les pages Web Elle est applicable dans l’analyse de discours linguistique
L’ontologie de domaine : elle représente les classes, les instances, les slots… des objets dans un domaine spécifique
Figure 1 représente une partie de l’ontologie de domaine scientifique Les rectangles représentent les classes, instances (objets) Les arcs représentent les relations entre eux
Figure 1 : Une partie de l’ontologie de domaine d’événement scientifique (source [7])
Trang 13Rapport du stage : Collecte d’information sur le Web relatif à des domaines restreints, à base d’agents et d’ontologies
Ce document se concentre seulement sur l’ontologie de domaine qui est utilisée dans le problème d’EI Certaines entre eux proposent des outils utilisant l’ontologie de domaine pour l’extraction des données sur le Web
1.3.2 EI à base d’ontologie
Snoussi et al [34] considèrent que l’ontologie est une façon de décomposer le monde en objets et de décrire ces objets Ils utilisent SOX (Schema for Oriented-Object XML) pour définir et modéliser une ontologie Ils ont construit un outil WeDaX (Web Data eXtraction) qui utilise l’ontologie de domaine pour extraire des données sur le Web selon quatre étapes : (i) télécharger les pages HTML et les transformer dans les documents XML ; (ii) construire un modèle des données en utilisant SOX et une ontologie ; (iii) projeter les documents XML aux classes, instances et slots de l’ontologie ; (iv) permettre à l’utilisateur
de choisir les éléments des données sur la page dont il a besoin
McDowell et al [22] a proposé un outil OntoSyphon qui extraie des données sur le Web avec une ontologie : il prend l’ontologie et les pages HTML entrées, et à la sortie, il retourne les données extraites correspondant aux classes, aux instances et aux slots de l’ontologie Cet outil extraie des données selon les cinq étapes : (i) identifier une classe promise à partir de l’ontologie ; (ii) générer des phrases lexiques-syntactiques possibles pour les instances de la classe en utilisant le traitement heuristique ; (iii) chercher dans la page s’il y a des apparences de ces phrases, si oui, les extraire comme des instances candidates ; (iv) répéter les phases 2 et 3 jusqu’à ce que l’ensemble cherché soit vide ; (v) évaluer les instances candidates pour sélectionner les instances correctes de la classe
Espinasse et al [7] a proposé AGATHE, une architecture permettant d’extraire des informations sur le Web en se basant sur des agents et des ontologies Cette architecture est basée sur le même principe d’extraction des informations que MasterWeb [10] : (i) extraire fonctionnement des données en basant sur l’ontologie Web ; (ii) extraire sémantiquement des données de la page Web en utilisant l’ontologie de domaine avec des règles d’inférences en Jess Cette architecture sera présentée plus en détails dans la troisième section du document
Banko et al [3] a proposé TextRunner, un outil qui extraie des données ayant une structure indéfinie (les informations ouvertes) Buitelaar et al [2] a proposé SOBA, c’est
un sous composant du système SmartWeb Liddle et al [18] a proposé un outil qui permet
de créer et tester graphiquement l’extraction des informations sur le Web Popov et al [31] a proposé un outil qui permet de générer automatiquement les annotations entité-només avec les classes et les instances correspondantes
L’approche d’utilisation d’ontologie en EI se caractérise ainsi :
L’extraction sémantique Les informations sont extraites de façon sémantique en
se basant sur l’ontologie de chaque domaine De plus, elles sont plus pertinentes car on peut extraire une partie de texte dans la page HMTL Cependant, les
Trang 14Rapport du stage : Collecte d’information sur le Web relatif à des domaines restreints, à base d’agents et d’ontologies
approches syntaxiques n’extraient qu’une celle d’un tableau dans les pages HTML
Elle peut profiter de la déclarativité de l’ontologie L’ontologie de domaine est déclarative Elle est donc ouverte et flexible ([30], [39], [42]) : on peut facilement ajouter, éditer ou supprimer des classes, les instances et des slots d’une ontologie
L’indépendance Il y a deux aspects de l’indépendance Tout d’arbord, l’ontologie est indépendante de la structure de la page Web et de façon dont les informations sont présentées sur la page Les approches de cette tendance sont donc indépendantes de la page HTML : ses résultats ne sont pas influencés par le changement da la structure de la page Ensuite, l’ontologie est indépendante de l’application On peut donc facilement élargir le système de l’un à l’autre domaine
en remplaçant l’ontologie de domaine correspondante
Par contre, la tendance d’utilisation de l’ontologie domaine a des difficultés dans la phase d’inférence sur l’ontologie, par ex WeDaX [34] utilise SOX, AGATHE [7] et MasterWeb [10] utilisent les règles d’inférence en Jess [9]
1.4 Extraction des informations par agent 1.4.1 Agent
Un agent [32] est considéré comme une entité autonome se situant dans un environnement spécifique, il est capable de vivre de façon autonome et flexible en percevant et en agissant sur son environnement pour atteindre son propre but Un agent
a quatre caractéristiques principales [41] : autonomie, réactivité, proactivité et sociabilité
Un système multiagent [38] est un réseau des entités qui peuvent interagir pour obtenir leurs propres objectifs, et donc, le système obtient l'objectif général Le système multiagent est efficace sur les applications dans les contextes suivants [26]:
Le système a besoin de communications complexes Une communication est considérée comme complexe si : elle a au moins deux participants et, échange des informations entres eux se passe en plusieurs fois
Le système doit fonctionner dans les cas ó on ne peut pas prévoir ou spécifier tout son comportement en des cas-en-cas (case-by-case)
Le système concerne la négociation, la collaboration ou la compétition entre plusieurs entités différentes
Le système doit fonctionner de façon autonome
Le système est prévu qu'il y ait des changements dans le système ou que le but
du système soit changé dynamiquement
Le système multiagent convient naturellement au problème de l’EI car, en effet, l’EI a des
Trang 15Rapport du stage : Collecte d’information sur le Web relatif à des domaines restreints, à base d’agents et d’ontologies
caractéristiques correspondant aux contextes ci-dessus ([4], [27]):
Les sources des informations sont distribuées : elles appartiennent à plusieurs systèmes qui se situent aux serveurs différents sur le réseau Internet
Les sources des informations sont hétérogènes : elles sont réalisées par personnes différentes, en temps différents et en utilisant des mécanismes et des plates-formes différents
Les sources des informations changent dynamiquement selon le besoin de leurs propriétés
1.4.2 EI à base d’agent
Selon [4], un problème de l’EI n’est plus une requête simple sur la base des données, par contre, c’est un problème divisible en plusieurs sous problèmes interdépendants D’ailleurs, la réponse a besoin d’être intégrée à partir de plusieurs sous systèmes C'est-à-dire, on a besoin des communications complexes et de l’autonomie dans le système, c’est un contexte efficace du système multiagent
En effet, il y a plusieurs recherches choisissant le système multiagent comme une solution efficace pour le problème d’EI I Bouslimi et al [4] a proposé le modèle organisationnel CIGS (Cooperative Information Gathering System), ce modèle est réalisé
en utilisant Gaia, c’est une méthode d’analyse et conception du système orientées agent
R Okada et al [27] a proposé le modèle CAS (Coopreative Agents Society) pour l’extraction d’informations à partir d’Internet F Freitas et al [10] a proposé MasterWeb,
un système d’extraction des informations en basant sur l’ontologie domaine B Espinasse
et al [7] a proposé AGATHE (Agent information GATHEring), une architecture permettant d’extraire des informations sur le Web en basant sur des agents et des ontologies L Sofiane et al [36] a proposé MathNet, un système d’extraction des informations sur le Web en basant sur les agents mobiles T Xiaohui et al [43] a proposé une méthode d’expansion des requêtes basées sur des sujets hiérarchies, c’est une solution pour le problème d’EI S Cazalens et al [5] a proposé BONOM, c’est un système multiagent pour
la recherche des informations sur le Web
En basant sur la nature du système utilisé, on peut regrouper les recherches en trois groupes principaux :
Utilisation d’un seul agent, par exemple MasterWeb [10] En effet, il n’y a pas beaucoup de système dans ce groupe car quand on n’utilise qu’un seul agent, on
ne pourra pas complètement profiter les avantages d’un système multiagent : le partage du travail par l’interaction entre les agents et le traitement parallèle dans le système multiagent
Utilisation d’un système multi agent : CIGS [4], CAS [27], AGATHE [7]… Ce groupe est le plus populaire car il profite complètement des avantages du système multiagent Cependant, il existe toujours un problème lié sur l’analyse et
Trang 16Rapport du stage : Collecte d’information sur le Web relatif à des domaines restreints, à base d’agents et d’ontologies
conception du système multiagent : jusqu’à présent, il n’y a pas encore de méthode standard et d’outil efficace qui nous aident à analyser et concevoir un système multiagent
Utilisation des agents mobiles, par exemple MathNet [36] En théorique, quand on utilise les agents mobiles, on pourra très bien s’adapter à l’environnement distribué, hétérogène et dynamique de Internet Cependant, quand on utilise les agents mobiles, on devra faire attention aux droits d’accéder aux ressources du serveur et aux problèmes sécurités sur le réseau Ces problèmes ne sont pas faciles à résoudre, donc les systèmes multiagent mobiles ne sont pas encore populaires
En résumé, le système multiagent est une solution qui semble convenable au problème d’extraction des informations sur le Web car elle est efficace dans un environnement distribué, dynamique et hétérogène correspondant de la nature de Internet
1.5 Conclusion
Aujourd’hui, le problème d’extraction des informations sur le Web est de plus en plus difficile et complexe car Internet est un environnement qui est de plus en plus distribué, dynamique et hétérogène Actuellement, il y a plusieurs recherches s’y intéressant et ils ont proposé plusieurs méthodes différentes pour l’extraction des informations sur le Web
En effet, chaque méthode a l’air efficace dans un domaine spécifique et sur des pages particulières
Ce chapitre a présenté l’état de l’art du problème d’EI Le problème d’EI contient deux types : l’EI sur le Web caché et l’EI sur le Web explicite Généralement, l’EI sur le Web explicite contient deux étapes : l’extraction des régions des données et l’extraction des données sur les régions L’extraction des régions peut être faite selon trois approches : en
se basant sur le traitement de langage naturel ; en se basant sur des marqueurs sémantiques créés par l’utilisateur ; en se basant sur la structure de la page HTML L’approche basant sur la structure de la page HTML a trois tendances : en utilisant les techniques de XML et XSLT ; en utilisant l’arbre des marqueurs (DOM) ; en utilisant l’ontologie Web La deuxième étape de l’EI, l’extraction des données sur les régions, a trois tendances : en utilisant des techniques syntaxiques ; en utilisant des techniques sémantiques basées sur l’ontologie de domaine ou en utilisant des agents
Le chapitre suivant va présenter MatserWeb et AGATHE Ce sont deux architectures pour
le problème d’EI Elles composent les deux approches qui utilisent des ontologies et des agents
Trang 17Rapport du stage : Collecte d’information sur le Web relatif à des domaines restreints, à base d’agents et d’ontologies
Chapitre 2 MasterWeb et AGATHE
Ce chapitre va présenter deux systèmes dans le problème d’EI qui composent les deux approches qui utilisent des ontologies et des agents : MasterWeb, un système existant pour l’EI et AGATHE, une architecture proposée pour le problème d’EI
2.1 MasterWeb
MasterWeb [10] est un système multiagent pour extraire des données sur Internet en se basant sur des ontologies : “Multi-Agent System for Text Extraction and Retrieval over the Web” Il fait partie du projet brésilien – allemande : « A sematic approach to data retrieval »
Cette section va présenter MasterWeb C’est un système multi agents qui est construit pour l’EI Il se compose deux approches qui utilisent des ontologies et des agents La section 1 va présenter généralement MasterWeb ; la section 2 va présenter l’agent d’extraction, le cœur de MasterWeb (Pour des détails sur MasterWeb, consultez [10])
2.1.1 Architecture et fonctionnement
L’architecture de MasterWeb a trois parties :
Chargement des pages : chercher et télécharger les pages Web à partir de plusieurs sources différentes Le composant principal de cette partie est le méta moteur
Extraction des informations : extraire des informations concernées à partir des pages qui sont reçues par le méta moteur C’est le cœur de MasterWeb Le composant principal de cette partie est l’agent d’extraction
Fourniture des services : fournir des informations extraites aux utilisateurs ou aux autres agents Le composant principal de cette partie est le médiateur
Le fonctionnement du système est illustré dans la figure 2 :
Tout d’abord, le méta moteur cherche des pages Web sur Internet en utilisant des moteurs de recherches existant (Altavista ou Excite…) Puis, il les télécharge et les envoie aux agents d’extraction
Chaque agent d’extraction s’occupe d’extraire des informations dans un domaine particulier Il reçoit les pages Web par le méta moteur Puis, il extraie des informations concernées en se basant sur les ontologies (l’ontologie de domaine
et l’ontologie Web) Les informations extraites sont stockées dans une base de données
Trang 18Rapport du stage : Collecte d’information sur le Web relatif à des domaines restreints, à base d’agents et d’ontologies
De côté de l’utilisateur (les utilisateurs ou les autres agents) Il peut demander des informations dont il a besoin Le médiateur reçoit la demande Puis, il interroge la base de données pour répondre à la demande
Figure 2 : Architecture générale de MasterWeb (source [10])
2.1.2 Agent d’extraction
L’agent d’extraction s’occupe d’extraire des informations dans un domaine particulier (un cluster) Il reçoit les pages Web par le méta moteur Puis, il extraie des informations concernées en se basant sur les ontologies (l’ontologie de domaine et l’ontologie Web) Les informations extraites sont stockées dans une base de données
Figure 3 : Agent d’extraction de MasterWeb (source [10])
L’agent d’extraction fonctionne selon quatre étapes (figure 3 [10]) :
Trang 19Rapport du stage : Collecte d’information sur le Web relatif à des domaines restreints, à base d’agents et d’ontologies
Validation : vérifier si la page Web (vers un URL) est validée Une page est considérée comme validée si elle satisfait les conditions : elle est accessible ; elle est sous forme html ; elle n’est pas encore traitée précédemment
Prétraitement : extraire pour chaque page validée, des éléments représentants la page tels que le contenu, les titres de la page, les liens, les emails parmi d'autres éléments Ces données sont transmises au moteur d'inférence de l'agent
Reconnaissance : classifier fonctionnellement la page L’agent d’extraction vérifie
si la page s’agit d’une liste, d’un message, d’un frame ou d’une page html Puis, il
ne traite que la page qui est vraiment en html : si la page contient des informations concernant son cluster, elle sera transmise à la phase d’extraction Si la page contient des informations concernant les autres clusters, elle sera recommandée aux agents dans les clusters correspondants
Extraction : extraire des informations concernées en utilisant des ontologies de domaine
2.2 AGATHE
Cette section va présenter AGATHE C’est une architecture pour le problème d’EI Cette architecture se compose aussi de deux approches qui utilisent des ontologies et des agents La section 1 va présenter l’objectif, l’architecture et le fonctionnement de AGATHE ; la section 2 va présenter en détail le sous-système d’extraction, le cœur de l’architecture AGATHE (Pour le détail sur AGATHE, consultez [7])
2.2.1 Architecture et fonctionnement
Le système AGATHE est une architecture logicielle générique permettant le développement de systèmes de collecte d’information sur le Web sur un ou plusieurs domaines restreints [7] AGATHE met en œuvre une collecte coopérative d'information à base d’agents et d’ontologies Ce système prend en compte des contextes de recherche
en considérant des regroupements de pages Web relatifs à des domaines spécifiques
Figure 4 : L’architecture générale de AGATHE (source [7])
Trang 20Rapport du stage : Collecte d’information sur le Web relatif à des domaines restreints, à base d’agents et d’ontologies
Le système AGATHE contient trois sous-systèmes principaux [7] (figure 4) :
Le sous-système de Recherche (SSR) est chargé de l’interrogation des moteurs
de recherche externes sur le Web (comme Google) afin d’obtenir des pages Web qui seront traitées par le sous-système d’Extraction
Le sous-système d’Extraction (SSE) composé de différents « cluster d’extraction » (CE), chacun spécialisé dans le traitement de pages Web sur un domaine spécifique (comme celui de la recherche académique, ou celui du tourisme)
Le sous-système d’utilisation (SSU) assure le stockage des données extraites à partir des pages Web traitées par le sous-système d’Extraction, et fournit une interface d’interrogation pour des utilisateurs, pouvant être des humains ou d’autres agents logiciels
Le fonctionnement d’AGATHE est illustré dans la figure 4, par les flèches d’interaction numérotées entre ses différents sous-systèmes [7] :
flèche 1 : Un cluster d’extraction du SSE demande une recherche pour des pages particulières au SSR
flèches 2 et 3 : Le SSR travaille comme un méta robot de recherche, recherchant des pages Web, en interrogeant des moteurs de recherche existants comme Google, Altavista ou d’autres
flèche 4 : Ces pages sont ensuite transmises au SSE, plus précisément à l’agent
du cluster d’extraction qui en avait fait la demande (flèche 1)
flèche 5 : Si nécessaire, des recommandations sont envoyées par le cluster considéré à d’autres clusters d’extraction, ceci afin de leur proposer des pages qui peuvent potentiellement les intéresser
flèche 6 : L’information extraite est transmise au SSU, afin d’être stockée dans une base de données spécifique, et qui sera accessible pour interrogation par les utilisateurs (flèche 7)
Ce document se concentre seulement sur le sous-système d’extraction, les autres sont décrits détaillé dans [7]
2.2.2 Sous système d’extraction
Généralement, le SSE génère tout d’abord les requêtes de pages Web envoyées au SSR, puis et c’est sa tâche majeure, traite les résultats de ces requêtes provenant du SSR Cette tâche est composée de plusieurs sous tâches : validation, classification fonctionnelle et extraction d’information [7]
Trang 21Rapport du stage : Collecte d’information sur le Web relatif à des domaines restreints, à base d’agents et d’ontologies
Figure 5 : L’architecture interne de SSE (source [7])
Comme le montre la figure 5 [7], chacun des clusters d’extraction est un système agents réalisant la classification des pages Web obtenues et l’extraction d’informations à partir de ces pages Les clusters d’extraction sont composés de différents types d’agents : des agents extracteurs, des agents préparateurs, un agent superviseur, un agent de recommandation et un agent de stockage (pour les détails, consultez [7])
multi-a Agent préparateur
Chaque cluster a un ou plusieurs agents préparateurs Ils reçoivent les pages Web en provenance SSR Ils sont créés par l’agent superviseur du même cluster et peuvent être supprimés par lui lorsqu’ils ne sont plus utilisés
Figure 6 : Agent préparateur (source [7])
Ces agents réalisent un premier traitement, le traitement fonctionnel, des pages Web en
la séquence des tâches suivantes :
Validation : vérifier si les pages Web sont valides C'est-à-dire si elles sont au format HTML, elles sont accessibles, et si elles n’ont pas déjà été stockées dans
Trang 22Rapport du stage : Collecte d’information sur le Web relatif à des domaines restreints, à base d’agents et d’ontologies
la base de données Les pages ne vérifiant pas ces conditions ne seront pas traitées par la suite
Prétraitement identifiant le contenu, le titre, les liens et les emails disponibles dans
la page en utilisant des techniques issues du domaine de l’RI (Recherche d’Informations) et éventuellement des techniques basées sur le langage naturel
Classification fonctionnelle : Cette tâche, à base de connaissances, utilise le moteur d’inférence Jess et exploite une ontologie définissant des concepts liés au Web (l’ontologie Web)
La figure 6 illustre l’enchaỵnement des tâches réalisées par l’agent préparateur L’agent préparateur reçoit (1) de l’agent superviseur les pages HTML brutes (sans traitement préalable) Commence alors la tâche de validation de ces pages (2) Alors soit l’agent commence la tâche de pre-processing (3), soit la page est invalide et est envoyée à l’agent stockeur (4) afin d’éviter de répéter le traitement dans le futur La tâche de pre-processing étant réalisée, la tâche de classification fonctionnelle est effectuée (5) Cette tâche produit des pages prêtes pour la phase d’extraction et de classification et ces dernières sont envoyées aux agents extracteurs (6) Dans le cas ó la page est invalide, celle-ci est envoyée à l’agent stockeur (7)
b Agent extracteur
Chaque cluster est aussi composé de plusieurs agents extracteurs La tâche spécifique
de ces agents est d’effectuer une classification sémantique des pages reçues, ainsi qu’une extraction des informations qu’elles contiennent Chacun des agents extracteurs est associé à un concept particulier de l’ontologie de domaine associé au cluster d’extraction considéré
Figure 7 : Agent extracteur (source [7])
La figure 7 illustre l’enchaỵnement de tâches réalisées par l’agent extracteur L’agent extracteur reçoit les pages préparées de l’agent préparateur (1) et effectue la
Trang 23Rapport du stage : Collecte d’information sur le Web relatif à des domaines restreints, à base d’agents et d’ontologies
classification sémantique (2) Les adresses des pages classifiées et les classes auxquelles elles appartiennent, sont envoyées à l’agent stockeur (3), et à l’agent recommandeur (4) Ensuite, l’agent extracteur réalise la tâche d’extraction d’information des pages (5) Ces informations sont aussi envoyées à l’agent stockeur (6) et à l’agent recommandeur (7) Indépendamment des autres tâches, l’agent extracteur a la possibilité d’interroger le Web en envoyant une requête à l’agent superviseur du SSR (8)
c Agent recommandeur
L’agent recommandeur, illustré par la figure 8, reçoit les pages traitées par des agents extracteurs et recommande certaines de ces pages à d’autres agents extracteurs du même cluster ou à des agents recommandeur d’autres clusters Pour ce dernier cas, l’agent recommandeur a aussi connaissance d’une partie des ontologies liées aux autres clusters que le sien
Figure 8 : Agent recommandeur (source [7])
La figure 8 présente l’enchaînement de tâches effectuées par l’agent recommandeur Il reçoit l’information extraite et les pages classifiées d’agents extracteur (1), et des pages
de recommandation d’agents recommandeurs appartenant à d’autres clusters d’extraction (2) L’agent exécute la tâche concernant les recommandations vers les autres clusters d’extraction en utilisant les pages reçues au préalable (3,4) Les pages identifiées comme pouvant faire l’objet de recommandation sont transmises aux agents recommandeurs des autres clusters (6) en fonction des concepts identifiés au sein de ces pages Ensuite, il accomplit la tâche permettant d’identifier (5) les pages recommandées pour les agents extracteurs se trouvant dans le même cluster (7) Les autres pages sont envoyées à l’agent stockeur afin d’éviter tout traitement futur inutile (8)
d Agent superviseur
L’agent superviseur du cluster d’extraction possède des fonctionnalités similaires à celui
du sous-système de recherche Il supervise l’activité des agents préparateurs Il reçoit les
Trang 24Rapport du stage : Collecte d’information sur le Web relatif à des domaines restreints, à base d’agents et d’ontologies
résultats des requêtes envoyées par le sous-système de recherche En fonction de la charge des agents préparateurs, il peut en créer ou en détruire et répartir les requêtes reçues entre eux
e Agent stockeur
L’agent stockeur est en charge de récolter les informations extraites et classifiées Il ne réalise pas directement l’action de stocker ces informations dans la base de données ; il prépare le stockage Il traite l’information qu’il reçoit afin de la conformer au format approprié de stockage selon la structure de la base de données Ensuite, les données formatées sont envoyées au SSU afin d’être physiquement stockées, et de pouvoir être exploitées par les utilisateurs
2.3 Conclusion
Généralement, AGATHE respecte le principe du problème d’EI sur le Web explicite Il traite les pages Web selon deux étapes :
Traitement fonctionnel : déterminer si la page contient des données nécessaires
en utilisant l’ontologie Web et des règles d’inférence Afin de déterminer si les données appartiennent au domaine spécifique, il utilise aussi l’ontologie de domaine pour cette étape
Traitement sémantique : classifier les données dan la page sont les instances de quelle classe dans l’ontologie domaine en utilisant l’ontologie domaine et des règles d’inférence
AGATHE se caractérise ainsi : les informations sont extraites sémantiquement ; l’utilisation de l’ontologie a l’avantage de façon déclarative ; l’extraction est indépendante
de la structure de la page, indépendante du changement de façon dont la page représente les informations, indépendante du domaine des informations
D’ailleurs, en basant sur le système multiagent, cette architecture est efficace dans un environnement distribué, dynamique et hétérogène correspondant de la nature de Internet
Ce chapitre a présenté deux systèmes d’EI qui composent les deux approches qui utilisent des ontologies et des agents :
MasterWeb, un système existant pour l’EI avec une architecture dont la partie d’extraction a un seul agent
AGATHE, qui s’appuise sur MasterWeb, c’est une architecture proposée pour le problème d’EI avec une architecture distribuée selon un système multi agents
Les deux systèmes ont le même but d’EI Ils utilisent les mêmes techniques : L’EI basée sur des ontologies et des agents Le chapitre suivant va présenter la projection de MasterWeb à la nouvelle architecture AGATHE
Trang 25Rapport du stage : Collecte d’information sur le Web relatif à des domaines restreints, à base d’agents et d’ontologies
Chapitre 3 Projection de MasterWeb à AGATHE
Ce chapitre va présenter la projection du système existant MasterWeb à l’architecture proposée AGATHE : la section 1 va présenter la spécification du problème ; la section 2
va présenter la conception de système en détail ; la section 3 va présenter la mise en œuvre et l’évaluation de système ; la dernière section sera une petite conclusion du chapitre
3.1 Spécification du problème 3.1.1 Problématique
Comme la partie d’extraction de MasterWeb n’a qu’un seul type d’agent (agent d’extraction) qui s’occupe de traiter toute la chaîne d’extraction en séquence (dans un cluster) de la validation à l’extraction des pages Web, MasterWeb ne peut pas profiter des avantages d’un système multiagent réel : le traitement distribué et parallèle
Cependant, AGATHE est proposée comme une nouvelle architecture dont la partie d’extraction est considérée comme un système multiagent : il y a plusieurs agents qui partagent le travail de l’agent d’extraction C'est-à-dire, chaque agent s’occupe d’une partie de travail dans la chaîne d’extraction Clairement, ces agents peuvent traiter des pages Web en parallèle
Le problème principal est que comment peut-on projeter le travail de l’agent d’extraction
de MasterWeb aux travaux des agents dans le Sous-Système d’Extraction (SSE) de AGATHE Il contient :
Diviser et modifier le code, la base de règles, les ontologies de agent d’extraction
de MasterWeb aux ceux des agents dans le SSE de AGATHE
Définir et implémenter les protocoles, les messages pour la communication entre les agents dans le SSE de AGATHE
Reconstruire la base de données de MasterWeb pour s’adapter au nouveau système AGATHE
Les sections suivantes vont présenter en détail la façon dont on résout le problème
Trang 26Rapport du stage : Collecte d’information sur le Web relatif à des domaines restreints, à base d’agents et d’ontologies
résultats des requêtes envoyées par le SSR
Agent préparateur : Il vérifie si la page est sous forme html ; identifie le contenu, le titre, les liens dans la page reçue Il classifie fonctionnellement la page
Agent extracteur : Il classifie sémantiquement la page et puis, extraie des informations dans son propre domaine sur la page prétraitée
Agent stockeur : Il sauvegarde les résultats classifiés et ceux extraits dans sa base des données
Agent recommandeur : Il reçoit des pages classifiées de l’agent extracteur et les envoie aux agents recommandeur des autres clusters
Ces agents sont décrits en détail dans la section 3.1.3
Figure 9 : Les agents et les protocoles dans SSE
Entre les agents du SSE, il y a les protocoles suivants (le protocole est nommé par le nom d’agent transmetteur plus le nom d’agent récepteur plus « protocole »):
Super_Prepa_Protocole : Il a lieu entre l’agent superviseur et l’agent préparateur dès que l’agent superviseur reçoit une page de agent recherche
Prepa_Stock_Protocole : Il a lieu entre l’agent préparateur et l’agent stockeur si, après avoir prétraité, il y a des pages invalidées ou après avoir classifié, il y a des pages de type Message, Liste
Prepa_Extrac_Protocole : Il a lieu entre l’agent préparateur et un agent extracteur
Trang 27Rapport du stage : Collecte d’information sur le Web relatif à des domaines restreints, à base d’agents et d’ontologies
si, après avoir classifié, il y a des pages sous forme html
Extrac_Stock_Protocole : Il a lieu entre un agent extracteur et l’agent stockeur dès que l’agent extracteur termine sa classification ou son extraction
Extrac_Recom_Protocole : Il a lieu entre un agent extracteur et l’agent recommandeur si, après avoir classifié, il y a des pages à recommander
Recom_Recom_Protocole : Il a lieu entre l’agent recommandeur d’un cluster et celui d’autre cluster dès que le transmetteur reçoit une page recommandée d’un agent extracteur du même cluster
Recom_Extrac_Protocole : Il a lieu entre l’agent recommandeur et un agent extracteur dès que l’agent recommandeur reçoit une page recommandée de l’autre agent recommandeur de l’autre cluster
Ces protocoles vont être décrit en détaillé dans la section 3.1.4
3.1.3 Spécification des agents
Cette section va présenter en détail le comportement interne de chaque agent dans le SSE Ce document ne décrit que les trois premiers agents : Préparateur, Extracteur et Stockeur
a Agent préparateur
Figure 10 : Agent Préparateur