Les bots et la recherche de l'information - RERO DOC
Ce travail de diplôme est réalisé dans le cadre de l'examen final de la Haute
école de ... 1.3.2.4.3 Weatherbot, un exemple de l'agrégation .... nous avons
décidé d'aborder le sujet en expliquant un ensemble plus grand que celui des
bots. ...... Ainsi, par exemple un bot en java, muni de multithreading répondra à
ce besoin.
part of the document
Les bots
et
la recherche de linformation
Travail de diplôme réalisé en vue de lobtention du diplôme HES
par :Iman HOSSEIN-SOLTANI
Conseiller au travail de diplôme :(Jean-Philippe TRABICHET, professeur HES et responsable de filière)
Genève, 23 octobre 2006Haute École de Gestion de Genève (HEG-GE)Informatique de gestion
Déclaration
Ce travail de diplôme est réalisé dans le cadre de lexamen final de la Haute école de gestion de Genève, en vue de lobtention du titre de bachelor dinformaticien de gestion HES. Létudiant accepte, le cas échéant, la clause de confidentialité. L'utilisation des conclusions et recommandations formulées dans le travail de diplôme, sans préjuger de leur valeur, n'engage ni la responsabilité de l'auteur, ni celle du conseiller au travail de diplôme, du juré et de la HEG.
« Jatteste avoir réalisé seul le présent travail, sans avoir utilisé des sources autres que celles citées dans la bibliographie. »
Fait à Genève, le 23 octobre 2006
Iman Hossein-Soltani
Remerciements
Je tiens particulièrement à remercier vivement toutes celles et ceux qui amicalement, tout au long du chemin, mont apporté encouragements, aide, soutien, et conseils afin de parvenir à la rédaction de ce mémoire de Diplôme.
Je leur dédie ce travail ainsi que ma reconnaissance et mes sentiments de gratitude éternels :
Mes chers parents : Mehri et Mohammad,
Ma chère sur adorée Parmis et mon adorable frère Payman,
Mes professeurs : M. Trabichet ainsi que tous mes dévoués professeurs de la Haute Ecole de Gestion de Genève,
Mes ami(e)s : Bozi, Danièle, Fabien, Fabrice, Julia, Homayoon, Marie-Aude, Matthieu, Mazyar, Nada, Natacha, Payman, Pierre-André, Sina, Vlad ainsi que Me Elizabeth Ziegler.
A lIran et à la Suisse.
Iman Hossein-Soltani
Ne t'inquiète pas des vicissitudes de ce monde d'inconstance ; demande du vin et rapproche-toi de ta caressante maîtresse, car, vois-tu, celui que sa mère enfante aujourd'hui, demain disparaît de la terre, demain rentre dans le néant.
Poète perse Omar Khayam (1048 1131) Nichapour
Table des matières
TOC \o "1-6" \h \z \u HYPERLINK \l "_Toc149376696" Déclaration PAGEREF _Toc149376696 \h i
HYPERLINK \l "_Toc149376697" Remerciements PAGEREF _Toc149376697 \h ii
HYPERLINK \l "_Toc149376698" Table des matières PAGEREF _Toc149376698 \h iii
HYPERLINK \l "_Toc149376699" Liste des figures PAGEREF _Toc149376699 \h vi
HYPERLINK \l "_Toc149376700" Liste des tableaux PAGEREF _Toc149376700 \h vi
HYPERLINK \l "_Toc149376701" Liste des diagrammes PAGEREF _Toc149376701 \h vi
HYPERLINK \l "_Toc149376702" Avant propos PAGEREF _Toc149376702 \h vii
HYPERLINK \l "_Toc149376704" Partie 1 Les bots et leur environnement PAGEREF _Toc149376704 \h 1
HYPERLINK \l "_Toc149376705" 1.1 Introduction PAGEREF _Toc149376705 \h 1
HYPERLINK \l "_Toc149376706" 1.2 Agents PAGEREF _Toc149376706 \h 1
HYPERLINK \l "_Toc149376707" 1.2.1 Quest-ce quun agent ? PAGEREF _Toc149376707 \h 1
HYPERLINK \l "_Toc149376708" 1.2.1.1 Propriétés des agents PAGEREF _Toc149376708 \h 1
HYPERLINK \l "_Toc149376709" 1.2.1.1.1 Autonomie PAGEREF _Toc149376709 \h 1
HYPERLINK \l "_Toc149376710" 1.2.1.1.2 Sociabilité PAGEREF _Toc149376710 \h 1
HYPERLINK \l "_Toc149376711" 1.2.1.1.3 Réactivité PAGEREF _Toc149376711 \h 1
HYPERLINK \l "_Toc149376712" 1.2.2 Pourquoi les agents ? PAGEREF _Toc149376712 \h 2
HYPERLINK \l "_Toc149376713" 1.2.2.1 Les facteurs sociaux PAGEREF _Toc149376713 \h 2
HYPERLINK \l "_Toc149376714" 1.2.2.1.1 Les agents dans un « Framework psychologique » PAGEREF _Toc149376714 \h 2
HYPERLINK \l "_Toc149376715" 1.2.2.1.2 Les agents dans un « Framework filtrant » PAGEREF _Toc149376715 \h 3
HYPERLINK \l "_Toc149376716" 1.2.2.2 Histoire des agents PAGEREF _Toc149376716 \h 3
HYPERLINK \l "_Toc149376717" 1.3 Bots sur Internet PAGEREF _Toc149376717 \h 7
HYPERLINK \l "_Toc149376718" 1.3.1 Bots de communication PAGEREF _Toc149376718 \h 7
HYPERLINK \l "_Toc149376719" 1.3.1.1 Chatterbots PAGEREF _Toc149376719 \h 7
HYPERLINK \l "_Toc149376720" 1.3.1.2 Messagerie Instantanée PAGEREF _Toc149376720 \h 8
HYPERLINK \l "_Toc149376721" 1.3.1.3 Protocole IRC PAGEREF _Toc149376721 \h 11
HYPERLINK \l "_Toc149376722" 1.3.1.4 Sockets PAGEREF _Toc149376722 \h 12
HYPERLINK \l "_Toc149376723" 1.3.1.5 Exemple dutilisation dun bot IRC PAGEREF _Toc149376723 \h 14
HYPERLINK \l "_Toc149376724" 1.3.2 Bots dinformation PAGEREF _Toc149376724 \h 15
HYPERLINK \l "_Toc149376725" 1.3.2.1 Protocole HTTP PAGEREF _Toc149376725 \h 15
HYPERLINK \l "_Toc149376726" 1.3.2.2 Extraction de données à partir de pages HTML PAGEREF _Toc149376726 \h 17
HYPERLINK \l "_Toc149376727" 1.3.2.2.1 Balises concernées par les bots PAGEREF _Toc149376727 \h 17
HYPERLINK \l "_Toc149376728" 1.3.2.3 Spider PAGEREF _Toc149376728 \h 18
HYPERLINK \l "_Toc149376729" 1.3.2.3.1 Applications du Spider PAGEREF _Toc149376729 \h 18
HYPERLINK \l "_Toc149376730" 1.3.2.3.2 Structure dune page web PAGEREF _Toc149376730 \h 19
HYPERLINK \l "_Toc149376731" 1.3.2.3.3 Structure du Spider PAGEREF _Toc149376731 \h 20
HYPERLINK \l "_Toc149376732" 1.3.2.3.4 Flow chart de Spider non récursif PAGEREF _Toc149376732 \h 22
HYPERLINK \l "_Toc149376733" 1.3.2.4 Agrégateur PAGEREF _Toc149376733 \h 23
HYPERLINK \l "_Toc149376734" 1.3.2.4.1 Agrégation online PAGEREF _Toc149376734 \h 23
HYPERLINK \l "_Toc149376735" 1.3.2.4.2 Agrégation offline PAGEREF _Toc149376735 \h 24
HYPERLINK \l "_Toc149376736" 1.3.2.4.3 Weatherbot, un exemple de lagrégation PAGEREF _Toc149376736 \h 24
HYPERLINK \l "_Toc149376737" 1.3.2.5 Mesures à prendre en considération PAGEREF _Toc149376737 \h 26
HYPERLINK \l "_Toc149376738" 1.3.2.5.1 Hummering PAGEREF _Toc149376738 \h 26
HYPERLINK \l "_Toc149376739" 1.3.2.5.1.1 Comment éviter le Hummering ? PAGEREF _Toc149376739 \h 26
HYPERLINK \l "_Toc149376740" 1.3.2.5.2 Identification des bots PAGEREF _Toc149376740 \h 27
HYPERLINK \l "_Toc149376741" 1.3.2.5.2.1 Utilisation des Header HTTP PAGEREF _Toc149376741 \h 27
HYPERLINK \l "_Toc149376742" 1.3.2.5.3 Actions du webmaster PAGEREF _Toc149376742 \h 28
HYPERLINK \l "_Toc149376743" 1.3.3 Vers un partage standardisé de linformation PAGEREF _Toc149376743 \h 29
HYPERLINK \l "_Toc149376744" 1.3.3.1 eXtensible Markup Language (XML) PAGEREF _Toc149376744 \h 29
HYPERLINK \l "_Toc149376745" 1.3.3.1.1 Quest-ce que le XML ? PAGEREF _Toc149376745 \h 29
HYPERLINK \l "_Toc149376746" 1.3.3.1.2 XML et les bots dinformation PAGEREF _Toc149376746 \h 30
HYPERLINK \l "_Toc149376747" 1.3.3.2 Simple Object Access Protocol (SOAP) PAGEREF _Toc149376747 \h 31
HYPERLINK \l "_Toc149376748" 1.3.3.2.1 Comment le SOAP transfère les données ? PAGEREF _Toc149376748 \h 31
HYPERLINK \l "_Toc149376749" 1.3.3.2.2 Exemple du SOAP PAGEREF _Toc149376749 \h 32
HYPERLINK \l "_Toc149376750" 1.3.3.2.3 SOAP et les bots dinformation PAGEREF _Toc149376750 \h 33
HYPERLINK \l "_Toc149376751" 1.3.4 Bots malveillants PAGEREF _Toc149376751 \h 34
HYPERLINK \l "_Toc149376752" 1.3.4.1 Mise en réseau de bots dans un but malveillant PAGEREF _Toc149376752 \h 34
HYPERLINK \l "_Toc149376753" 1.3.4.2 Utilisations des bots malveillants PAGEREF _Toc149376753 \h 36
HYPERLINK \l "_Toc149376754" 1.3.5 Autres bots PAGEREF _Toc149376754 \h 38
HYPERLINK \l "_Toc149376755" Partie 2 Web sémantique au service de Spider PAGEREF _Toc149376755 \h 39
HYPERLINK \l "_Toc149376756" 2.1 Concept de Spider sémantique PAGEREF _Toc149376756 \h 39
HYPERLINK \l "_Toc149376757" 2.2 Principales familles doutils de recherche PAGEREF _Toc149376757 \h 39
HYPERLINK \l "_Toc149376758" 2.2.1 Annuaires PAGEREF _Toc149376758 \h 39
HYPERLINK \l "_Toc149376759" 2.2.2 Moteurs de recherches PAGEREF _Toc149376759 \h 41
HYPERLINK \l "_Toc149376760" 2.2.2.1 Algorithmes de classement PAGEREF _Toc149376760 \h 43
HYPERLINK \l "_Toc149376761" 2.2.3 Métamoteurs PAGEREF _Toc149376761 \h 44
HYPERLINK \l "_Toc149376762" 2.3 Web sémantique PAGEREF _Toc149376762 \h 45
HYPERLINK \l "_Toc149376763" 2.3.1 Processus dindexation PAGEREF _Toc149376763 \h 45
HYPERLINK \l "_Toc149376764" 2.3.2 Construction de lindex PAGEREF _Toc149376764 \h 46
HYPERLINK \l "_Toc149376765" 2.3.3 Processus dévaluation PAGEREF _Toc149376765 \h 50
HYPERLINK \l "_Toc149376766" 2.3.4 Exploitation de lapproche pour les requêtes PAGEREF _Toc149376766 \h 51
HYPERLINK \l "_Toc149376767" 2.4 Intégration de la web sémantique au Spider PAGEREF _Toc149376767 \h 52
HYPERLINK \l "_Toc149376768" 2.4.1 Démarche dintégration PAGEREF _Toc149376768 \h 52
HYPERLINK \l "_Toc149376769" Partie 3 Prototype Robotina PAGEREF _Toc149376769 \h 54
HYPERLINK \l "_Toc149376770" 3.1 Introduction à Robotina PAGEREF _Toc149376770 \h 54
HYPERLINK \l "_Toc149376771" 3.1.1 But de Robotina PAGEREF _Toc149376771 \h 54
HYPERLINK \l "_Toc149376772" 3.1.2 Comment définissons-nous un site fiable ? PAGEREF _Toc149376772 \h 56
HYPERLINK \l "_Toc149376773" 3.1.3 Accès à linformation électronique PAGEREF _Toc149376773 \h 56
HYPERLINK \l "_Toc149376774" 3.1.4 Robotina et les familles de moteurs de recherche PAGEREF _Toc149376774 \h 57
HYPERLINK \l "_Toc149376775" 3.1.5 Quapporterait la web sémantique à Robotina ? PAGEREF _Toc149376775 \h 58
HYPERLINK \l "_Toc149376776" 3.2 Robotina, un moteur de recherche PAGEREF _Toc149376776 \h 58
HYPERLINK \l "_Toc149376777" 3.2.1 Comment Robotina alimente-elle sa base de données ? PAGEREF _Toc149376777 \h 58
HYPERLINK \l "_Toc149376778" 3.2.2 Fonctionnement du bot de Robotina PAGEREF _Toc149376778 \h 60
HYPERLINK \l "_Toc149376779" 3.2.3 Architecture du système de Robotina PAGEREF _Toc149376779 \h 62
HYPERLINK \l "_Toc149376780" Résumé PAGEREF _Toc149376780 \h 64
HYPERLINK \l "_Toc149376781" Partie 4 Bibliographie PAGEREF _Toc149376781 \h 66
HYPERLINK \l "_Toc149376782" 4.1 Livres PAGEREF _Toc149376782 \h 66
HYPERLINK \l "_Toc149376783" 4.2 Sites Internet PAGEREF _Toc149376783 \h 66
HYPERLINK \l "_Toc149376784" Partie 5 Annexes PAGEREF _Toc149376784 \h 68
HYPERLINK \l "_Toc149376785" 5.1 Manuel de mise en marche de Robotina PAGEREF _Toc149376785 \h 68
HYPERLINK \l "_Toc149376786" 5.2 Manuel de programmeur du bot de Robotina PAGEREF _Toc149376786 \h 68
HYPERLINK \l "_Toc149376787" 5.3 Codes PHP du bot Robotina PAGEREF _Toc149376787 \h 70
HYPERLINK \l "_Toc149376788" 5.4 Codes PHP de linterface utilisateur de Robotina PAGEREF _Toc149376788 \h 75
HYPERLINK \l "_Toc149376789" 5.4.1 Fichier : functions.php PAGEREF _Toc149376789 \h 75
HYPERLINK \l "_Toc149376790" 5.4.2 Fichier : index.php PAGEREF _Toc149376790 \h 83
HYPERLINK \l "_Toc149376791" 5.4.3 Fichier : creation_compte.php PAGEREF _Toc149376791 \h 84
HYPERLINK \l "_Toc149376792" 5.4.4 Fichier : compte_utilisateur.php PAGEREF _Toc149376792 \h 85
HYPERLINK \l "_Toc149376793" 5.4.5 Fichier : affichage_resultats.php PAGEREF _Toc149376793 \h 86
HYPERLINK \l "_Toc149376794" 5.4.6 Fichier : contact.php PAGEREF _Toc149376794 \h 87
HYPERLINK \l "_Toc149376795" 5.5 Codes SQL de Robotina pour la base de données PAGEREF _Toc149376795 \h 87
HYPERLINK \l "_Toc149376796" 5.6 Principes de la protection juridique des uvres de lesprit PAGEREF _Toc149376796 \h 88
HYPERLINK \l "_Toc149376797" 5.6.1 Conditions de la protection PAGEREF _Toc149376797 \h 88
HYPERLINK \l "_Toc149376798" 5.6.1.1 Droits dauteur PAGEREF _Toc149376798 \h 89
HYPERLINK \l "_Toc149376799" 5.6.1.2 Mise à la disposition d'une uvre via Internet PAGEREF _Toc149376799 \h 90
HYPERLINK \l "_Toc149376800" 5.6.2 Contrats PAGEREF _Toc149376800 \h 90
HYPERLINK \l "_Toc149376801" 5.7 Typologie des données PAGEREF _Toc149376801 \h 91
HYPERLINK \l "_Toc149376802" 5.8 Difficulté dindexation des pages dynamiques PAGEREF _Toc149376802 \h 93
HYPERLINK \l "_Toc149376803" 5.9 Tendances des moteurs de recherches PAGEREF _Toc149376803 \h 94
Liste des figures
TOC \h \z \c "Figure" HYPERLINK \l "_Toc149359286" Figure 11: Chatterbot iEinstein PAGEREF _Toc149359286 \h 7
HYPERLINK \l "_Toc149359287" Figure 12: Yahoo! Messenger, la liste des contacts et des salons PAGEREF _Toc149359287 \h 9
HYPERLINK \l "_Toc149359288" Figure 13: Yahoo! Messenger, la boîte de dialogue et le salon de chat PAGEREF _Toc149359288 \h 10
HYPERLINK \l "_Toc149359289" Figure 14: Températures des villes dans le monde PAGEREF _Toc149359289 \h 24
HYPERLINK \l "_Toc149359290" Figure 15: Code source de la page des températures PAGEREF _Toc149359290 \h 25
HYPERLINK \l "_Toc149359291" Figure 16: Exemple du code d'un fichier XML PAGEREF _Toc149359291 \h 30
HYPERLINK \l "_Toc149359292" Figure 17: Exemple d'une requête SOAP PAGEREF _Toc149359292 \h 32
HYPERLINK \l "_Toc149359293" Figure 18: Exemple d'une réponse du serveur SOAP PAGEREF _Toc149359293 \h 32
HYPERLINK \l "_Toc149359294" Figure 21: Page d'accueil de culture.fr PAGEREF _Toc149359294 \h 40
HYPERLINK \l "_Toc149359295" Figure 22: Spider Simulator à la découverte de google.com PAGEREF _Toc149359295 \h 42
HYPERLINK \l "_Toc149359296" Figure 23: Métamoteur Copernic PAGEREF _Toc149359296 \h 44
HYPERLINK \l "_Toc149359297" Figure 24: Donnée de l'exercice sur la web sémantique PAGEREF _Toc149359297 \h 48
HYPERLINK \l "_Toc149359298" Figure 25: Calcul de la similarité pour Doctor et Nurse PAGEREF _Toc149359298 \h 49
HYPERLINK \l "_Toc149359299" Figure 31: Démarche d'inscription sur le site Robotina PAGEREF _Toc149359299 \h 54
HYPERLINK \l "_Toc149359300" Figure 32: Utilisation de Robotina pour une recherche d'article PAGEREF _Toc149359300 \h 55
HYPERLINK \l "_Toc149359301" Figure 33: Résultat de recherche de Robotina PAGEREF _Toc149359301 \h 55
HYPERLINK \l "_Toc149359302" Figure 34: Comparaison des flux RSS du Temps et du Courrier PAGEREF _Toc149359302 \h 59
HYPERLINK \l "_Toc149359303" Figure 35: Illustration du fichier log de Robotina PAGEREF _Toc149359303 \h 63
HYPERLINK \l "_Toc149359304" Figure 51: Page d'accueil de google.ch PAGEREF _Toc149359304 \h 94
HYPERLINK \l "_Toc149359305" Figure 52: Sommaire proposé par Yahoo! Actualité PAGEREF _Toc149359305 \h 95
HYPERLINK \l "_Toc149359306" Figure 53: Résultat de recherche du mot clé "heg" sur Vivisimo PAGEREF _Toc149359306 \h 96
HYPERLINK \l "_Toc149359307" Figure 54: Résultat de recherche du mot clé "heg" sur Kartoo PAGEREF _Toc149359307 \h 97
HYPERLINK \l "_Toc149359308" Figure 55. Ecran de présentation de "Google AdWords" PAGEREF _Toc149359308 \h 98
HYPERLINK \l "_Toc149359309" Figure 56: "Mirago France" propose des recherches par région géographique PAGEREF _Toc149359309 \h 99
Liste des tableaux
TOC \h \z \c "Tableau" HYPERLINK \l "_Toc149359310" Tableau 11: Les sockets et le modèle OSI PAGEREF _Toc149359310 \h 13
HYPERLINK \l "_Toc149359311" Tableau 21: Résultat de l'exercice sur la web sémantique PAGEREF _Toc149359311 \h 48
HYPERLINK \l "_Toc149359312" Tableau 51: Typologie de données sur lInternet PAGEREF _Toc149359312 \h 92
Liste des diagrammes
TOC \h \z \c "Diag." HYPERLINK \l "_Toc149359313" Diag. 11: Diagramme dactivité dun bot IRC PAGEREF _Toc149359313 \h 14
HYPERLINK \l "_Toc149359314" Diag. 12: Diagramme d'activité de l'agrégateur PAGEREF _Toc149359314 \h 25
HYPERLINK \l "_Toc149359315" Diag. 21: Diagramme d'activité de Spider Sémantique PAGEREF _Toc149359315 \h 53
HYPERLINK \l "_Toc149359316" Diag. 31: Diagramme d'activité du fonctionnement de Robotina PAGEREF _Toc149359316 \h 61
HYPERLINK \l "_Toc149359317" Diag. 32: Schéma de la base de données de Robotina PAGEREF _Toc149359317 \h 62
HYPERLINK \l "_Toc149359318" Diag. 33: Hiérarchie des bots PAGEREF _Toc149359318 \h 65
Avant propos
Ce travail est composé de cinq parties. Dans la première partie, nous définirons la notion de bot et nous répondrons à la question : « Quest ce quun bot ? »
Etant donnée lapplication de cet outil informatique dans des domaines très divers, nous avons décidé daborder le sujet en expliquant un ensemble plus grand que celui des bots. Ainsi, nous allons développer la notion dagent qui généralise le concept de bot afin den illustrer les propriétés.
Ensuite, nous classerons les bots dans des catégories qui démontreront leurs applications pour différents usages. Pour chaque catégorie nous approfondirons le cas dutilisation et son mécanisme avec des exemples.
Dans la deuxième partie du travail, nous examinerons une méthode pour lamélioration des recherches dinformation. Nous létudierons en détail et nous verrons comment et à quels outils de recherche cette méthode pourrait être appliquée.
Dans la troisième partie du travail, nous proposerons une idée dapplication pour la mise en uvre dun outil de recherche dinformation utilisant un bot au sein du système. Nous examinerons, par la suite, les différents aspects de la mise en application de lidée. Ainsi, nous suivrons une démarche technique pour vérifier sa concordance avec les objectifs.
Cette démarche pourrait inspirer le processus de la mise en uvre de nouveaux outils informatiques. Ce processus consiste à développer une problématique de laquelle découleront une ou plusieurs solutions.
Nous verrons également comment nous mettons en marche cet outil de façon concrète, tout en lui incluant les compétences et les propriétés nécessaires dun bot. Le code du programme est en annexe.
La quatrième partie est consacrée à la bibliographie qui sera suivie par des annexes dans la dernière partie.
Les bots et leur environnement
Introduction
Cette partie du travail est consacrée aux bots. Dans le but de les définir et davoir une vue globale de ceux-ci, nous parlerons des agents et de leurs propriétés. Ensuite, nous développerons la notion de bot dans sa diversité usuelle. Ainsi, nous parlerons de leurs différents domaines dapplication dont nous illustrerons lapplication par des exemples.
Pour chaque exemple nous présenterons les divers aspects techniques et utilitaires et nous remarquerons quun bot nest quun type particulier dagent qui fonctionne avec un mécanisme propre qui lui a valu le nom de « bot ».
Agents
Afin de définir la notion de bot, nous sommes contraints de comprendre la notion dagent. Par conséquent, nous allons nous intéresser à leurs propriétés ainsi quà leur nécessité et à leur développement historique.
Quest-ce quun agent ?
Un agent est un système informatique de type hardware ou software composé déléments qui ont une relation particulière entre eux et de lenvironnement dans lequel le système est conçu. Les agents peuvent ainsi être instanciés comme un robot physique ou, plus communément, comme des programmes sur un ordinateur. Indépendamment de leur conception, les agents doivent avoir des propriétés et des compétences spécifiques pour êtres reconnus en tant que tels.
Propriétés des agents
Dune manière générale les agents sont définis par leurs compétences ou leurs capacités. Dans le cadre de ce travail, nous verrons celles-ci.
Autonomie
La première propriété quun agent doit avoir est lautonomie. Par là, on entend la capacité à agir sans lintervention directe de lhomme ou linterférence dautres agents.
Sociabilité
La sociabilité est la deuxième propriété nécessaire pour un agent. Il doit être capable dinteragir automatiquement avec son environnement et également avec dautres agents, humains ou pas, qui, avec lintermédiaire dun outil, communiquent.
Réactivité
Lagent doit être réactif dans le sens où il doit être capable de détecter des changements dans son environnement et y répondre de manière adéquate. Cela signifie que lagent possède une série de méthodes et quil est capable de prendre linitiative deffectuer une action dans son environnement.
Pourquoi les agents ?
Naturellement lapparition des inventions a pour but de répondre à un besoin particulier. Ce besoin est étroitement lié à son contexte historique. Afin de répondre à la question « Pourquoi les agents ? », nous ferons attention aux facteurs sociaux de lêtre humain et nous survolerons lhistoire des agents.
Les facteurs sociaux
Sans doute, lêtre humain est la créature la plus sociable. Linteractivité et la sociabilité entre les hommes ont influencé nos visions et nos valeurs au cours de lhistoire. La communication par le moyen des langues naturelles naurait pas été possible sans interactions.
Ainsi lapparition des outils au cours de lhistoire témoigne dun niveau donné dactivités de lhomme et dune forme dinteraction entre les membres des sociétés. Nous inventons de nouveaux outils et instruments pour satisfaire nos désirs et, par conséquent, nous influençons notre histoire.
La compréhension de la pensée dautrui demande une interaction entre les individus. Nous avons besoin de systèmes de signes pour échanger nos pensées et sinterposer dans les processus sociaux. Les langues naturelles sont des exemples parfaits de ces systèmes de signes. Elles se développent conformément à notre propre évolution et nos progrès technologiques. Par notre désir de décrire des événements techniques, elles ont été influencées de sorte que tout le monde les comprennent.
De cette façon nous nous retrouvons au sein dun système dynamique où ont été produit la culture, lhistoire et la société. De la même manière ces derniers facteurs influencent notre façon de vivre. Ainsi nous utilisons des outils pour changer notre mode de vie, et, à travers ce processus, nos comportements et nos pensées changent.
Les agents dans un « Framework psychologique »
Les hommes utilisent beaucoup doutils et de gadgets pour maîtriser leur processus mental. Ces créations artificielles sont définies par Vygotsky comme des « outils psychologiques ». Par leur nature, ils sont sociaux, non organiques et non individuels. Ils permettent de maîtriser et contrôler le processus comportemental dun individu de la même manière que les moyens techniques permettent le contrôle du processus dit naturel.
Un langage naturel est un bon exemple de ces instruments psychologiques. Les hommes utilisent un langage particulier pour parler entre eux, exprimer leurs pensées et leurs sentiments. Lart, la musique, la fiction et la poésie en sont quelques exemples.
Lutilisation de ces outils nous apporte un nouveau type dactivité humaine et un nouveau processus comportemental. En tenant compte de cela, nous distinguons deux formes de comportements : un naturel et lautre artificiel ou instrumental.
Les comportements artificiels trouvent leurs racines dans le comportement naturel des êtres humains et, à partir de cela, ces mêmes humains les reproduisent de façon artificielle.
Les agents dans un « Framework filtrant »
Imaginons le flux dinformations au sein dune entreprise de grande taille. Pour prendre de bonnes décisions, le directeur de lentreprise doit être en possession dinformations exactes. Cependant leur volume est tel quil lui est impossible de les connaître toutes.
Ainsi, lexistence dentités spécialisées, nommées « états majeurs », au sein des entreprises nest pas innocente. En effet, ils filtrent et vérifient lexactitude des informations. Ensuite, celles jugées exactes et décisives sont conservées et transmises au supérieur.
LInternet est un autre exemple qui illustre le flux des énormes volumes dinformations. Dans ce genre denvironnement les agents intelligents peuvent jouer un rôle important. Un agent autonome peut être capable de chercher les informations, les comparer, prendre une décision et présenter un résultat.
Histoire des agents
La quête pour des contrôles intelligents dans les systèmes artificiels est bien ancienne. Bien avant larrivée des ordinateurs, lingénieur James Watt a vulgarisé lutilisation des outils mécaniques dune manière automatique. En effet, il est désormais possible de réguler la vitesse de rotation dans les moteurs à vapeur par le contrôle de la consommation dénergie.
Deux siècles plus tard, ce concept savère fondamental, notamment avec lapparition des cybernétiques dans les années 1940. Lutilisation des contrôles intelligents dans les ordinateurs électriques analogues sest intensifiée pendant la deuxième guerre mondiale. Par contrôle de la quantité de voltages, ces machines simulaient des systèmes physiques qui permettaient la navigation des avions ou lassignation de cibles de bombardements. La similarité entre les opérations internes de ces ordinateurs analogues et le fonctionnement de la régulation des êtres vivants (par exemple le contrôle de la température chez un être humain) a inspiré les développeurs à concevoir des machines qui peuvent appendre, penser et agir rationnellement comme si elles étaient vivantes.
Dans les mêmes années, à lInstitut des Technologies du Massachusetts, deux champs de recherches sont nés. Le premier concernait létude de lautomate cellulaire qui est la conception dune machine biologique très complexe capable de sauto-reproduire. Selon la définition donnée par Steven Levy, un automate est une machine qui génère de linformation, qui procède logiquement, et qui exécutera inexorablement ses prochaines actions après avoir reçu de lextérieur une série dinstructions quelle aura programmée elle-même. La complexité du projet oblige John Von Neumann à labandonner avant sa complétion.
Le deuxième champ de recherche englobait les relations entre la biologie et le calcul artificiel. Lidée était de programmer un réseau de neurones artificiels dans lequel ils seraient capables de travailler ensemble afin de reproduire des comportements complexes. Ainsi quelques années plus tard, John Holland inventa lalgorithme génétique.
En 1987, la création de la programmation génétique inventée par John Koza a permis la naissance dun nombre dapplications dans des domaines différents tels que la manipulation robotique.
Au fur et à mesure, la puissance des ordinateurs augmenta si bien que lIntelligence Artificielle (IA) prit une place importante dans la construction dentités munies dune vie artificielle. Le concept dintelligence artificielle désigne le projet de créer une machine capable, non seulement de simuler un comportement intelligent, mais déprouver une impression d'une réelle conscience de soi.
En 1950, Alan Turing explora le problème de l'intelligence artificielle et suggéra deux manières pour atteindre le but de création de machines intelligentes. La première consistait à se concentrer sur la programmation des activités intellectuelles comme pour jouer aux échecs. La deuxième était une approche nommée « animale artificielle ». Cette approche se concentre sur des systèmes complets qui comme les animaux existent dans des environnements réalistes et doivent faire face à certains problèmes quils rencontrent.
Ainsi, beaucoup de projets ont vu le jour pour la construction de systèmes dintelligence artificielle quon nomme les agents. Désormais, les robots mécaniques, tels que les robots mobiles, ou les softwares, tels que les Chatterbots qui permettent davoir un dialogue, évoluent séparément. On peut donc en conclure que la création dun être artificiel intelligent, à limage de lHomme, est le résultat de la conjonction des deux propositions de Turing.
En effet la concurrence fonctionnelle et la distribution des calculs dans lintelligence artificielle ont causé lapparition dune nouvelle branche nommée Intelligence Artificielle Distribuée (IAD). Cette discipline se concentre sur les systèmes appelés Multi-Agents (MA) qui coordonnent le comportement au sein dun ensemble dagents autonomes intelligents. Dans ces systèmes, la coordination permet la résolution des problèmes au niveau le plus adéquat. Les premiers travaux concernant ce domaine montrent que les agents opéraient et effectuaient des tâches dans des environnements hautement structurés, dans lesquels des Inter-Agents procédaient à la résolution des conflits parmi les composants du système.
Par la suite, des recherches plus réalistes ont vu le jour dans des environnements moins structurés. Ainsi, des groupes décentralisés dagents autonomes, contraints par des ressources et des capacités limitées, ont été mis en uvre. Désormais ces agents sont capables deffectuer des tâches particulières dans un environnement illimité tel que lInternet.
En 1993, les recherches dans le domaine des agents intelligents déclenchent un débat concernant la légitimité du rôle des softwares du « Monde Réel » par opposition aux environnements physiques.
Daprès Etzioni les deux idées pour la construction des agents complets de nature software ou physique dans les environnements du « Monde Réel » sont acceptables. Par contre, on ne peut construire des « Softbots », agents AI complets, uniquement sils interagissent avec un monde de softwares réels tel que lInternet.
Une année plus tard Etzioni met en place un agent software courant sur lInternet, appelé Softbot (Software Robotic). Cet agent est une implémentation complète de lintelligence artificielle. Le Softbot est conçu dans un environnement de ressources différentes de lInternet. Cet agent interagit avec son environnement à travers UNIX ainsi que le World Wide Web et permet un nombre de commandes de manipulation de fichiers tels que FTP, Telnet et le-mail. Le Softbot est capable de chercher sur lInternet des services sitôt quils sont disponibles et de les utiliser quand il en a besoin. Il possède une interface expressive qui donne à ses interactions avec lutilisateur un caractère social.
Le Softbot peut choisir dynamiquement et automatiquement quel service utiliser et dans quelle situation. Par exemple sil veut trouver une adresse e-mail, il peut utiliser le service de Netfind. Il sait que pour se faire, il a besoin dun nom et dune adresse postale. Ainsi, il va chercher, dans les bases de données auxquelles il a accès, un article contenant le nom et ladresse désirée.
Etzioni propose que les agents softwares soient une alternative dans le domaine de la robotique pour les machines munies de la représentation AI, du raisonnement automatisé, de la planification et de lapprentissage. Etzioni présente quelques raisons qui mettent en avant les avantages de la construction de Softbots :
Ils peuvent effectuer un grand nombre de tâches telles que la récupération et le filtrage, le network management, les business desktop applications (Organisation des e-mails, planification dagenda) et linterface dassistance pour lutilisateur.
Les Softbots peuvent être construits à partir doutils existants pour interagir avec des softwares environnants (les systèmes dexploitation et les réseaux de communications).
La nature structurée de la plupart des outils softwares rend facile la perception des Softbots. Les utilisateurs peuvent faire des Softbots un outil expressif de langage. Cette utilisation sest souvent avérée lourde lors de son application aux robots.
Les propositions dEtzioni servent de ralliement symbolique pour tous ceux qui sintéressent aux recherches et aux développements des agents intelligents dans les environnements de softwares du « Monde Réel ».
Depuis lexpansion rapide de lintérêt pour les domaines tels que lInternet ou le World Wide Web, un véritable boom sest produit dans la recherche, le développement et le déploiement des agents softwares intelligents. Les web robots, les Spiders, les Softbots, les Knowbots et les Chatterbots ont trouvé une place importante dans notre vie quotidienne. Ces agents softwares sont utilisés pour des tâches différentes telles que lindexation et la récupération des ressources du web, lobtention ainsi que la vente automatisée, le filtrage électronique des informations et le traçage du lieu des utilisateurs de réseaux.
Ainsi aujourdhui, la technologie des agents softwares a ouvert la porte à de nouvelles opportunités pour lexploration et lexploitation du cyberspace.
Bots sur Internet
Un bot est un agent, il en possède les mêmes compétences ainsi que les mêmes propriétés et il peut être muni dintelligence ou non. Le terme « bot » dérive du mot robot qui reflète son caractère automatique. Ainsi un bot est un agent virtuel qui interagit avec un réseau tel que lInternet pour effectuer des tâches répétitives.
Les bots sont utilisés pour des activités très diverses, telles que linformation ou la communication. Dans ce chapitre, nous présentons lutilisation des bots dans ces deux domaines.
Bots de communication
Un bot peut être utilisé par un outil de communication. Ici, nous présenterons les types les plus répandus : les Chatterbots et la Messagerie Instantanée.
Chatterbots
Ces bots sont appelés des Chatterbots ou Chatbots. Ils simulent une conversation auditive ou textuelle avec un ou plusieurs utilisateurs humains. Le Chatterbot est programmé pour répondre à son interlocuteur dune manière intelligente. Il utilise des mots clés, ou mots similaires, qui se trouvent dans les phrases de son interlocuteur, pour préparer des réponses sans vraiment les comprendre. Les réponses sont calculées davance avec des patterns stockés dans une base de données.
Figure STYLEREF 1 \s 1 SEQ Figure \* ARABIC \s 1 1: Chatterbot iEinstein
Les Chatterbots sont programmés sur la base du langage naturel qui est un des champs de lintelligence artificielle (IA). Nous pouvons distinguer deux formes de lIA :
IA forte :
Elle prend en compte lensemble des capacités cognitives et des fonctions psychologiques de lêtre humain telles que lintelligence, la mémoire, le langage, le raisonnement et la perception. LIA forte suppose quil serait possible de construire une machine, à limage de lêtre humain, qui serait capable de raisonner et de résoudre des problèmes ; la machine serait ainsi capable de discernement.
IA faible :
Elle propose dutiliser des programmes pour résoudre des problèmes spécifiques et accomplir des tâches liées au raisonnement. Ainsi, contrairement à lIA forte, lIA faible ne prend pas en compte la totalité des capacités cognitives.
Beaucoup de concepteurs de lIA faible se sont spécialisés dans le langage naturel pour développer des programmes capables de le traiter automatiquement. Ce processus se trouve à la frontière de la linguistique et de linformatique, il concerne l'application des techniques informatiques à tous les aspects du langage humain tels que la génération automatique de la parole sous forme du texte ou du son.
Les Chatterbots fonctionnent sur la base de ce processus. Cependant ils se différencient au niveau de lapplication de lIA. Par exemple, « Jabberwacky » a plutôt une approche de lIA forte puisquil est conçu pour apprendre le langage, comme un enfant, par linteraction avec les être humains et a pour but de simuler le langage naturel dune manière intéressante, amusante et pleine dhumour. Malgré les objectifs fixés, le résultat est encore assez pauvre.
Ainsi nous pouvons dire quil nexiste pas encore réellement dintelligence artificielle conversationnelle. Cest pour cette raison que dautres développeurs de Chatterbots se sont concentrés sur une approche plus pratique de lAI faible. Par exemple, « A.L.I.C.E. », un des Chatterbots dont le langage est le plus humainement naturel utilise son propre programme du langage « AIML ». Les bots qui utilisent ce programme sont appelés des Alicebots.
Messagerie Instantanée
La Messagerie Instantanée (MI) est une forme de bot de communication. Ces bots permettent une communication textuelle en temps réel entre deux ou plusieurs interlocuteurs distants. Cela seffectue par l'intermédiaire des ordinateurs reliés à un réseau informatique tel que l'Internet.
La transmission des messages instantanés requiert l'emploi d'un logiciel client qui utilise un bot pour se connecter à un serveur de messagerie instantanée. Notons que ce bot, contrairement aux Chatterbots, nest pas un agent muni de lIA et ce qui le caractérise, est son aptitude à relier des interlocuteurs sur le réseau par lintermédiaire du serveur. Ainsi, ce qui le différencie des clients réguliers cest sa capacité de gestion automatique des « canaux » de communication, sa prise en charge de la connexion et son identification auprès du serveur.
Les logiciels de messagerie instantanée ont beaucoup évolué avec le temps et ils intègrent dautres fonctionnalités supplémentaires pour enrichir la communication.
Par exemple « Yahoo! Messenger » permet, en plus du chat, déchanger des fichiers et des images, de jouer avec un interlocuteur et découter la radio. Il est également muni des fonctionnalités vocales et vidéo. Ainsi, il permet grâce à la technologie VoIP (Voice on IP), de parler avec un interlocuteur et de le voir avec une webcam.
Dans lexemple suivant, nous pouvons constater que « Yahoo! Messenger » donne la possibilité de constituer une liste de contacts. Ainsi, grâce aux dispositifs supplémentaires nous pouvons savoir si un contact est présent sur le net.
Figure STYLEREF 1 \s 1 SEQ Figure \* ARABIC \s 1 2: Yahoo! Messenger, la liste des contacts et des salons
Nous avons également la possibilité de rejoindre un salon de discussion, dans la catégorie désirée, où nous pouvons « chatter » ou parler avec les interlocuteurs présents dans le salon.
Figure STYLEREF 1 \s 1 SEQ Figure \* ARABIC \s 1 3: Yahoo! Messenger, la boîte de dialogue et le salon de chat
Notons que les messageries instantanées rendent possible la communication grâce à des protocoles différents. On peut distinguer deux types de protocole :
Protocoles ouverts
Deux grands membres de cette famille sont l HYPERLINK "http://fr.wikipedia.org/wiki/Internet_Relay_Chat" \o "Internet Relay Chat" Internet Relay Chat (IRC) et le protocole Jabber.
Parmi les premiers protocoles, l HYPERLINK "http://fr.wikipedia.org/wiki/Internet_Relay_Chat" \o "Internet Relay Chat" Internet Relay Chat (IRC) fournit depuis HYPERLINK "http://fr.wikipedia.org/wiki/1988" \o "1988" 1988, des fonctionnalités de messagerie instantanée avancée très orientée discussion de groupe.
En 1998, le protocole Jabber voit le jour. Cest un système standard de la messagerie instantanée, fondé sur le langage XML et constitué dun ensemble de protocoles. En 2005, Jabber étend sa capacité dans le domaine multimédia et intègre la voix sur IP (VoIP).
Protocoles propriétaires
Les protocoles de messagerie instantanée tels que « MSN Messenger », « Yahoo! Messenger » ou « Skype » sont développés par des utilisateurs de réseaux propriétaires et sont des protocoles fermés. Cela signifie que les utilisateurs de ces réseaux sont dans l'incapacité de communiquer avec dautres réseaux ou protocoles, et sont donc enfermés.
Avant de présenter un exemple du mécanisme dun bot IRC, nous survolerons le protocole IRC et présenterons quelques commandes de celui-ci. En effet, la connaissance de ce protocole est nécessaire à la compréhension des bots IRC.
Ensuite, nous présenterons la notion de socket, qui est un autre élément important pour la mise en uvre des bots en général.
Protocole IRC
Le protocole IRC est le protocole de communication le plus utilisé pour ces bots, car il fournit un moyen de communiquer en temps réel et est conçu pour lusage de téléconférence en mode textuel. Grâce à l'utilisation d'un modèle clientserveur, l'IRC se prête à une exécution sur de nombreuses machines, de façon distribuée. Le protocole IRC a été développé sur des systèmes utilisant le protocole réseau TCP/IP.
Une configuration type comprend un serveur unique qui fournit un point d'accès pour les clients. Il traite l'acheminement et le multiplexage requis de messages, ainsi que d'autres fonctions.
Ainsi, le serveur est la colonne vertébrale de l'IRC. Il fournit un point auquel les clients peuvent se connecter pour parler entre eux, et un point auquel les autres serveurs peuvent se connecter, formant un réseau IRC. Les plus grands réseaux sont EFnet, Undernet, IRCnet, DALnet, et NewNet.
Un programme client, muni dun pseudonyme unique, est exécuté par un utilisateur pour se connecter à un serveur. Pour cela, ce dernier doit connaître les informations suivantes :
Le vrai nom de l'hôte sur lequel le client est exécuté ;
Le nom de l'utilisateur du client sur cet hôte ;
Le serveur auquel le client est connecté.
Il existe trois types de communication.
Les clients peuvent se communiquer sur une base un à un ;
La communication peut être effectuée sous la forme dun à plusieurs, ainsi il est possible davoir une conférence avec une liste dutilisateurs ;
Les messages un à tous peuvent être décrits comme des messages de type diffusion, envoyés à tous les clients, les serveurs, ou les deux.
Pour établir une connexion avec un serveur IRC, le client doit exécuter, dans lordre, les commandes suivantes :
Commande PASS : permet de définir le mot de passe de la connexion ;
Commande NICK : donne un pseudonyme à un utilisateur ;
Commande USER : est utilisée au début d'une connexion pour spécifier le nom d'utilisateur, le nom d'hôte, le nom du serveur, et le véritable nom d'un nouvel utilisateur.
Pour finir, la session du client se termine par un message QUIT.
Une fois la connexion établie, les utilisateurs peuvent former un ou plusieurs canaux de transmission à laide desquels ils recevront tous les messages adressés à ces canaux. Ce groupe dutilisateurs peut effectuer des manipulations de canaux grâce aux commandes suivantes :
Commande JOIN : permet à un client de rejoindre un canal spécifique ;
Commande TOPIC : est utilisée pour modifier ou voir le sujet d'un canal ;
Commande NAMES : permet à un utilisateur dobtenir la liste des pseudonymes visibles sur n'importe quel canal qu'il peut voir ;
Commande LIST : est utilisée pour lister les canaux et leurs sujets ;
Commande: INVITE : est utilisée pour inviter des utilisateurs sur un canal ;
Commande KICK : est utilisée pour bannir un utilisateur d'un canal ;
Commande KILL : permet au serveur de fermer une connexion.
Commande PING : est utilisée pour vérifier si un client est actif à l'autre bout de la connexion ;
Commande PONG ; est la réponse à un message PING ;
Commande ERROR ; est utilisée par les serveurs pour rapporter une erreur.
Généralement, le nom des canaux commence par un #, par exemple #nomCanal. Ainsi, les mêmes canaux sont partagés entre tous les serveurs IRC du même réseau.
Il existe aussi des canaux dont le nom commence par un & au lieu dun #. Ces canaux ne sont pas partagés par tous les serveurs du réseau mais ils existent, seulement, localement sur un serveur.
Les canaux sont conçus par des opérateurs, qui sont une catégorie de clients spéciaux autorisés à exécuter des fonctions de maintenance générale sur le réseau. Ceux-ci ont le contrôle complet du canal et donnent lautorisation de fréquenter ou non le canal.
Sockets
Linternet est construit de beaucoup de protocoles apparentés. Les protocoles les plus complexes sont au plus haut niveau du système de protocoles. Ainsi, le HyperText Transfer Protocol (HTTP) ou le protocole IRC sont construits sur le Transmission Control Protocol/Internet Protocol (TCP/IP) qui est aussi connu sous le nom de « Sockets Protocol ».
Un socket est un modèle qui permet une communication de type Inter Process Communication (IPC). Celle-ci permet aux divers processus de communiquer aussi bien sur une même machine qu'à travers un réseau TCP/IP.
Les bots sont des programmes qui parcourent lInternet. Ainsi, pour pouvoir programmer des bots, il faut connaître comment une application informatique parcourt lInternet.
Lorsque les sockets sont utilisés pour la connexion aux réseaux TCP/IP, ils deviennent la fondation de linternet. Les sockets sont souvent le plus bas niveau du réseau. Ils ne sont pas concernés par le format des données. Les sockets et sous-couches du protocole TCP/IP doivent simplement sassurer que ces données atteignent la bonne destination. Ainsi, les sockets fonctionnent comme le service postal et ils sont utilisés pour expédier des messages aux systèmes informatiques dans le monde entier.
Les couches de haut niveau, telles que les protocoles HTTP et IRC, sont utilisées pour donner une signification aux données transportées. Si un système accepte les messages de type IRC, il saura que le message adhère au protocole IRC et non pas à dautres protocoles.
Le tableau suivant montre la position des sockets dans le modèle OSI (Open Systems Interconnection).
Tableau STYLEREF 1 \s 1 SEQ Tableau \* ARABIC \s 1 1: Les sockets et le modèle OSI
Modèle des socketsOSIApplication utilisant les socketsApplicationPrésentationSessionUDP/TCPTransportIP/ARPRéseauEthernet, X25,
LiaisonPhysique
Exemple dutilisation dun bot IRC
Pour mieux comprendre le fonctionnement dun bot IRC, en voici un exemple type.
Le bot se connecte au serveur IRC grâce à un socket. Pour se faire, il a besoin de connaître l'adresse du serveur ainsi que le port de communication qu'il utilise.
Le socket établit une connexion unique et sidentifie auprès du serveur par un pseudonyme et un nom d'utilisateur. Ainsi, un dialogue s'instaure entre le bot et le serveur. Nous lui envoyons une commande et le serveur nous répond.
Le diagramme suivant illustre le comportement dun bot IRC.
Diag. STYLEREF 1 \s 1 SEQ Diag. \* ARABIC \s 1 1: Diagramme dactivité dun bot IRC
Notons que le serveur vérifie périodiquement que le bot est encore connecté. Il lui envoie un signal de test « PING » et le bot répond par le « PONG » adéquat. Ce processus s'appelle le « PING-PONG ».
Bots dinformation
Les bots dinformation sont des outils qui sont utilisés pour collecter des données sur le World Wide Web et nous les présenter.
Ces bots diffèrent des bots de communication par leur type de protocole et par leur utilisation. En effet, la plupart des bots dinformation utilisent le protocole HTTP que nous présenterons dans ce chapitre.
Puisque les bots dinformation interagissent avec les sites web pour collecter les informations, ils doivent être également munis dun système dextraction de données qui sera présenté. Ensuite, nous verrons le fonctionnement des bots : Spider et Agrégateur.
Protocole HTTP
Le HyperText Transfer Protocol (HTTP) est un protocole de communication développé pour le World Wide Web et il est le protocole le plus utilisé sur lInternet. Il permet de transférer des données sur lInternet, essentiellement au format HTML. Les données sont localisées grâce à ladresse HYPERLINK "http://www.commentcamarche.net/internet/url.php3" URL (Uniform Resource Locator) entre un client et un serveur. Le protocole HTTP fonctionne sur le protocole TCP.
La communication entre le programme client et le serveur se réalise en deux temps :
Le programme client effectue une requête HTTP ;
Le serveur traite la requête puis envoie une réponse HTTP.
La liaison entre le programme client et le serveur n'est pas toujours directe, il peut exister des machines intermédiaires telles que Proxy, Gateway ou Tunnel qui servent de relai.
Une requête HTTP est composée de plusieurs éléments :
Ligne de commande
Celle-ci est composée de trois éléments :
La commande,
LURL,
La version du protocole.
En-tête de la requête
Cest un ensemble de lignes facultatives qui permettent de donner des informations supplémentaires sur la requête et/ou le programme client (navigateur, système d'exploitation,
).
Corps de la requête
Il sagit dun ensemble de lignes optionnelles qui permettent par exemple un envoi de données dun formulaire par une commande POST au serveur.
Voici donc un exemple de requête HTTP :
GET http://www.hesge.ch HTTP/1.0
Accept : text/html
If-Modified-Since : Saturday, 20-September-2006 12:30:11 GMT
User-Agent : Mozilla/4.0 (compatible; MSIE 5.0; Windows 95)
Les commandes HTTP permettent de demander au serveur d'effectuer une action. Voici les commandes HTTP :
GET : permet de demander une ressource à lURL spécifiée ;
HEAD : permet de demander l'en-tête de la ressource située à l'URL spécifiée ;
POST : permet denvoyer des données au programme situé à l'URL spécifiée ;
OPTIONS : permet d'obtenir les options de communication d'une ressource ou du serveur en général ;
CONNECT : permet d'utiliser un proxy comme un tunnel de communication ;
TRACE : demande au serveur de retourner ce qu'il a reçu, dans le but de tester et deffectuer un diagnostic sur la connexion ;
PUT : permet d'ajouter une ressource sur le serveur ;
DELETE : permet de supprimer une ressource du serveur.
Ces deux dernières méthodes nécessitent généralement un accès privilégié.
Extraction de données à partir de pages HTML
Lextraction des données à partir des sources web a suscité un intérêt particulier ces dernières années. Cependant il n'existe aucun standard, car les sources d'information restent très hétérogènes. Néanmoins, il y a un point commun entre celles-ci. Elles sont en grande partie disponibles au format HTML (HyperText Markup Language).
HTML est un langage à balises et ne porte pas dinformation sur les données contenues dans la page, mais sapplique seulement à leur mise en forme.
Un document HTML possède cinq parties bien définies :
Texte : comprend les mots que lon peut voir sur une page HTML.
Commentaires : ce sont, en général, les notes du programmeur HTML et ils ne sont pas affichés sur la page.
Balises de début et de fin : ce sont des balises qui marquent louverture et la fermeture dune séquence. Les codes suivants illustrent ces balises.
Hello World
Balises simples : elles sont représentées par une seule balise. et font partie de cet ensemble et nont pas besoin de leurs balises de fermeture.
Balises concernées par les bots
Le HTML inclut beaucoup de différents types de balises. Cependant, toutes les balises ne sont pas concernées par un bot dinformation. Un bot scanne les pages HTML et ne prend en considération que les balises qui lintéresse.
Les balises contenues dans une page HTML peuvent être fondamentalement regroupées en deux catégories. La première désignerait les balises qui communiquent les données. Ce sont les tableaux et les paragraphes qui affichent linformation. Par exemple la balise fait partie de cette catégorie. Lexemple suivant illustre laffichage des données contenues dans un tableau.
La deuxième désignerait, quant à elle, les balises dinfrastructure. Ce sont les balises qui permettent au navigateur de passer dune page à lautre. Les liens hypertextes appartiennent à cette catégorie. Les différents types de navigation seront présentés dans la suite de ce travail.
Les bots que nous allons présenter doivent posséder des méthodes qui leur permettraient dinterpréter les différentes catégories de balises et en extraire les données. Ainsi, nous pouvons conclure que le « parsing » est un élément nécessaire pour quun bot puisse procéder et interagir avec les pages web.
Spider
Le Spider est un bot qui est capable de parcourir la toile pour rechercher des pages web. Il démarre grâce à lURL fournie par son utilisateur. Ensuite, il scanne la page se trouvant à cette adresse pour découvrir lensemble des autres pages auxquelles elle est liée. Puis, il répertorie chaque URL de la page dans une « queue ». Une fois que la première page accédée par lutilisateur a été examinée, il poursuit de manière similaire avec chaque URL restant dans la queue, jusquà ce que cette dernière soit vide. Notons que le Spider pourrait aussi parcourir des pages liées à la page initiale, mais se trouvant sur un autre site.
Le Spider gère quatre types de lien :
Lien interne :
Les liens internes relient la page courante à une autre page située sur le même site.
Lien externe :
Les liens externes relient la page courante à une page située sur un autre site.
Lien mort (Dead link) :
Il sagit dun lien vers une page qui nexiste plus ou ne se trouve plus au même emplacement.
Autres :
Par exemple le lien email :
Applications du Spider
Le Spider peut être utilisé principalement dans les cas suivants :
Fonction dindexation pour le moteur de recherche :
Le Spider va parcourir un maximum de pages web de manière automatique afin dalimenter les bases de données du moteur de recherche et permettre ainsi une indexation plus complète du web.
Répertorier les liens morts (Dead links) dun site :
Dans lInternet, le nombre des liens existants est tellement élevé quil serait utopique de penser quun être humain puisse filtrer tous les liens morts.
Télécharger la totalité du contenu dun site sur notre disque dur :
Etant donné que le Spider va suivre tous les liens présents dans les pages dun site, il disposera de la liste de ces pages ainsi que de la possibilité de connaître tout leur contenu (texte, images, feuille de style,
).
Créer une représentation visuelle (une carte) dun site :
Grâce au parcours exhaustif des pages dun site, le spider connaîtra le ou les liens entre chacune dentre elles.
Structure dune page web
Pour les spiders, la partie intéressante des pages web est constituée des attributs href. Ceux-ci indiquent une adresse vers une page web.
Exemple : avec a, la balise anchor et href est son attribut.
Dune manière générale, on peut répertorier quatre formes de navigation :
Le lien « a href »
Il se divise en deux sous catégories :
lien absolu :
Cest un lien qui spécifie la position exacte et non ambigüe dune ressource sur lInternet. Il contient le nom de lhôte suivi du nom du fichier.
lien relatif :
Cest le sous ensemble de lURL dans sa forme absolue. Souvent une URL relative comprend simplement un nom de fichier.
Image Map
Il sagit dune zone cliquable au sein dune image ou dun dessin.
Exemple :
Formulaire
Il est utilisé dans les pages dynamiques. Il permet à lutilisateur de saisir des informations comme par exemple son login et son mot de passe.
Autres
On regroupe dans cette catégorie toutes les façons de signifier une redirection vers une autre page web. On citera entre autre le Java Script.
Exemple :
Structure du Spider
Il existe deux architectures principales :
Spider récursif :
Cette méthode se base sur le traitement dune unique URL « TraiterRécursivementUneURL() ». La partie récursive vient de la manière de traiter chaque nouveau lien trouvé. Celui-ci sera donc traité pareillement au lien initial, c'est-à-dire, par un appel récursif à la méthode « TraiterRécursivementUneURL() »
Exemple de méthode récursive :
Void TraiterRécursivementUneURL(String url)
{
Télécharge lURL
Parse la page de lURL
Pour chaque URL trouvée
Appel la méthode « TraiterRécursivementUneURL(URL trouvée) »
Fin de pour chaque
Traite la page dernièrement téléchargée (Par exemple indexation des termes)
}
Nous constatons quelques limitations quant à lutilisabilité de la version récursive :
Taille du stack :
Bien que naturelle cette solution est limitée à de petites quantités de pages à visiter. En effet, la récursivité nécessite lutilisation du stack sur lequel chaque itération sera empilée. Ainsi, puisque la taille du stack est limitée, le nombre de page à parcourir doit aussi lêtre.
Multithreading :
Dans le multithreading, chaque tâche (thread) doit utiliser son propre stack et dans le cas de la récursivité, le fait de sappeler soi-même va toujours entraîner lutilisation du même stack.
Spider non récursif :
Cette méthode utilise une structure de données en queue. Dans cette structure, chaque URL nouvellement découverte y sera stockée en attendant dêtre traitée.
Dans la méthode récursive, pour chaque nouveau lien trouvé, une méthode de traitement est aussitôt appelée.
Dans la méthode non récursive, chaque lien trouvé est mis dans une file dattente. On parcourt donc dabord complètement lURL initiale avant de traiter les liens qui y sont trouvés. Quatre queues sont réellement nécessaires :
La « Waiting queue » :
Celle-ci comprend les URL en attente de traitement. Chaque URL nouvellement découverte, sera ajoutée ici.
La « Runnig queue » :
Une fois que le spider commence à traiter une URL, celle-ci sera déplacée dans la Running queue.
L« Error queue » :
Si une erreur apparaît durant le téléchargement dune page, alors son URL sera déplacée définitivement dans lError queue.
La « Complete queue » :
Si aucune erreur ne survient, une fois que le téléchargement est terminé, lURL est déplacée définitivement dans la Complete queue.
Flow chart de Spider non récursif
Ici, nous allons illustrer un exemple de traitement de pages par la méthode non-récursive (version sans erreur possible).
Le spider commence avec une unique URL :
Cette URL est placée dans la Waiting queue.
Tant quil y a une URL dans la Waiting queue :
Le Spider lance le téléchargement de cette page et déplace son URL dans la Running queue.
Tant que cette page contient des liens
Vérifie pour chaque lien sil est lié à une page web,
Si cest un lien vers une page web,
Si cest une page externe et quon tient compte que des pages internes,
Le Spider répertorie ce lien comme lien externe et le spider passe au lien suivant.
Si cest une page interne,
Le Spider répertorie cette URL comme « page interne » et ajoute cette URL dans la Waiting queue.
Si ce nest pas un lien vers une page web,
Le Spider le rapporte comme « lien autre » et passe au lien suivant dans le Waiting queue.
Quand la page ne contient plus de liens,
Le Spider se déplace dans la Complete queue et va chercher une autre URL dans la Waiting queue
Sil ny a plus dURL dans la Waiting queue,
Le travail du Spider est terminé.
Dans la deuxième partie de ce travail, nous présenterons un type particulier de Spider qui sera muni de la web sémantique. Alors, nous verrons plus en détail les différentes familles doutils de recherche, et nous examinerons comment intégrer un mécanisme sémantique à un spider classique, dans le but doptimiser un moteur de recherche.
Agrégateur
Lagrégation est un processus de création dun objet à partir dautres plus petits. Nous retrouvons ce concept dans la littérature informatique.
Les usagers de lInternet ont souvent plusieurs comptes. Par exemple, un usager peut avoir un compte bancaire et un compte postal. Ces comptes sont tenus par des institutions différentes et sont sécurisés, chacun par un nom dutilisateur et un mot de passe. Lagrégateur visite chaque compte, récupère les données et présente à lutilisateur une vue de ces informations sur un seul relevé concis.
Un agrégateur est un bot ou un ensemble de bots qui est conçu pour collecter des données de plusieurs sites web similaires et présenter les données dans un format consolidé.
Ces bots sont également utilisés pour des services tels que la météo, les informations sportives, les devises ou d'autres unités financières.
Il existe deux manières communes deffectuer le processus dagrégation : online et offline.
Agrégation online
Lagrégation online ne demande aucune application software pour la machine de lutilisateur. Ce dernier peut simplement sinscrire sur un site qui contient un agrégateur. Dabord, lutilisateur donne à lagrégateur tous les noms dutilisateur et les mots de passe nécessaires pour accéder à ses comptes. Ces données sont enregistrées sur un serveur central. Finalement, lagrégateur va sur les sites spécifiés par lutilisateur et collecte les informations.
Les avantages de lagrégation online sont multiples. Lutilisateur na pas besoin dinstaller une application spécifique sur son ordinateur et il peut accéder à lagrégateur online à laide dun simple browser.
Linconvénient majeur de cette approche est que lutilisateur doit laisser ses noms dutilisateur et ses mots de passe aux sociétés exploitantes du site dagrégation et cela peut poser un risque de sécurité.
Un autre inconvénient de ce système intervient lorsque la société dagrégation fait faillite, car il ne sera plus possible daccéder à son agrégateur, puisquil aura été retiré du serveur.
Un exemple dagrégation online est « Yodlee ». Beaucoup de sociétés utilisent cet agrégateur online qui stocke les informations daccès aux comptes de ses clients pour diverses entreprises de services financiers et présente un résumé de létat de ces comptes.
Agrégation offline
Lagrégation offline fonctionne avec un programme dagrégation qui doit être installé sur lordinateur de lutilisateur et qui fonctionne comme une application clientserveur conventionnelle.
Lavantage de cette approche est le contrôle du processus par lutilisateur, car il est le seul à posséder ses mots de passe. De plus, il ne dépendra pas dune société tierce.
Le désavantage de ce processus est que lutilisateur doit installer le programme sur son ordinateur et quil ne pourra donc pas accéder à lagrégateur simplement par le net.
Quicken est un exemple dagrégation offline. Après lavoir installé, il collecte les données des comptes de lutilisateur et les stocke sur son ordinateur.
Weatherbot, un exemple de lagrégation
Par cet exemple nous présenterons le mécanisme général dun agrégateur.
Imaginons que pour une étude météorologique, nous ayons besoin de connaître la température journalière de la ville de New Delhi, le but étant de présenter sa courbe dévolution sur un mois.
La première étape serait de trouver linformation sur un site météorologique tel que MétéoSuisse ( HYPERLINK "http://www.meteoswiss.ch" www.meteoswiss.ch). Une fois arrivé sur ce site, il suffit de se rendre sur la page « le_temps_outre_mer.html », située à lURL ( HYPERLINK "http://www.meteoswiss.ch/web/fr/meteo/temps_actuel/le_temps_outre_mer.html" http://www.meteoswiss.ch/web/fr/meteo/temps_actuel/le_temps_outre_mer.html), qui fournit la température quotidienne de certains lieux des pays membres de l'OMM (Organisation Mondiale de Météorologie) dont la ville de New Delhi.
Figure STYLEREF 1 \s 1 SEQ Figure \* ARABIC \s 1 4: Températures des villes dans le monde
Après avoir trouvé la page web contenant les données, nous pouvons planifier la programmation de lagrégateur.
Pour que lagrégateur atteigne cette page, nous avons besoin dinstancier un socket HTTP qui trouvera lURL de la page. Une fois que la page est téléchargée, elle doit être parsée pour trouver, dans le corps du socket HTTP, la température désirée. Ainsi, grâce à une recherche de « New Delhi », nous pourrons trouver sa température.
Figure STYLEREF 1 \s 1 SEQ Figure \* ARABIC \s 1 5: Code source de la page des températures
Les données du jour seront inscrites dans un fichier ou enregistrées dans une base de données. Lagrégateur répétera ce processus 24 heures plus tard et cela pendant 30 jours. Nous retrouvons ici le mécanisme automatisé du bot. Le diagramme suivant illustre ce processus.
Diag. STYLEREF 1 \s 1 SEQ Diag. \* ARABIC \s 1 2: Diagramme d'activité de l'agrégateur
Dans la troisième partie de ce travail, nous présenterons un type particulier dagrégateur (agrégateur de presse) que nous avons développé. Nous verrons également comment celui-ci peut être utilisé au sein dun moteur de recherche personnalisé.
Mesures à prendre en considération
Dans ce chapitre, nous nous pencherons sur quelques éléments quil faut prendre en considération lors de lutilisation des bots dinformation. En effet, les bots agissant sur linternet peuvent facilement causer des problèmes involontaires que nous détaillerons plus-bas.
Hummering
Lorsquun bot effectue un nombre conséquent de requêtes auprès dun site source, il pourrait surcharger dramatiquement le serveur web. Ainsi, le serveur serait très occupé à répondre aux requêtes et pourrait être mis intentionnellement hors service. Ceci est nommé « Hummering ».
Notons que ce fait peut être réalisé dune manière calculée. Dans ce cas ceci est considéré comme une attaque nommée « Denial of Service ». Ainsi, nous pouvons constater que les conséquences peuvent être sévères. Il est alors important de connaître des moyens pour éviter ce genre dévénements.
Il existe deux types de Hummering : isolé et distribué
Hummering isolé
Il se produit lorsquun bot effectue un nombre de requêtes auprès du même site et que les données à télécharger sont de volume important. Ceci est également produit si lintervalle de temps fixé pour la répétition de la requête est trop petit ou si simplement le bot est multithread.
Hummering distribué
Lorsque le bot est invoqué dans un programme qui sera distribué à dautres utilisateurs, on parle du Hummering distribué. Dans ce cas plusieurs bots, par opposition à un seul, chargeront la bande passante dune manière plus conséquente.
Comment éviter le Hummering ?
Notons que le webmaster pourrait trouver ladresse IP de la machine qui héberge le bot en traçant les requêtes. Ainsi, il peut prendre un nombre de mesures pour bloquer laccès du bot à son site. Afin déviter cela, nous devons prendre certaines précautions.
Baisse de la fréquence des requêtes
La manière la plus intelligente serait la baisse de la fréquence des requêtes que le bot doit effectuer. Ainsi, avec une observation des mises à jour et des changements apportées aux sites sources, nous pouvons régler lintervalle de temps du bot pour la répétition de la requête.
Coopération avec les webmasters
Une autre mesure à prendre en considération est de rendre le bot coopératif avec le site quil exploite. Ainsi, par une entente avec le webmaster du site, nous pouvons éviter certains problèmes et même obtenir certains avantages.
Respect des droits dauteur
Il est important de noter que les informations que nous trouverons sur les sites sont protégées par les droits dauteurs et la propriété intellectuelle. Nous avons mis en annexe de ce travail les principes de la protection juridique en vigueur.
Identification des bots
Les bots comme les navigateurs peuvent révéler leurs identités au serveur web auquel ils accèdent. Il existe des moyens différents pour un bot de sidentifier. Nous en présenterons quelques-uns.
Utilisation des Header HTTP
Un programme se connectant par HTTP à un serveur peut être identifiée à laide du « Header HTTP User-Agent ». Lexemple suivant montre une requête formulée par un navigateur « Mozilla/4.0 ».
GET /heg/ HTTP/1.1
Host: HYPERLINK "http://www.hesge.ch" www.hesge.ch
Connection: close
Accept-Encoding: gzip
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: fr-ch
User-Agent: Mozilla/4.0
Un bot pourrait donc aussi utiliser le header « User-Agent » pour sidentifier auprès dun site cible. Maintenant, la question qui se pose est de savoir quel nom choisir.
Il est possible de rendre le bot virtuellement non repérable dans le trafic de lutilisateur. Ainsi, le bot sera anonyme. Pour une identification anonyme, le bot doit reporter le nom dun navigateur populaire (tel que Microsoft Internet Explorer) dans le champ de « User-Agent ».
Lanonymat peut savérer important pour la compatibilité avec les sites. Beaucoup de sites ont été personnalisés sur la base du header « User-Agent ». Ainsi, si ce header nest pas reconnu par un site, un message sera affiché pour nous demander de mettre à jour le navigateur et ceci sera fatal pour un bot. Par exemple, le site « Yahoo! » dispose dune version Macintosh différente de la version Windows.
Comme pour beaucoup de moteurs de recherche, nous pouvons donner un nom propre unique au bot. Par exemple, le spider de « Google » est appelé « Googlebot ».
Ce mode didentification présente quelques désavantages. Certains « firewall » nautorise pas laccès aux ressources pour des agents inconnus. Ainsi, toutes les requêtes provenant du bot seront rejetées.
Notons que pour pouvoir conserver un nom unique sur lInternet, il faut se construire une réputation. Entretemps pour éviter ces désavantages, nous pouvons utiliser une identification composée dun nom unique et dune identification anonyme. Lexemple suivant illustre ce mode didentification.
User-Agent: Mozilla/4.0 (compatible; NomUniqueDuBot 1.0; Windows NT 5.1)
Actions du webmaster
Un webmaster peut mettre en place des mesures différentes pour contrarier le fonctionnement dun bot. Il est donc nécessaire, pour un concepteur de bot, de connaître ces mesures.
Le fichier « dexclusion de bot », appelé « robots.txt », permet à un webmaster de fournir une politique daccès standardisée lors de visites des bots. Ce fichier est comme un signe de « défense dentrer » à certains endroits dun site.
Le fichier « robots.txt » contient des commandes précisant aux bots les pages qui peuvent ou ne peuvent pas être accédées. Ainsi, les bots commencent l'exploration d'un site web en cherchant le fichier « robots.txt » à la racine du site.
Les commendes sont composées de deux éléments :
User-Agent: permet de préciser le bot concerné par les directives suivantes.
Disallow: permet d'indiquer les pages à exclure de laccès du bot.
Voici des exemples de fichier « robots.txt » :
Exclusion d'un robot :
User-Agent: NomDuBot
Disallow: /
Exclusion d'une page :
User-Agent: *
Disallow: /repertoire/chemin/page.html
Exclusion de toutes les pages d'un répertoire et ses sous-dossiers :
User-Agent: *
Disallow: /repertoire/
Notons que le webmaster dispose dautres moyens pour contrarier un bot. Il peut par exemple effectuer une filtration par IP lorsquil constate un trafic important provenant de la même adresse IP. Il peut également prendre des actions légales sil constate une violation des conditions générales dutilisation du site.
Vers un partage standardisé de linformation
LInternet permet à ses utilisateurs daccéder à un univers virtuel de données. Ces données sont de formes très différentes et il nexiste pas encore un moyen uniforme dy accéder. Il existe alors deux solutions pour résoudre ce problème. La première est donc la mise en fonction de bots tels que les agrégateurs pour traiter toutes les données conformément à un seul standard. La seconde solution est de standardiser toutes les données.
Dans un but de créer un standard pour lénorme quantité dinformation disponible sur lInternet, certaines technologies telles que le SOAP (Simple Object Access Protocol) et le XML (Extensible Markup Language) ont vu le jour.
Ce standard permettrait aux webmasters de contrôler laccès aux données par des programmes conçus en SOAP. Cela créerait un environnement plus coopératif que celui des bots.
Afin de clarifier le fonctionnement de ces technologies, nous examinerons, dans ce chapitre, le XML et nous verrons comment le SOAP utilise ce langage pour partager linformation dune manière standardisée.
eXtensible Markup Language (XML)
Le SOAP se base sur le XML. Ainsi, pour comprendre le SOAP, il est nécessaire de comprendre le XML.
Quest-ce que le XML ?
Contrairement à un fichier dit « plat », un fichier XML possède une structure permettant de stocker les données dune manière hiérarchique.
Les formes hiérarchiques de données peuvent être étendues sur plusieurs niveaux. Lunité basique dun fichier XML est un « nud ». Chaque nud a ses propriétés telles quun nom et une valeur. Un nud peut avoir plusieurs enfants ou ne pas en avoir du tout. Le nom permet simplement dextraire le nud et sa valeur qui est la donnée lui étant associée.
La valeur
Valeur 1
Valeur 2
Le code suivant illustre un exemple de fichier XML.
Figure STYLEREF 1 \s 1 SEQ Figure \* ARABIC \s 1 6: Exemple du code d'un fichier XML
Souvent, les programmes qui stockent des données sont au format binaire. Ces données ne sont alors accessibles que par dautres programmes qui comprennent le format dans lequel elles sont stockées.
Le XML est un standard ouvert qui peut être utilisé librement. Il a été développé de sorte quil englobe un ensemble de règles de formatage universel. Ainsi, les fichiers XML sont toujours des fichiers de texte et donc lisibles par les êtres humains. Cela a été rendu possible car le fichier XML est seulement composé de caractères ASCII.
Puisque les fichiers XML sont des fichiers de textes, les programmeurs peuvent utiliser un simple éditeur de texte pour les ouvrir et donc débugger plus facilement les applications utilisant ce langage.
A première vue, un fichier XML est très similaire à un fichier HTML. Les deux langages utilisent des balises et des attributs. Cependant, contrairement au HTML, les balises utilisées par le XML ne sont pas prédéfinies. Le programmeur peut donc définir à sa guise le nom des balises. Ainsi, leur interprétation est entièrement déléguée aux programmes qui les lisent.
XML et les bots dinformation
Pour les programmeurs de bots, le XML est une technologie appropriée. En effet, la tâche la plus difficile est de collecter les données désirées depuis les pages HTML dun site. Le XML apporte un standard aux données ce qui rend plus facile le travail de « parsing » du bot. Bien sûr, pour profiter des avantages du XML, le site doit supporter ce langage.
Notons que le XML est uniquement une forme de données encodée. Il ne spécifie donc pas comment les données peuvent être transférées. Un message XML a besoin dautres technologies qui lexpédient de sa source à sa destination.
Pour démontrer un de ces cas, nous avons développé un agrégateur qui sera décrit dans la troisième partie de ce travail. Ici, nous présenterons le SOAP qui est le système prédominant de transmission de messages XML.
Simple Object Access Protocol (SOAP)
Le SOAP est un protocole léger basé sur le XML. Il est utilisé pour léchange dinformations. Ce protocole est conçu pour les environnements décentralisés et distribués. Le fournisseur dun service SOAP et le programme client peuvent être sur deux machines différentes. Le SOAP est dit « distribué » puisque plusieurs machines peuvent fournir le même service. Cela permet à ces machines de maximiser la performance en apportant léquilibre dans le chargement des requêtes.
Un message SOAP est composé de trois parties principales :
Enveloppe de SOAP (SOAP-ENV : Envelope)
Il contient une adresse qui spécifie le serveur cible du message. Il contient également une adresse de retour qui spécifie où le serveur doit envoyer ses réponses.
Règles encodées (SOAP-ENV : encodingStyle)
Les règles spécifient la version du SOAP et définissent comment les différents composants du message sont présentés.
Méthodes dappel (SOAP-ENV : Body XML tag)
Elles déterminent les méthodes que le serveur doit exécuter.
Comment le SOAP transfère les données ?
Les messages SOAP sont de nature unidirectionnelle dun expéditeur à un récepteur. La requête est envoyée dun client à un serveur. La réponse du serveur est asynchrone et peut prendre un temps considérable avant dêtre envoyée.
Le SOAP peut être utilisé avec différents protocoles. Les messages SOAP utilisent souvent le HTTP mais ils peuvent être aussi transférés avec le SMTP (Simple Mail Transfer Protocol). En utilisant ce protocole, les messages SOAP seront « mailés » au serveur et la réponse du serveur sera, à son tour, mailée au programme client.
Le SOAP spécifie la structure des messages XML et permet dappeler des méthodes qui devront être exécutées par le serveur. Mais comment peut-on connaître le nom de ces méthodes ? Pour appeler la bonne méthode, on aura besoin dun fichier définissant les services qui sont fournis par un web service. Web Service Definition Language (WSDL) répond à ce besoin. Tous les services SOAP doivent avoir un fichier WSDL qui défini la structure protocolaire du modèle de communication.
Exemple du SOAP
Ici, nous examinons le corps dun simple exemple du SOAP en passant par HTTP. Cet exemple transmet une requête SOAP « GetCurrentTemperature » à un service fournissant des températures courantes pour des lieux différents.
Figure STYLEREF 1 \s 1 SEQ Figure \* ARABIC \s 1 7: Exemple d'une requête SOAP
La partie SOAP-ENV:Body contient la méthode dappel de GetCurrentTemperature qui est suivie par son paramètre contenu dans la balise City déterminant le lieu désiré. Notons que ladresse de retour est représentée par "Some-URI". LURI (Uniform Resource Identifier) correspond à une URL lorsque le HTTP est utilisé. Dans le cas de SMTP, lURI spécifie une adresse e-mail.
Le serveur exécute la méthode GetCurrentTemperature et renvoie la température du lieu.
Figure STYLEREF 1 \s 1 SEQ Figure \* ARABIC \s 1 8: Exemple d'une réponse du serveur SOAP
Ainsi, nous pouvons voir que pour effectuer une requête, nous avons besoin de connaître ladresse du serveur SOAP, le nom de la méthode et ses paramètres ainsi que le type de données qui sera renvoyé par le serveur.
SOAP et les bots dinformation
Les bots dinformation et le SOAP sont très proches puisque les deux sont conçus pour extraire linformation en utilisant le HTTP. La différence entre un bot dinformation et une application SOAP est que cette dernière reçoit les données dune manière propre et dune forme bien définie. Le bot doit, en revanche, extraire les données dans des formats variés. Si tous les sites de lInternet supportaient le SOAP, les bots dinformation que nous avons présentés dans ce travail, pourraient être remplacés par des applications SOAP.
Malgré le fait que le SOAP représente un moyen facile déchange dinformation, on est loin du jour où tous les sites supporteront cette technologie. Et cela parce quil existe, dune part, dénormes quantités dinformations informelles sur lInternet, et dautre part, le coût de standardisation de ces données savèrerait élevé pour ces sites.
Le passage des sites sous forme traditionnelle HTML au SOAP demande une restructuration complète par des programmeurs compétents. De ce fait, nous pouvons envisager, pour un futur proche, des applications qui utiliseraient, au sein du même système, la technologie des bots et celle du SOAP. Ainsi, dans le cas où un site ne supporterait pas le SAOP, les bots feraient leur travail de recherche dinformation.
Bots malveillants
De nos jours, les bots sont également devenus des outils de malfaisance très répandus sur la toile. Ces outils sont utilisés par certaines personnes, dites attaquants ou crackers, dans des domaines variés. Pour cela ils ont différents moyens daction principalement basés sur linfection des ordinateurs privés.
Dans ce chapitre nous allons prendre connaissance des vulnérabilités dues à la nature des systèmes dexploitation et nous verrons comment les bots peuvent être nuisibles aux usagers de lInternet.
Mise en réseau de bots dans un but malveillant
Les bots malveillants les plus communs sont ceux qui s'installent discrètement sur les ordinateurs personnels et servent doutils dattaque à distance.
Un botnet est un réseau de machines infectées par des bots qui peuvent être commandés à distance par leur maître qui pourra avoir des attentions malveillantes. Dans ce cas il sappellera un « attaquant ».
En raison du nombre de machines infectées pouvant être mises en réseau (des dizaines de milliers de systèmes peuvent être liées ensemble), les botnets constituent une menace grave à la communauté des internautes.
Les PC (Personal Computers) sont la cible préférée des attaquants. La majeure partie de ces machines utilise Microsoft Windows comme système dexploitation. Les attaques se produisent principalement dans le cas où ce dernier nest pas correctement mis à jour et protégé par un pare-feu (firewall) et reste, ainsi, vulnérable à l'attaque.
En plus de ces attaques directes, dautres se font indirectement. Celles-ci visent à agir de façon néfaste sur les programmes utilisés par la victime. Les exemples de ces attaques indirectes incluent des fichiers HTML qui exploitent des vulnérabilités dInternet Explorer de Microsoft ou des attaques par utilisation des programmes malveillants sur des réseaux de point à point (Peer-to-Peer). Les machines qui bénéficient dune large bande passante et qui sont connectées en permanence constituent une cible préférable pour des attaquants. Ainsi, au fur et à mesure que les bandes passantes augmentent, le nombre de victimes potentielles augmente aussi.
Avec des techniques automatisées, les crackers scannent les catégories spécifiques de réseau sur lInternet, cherchant les systèmes vulnérables avec des faiblesses connues. Les attaquants ciblent souvent des réseaux dont la classe dadresse est de catégorie B ou des réseaux de plus petites plages dadresses.
Une fois que ces attaquants ont compromis une machine, ils y installent un prétendu bot IRC. Le bot joint un canal spécifique sur un serveur IRC et attend d'autres commandes. Ceci permet à un attaquant de commander à distance le bot et de l'employer pour en tirer divers profits ou un moyen de divertissement.
Le protocole IRC n'est pas la meilleure solution puisque la communication entre les bots et leurs contrôleurs est plutôt lourde et un protocole de transmission plus simple suffirait. Mais l'IRC offre plusieurs avantages : les serveurs sont librement disponibles et sont faciles à installer, et beaucoup d'attaquants ont des années d'expérience de communication IRC.
Les botnets sont souvent utilisés pour le vol d'informations ou d'identité. Ainsi, ces bots seront à la recherche de quelques milliers de mots de passe ou dautres informations bénéfiques à lattaquant.
Le mécanisme de propagation sappuie sur la vulnérabilité de certains ports de système dexploitation de Windows de Microsoft. Les ports les plus attaqués sont les ports utilisés pour le partage de ressources. Ainsi le flux sur les quatre ports décrits ci-dessous correspond à 80 % des flux recensés.
Le port 445/TCP (Microsoft-D Service) est employé pour partager des ressources sur des machines qui utilisent les plateformes Windows 2000, XP ou 2003.
Le port 139/TCP (NetBIOS Session Service) est employé pour partager des ressources sur des machines qui utilisent les plateformes Windows 9x, MOI et NT.
Le port 137/UDP (NetBIOS Name Service) est employé par des ordinateurs qui utilisent les plateformes Windows afin de trouver des informations concernant les capacités de réseaux par un autre ordinateur, informations telles que le nom du système et le nombre de dossiers partagés.
Le port 135/TCP est employé par Microsoft pour mettre en application des services du Remote Procedure Call (RPC). Un tel service de RPC est un protocole qui permet à un programme dune machine dêtre exécuté sur un autre ordinateur.
Utilisations des bots malveillants
Le projet « Honeynet » classifie les bots malveillants en 10 catégories :
Distributed Denial-of-Service Attacks
Très souvent, les botnets sont employés pour des attaques Distributed Denial-of-Service (DDoS). Il sagit dune attaque de réseau qui cause principalement une perte du service aux utilisateurs, typiquement la perte de la connexion au réseau. Ces attaques peuvent également surcharger la bande passante. Limplémentation la plus courante et leurs utilisations consistent à des attaques de masse de TCP, SYN et UDP.
Par exemple, un botnet relativement petit utilisant seulement 1000 bots, peut occuper beaucoup de bande passante. Ces 1000 bots ont une bande passante combinée (1000 PCS avec une moyenne de flux montant de 128KBit/s peuvent offrir plus que 100MBit/s). Ce qui est probablement plus haut que le raccordement à lInternet de la plupart des systèmes en entreprise. En outre, la distribution d'IP des bots rend difficiles le filtrage, la maintenance et le déploiement.
Les DDoS sont aussi employés à des fins commerciales et utilisées contre des entreprises concurrentes.
Un autre exemple dutilisation des DDoS sont les HTTP-Flood récursifs. À partir d'un lien donné HTTP, le bot déclenche automatiquement louverture de nouveaux liens sur le site de manière récursive. Ceci s'appelle le « Spidering ».
Spamming
Quelques bots offrent la possibilité douvrir SOCKS v4/v5 proxy qui est un protocole générique de proxy pour les applications de gestion de réseau basé sur TCP/IP. Une fois la machine infectée, elle peut être utilisée comme source de spamming.
Ainsi avec l'aide d'un botnet un attaquant peut envoyer des quantités massives d'email en vrac (Spam) en utilisant les adresses email des machines infectées.
Sniffing Traffic
Les bots peuvent être utilisés pour observer des données de texte via une machine infectée, principalement des noms dutilisateur et des mots de passe.
Keylogging
Le keylogging repose sur la mémorisation des touches utilisées. Le bot permet de transmettre la valeur des touches à lattaquant. Avec l'aide d'un keylogger il est donc très facile pour un attaquant de rechercher l'information sensible. Un mécanisme de filtrage mis en application, aide aussi à extraire les données secrètes volées.
Spreading New Malware
Les botnets peuvent être utilisés pour la propagation de nouveaux bots. Ils mettent en marche des mécanismes qui permettent le téléchargement et lexécution dun fichier via HTTP ou FTP.
Installing Advertisement Addons
Les bots peuvent également être employés pour saisir des opportunités financières. Cela serait possible grâce à un faux site web. Le créateur du site négocie avec des entreprises intéressées par des bandes publicitaires de sorte que pour chaque click sur la bande, il touchera une certaine somme.
Les bots permettent dautomatiser ces clics et daugmenter le bénéfice.
Google AdSense abuse
Google Adsense permet aux entreprises de mettre des publicités Google sur leur propre site et ainsi de gagner de largent. Pour chaque clic sur ces publicités Google paie une certaine somme à ces entreprises.
Les bots permettent dautomatiser les clics et de ce fait daugmenter le nombre de clics artificiellement.
Attacking IRC Chat Networks
Les botnets sont également employés pour des attaques contre des réseaux IRC. Lattaquant donne lordre aux milliers de bots de se connecter au réseau IRC et demande des services différents. Ainsi, les bots augmentent le flux dinformations et saturent le réseau.
Manipulating online polls/games
Polls/Games se retrouve principalement sur des sites de jeu. La manipulation se produit ainsi : une question est posée au joueur. Par exemple : « Voulez-vous continuer la partie ? ». En répondant « Oui » le joueur répond en fait à une autre question et est reconduit sur dautres liens.
Mass Identity Theft
Souvent, la combinaison des différentes fonctionnalités décrites ci-dessus peut être employée pour le vol d'identité à grande échelle, un évènement qui prend de lampleur aujourdhui.
Les faux emails, qui se font passer pour des organismes légitimes, demandent à leurs victimes de soumettre leurs identités personnelles et bancaires. Ces faux emails sont produits et envoyés par des bots via leur mécanisme de Spamming.
Autres bots
Dans les chapitres précédents, nous avons montré des exemples divers de bots. Nous avons vu également quils sont des outils efficaces pour la communication et la recherche dinformation, certains agissant à la frontière entre les deux.
Malgré lutilisation de cet agent, parfois dans un but malveillant, son champ dapplication sélargit de plus en plus avec lévolution de la technologie. Nous fermons ce chapitre en présentant un ensemble de ces bots.
Data Mining
Data Mining semploie en marketing dans le but danalyser les données collectées sur les habitudes des consommateurs.
Ces dernières années, le bot est devenu un outil efficace dans ce domaine. Beaucoup dentreprises les utilisent pour mieux cibler leurs clients sur le net. Le bot collecte des données sur le client, lors de sa visite sur le site de lentreprise. Ce dernier prend connaissance des besoins de lutilisateur. Ainsi, lentreprise utilise ces informations pour mieux répondre aux besoins de ses clients.
Par exemple, lorsquun client dAmazon effectue des recherches sur son site, les données relatives à cette recherche seront enregistrées dans une base de données. Ainsi lors de la future visite de ce même client, il sera surpris de voir sur le site un ensemble de produits qui pourrait lintéresser sans quil lait demandé.
Agents financiers
Un autre exemple dutilisation, employer les bots pour interagir dynamiquement avec un site d'une manière particulière en exploitant ou en localisant des opportunités financières comme sur les cours de la bourse.
Il y a eu beaucoup de polémique au sujet de l'utilisation des bots dans une fonction marchande automatisée par eBay qui souhaitait supprimer un tiers des employés spécialisés dans la recherche dopportunités financières au profit des bots.
Synthèse vocale
Les bots peuvent être utilisés pour le synthétiseur vocal. Cest une technique de synthèse sonore qui vise à créer des paroles artificiellement par un système de traitement du signal. Ainsi, il sera, par exemple, possible de concevoir des moteurs de recherche pour les non voyants.
Artificial Life
Les bots sont aussi utilisés dans ce quon appelle « le monde virtuel ». Dans ce monde nous côtoyons dautres personnes la plupart du temps provenant des mondes de « rencontre » et de jeux en ligne.
Le monde virtuel est hébergé sur un serveur et, grâce au bot, les changements quil subit lui seront appliqués au fur et à mesure. Ainsi, le monde virtuel serait constant et persistant. Cela signifie quil continue à évoluer indépendamment du fait que des « personnes » y soient présentes ou non.
Web sémantique au service de Spider
Concept de Spider sémantique
Comme nous avons vu précédemment, le Spider peut servir à lindexation de moteurs de recherche. Dans cette partie, nous allons définir une nouvelle architecture du Spider pour tenter daméliorer les recherches. Pour se faire, nous allons appliquer le mécanisme dune des méthodes de la web sémantique au fonctionnement du Spider.
Pour commencer, nous présenterons les principales familles des outils de recherche actuels. Nous pourrons ainsi savoir à quel niveau et pour quel outil cette amélioration serait possible. Ensuite, nous examinerons une des méthodes de la web sémantique. Pour finir, nous exposerons la nouvelle architecture du « Spider semantic ».
Principales familles doutils de recherche
On peut classer ces outils de recherche en trois familles : Annuaires, Moteurs de recherche et Métamoteurs.
Annuaires
Les annuaires sont les premiers outils de recherche sur lInternet. Un annuaire est une collection généraliste ou spécialisée de sites web. Cette collection est organisée hiérarchiquement selon différentes catégories.
Contrairement aux moteurs de recherche et aux métamoteurs dont le fonctionnement est entièrement automatisé, pour les annuaires, la validation et lindexation se fait par des hommes. Ainsi, ils offrent un niveau de précision plus élevé et une meilleure qualité.
Cependant, on constate que lutilisation des annuaires par des internautes est de moins en moins fréquente. Pour expliquer cela, on peut avancer deux raisons. La première raison résiderait dans le changement des préférences des internautes pour un accès direct à linformation. La seconde sexpliquerait par le coût très élevé de la maintenance des annuaires dû au manque dun mécanisme automatisé. Ainsi de nombreux annuaires ont disparu ou, comme Yahoo!, ont préféré devenir un moteur de recherche.
Dautres encore sorientent vers la constitution de « chaines thématiques ». Ainsi, on renvoie à du contenu (actualités, articles, pages web) et non à des sites pour répondre aux requêtes les plus fréquentes des internautes. Suivant cette orientation, on peut nommer des portails thématiques comme « la porte du droit » pour le droit ou comme « culture » pour les rubriques culturelles.
Les répertoires spécialisés ont également suivi cette orientation pour mettre à disposition des utilisateurs des sites dun secteur ou dun domaine particulier. Par exemple, dans le domaine des statistiques, le site « statistics » met à disposition de lusager des liens vers des sites dans le monde entier et propose une collection doutils pour les étudiants et les enseignants.
Figure STYLEREF 1 \s 2 SEQ Figure \* ARABIC \s 1 1: Page d'accueil de culture.fr
Moteurs de recherches
Par opposition aux annuaires qui recensent des sites, les moteurs de recherche sont des outils automatiques qui collectent et indexent un grand nombre de pages web. Un moteur de recherche se constitue de plusieurs éléments :
Robot dexploitation
Celui-ci est connu sous le nom de Spider. Ce dernier est chargé de collecter le contenu dun grand nombre de pages web et de les stocker dans une base de données. Cette base est constituée de champs qui contiennent le texte de la page, son titre, son adresse URL ainsi que dautres données collectées.
Indexation automatique
Au fur et à mesure que le Spider explore les pages, celui-ci construit un index à partir des mots significatifs de leur texte et linsère dans la base de données. Selon comment ces mots significatifs sont définis, lindexation varie dun moteur de recherche à lautre. Dune manière générale, tous les mots du texte de la page web sont indexés et ceci sans un traitement de leur sens.
Interrogation de lindex
La requête de lutilisateur est formulée par un ou plusieurs mots clés et lancée sur lindex du moteur de recherche. Ce dernier répond par laffichage des liens hypertextes vers les pages contenant les mots.
Le Spider commence par explorer la page daccueil des sites dont ladresse URL leur a été soumise au préalable. Ensuite, il suit les liens internes et externes à partir de la page daccueil. Ainsi, il collecte un nombre important de pages. Cest de cette manière que le Spider peut découvrir de nouvelles pages web.
Lillustration suivante montre comment un Spider dun moteur de recherche classique voit le site de « HYPERLINK "http://www.google.com" www.google.com ».
Figure STYLEREF 1 \s 2 SEQ Figure \* ARABIC \s 1 2: Spider Simulator à la découverte de google.com
Le temps nécessaire pour la mise à jour de lindex dépend du volume des pages indexées et peut varier allant dun jour à plusieurs semaines. Ainsi, il est possible que certaines pages ne soient plus disponibles sur le net dans lintervalle de la mise à jour de lindex. Cest pour cette raison que parfois nous verrons le message derreur « Error 404, not found ».
Afin de diminuer ce genre derreurs, les moteurs de recherche sorientent de plus en plus vers une mise à jour en deux temps. Dans un premier temps, sur la base des statistiques collectées par le moteur, on privilégie la mise à jour des sites les plus populaires. Dans un deuxième temps, les sites restants seront mis à jour.
Algorithmes de classement
Les moteurs de recherche classiques utilisent différents algorithmes pour classer leurs résultats de recherche. Lordre daffichage des résultats est lié directement aux algorithmes utilisés par les moteurs de recherche. Ainsi, ils sont conçus de manière à obtenir le meilleur score pour afficher les pages les plus susceptibles de répondre à la requête.
Les algorithmes varient, dune part, en fonction de la position de chaque mot dans la requête et, de lautre, en fonction dautres termes orthographiquement et phonétiquement similaires à ceux présents dans la requête.
De plus, le comportement des moteurs de recherche va aussi dépendre de la pondération affectée aux critères suivants :
Le nombre doccurrences dun mot au sein dune page pour une requête ;
La présence dans le titre de la page ;
Lexergue du texte (gras, souligné, etc.) ;
La présence dans les méta-tags tels que les « keywords » ou la « description » ;
La présence dans lURL de la page ;
La ressemblance aux mots clés dans la page ;
Enfin, les mots rares dans une requête ont une pondération plus importante que les mots communs et les pages les plus cliquées pour une même requête sont privilégiées dans lordre daffichage du résultat.
Métamoteurs
Les métamoteurs interrogent simultanément la base de données de plusieurs moteurs de recherche. Ainsi, ils ne maintiennent pas de base de données. Les résultats de la recherche seront présentés parfois en calculant un nouveau tri de pertinence ainsi quen éliminant les éventuels doublons. Notons que les métamoteurs ne traduisent pas toujours les langages dinterrogation (par exemple les caractères + et - sont laissés tels quels) et se contentent de déléguer ce travail aux moteurs de recherche quils interrogent.
Les métamoteurs sévaluent selon des critères différents, tels que : les sources dinterrogation, les options de paramétrage et la manière de présenter les résultats ainsi que les algorithmes de pondération.
Les métamoteurs sont divisés en deux grandes familles :
Les métamoteurs « on line »
Ce sont des métamoteurs directement accessibles sur le web. « Polymeta » qui fait partie de cette famille affiche les résultats de recherche sous forme de clusters.
Les métamoteurs « clients » basés sur le même principe de fonctionnement, sont des logiciels enrichis de plus de fonctionnalités dont le regroupement des catégories de recherche, le filtrage des résultats, lintégration dun agent dalerte et lautomatisation des requêtes récurrentes.
Le métamoteur « Copernic Agent » est un exemple de cette famille et est illustré ci-dessous.
Figure STYLEREF 1 \s 2 SEQ Figure \* ARABIC \s 1 3: Métamoteur Copernic
Web sémantique
La recherche dinformation sur lInternet signifie laccès à des ressources multiples, hétérogènes et fragmentées. De plus, les données existantes sont susceptibles dêtre modifiées ou supprimées et dautres sources dinformation peuvent apparaître sur le net. Dans ce contexte, une question se pose : comment trouver linformation dune manière plus efficiente ?
Il est évident que les moteurs de recherche classiques facilitent beaucoup la tâche. Cependant, la précision et la pertinence des résultats sont relativement faibles. Ainsi, un agent intelligent du web peut grandement améliorer le système de recherche.
Processus dindexation
Dans ce chapitre nous allons examiner le processus dindexation des pages web dans une optique dontologie orientée terminologie. Lobjectif principal est donc, de construire un index structuré des pages web qui serait en concordance avec une ontologie. Notons que ce processus est basé sur une idée des chercheurs du domaine de la web sémantique E. Desmontils et C. Jacquin.
Lontologie est un terme philosophique qui est défini comme « les explications systématiques de lexistence ». Cette définition varie selon son application. Ainsi, dans notre contexte, lontologie fournit le vocabulaire commun dun domaine spécifique et définit, plus ou moins formellement, la signification des termes et leurs relations entre eux.
Notons que le mot « concept » est désigné dans ce chapitre pour définir le sens qui découle du contenu de linformation analysée et lexpression « concept candidat » définit un des sens possible que peut avoir la page.
Dans ce cas, lontologie est un ensemble de concepts dont chacun est représenté par un terme et un ensemble de synonymes de ce terme ainsi quun ensemble de relations spécifiques qui relient ces concepts. Nous assistons ainsi à une hiérarchie des concepts.
Ce processus dindexation peut être divisé en quatre étapes :
Pour chaque page, un index est construit. Chaque terme de cet index est associé à sa « valeur de fréquence ». Ce coefficient dépend de chaque balise HTML qui décrit chaque occurrence du terme.
Un « thésaurus » sera utilisé pour déterminer tous les concepts candidats qui peuvent être étiquetés par un terme (situé dans lindex).
Chaque concept candidat dune page sera étudié afin de déterminer la représentativité du contenu de cette page. Cette évaluation est basée sur sa valeur de fréquence ainsi que sur les relations avec les autres concepts. Le but est de choisir le meilleur sens ou concept dun terme en relation avec le contexte. Notons que plus la relation dun concept avec dautres au sein de la même page est forte, plus il est significatif dans cette page. Donc la relation contextuelle minimise le rôle de la valeur de fréquence, même si cette dernière est très élevée.
Un filtrage des concepts candidats sera produit. Ce filtrage est basé sur leur représentativité, ainsi que sur lontologie. Un concept sélectionné serait un candidat qui appartient à cette dernière et qui a une représentativité élevée. Les pages qui contiennent un tel concept seront liées par lontologie.
Ce processus permet à lutilisateur davoir une vue globale dun site web sans quil soit nécessairement son propriétaire. Ce processus étant semi-automatique, il demande des ajustements par lutilisateur pour obtenir des résultats encore plus précis. Comparé à une approche dannotation, ce processus dindexation améliore le système de recherche. Ainsi, il permet un accès direct aux pages web dun concept, par opposition à une approche dannotation qui demande le parcours de toutes les pages dun site web pour trouver la même information.
Construction de lindex
Cest une étape importante du processus dindexation et de lévaluation dun concept dans une page HTML. La construction dindex peut être divisée en deux activités essentielles : (i) lextraction des termes de pages web et les calculs de la valeur de fréquence puis (ii) la détermination des concepts candidats par le calcul de leur représentativité.
Lextraction des termes
Lextraction des termes bien formulés est elle-même divisée en trois activités :
Suppression des balises HTML
Division du texte par des phrases indépendantes
Regroupement des mots liés de la page sous un mot-souche
Les mots de chaque phrase seront inscrits dans leur catégorie grammaticale correspondante (nom, adjectif) et la structure des phrases sera analysée selon des patterns de terme (nom, nom + nom, nom + adjectif) afin de fournir des termes bien formulés.
Pour chaque terme sélectionné, nous calculons sa valeur de fréquence. Cette dernière comprend la fréquence de chaque terme et en particulier les balises HTML qui sont liées à chacune de ses occurrences. Ainsi chaque type de balise influence différemment la valeur de fréquence. Par exemple la balise « TITLE » donne une importance considérable au terme.
Le tableau suivant illustre les coefficients attribués à certaines balises.
Description des balises HTMLBalises HTMLCoefficientTitre du document10Mots clés9Lien hypertexte8La taille de la police 75La taille de la police 64La taille de la police 53L'entête niveau 13L'entête niveau 23Le titre de l'image2Souligné2Italique2Gras2
Tableau STYLEREF 1 \s 21: Coefficients des balises HTML
Dans une page qui contient n différents termes, le Ti (avec i EMBED Equation.3 ) désigne un terme donné. Soit la F(Ti) la valeur de fréquence. Celle-ci se calcule par la somme des coefficients P de balises HTML. Le résultat sera ensuite normalisé.
EMBED Equation.3
où
EMBED Equation.3
et EMBED Equation.3 correspond au coefficient de la balise HTML de la jème occurrence du Ti.
Figure STYLEREF 1 \s 2 SEQ Figure \* ARABIC \s 1 4: Donnée de l'exercice sur la web sémantique
Le tableau ci-dessous illustre le calcul de la valeur de référence à la page HTML « page_sematique.html ».
TermeOccurrencesCoefficientsSomme des coefficientsValeur de fréquenceSémantique4{10, 9, 3, 2}241Web3{10, 9, 3}220.92Définition1{3}30.125
Tableau STYLEREF 1 \s 2 SEQ Tableau \* ARABIC \s 1 1: Résultat de l'exercice sur la web sémantique
La détermination des concepts dune page web
Selon G. A. Miller, pendant le processus de lextraction, les termes bien formulés sont extraits et leurs valeurs de fréquence sont calculées. Ainsi, les termes bien formulés de formes différentes seront représentés par un concept particulier.
Afin de déterminer un ensemble de concepts, un thésaurus tel que Wordnet sera utilisé. A partir de chaque terme extrait, tous les concepts candidats (tous les sens) seront générés. Dans le thésaurus, un sens sera représenté par une liste de synonymes. Ainsi, pour chaque concept candidat, la représentativité sera calculée selon la valeur de fréquence et la similarité cumulative du concept avec les autres concepts de la page.
Le calcul de la similarité permet dévaluer la distance entre deux concepts. Cette mesure est définie relativement à un thésaurus et les relations hyperonymes. Par exemple, le mot « église » a deux hyperonymes : « bâtiment » et « lieu sacré ». Ces deux termes nentretiennent pas de relations hiérarchiques lun par rapport à lautre car par « bâtiment » on entend « maison » (qui nest pas un lieu sacré) et « lieu sacré » inclut « cimetière » qui nest pas un « bâtiment ».
Pour calculer la similarité entre deux concepts, nous nous basons sur la proposition de Z. Wu et M. Palmer. Cette proposition est basée sur la distance darrêts. En effet, ils proposent de prendre en compte le plus spécifique subsumant (nud) qui domine les deux concepts. Rappelons que dans un thésaurus, à partir dun sens le plus commun dun terme, la relation d'hyperonymie définit un arbre de concepts de plus en plus généraux.
Un arbre est aussi une structure de données dans lequel les feuilles sont des éléments ne possédant pas de fils. Les nuds sont des éléments possédant des fils (sousbranches). La racine est le nud ne possédant pas de parent. La profondeur est le nème nud à partir de la racine.
Ainsi, en normalisant le plus spécifique subsumant qui caractérise les éléments communs des deux concepts, leur différence sera prise en compte. Le calcul de la similarité se fait avec la formule suivante où C est le subsumant le plus spécifique de C1 et C2. La EMBED Equation.3 est le nombre darrêts depuis le concept C jusquà la racine de la taxonomie et la EMBED Equation.3 (avec i EMBED Equation.3 ) est le nombre darrêts depuis le concept Ci jusquà la racine de la taxonomie en passant par C.
EMBED Equation.3
Figure STYLEREF 1 \s 2 SEQ Figure \* ARABIC \s 1 5: Calcul de la similarité pour Doctor et Nurse
Pour calculer limportance relative dun concept dans une page, nous définissons sa similarité cumulative. Celle-ci est la somme de toutes les valeurs de similarité entre ce concept et tous les autres concepts dune même page. Dans ce calcul, un concept spécifique est unifié avec lensemble de ses synonymes (synset) dans WordNet.
Dans la formule suivante, la similarité cumulative est notée par EMBED Equation.3 . lk définit les ensembles de synonymes associés à un terme Tk des m termes de la page.
Notons que EMBED Equation.3 est normalisé.
EMBED Equation.3
Pour finir, la représentativité dun concept dans un document est déterminée par le coefficient de la représentativité. Ce coefficient est une combinaison linéaire de la valeur de fréquence et de la similarité cumulative dun concept. Ainsi, ce coefficient est lélément principal pour qualifier la réponse à une requête.
EMBED Equation.3
Processus dévaluation
A ce stade du processus, nous avons dune part, une ontologie orientée terminologie et dautre part, les concepts candidats avec leur représentativité. Dans létape suivante, les concepts candidats seront assortis avec les concepts de lontologie. Si un concept dune page est une ontologie, lURL de la page et sa représentativité seront ajoutées à lontologie.
Afin dévaluer lappropriation dune ontologie dans un ensemble de pages HTML, cinq coefficients seront calculés :
DID (Direct Indexing Degree) : le taux des concepts directement impliqués dans la page HTML ;
IID (Indirect Indexing Degree) : le taux des concepts indirectement impliqués dans la page HTML (calculé par la relation spécifique ou générique) ;
OCD (Ontology Cover Degree) : le taux des pages concernées par les concepts dontologie ;
MRC (Mean of the Representativeness of candidate Concepts) : le moyen de la représentativité des concepts candidats ;
OSAD (Ontologie-Site Adequacy Degree) : ce coefficient sera la somme linéaire de chaque moyen des autres coefficients.
Ainsi, le processus dévaluation nous permettrait de déterminer ladéquation des pages HTML dun site. Cette adéquation pourrait être exprimée par un flux XML ou dans une base de données. Les pages HTML liées à un concept (sens) seraient listées et cette liaison serait exprimée par la valeur de fréquence et la représentativité du concept au sein de la page.
Exploitation de lapproche pour les requêtes
La plupart des moteurs de recherche utilisent des simples mots clés pour lindexation des pages web. Dans ce processus, les requêtes sont constituées dune liste de mots clés reliés par des opérateurs logiques (AND, OR, XOR,
).
Lontologie orientée terminologie et lindex structuré permettent daméliorer le processus du traitement de la requête. Ainsi, les requêtes sont traitées à deux niveaux : terminologie et concept. Cette approche permet plusieurs améliorations :
La requête de lutilisateur sétend et les termes se transforment en concepts ;
Les opérateurs logiques fournissent une sémantique plus riche que de simples mots clés ;
Les réponses aux requêtes sont plus convenables
Dans cette approche, les termes sont remplacés par leurs concepts (sens) associés. En premier lieu, les concepts candidats sont sélectionnés dans lontologie. Les autres concepts de la requête et les opérateurs logiques seront étudiés. Finalement, si un terme est associé avec plusieurs concepts candidats, lassistance de lutilisateur sera demandée. Si lensemble des termes dune requête nest associé à aucun concept à la fin du processus, les termes seront déclarés non pertinents pour le site.
Enfin, par rapport aux méthodes dindexation traditionnelles qui sont basées soit sur la recherche des mots clés, soit sur les méthodes dannotation, ce processus présente plusieurs avantages :
Les pages sélectionnées contiennent les concepts demandés et non pas seulement les mots clés ;
Les concepts sont représentatifs des sujets traités dans la page sélectionnée ;
Les termes qui sont responsables de la sélection de la page ne sont pas toujours ceux de la requête mais ils peuvent être synonymes ;
Les pages sélectionnées contiendront les concepts demandés et les concepts plus spécifiques ;
Limportance dun concept ne dépend pas seulement de la fréquence de ces termes mais également des balises HTML qui le décrivent et les relations avec dautres concepts de la page.
Intégration de la web sémantique au Spider
Sur la base des trois familles doutils de recherche que nous avons présentées dans cette partie, nous constatons que pour les annuaires, lindexation est manuelle et en ce qui concerne les métamoteurs, ceux-ci ne maintiennent pas de base de données.
Nous avons remarqué que les moteurs de recherche utilisent des Spiders pour lexploration des pages web et lindexation de leur contenu. Comme précisé auparavant, la technique dindexation utilisée consiste à répertorier les termes présents dans chaque page, ceci sans laspect sémantique. Ainsi, nous pouvons déduire quune amélioration automatique ne peut se faire quau sein des moteurs de recherche.
Pour cela, nous suggérons lintégration de la web sémantique dans le processus dindexation pratiqué par le Spider.
Démarche dintégration
Notre démarche se base sur deux éléments. Dune part, le fonctionnement du Spider et, dautre part, le processus dindexation de la web sémantique qui ont été développés ci-dessus.
Le Spider dont nous présentons les caractéristiques, prend en charge le parcours des pages web dun site. Notons que les liens externes (c'est-à-dire les liens sur le même hôte que la homepage) ne seront pas traités dans notre cas.
Pour chaque page que le Spider trouvera, un processus dindexation automatique sera lancé pour définir le sens de la page. Ainsi, nous améliorerions le fonctionnement du spider en intégrant une méthode de la web sémantique.
Le schéma suivant illustre le processus dindexation sémantique dun Spider.
Diag. STYLEREF 1 \s 2 SEQ Diag. \* ARABIC \s 1 1: Diagramme d'activité de Spider Sémantique
Prototype Robotina
Introduction à Robotina
Dans ce chapitre nous allons présenter un exemple de bot, un prototype que nous avons développé qui mettra en uvre des fonctionnalités typiquement assignées au bot. Nous lavons nommé « Robotina ». Ainsi, nous allons faire le lien entre lutilisation des bots basés sur la recherche dinformation et les outils de recherche.
Nous verrons également toutes les contraintes liées à la mise en uvre de Robotina. Ainsi, nous examinerons son aspect juridique, son classement dans les outils de recherche et lintérêt de la web sémantique dans le cadre de son utilisation.
But de Robotina
Robotina sera un moteur de recherche personnalisé qui permettra à un individu deffectuer des recherches sur les sites "fiables" connus à lavance pendant une durée déterminée.
En effet, Robotina mettra à disposition de son utilisateur les dernières données venant de ces sites. Imaginons une personne qui souhaite obtenir des informations sur un sujet précis dans divers sources.
Comme le montre lillustration suivante, lutilisateur va devoir senregistrer sur le site de Robotina pour ouvrir un compte.
Figure STYLEREF 1 \s 3 SEQ Figure \* ARABIC \s 1 1: Démarche d'inscription sur le site Robotina
Ensuite il pourra faire des recherches sur lensemble des sources disponibles et les conserver pendant un mois.
Figure STYLEREF 1 \s 3 SEQ Figure \* ARABIC \s 1 2: Utilisation de Robotina pour une recherche d'article
Notons que Robotina est conçue pour conserver les articles de ses sources pendant un mois. Une fois cette durée dépassée, les articles ainsi que les recherches seront supprimés pour des raisons de stockage dans la base de données.
Voici le résultat dune recherche avec un mot clé donné :
Figure STYLEREF 1 \s 3 SEQ Figure \* ARABIC \s 1 3: Résultat de recherche de Robotina
Nous allons définir la notion de sites « fiables » dans le chapitre suivant.
Comment définissons-nous un site fiable ?
Comme nous lavons mentionné, Robotina ne permet deffectuer des recherches que sur des sites « fiables ». Ici nous tentons de définir cette notion pour les sites de sources.
La fiche descriptive (nom du site, description et le public visé), le contenu proposé (pertinence, qualité, mise à jour et documentation) et la présentation globale du site (ergonomie et design) sont les catégories principales des critères pris en compte pour lévaluation dun site web.
De plus, dans le cas particulier de notre prototype, le site source doit générer des flux RSS pour que Robotina puisse linterroger.
Accès à linformation électronique
Robotina rediffuse les articles de presse émis sur le net par des sociétés médiatiques. Le contenu de ces articles, des textes, des commentaires, des ouvrages, des illustrations et des images reproduits sur les sites Internet de ces sociétés ou ces organisations est protégé par la propriété intellectuelle. A ce titre, et conformément à la législation suisse et européenne en la matière, seule est permise leur utilisation pour un usage privé.
Il est interdit au client notamment de copier, reproduire, diffuser, vendre, publier, exploiter de toute autre manière ou diffuser dans un format différent ou autre les informations présentes sur les sites des sociétés respectives. En conséquence, toute utilisation qui ne résulte pas d'un usage privé ainsi que la reproduction totale ou partielle du contenu de ces sites sera considérée comme une violation des droits de la propriété intellectuelle et sanctionnée comme telle, sauf autorisation préalable de la société concernée.
Larticle de Maître Valérie Sédallian qui décrit les grands principes de la protection juridique des uvres (en annexe) nous amène à la conclusion que pour utiliser des articles de presse provenant des sites Internet, nous devons respecter les droits dauteurs. Ainsi, la société exploitante de Robotina, ne peut utiliser le contenu des articles des sociétés médiatiques à moins que lon lui ait donné préalablement lautorisation.
Pour en bénéficier, la société exploitante de Robotina doit parvenir à conclure des contrats avec les propriétaires des sites sources. Leur définition est présentée en annexe.
Conformément à cette définition, nous pouvons distinguer deux cas dutilisation pour Robotina :
Usage privé :
Dans ce cas, lutilisateur bénéficie des avantages de Robotina à des fins strictement privées. Dans ce cadre, la loi permet, à priori, une utilisation des données si ces dernières ne font pas lobjet dune reproduction et/ou si linformation nest pas représentée sur le net par lusager.
Usage public :
Pour que Robotina serve doutil à la disposition du public, lexploitant doit conclure un contrat avec chaque fournisseur dinformation.
Cette distinction influence partiellement le fonctionnent de Robotina au niveau de linterrogation des flux RSS du fournisseur dinformation. En effet, pour un usage privé, Robotina doit récupérer les flux RSS de manière directe, via le site source.
En revanche, dans le cadre dun contrat, comme on le mentionne dans lannexe (voir le chapitre des contrats), le fournisseur de données doit mettre à disposition du contractant les moyens pour exécuter son obligation. Ces moyens sont relatifs à la nature du contrat et à la capacité du prestataire.
En somme, le fournisseur doit mettre à disposition de Robotina sa base de données et les mots de passe associés.
Robotina et les familles de moteurs de recherche
Sur la base de la définition des familles de moteurs de recherche et la description de lidée de Robotina, nous allons dans ce chapitre attribuer une classification à notre prototype.
Robotina se veut être un moteur de recherche personnalisé, en loccurrence dans le domaine de la presse. Elle interroge le flux RSS des sites médiatiques préalablement définis comme des sites de sources fiables. Elle tient également sa propre base de données.
Donc dune part on peut dire que Robotina est un métamoteur personnalisé puisquelle neffectue la recherche que sur les sites préalablement inscrits dans sa liste de sources. Elle est personnalisée car les sites interrogés appartiendront au même secteur dactivité. Dans le cadre de notre prototype, ce sont des sites de média.
Dautre part, Robotina maintient sa propre base de données. Ainsi elle fonctionne comme un moteur de recherche classique.
En somme, Robotina prétend fournir des résultats de qualité. Sa qualité se situe plutôt, au même niveau que celle des annuaires. Dailleurs le fait de choisir manuellement les sites sources soulève deux points. Premier point : par le choix des sites fiables nous cherchons à fournir un service de qualité et des résultats de recherche les plus exacts. Second point : nous souhaitons rester dans le même secteur dactivité et conserver lintitulé personnalisé.
Robotina propose une recherche simple et donne le choix à ses utilisateurs dobtenir les dernières informations provenant des sites choisis par eux-mêmes et dans les langues voulues.
Robotina affiche les résultats sous forme de cluster depuis le site de provenance et conserve les résultats de recherche pour une durée déterminée. Notons que dans le cas dune utilisation publique de Robotina, louverture dun compte est nécessaire pour la conservation de ces résultats. Autrement, Robotina peut être utilisée pour un usage privé comme un moteur de recherche personnel.
Pour finir, nous nous sommes rendu compte au cours de cette étude, quil existe des moteurs de recherche similaires à Robotina. Malgré cela, la mise en uvre de lidée pour lensemble des sites médiatiques Suisse serait une première.
Quapporterait la web sémantique à Robotina ?
Nous pouvons constater que la web sémantique impose un traitement très lourd au système pour obtenir des résultats plus ou moins fiables, néanmoins, la web sémantique est un moyen puissant daffiner la recherche classique.
En ce qui concerne Robotina, lapplication de la web sémantique pourra améliorer le système de recherche. Cependant étant donnée limportante demande en ressources, nous navons pas besoin de ce procédé. Sachant que laffinement de la recherche est en partie effectué par la limitation des sites sources.
Robotina, un moteur de recherche
Comment Robotina alimente-elle sa base de données ?
Dans ce chapitre nous allons voir comment Robotina recueille les informations et alimente sa base de données. Nous avons précédemment précisé quelle récupérait les flux RSS mais sans approfondir cette notion.
Quest ce que sont les flux RSS ? Les flux RSS (Really Simple Syndication) sont des flux de contenus gratuits en provenance de sites Internet. Ils incluent les titres des articles, des résumés et des liens vers les articles intégraux à consulter en ligne. Les dernières informations publiées sur un site source peuvent ainsi venir enrichir la base de données de Robotina.
Robotina insère les informations dans sa base de données pour deux principales raisons. Dune part, elle permettrait ainsi à ses utilisateurs non seulement dafficher les liens vers les dernières informations apparues sur les sites sources mais aussi de leur permettre deffectuer des recherches personnalisées. Ainsi lusager peut choisir les articles qui lintéressent en insérant un mot clé et le système soccupe du filtrage des données.
Dautre part, lutilisateur peut enregistrer sa recherche dans la base de Robotina, ainsi le bot continue à chercher les informations même en son absence.
A ces raisons, ajoutons également que lutilisateur ne devra sinscrire quune seule fois sur le site de Robotina et il aura laccès à plusieurs sites sources. Ainsi, plutôt que de devoir sinscrire sur plusieurs sites et se connecter régulièrement à des sites Internet de référence, lutilisateur pourrait consulter à tout moment les derniers titres mis à jour. Dès qu'un titre lintéresse, il suffirait de cliquer sur celui-ci, pour accéder directement à l'article correspondant.
Rappelons que les flux RSS sont réunis dans un fichier au format XML. Nous avons comparé le fil RSS de plusieurs sites sources que le prototype Robotina propose à ses clients. Nous nous sommes rendus compte que les flux RSS ne sont pas normalisés. Chaque journal génère ses flux à sa guise. Ainsi le contenu des articles (la balise ) nest pas toujours renseigné. Lillustration suivante illustre ce fait par la comparaison de deux de nos sites sources : le courrier et le temps.
Figure STYLEREF 1 \s 3 SEQ Figure \* ARABIC \s 1 4: Comparaison des flux RSS du Temps et du Courrier
Dune manière générale, un fil RSS contient le titre de l'information, la description et le lien vers une page décrivant plus en détail l'information.
Faute de normalisation des flux RSS, le contenu ne sera pas toujours récupérable par le simple téléchargement du fichier. Ainsi, pour se faire il faudrait personnaliser ce processus pour chaque site source. Par exemple pour pouvoir insérer un article du temps, le bot de Robotina, pour chaque lien, doit aller sur la page web référencée et la télécharger et ensuite parser les balises HTML de la page pour enfin insérer le contenu de larticle dans la base de données.
Cela est possible et peut se faire de deux manières. La première serait un parcours séquentiel de chaque article dun site source après lautre. Cela évidement prendra beaucoup de temps et en particulier de ressources puisque le bot doit connaître pour chaque site source la méthode de parsing quil doit appliquer.
La deuxième solution consisterait à mettre en uvre un système de processus parallèles. Dans ce cas chaque processus sera chargé de parser un des sites sources dont il connaît la méthode de parsing. Ainsi, par exemple un bot en java, muni de multithreading répondra à ce besoin.
Dans le cas du prototype Robotina, nous nous sommes contentés dinsérer dans la base uniquement des informations englobées dans les balises de « Title », « Link » et « Description » qui décrivent respectivement le titre de larticle, le lien vers la page web contenant larticle et la description de larticle.
Nous pensons que ces balises contiennent suffisamment de données et sont assez pertinentes pour permettre deffectuer des recherches sur le contenu des articles.
Fonctionnement du bot de Robotina
Le bot tourne grâce à une boucle infinie qui constitue, en effet, son cur. Cette boucle permet au bot dexécuter les méthodes de manière synchronisée et automatisée.
Le bot doit connaître où il doit aller chercher linformation. Cest pour cette raison quavant dentrer dans la boucle infinie, il va se connecter et interroger la base de données et charger lURL des sites sources. Ces URL définissent lemplacement des fichiers XML contenant les flux RSS.
Ainsi, pour chaque site source, le bot va lire le fichier au format XML, extraire le flux RSS et récupérer les données. Une fois cette partie terminée, la boucle infinie sera déclenchée.
Par convention, à un intervalle de temps régulier, le bot recommence le même processus. Cela permettrait de mettre à jour la base de données dans le cas où les nouveaux articles sont ajoutés aux flux RSS. Il insère dans la base ces articles tout en évitant les doublons. Dans ce processus le bot tiendra compte également des sites sources qui auront pu ajoutés à la liste.
Nous avons fixé lintervalle de temps à douze heures. Ceci est un élément paramétrable qui pourrait être modifié par les concepteurs du bot.
Le diagramme suivant illustre le processus dacquisition de linformation à partir des sites sources jusquà la mise à jour de la base de données.
Diag. STYLEREF 1 \s 3 SEQ Diag. \* ARABIC \s 1 1: Diagramme d'activité du fonctionnement de Robotina
Architecture du système de Robotina
Nous terminerons cette partie en revenant aux notions développées au début de la première partie de ce travail. Ici, nous examinerons les qualités que le bot de Robotina, étant un agent, doit posséder (hériter).
Nous avons vu quau cur du bot, une boucle infinie assurait lautomatisme du bot. Lautomatisme est le comportement particulier de cet agent. Quen sont les autres qualités ?
Comme le montre le schéma suivant, le système de Robotina est constitué de quatre entités. Le bot de Robotina se renseigne à laide de la table « Source ». Ainsi, il saurait où il peut acquérir les informations. Le bot cherche les données et les stocke dans la table de « lArticle ». De cette même table ainsi que de la table de la « Recherche », le bot supprime les données obsolètes une fois tous les trente jours.
Diag. STYLEREF 1 \s 3 SEQ Diag. \* ARABIC \s 1 2: Schéma de la base de données de Robotina
Le bot effectue son travail indépendamment des autres éléments du système, en particulier lentité de « lUtilisateur ». Ce sont des éléments qui composent linterface dutilisateurs et qui soccupent de la recherche, de sa conservation et notamment de la gestion des utilisateurs.
La sociabilité du bot découle du fait que le bot interagit dune part, avec le système en lalimentant en information et dautre part avec son environnement, en loccurrence, lInternet.
Pour chaque récupération des flux RSS dun site source, le bot fait un compte-rendu de cette activité dans un fichier « log ». Ainsi, lorsquune erreur se produit, par exemple si le fichier XML du site source est inaccessible, il rapporte lerreur dans le fichier log avec lheure et la date de lerreur et continue à tourner. Par ce fait nous constatons que le bot est réactif.
Figure STYLEREF 1 \s 3 SEQ Figure \* ARABIC \s 1 5: Illustration du fichier log de Robotina
Le manuel de mise en marche, le manuel de programmeur du bot, les codes PHP du bot et de linterface utilisateur de Robotina ainsi que les codes SQL de Robotina pour la base de données sont en annexe de ce travail.
Résumé
Comme nous lavons vu au cours de ce travail, un bot peut être un outil psychologique, le Chatterbot en est une illustration, ou un outil filtrant comme par exemple un agrégateur.
Les bots sont des agents qui sont utilisés dans le domaine de la communication ou pour la recherche dinformation.
A linstar dun agent, un bot a besoin dun environnement dans lequel il peut agir pour atteindre ses objectifs. Cet environnement correspond à un réseau, tel que lInternet. Pour pouvoir communiquer dans ce réseau, les bots ont besoin dun langage commun, à savoir un protocole.
Lautonomie, la sociabilité, la réactivité et lautomatisme sont les propriétés primordiales dun bot. Cependant, ce dernier doit être muni dautres compétences pour pouvoir effectuer une tâche spécifique qui lui sera confiée.
Nous avons vu que pour une indexation sémantique le Spider doit être équipé dun parseur sémantique. De la même manière, un agrégateur de presse doit être capable dextraire les données dans un fichier XML.
Dans la mesure où le bot agit dans un environnement, il doit pouvoir également répondre adéquatement aux exigences de cet environnement. Au sein de ce dernier, il existe des enjeux et des règles à titres juridique, économique et technologique que le concepteur de bot doit prendre en considération.
Nous pouvons constater que le monde des bots a des points communs avec notre monde dans le sens où chaque bot est attaché à une activité particulière et doit remplir certaines tâches spécifiques.
Sur la base de ce que nous avons présenté dans ce travail, le diagramme suivant illustre la hiérarchie qui règne dans ce monde.
Diag. STYLEREF 1 \s 3 SEQ Diag. \* ARABIC \s 1 3: Hiérarchie des bots
Bibliographie
Livres
AUZENAT, Jérôme, CRUZ, Isabel, DECKER, Stefan et McGUINNESS, Deborah, The Emerging Semantic Web. Amsterdam: IOS Press, 2002.
BATTISTI, Michèle, L'accès à l'information électronique. Paris: ADBS éditions, 2004.
GLOSSBRENNER, Alfred et Emily, Search engines for the World Wide Web. Berkeley: Peachpit Press, 1999.
HEATON, Jeff, Programming Spiders, Bots and Aggregators in Java. Alameda: SYBEX, 22.
LAMB, Monica, Army of web bots. Bloomington: Authorhouse, 2003.
MESGUICH, Véronique et THOMAS, Armelle, Net recherche. Paris: ADBS éditions, 2006.
WILLIAMS, Joseph, Bots and other Internet Beaties. Indianapolis: Sams.net Publishing, 1996.
Sites Internet
HYPERLINK "http://classes.scriptsphp.net" http://classes.scriptsphp.net
Ce site se compose d'un ensemble d'articles et de classes écrites en PHP ainsi que de leur documentation respective.
HYPERLINK "http://classes.scriptsphp.org/article.Un-bot-IRC" http://classes.scriptsphp.org/article.Un-bot-IRC
Un article sur la création dun bot IRC.
HYPERLINK "http://wikipedia.org" http://wikipedia.org
Encyclopédie libre online.
HYPERLINK "http://www.alicebot.org/" www.alicebot.org/
Le site du Chatterbot axé sur lintelligence artificielle faible et qui donne son nom aux Alicebots.
HYPERLINK "http://www.cnts.ua.ac.be/conll2004/pdf/08188tsa.pdf#search=%22verb%20semantic%20edge%20distance%22" www.cnts.ua.ac.be/conll2004/pdf/08188tsa.pdf#search=%22verb%20semantic%20edge%20distance%22
Il sagit dun document sur le calcul sémantique de la distance entre deux concepts.
HYPERLINK "http://www.commentcamarche.net" www.commentcamarche.net
Ce site est composé dun ensemble de notions informatiques telles que la définition de différents types de réseau et des sockets.
HYPERLINK "http://www.cs.cmu.edu/afs/cs/project/jair/pub/volume11/resnik99a.pdf#search=%22verb%20semantic%20edge%20distance%22" www.cs.cmu.edu/afs/cs/project/jair/pub/volume11/resnik99a.pdf#search=%22verb%20semantic%20edge%20distance%22
Un article concernant la similarité sémantique dans une taxonomie.
HYPERLINK "http://www.csadmin.net/aidebot.php" www.csadmin.net/aidebot.php
Un article traitant de la création dun bot sous mIRC.
HYPERLINK "http://www.damas.ift.ulaval.ca/~pasquier/Bonom/ElementsTheoriques.html" www.damas.ift.ulaval.ca/~pasquier/Bonom/ElementsTheoriques.html
Des éléments théoriques sur les systèmes multi-agents.
HYPERLINK "http://www.developer.com" www.developer.com
Ce site présente des articles et des exemples pour la programmation et larchitecture des différents outils informatiques dont Spider et lagrégateur.
HYPERLINK "http://www.developpez.com" www.developpez.com
Il sagit dun forum des développeurs professionnels actifs dans les domaines différents de linformatique, notamment la programmation des bots.
HYPERLINK "http://www.fse.ulaval.ca/fac/href/grille/grille.gif" www.fse.ulaval.ca/fac/href/grille/grille.gif
La grille danalyse des sites Internet de luniversité de Laval.
HYPERLINK "http://www.hiersay.net" www.hiersay.net
Un site consacré au protocole IRC et au dialogue en direct sur lInternet
HYPERLINK "http://www.honeynet.org/papers/bots/" www.honeynet.org/papers/bots/
Un article sur les botnets et leur utilisation malveillante
HYPERLINK "http://www.internet-juridique.net" www.internet-juridique.net
L'Internet Juridique présente les activités du cabinet d'avocat de Valérie Sédallian, spécialisée dans le droit de l'informatique, des réseaux et des nouvelles technologies.
HYPERLINK "http://www.jabber.org" www.jabber.org
Le site officiel du protocole jabber.
HYPERLINK "http://www.lri.fr" www.lri.fr
Laboratoire de recherche en intelligence artificielle de luniversité de Paris-sud 11.
HYPERLINK "http://www.mirc.com" www.mirc.com
Ce site fournit des informations générales au sujet de mIRC.
HYPERLINK "http://www.php.net" www.php.net
Ce site met à disposition du programmeur un manuel de php décrivant les méthodes de ce langage.
HYPERLINK "http://www.zdnet.fr" www.zdnet.fr
Ce site réunit des articles présentant lactualité des systèmes dinformation.
Annexes
Manuel de mise en marche de Robotina
Cette partie va décrire la marche à suivre pour la mise en production du bot Robotina.
Pré requis :
PHP4
MySQL
Mise en place de linterface du site.
Création de la base de données.
Sélection des sites sources et inclusion dans le programme (pour le prototype fourni, ce travail à déjà été effectué).
Mise en place du bot sur le serveur.
Lancement du bot (boucle fondamentale).
Mise en ligne du site.
Manuel de programmeur du bot de Robotina
connexion
Permet de se connecter à la base de données
@param -
deconnexion
Permet de se déconnecter de la base de données
@param -
lit_xml
Lit un flux XML
@param -
lecteurRSS
Lit un flux RSS et récupère les titres, liens et descriptions
@param $fileRSS
linkExist
Vérifie si le lien passé en paramètre existe dans la base de donnée, renvoi un boolean
@param $currentLink
insertionContenu
Insère dans la table article les articles reçus en paramètres
@param $contenu, $src_id
killSearch
Supprime les recherches obsolètes
@param
killArticle
Supprime les articles obsolètes
@param
killOld
Appel de la suppression des recherches et des articles obsolètes
@param
MaJContenu
Met à jour les articles provenant de la source passée en paramètre
@param $srcRSS, $srcID
linkExist
Vérifie si le lien passé en paramètre existe dans la base de donnée, renvoi un boolean
@param $currentLink
ouvertureFichierLog
Ouverture du fichier log
@param $nomFichierLog
ecritureFichierLog
Ecriture dans le fichier log
@param $msg
fermetureFichierLog
Fermeture du fichier log
@param $fichierLog
url_exists
Vérifier si l'URL est atteignable
@param $url_a_tester
Codes PHP du bot Robotina
Code :