, ; (ii) Rapport du stage : Collecte d’information sur le Web relatif des domaines restreints, base d’agents et d’ontologies Supprimer les marqueurs inutiles (supprimer seulement ces marqueurs, ne supprime pas le contenu dans des marqueurs); (iii) Chaque paire des marqueurs restante devient un noeud de l'arbre DOM ; (iv) Ce marqueur est contenu direct d'un marqueur parent devient un fils direct du noeud correspondant au marqueur parent Puis, on peut éliminer des bruits (les nœ uds inutiles) sur l’arbre en utilisant la technique sur l’arbre ST (Style Tree [44]) En suite, les régions contenant des informations sont déterminées en se basant sur des techniques différentes : en utilisant la distance éditée entre les chnes caractères ([17], [44]) ; en calculant la cọncidence entre les chnes caractères ([6], [24]) Les régions déte rminées sont réservées la phase d’extraction des données La création d’un arbre DOM se fait selon des étapes claires et concrètes Cependant, elle n’est efficace qu’avec les pages dont les régions représentent les informations sous forme d’un tableau (en lignes et en colonnes [19]) ou sous une forme identique pour plusieurs pages ([6], [17], [24], [44]), ex pour les pages représentant les produits (livres, voitures, vêtements… ) Elle ne marche plus sur les sites dont les pages ont des formulaires différents c Utilisation d’ontologie du Web Cette approche est aussi basée sur la structure des marqueurs HTML dans une page Web Une page HTML est construite par un ensemble des marqueurs HTML Cet ensemble contient les éléments définis et le nombre de type des éléments est limité On peut représenter ces marqueurs par un ensemble de classes et d’instances, on dit que l’ensemble des classes et instances correspondant aux marqueurs HTML est une ontologie Web Le processus de détermination des régions est le suivant : tout d’abord, une page HTML est projetée sur l’ontologie Web dont chaque classe ou instance correspond un marqueur HTML ; puis, les régions contenant des informations sont déterminées sur le résultat de la projection, ex ([7], [10]) utilisent les règles construites en JessTab [9] pour déterminer les régions L’utilisation d’ontologie Web a un grand avantage : elle est appliquée n’importe quel type de page Web Parce que l’ontologie Web est indépendante de la source, de la structure et du contenu de la page HTML Cependant, elle a aussi un désavantage : pour raisonner sur l’ontologie, il faut utiliser des règles dont la gestion est complexe et dont la manipulation n’est pas très facile 1.1.2 Extraction des informations sur les régions Après avoir déterminé les régions contenant des informations, on a besoin d’extraire les informations nécessaires Trois principales approches peuvent être utilisées : L’approche basée sur la syntaxe des marqueurs HTML L’approche basée sur l’ontologie de domaine (extraction sémantique) L’approche basée sur des agents Rapport du stage : Collecte d’information sur le Web relatif des domaines restreints, base d’agents et d’ontologies règles, la même base de teste En théorique, comme AGATHE a plusieurs agents qui peuvent traiter en parallèle, cependant MasterWeb n’a qu’un seul agent d’extraction qui s’occupe tout le processus d’extraction, on espère que AGATHE traite plus rapide que MasterWeb En effet, la vitesse de traitement n’est pas déterminée précisément car le temps de traitement quand plusieurs agents partagent un serveur (centralisé) est tout faire différent de celui quand chaque agent se situe sur un serveur (distribué) En outre, on a un problème de conflit entre les agents utilisant le moteur d’inférence s’ils sont miss sur la même machine On ne peut pas encore déterminer le temps de traitement dans le car centralisé b Extraction sémantique Les informations extraites sont tenues par les instances de la classe Slot-Found qui a les slots suivants (figure 24) : Figure 24 : Les slots de la classe Slot-Found L’utilisateur s’intéress e aux slots principaux : Slots-of-Web-Page: représente le slot de la classe Web-Page dans lequel l’instance a été trouvé Values: représente le contenu qui appart dans la page Start-Position: le point départ de la valeur Slot-in-Process: représente le slot de la classe auquel l’instance corresponds Voici quelques instances trouvées dans une page (figure 25) en utilisant l’ontologie de domaine d’événement scientifique Par exemple, avec l’instance 17 dans la figure 26, on a trouvé la valeur « papers » : c’est une instance de la classe « Event40 Rapport du stage : Collecte d’information sur le Web relatif des domaines restreints, base d’agents et d’ontologies Publication » Elle appart la place du caractère 8008 ème dans le slot « Lowercase-Contents » de la classe Web -Page La permière ligne signifie que la page est classifiée : elle appartient la classe « Conference » (figure 26) Figure 25 : Une page classifier et extraire … classified class Conference … Extracteur : ========================= instance :17 :Slots-of-Web-Page: Slot(Lowercase-Contents) :Values: "papers" :Start-Position: 8008 :Slot-in-Process: Slot(Event-Publication) … Extracteur : ========================= instance :23 :Slots-of-Web-Page: Slot(Lowercase-Contents) :Values: "submission" :Start-Position: 4932 :Slot-in-Process: Slot(Deadline) … Extracteur : ========================= instance :30 :Slots-of-Web-Page: Slot(Lowercase-Contents) :Values: "program committee" :Start-Position: 764 :Slot-in-Process: Slot(Program-Committee) … Figure 26 : Le résultat de classification et d’extraction 41 Rapport du stage : Collecte d’information sur le Web relatif des domaines restreints, base d’agents et d’ontologies 3.4.3 Perspectives La première version du système AGATHE est limitée dans la partie d’extraction, dans un seul domaine (un seul cluster) avec une topologie : un Préparateur, un Extracteur et un Stockeur A l’avenir, on va élargir le système par : Valider le système avec plusieurs extracteurs, plusieurs préparateurs dans un même cluster Réaliser la partie d’extraction avec tous les cinq types d’agent dans le SSE Réaliser le système avec tous les trois sous systèmes : SSR, SSE et SSU Appliquer le système plusieurs domaines différents (plusieurs clusters différents) En particulier, résoudre le problème de conflit quand plusieurs agents utilsant le moteur d’inférence sont miss sur la même machine 3.5 Conclusion Ce chapitre a présenté la première version de la projection du système MasterWeb l’architecture AGATHE Elle est limitée dans la partie d’extraction dans un seul domaine de « événement scientifique » (agent « Call for Papers ») , le cœur des systèmes d’ EI Déterminé et analysé le problème de projeter de l’agent d’extraction de MasterWeb au sous système d’extraction de AGATHE Réalisé le système, en particulier le sous système d’extraction de AGATHE dont les trois agents Préparateur, Extracteur et Stockeur sont priorités, sur la platforme JADE Le système réalisé est encore limité en trois agents du SSE En outre, il n’est pas encore validé En avenir, il peut être élargi pour plusieurs agents qui peuvent traiter parallèle dans le même cluster, pour tous les agents dans le SSE, pour tous les trois sous systèmes de AGATHE et pour plusieurs clusters correspondant aux plusieurs domaines différents 42 Rapport du stage : Collecte d’information sur le Web relatif des domaines restreints, base d’agents et d’ontologies Conclusion Le problème d’EI est de plus en plus complexe dans le contexte de Internet où les informations augmentent très vite et les sources d’information sont hétérogènes Elles sont créées par des personnes différentes, pour des buts différents et sous des structures différentes Plusieurs approches différentes sont proposées pour résoudre le problème Généra lement, l’EI sur le Web explicite contient deux étapes : l’extraction des régions des données et l’extraction des données sur les régions L’extraction des régions peut être faite selon trois approches : en se basant sur le traitement de langage naturel ; en se basant sur des marqueurs sémantiques créés par l’utilisateur ; en se basant sur la structure de la page HTML L’approche basant sur la structure de la page HTML a trois tendances : en utilisant les techniques de XML et XSLT ; en utilisant l’arbre des marqueurs (DOM) ; en utilisant l’ontologie Web La deuxième étape de l’EI, l’extraction des données sur les régions, a trois tendances : en utilisant des techniques syntaxiques ; en utilisant des techniques sémantiques basées sur l’ontologie de domaine ou en utilisant des agents MasterWeb et AGATHE sont deux des systèmes qui extraient des informations dans des domaines restreints sur le Web en se basant sur des agents et des ontologies En effet, MasterWeb est un système d’EI dont la partie d’extraction a un seul agent qui s’occupe toutes les étapes dans la chne d’extraction Cependant, AGATHE est une architecture proposée pour le système d’EI dont la partie d’extraction est un sous système multiagent dans lequel chaque agent s’occupe d’une partie de travail dans la chne d’extraction Le problème principal est d’appliquer l’architecture AGATHE au système MasterWeb Particulièrement, on a besoin de transférer le travail de l’agent d’extraction dans MasterWeb aux travaux des agents dans le sous système d’extraction de AGATHE Ce document a présenté la réalisation de AGATHE partir du système MasterWeb sur la platforme JADE : avoir déterminé le travail de chaque agent dans le SSE de AGATHE par rapport MasterWeb ; avoir divisé et modifié le codage de l’agent d’extraction dans MasterWeb aux ceux des agents dans SSE de AGATHE ; avoir défini des protocoles concrètes entre les agents dans SSE ; avoir modifié la base de données pour s’adapter la nouvelle architecture Le système réalisé est encore limité en trois agents du SSE En outre, il n’est pas encore validé A l’avenir, le système sera validé et puis, il peut être élargi pour plusieurs agents qui peuvent traiter parallèle dans le même cluster, pour tous les agents dans le SSE, pour tous les trois sous systèmes de AGATHE et pour plusieurs clusters correspondant aux plusieurs domaines différents 43 Rapport du stage : Collecte d’information sur le Web relatif des domaines restreints, base d’agents et d’ontologies Bibliographie [1] J Ambite and C Knoblock Agents for information gathering In Software Agents Bradshaw, J (ed.), MIT Press, Pittsburgh, PA, USA, 1997 [2] P Buitelaar, P Cimiano and S Racioppa Ontology-based Information Extraction with SOBA In: Proc of LREC06, Genoa, Italy, May 2006 [3] M Banko, M.J Cafarella, S Soderland, M Broadhead and O Etzioni Open Information Extraction from the Web Proc of the International Joint Conference on Artificial Intelligence (IJCAI), 2007 [4] I Bouslimi, K Ghedira and C Hanachi An agent-based organizational model for cooperative information gathering In : Signal-Image Technology & Internet-Based Systems (SITIS 2006), Hammamet, Tunisia, 17/12/06-21/12/06, IEEE, p 414424, décembre 2006 [5] S Cazalens, E Desmontils, C Jacquin and P Lamarre BONOM : un systè me Multi-Agents pour la recherche d'informations sur Internet dirigé e par la connaissance Complément aux actes des journées francophones d'ingénierie des connaissances (IC'2000), Toulouse, 10-12 mai 2000, pp 57-58 [6] V Crescenzi, G Mecca and P Merialdo Roadrunner: Towards automatic data extraction from large Web sites Technical Report n RT-DIA-64-2001, D.I.A., Universit a di Roma Tre, 2001 [7] B Espinasse, F Freitas and S Fournier AGATHE: an Agent and Ontology based System for Restricted-Domain Information Gathering on the Web IEEE-RCIS, Research Challenges in Information Sciences, 23-26 April, Ouarzazate, Marocco, 2007 [8] L Eikvil Information extraction from the world wide Web: a survey Technical Report 945, Norwegian Computing Center, 1999 [9] H Eriksson Using JessTab to Integrate Proté gé and Jess IEEE Intelligent Systems, 18(2):43-50, 2003 [10] F Freitas and G Bittencourt An Ontology-Based Architecture for Cooperative Information Agents IJCAI, 2003 [11] N Georgiev, J.M Labat, J.L Minel and L Nicolas Extraction de donné es partir de pages HTML par cré ation semi-automatique de rè gles XSLT Congrès IC 2003, p117-127 [12] H Guo and A Stent Taxonomy Based Data Extraction from Multi-item Web Pages Workshop on Web Content Mining with Human Language Technologies at the ISWC'06, 2006 [13] D Hérin, B Espinasse, E Andonoff and C Hanachi Des systè mes d’information coopé ratifs aux agents informationnels In Ingénierie des systèmes d’information, C.Cauvet, C.Rosenthal-Sabroux, Hermès 2001 [14] JADE, JADE tutorial http://jade.tilab.com [15] JESS, http://hezberg.casandia.gov/jess [16] S.W Liddle, D.W Embley, D.T Scott and S.H Yau Extracting Data Behind Web Forms Proceedings of the Workshop on Conceptual Modeling Approaches for eBusiness, 44 Rapport du stage : Collecte d’information sur le Web relatif des domaines restreints, base d’agents et d’ontologies Tampere, Finland, October, 2002 [17] B Lui, R Grossman and Y Zhai Mining Data Records in Web Pages Proceedings of the ACM SIGKDD International Conference on Knowledge Discovery & Data Mining (KDD-2003), Washington, DC, USA, August 24 - 27, 2003 [18] S.W Liddle, K.A Hewett and D.W Embley An Integrated Ontology Development Environment for Data Extraction Proceedings of Information Systems Technology and its Applications, International Conference ISTA'2003, Kharkiv, Ukraine, June 19-21, 2003 [19] K Lerman, C Knoblock and S Minton Automatic data extraction from lists and tables in Web sources In Automatic Text Extraction and Mining workshop (ATEM-01), IJCAI-01, Seattle, WA, USA, August 2001 [20] J.P Lage, A.S da Silva, P.B Golgher and A.H.F Laender Automatic generation of agents for collecting hidden Web pages for data extraction Data Knowl Eng 49(2): 177-196 (2004) [21] S.W Liddle, S.H Yau and D.W Embley On the Automatic Extraction of Data from the Hidden Web Proceedings of the International Workshop on Data Semantics in Web Information Systems (DASWIS-2001), Yokohama, Japan, 27-30 November 2001 [22] L McDowell and M Cafarella Ontology-driven Information Extraction with OntoSyphon Fifth International Semantic Web Conference (ISWC 2006), November 2006 [23] L Ma, N Goharian and A Chowdhury Automatic Data Extraction from Template Generated Web Pages Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications, PDPTA '03, June 23 26, 2003, Las Vegas, Nevada, USA, Volume [24] X Meng, D Hu and C Li Schema-guided wrapper maintenance for Webdata extraction Fifth ACM CIKM International Workshop on Web Information and Data Management (WIDM 2003), New Orleans, Louisiana, USA, November 7-8, 2003 [25] J Myllymaki Effective Web data extraction with standard XML technologies In Proc of the Tenth International World Wide Web Conference, WWW10, pp 689-696, Hong Kong, China, May 2001 [26] S.A O’Malley and S.A DeLoach Determining When to Use an Agent_Oriented Software Engineering Paradigm Proceedings of the Second International Workshop On Agent-Oriented Software Engineering(AOSE 2001), Montreal, Canada, May 29th 2001 [27] R Okada, E-S Lee and N.Shiratori Multimedia Information Gathering based on a Society of Cooperative Agents International Conference on Multimedia and Networking (MmNe'96), pp.86-95, Oct, 1995 [28] H Ouahid and A Karmouch An XML-Based Web Mining Agent Proceeding of MATA’99, Ahmed KARMOUCH and Roger IMPEY eds., World Scientific, Ottawa, 1999 [29] B Omelayenko Learning of ontologies for the Web: the analysis of existent approaches In Proceedings of the International Workshop on Web Dynamics, 2001 [30] H.D Pfeiffer and R.T Hartley Visual CP Representation of Knowledge In Supplimental Proceedings of the 8th International Conference On Conceptual Structures, Darmstadt, Germany, 2000 45 Rapport du stage : Collecte d’information sur le Web relatif des domaines restreints, base d’agents et d’ontologies [31] B Popov, A Kiryakov, D Ognyanoff, D Manov, Al Kirilov and M Goranov Towards semantic Web information extraction In proceedings of ISWC, Sundial Resort, Florida, USA, October, 2003 [32] M Saywell Negotiation Agents: An Overview In: Multimedia Systems Coursework, Dept of Electronics and Computer Science, UK, 2000 [33] H Snoussi, L Magnin and J-Y Nie Heterogeneous Web data extraction using ontology The AI-2002 Workshop on Business Agents and the Semantic Web, Calgary, may 2002 [34] H Snoussi, L Magnin and J-Y Nie Toward an Ontology-based Web Data Extraction The AI-2002 Workshop on Business Agents and the Semantic Web (BASeWEB) held at theAI 2002 Conference (AI-2002), Calgary, Alberta, Canada, May 26, 2002 [35] M Sintek, M Junker, L.V Elst and A Abecker Using Information Extraction Rules for Extending Domain Ontologies Position Statement for the IJCAI-2001 Workshop on Ontology Learning, 2001 [36] L Sofiane and N.H Perrreira Mobile Agents for Information Extraction in the MathNet System In: International Conference Frontieres in Education, Boston, 2002 [37] O Svab, V Svatek and M Labsky Types and Roles of Ontologies in Web Information Extraction In: ECML/PKDD04 Workshop on Knowledge Discovery and Ontologies, Pisa, 2004 [38] K.P Sycara Multiagent Systems AI Magazine, vol 10, n°2, pages 79-93, 1998 [39] F Villa Declarative modeling for architecture independence and data/model integration: a case study In: 3rd Biennial meeting of the International Environmental Modelling and Software Society (iEMSs 2006), The Wyndham Hotel, Burlington, Vermont, USA, July 9-13, 2006 [40] A Wessman, S.W Liddle and D.W Embley A Generalized Framework for an Ontology-Based Data-Extraction System Information Systems Technology and its Applications, 4th International Conference ISTA'2005, Palmerston North, New Zealand, 23-25 May, 2005 [41] M Wooldridge and N.R Jennings Inteliigent Agents: Theory and Practice The Knowledge Engineering Review, 10 (2), pages 115-152, 1995 [42] L Xu, D.W Embley and Y Ding Combining Declarative and Procedural Knowledge to Automate and Represent Ontology Mapping SemWAT 2006 - 1st International Workshop on Semantic Web Applications: Theory and Practice, April 2006, pp 395-404 [43] T Xiaohui, K John and L Yuefeng Information fusion with subject-based information gathering method for intelligent multi-agent models In Proceedings The 7th international conference on Information Integration and Web Based Applications & Services (iiWAS2005), pages pp 861-869, Kuala Lumpur, Malaysia, 2005 [44] L Yi, B Lui and X Li Eliminating Noisy Information in Web Pages for Data Mining Proceedings of the ACM SIGKDD International Conference on Knowledge Discovery & Data Mining (KDD-2003), Washington, DC, USA, August 24 - 27, 2003 46 Rapport du stage : Collecte d’information sur le Web relatif des domaines restreints, base d’agents et d’ontologies Annexe A Les messages Message : une page invalidée Départ de l’agent Préparateur l’agent Stockeur performative : INFORM conversationID : INVALID_PAGE contenu : une instance de la classe InvalidPage Message : une mauvaise page Départ de l’agent Préparateur l’agent Stockeur performative : INFORM conversationID : BAD_PAGE contenu : une instance de la classe BadPage Message : une page refusée Départ de l’agent Préparateur l’agent Stockeur performative : INFORM conversationID : REJECTED_PAGE contenu : une instance de la classe RecommandedPage Message : une page validée Départ de l’agent Préparateur l’agent Extracteur performative : INFORM conversationID : VALID_PAGE contenu : une instance de la classe ValidPage Message : des informations statistiques Départ de l’agent Préparateur l’agent Stockeur performative : INFORM conversationID : STATISTIC contenu : une instance de la classe Statistic : des informations extraites Départ de l’agent Extracteur l’agent Stockeur performative : INFORM conversationID : INFORMATION contenu : une instance de la classe Information Message : des informations d’une page Html Départ de l’agent Préparateur l’agent Stockeur performative : INFORM conversationID : RECOGNIZED_PAGE contenu : une instance de la classe Page Message : une confirmation performative : CONFIRM 47 Rapport du stage : Collecte d’information sur le Web relatif des domaines restreints, base d’agents et d’ontologies conversationID : CONFIRMATION contenu : B Les tables de la BD a cfp_urls Cette table contient des attributs : url_id : url_name : b cfp_pages Cette table contient des attributs : url_id : number host : port : protocol : content_type : page_date : length : title : description : meta_keyword: varchar summary: content: content_without_tag: content_without_line: email: term_in_sequence : varchar link : term : c cfp_infos Cette table contient des attributs : id : url_id : start_position : number content : d cfp_agents Cette table contient des attributs : agent_id : cluster_id agent_type : name : Rapport du stage : Collecte d’information sur le Web relatif des domaines restreints, base d’agents et d’ontologies adresse : varchar // l’adresse de l’agent e cfp_classes Cette table contient des attributs : classe_id : number / l’identification de la classe reconnue name : varchar / le nom de la classe e cfp_clusters Cette table contient des attributs : cluster_id : number // l’identification du cluster name : varchar // le nom du cluster f cfp_cluster_class Cette table contient des attributs : cluster_id : number // référence vers le cfp_clusters.cluster_id class_id : number // référence vers le cfp_class.class_id C Prototypes C.1 Prototype des agents Préparateur public class Preparateur extends Agent{ protected void setup(); Connection openDB(); void openRete(String fileName); // le nom du fichier contenant des règles } public class PrepaProcessor_Behaviour extends CyclicBehaviour{ public void action(); } public class PrepaAnalyze_Behaviour extends OneShotBehaviour{ public void action(); public Vector processInfo( int source, // le numéro de la source int id_source, // l’identification de la source String url, // l’adresse de la page Vector vx); // des paramètres de la page public boolean verifyDB( String url, // l’adresse de la page URLConnection ulc); // la connexion ver la base des données } Extracteur public class Extracteur extends Agent{ protected void setup(); 49 Rapport du stage : Collecte d’information sur le Web relatif des domaines restreints, base d’agents et d’ontologies void openRete(String fileName); // le nom du fichier contenant des règles } public class ExtraProcessor_Behaviour extends CyclicBehaviour{ public void action(); } public class ExtraAnalyze_Behaviour extends OneShotBehaviour{ public void action(); public Vector processInfo( int source, // le numéro de la source int id_source, // l’identification de la source String url, // l’adresse de la page Vector vx); // des parameters de la page public void treatLinksToSend( int id_source, // l’identification de la source int status // l’état de la classification sémantique Fact mainFact); // les informations classifiées Vector extractRelevInform( Fact mainFact) ; // les informations classifiées } Stockeur public class Stockeur extends Agent{ protected void setup(); Connection openDB(); } public class StockProcessor_Behaviour extends CyclicBehaviour{ public void action(); } public class StockAnalyze_Behaviour extends OneShotBehaviour{ public void action(); public void saveURLwError( URLConnection ulc, // la connexion ver la BD String url, // l’adresse de la page Int codErr); // le type d’erreur public void saveURLbadLink( String url, // l’adresse de la page int codErr); // le type d’erreur public void saveStatistics( int source, // le numéro de la source int id_source, // l’identification de la source int result, // le type de résultat int cause) ; // la cause du résultat public void saveNotRec( URLConnection ulc, // la connexion ver la BD String url, // l’adresse de la page Int codErr); // le type d’erreur public long saveURL( URLConnection ulc, // la connexion ver la BD String url, // l’adresse de la page Vector infRelev); // les informations extraites } 50 Rapport du stage : Collecte d’information sur le Web relatif des domaines restreints, base d’agents et d’ontologies C.2 Prototype de contenu des message Cette section va présenter les classes qui encapsulent les informations échangées entre les agents InvalidPage { HttpURLConnection String int } BadPage { String int } RecommandedPage { HttpURLConnection String int } Statistic { int int int int } ValidPage { String HttpURLConnection String int Page Monitor Keyword Frequency Link LinkText SlotFound } Page { String String String int String int String String String String String String String String String String 51 Rapport du stage : Collecte d’information sur le Web relatif des domaines restreints, base d’agents et d’ontologies String String String String } Monitor { String int String } Keyword { String } Frequency { String } Link { String } LinkText { String } SlotFound { String } Information { HttpURLConnection String String ExtractInfor } ExtractInfor { String String String int String String } 52 ... stage : Collecte d’information sur le Web relatif des domaines restreints, base d’agents et d’ontologies Introduction Dans les dernières années, les pages Web et les informations qu’elles contiennent... accessibles, et si elles n’ont pas déjà été stockées dans 19 Rapport du stage : Collecte d’information sur le Web relatif des domaines restreints, base d’agents et d’ontologies la base de données Les... leurs encouragements et leurs conseils lors de ce séjour en France Rapport du stage : Collecte d’information sur le Web relatif des domaines restreints, base d’agents et d’ontologies Table des