Lh*rs p2p : une nouvelle structure de données distribuée et scalable pour les environnements Pair à Pair - Thèse Informatique

Lh*rs p2p : une nouvelle structure de données distribuée et scalable pour les environnements Pair à Pair - thèse Informatique - Revenir à l'accueil

 

Thèses en informatique :

[TXT]

 Generation-automatiq..> 03-Jan-2015 22:04  2.6M  

[TXT]

 Interrogation-de-gra..> 03-Jan-2015 22:04  2.9M  

[TXT]

 La-gestion-du-trafic..> 03-Jan-2015 22:01  4.1M  

[TXT]

 Les-logiciels-de-ges..> 03-Jan-2015 22:03  3.1M  

[TXT]

 Lh-rs-p2p-une-nouvel..> 03-Jan-2015 21:59  2.7M  

[TXT]

 Normalisation-et-App..> 03-Jan-2015 22:01  4.1M  

[TXT]

 Prise-en-compte-de-l..> 03-Jan-2015 22:04  2.8M  

[TXT]

 Reconnaissance-de-co..> 03-Jan-2015 22:03  3.6M  

[TXT]

 Services-de-repartit..> 03-Jan-2015 21:59  4.7M  

[TXT]

 The-Emergence-of-Mul..> 03-Jan-2015 22:05  2.5M  

[TXT]

 Trigraphes-de-Berge-..> 03-Jan-2015 22:02  3.9M  

[TXT]

 Vers-une-capitalisat..> 03-Jan-2015 22:00  4.6M  
Congrès d'informatique :

[TXT]

 Application-Agnostic..> 03-Jan-2015 21:16  2.1M  

[TXT]

 Continuity-Editing-f..> 03-Jan-2015 17:35  4.0M  

[TXT]

 Double-WP-Vers-une-p..> 03-Jan-2015 17:36  4.0M  

[TXT]

 Effective-Reproducib..> 03-Jan-2015 21:18  2.0M  

[TXT]

 Enforcing-reuse-and-..> 03-Jan-2015 21:17  2.0M  

[TXT]

 Extracting-Bounded-s..> 03-Jan-2015 21:19  4.0M  

[TXT]

 Fingerprint-Quality-..> 03-Jan-2015 21:16  2.1M  

[TXT]

 GPU-Load-Balance-Gui..> 03-Jan-2015 21:18  4.0M  

[TXT]

 Minkowski-sum-of-pol..> 03-Jan-2015 21:17  2.0M  

[TXT]

 Quality-Assessment-o..> 03-Jan-2015 21:16  2.1M  

[TXT]

 Rester-statique-pour..> 03-Jan-2015 17:35  4.0M  

[TXT]

 The-Power-of-Polynom..> 03-Jan-2015 21:16  2.1M  
Cours d'informatique :

[TXT]

 Analyse-numerique-Co..> 03-Jan-2015 17:33  3.0M  

[TXT]

 Approches-m-k-firm-p..> 03-Jan-2015 17:27  3.7M  

[TXT]

 COURS-LA-CULTURE-INF..> 03-Jan-2015 17:25  3.8M  

[TXT]

 CRYPTANALYSE-DE-RSA-..> 03-Jan-2015 17:33  3.0M  

[TXT]

 Cours-Interconnexion..> 03-Jan-2015 17:34  3.0M  

[TXT]

 Cours-d-Analyse-et-C..> 03-Jan-2015 17:22  3.9M  

[TXT]

 Efficient-C++finite-..> 03-Jan-2015 17:30  3.5M  

[TXT]

 Efficient-C++finite-..> 03-Jan-2015 17:31  3.2M  

[TXT]

 Fondements-de-l-Info..> 03-Jan-2015 17:22  4.0M  

[TXT]

 INTRODUCTION-A-L-INF..> 03-Jan-2015 17:24  3.8M  

[TXT]

 Informatique-et-Ling..> 03-Jan-2015 17:24  3.8M  

[TXT]

 Initiation-a-l-infor..> 03-Jan-2015 17:26  3.8M  

[TXT]

 Intelligence-Artific..> 03-Jan-2015 15:16  2.5M  

[TXT]

 Introduction-a-l-ana..> 03-Jan-2015 17:27  3.7M  

[TXT]

 Introduction-a-la-ge..> 03-Jan-2015 17:26  3.8M  

[TXT]

 Le-routage-externe-B..> 03-Jan-2015 17:32  3.1M  

[TXT]

 Le-systeme-d-informa..> 03-Jan-2015 17:32  3.1M  

[TXT]

 Lecture1_Linear_SVM_..> 03-Jan-2015 14:57  2.4M  

[TXT]

 Lecture2_Linear_SVM_..> 03-Jan-2015 14:56  2.4M  

[TXT]

 Lecture3_Linear_SVM_..> 03-Jan-2015 14:56  2.4M  

[TXT]

 Lecture4_Kenrels_Fun..> 03-Jan-2015 14:55  2.4M  

[TXT]

 Lecture5_Kernel_SVM...> 03-Jan-2015 14:55  2.4M  

[TXT]

 Lecture6_SVDD.pdf.htm   03-Jan-2015 14:54  2.4M  

[TXT]

 Lecture7_Cross_Valid..> 03-Jan-2015 14:54  2.4M  

[TXT]

 Lecture8_Multi_Class..> 03-Jan-2015 14:57  2.4M  

[TXT]

 Lecture9_Multi_Kerne..> 03-Jan-2015 14:53  2.5M  

[TXT]

 Lecture10_Outilier_L..> 03-Jan-2015 14:53  2.5M  

[TXT]

 Les-reseaux-sans-fil..> 03-Jan-2015 15:17  2.5M  

[TXT]

 NooJ-pour-l-Intellig..> 03-Jan-2015 17:30  3.2M  

[TXT]

 Outils-Logiques-pour..> 03-Jan-2015 15:15  2.8M  

[TXT]

 Presentation-de-la-r..> 03-Jan-2015 17:33  3.0M  

[TXT]

 Projet-IP-SIG-Signal..> 03-Jan-2015 15:16  2.5M  

[TXT]

 Robotique-Mobile-PDF..> 03-Jan-2015 15:16  2.6M  

[TXT]

 Systeme-informatique..> 03-Jan-2015 15:17  2.5M  

[TXT]

 Systemes-Multi-Agent..> 03-Jan-2015 17:28  3.5M  

[TXT]

 Tutoriel-Android-TP-..> 03-Jan-2015 14:57  2.3M  

[TXT]

 Understanding-SVM-th..> 03-Jan-2015 14:57  2.4M  

[TXT]

 Une-histoire-de-la-m..> 03-Jan-2015 17:28  3.5M  

[TXT]

 Une-introduction-aux..> 03-Jan-2015 17:31  3.1M  

[TXT]

 Vers-une-signalisati..> 03-Jan-2015 17:25  3.8M 
Lh*rs p2p : une nouvelle structure de donn´ees distribu´ee et scalable pour les environnements Pair `a Pair Hanafi Yakouben To cite this version: Hanafi Yakouben. Lh*rs p2p : une nouvelle structure de donn´ees distribu´ee et scalable pour les environnements Pair `a Pair. Other. Universit´e Paris Dauphine - Paris IX, 2013. French. . HAL Id: tel-00872124 https://tel.archives-ouvertes.fr/tel-00872124 Submitted on 11 Oct 2013 Services de r´epartition de charge pour le Cloud : application au traitement de donn´ees multim´edia. Sylvain Lefebvre To cite this version: Sylvain Lefebvre. Services de r´epartition de charge pour le Cloud : application au traitement de donn´ees multim´edia.. Computers and Society. Conservatoire national des arts et metiers - CNAM, 2013. French. . HAL Id: tel-01062823 https://tel.archives-ouvertes.fr/tel-01062823 Submitted on 10 Sep 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.CONSERVATOIRE NATIONAL DES ARTS ET MÉTIERS École Doctorale Informatique, Télécommunications et Électronique (Paris) CEDRIC THÈSE DE DOCTORAT présentée par : Sylvain LEFEBVRE soutenue le : 10 Décembre 2013 pour obtenir le grade de : Docteur du Conservatoire National des Arts et Métiers Spécialité : INFORMATIQUE Services de répartition de charge pour le Cloud : Application au traitement de données multimédia THÈSE dirigée par M. GRESSIER-SOUDAN Eric Professeur, CEDRIC-CNAM, Paris Encadrée par Mme. CHIKY Raja Enseignant-Chercheur, LISITE-ISEP, Paris RAPPORTEURS Mme. MORIN Christine Chercheur Titulaire, INRIA-IRISA, Rennes M. PIERSON Jean-Marc Professeur, IRIT, Université Paul Sabatier, Toulouse EXAMINATEURS M. ROOSE Philippe Directeur de recherche, LIUPPA, Pau M. SENS Pierre Directeur de recherche, LIP6, UPMC, Paris M. PAWLAK Renaud Directeur technique, IDCapture, Paris Mme. SAILHAN Françoise Maitre de conférence, CEDRIC-CNAM, Paris"When they first built the University of California at Irvine they just put the buildings in. They did not put any sidewalks, they just planted grass. The next year, they came back and put the sidewalks where the trails were in the grass." Larry WallRemerciements Les travaux menés durant ces trois ans ont été possible grâce à la confiance et aux encouragements que mes encadrants Eric Gressier-Soudan, Renaud Pawlak puis Raja Chiky m’ont accordé, à la fois lors du recrutement et tout au long de ces 36 derniers mois. Je tiens à remercier particulièrement Raja Chiky, pour son optimisme, ses conseils et ses encouragements en toutes circonstances. Je tiens aussi à remercier tous les membres de l’équipe de Recherche et Développement Informatique du LISITE : Yousra pour les filtres de Bloom, Zakia, Bernard et Matthieu pour leurs conseils et commentaires avisés, et Olivier pour les probabilités. En restant à l’ISEP je remercie aussi mes collègues de bureaux : Giang, Sathya, Adam, Ahmad, Fatima, Maria et Ujjwal. Mes sincères remerciements vont aux membres du jury qui ont accepté de juger mon travail : MM. Pierson et Roose, Mme Morin ainsi que le professeur P. Sens pour ses conseils lors de ma soutenance de mi-parcours et pour m’avoir donné accès à la plateforme GRID5000. Je dois aussi adresser des remerciements à ceux qui m’ont encouragé dans ma poursuite d’études : Professeurs B. Marchal, F. Pommereau, M. Bernichi de l’ESIAG et A. Ung d’Essilor sans lesquels je ne me serais pas lancé dans cette aventure. Enfin, ce travail n’aurait pu être mené sans les encouragements de ma famille, de mes amis, et de Clara. iiiREMERCIEMENTS ivRésumé Les progrès conjugués de l’algorithmique et des infrastructures informatiques permettent aujourd’hui d’extraire de plus en plus d’informations pertinentes et utiles des données issues de réseaux de capteurs ou de services web. Ces plateformes de traitement de données "massives" sont confrontées à plusieurs problèmes. Un problème de répartition des données : le stockage de ces grandes quantités de données impose l’agrégation de la capacité de stockage de plusieurs machines. De là découle une seconde problématique : les traitements à effectuer sur ces données doivent être à leur tour répartis efficacement de manière à ne surcharger ni les réseaux, ni les machines. Le travail de recherche mené dans cette thèse consiste à développer de nouveaux algorithmes de répartition de charge pour les systèmes logiciels de traitement de données massives. Le premier algorithme mis au point, nommé "WACA" (Workload and Cache Aware Algorithm) améliore le temps d’exécution des traitements en se basant sur des ré- sumés des contenus stockés sur les machines. Le second algorithme appelé "CAWA" (Cost Aware Algorithm) tire partie de l’information de coût disponible dans les plateformes de type "Cloud Computing" en étudiant l’historique d’exécution des services. L’évaluation de ces algorithmes a nécessité le développement d’un simulateur d’infrastructures de "Cloud" nommé Simizer, afin de permettre leur test avant le déploiement en conditions réelles. Ce déploiement peut se faire de manière transparente grâce au système de distribution et de surveillance de service web nommé "Cloudizer", développé aussi dans le cadre de cette thèse, qui a servi à l’évaluation des algorithmes sur l’Elastic Compute Cloud d’Amazon. Ces travaux s’inscrivent dans le cadre du projet de plateforme de traitement de données Multimédia for Machine to Machine (MCube). Ce projet requiert une infrastructure logicielle adaptée au stockage et au traitement d’une grande quantité de photos et de sons, issus de divers réseaux de capteurs. La spécificité des traitements utilisés dans ce projet a nécessité le développement d’un service d’adaptation automatisé des programmes vers leur environnement d’exécution. Mots clés : Répartition de charge, Cloud, Données Massives vAbstract Nowadays, progresses in algorithmics and computing infrastructures allow to extract more and more adequate and useful information from sensor networks or web services data. These big data computing platforms have to face several challenges. A data partitioning issue ; storage of large volumes imposes aggregating several machines capacity. From this problem arises a second issue : to compute these data, tasks must be distributed efficiently in order to avoid overloading networks and machines capacities. The research work carried in this thesis consists in developping new load balancing algorithms for big data computing software. The first designed algorithm, named WACA (Workload And Cache Aware algorithm) enhances computing latency by using summaries for locating data in the system. The second algorithm, named CAWA for "Cost AWare Algorithm", takes advantage of cost information available on so-called "Cloud Computing" platforms by studying services execution history. Performance evaluation of these algorithms required designing a Cloud Infrastructure simulator named "Simizer", to allow testing prior to real setting deployment. This deployement can be carried out transparently thanks to a web service monitoring and distribution framework called "Cloudizer", also developped during this thesis work and was used to assess these algorithms on the Amazon Elastic Compute Cloud platform. These works are set in the context of data computing platform project called "Multimedia for Machine to Machine" (MCube). This project requires a software infrastructure fit to store and compute a large volume of pictures and sounds, collected from sensors. The specifics of the data computing programs used in this project required the development of an automated execution environement adaptation service. Keywords : Load balancing, Cloud Computing, Big Data viiAvant propos Cette thèse se déroule dans l’équipe Recherche et Développement en Informatique (RDI) du laboratoire Laboratoire d’Informatique, Signal et Image, Électronique et Télécommunication (LISITE) de l’Institut Supérieur d’Électronique de Paris. L’équipe RDI se focalise principalement sur la thématique des systèmes complexes avec deux axes forts. Le premier axe vise la fouille de données et l’optimisation dans ces systèmes. L’optimisation est en effet pour la plupart du temps liée à la traçabilité et à l’analyse des données, en particulier les données liées aux profils d’utilisation. Le deuxième axe concerne l’étude de langages, de modèles, et de méthodes formelles pour la simulation et la validation des systèmes complexes, en particulier les systèmes biologiques et les systèmes embarqués autonomes sous contraintes fortes. Les travaux de cette thèse s’inscrivent dans le cadre d’un projet européen de mise au point de plateforme de services Machine à Machine permettant d’acquérir et d’assurer l’extraction et l’analyse de données multimédia issues de réseaux de capteurs. Ce projet, baptisé Mcube pour Multimedia for machine to machine (Multimédia pour le machine à machine) est développé en partenariat avec le fond Européen de Développement Régional et deux entreprises de la région Parisienne : CAP 2020 et Webdyn. Il permet de réunir les différentes problématiques de recherches de l’équipe RDI au sein d’un projet commun, en partenariat avec les membres de l’équipe de recherche en traitement du signal du LISITE. La particularité de ce projet est qu’il se concentre sur la collecte de données multimédias. Les difficultés liées au traitement de ces données nécessitent de faire appel à des technologies spécifiques pour leur stockage. Cette plateforme ne se limite pas au stockage des données, et doit fournir aux utilisateurs la possibilité d’analyser les données récupérées en ligne. Or, ces traitements peuvent s’exécuter dans un environnement dynamique soumis à plusieurs contraintes comme le coût financier, ou la consommation énergétique. La répartition des traitements joue donc un rôle prépondérant dans la garantie de ces contraintes. La répartition des données sur les machines joue aussi un rôle important dans la performance des traitements, en permettant de limiter la quantité de données à transférer. Ces travaux ont été encadrés par Dr. Renaud Pawlak puis suite à son départ de l’ISEP en septembre 2011, par Dr. Raja Chiky, sous la responsabilité du professeur Eric Gressier-Soudan de l’équipe Systèmes Embarqués et Mobiles pour l’Intelligence Ambiante du CEDRIC-CNAM.RÉSUMÉ xTable des matières 1 Introduction 1 2 MCube : Une plateforme de stockage et de traitement de données multimédia 9 2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.1.1 Architecture du projet MCube . . . . . . . . . . . . . . . . . . . . . 9 2.1.2 Problématiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2 Composants des plateformes de stockage de données multimédia . . . . . . . 12 2.2.1 Stockage de données multimédia . . . . . . . . . . . . . . . . . . . . 13 2.2.2 Distribution des traitements . . . . . . . . . . . . . . . . . . . . . . . 17 2.2.3 Plateformes génériques de traitements de données multimédias . . . 20 2.3 Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.4 Architecture de la plateforme MCube . . . . . . . . . . . . . . . . . . . . . . 23 2.4.1 Architecture matérielle . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.4.2 Architecture logicielle . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.4.3 Architecture de la plateforme MCube . . . . . . . . . . . . . . . . . . 24 2.4.4 Description des algorithmes de traitement de données multimédia . . 26 2.5 Développement du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.6 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 xiTABLE DES MATIÈRES 3 Le framework Cloudizer : Distribution de services REST 31 3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.2 Architecture du canevas Cloudizer . . . . . . . . . . . . . . . . . . . . . . . 32 3.2.1 Les nœuds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.2.2 Le répartiteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.2.3 Déploiement de services . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.3 Intégration au projet MCube . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.4 Considérations sur l’implémentation . . . . . . . . . . . . . . . . . . . . . . 38 3.5 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4 Simizer : un simulateur d’application en environnement cloud 41 4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.1.1 Simulateurs de Cloud existants . . . . . . . . . . . . . . . . . . . . . 42 4.2 Architecture de Simizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.2.1 Couche Evénements . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.2.2 Couche architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.2.3 Fonctionnement du processeur . . . . . . . . . . . . . . . . . . . . . 48 4.2.4 Exécution d’une requête . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.3 Utilisation du simulateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.4 Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.4.1 Génération de nombres aléatoires . . . . . . . . . . . . . . . . . . . . 53 4.4.2 Fonctionnement des processeurs . . . . . . . . . . . . . . . . . . . . . 55 4.5 Discussion et travaux futurs . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 4.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5 Algorithmes de répartition de charge 59 5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 xiiTABLE DES MATIÈRES 5.2 Classification et composition des algorithmes de répartition de charge . . . . 61 5.2.1 Familles d’algorithmes de répartition de charge . . . . . . . . . . . . 61 5.2.2 Composition d’algorithmes de répartition de charge . . . . . . . . . . 63 5.3 Algorithmes de répartition par évaluation de la charge . . . . . . . . . . . . 65 5.4 Algorithmes de répartition fondés sur la localité . . . . . . . . . . . . . . . . 66 5.4.1 Techniques exhaustives . . . . . . . . . . . . . . . . . . . . . . . . . . 67 5.4.2 Techniques de hachage . . . . . . . . . . . . . . . . . . . . . . . . . . 68 5.4.3 Techniques de résumé de contenus . . . . . . . . . . . . . . . . . . . 69 5.5 Stratégies basées sur le coût . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 5.6 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 6 WACA : Un Algorithme Renseigné sur la Charge et le Cache 77 6.1 Contexte et Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 6.1.1 Localité des données pour les traitements distribués . . . . . . . . . 77 6.2 Filtres de Bloom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 6.2.1 Filtres de Bloom Standards (FBS) . . . . . . . . . . . . . . . . . . . 80 6.2.2 Filtres de Bloom avec compteurs (FBC) . . . . . . . . . . . . . . . . 82 6.2.3 Filtres de Bloom en Blocs (FBB) . . . . . . . . . . . . . . . . . . . . 82 6.3 Principe Général de l’algorithme WACA . . . . . . . . . . . . . . . . . . . . 83 6.3.1 Dimensionnement des filtres . . . . . . . . . . . . . . . . . . . . . . . 84 6.3.2 Choix de la fonction de hachage . . . . . . . . . . . . . . . . . . . . . 85 6.4 Algorithme sans historique (WACA 1) . . . . . . . . . . . . . . . . . . . . . 87 6.4.1 Tests de WACA 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 6.5 Algorithme avec historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 6.5.1 Compléxité de l’algorithme et gain apporté . . . . . . . . . . . . . . 92 6.5.2 Experimentation de WACA avec historique . . . . . . . . . . . . . . 93 xiiiTABLE DES MATIÈRES 6.6 Block Based WACA (BB-WACA) . . . . . . . . . . . . . . . . . . . . . . . . 95 6.6.1 Description de l’algorithme . . . . . . . . . . . . . . . . . . . . . . . 95 6.6.2 Analyse de l’algorithme . . . . . . . . . . . . . . . . . . . . . . . . . 98 6.7 Evaluation de la politique BB WACA . . . . . . . . . . . . . . . . . . . . . 102 6.7.1 Évaluation par simulation . . . . . . . . . . . . . . . . . . . . . . . . 102 6.7.2 Évaluation pratique sur l’Elastic Compute Cloud . . . . . . . . . . . 107 6.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 7 CAWA : Un algorithme de répartition basé sur les les coûts 113 7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 7.2 Approche proposée : Cost AWare Algorithm . . . . . . . . . . . . . . . . . . 115 7.2.1 Modélisation du problème . . . . . . . . . . . . . . . . . . . . . . . . 116 7.2.2 Avantages de l’approche . . . . . . . . . . . . . . . . . . . . . . . . . 117 7.3 Phase de classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 7.3.1 Représentation et pré-traitement des requêtes . . . . . . . . . . . . . 118 7.3.2 Algorithmes de classification . . . . . . . . . . . . . . . . . . . . . . . 120 7.4 Phase d’optimisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 7.4.1 Matrice des coûts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 7.4.2 Résolution par la méthode Hongroise . . . . . . . . . . . . . . . . . . 122 7.4.3 Répartition vers les machines . . . . . . . . . . . . . . . . . . . . . . 123 7.5 Évaluation par simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 7.5.1 Preuve de concept : exemple avec deux machines . . . . . . . . . . . 124 7.5.2 Robustesse de l’algorithme . . . . . . . . . . . . . . . . . . . . . . . . 125 7.6 Vers une approche hybride : Localisation et optimisation des coûts . . . . . 127 7.7 Conclusion et travaux futurs . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 8 Conclusion 131 xivTABLE DES MATIÈRES A Cloud Computing : Services et offres 139 A.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 A.2 Modèles de services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 A.2.1 L’Infrastructure à la Demande (Infrastructure as a Service) . . . . . 140 A.2.2 La Plateforme à la demande (Platform as a Service) . . . . . . . . . 140 A.2.3 Le logiciel à la demande (Software As a Service) . . . . . . . . . . . 141 A.3 Amazon Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 B Code des politiques de répartition 143 B.1 Implémentation de WACA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 B.2 Implémentation de l’algorithme CAWA . . . . . . . . . . . . . . . . . . . . . 145 C CV 147 Bibliographie 149 Glossaire 161 Index 163 xvTABLE DES MATIÈRES xviListe des tableaux 2.1 Propriétés des systèmes de traitements de données multimédias . . . . . . . 23 3.1 Protocole HTTP : exécution de services de traitement de données . . . . . . 37 4.1 Lois de probabilité disponibles dans Simizer . . . . . . . . . . . . . . . . . . 44 4.2 Résultats des tests du Chi-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 4.3 Comparaison de Simizer et CloudSim, temps d’exécution de tâches . . . . . 56 6.1 Configurations des tests de la stratégie WACA . . . . . . . . . . . . . . . . 103 A.1 Caractéristiques des instances EC2 . . . . . . . . . . . . . . . . . . . . . . . 141 xviiLISTE DES TABLEAUX xviiiTable des figures 2.1 Architecture du projet MCube . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2 Architecture pour la fouille de données multimédia . . . . . . . . . . . . . . 12 2.3 Architecture de la plateforme MCube . . . . . . . . . . . . . . . . . . . . . . 25 2.4 Modèle de description d’algorithme . . . . . . . . . . . . . . . . . . . . . . . 27 3.1 Architecture de la plateforme Cloudizer . . . . . . . . . . . . . . . . . . . . 33 3.2 Modèle des stratégies de répartition de charge . . . . . . . . . . . . . . . . . 35 4.1 Architecture de Simizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.2 Entités de gestion des événements . . . . . . . . . . . . . . . . . . . . . . . . 46 4.3 Entités de simulation système . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.4 Comparaison des distributions aléatoires de Simizer . . . . . . . . . . . . . . 54 5.1 Stratégies de sélection possibles [GPS11, GJTP12] . . . . . . . . . . . . . . 64 5.2 Graphique d’ordonnancement, d’après Assunçao et al. [AaC09] . . . . . . . 72 6.1 Relation entre nombre d’entrées/sorties et temps d’éxécution . . . . . . . . 78 6.2 Exemples de Filtres de Bloom . . . . . . . . . . . . . . . . . . . . . . . . . . 82 6.3 Description de l’algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 6.4 Comparaison des fonctions MD5, SHA-1 et MumurHash . . . . . . . . . . . 86 6.5 Mesures du temps d’exécution des requêtes, WACA version 1 . . . . . . . . 90 xixTABLE DES FIGURES 6.6 Mesures du temps d’exécution des requêtes, WACA version 2 . . . . . . . . 93 6.7 Comparaisons de WACA 1 et 2 . . . . . . . . . . . . . . . . . . . . . . . . . 94 6.8 Flot d’exécution de l’algorithme BB WACA . . . . . . . . . . . . . . . . . . 96 6.9 Schéma du tableau d’index . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 6.10 Complexité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 6.11 Distribution des temps de réponses simulés, 1000 requêtes, distribution Uniforme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 6.12 Distribution des temps de réponses simulés, 1000 requêtes, distribution Gaussienne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 6.13 Distribution des temps de réponses simulés, 1000 requêtes, distribution Zip- fienne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 6.14 Répartition des requêtes sur 20 machines, (Zipf) . . . . . . . . . . . . . . . 107 6.15 Résultats de simulation : temps de sélection des machines . . . . . . . . . . 108 6.16 Résultats d’exécutions sur le cloud d’Amazon . . . . . . . . . . . . . . . . . 110 7.1 Description de la phase de classification / optimisation . . . . . . . . . . . . 116 7.2 Distribution cumulative des temps de réponses, 2 machines . . . . . . . . . 124 7.3 CAWA : Distribution cumulative des temps de réponse, 10 machines . . . . 126 xxChapitre 1 Introduction Ces dernières années, le besoin de traiter des quantités de données de plus en plus grandes s’est fortement développé. Les applications possibles de ces analyses à grande échelle vont de l’indexation de pages web à l’analyse de données physiques, biologiques ou environnementales. Le développement de nouvelles plateformes de services informatiques comme les réseaux de capteurs et les "nuages", ces plateformes de services de calcul à la demande, accentuent ce besoin tout en facilitant la mise en œuvre de ces outils. Les réseaux de capteurs ne sont pas une technologie récente, mais la capacité de traiter des grandes quantités de données issues de ces réseaux est aujourd’hui facilement accessible à un grand nombre d’organisations, en raison du développement de l’informatique en "nuage" : le Cloud Computing. Ce nouveau modèle de service informatique est, d’après la définition du National Institute of Standards and Technologies (NIST), un service mutualisé, accessible par le ré- seau, qui permet aux organisations de déployer rapidement et à la demande des ressources informatiques [MG11]. Dans ce contexte, les applications combinant plateformes d’acquisition de données autonomes et les "nuages" pour traiter les données acquises, se développent de plus en plus et permettent de fournir de nouveaux services en matière d’analyse de données, dans le domaine commercial [Xiv13], ou académique [BMHS13, LMHJ10]. 1Cadre applicatif Les travaux de cette thèse s’inscrivent dans le cadre d’un projet de recherche financé par le Fond Européen de DEveloppement Régional (FEDER) d’Ile de France 1, nommé Multimedia pour le Machine à Machine (MCube) 2. Ce projet consiste à mettre au point un ensemble de technologies permettant de collecter, transférer, stocker et traiter des données multimédias collectées à partir de passerelles autonomes déployées géographiquement. L’objectif est d’en extraire des informations utiles pour les utilisateurs du service. Par exemple, il peut s’agir de détecter la présence d’une certaine espèce d’insecte nuisible dans un enregistrement sonore, afin de permettre à l’agriculteur d’optimiser le traitement insecticide de ses cultures, en épandant que lorsque cela est nécessaire. Ce projet pose plusieurs difficultés de réalisation : en premier lieu, l’intégration et le stockage de volumes de données importants, pouvant venir de différentes sources comme un réseau de capteurs ou de multiples services WEB, implique de sélectionner les technologies appropriées pour traiter et stocker ces données[Lan01]. À titre d’exemple, les cas d’études utilisés pour le projet MCube consistent en un suivi photographique du développement de plans de tomates et des écoutes sonores pour la détection de nuisibles. Ces deux cas d’études effectués sur un seul champ durant les trois campagnes d’acquisition du projet (2011,2012 et 2013) ont nécessité la collecte d’un téraoctet et demi de données, soit environ 466,6 gigaoctets par utilisateur et par an. Le service définitif devant s’adresser à un nombre plus important de clients, l’espace requis pour ces deux applications représentera donc un volume non négligeable, en utilisation réelle. Le deuxième aspect de ces travaux consiste à mettre au point un système pouvant adapter ces applications à un environnement dynamique tel que les plateformes de cloud computing, de manière à pouvoir bénéficier de ressources importantes à la demande lorsqu’un traitement le requiert. La troisième difficulté concerne les traitements d’images eux mêmes, qui sont réalisés par des scientifique ayant peu ou pas d’expériences de la programmation exceptés dans des langages spécifiques comme MATLAB 3, dont l’utilisation sur les plateforme de type 1. http://www.europeidf.fr/index.php, consulté le 5 octobre 2013 2. http://mcube.isep.fr/mcube, consulté le 5 octobre 2013 3. http://www.mathworks.fr/products/matlab/, consulté le 5 octobre 2013 2"nuage" n’est pas facile. En effet, ces programmes ne sont pas écrits par des experts de la programmation parallèle ou des calculs massifs, mais sont écrits pour traiter directement un ou deux fichiers à la fois. Or, le contexte du projet MCube impose de traiter de grandes quantités de fichiers avec ces mêmes programmes, ce qui requiert un système permettant de les intégrer le plus simplement possible dans un environnement parallèle. Ces trois verrous s’inscrivent dans des problématiques scientifiques plus larges liées aux "nuages" et aux services distribués en général. Problématiques scientifiques Les problématiques scientifiques abordées dans ce document sont au nombre de trois. La première d’entre elle consiste à assurer la répartition de requêtes dans un système distribué déployé sur un "Cloud", en tenant compte des aspects particuliers de ce type de plateformes. La deuxième problématique, plus spécifique au projet MCube, concerne l’adaptation automatique de traitements à leur environnement d’exécution. Troisièmement, Le développement de nouvelles stratégies de répartition a nécessité de nombreux tests en amont du déploiement sur une infrastructure réelle, or il n’existe pas, à notre connaissance, de simulateur d’applications distribuées sur le "cloud" approprié pour tester ce type de développements. Distribution de requêtes dans le "Cloud" Les stratégies de répartition fournies par les services de "Cloud Computing" sont limitées dans leurs fonctionnalités ou leur capacité. Par exemple, le répartiteur élastique de la plateforme Amazon Web Services (ELB : Elastic Load Balancer), distribue les requêtes selon une stratégie en tourniquet (Round Robin) sur les machines les moins chargées du système 4. Seule cette stratégie de répartition est disponible pour les utilisateurs. Or, les applications déployées sur les plateformes d’informatique en nuage sont diverses, par conséquent une stratégie générique n’est pas toujours adaptée pour obtenir la meilleure performance du système. De plus, Liu et Wee [LW09] ont démontré que déployer son propre répartiteur d’applications web sur une machine vir- 4. https://forums.aws.amazon.com/message.jspa?messageID=129199#129199, consulté le 5 octobre 2013 3tuelle dédiée était plus économique et permettait de répondre à un plus grand nombre de requêtes concurrentes que le service de répartition de charge élastique fournit par Amazon. Les fournisseurs de plateformes Cloud imposent souvent à leurs utilisateurs des stratégies de répartition génériques pour pouvoir répondre à un grand nombre de cas d’utilisation, mais ces stratégies ne sont pas toujours les plus efficaces : Un exemple notable est celui de la plateforme Heroku 5, qui utilisait une stratégie de répartition aléatoire pour attribuer les requêtes à différents processeurs. Or, cette répartition aléatoire se faisait sans que les multiples répartiteurs du système ne communiquent entre eux pour surveiller la charge des machines. Par conséquent, certains répartiteurs envoyaient des requêtes vers des machines déjà occupées, ce qui créait des files d’attentes inattendues 6. Utiliser des stratégies de répartition de charge appropriées, tenant compte des spécificités des plateformes de type "Cloud Computing" est donc indispensable. Les spécificités de ces plateformes sont notamment : Des performances difficilement prévisibles : L’infrastructure physique de ces plateformes est partagée par un grand nombre d’utilisateurs (cf. annexe A). La consé- quence de ce partage est qu’en fonction de l’utilisation des ressources faite par les multiples utilisateurs, il peut arriver que deux machines virtuelles identiques sur le papier ne fournissent pas obligatoirement le même niveau de performance [BS10, IOY+11]. Des latences réseaux plus élevées : La taille des centres de données utilisés dans les plateformes de Cloud Computing, ainsi que leur répartition géographique a pour conséquence une latence plus importante dans les communications réseaux, qu’il convient de masquer le plus possible à l’utilisateur final. Une plateforme d’informatique à la demande doit donc permettre aux utilisateurs de choisir la stratégie de distribution la plus adaptée à leur cas d’utilisation. De plus, il est nécessaire de prendre en compte les spécificités de ces environnements pour développer de nouvelles stratégies de répartition adaptées. 5. https://www.heroku.com/, consulté le 5 octobre 2013 6. https://blog.heroku.com/archives/2013/2/16/routing_performance_update, consulté le 5 octobre 2013 4Adaptation d’applications de traitements de données multimédia Ces nouvelles plateformes sont par définition simples d’utilisation, flexibles et économiques. Cependant, pour tirer parti des avantages de ces services, il est nécessaire de mettre en place des processus automatisés de déploiement, de distribution et de configuration des applications [AFG+09, ZCB10, MG11]. Les plateformes de cloud computing promettent à leurs utilisateurs l’accès à une infinité de ressources à la demande, mais toutes les applications ne sont pas nécessairement conçues pour être distribuées dans un environnement dynamique. Quelles sont donc les caractéristiques des applications pouvant être déployées dans les environnements de type "Cloud Computing" ? Quels mécanismes peuvent être mis en œuvre pour assurer le déploiement de ces applications de manière plus ou moins transparente ? Comment amener ces traitements à s’exécuter de manière distribuée ou parallèle pour pouvoir tirer parti des avantages fournis par les plateformes de "Cloud Computing" ? Test et performance A ces questions s’ajoute la problématique du test de l’application. Il n’existe à ce jour pas de simulateur fiable permettant d’évaluer le comportement d’applications déployées dans le Cloud, car les efforts actuels, tels que les simulateurs CloudSim[RNCB11] et SimGrid[CLQ08], se concentrent sur la simulation des infrastructures physiques supportant ces services plutôt que sur les applications utilisant ces services [SL13]. Or, le développement de protocoles et d’algorithmes distribués nécessite des tests sur un nombre important de machines. L’ajustement de certains paramètres peut requé- rir de multiples tests sur diverses configurations (nombre de machines, puissance, type de charge de travail), mais il n’est pas toujours aisé de devoir déployer des tests grandeur nature pour ce type d’ajustements. Il faut donc développer ou adapter les outils existants pour faciliter ces tests, en fournissant une interface de programmation de haut niveau pour développer les protocoles à tester, sans que l’utilisateur n’ait à programmer à la fois la simulation et le protocole qu’il souhaite étudier. Approche développée L’approche développée pour répondre à ces problématiques a consisté à mettre au point une plateforme de distribution de services web destinée aux environnements de type 5Service d’Infrastructure à la Demande (Infrastructure As A Service, IaaS, cf. annexe A), permettant de déployer et de distribuer des services web ou des applications en ligne de commande en les transformant en services Web. Cette application, nommée Cloudizer, a permis l’étude de différentes stratégies de distribution et de leur impact sur les différentes applications déployées à travers plusieurs publications [PLCKA11, SL12, LKC13]. Cette plateforme a été utilisée dans le projet MCUBE, pour distribuer les programmes de traitements des images collectées. Les volumes de données concernés par ce projet sont tels que l’utilisation d’une stratégie de distribution des requêtes fondée sur la localité des données [DG04, PLCKA11] permet de réduire efficacement les temps de traitement. Dans ce domaine, les algorithmes de distribution les plus utilisés sont ceux fondés sur la technique du hachage cohérent [KLL+97, KR04], qui est mise en œuvre dans plusieurs systèmes de stockage de données massives. Le but de ces travaux est de montrer à travers différentes simulations que les filtres de Bloom [Blo70, FCAB98, DSSASLP08] peuvent être facilement combinés à d’autres algorithmes de répartition de charge, pour fournir une alternative performante au hachage cohérent, dans certaines conditions. Ce travail a permis la mise au point d’une stratégie de répartition de charge fondée sur des filtres de Bloom indexés appelée WACA (Workload And Cache Aware Algorithm, Algorithme Renseigné sur la Charge et le Cache). Les Clouds de type Infrastructure à la Demande constituent l’environnement de déploiement cible de ces services. La propriété de ces plateformes est de facturer leurs services à l’utilisation. Afin de prendre ce facteur en compte, nous avons développé une stratégie fondée sur le coût comme indicateur de performance, et nommée CAWA (Cost-AWare Algorithm, Algorithme Renseigné sur le Coût) dont le fonctionnement a été testé à travers des simulations. Tel que montré en section 1 de cette introduction, il n’existe pas encore de simulateur adéquat pour les utilisateurs de plateformes de Cloud Computing. Le logiciel Simizer a donc été développé pour permettre la simulation d’applications orientées services déployées sur des infrastructures Cloud. Ce simulateur a permis de simuler et tester les stratégies de distribution développées pour la plateforme Cloudizer, et d’étudier leur comportement à large échelle. 6Organisation du présent document Le reste de ce document est organisé en deux parties principales. La première partie, composée des chapitres 2 à 4, décrit les développements des différentes plateformes logicielles évoquées dans la section précédente. Le chapitre 2 présente les particularités du projet MCube et ce qui le différencie des plateformes de traitement de données multimédia existantes. Le chapitre 3 décrit le fonctionnement de la plateforme Cloudizer et son utilisation dans le cadre du projet MCUBE, puis le chapitre 4 décrit les particularités et le fonctionnement du simulateur Simizer. La seconde partie de ce document se concentre sur les stratégies de distribution de requêtes mises au point au cours de cette thèse. L’état de l’art en matière de répartition de charge est présenté dans le chapitre 5. les chapitres suivants décrivent respectivement la stratégie WACA, (chapitre 6), qui utilise des résumés compacts pour assurer une distribution des tâches en fonction de la localisation des données dans le système, et la stratégie CAWA (chapitre 7) qui se fonde sur une estimation du coût d’exécution des tâches pour effectuer la répartition. Le chapitre 8 présentera les conclusions et perspectives de l’ensemble de ces travaux. 78Chapitre 2 MCube : Une plateforme de stockage et de traitement de données multimédia 2.1 Introduction L’objectif technique du projet MCube (Multimedia 4 Machine 2 Machine) est de développer une technologie Machine à Machine pour la capture et l’analyse de données multimédia par des réseaux de capteurs avec des problématiques de faible consommation et de transmission GPRS/EDGE. Le projet couvre la chaîne complète : l’acquisition des données, la transmission, l’analyse, le stockage, et le service d’accès par le WEB. Il s’appuie sur les infrastructures M2M actuellement offertes par les opérateurs du secteur comme les réseaux 3G/GPRS pour la communication des données. Le but de cette plateforme est de fournir des services d’analyse de données multimédia à faible coût permettant diverses applications telles que la surveillance de cultures et de sites industriels (détections d’intrusions ou d’insectes nuisibles). 2.1.1 Architecture du projet MCube L’architecture globale de la technologie MCube correspond à l’état de l’art en matière d’architecture M2M et est résumée en figure 2.1. Les "passerelles" sont des systèmes embarqués permettant de piloter des périphériques d’acquisition de données multimédia comme des appareils photos ou des microphones USB. Les passerelles assurent la transmission des 92.1. INTRODUCTION Figure 2.1 – Architecture du projet MCube données collectées vers la plateforme MCube, via une connexion 3G si un accès Ethernet n’est pas disponible. La communication s’effectue via le protocole HTTP. La plateforme est un serveur accessible via le web, dont le rôle consiste à : Stocker les données collectées La plateforme assure le stockage des données multimé- dia capturées et remontées par les passerelles. Ceci nécessite un large espace de stockage redondant et distribué afin de limiter les risques de pertes de données, ainsi que des méthodes efficaces pour retrouver les données stockées. Configurer les passerelles Le système offre la possibilité de communiquer avec les passerelles afin de les mettre à jour dynamiquement et de changer différents paramètres tels que le type de capture à effectuer (sons, images ou vidéos) ou la fréquence de ces captures. Cette communication se fait via une interface de programmation prenant la forme d’un service web REST[Fie00], déployée sur les serveurs de la plateforme. Traiter et analyser les données multimédia Les utilisateurs du système MCube peuvent développer leurs propres programmes d’analyse de données, et les stocker sur la plateforme pour former leur propre bibliothèque de traitements. Ces traitements doivent pouvoir être exécutés par lots, en parallèle sur un grand nombre de fichiers, mais aussi en temps réel au fur et à mesure de la collecte des données. Par conséquent, mis à part le rôle de communication avec les passerelles, la plateforme MCube devrait reposer sur une base de données multimédia. Ces systèmes stockent et 102.1. INTRODUCTION traitent des données en volumes importants (plusieurs giga/téraoctets). Les données concernées peuvent être de types différents (sons, images, vidéos,...) et sont séparées en un nombre important de petits fichiers pouvant provenir de différents périphériques d’acquisition. De plus, ces données sont généralement peu ou pas structurées. Afin d’assurer l’efficacité des traitements sur les données multimédia, il est nécessaire de les exécuter de façon parallèle. À nouveau, le résultat de ces traitements doit être stocké dans le système, ce qui permet la réutilisation des données pour des analyses supplémentaires. La somme de toutes ces données exige une capacité de stockage importante. 2.1.2 Problématiques Une contrainte primordiale du projet MCube est d’aboutir à un service suffisamment flexible pour pouvoir être personnalisé à chaque scénario d’utilisation, dans le but d’optimiser le modèle économique du client en fonction de nombreux critères. Ainsi, les traitements des données multimédia pourront être faits aussi bien côté passerelle que côté plateforme suivant les critères à optimiser. La plateforme fournira des services d’aide à la décision permettant d’optimiser au mieux la solution. Les choix d’architecture logicielle décrits en section 2.4 reflètent ces besoins. La plateforme MCube permet d’exécuter des analyses poussées sur les données reçues des passerelles. Les algorithmes utilisés pour ces analyses sont souvent soit expérimentaux, soit développés spécifiquement pour certains clients, et ne sont pas disponibles dans les librairies de traitements de données multimédias existantes telles que Image Terrier[HSD11] ou OpenCV[Bra00]. La conséquence est que ces algorithmes ne sont pas toujours directement parallélisables. Or, la collecte d’un nombre important de fichiers dans les passerelles MCube impose de pouvoir être en mesure d’exécuter les traitements sur une grande quantité de données en parallèle. Cet état de fait a des conséquences sur les choix d’architecture à effectuer car il est nécessaire de fournir un accès aux données à la fois au niveau fichier pour que les données soient accessibles aux différents programmes de traitements et un accès automatisé, via une interface de programmation, pour permettre aux utilisateurs d’interroger leurs données en temps réel. 112.2. COMPOSANTS DES PLATEFORMES DE STOCKAGE DE DONNÉES MULTIMÉDIA Ce chapitre expose donc dans un premier temps les composants des systèmes de stockage et de traitement de données multimédias en section 2.2, et analyse les différentes plateformes existantes de ce domaine par rapport aux besoins de la plateforme MCube en section 2.3. La section 2.4 décrit la solution adoptée pour la mise au point de l’architecture de la plateforme MCube et les problématiques qui découlent de ces choix sont discutées en section 2.6. 2.2 Composants des plateformes de stockage de données multimédia Il est possible de définir une plateforme de traitement de données multimédias comme un système logiciel distribué permettant de stocker des fichiers contenant des données photographiques, vidéos ou sonores, et de fournir les services nécessaires à l’extraction et au stockage d’informations structurées issues de ces fichiers. Les systèmes d’analyse de données multimédia possèdent un ensemble hiérarchisé de composants permettant de transformer les données brutes en informations précises [CSC09, HSD11]. Le schéma 2.2 montre l’articulation de ces différents composants, que l’on retrouvera dans la plupart des systèmes décrits dans ce chapitre. Données multimédias Extraction descripteurs Stockage descripteurs Indexation Detection Index informations Figure 2.2 – Architecture pour la fouille de données multimédia Le premier composant de ces systèmes correspond à la couche de stockage des données. Ce composant doit assurer le stockage et la disponibilité des données brutes, c’est à dire les documents audiovisuels dans leur format d’origine (RAW, MPEG, AVI, WAV), mais aussi des données intermédiaires nécessaires pour les traitements (les descripteurs) et les résultats des algorithmes d’indexation et d’analyse. Les descripteurs permettent de décrire le contenu des documents audiovisuels stockés 122.2. COMPOSANTS DES PLATEFORMES DE STOCKAGE DE DONNÉES MULTIMÉDIA dans le système. Il s’agit de représentations intermédiaires des données multimédias, comme par exemple les valeurs obtenues après l’application d’une transformée de Fourrier à un enregistrement sonore. Il existe un nombre important de représentations différentes, chacune dépendant du type d’information que l’utilisateur souhaite extraire des données collectées. Les systèmes de stockage multimédia fournissent une bibliothèque d’algorithmes divers permettant de procéder à l’extraction de plusieurs types de représentations. À partir de ces descripteurs, l’information obtenue peut être traitée de plusieurs manières : elle peut être utilisée pour construire un index des données afin de faciliter la recherche de contenu dans la banque de données multimédia (indexation), ou bien les données peuvent être traitées pour en extraire des informations précises, à travers l’utilisation d’algorithmes de détection d’objets, d’artefacts ou de mouvements (détection). Les composants génériques décrits dans cette section sont présents dans la plupart des systèmes évoqués dans la suite de ce chapitre. Chaque système doit cependant relever un certain nombre de défis pour parvenir à indexer ou extraire des informations des contenus. 2.2.1 Stockage de données multimédia Les données multimédia sont dans la plupart des cas des données extrêmement riches en informations et donc très volumineuses. Les données ainsi stockées doivent aussi faire l’objet de traitements et pré-traitements, dont il faut stocker les résultats pour pouvoir les analyser à l’aide d’outils appropriés. Les volumes de stockage atteints deviennent très vite handicapant pour les systèmes de gestion de base de données traditionnels. Différentes stratégies de stockage distribué peuvent être utilisées pour résoudre ce problème. Les données multimé- dias recouvrent généralement des espaces disque importants et sont difficilement compressibles sans perte d’information. Par conséquent, la distribution des données sur plusieurs machines à la fois apparaît comme la solution simple et économique. Plusieurs stratégies coexistent dans le domaine pour parvenir à ce but : les données peuvent être stockées dans un système de fichiers distribué [SKRC10], dans une base de données distribuée [Kos05] ou encore dans une base de données distribuée non relationnelle [Cor07, CDG+06]. 132.2. COMPOSANTS DES PLATEFORMES DE STOCKAGE DE DONNÉES MULTIMÉDIA Système de fichiers distribués Un système de fichiers distribué est un système dans lequel l’espace disque de plusieurs machines est mis en commun et vu par toutes les machines du système comme une seule entité de manière transparente. Cela permet d’augmenter l’espace disponible en partageant la capacité des disques de chaque machine du système, ou d’augmenter la fiabilité du système en autorisant la réplication des données. Des exemples de systèmes de fichiers distribués sont le Network File System (NFS) [SCR+00], XTreemFS[HCK+07] ou encore le Hadoop Distributed File System [SKRC10]. Cette approche est utilisée dans de nombreux projets de stockage et de traitement de données multimédia. Par exemple, les projets RanKloud [Can11] et ImageTerrier [HSD11] reposent sur le système de fichiers distribué issu du projet Hadoop, le Hadoop Distributed File System [SKRC10]. Ce système de fichiers a la particularité de ne permettre que l’ajout et la suppression de fichiers. La modification des données n’est pas possible. Cette limitation ne pose pas de problème dans les systèmes de stockage et traitement de données multimédia, car les fichiers bruts ne font pas l’objet de modifications internes, mais sont copiés puis lus plusieurs fois de suite. Ce type de système est particulièrement adapté lorsque les données doivent être traitées en parallèle sur plusieurs machines par divers programmes, comme dans le système de traitement de données parallèle Hadoop [Whi09]. Stockage en base de données La solution la plus directe pour fournir l’accès à des données dans une plateforme de services est la mise au point d’une base de données relationnelle. D’après [Kos05] l’arrivée dans les années 90 des systèmes de bases de données orientés objets tels qu’Informix 1 ou Oracle 2 a permis l’émergence de systèmes plus efficaces pour représenter les données multimédia. Les standards MPEG-7 [MPE12b] et MPEG- 21 [Mpe12a], par exemple, ont fourni un cadre de représentation des données multimédia pouvant servir de référence pour la mise au point de schémas de base de données spéci- fiques. C’est cette approche qui a été retenue dans le projet de “base de donnée MPEG-7”, développée par M. Döller et décrite dans [Döl04]. En utilisant un système de gestion de bases de données objet, M. Döller a créé un nouveau schéma respectant le format de re- 1. http://www.ibm.com/software/data/informix/, consulté le 5 octobre 2013 2. http://www.oracle.com/us/products/database/overview/index.html, consulté le 5 octobre 2013 142.2. COMPOSANTS DES PLATEFORMES DE STOCKAGE DE DONNÉES MULTIMÉDIA présentation fourni par le standard MPEG-7. Afin de parvenir à utiliser le langage SQL pour rechercher les données, les méthodes d’indexation ont aussi été étendues pour pouvoir indexer des données multi-dimensionnelles. Ceci permet aux utilisateurs de bénéficier de tous les mécanismes des bases de données traditionnelles et notamment d’utiliser le langage SQL pour la manipulation et la recherche de données multimédia. Les fichiers sont stockés soit en tant qu’objets binaires (BLOBs), comme simples champs d’une table, soit dans le système de fichiers, et seul le chemin vers les données figure dans la base. La principale limite de cette approche réside dans le fait que le système soit implémenté comme une extension du système commercial de bases de données Oracle. Il est donc difficilement envisageable d’ajouter de nouvelles fonctionnalités au système, en raison de l’interface de programmation de bas niveau nécessaire à ces changements. L’autre limite de cette approche est que le système n’est pas distribué, or, le volume de données généralement associé avec les bases de données multimédia peut nécessiter un fonctionnement réparti afin de multiplier la capacité de stockage et de traitement, ce qui n’est pas le cas dans ces travaux. Bases de données distribuées : Les bases de données distribuées permettent d’agréger la capacité de stockage de plusieurs machines au sein d’un seul système de base de données. Retenue par K. Chatterjee et al. [CSC09], cette approche consiste à utiliser les capacités existantes de systèmes de bases de données distribuées, comme par exemple MySql Cluster 3, et à adapter la base de données en ajoutant un index réparti permettant de retrouver rapidement les données recherchées sur l’ensemble des machines. IrisNet [GBKYKS03] est un réseau de capteurs pair à pair sur lequel les images et données des différents capteurs sont stockées dans une base de données XML. Les nœuds sont divisés en deux catégories : les "Sensing Agents" (SA) qui sont des machines de puissance moyenne reliées aux capteurs (webcam, météo, . . . ) et les "Organizing Agents" (OA) qui sont des serveurs sur lesquels sont déployés les services du réseau de capteurs. Les capteurs eux-mêmes sont des machines de puissance moyenne, avec peu ou pas de contraintes environnementales, et un espace de stockage important. 3. http://www.mysql.com, consulté le 5 octobre 2013 152.2. COMPOSANTS DES PLATEFORMES DE STOCKAGE DE DONNÉES MULTIMÉDIA Ces nœuds appelés “Sensing Agents” sont utilisés pour déployer des “Senselets”, qui filtrent les données issues des capteurs. La base de données est distribuée sur les OA. Les utilisateurs peuvent requêter la base de données en utilisant le langage XPATH (langage de requêtage de données XML). Ces deux approches reposent sur les systèmes de base de données traditionnels fournissant de fortes garanties de cohérence des données, suivant le principe ACID (Atomicité, Cohérence, Isolation, Durabilité). Or, il a été démontré que lorsque la taille d’un système distribué augmente, fournir une garantie sur la cohérence des données du système ne permet pas d’assurer à la fois disponibilité et la performance de celui-ci. C’est le théorème de CAP, Consistency, Availability et Partition Tolerance (Cohérence, Disponibilité et Tolérance aux partitions) démontré par Gilbert et Lynch dans [GL02]. Les systèmes multimédias distribués ne nécessitent pas de supporter de fortes garanties de cohérence sur les données : les fichiers à traiter ne sont écrits qu’une seule fois puis lus à plusieurs reprises pour mener à bien les analyses voulues. Par conséquent, certains acteurs ont construit leur propre système de gestion de données multimédia en s’abstrayant de ces garanties, comme Facebook 4 l’a fait avec le système Haystack [Vaj09]. Les composants de ce système ne reposent pas sur une base de données relationnelle mais sur un index distribué permettant de stocker les images dans des fichiers de grandes tailles (100Go), ce qui permet de grouper les requêtes et de réduire les accès disques nécessaires à l’affichage de ces images. La particularité de ce système est que les images y sont peu recherchées, mais sont annotées par les utilisateurs pour y ajouter des informations sur les personnes présentes dans l’image et la localisation de la prise de vue. Un autre exemple de base de données distribuée utilisée pour stocker les données multimédia est celui de Youtube 5, qui utilise la base de données orientée colonnes BigTable [CDG+06, Cor07], pour stocker et indexer les aperçus de ses vidéos. Agrégation de bases de données : Le canevas AIR créé par F. Stiegmaier et al. [SDK+11] se concentre sur l’extensibilité en utilisant un intergiciel pour connecter plusieurs bases de données entre elles, et utilise des requêtes au format MPEG-7 [MPE12b]. 4. http://facebook.com, consulté le 5 octobre 2013 5. http://youtube.com, consulté le 5 octobre 2013 162.2. COMPOSANTS DES PLATEFORMES DE STOCKAGE DE DONNÉES MULTIMÉDIA Cependant ces travaux restent dirigés sur la recherche de contenus plutôt que sur la détection d’éléments précis dans les images. Les données et leurs métadonnées (descripteurs) sont réparties sur différents systèmes de gestion de bases de données (SGBD) pouvant fonctionner sur différentes machines. Lorsque le système reçoit une requête, deux cas se présentent : soit les nœuds sont homogènes et la requête est envoyée à chaque machine puis les résultats sont fusionnés et / ou concaténés, soit les nœuds sont des systèmes différents (bases de données différentes) et seule la partie la plus adaptée de la requête est transmise au noeud le plus approprié. Les intergiciels LINDO[BCMS11] et WebLab[GBB+08] fournissent des modèles de représentations de données communs à plusieurs systèmes et permettent les transferts de données entre des services de traitements adoptant ce modèle. Ces systèmes ne reposent sur aucun système de stockage particulier mais permettent d’agréger différentes sources de données et différents services de traitements hétérogènes. La problématique de cette approche est la nécessité de devoir adapter les services et les traitements au modèle exposé par les interfaces d’un tel système. Une grande variété de solutions existent au problème du stockage des données multimédia. Un critère de choix possible est le type d’utilisation qui sera fait des données : par exemple un système d’extraction des connaissances fonctionnera mieux avec un système de fichiers distribué dans lequel les données sont accessibles de manière transparente, au contraire d’une base de donnée SQL qui requiert une interface particulière pour accéder aux données stockées. Dans le cadre du projet MCube l’accès aux données doit être possible de plusieurs manières : il faut pouvoir fournir un accès permettant de traiter les données en parallèle ainsi qu’une interface permettant de requêter les données générées par les ré- sultats des analyses effectuées. Le système se rapprochant le plus de ce cas d’utilisation est donc l’utilitaire HADOOP [Whi09], qui fournit à la fois un système de haut niveau pour requêter les données et un accès de bas niveau via le système de fichiers distribué. 2.2.2 Distribution des traitements Un volume important de données à analyser se traduit par la nécessité de paralléliser le traitement des données, de manière à réduire les temps d’exécution. Cependant, tous 172.2. COMPOSANTS DES PLATEFORMES DE STOCKAGE DE DONNÉES MULTIMÉDIA les systèmes de stockage de données multimédia ne permettent pas de traitement parallèle des données. Dans le domaine des traitements de données multimédia il est possible de distinguer deux manières de traiter les données[Can11] : les traitements à la chaîne (Multiple Instruction Multiple Data, MIMD) et les traitements parallèles (Single Instruction Multiple Data, SIMD). Traitements à la chaîne : Multiple Instruction Multiple Data Le système est constitué de plusieurs unités, chacune exécutant une étape particulière d’une chaine de traitements. Les données passent d’une étape à l’autre en étant transférées d’une entité à l’autre, de sorte que plusieurs données sont à différents stades de traitement au même instant. Le projet WebLab [GBB+08] est une architecture de traitement de données multimé- dia orientée service qui permet de faciliter le développement d’applications distribuées de traitement multimédia. Cette plateforme repose sur un modèle de données commun à tous ses composants représentant une ressource multimédia. Ce modèle ne repose pas sur un standard mais permet de créer des ressources conformes au standard MPEG-7. La raison de ce choix est que le standard MPEG-7 a été créé en 2002 et ne permet pas de bénéficier des dernières avancées en matière de descripteurs de données multimédias. Cette repré- sentation générique permet d’associer à chaque ressource des “annotations” représentant le contenu extrait de la ressource (appelés “morceaux de connaissance”). Les services disponibles se divisent en services d’acquisition, services de traitements, services de diffusion. Le modèle de données commun permet à ces différents services de pouvoir être composés pour créer des flux de traitements, de l’acquisition à la diffusion du contenu multimédia. Cette solution se veut très flexible et générique mais ne propose pas de solution en ce qui concerne la répartition des traitements. Le système SAPIR (Search in Audio-visual content using Peer-to-peer Information Retrieval) [KMGS09] est un moteur de recherche multimédia implémentant la recherche par l’exemple : il permet de retrouver à partir d’un document multimédia donné les documents similaires ou correspondant au même objet. SAPIR utilise le Framework apache UIMA [UIM12] pour extraire les informations nécessaires à l’indexation des données au 182.2. COMPOSANTS DES PLATEFORMES DE STOCKAGE DE DONNÉES MULTIMÉDIA format MPEG-7. Les flux ou fichiers reçus sont divisés en plusieurs modalités : par exemple dans le cas d’une vidéo, un “splitter” va séparer le son des images, puis la suite d’images va aussi être divisée en plusieurs images fixes, chaque élément ainsi extrait va ensuite être traité par un composant spécifique pour le son, la vidéo et les images le tout de façon parallèle. Une fois la phase d’extraction terminée le fichier d’origine est recomposé en intégrant les métadonnées qui en ont été extraites. UIMA rend la main au système SAPIR, qui va insérer le fichier dans son index distribué en se basant sur les métadonnées que le fichier contient désormais. Le système utilise une architecture pair à pair pour stocker et répartir les données. Cependant, la dépendance du système SAPIR avec Apache UIMA, destine ce système uniquement à la recherche de contenus multimédia plutôt qu’à servir de plateforme de traitement de données multimédia générique. Traitement en parallèle : Single Instruction Multiple Data (SIMD) Ce type de système sépare les étapes du traitement dans le temps plutôt que dans l’espace : à chaque étape du traitement, toutes les machines du système exécutent le même traitement en parallèle sur l’ensemble des données. C’est le modèle suivi par le framework Hadoop [Whi09] pour traiter les données. Ce framework générique de traitement de données massives en parallèle est utilisé dans plusieurs systèmes de traitements de données multimédia. Par exemple, les travaux menés dans le cadre du projet RanKloud [Can11] utilisent et étendent le framework HADOOP [Whi09] pour répondre à des requêtes de classement, ainsi que pour permettre des jointures dans les requêtes portant sur plusieurs ensembles de données. Pour cela le système échantillonne les données et évalue statistiquement leur répartition pour optimiser certaines procédures (notamment les opérations de jointures). Un index des données locales est construit sur chaque machine du système, permettant à chaque nœud de résoudre les requêtes localement et d’envoyer les résultats à une seconde catégorie de nœuds qui assureront la finalisation des requêtes. Cependant ce système est conçu pour analyser une grande quantité de données et non pas pour répondre à des requêtes en temps réel, et se destine plutôt à des requêtes de recherche de contenus. Le projet Image Terrier [HSD11] est un système d’indexation et de recherche d’images 192.2. COMPOSANTS DES PLATEFORMES DE STOCKAGE DE DONNÉES MULTIMÉDIA et de vidéos fondé sur le système de recherche textuelle Terrier 6. Ce système utilise lui aussi la technique de distribution des traitements fournie par le canevas HADOOP afin de construire incrémentalement l’index des images. Ce système présente l’avantage d’être très ouvert, mais il est uniquement destiné à la recherche de contenus. Limites des outils existants Ces deux types de répartitions ne sont pas exclusives et les deux approches peuvent être combinées de manière à augmenter l’efficacité d’un système. Il est ainsi possible de créer des flux de travaux enchaînant différentes étapes de traitement ou les exécutant en parallèle. La principale limite des outils existants réside dans le fait que les traitements répartis font partie d’une bibliothèque logicielle utilisant un canevas donné, comme ImageTerrier [HSD11] et Hadoop. Or, dans le projet MCube, les traitements à répartir sont codés et compilés sans suivre d’API ou de canevas logiciel particulier. Il est aussi parfois nécessaire d’exécuter les traitements à la demande au fur et à mesure de l’arrivée des données. Dans ce contexte il apparait donc nécessaire de faire appel à des plateformes de plus haut niveau permettant d’adapter les traitements à leur contexte d’exécution. 2.2.3 Plateformes génériques de traitements de données multimédias La recherche en matière de traitement des données multimédia se concentre aussi pour une large part sur la conception de nouveau algorithmes d’extraction d’informations. Le système doit fournir un catalogue de services permettant de procéder aux extractions de données et aux analyses voulues par l’utilisateur. Cette librairie doit être extensible afin de permettre aux utilisateurs d’y implanter leurs propres analyses. L’ouverture d’un système se mesure à sa disponibilité, et à sa capacité à s’interfacer avec d’autres systèmes de manière à pouvoir être utilisé dans différents contextes. Plusieurs systèmes de stockage évoqués dans ce chapitre sont décrits dans la littérature mais ne sont pas disponibles pour évaluation, du fait du peu de cas d’utilisations qu’ils permettent de résoudre. Par exemple le système Haystack développé par Facebook ne fait pas l’objet d’un développement à l’extérieur de l’entreprise. Le projet RanKloud bien que décrit dans diverses publications, n’est pas 6. http://terrier.org/, consulté le 5 octobre 2013 202.2. COMPOSANTS DES PLATEFORMES DE STOCKAGE DE DONNÉES MULTIMÉDIA publiquement disponible. De même, peu de projets sortent du simple cadre du prototype de recherche, comme par exemple le projet LINDO [BCMS11]. Le projet LINDO [BCMS11] a pour objectif de développer une infrastructure géné- rique de traitement de données multimédia permettant de distribuer les traitements et les données, en assurant l’interopérabilité de différents systèmes de traitement de données multimédias. Il a permis la mise au point d’une infrastructure d’indexation générique et distribuée. Pour cela, un modèle de données représentatif a été créé pour les données multimédia et pour les algorithmes d’indexation de ces données. Les données sont donc réparties sur un système de fichiers distribué et le système sélectionne l’algorithme d’indexation le plus approprié en fonction des requêtes les plus féquemment envoyées par l’utilisateur. Ce système a été appliqué à la vidéosurveillance, pour détecter des événements dans les flux vidéo. C’est une plateforme multi-utilisateurs, qui peut être utilisée dans plusieurs domaines à la fois, et permet de représenter les données au format MPEG-7 ou MPEG-21. Cependant les informations ne sont extraites qu’à la demande explicite des utilisateurs (à travers une requête) et traversent toutes un serveur central qui contrôle les machines indexant les contenus. Ce système risque donc de limiter l’élasticité de la solution. L’élasticité d’un système est sa capacité à s’adapter à l’apparition ou la disparition dynamique de nouvelles ressources. Cette notion est particulièrement importante dans le contexte des plateformes de Cloud Computing, où les ressources peuvent être allouées et disparaître rapidement. Le projet WebLab est un projet libre 7, il est construit sur le même principe d’interface et de modèle d’échange de données que le projet LINDO. Le projet WebLab ne modélise pas les traitements, mais seulement le format des données à échanger entre différentes plateformes de traitements hétérogènes. Ce système repose sur le bus de service Petals 8 pour ses communications, or ce composant semble posséder des problèmes de performance comme le montre les résultats de différents bancs d’essais successifs 9. Ces deux systèmes servent donc d’intergiciels pour la communication entre différentes plateformes de traitements et permettent l’agrégation de différents sites ou grilles spécialisés 7. http://weblab-project.org/, consulté le 5 octobre 2013 8. http://petals.ow2.org/, consulté le 5 octobre 2013 9. http://esbperformance.org/display/comparison/ESB+Performance+Testing+-+Round+6, consulté le 5 octobre 2013 212.3. ANALYSE dans certaines étapes de traitement. Le propos du projet MCube est au contraire de concentrer les données des différents utilisateurs afin de mutualiser la plateforme de traitement et permettre des économies d’échelles en matière de stockage et de capacité de calcul. Ce projet se situe à un niveau intermédiaire entre les systèmes de traitements de données de bas niveau (ImageTerrier, Hadoop, ...) et ces plateformes de fédération que sont les projets LINDO et WebLab. Il s’agit donc d’un système multi-tenant, car il sert plusieurs clients en mutualisant ses ressources. 2.3 Analyse Les systèmes de stockage et de traitements multimédias décrits ici possèdent diverses architectures. Les architectures fondées sur les bases de données traditionnelles laissent peu à peu place à des systèmes basés sur les technologies issues des plateformes Web à large échelle telles que le canevas Hadoop [Whi09]. Bien que l’adoption de ces solutions se démocratise, il n’existe pas pour le moment d’alternative permettant de tirer parti des différents services de ces plateformes sans nécessiter de développement supplémentaire pour être adapté à l’environnement cible. De plus, hormis les initiatives telles que LINDO, Weblab ou ImageTerrier, peu de projets dépassent le stade du prototype de recherche. Pour une large part, ces projets servent de plateformes d’évaluation des algorithmes d’extraction de connaissances et d’indexation, ou sont orientés vers la recherche de contenus. Le tableau 2.1 résume les propriétés disponibles pour chacun des systèmes listés dans les sections précédentes, par rapport aux défis décrits dans la section 2.1.2 de ce chapitre. L’examen des différentes plateformes de stockage et de traitement de données multimé- dias montre qu’il n’existe pas, actuellement, de projets remplissant le cahier des charges du projet MCube. Il existe des plateformes de traitements de données génériques, qui ne sont pas spécialisées dans les données multimédia, comme le canevas Hadoop, et qui peuvent donc servir de base à la plateforme MCube. 222.4. ARCHITECTURE DE LA PLATEFORME MCUBE Table 2.1 – Propriétés des systèmes de traitements de données multimédias Stockage Traitements Mutualisation ouverture Elasticité Système Données Descripteurs Informations Descripteurs Indexation Informations Mpeg-7 DB oui oui non oui oui non oui non non AIR distribué distribué non oui distribué non oui non limitée Lindo distribué distribué non distribué distribué oui oui limitée limitée Weblab distribué distribué non non non non oui limitée limitée SAPIR distribué distribué non oui oui non oui limité oui IrisNet distribué distribué distribués oui distribué oui oui oui oui [CSC09] distribué distribué non oui distribué non oui non oui RanKloud distribué distribué non distribué distribué non oui non oui Haystack distribué distribué distribués distribué distribué oui non non oui ImageTerrier distribué distribué non distribué distribué non non oui oui 2.4 Architecture de la plateforme MCube 2.4.1 Architecture matérielle Passerelles MCube. Les passerelles MCube sont des appareils mis au point par la société Webdyn 10. Il s’agit d’un système embarqué reposant sur le système Linux et un processeur ARM. La présence du système d’exploitation complet permet de connecter divers périphériques d’acquisition de données multimédias comme des appareils photos ou des micros. Le système de la passerelle exécute un planificateur de tâches pouvant être configuré à distance en recevant des commandes depuis les serveurs MCube. Le rôle des passerelles est d’assurer l’exécution à intervalles réguliers (configurés par l’utilisateur) d’un programme appelé "librairie passerelle" actuellement déployé sur le système. Les passerelles sont équipées d’un port Ethernet et d’un modem 3G permettant de se connecter à internet pour dialoguer avec le serveur MCube. Serveurs MCube. Les serveurs MCube sont trois machines Dell équipées chacune de deux processeurs intel Xeon embarquant 8 cœurs chacun. L’espace de stockage important sur les machines (8 téraoctets par serveur) permet d’anticiper sur la quantité de données à stocker dans le cadre du projet MCube, dont les collectes annuelles peuvent représenter dans certains cas plusieurs centaines de gigaoctets par mois. 10. http://www.webdyn.com, consulté le 5 octobre 2013 232.4. ARCHITECTURE DE LA PLATEFORME MCUBE 2.4.2 Architecture logicielle L’architecture logicielle du projet MCube a été conçue de manière à permettre aux utilisateurs de pouvoir eux-mêmes développer les applications déployées sur les passerelles et la plateforme. Pour cela, une interface de programmation a été mise au point par le constructeur de la passerelle, la société WebDyn 11, permettant de séparer les tâches d’acquisition des données de leur planification. Les composants développés sur cette interface sont appelés "librairies passerelles". Les librairies de passerelles sont des librairies dynamiques implantant les fonctions de l’interface de programmation MCube, ce qui permet de les déployer à la demande depuis la plateforme Web du projet. Ces librairies sont développées pour remplir deux fonctions principales : – L’acquisition des données : C’est la fonction essentielle de ces librairies, elle consiste à piloter les différents périphériques de capture de données multimédia connectés à la passerelle pour acquérir des données brutes : photos, sons, vidéos. – Filtrage des données : Dans certains cas, les données capturées peuvent être volumineuses. Par exemple, un cas d’utilisation possible du service MCube consiste à détecter la présence d’insectes nuisibles à partir d’enregistrements sonores. Dans ce cas précis les données enregistrées ne sont envoyées au serveur que lorsqu’un signal suspect est détecté dans l’enregistrement. Un traitement plus précis exécuté à la demande sur le serveur permet ensuite de confirmer ou d’infirmer la détection. La communication entre les passerelles et les serveurs repose sur un protocole HTTP/ REST qui permet aux passerelles : – d’envoyer des données collectées à la plateforme MCube via le serveur Web, – de recevoir une nouvelle librairie, – de recevoir des commandes à transmettre à la librairie déployée sur la passerelle. 2.4.3 Architecture de la plateforme MCube La plateforme MCube a un rôle de gestion des équipements et d’agrégation d’information. Elle assure la communication avec les passerelles déployées, en permettant aux utilisateurs de les configurer à l’aide d’une interface web. La plateforme fournit aux utilisa- 11. http://www.webdyn.com/, consulté le 5 octobre 2013 242.4. ARCHITECTURE DE LA PLATEFORME MCUBE teurs l’accès aux librairies et programmes d’analyse de données qu’ils ont développés. Les données transférées par les passerelles sont stockées sur les serveurs de la plateforme, et une interface web permet aux utilisateurs de lancer ou de programmer les analyses qu’ils souhaitent exécuter sur les données téléchargées depuis les passerelles. L’architecture finale de la plateforme MCube repose sur trois composants logiciels : Demandes de traitements mcube.isep.fr Cloudizer Utilisateurs Passerelles Envoi de données Consultation des données Configuration HDFS HDFS HDFS Noeuds de stockage / traitement Stockage / consultation données passerelles et traitements Requêtes de traitements Service Web MCube Figure 2.3 – Architecture de la plateforme MCube L’interface Web C’est l’interface utilisateur du système. Elle permet aux agriculteurs de gérer leurs passerelles et d’accéder à leurs données afin de les récupérer dans le format qu’ils souhaitent ou de lancer / planifier les traitements à effectuer. De plus l’interface permet aux utilisateurs de charger de nouveaux programmes de traitements de données. Le canevas Hadoop Le système Hadoop permet de stocker les données de manière répartie via le système de fichiers distribué HDFS [SKRC10]. Il permet d’avoir un système de fichiers redondant pouvant accueillir un grand nombre de machines. De plus, les données ainsi stockées peuvent être accédées à l’aide de langages de plus haut niveau tel que le langage de requêtage HQL (Hive Query Language) [TSJ+09] 252.4. ARCHITECTURE DE LA PLATEFORME MCUBE Le canevas Cloudizer Le framework Cloudizer est un canevas logiciel développé durant cette thèse qui permet de distribuer des requêtes de services web à un ensemble de machines. Ce système est utilisé pour traiter les fichiers envoyés par les passerelles au fur et à mesure de leur arrivée dans le système. La figure 2.3 montre comment s’articulent les différents composants de la plateforme. Les données de configuration, les informations utilisateurs, et les coordonnées des passerelles sont stockées dans une base de données SQL traditionnelle (MySql 12). Les données remontées par les passerelles, ainsi que les librairies et les programmes d’analyses sont stockés dans le système HDFS [SKRC10]. Chaque utilisateur possède un répertoire dédié sur le système de fichiers distribué. Ce répertoire contient les fichiers reçus des passerelles et classés par nom de la librairie d’origine des données. Les résultats des traitements effectués sur ces données sont stockés dans un répertoire dédié et classés par noms de traitements et date d’exécution. Ceci permet aux utilisateurs de pouvoir retrouver leurs données de manière intuitive. Les utilisateurs peuvent choisir deux modes de traitement des données : un mode évé- nementiel et un mode planifié. Lorsque le mode événementiel est sélectionné, l’utilisateur définit le type d’événement déclenchant le traitement voulu : ce peut par exemple être l’arrivée d’un nouveau fichier ou le dépassement d’un certain volume de stockage. Le traitement est alors exécuté sur les données désignées par l’utilisateur. Le mode planifié correspond à une exécution du traitement régulière et à heure fixe. Le déclenchement des traitements est géré par la plateforme Cloudizer décrite dans le chapitre suivant. 2.4.4 Description des algorithmes de traitement de données multimédia Les utilisateurs de la plateforme peuvent charger de nouveaux algorithmes de traitement de données multimédia. Pour que le système puisse utiliser cet algorithme, il est nécessaire d’en fournir une description afin de le stocker dans la base de données. Le terme "algorithme" désigne ici par abus de langage l’implantation concrète d’un algorithme donné, compilée sous la forme d’un programme exécutable. Un modèle type de ces algorithmes a donc été conçu, il est représenté en figure 2.4. Ce schéma est inspiré des travaux sur 12. www.mysql.com, consulté le 5 octobre 2013 262.4. ARCHITECTURE DE LA PLATEFORME MCUBE l’adaptation de composants de [AGP+08, BCMS11] et [GBB+08]. Figure 2.4 – Modèle de description d’algorithme Un programme et l’ensemble de ses fichiers sont décrits par la classe "Algorithm". Cette classe contient une liste qui permet de spécifier les fichiers exécutables et de configurations nécessaires à l’exécution du programme. Un programme est généralement exécuté avec des paramètres fournis sur l’entrée standard, la liste des paramètres (la classe "Parameter") décrit les paramètres à fournir à l’exécutable ainsi que leurs positions et préfixes respectifs si besoin. La classe "OutputFormat" permet de décrire le type de donnée en sortie de l’exécution du programme. Par exemple, la sélection du format ”TextOuput” signifie que la sortie du programme sur l’entrée standard correspond à des données textes tabulaires, séparées par un caractère spécifique. D’autres formats sont disponibles et peuvent être ajoutés à la librairie. Exemple de modèle d’algorithme : Calcul de tailles de tomates Le listing 2.1 présente un exemple de modèle d’algorithme pour un programme développé dans le cadre du projet MCube. Dans ce cas d’utilisation, un dispositif expérimental a été mis au point par les membres de l’équipe de traitement du signal de l’ISEP, afin de prendre en photo un 272.4. ARCHITECTURE DE LA PLATEFORME MCUBE plant de tomates selon deux angles différents. Grâce à ce décalage et un calibrage précis du dispositif, il est possible de donner une estimation de la taille des tomates détectées dans les photos, si leurs positions sont connues. Cet algorithme prend en entrée deux listes de points correspondants respectivement aux contours droit et gauche d’une tomate du plant photographié, et fournit une estimation de la taille du fruit. Listing 2.1 – Exemple d’instance du modèle d’algorithme tomate_measurement 1. 0 U j jwal Verma Detection de visages methode de Viola!Jones , l i b r a i r i e OPEN!CV t x t tomate_measurement . j a r leftImageContours rightImageContours Cet algorithme est implémenté en java sous la forme d’une archive JAR. Cependant le système le voit comme une boite noire et ne connait donc que les paramètres à lui fournir en entrée et le type de données en sortie. Cette information sur les paramètres à fournir permet de pouvoir commander l’exécution du programme à la demande, via un service 282.5. DÉVELOPPEMENT DU PROJET Web utilisant le canevas Cloudizer décrit au chapitre 3. 2.5 Développement du projet La conception détaillée de la plateforme Web MCube et son modèle de données a été faite par l’auteur de ce document. Le développement de l’interface Web permettant la gestion des passerelles et le stockage des librairies ont été fait par trois stagiaires de niveau Master 1 et 2. Le mode de développement s’est fondé sur des itérations courtes (une à deux semaines), en donnant des objectifs de fonctionnalités précises à développer durant ce laps de temps, via une feuille de route établie à l’avance. Chaque nouvelle fonctionnalité était testée manuellement puis déployée sur le serveur de production du projet 13. Cette approche de développement d’application rapide a été facilitée par l’utilisation du canevas Grails comme base au projet. L’interface web de la plateforme représente un volume de 4000 lignes de code en langage Groovy. Mon rôle au niveau du développement de ce système s’est donc limité à la conception de la base de données, puis à la supervision et aux tests fonctionnels des développements réalisés, ainsi qu’à la correction de quelques bogues éventuels trouvés lors des phases de tests. Le code doit encore faire l’objet d’une intégration avec le projet Cloudizer pour assumer l’ensemble des fonctionnalités attendues. Il sera à terme disponible sous forme de programme libre, sous réserve d’acceptation par les parties prenantes du projet. 2.6 Discussion Le projet MCube est une architecture logicielle de collecte et de traitement de données multimédias destinée à fournir des services avancés de détection et de surveillance aux agriculteurs. La mise au point de ce système nécessite de faire interagir différents composants logiciels hétérogènes. La problématique de la distribution et de l’exécution en parallèle de traitements de nature spécifique, a des conséquences sur le choix de la plateforme utilisée pour cette répartition et sur son efficacité. L’architecture finale s’appuie donc sur trois services : un serveur d’applications destiné à la communication avec les utilisateurs du 13. http://mcube.isep.fr, consulté le 5 octobre 2013 292.6. DISCUSSION système et les services extérieurs, un système de fichiers distribués permettant de stocker différents fichiers tout en permettant différents modes d’accès aux données stockées en son sein, et un système de gestion de services et de distribution de requêtes qui assurera la répartition de la charge lors du traitement des données. Ce service, appelé Cloudizer et développé au cours de cette thèse, permet à l’utilisateur de choisir différentes stratégies de répartition de charge, et de comparer leur performances respectives pour un même service. La mise au point de stratégies de répartition adéquates est donc nécessaire. Le chapitre suivant décrit l’architecture technique du projet Cloudizer et son intégration au projet MCube. 30Chapitre 3 Le framework Cloudizer : Distribution de services REST 3.1 Introduction Cloudizer est une plateforme logicielle ouverte permettant de déployer, répartir et superviser des services web REST. Cette plate-forme est destinée à faciliter le déploiement et la répartition d’applications existantes sur les plateformes d’informatique dans les nuages de type "infrastructure à la demande". Cloudizer a été développé avec deux objectifs : premièrement faciliter le développement et le déploiement de stratégies de répartition de charge adaptées aux applications, en fournissant une interface de programmation suffisamment expressive et claire pour le programmeur. Deuxièmement la plateforme doit assurer la disponibilité de plusieurs services différents en permettant de choisir la stratégie de répartition de charge la plus appropriée pour chacun de ces services. Pour assurer cette répartition, le problème de conservation de l’état du service se pose. Lorsqu’un service web maintient des informations sur chacun des clients qui lui sont connectés par exemple, il est nécessaire de toujours renvoyer les requêtes de ce client vers la machine qui possède les informations le concernant, ce qui réduit considérablement les possibilités de répartition de la charge. Ce constat a été établi par Roy T. Fielding dans sa thèse publiée en 2000 [Fie00], où il propose d’organiser les services client-serveur autour du principe "Representational State Transfer" (REST). Selon ce principe, les séquences de requêtes et de réponses des systèmes clients serveurs sont considérées comme une suite 313.2. ARCHITECTURE DU CANEVAS CLOUDIZER d’échanges d’objets appelés "ressources". A chaque échange, une représentation particulière de la ressource considérée est transmise. Le client transmet au serveur les informations né- cessaires pour retrouver la ressource associée à chaque requête, de sorte que le serveur n’ait pas à maintenir d’information sur la séquence d’échange en cours. Le serveur ne maintient donc pas d’état entre les requêtes, ce qui simplifie sa distribution car il n’y a pas d’état à synchroniser entre les machines. Le système Cloudizer permet de gérer et répartir l’exécution de services web sur un ensemble de machines de deux manières : soit en exécutant les requêtes au fil de l’eau, soit en les exécutant en parallèle, par lots de requêtes. Ce comportement est approprié dans le contexte de la plateforme MCube, qui a besoin de ces deux modes de fonctionnement pour gérer les traitements des données multimédia. La première partie de ce chapitre décrit donc l’architecture et le fonctionnement gé- néral de la plateforme Cloudizer 3.2. La seconde partie de ce chapitre est consacrée aux mécanismes permettant d’intégrer Cloudizer dans la plateforme MCube 3.3. La conclusion de ce chapitre (section 3.5) discutera des limites de cette approche et les développements nécessaires pour l’améliorer. 3.2 Architecture du canevas Cloudizer Cloudizer tire partie de l’architecture multi-tiers de la plupart des applications Web pour permettre la répartition de charge. Comme le montre la figure 3.1, le code du service à distribuer est répliqué sur toutes les machines du système. La gestion des données est déléguée à une base de données répartie, et la gestion des fichiers d’application est déléguée à un système de fichiers distribué. Ce découplage permet à la plateforme de n’assurer que la répartition des traitements. Les composants de cette plateforme communiquent via des services REST. Ces composants sont au nombre de trois, il s’agit du répartiteur, du contrôleur et de la librairie déployée sur les machines du système, appelées "nœuds". La répartition est assurée par le répartiteur qui filtre les requêtes. Lorsqu’une requête d’exécution destinée à un service déployé arrive, elle est envoyée vers les nœuds Cloudizer selon la stratégie de répartition sélectionnée par l’utilisateur et appliquée par le répartiteur. 323.2. ARCHITECTURE DU CANEVAS CLOUDIZER Contrôleur Cloudizer Application Serveur HTTP Internet Serveur Maître Système de fichiers distribué Base de données fragmentée Librairie Cloudizer Service Web Répliqué Serveur HTTP Noeud Cloudizer Système de fichiers distribué Base de données fragmentée Librairie Cloudizer Service Web Répliqué Serveur HTTP Noeud Cloudizer Système de fichiers distribué Base de données fragmentée Appel aux services non-répliqués Réplication Répartiteur Appel au service web répliqué Figure 3.1 – Architecture de la plateforme Cloudizer Dans tous les autres cas, la requête est transmise à l’application déployée sur le serveur maître. Le but de ce système est de parvenir à répartir le service de manière transparente. Pour cela le code de l’application est répliqué sur tous les nœuds, mais les fichiers ou les bases de données sont répartis via l’utilisation d’un système de fichiers distribué type “HDFS” ([SKRC10]) ou d’une base de données utilisant la fragmentation horizontale. 3.2.1 Les nœuds Les nœuds de la plateforme Cloudizer sont des machines sur lesquelles la librairie Cloudizer est déployée. Cette librairie fournit les routines nécessaires à l’enregistrement et au déploiement de nouveaux services sur la machine où elle s’exécute. Le seul paramètre de configuration nécessaire au fonctionnement du programme est l’adresse du Contrôleur. Quand un nœud (nœud Cloudizer ) s’enregistre dans le système, il envoie à une fréquence pré-configurée des "battements de coeur" au contrôleur afin que celui-ci puisse connaître 333.2. ARCHITECTURE DU CANEVAS CLOUDIZER les nœuds actifs. Les nœuds enregistrent également la liste des services web actifs sur la machine. Chaque nœud est donc responsable de la supervision des services de la machine sur laquelle il est déployé et reporte son statut au contrôleur. Ce statut contient les informations décrivant la machine telles que le nombre de cœurs, la capacité de stockage, la taille de la mémoire et le taux d’utilisation du processeur. Les nœuds dialoguent avec le contrôleur via une interface de programmation REST. Une seconde interface de programmation est utilisée entre les nœuds pour procéder à des appels de méthodes à distance. Les souches d’appels sont générées dynamiquement par le nœud Cloudizer à partir de l’inspection de l’interface des méthodes cibles par réflexion. Les paramètres effectifs sont automatiquement encodés au format U.R.L (Universal Resource Locator). Les données de résultats de ces invocations sont, quant à elles, converties au format XML et décodées lors de la réception. Les machines peuvent donc servir de mandataires pour appeler des services distribués. 3.2.2 Le répartiteur Le rôle de ce composant est d’appliquer la politique de répartition de charge spécifiée par l’utilisateur pour transférer les requêtes aux services déployés dans le système. Différentes politiques de répartition de charge peuvent être appliquées en fonction de l’application. Une interface Java permet l’implémentation de nouvelles stratégies de répartition. L’utilisateur précise ensuite le nom de la classe implémentant la politique de répartition voulue dans la configuration du répartiteur pour l’appliquer sur le service qu’il souhaite répartir. La figure 3.2 montre le modèle utilisé pour implanter ces stratégies. La classe abstraite Policy fournit la méthode virtuelle loadBalance qui renvoie une machine cible après avoir pris en paramètre la liste des machines disponibles et les paramètres de la requête en cours. Lorsqu’une requête concernant un service déployé sur la plateforme arrive au niveau du répartiteur, la servlet CloudFrontend est appelée et exécute la méthode loadbalance définie pour le service cible. Les stratégies sont chargées lors de l’initialisation du répartiteur, en fonction de la confi- guration définie par l’utilisateur. Lorsque le répartiteur reçoit une nouvelle requête, il vérifie que la requête vise un service pour lequel des machines sont disponibles en interrogeant le 343.2. ARCHITECTURE DU CANEVAS CLOUDIZER Figure 3.2 – Modèle des stratégies de répartition de charge contrôleur. Si aucune machine n’est disponible, une erreur est renvoyée. Si des machines sont disponibles pour le service demandé, le répartiteur peut procéder au transfert de la requête de deux manières différentes : à la volée, c’est à dire que chaque requête reçue est immédiatement transférée à la machine implantant le service, soit en parallèle : la requête et ses paramètres sont découpés de manière à former un ensemble de plusieurs requêtes distinctes, qui sont envoyées en même temps et de manière asynchrone à un ensemble de machines pour être exécutées en parallèle. Exécution requête par requête Pour chaque requête reçue, le répartiteur applique la stratégie de répartition sélectionnée par l’utilisateur pour choisir une machine cible, puis transfère directement la requête à la machine sélectionnée. Exécution des requêtes en parallèle Un service peut être appelé de plusieurs machines / clients à la fois. Toutefois, certains services peuvent être appelés en parallèle sur plusieurs machines en cas de besoin, ce qui permet de réduire le temps d’exécution total. Le résultat sera donc l’agrégation de plusieurs résultats produits sur différentes machines. Pour cela deux modes d’appels sont possibles : un mode d’appel parallèle simple où chaque nœud disponible reçoit une part égale de requêtes à exécuter pour le service appelé, et un mode avec équilibrage de charge où les requêtes d’exécution à agréger sont réparties en 353.3. INTÉGRATION AU PROJET MCUBE suivant une politique de distribution choisie par l’utilisateur. 3.2.3 Déploiement de services Cloudizer permet de superviser et déployer des services web. Lorsqu’un nœud Cloudizer est déployé, le service est configuré via un fichier de propriétés décrivant les différentes informations nécessaires à l’identification du service. Un service est identifié par un nom et un numéro de port. Lors du lancement du nœud cloudizer, la librairie enregistre la machine et le service correspondant auprès du Contrôleur, qui met à jour le statut du service dans sa base de données et fait apparaître cette instance comme disponible. 3.3 Intégration au projet MCube La plupart des algorithmes de traitement d’images ou de sons destinés à la plateforme MCube sont écrits sans considération pour le traitement de gros volumes de données. Or, dans le contexte de ce projet, les programmes de traitement des fichiers multimédias doivent s’exécuter sur un nombre important de fichiers à la fois, qui plus est sur une architecture de stockage distribuée. Afin d’adapter de manière transparente les algorithmes utilisés à ce contexte, le projet Cloudizer a été utilisé pour déployer et exécuter les programmes à la demande en fonction des besoins. Ainsi, un binaire exécutable peut être converti en service web à l’aide d’une description XML du programme suivant le schéma représenté en figure 2.4. Il est plus efficace d’envoyer le programme exécutable vers les données plutôt que de lui faire lire les données depuis le réseau. Ce principe est au centre des plateformes de traitement de données massives comme le système Hadoop[Whi09]. Un fichier de description XML comme celui figurant dans le listing 2.1 doit être créé pour représenter un programme et le déployer dans le système. La librairie Cloudizer contient un utilitaire permettant de créer une arborescence où seront stockés les binaires du programme et tous les dossiers et dépendances nécessaires. Deux autres dossiers sont créés par défaut : un dossier INPUT et un dossier OUTPUT. Le dossier INPUT est destiné à stocker les fichiers en entrée du programme, et le dossier OUTPUT à stocker les fichiers en sortie, à la suite d’une exécution. Une fois l’arborescence créée, il est possible d’y exécuter un serveur 363.3. INTÉGRATION AU PROJET MCUBE Méthode Paramètres Action GET - Nom du service, - Paramètres tels que décrits dans le fichier description.xml Renvoie le contenu d’un fichier de résultat correspondant aux paramètres donnés. Renvoie une erreur 404 si le fichier n’existe pas. POST Nom du service, Paramètres Exécute le programme représenté par le service. Renvoie une erreur 500 en cas de problème à l’exécution. PUT Nom du service, fichier à transférer Copie le fichier donné en paramètre dans le répertoire INPUT du service. DELETE Nom du service, nom de fichier Supprime le fichier indiqué en paramètres des répertoires du service Table 3.1 – Protocole HTTP : exécution de services de traitement de données HTTP, qui sera identifié par le nom du programme précisé dans le fichier XML. Ce serveur répond aux requêtes HTTP GET, POST, PUT et DELETE avec la sémantique détaillée en tableau 3.1. Sécurité des exécutions Les exécutables convertis de cette manière en services web peuvent être exposés à des attaques par des utilisateurs malicieux. Limiter le risque d’attaques est primordial, dans la mesure où les programmes déployés sur la plateforme sont des boites noires dont le fonctionnement est inconnu. Le serveur utilise donc l’utilitaire "Jail" [KW00] qui permet d’exécuter des binaires dans un environnement limité au strict minimum, ce qui réduit les risques d’opérations illégales ou accidentelles sur des fichiers de configuration ou système. De plus, le fichier de description précise rigoureusement les types de données attendus pour les paramètres du programme, ce qui permet au serveur de refuser les requêtes qui ne respectent pas la signature attendue de l’appel. La dernière contre-mesure est de limiter autant que possible l’exposition de ces services en leur interdisant l’accès au réseau, qui n’est donc obtenu que par le serveur généré par Cloudizer. Exécution asynchrone L’exécution du service en mode asynchrone permet d’alléger la charge de la machine appelant le service en raccourcissant le temps de la connexion entre le client et le serveur, via l’utilisation d’une fonction de rappel distribuée. Ceci est particulièrement utile lorsque le service demandé a une latence élevée et met donc un temps 373.4. CONSIDÉRATIONS SUR L’IMPLÉMENTATION significatif à s’exécuter : maintenir une connexion ouverte pendant plusieurs secondes sans que des données ne circulent n’est pas utile. La contrepartie est que la machine appelante doit rester à l’écoute du serveur qui lui enverra le résultat d’une requête GET sur les mêmes paramètres une fois le service achevé. Ce fonctionnement est similaire à celui d’une fonction de rappel distribué. Ce rôle de client appelant peut être assuré par le répartiteur ou le contrôleur en cas de besoin. Ce mécanisme est particulièrement utile en conjonction de l’invocation parallèle décrite en section 3.2.2, car cela permet d’alléger la charge de l’entité appelante. La gestion des erreurs et des résultats retournés fonctionne de la même manière que pour un appel synchrone. 3.4 Considérations sur l’implémentation Au cours de cette thèse, l’effort principal de développement s’est concentré sur la réalisation du répartiteur du système Cloudizer. Les premières versions de ce système de répartition étaient implantées directement dans l’interface web du système et souffraient des problèmes de performance du langage Groovy. Le principal facteur d’amélioration de la performance de ce système a donc été déplacer les classes assurant la répartition des requêtes dans une librairie séparée, permettant de découpler l’interface Web du répartiteur. Le répartiteur en lui-même est un projet de taille modeste, représentant environ 400 lignes de code Java, et 964 lignes de code Groovy pour l’interface Web. Les politiques de répartitions implémentées sur le répartiteur représentent quant à elles environ 2000 lignes de code. Cet aspect quantitatif ne permet pas de mesurer avec certitude l’effort total réalisé car l’ensemble de cette base de code a subi de multiples changements au cours du temps, principalement concernant l’optimisation ou la correction de bogues détectés lors des simulations. Parmi les optimisations réalisées, le passage en pur Java a été le plus efficace en terme de gains de performance brute. De même, le passage d’un modèle de traitement des requêtes événementiel plutôt que par fil d’exécution a permis un fort gain dans la capacité de traitement du répartiteur. Le générateur de service Web représente environ 1800 lignes de code Java entre l’implémentation du serveur, l’intégration avec Cloudizer et un module d’intégration avec le 383.5. DISCUSSION système Hadoop permettant d’utiliser ce système pour répartir les traitements. Ces développements spécifiques et de petite taille n’ont pas fait l’objet d’une méthode de développement particulière. Un soin particulier a été apporté à là modularité de ces projets, en permettant une extension facile de leurs fonctionnalités respectives : ajouts de nouvelles politiques de distribution pour le répartiteur ou de nouveaux environnements d’exécution pour le générateur de services. 3.5 Discussion L’architecture de Cloudizer permet donc de déployer et d’exécuter un grand nombre d’applications différentes en déléguant la gestion des données à d’autres systèmes. Les services pouvant tirer partie de Cloudizer vont de l’application Web standard ou la Web Archive. À cela s’ajoute la possibilité d’utiliser un binaire comme service web ce qui peut être particulièrement utile dans le cadre d’applications héritées. Cette capacité a été développée pour permettre une intégration simple de ce projet dans la plateforme MCube afin d’assurer la répartition des requêtes de services de traitement de données. Ce service est suffisamment générique pour assurer à la fois la distribution des services de traitements de données de la plateforme MCube mais aussi de la partie Web fournissant l’interface utilisateur et la communication avec les passerelles. Le fait de pouvoir sélectionner la stratégie de répartition la plus appropriée pour un service donné dans la plateforme Cloudizer permet d’évaluer et de comparer la performance des différentes stratégies. Cependant le comportement des stratégies mises au point ainsi que leur tests en environnement réels sont longs et fastidieux. Les nouveaux environnements de déploiements tels que les plateformes de Cloud Computing permettent d’utiliser de grands nombres de machines, il est donc nécessaire d’utiliser des outils de simulations appropriés afin de faciliter le développement de ces stratégies. 393.5. DISCUSSION 40Chapitre 4 Simizer : un simulateur d’application en environnement cloud 4.1 Introduction La conception du simulateur Simizer a commencé comme un simple programme de test pour les stratégies de répartition de charge en amont de leur déploiement dans le projet Cloudizer. Ses fonctionnalités ont été étendues par la suite, dans le but de fournir des résultats de plus en plus réalistes et de permettre la réalisation de simulations plus diverses, comme des simulations de protocoles de synchronisation de processus dans les systèmes distribués. Le développement des grilles de calcul, et plus récemment du cloud computing, a donné naissance à de nombreux simulateurs de plateformes de traitement à large échelle. Les simulateurs de grilles, conçus pour simuler de grands nombres de machines partagées par plusieurs utilisateurs, ont été naturellement adaptés pour prendre en compte la virtualisation et simuler les plateformes de calcul à la demande : les "clouds". Par exemple le Grid Sim toolkit [MB02] a servi de base au développement du simulateur CloudSim [RNCB11], et l’utilitaire SimGrid [CLQ08] intègre aujourd’hui de nombreuses options permettant de simuler le fonctionnement des centres de virtualisation. Simizer a donc été conçu de manière à combler un vide dans les solutions de simulation existantes se rapportant au Cloud Computing. 414.1. INTRODUCTION 4.1.1 Simulateurs de Cloud existants Les principaux représentants des simulateurs de clouds sont les projets SimGrid[CLQ08] et CloudSim[RNCB11]. Ces projets permettent de simuler entièrement une infrastructure de type cloud en écrivant un programme utilisant les objets mis à disposition par l’interface de programmation fournie par la librairie. Ces deux utilitaires sont principalement destinés à la recherche en matière de conception et d’évaluation de l’architecture sous-jacente des plateformes de services informatiques à la demande. I ls permettent d’obtenir un modèle du comportement du centre de données dans son ensemble. Par exemple, des travaux menés avec CloudSim par Beloglazov et Buyya [BB12] ont permis d’analyser l’influence de diffé- rentes stratégies d’allocation de ressources sur la qualité de service rendue aux utilisateurs et la consommation électrique d’un centre de données. L’utilitaire SimGrid [BLM+12] a été conçu pour simuler de manière transparente le comportement d’applications de calculs distribués massifs, avant leur déploiement effectif sur une grille. Cependant, l’application de ce logiciel au domaine du Cloud Computing se limite à la simulation du fonctionnement interne des infrastructures. Le simulateur GreenCloud [KBAK10] est destiné à modéliser la consommation électrique des centres de données. Il se fonde sur le simulateur de protocoles réseaux NS-2[MFF], ce qui rend son modèle de simulation de réseau extrêmement fiable. Le projet iCanCloud[NVPC+12] utilise un modèle mathématique pour simuler les coûts engendrés par l’utilisation d’une plateforme de Cloud Computing comme le service EC2 d’Amazon 1. Cependant, ces simulateurs sont destinés aux fournisseurs de services Cloud, et permettent de modéliser facilement des prototypes de plateformes ou les coûts engendrés par les infrastructures en fonction d’un modèle d’utilisation du service. Il n’existe pas à ce jour de simulateurs d’infrastructure cloud permettant de simuler le comportement d’une application déployée dans ce type d’environnement [SL13]. Bien que des efforts aient été récemment faits dans cette direction, comme le simulateur CDOSim[FFH12] ce logiciel n’est pas publiquement disponible. Il n’existe donc pas à ce jour de simulateur permettant d’établir finement l’influence de protocoles de niveau applicatif utilisés par un système. Ce besoin existe car il a été montré à plusieurs reprises que les plateformes d’infrastructures à 1. http://aws.amazon.com, consulté le 5 octobre 2013 424.2. ARCHITECTURE DE SIMIZER la demande souffrent par leur nature partagée, d’une dépendance entre le niveau d’utilisation global de la plateforme et la performance des applications. Pouvoir évaluer à l’avance le comportement d’une application dans ce type de contexte d’exécution présente donc un avantage certain. La conception de Simizer vise donc à remplir ce besoin en permettant l’évaluation de la performance théorique d’applications de type services web déployées sur des plateformes de cloud computing. L’architecture du simulateur Simizer et le fonctionnement de ses différents composants sont décrits en section 4.2, puis l’utilisation pratique du simulateur est détaillée en section 4.3. La section 4.4 fournit à travers deux expérimentations une validation du fonctionnement du simulateur par rapport à la librairie CloudSim, et la section 4.5 discutera des futurs développements de l’utilitaire. 4.2 Architecture de Simizer Simizer est un simulateur à événements discrets écrit en JAVA. Il est fondé sur une architecture à trois couches : une couche de bas niveau fournissant les classes de gestion des événements, une couche Architecture utilisant les classes de gestion d’événements pour simuler le comportement des machines virtuelles et des réseaux, et une couche de niveau Application, qui permet d’implémenter les protocoles à tester dans le simulateur. Couche Evénements - Traitement des événements Couche Architecture - Simulation réseau - Simulation du matériel (machines virtuelles) Couche Application - Haut niveau de simulation - Simulation des protocoles applicatifs Figure 4.1 – Architecture de Simizer 434.2. ARCHITECTURE DE SIMIZER Table 4.1 – Lois de probabilité disponibles dans Simizer loi paramètres Exponentielle espérance (!) Gaussienne moyenne (µ) Poisson espérance (!) Uniforme densité Zipf biais (s) 4.2.1 Couche Evénements La couche de traitement des événements est la couche de plus bas niveau du simulateur. Elle fournit une boucle de traitement d’événements permettant de garantir l’ordre d’exécution des événements et d’optimiser le traitement de ces objets. Elle fournit aussi un ensemble de classes utilitaires permettant la génération de nombre aléatoires selon différentes lois de distribution. Génération de nombres aléatoires La génération des événements produisant l’exécution de la simulation est régie par les lois de distribution aléatoires décrites dans le tableau 4.1. Le générateur de nombre aléatoire utilisé est celui de la Java Virtual Machine. Grâce à cette classe il est possible de générer trois types de valeurs aléatoires : – des entiers distribués uniformément sur les valeurs comprises entre 0 et un nombre donné en paramètre, – des flottants double précision : distribués uniformément sur les valeurs comprises entre 0 et un nombre donné en paramètre, – des flottants double précision distribués selon une loi Gaussienne d’espérance 0 et d’écart type 1. Les distributions utilisées sont donc générées à partir de ces trois types de valeurs. Deux contraintes principales sont posées : les valeurs obtenues pour la simulation doivent être entières, et l’intervalle des valeurs possibles est limité entre 0 et un paramètre spécifié. Les lois Gaussiennes, Uniformes et Zipfiennes sont utilisées principalement pour décrire les distributions de requêtes utilisateurs. La distribution Zipfienne décrit correctement divers phénomènes utilisés dans les simulations informatique [BCC+99, Fei02] tels que la distribution des tailles des fichiers d’un système, ou la distribution des pages les plus fréquemment 444.2. ARCHITECTURE DE SIMIZER accédées sur un site Web. Il est donc intéressant d’étudier le comportement de différentes stratégies de répartition par rapport à des requêtes distribuées selon cette loi. Plus récemment il a été observé que les effets dus à la mise en cache des données les plus fréquemment accédées, en particulier dans les systèmes web, avait des conséquence visibles sur la distribution des requêtes observées, ces dernières ne suivant plus strictement une loi de Zipf [DCGV02, GTC+07]. Il est donc nécessaire de pouvoir tester le comportement des politiques de répartition par rapport à d’autres distributions possibles comme loi Gaussienne ou Uniforme. Les lois de Poisson et Exponentielles sont utilisées pour décrire le comportement des utilisateurs. La loi de Poisson est utilisée pour générer les arrivées de nouveaux clients du système simulé et la loi Exponentielle est utilisée pour déterminer la durée d’utilisation du système par chaque utilisateur, ainsi que l’intervalle de temps séparant les réponses et les requêtes d’un utilisateur [Fei02]. Traitement des événements Le diagramme 4.2 montre les classes composant l’architecture du moteur d’événements utilisé par Simizer. Une simulation est constituée de plusieurs entités appelées "Producteurs d’événements" (EventProducer) qui produisent chacun un ensemble d’événements particuliers (classe ConcreteEvent). Un événement est caractérisé par une donnée, une cible et un horodatage, qui indiquent respectivement à quel instant et à quel objet de la simulation cet événement doit être signalé. Les producteurs d’évé- nements servent à implanter les divers modèles de systèmes nécessaires à la simulation. Chaque Producteur crée des événements et les planifie en choisissant l’horodatage selon les règles du système simulé. C’est la production de nouveaux événements par les Producteurs d’événements qui fait avancer la simulation. Les événements ainsi produits sont stockés dans une file d’attente ordonnée : le Canal (Channel). À intervalles réguliers au cours de la simulation, le Répartiteur d’événements (EventDispatcher) interroge le Canal pour savoir si il y a des événements en attente. Le cas échéant, le Répartiteur retire de la file l’événement ayant la datation la moins avancée, et le signale à la cible correspondante. Les événements sont signalés l’un après l’autre dans l’ordre croissant des horodatages. Ce choix permet d’éviter les conflits dits de causalité qui peuvent se produire lorsqu’un événement 454.2. ARCHITECTURE DE SIMIZER qui n’est pas encore "arrivé" est exécuté avant ou en même temps qu’un événement qui le précède, ce qui peut provoquer un résultat incohérent voire un blocage de la simulation. Les événements sont spécialisés en fonction du type d’action à réaliser. Ces actions sont Figure 4.2 – Entités de gestion des événements implantées dans la couche supérieure du simulateur : la couche d’architecture. 4.2.2 Couche architecture La couche d’architecture de Simizer représente les différentes entités faisant l’objet de la simulation. En l’occurrence, Simizer est conçu pour simuler des systèmes informatiques distribués. Les entités simulées représentées dans le diagramme de classes 4.3 peuvent être définies ainsi : Le Réseau (Network) permet de simuler les délais et erreurs inhérentes au fonctionnement des réseaux modernes comme internet ou les réseaux locaux. Les Nœuds (Nodes) correspondent aux machines composant le système simulé. Ils communiquent via les Réseaux (Network). Il existe trois catégories de Nœuds : les Clients (ClientNode) repré- sentent les machines clientes de services disponibles sur les Serveurs (ServerNode). Lorsque les serveurs et les clients sont sur des réseaux différents, un Répartiteur (LBNode) sert d’intermédiaire entre les clients et les serveurs. Le comportement des clients est géré par la classe ClientManager, qui ordonne la création de nouveaux clients selon une loi de pro- 46 Vers une capitalisation des connaissances orient´ee utilisateur : extraction et structuration automatiques de l’information issue de sources ouvertes Laurie Serrano To cite this version: Laurie Serrano. Vers une capitalisation des connaissances orient´ee utilisateur : extraction et structuration automatiques de l’information issue de sources ouvertes . Computer Science. Universt´e de Caen, 2014. French. HAL Id: tel-01082975 https://hal.archives-ouvertes.fr/tel-01082975 Submitted on 14 Nov 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.Universit´e de Caen Basse-Normandie Ecole doctorale SIMEM ´ Th`ese de doctorat pr´esent´ee et soutenue le : 24/01/2014 par Laurie Serrano pour obtenir le Doctorat de l’Universit´e de Caen Basse-Normandie Sp´ecialit´e : Informatique et applications Vers une capitalisation des connaissances orient´ee utilisateur Extraction et structuration automatiques de l’information issue de sources ouvertes Directrice de th`ese : Maroua Bouzid Jury Laurence Cholvy Directrice de recherche DTIM, ONERA (Rapporteur) Thierry Poibeau Directeur de recherche LaTTiCe, ENS (Rapporteur) Fatiha Sa¨ıs Maˆıtre de conf´erences LRI, Univ. Paris 11 (Examinatrice) Ga¨el Dias Professeur des universit´es GREYC, Univ. de Caen (Examinateur) Stephan Brunessaux Senior expert Cassidian, EADS (Co-directeur de th`ese) Thierry Charnois Professeur des universit´es LIPN, Univ. Paris 13 (Co-encadrant de th`ese) Maroua Bouzid Professeur des universit´es GREYC, Univ. de Caen (Directrice de th`ese)Mis en page avec la classe thloria.Résumé Face à l’augmentation vertigineuse des informations disponibles librement (notamment sur le Web), repérer efficacement celles qui présentent un intérêt s’avère une tâche longue et complexe. Les analystes du renseignement d’origine sources ouvertes sont particulièrement concernés par ce phénomène. En effet, ceux-ci recueillent manuellement une grande partie des informations d’intérêt afin de créer des fiches de connaissance résumant le savoir acquis à propos d’une entité. Dans ce contexte, cette thèse a pour objectif de faciliter et réduire le travail des acteurs du renseignement et de la veille. Nos recherches s’articulent autour de trois axes : la modélisation de l’information, l’extraction d’information et la capitalisation des connaissances. Nous avons réalisé un état de l’art de ces différentes problématiques afin d’élaborer un système global de capitalisation des connaissances. Notre première contribution est une ontologie dédiée à la représentation des connaissances spécifiques au renseignement et pour laquelle nous avons défini et modélisé la notion d’événement dans ce domaine. Par ailleurs, nous avons élaboré et évalué un système d’extraction d’événements fondé sur deux approches actuelles en extraction d’information : une première méthode symbolique et une seconde basée sur la découverte de motifs séquentiels fréquents. Enfin, nous avons proposé un processus d’agrégation sémantique des événements afin d’améliorer la qualité des fiches d’événements obtenues et d’assurer le passage du texte à la connaissance. Celui-ci est fondé sur une similarité multidimensionnelle entre événements, exprimée par une échelle qualitative définie selon les besoins des utilisateurs. Mots-clés: Gestion des connaissances, exploration de données, représentation des connaissances, renseignement d’origine sources ouvertes, ontologies (informatique), Web sémantique. Abstract Due to the considerable increase of freely available data (especially on the Web), the discovery of relevant information from textual content is a critical challenge. Open Source Intelligence (OSINT) specialists are particularly concerned by this phenomenon as they try to mine large amounts of heterogeneous information to acquire actionable intelligence. This collection process is still largely done by hand in order to build knowledge sheets summarizing all the knowledge acquired about a specific entity. Given this context, the main goal of this thesis work is to reduce and facilitate the daily work of intelligence analysts. For this sake, our researches revolve around three main axis : knowledge modeling, text mining and knowledge gathering. We explored the literature related to these different domains to develop a global knowledge gathering system. Our first contribution is the building of a domain ontology dedicated to knowledge representation for OSINT purposes and that comprises a specific definition and modeling of the event concept for this domain. Secondly, we have developed and evaluated an event recognition system which is based on two different extraction approaches : the first one is based on hand-crafted rules and the second one on a frequent pattern learning technique. As our third contribution, we proposed a semantic aggregation process as a necessary post-processing step to enhance the quality of the events extracted and to convert extraction results into actionable knowledge. This is achieved by means of multiple similarity measures between events, expressed according a qualitative scale which has been designed following our final users’ needs. Keywords: Knowledge management, data mining, knowledge representation (information theory), open source intelligence, ontologies (information retrieval), Semantic Web.Remerciements Cette thèse ayant été réalisée dans le cadre d’une convention industrielle, je tiens tout d’abord à remercier les personnes de mon entreprise et de mon laboratoire qui en sont à l’origine : notamment Stephan Brunessaux et Bruno Grilheres pour m’avoir recrutée et encadrée en stage puis proposé cette collaboration, mais aussi mes encadrants académiques, Maroua Bouzid et Thierry Charnois. Je vous suis à tous extrêmement reconnaissante pour le temps que vous m’avez consacré du début à la fin de cette thèse ainsi que pour toutes nos discussions enrichissantes qui ont permis à mes travaux d’avancer. Je tiens par ailleurs à remercier l’ensemble des membres du jury : Laurence Cholvy et Thierry Poibeau pour avoir accepté de rapporter mon travail ainsi que Fatiha Saïs et Gaël Dias pour leur participation au jury de soutenance. Mes remerciements les plus sincères vont également aux deux équipes au sein desquelles j’ai été intégrée pendant ces trois ans. Je remercie tous les membres de l’équipe MAD pour leur accueil et leurs conseils notamment lors des groupes de travail. Mais aussi et bien sûr tous les membres de l’équipe IPCC : vous m’avez accueillie les bras ouverts et je garderai une place pour vous tous dans ma petite tête, je ne pouvais pas rêver mieux comme équipe pour une première expérience professionnelle. Je te remercie encore Stephan de m’avoir recrutée, Bruno pour ton encadrement justement dosé qui m’a guidé tout en favorisant mon autonomie, Khaled mon cher collègue de bureau pour tes conseils mais aussi pour nos rires même dans les moments de rush. Yann, Arnaud, Emilien, Amandine pour votre aide précieuse quand je venais vous embêter avec mes questions et tous les autres bien sûr qui m’ont spontanément apporté leur aide et soutien. Fred (je ne t’oublie pas non non), notre "chef de centre" farceur et toujours là pour entretenir cette bonne humeur qui caractérise notre équipe, je te remercie pour toutes nos rigolades. Toi aussi, Dafni, ma grecque préférée, je te dois énormément, professionnellement et personnellement, tu as su me comprendre et me conseiller à tout moment et je ne l’oublierai pas. Véro, ma tata, mon amie, tu as été là pour moi depuis le tout premier jour quand tu es venue me chercher à la gare et que nous avons tout de suite sympathisé. Je te remercie pour tout ce que tu as fait pour moi et tout ce que tu continues d’apporter à cette équipe avec ton grand cœur. Je pense aussi à mes amis qui ont été présents pendant cette aventure, tout proche ou à distance, ponctuellement ou en continu, dans les moments difficiles ou pour le plaisir, mais tous toujours là. Milie, Manon, Laure, Lucile, Rosario, Chacha, Marlou, je vous remercie mes chers Talistes/Taliens pour votre soutien, votre écoute, votre folie, nos retrouvailles, nos fiestas et bien d’autres moments passés avec vous. Un gros merci également à mes amis et colocs rouennais, Romain, Etienne, mon Aldricou, Nico, Juline, Manuella, Camille et bien d’autres, vous avez su me changer les idées durant nos traditionnelles soirées à l’Oka, à la coloc, nos escapades au ski, à Brighton et ailleurs. Je suis fière de vous avoir rencontrés et je ne vous oublierai pas. Une pensée pour toi aussi ma Lady, toi qui m’a soutenue dans l’un des moments les plus difficiles de cette thèse. Je vous remercie Julien, Xavier, Mariya et Laura, mes chers amis de Caen, avec vous j’ai pu partager mes petits soucis de thésarde et passer de très agréables soirées caennaises. Last but not least, vous mes Trouyiens adorés, mes amis de toujours, éparpillés en France et ailleurs, Bolou, Maelion, Solenou, Loicou, Tildou, Emilie et Quitterie, sans même vous en rendre compte, vous m’avez aidée pendant cette thèse oui oui, car cette thèse n’est qu’une petite partie d’une aventure bien plus enrichissante... Enfin, je veux remercier mes parents, los de qui cau, qui, drets sus la tèrra, m’ont transmis des valeurs chères à mes yeux et m’ont poussée à aller au bout de ce que j’entreprends et de ce que j’aime. iii Copyright c 2013 - CASSIDIAN - All rights reservediv Copyright c 2013 - CASSIDIAN - All rights reservedTable des matières Résumé i Abstract i Remerciements iii Table des figures x Liste des tableaux xi Introduction 1 1 Contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1 Renseignement d’Origine Sources Ouvertes . . . . . . . . . . . . . . . . . . 3 1.2 Media Mining & la plateforme WebLab . . . . . . . . . . . . . . . . . . . . 5 2 Objectifs et axes de recherche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3 Contributions de la thèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4 Organisation du mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 I État de l’art 13 1 Représentation des connaissances 17 1.1 Données, informations et connaissances . . . . . . . . . . . . . . . . . . . . . . . . 18 1.2 L’information sémantique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.2.1 Le Web sémantique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.2.2 Les ontologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 1.2.3 Les langages de représentation . . . . . . . . . . . . . . . . . . . . . . . . . 22 1.2.4 Inférence et bases de connaissances . . . . . . . . . . . . . . . . . . . . . . 23 1.2.5 Les éditeurs d’ontologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 1.3 Modélisation des événements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1.3.1 Qu’est-ce qu’un événement ? . . . . . . . . . . . . . . . . . . . . . . . . . 26 v Copyright c 2013 - CASSIDIAN - All rights reservedTable des matières 1.3.1.1 Les événements en extraction d’information . . . . . . . . . . . . . . 27 1.3.1.2 Les ontologies orientées "événement" . . . . . . . . . . . . . . . . . . 28 1.3.2 Modélisation du temps et de l’espace . . . . . . . . . . . . . . . . . . . . . 33 1.3.2.1 Représentation du temps . . . . . . . . . . . . . . . . . . . . . . . . . 33 1.3.2.2 Représentation de l’espace . . . . . . . . . . . . . . . . . . . . . . . . 34 1.3.3 Spécifications dédiées au ROSO . . . . . . . . . . . . . . . . . . . . . . . . 35 1.4 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 2 Extraction automatique d’information 39 2.1 Définition et objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 2.2 Approches d’extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 2.2.1 Extraction d’entités nommées et résolution de coréférence . . . . . . . . . . 43 2.2.2 Extraction de relations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 2.2.3 Extraction d’événements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.3 Plateformes et logiciels pour l’EI . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 2.4 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 2.5 Évaluation des systèmes d’EI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 2.5.1 Campagnes et projets d’évaluation . . . . . . . . . . . . . . . . . . . . . . . 54 2.5.2 Performances, atouts et faiblesses des méthodes existantes . . . . . . . . . . 56 2.6 Problèmes ouverts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 2.7 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 3 Capitalisation des connaissances 61 3.1 Fusion de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 3.1.1 Réconciliation de données . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 3.1.2 Web de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 3.1.3 Similarité entre données . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 3.2 Capitalisation appliquée aux événements . . . . . . . . . . . . . . . . . . . . . . . 66 3.3 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 II Contributions de la thèse 69 4 Modélisation des connaissances du domaine 73 4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 4.2 Notre modèle d’événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 4.2.1 La dimension conceptuelle . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 4.2.2 La dimension temporelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 vi Copyright c 2013 - CASSIDIAN - All rights reserved4.2.3 La dimension spatiale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 4.2.4 La dimension agentive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 4.3 WOOKIE : une ontologie dédiée au ROSO . . . . . . . . . . . . . . . . . . . . . . 78 4.4 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 5 Extraction automatique des événements 83 5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.2 La plateforme GATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.3 Extraction d’entités nommées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 5.3.1 Composition de la chaine d’extraction . . . . . . . . . . . . . . . . . . . . . 87 5.3.2 Développement du module de règles linguistiques . . . . . . . . . . . . . . 88 5.4 Extraction d’événements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 5.4.1 Approche symbolique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 5.4.2 Apprentissage de patrons linguistiques . . . . . . . . . . . . . . . . . . . . 97 5.5 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 6 Agrégation sémantique des événements 101 6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 6.2 Normalisation des entités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 6.3 Similarité sémantique entre événements . . . . . . . . . . . . . . . . . . . . . . . . 105 6.3.1 Similarité conceptuelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 6.3.2 Similarité temporelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 6.3.3 Similarité spatiale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 6.3.4 Similarité agentive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 6.4 Processus d’agrégation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 6.5 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 7 Expérimentations et résultats 115 7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 7.2 Évaluation du système d’extraction . . . . . . . . . . . . . . . . . . . . . . . . . . 116 7.2.1 Protocole d’évaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 7.2.2 Analyse des résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 7.2.3 Bilan de l’évaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 7.3 Premières expérimentions sur l’agrégation sémantique . . . . . . . . . . . . . . . . 122 7.3.1 Implémentation d’un prototype . . . . . . . . . . . . . . . . . . . . . . . . 122 7.3.2 Jeu de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 7.3.3 Exemples d’observations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 7.3.4 Bilan de l’expérimentation . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 vii Copyright c 2013 - CASSIDIAN - All rights reservedTable des matières 7.4 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Conclusion et perspectives 131 1 Synthèse des contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 1.1 État de l’art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 1.2 Un modèle de connaissances pour le ROSO . . . . . . . . . . . . . . . . . . 133 1.3 Une approche mixte pour l’extraction automatique des événements . . . . . 134 1.4 Un processus d’agrégation sémantique des événements . . . . . . . . . . . . 134 1.5 Évaluation du travail de recherche . . . . . . . . . . . . . . . . . . . . . . . 135 2 Perspectives de recherche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 Annexes 139 A WOOKIE : taxonomie des concepts 141 B WOOKIE : événements spécifiques au ROSO 143 C WOOKIE : relations entre concepts 145 D WOOKIE : attributs des concepts 147 E GATE : exemple de chaine de traitement 149 F Gazetteer pour la détection de personnes en français 151 G L’ontologie-type pizza.owl 153 H Extrait de l’ontologie pizza.owl au format OWL 155 I Exemple de document WebLab contenant des événements 159 J Exemple de règle d’inférence au formalisme Jena 163 K Extrait d’un document du corpus d’apprentissage 165 L Extrait d’un document du corpus de test 167 M Source s12 : dépêche de presse à l’origine des événements Event1 et Event2 169 N Source s3 : dépêche de presse à l’origine de l’événement Event3 171 Bibliographie 173 viii Copyright c 2013 - CASSIDIAN - All rights reservedTable des figures 1 Architecture de la plateforme WebLab . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2 Système de capitalisation des connaissances proposé . . . . . . . . . . . . . . . . . . . 9 1.1 Linking Open Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.2 L’environnement Protégé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 1.3 L’ontologie Event : modélisation des événements . . . . . . . . . . . . . . . . . . . . . 29 1.4 LODE : modélisation des événements . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 1.5 LODE : alignements entre propriétés . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 1.6 SEM : modélisation des événements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 1.7 DUL : modélisation des événements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 1.8 CIDOC CRM : taxonomie des classes . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 1.9 CIDOC CRM : modélisation des événements . . . . . . . . . . . . . . . . . . . . . . . 33 1.10 Algèbre temporel d’Allen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 1.11 Les relations topologiques RCC-8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.1 Le pentagramme du renseignement . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 5.1 Exemple de règle d’extraction exprimée dans le formalisme JAPE . . . . . . . . . . . . 85 5.2 Règle d’extraction de dates en français . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 5.3 Règle d’extraction de dates en anglais . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 5.4 Extrait du gazetteer org_key.lst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 5.5 Règle d’extraction d’organisations en anglais . . . . . . . . . . . . . . . . . . . . . . . 91 5.6 Extrait du gazetteer person_pre.lst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 5.7 Règle d’extraction de personnes en français . . . . . . . . . . . . . . . . . . . . . . . . 92 5.8 Extrait du gazetteer loc_key.lst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 5.9 Règle d’extraction de lieux en français . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 5.10 Gazetteer bombings.lst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 5.11 Exemple d’analyse syntaxique en dépendance . . . . . . . . . . . . . . . . . . . . . . . 96 5.12 Extraction des événements : différentes étapes . . . . . . . . . . . . . . . . . . . . . . 96 5.13 Extraction des événements : chaine de traitement GATE pour l’anglais . . . . . . . . . . 97 5.14 Extraction des événements : exemple d’annotation GATE . . . . . . . . . . . . . . . . 97 5.15 Visualisation et sélection des motifs avec l’outil Camelis . . . . . . . . . . . . . . . . . 100 6.1 Désambiguïsation des entités spatiales : exemple de triplets RDF/XML produits . . . . . 104 7.1 Exemples de motifs séquentiels fréquents sélectionnés . . . . . . . . . . . . . . . . . . 118 7.2 Nombre de motifs retournés en fonction des paramètres choisis . . . . . . . . . . . . . . 119 7.3 Un exemple d’événement issu de la base GTD . . . . . . . . . . . . . . . . . . . . . . . 125 ix Copyright c 2013 - CASSIDIAN - All rights reservedTABLE DES FIGURES 7.4 Similarités entre événements : extrait représenté en RDF/XML . . . . . . . . . . . . . . 126 7.5 Visualisation des 3 événements extraits sur une carte géographique . . . . . . . . . . . 128 x Copyright c 2013 - CASSIDIAN - All rights reservedListe des tableaux 5.1 Classes argumentales pour l’attribution des rôles sémantiques . . . . . . . . . . . . . . 96 6.1 Normalisation des dates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 7.1 Chaines d’extraction d’événements : variantes évaluées . . . . . . . . . . . . . . . . . . 119 7.2 Extraction d’événements : précision, rappel et F-mesure . . . . . . . . . . . . . . . . . . 120 7.3 Extraction d’événements : apport de l’analyse syntaxique . . . . . . . . . . . . . . . . . 121 7.4 Extraction d’événements : influence de la REN . . . . . . . . . . . . . . . . . . . . . . 121 7.5 Alignement des types d’événement entre le modèle GTD et l’ontologie WOOKIE . . . . 124 7.6 Événements extraits et leurs dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . 125 7.7 Exemple de 3 événements agrégés automatiquement . . . . . . . . . . . . . . . . . . . 127 7.8 Fiches d’événements de référence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 xi Copyright c 2013 - CASSIDIAN - All rights reservedLISTE DES TABLEAUX xii Copyright c 2013 - CASSIDIAN - All rights reservedIntroduction Sommaire 1 Contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1 Renseignement d’Origine Sources Ouvertes . . . . . . . . . . . . . . . . 3 1.2 Media Mining & la plateforme WebLab . . . . . . . . . . . . . . . . . . . 5 2 Objectifs et axes de recherche . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3 Contributions de la thèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4 Organisation du mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1 Copyright c 2013 - CASSIDIAN - All rights reservedIntroduction Le savoir occupe aujourd’hui et depuis toujours une place centrale dans notre société, il est au cœur de toute activité humaine. Épanouissement intellectuel pour certains et capital pour d’autres, la connaissance est considérée comme une richesse pouvant servir un large panel d’objectifs. Que ce soit à des fins personnelles ou professionnelles, la principale visée de l’acquisition du savoir quel qu’il soit est, sans aucun doute, de mieux appréhender et de comprendre notre environnement. Dans des situations variées et en constante mutation, la capacité à observer et à analyser ce qui nous entoure (objets, personnes, situations, relations, faits, etc.) est un préalable fondamental à tout processus de prise de décision. L’essor d’Internet et des nouvelles technologies de l’information a récemment déstabilisé les principaux mécanismes traditionnels de gestion de la connaissance. Passé d’un ensemble restreint et structuré de silos à la Toile, le savoir est de plus en plus accessible à tous et partout. Ce changement provient principalement de la démocratisation des moyens de communication et de publication de l’information. Deux problématiques principales émergent alors : – Comment faire face à cette nouvelle masse disponible qui constitue une mine d’or mais peut également s’avérer néfaste à notre acquisition de connaissance ? – Quels moyens mettre en place pour extraire un savoir homogène à partir de contenus de plus en plus diversifiés sur le fond et sur la forme ? Celles-ci occupent une place centrale dans divers domaines pour lesquels l’acquisition du savoir est stratégique : le Renseignement d’Origine Sources Ouvertes (ROSO) est l’un de ces domaines. 2 Copyright c 2013 - CASSIDIAN - All rights reserved1. Contexte 1 Contexte En guise d’introduction de nos travaux, nous proposons tout d’abord un rapide tour d’horizon du contexte de cette étude, réalisée dans un cadre à la fois académique et applicatif. Nous parlerons, dans un premier temps, du Renseignement d’Origine Sources Ouvertes constituant le fil directeur de nos recherches en termes de besoins opérationnels. Puis, nous introduirons un champ de recherche visant à répondre à ces besoins et dans lequel se situe plus précisément notre sujet de recherche, à savoir la fouille de documents multimédia, plus communément désignée par le terme de Media Mining. 1.1 Renseignement d’Origine Sources Ouvertes Le Renseignement d’Origine Sources Ouvertes (dit ROSO) désigne toute activité de recueil et d’analyse de l’information disponible publiquement et légalement (presse écrite, blogs, sites internet, radio, télévision, etc.) [Best and Cumming, 2007]. Initialement définie dans le domaine de la défense, cette activité est aujourd’hui menée plus largement à des fins stratégiques et économiques sous le nom de veille à partir de sources ouvertes. En effet, les Sources Ouvertes (SO) sont très prolifiques et peuvent, par exemple, fournir les données nécessaires pour analyser la situation d’un pays : caractéristiques géopolitiques et sociales, diffé- rents acteurs économiques, politiques, militaires, terroristes ou criminels, etc. Lors d’une crise, l’analyse systématique des médias nationaux et internationaux peut permettre, par exemple, de produire automatiquement une synthèse qui facilitera les prises de décision. Des processus de veille peuvent également être mis en œuvre pour effectuer une recherche pro-active d’informations liées à l’environnement, aux opportunités ou aux menaces qui constituent des signaux faibles et qui doivent faire l’objet d’une écoute anticipative. Les objectifs premiers du ROSO sont les suivants : – Savoir : s’informer sur les intentions d’un acteur intérieur ou extérieur, comprendre cet acteur et la situation ; – Prévoir : anticiper les évolutions, prévenir les menaces, influencer les situations. Le cycle du renseignement a été défini pour répondre à ces deux objectifs et est constitué de 5 étapes : 1. Orientation : il s’agit de définir le besoin en renseignement et spécifier les indicateurs permettant de valider la réussite de l’action de renseignement, 2. Planification : elle consiste à trouver les sources et les gisements d’information d’intérêt et à définir le besoin de veille, 3. Recherche : elle vise à réaliser l’acquisition et le pré-traitement des données à partir des gisements précédemment définis, 4. Exploitation : il s’agit d’analyser le contenu des données, de les filtrer pour en faire émerger de la connaissance, 5. Diffusion : elle consiste à faire la synthèse et à remonter l’information utile vers le décideur. Le ROSO est aujourd’hui devenu un processus complexe à mettre en œuvre. En effet, avec la croissance du Web 2.0 et la multiplication des gisements d’information, les spécialistes du renseignement 3 Copyright c 2013 - CASSIDIAN - All rights reservedIntroduction et les veilleurs se trouvent confrontés, d’une part, à une masse de données toujours plus importante et, d’autre part, à une diversité croissante des formats et structures. Face à ce nouveau phénomène, des systèmes d’information plus performants sont désormais nécessaires pour accéder et traiter cette masse d’information. Ces systèmes sont notamment indispensables pour dépasser les limites des moteurs de recherche "grand public" et proposer une collecte ciblée et précise de l’information à la fois dans le Web public, mais aussi dans le Web profond. Ils doivent également être capables de détecter les informations pouvant constituer des signes précoces de changement ou de menace. Dès lors, le développement et l’utilisation de tels outils deviennent des tâches de plus en plus complexes. L’essor des nouveaux moyens de communication favorise l’émergence des sources d’information mettant à disposition des informations aux caractéristiques particulières. La prise en compte de celles-ci est primordiale pour obtenir un système adapté à la fois aux besoins des analystes du renseignement mais également aux informations que ceux-ci sont amenés à traiter. Ainsi, les principales problématiques rencontrées lors du traitement des informations issues de sources ouvertes sont les suivantes : – L’hétérogénéité des formats et structures : les informations disponibles sont proposées dans des formats variés (pages HTML, flux RSS, réseaux sociaux, wiki, blogs, forums, etc.) et ne sont pas toujours structurées. Le traitement de ces ressources implique l’utilisation d’un ensemble varié d’outils dont l’interopérabilité n’est pas assurée. Pour atteindre ses objectifs, le veilleur doit se former à leur utilisation combinée, ce qui augmente encore la complexité de son travail. – Le multilinguisme : avec la démocratisation de l’accès à Internet, le nombre de langues employées sur la Toile a fortement augmenté ces dernières années, ce qui pose des problèmes d’intercompréhension. Les outils de traduction automatique deviennent donc clés afin de donner un accès à ces contenus dans des langues non maitrisées par l’analyste. – La quantité d’information à traiter : la quantité et le volume des informations mises à disposition aujourd’hui en sources ouvertes, notamment avec la croissance des contenus audio et vidéo en ligne, sont tels qu’il devient impossible de collecter manuellement toutes ces informations. En effet, la collecte de ces grands volumes nécessite des connexions réseaux rapides, du temps, ainsi qu’un espace de stockage important, dont on ne dispose généralement pas. De plus, face à cette quantité d’informations disponibles, le veilleur se trouve submergé et il devient impossible pour lui de traiter efficacement ces nouvelles données, et de discerner clairement les informations pertinentes pour sa tâche. – La qualité et l’interprétation des informations : les informations disponibles en sources ouvertes peuvent être peu fiables, contradictoires, dispersées, et il s’avère souvent difficile, voire impossible de savoir quel crédit leur accorder au premier abord. Il convient alors de recouper et d’analyser ces informations pour leur donner un sens et une valeur, ce qui reste une étape manuelle et donc coû- teuse, à la fois en termes de temps et de moyens. Comment rassembler et sélectionner efficacement dans la masse d’informations, les plus pertinentes, qui seront ensuite interprétées et auxquelles on tachera de donner un sens et évaluer une crédibilité ? Aujourd’hui, les plateformes de veille tentent de répondre à ces premières problématiques, mais du fait de l’évolution rapide des technologies, des formats et des structures d’information, ces systèmes ne sont pas toujours cohérents et évolutifs. S’il existe de nombreux outils publics et accessibles sur Internet (moteurs de recherche généralistes ou verticaux), une veille qui repose uniquement sur ceux-ci se trouve rapidement limitée. Pour répondre à des besoins d’information précis et garder une réactivité importante face à de nouveaux types d’information, la sélection des techniques les plus pertinentes reste indispensable. De plus, la prise en main de ces outils s’avère coûteuse en temps pour les analystes, 4 Copyright c 2013 - CASSIDIAN - All rights reserved1. Contexte c’est pourquoi l’efficacité d’un travail de veille va dépendre de l’intégration de ces divers outils au sein d’une seule et même plateforme, mais aussi et surtout des performances de chacun des composants de traitement de l’information. 1.2 Media Mining & la plateforme WebLab La coordination d’un ensemble de techniques de traitement de l’information pour les besoins que nous venons d’évoquer est notamment l’objet de recherche de la fouille de documents multimédia ou Media Mining. En effet, l’exploitation d’un tel volume d’informations requiert l’automatisation de tout ou partie des traitements d’analyse, d’interprétation et de compréhension des contenus. Il s’agit donc de rechercher, de collecter, d’extraire, de classer, de transformer ou, plus généralement, de traiter l’information issue des documents disponibles et, enfin, de la diffuser de façon sélective en alertant les utilisateurs concernés. Cet ensemble d’analyses est généralement implémenté sous forme d’une même chaine de traitement. Ceci permet de diminuer la quantité d’outils que l’analyste doit maîtriser et utiliser durant sa veille et par là même de faciliter le passage de l’information entre les différents services d’analyse. Ces chaines de traitement apportent une valeur ajoutée dans la recherche d’informations à partir de sources ouvertes mais également dans le traitement de l’ensemble des informations numériques. Dans le cadre du ROSO, elles implémentent des technologies principalement issues des domaines de l’Intelligence Artificielle (IA) et de la gestion des connaissances (KM pour Knowledge Management). Concernant le traitement des données textuelles, par exemple, différentes approches complémentaires peuvent être utilisées. Ainsi, des techniques statistiques permettent d’analyser les contenus d’un grand nombre de documents pour déterminer automatiquement les sujets abordés en fonction des termes les plus discriminants. Par ailleurs, des techniques probabilistes peuvent également être utilisées avec succès pour identifier la langue d’un document. Des techniques d’analyse linguistique à base de grammaires permettent de réaliser d’autres types de traitement en Extraction d’information (EI) tels que la recherche d’expressions régulières, d’amorces de phrases, de noms de personnes, de dates d’événements, etc. Une analyse sémantique permet, quant à elle, de traduire les chaines de caractères ou les données techniques contenues dans les documents multimédia par des concepts de haut niveau. Par ailleurs, des ontologies de domaine peuvent être définies et utilisées pour annoter et rechercher les documents selon un modèle commun bien défini. La même variété de technologies et approches se retrouve dans le domaine du multimédia. La transcription de la parole, par exemple, permet de réaliser des fonctions similaires aux documents texte sur les documents audio ou vidéo. Une fois transcrit, le document peut être indexé puis retrouvé de façon rapide et efficace. De plus, des outils de traduction peuvent également être intégrés dans une chaîne de traitement. Dans le domaine de l’image, la détection ou la reconnaissance de visages, la recherche par similarité peuvent permettre de retrouver automatiquement une information d’intérêt. La combinaison des techniques de fouille de textes et de fouilles de documents audio ou vidéo ouvre la voie à des traitements de plus en plus puissants. Côté logiciels, il existe un grand nombre de solutions et de briques technologiques mises à disposition par des éditeurs commerciaux ou en open-source et par la communauté scientifique. Le choix de la meilleure brique est souvent très difficile car les critères sont nombreux, variés et évolutifs. Pour composer des offres "sur mesure" bien adaptées au besoin, des plateformes dites d’intégration permettent d’assembler et de faire inter-opérer les outils sélectionnés. Le choix d’une plateforme devient 5 Copyright c 2013 - CASSIDIAN - All rights reservedIntroduction alors un enjeu essentiel pour produire un système de traitement des informations structurées et non structurées. Seule une plateforme basée sur des standards largement répandus peut permettre d’assurer l’interopérabilité des outils retenus. WebLab est une de ces plateformes d’intégration, elle est développée et maintenue par la société Cassidian et constitue le socle fonctionnel et technque au sein duquel nos recherches se sont déroulées [Giroux et al., 2008] La plateforme WebLab vise à faciliter l’intégration de composants logiciels plus particulièrement dédiés, au traitement de documents multimédia et d’informations non-structurées (texte, image, audio et vidéo) au sein d’applications dédiées à diverses activités de veille telles que le ROSO mais aussi la veille économique et stratégique. Différents composants spécifiques viennent ré- gulièrement enrichir cette plateforme pour lui offrir des fonctionnalités de collecte de données sur des sources ouvertes (Internet, TV ou radio, presse écrite, etc.) ou dans des entrepôts privés, de traitement automatique des contenus (extraction d’information, analyse sémantique, classification, transcription de la parole, traduction, segmentation, reconnaissance d’écriture, etc.), de capitalisation (stockage, indexation, enregistrement dans des bases de connaissance, etc.) et d’exploitation des connaissances (recherche avancée, visualisation et synthèse graphique, aide à la décision, etc.). Les objectifs scientifiques et technologiques de la plateforme sont multiples : – Il s’agit de définir un modèle de référence, basé sur les standards du Web Sémantique (XML, RDF, RDFS, OWL, SPARQL, etc.), permettant à des composants logiciels hétérogènes d’échanger efficacement des données brutes, des méta-données associées ou des informations élaborées de façon automatique. – Il s’agit également de proposer des interfaces génériques de services afin de normaliser les interactions entre les composants et de simplifier la construction de chaînes de traitement au sein desquelles ils sont mis en œuvre conjointement. – Il s’agit enfin de proposer et de mettre à disposition un ensemble de briques logicielles réutilisables et composables pour construire rapidement des applications adaptées à un besoin particulier. Ces briques prennent la forme de services qui couvrent un large spectre de fonctionnalités et de composants d’IHM 1 qui permettent de piloter les services et d’en exploiter les résultats côté utilisateur. Enfin, l’IHM est constituée par assemblage de composants qui s’exécutent au sein d’un portail Web personnalisable par l’utilisateur final. Pour des besoins nouveaux ou spécifiques, les services et composants d’IHM peuvent être créés de toute pièce ou développés en intégrant des composants du commerce et/ou open-source. L’architecture de cette plateforme est résumée par la figure 1. 2 Objectifs et axes de recherche Étant donné le contexte que nous venons de décrire, cette thèse a pour objectif de faciliter et de réduire le travail des analystes dans le cadre du ROSO et de la veille plus généralement. Face à l’augmentation croissante des informations disponibles pour tous librement et légalement, notamment sur le Web, et face à l’hétérogénéité des contenus, il s’agit de proposer un système global de capitalisation des connaissances permettant aux acteurs du ROSO d’exploiter cette masse d’informations. 1. Interface Homme-Machine 6 Copyright c 2013 - CASSIDIAN - All rights reserved2. Objectifs et axes de recherche FIGURE 1 – Architecture de la plateforme WebLab Nos recherches s’articulent autour de trois axes principaux, correspondant à trois des nombreuses problématiques de l’Intelligence Artificielle : – Modélisation de l’information – Extraction d’information – Capitalisation des connaissances Nos travaux au sein de ce premier axe visent à définir l’étendue et la nature des informations d’intérêt pour le domaine du ROSO, c’est-à-dire mettre en place un modèle de connaissances. Plus concrètement, il s’agira de recenser, définir et formaliser sémantiquement l’ensemble de concepts utilisés par les experts de ce domaine et leurs relations. Ce modèle servira de socle de référence à notre processus global de capitalisation des connaissances : pour exprimer l’ensemble des informations de façon unifiée mais aussi assurer une communication entre les différents services de traitement de l’information développés. Nous explorerons pour cela les travaux existants et notamment les représentations sous forme d’ontologie de domaine qui est, à l’heure actuelle, le mode de représentation le plus utilisé dans ce but. Le second axe a pour objectif de proposer une approche nouvelle d’extraction d’information à partir de textes en langage naturel. Celle-ci devra permettre de repérer automatiquement l’ensemble des entités et événements d’intérêt pour le ROSO définis au sein du premier axe de recherche. Pour ce faire, 7 Copyright c 2013 - CASSIDIAN - All rights reservedIntroduction nous nous intéresserons notamment à la combinaison de différentes techniques actuelles (linguistiques, statistiques ou hybrides) afin d’améliorer la qualité des résultats obtenus. Le dernier axe de recherche vise à définir un processus de transformation des informations extraites en réelles connaissances, c’est-à-dire les normaliser, les structurer, les relier, considérer les problématiques de continuité (redondance/contradiction, temps/espace), etc. Ces traitements doivent aboutir à la création de fiches de connaissances destinées aux analystes, résumant l’ensemble du savoir acquis automatiquement au sujet d’une entité d’intérêt. Celles-ci seront stockées et gérées au sein d’une base de connaissances pour permettre leur mise à jour lors du traitement de nouveaux documents mais également des mécanismes de raisonnement/inférence afin d’en déduire de nouvelles connaissances. Une place importante sera réservée à l’articulation de ces trois axes de recherche au sein d’un processus global de capitalisation des connaissances que nous souhaitons maintenir le plus générique et flexible possible. La figure 2 présente de façon synthétique la problématique et les objectifs de nos recherches. 3 Contributions de la thèse Nos travaux de recherche ont donné lieu à plusieurs contributions selon les objectifs que nous venons de définir ainsi qu’à un certain nombre de publications que nous listons ci-dessous. Nous avons tout d’abord réalisé un état de l’art des différents axes de recherche abordés par le sujet. Suite à cela, nous avons mis en place une ontologie de domaine nommée WOOKIE (Weblab Ontology for Open sources Knowledge and Intelligence Exploitation) dédiée à la représentation des connaissances spécifiques au ROSO et à la veille de façon plus générale. Nous avons notamment défini, et intégré au sein de WOOKIE, un modèle de représentation de l’événement en prenant pour base les conclusions de l’état de l’art. Un événement y est défini comme une entité complexe à quatre dimensions : une dimension conceptuelle (le type de l’événement), une dimension temporelle (la date de l’événement), une dimension spatiale (le lieu de l’événement) et une dimension agentive (les participants de l’événement). Dans un second temps, nous avons élaboré et évalué un système d’extraction d’événements dit "mixte". En effet, les travaux explorés dans le domaine de l’extraction d’information ayant mis en évidence un certain nombre de limites aux techniques existantes (symboliques et statistiques), nous nous sommes orientés vers une approche combinant deux techniques actuelles. La première méthode proposée consiste en des règles d’extraction élaborées manuellement couplées avec une analyse syntaxique en dépendance. La seconde est basée sur un apprentissage dit "symbolique" de patrons linguistiques par extraction de motifs séquentiels fréquents. Nous avons implémenté ces deux extracteurs en prenant pour base l’ontologie de domaine WOOKIE ainsi que notre représentation des événements et en assurant une possible intégration au sein de la plateforme WebLab. Une première évaluation de ces deux extracteurs a été mise en œuvre et publiée (voir les publications ci-dessous). Chacune des deux méthodes a obtenu des résultats satisfaisants et comparables à l’état de l’art. Cette évaluation a également montré qu’un processus d’agrégation adapté permettra d’exploiter au mieux les points forts de ces deux approches et d’ainsi améliorer significativement la qualité de l’extraction d’événements. Ce processus d’agrégation constitue notre troisième contribution. Pour cela, nous avons exploré notamment les travaux existants en fusion de données et plus particulièrement en fusion d’informations textuelles. Nous avons choisi d’élaborer un processus d’agrégation sémantique multi-niveaux : une simi- 8 Copyright c 2013 - CASSIDIAN - All rights reserved3. Contributions de la thèse FIGURE 2 – Système de capitalisation des connaissances proposé 9 Copyright c 2013 - CASSIDIAN - All rights reservedIntroduction larité entre événements est estimée au niveau de chaque dimension puis nous définissons un processus d’agrégation global basé sur ces similarités intermédiaires pour aider l’utilisateur à déterminer si deux événements extraits réfèrent ou non à un même événement dans la réalité. Les similarités sont exprimées selon une échelle qualitative définie en prenant en compte les besoins des utilisateurs finaux. Enfin, nous avons implémenté un prototype d’évaluation permettant l’agrégation des événements suivant le processus. Nos travaux de recherche ont donné lieu à plusieurs publications dans des conférences nationales et internationales dans les domaines abordés par cette thèse : – Serrano, L., Grilheres, B., Bouzid, M., and Charnois, T. (2011). Extraction de connaissances pour le renseignement en sources ouvertes. In Atelier Sources Ouvertes et Services (SOS 2011) en conjonction avec la conférence internationale francophone (EGC 2011), Brest, France – Serrano, L., Charnois, T., Brunessaux, S., Grilheres, B., and Bouzid, M. (2012b). Combinaison d’approches pour l’extraction automatique d’événements (automatic events extraction by combining multiple approaches) [in french]. In Actes de la conférence conjointe JEP-TALN-RECITAL 2012, volume 2: TALN, Grenoble, France. ATALA/AFCP – Serrano, L., Bouzid, M., Charnois, T., and Grilheres, B. (2012a). Vers un système de capitalisation des connaissances : extraction d’événements par combinaison de plusieurs approches. In Atelier des Sources Ouvertes au Web de Données (SOS-DLWD’2012) en conjonction avec la conférence internationale francophone (EGC 2012), Bordeaux, France – Caron, C., Guillaumont, J., Saval, A., and Serrano, L. (2012). Weblab : une plateforme collaborative dédiée à la capitalisation de connaissances. In Extraction et gestion des connaissances (EGC’2012), Bordeaux, France – Serrano, L., Bouzid, M., Charnois, T., Brunessaux, S., and Grilheres, B. (2013b). Extraction et agrégation automatique d’événements pour la veille en sources ouvertes : du texte à la connaissance. In Ingénierie des Connaissances 2013 (IC 2013), Lille, France – Serrano, L., Bouzid, M., Charnois, T., Brunessaux, S., and Grilheres, B. (2013a). Events extraction and aggregation for open source intelligence: from text to knowledge. In IEEE International Conference on Tools with Artificial Intelligence (ICTAI 2013), Washington DC, USA 4 Organisation du mémoire Ce mémoire est organisé en deux parties reflétant l’ensemble du travail de recherche accompli durant cette thèse : – la première partie État de l’art est divisée en trois chapitres et présente l’étude de l’état de l’art réalisée ; – la seconde partie Contributions de la thèse, composée de quatre chapitres, expose l’ensemble des contributions réalisées. Le premier chapitre, intitulé Représentation des connaissances, propose un tour d’horizon, centré sur notre problématique, du domaine de la représentation et de la modélisation des connaissances. Nous commençons par rappeler succinctement les concepts de base dans ce cadre avant d’aborder la thématique de l’information sémantique avec notamment les travaux autour du Web sémantique et des ontologies. En- fin, nous centrons notre présentation sur l’objet central à cette thèse – les événements – afin de rappeler comment ce concept et ses propriétés ont été définis et modélisés jusqu’à nos jours au sein des différents 10 Copyright c 2013 - CASSIDIAN - All rights reservedaxes de recherche mentionnés précédemment. Le second chapitre Extraction automatique d’information réalise un état de l’art autour de la problé- matique principale de nos travaux, à savoir l’extraction automatique d’information. Dans celui-ci nous recensons notamment les différentes recherches menées récemment autour des trois grands types d’objets de l’EI que sont kes entités nommées, les relations et enfin les événements. Puis, nous nous focalisons sur des aspects plus applicatifs à travers la présentation de quelques plateformes/logiciels pour l’EI et un certain nombre de cas d’application dans ce domaine. Nous clôturons ce chapitre en abordant les problé- matiques d’évaluation et les performances des méthodes proposées en EI. Le chapitre Capitalisation des connaissances termine cette partie d’état de l’art par une présentation d’ensemble de la problématique nouvelle que constitue la capitalisation des connaissances. Celle-ci aborde tout d’abord les travaux liés à notre sujet de recherche dans des domaines tels que la fusion et la réconciliation de données mais également le mouvement nouveau autour du Web de données. Enfin, nous présentons un ensemble d’approches existantes visant à appliquer les techniques de capitalisation au traitement des événements. En seconde partie, le quatrième chapitre, intitulé Modélisation des connaissances du domaine, dé- taille la première contribution proposée durant nos travaux de thèse : une modélisation des événements ainsi qu’une ontologie de domaine nommée WOOKIE. Celles-ci ont été élaborées en fonction des conclusions de notre état de l’art et de façon adaptée à notre problématique et notre cadre de recherche, à savoir l’extraction automatique des événements dans le cadre du ROSO. Le chapitre Extraction automatique des événements constitue le cœur de nos recherches et présente notre seconde contribution, c’est-à-dire l’ensemble de nos réalisations autour du second axe de nos recherches. Nous y détaillons, tout d’abord, la méthode que nous avons élaborée pour l’extraction automatique des entités nommées pour les langues anglais et française. Puis, est explicitée et exemplifiée notre contribution centrale, à savoir la conception et la réalisation d’une approche pour l’extraction automatique des événements fondée sur deux méthodes issues de l’état de l’art que nous améliorées et adaptées à notre problématique et à notre cadre applicatif. Le chapitre suivant Agrégation sémantique des événements présente les recherches que nous avons menées dans le cadre du troisième axe "Capitalisation des connaissances". Tout d’abord, nous nous sommes intéressés à la réconciliation de divers méthodes et systèmes pour proposer une méthodologie générique d’agrégation sémantique des événements issus des outils d’extraction. Ce chapitre présente ses fondements autour d’une approche permettant d’estimer la similarité sémantique entre événements et ensuite de les agréger pour faciliter le travail des analystes du ROSO. Notre mémoire se poursuit avec le dernier chapitre nommé Expérimentations et résultats dans lequel sont exposées deux expérimentations réalisées dans le cadre de cette thèse dans le but d’estimer les apports et limites des contributions présentées. La première évaluation concerne notre approche pour l’extraction automatique des événements : pour ce faire nous avons employé un corpus de test issu d’une campagne d’évaluation en EI ainsi que des métriques classiques dans cette discipline. La seconde évaluation est qualitative est montre l’apport de notre méthode d’agrégation sémantique des événements au travers d’exemples réels issus de nos travaux. Pour chacune de ces expérimentations nous exposons également leurs limites ainsi que les perspectives envisagées. Nous conclurons ce mémoire de recherche en rappelant l’ensemble des contributions réalisées, puis nous exposerons les différentes perspectives ouvertes par nos travaux. 11 Copyright c 2013 - CASSIDIAN - All rights reservedIntroduction 12 Copyright c 2013 - CASSIDIAN - All rights reservedPremière partie État de l’art 13 Copyright c 2013 - CASSIDIAN - All rights reservedIntroduction Cette première partie a pour objectif de réaliser un tour d’horizon de l’existant dans les principaux domaines abordés par cette thèse. Le premier chapitre de cet état de l’art (chapitre 1) sera centré sur les concepts et approches actuels en représentation des connaissances. L’accent sera mis ici sur les technologies du Web sémantique et la modélisation des événements. Le chapitre suivant (chapitre 2) explorera les principales recherches et réalisations dans le domaine de l’extraction d’information et plus particuliè- rement les travaux concernant l’une de nos principales problématiques, à savoir l’extraction automatique des événements. Pour finir, nous aborderons, au travers du chapitre 3, un ensemble de travaux menés autour de la capitalisation des connaissances, notamment en fusion de données et résolution de coréfé- rence entre événements. Pour conclure chacun de ces trois chapitres, nous dresserons un bilan des forces et faiblesses des approches explorées et nous introduirons chacune de nos contributions en réponse à cet état de l’art. 15 Copyright c 2013 - CASSIDIAN - All rights reservedIntroduction 16 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 1 Représentation des connaissances Sommaire 1.1 Données, informations et connaissances . . . . . . . . . . . . . . . . . . . . . 18 1.2 L’information sémantique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.2.1 Le Web sémantique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.2.2 Les ontologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 1.2.3 Les langages de représentation . . . . . . . . . . . . . . . . . . . . . . . 22 1.2.4 Inférence et bases de connaissances . . . . . . . . . . . . . . . . . . . . . 23 1.2.5 Les éditeurs d’ontologies . . . . . . . . . . . . . . . . . . . . . . . . . . 24 1.3 Modélisation des événements . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1.3.1 Qu’est-ce qu’un événement ? . . . . . . . . . . . . . . . . . . . . . . . . 26 1.3.1.1 Les événements en extraction d’information . . . . . . . . . . . . . 27 1.3.1.2 Les ontologies orientées "événement" . . . . . . . . . . . . . . . . 28 1.3.2 Modélisation du temps et de l’espace . . . . . . . . . . . . . . . . . . . . 33 1.3.2.1 Représentation du temps . . . . . . . . . . . . . . . . . . . . . . . 33 1.3.2.2 Représentation de l’espace . . . . . . . . . . . . . . . . . . . . . . 34 1.3.3 Spécifications dédiées au ROSO . . . . . . . . . . . . . . . . . . . . . . . 35 1.4 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 17 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 1. Représentation des connaissances Dans ce premier chapitre nous réalisons un tour d’horizon, centré sur notre problématique de recherche, des domaines de la représentation et de la modélisation des connaissances. Nous commençons par rappeler succinctement les concepts de base de donnée, information et connaissance, avant d’aborder la thématique de l’information sémantique avec notamment les travaux autour du Web sémantique et des ontologies. Enfin, nous centrons notre présentation sur l’objet central à cette thèse – les événements – afin de déterminer comment ce concept et ses propriétés sont définis et modélisés par les différents travaux actuels. 1.1 Données, informations et connaissances La distinction entre les termes "donnée", "information" et "connaissance" est couramment abordée dans la littérature liée à la gestion des connaissances [Balmisse, 2002] [Crié, 2003] [Paquet, 2008]. Celleci est nécessaire afin, d’une part, de mieux comprendre les différentes problématiques soulevées par le traitement de l’information (au sens large) et, d’autre part, de pointer à quel niveau d’analyse se situent les différents technologies et outils existants. Une donnée est généralement définie comme un élément brut non traité et disponible hors de tout contexte. Une fois collectées et traitées, par le cerveau humain ou par une machine, ces données deviennent des informations. Une information est le résultat de la contextualisation d’un ensemble de données afin d’en saisir les liens et de leur donner un sens. L’information est statique et périssable, sa valeur diminue dans le temps (car dépendante de son contexte qui est amené à varier). A l’inverse, la connaissance est le résultat d’un processus dynamique visant à assimiler/comprendre les principes sous-jacents à l’ensemble des informations obtenues. Cette compréhension permet de prévoir l’évolution future d’une situation et d’entreprendre des actions en conséquence. Sous réserve de cette interprétation profonde, une plus grande quantité d’information mène à une meilleure connaissance d’un sujet donné. Prenons par exemple la donnée brute "11/20", sans indication de contexte, cette suite de symboles peut véhiculer diverses informations et ne peut être exploitée en l’état. Toutefois, si cela fait référence à la note obtenue an mathématiques par Pierre, cette donnée contextualisée prend du sens et devient une information. Par ailleurs, si cette première information est associée avec le fait que la moyenne de la classe s’élève à 13/20, chacun peut faire le lien entre ces deux informations et savoir (obtenir la connaissance) que Pierre a des difficultés dans cette matière. Ainsi, cette connaissance acquise, les parents de Pierre pourront, par exemple, prendre la décision de l’inscrire à du soutien scolaire. La distinction entre ces trois concepts correspond à la dimension hiérarchique de la connaissance proposée par [Charlot and Lancini, 2002]. Les auteurs définissent quatre autres dimensions dont la dimension épistémologique introduisant deux grandes formes de connaissance : celle dite "explicite" qui peut être codifiée et partagée, d’une part, et celle dite "tacite", d’autre part, difficilement exprimable dans un langage commun et donc peu transmissible. Cette définition suggérée par [Polanyi, 1966] est largement partagée par les cogniticiens. Depuis les débuts du Web, ce passage des données aux connaissances s’est placé au centre des pré- occupations de divers secteurs d’activité (industriel, gouvernemental, académique, etc.). En effet, avec l’explosion de la quantité d’information mise en ligne, il est devenu primordial, en particulier pour les organisations, de pouvoir exploiter cette masse afin d’en obtenir des connaissances. Nous sommes passés ainsi de l’époque des bases de données à celle des bases de connaissances. 18 Copyright c 2013 - CASSIDIAN - All rights reserved1.2. L’information sémantique 1.2 L’information sémantique Le développement du Web et des NTIC 2 a mis en avant un nouvel enjeu : le partage des connaissances. D’un Web de documents (Web 1.0) voué à la publication/visualisation statique des informations grâce au langage HTML, nous avons évolué vers un Web plus collaboratif et dynamique. Ce Web 2.0, introduit aux débuts des années 2000, a constitué une première évolution dans ce sens en remettant l’homme au centre de la toile grâce aux blogs, réseaux sociaux, wikis et autres moyens lui permettant de créer, publier et partager ses propres connaissances. Dès les début du Web 2.0, Tim Berners-Lee évoquait déjà la prochaine "version" du World Wide Web : le Web sémantique [Berners-Lee et al., 2001]. Les sections suivantes présentent ce Web 3.0 et les différentes technologies associées. 1.2.1 Le Web sémantique Le Web sémantique désigne un projet d’évolution de notre Web actuel (Web 2.0) initié par le W3C3 . Cette initiative est aussi connue sous les noms de Web de données, Linked Data, Linked Open Data ou encore Linking Open Data. L’objectif principal de ce mouvement est de faire en sorte que la quantité de données exposée sur le Web (qui ne cesse de croître) soit disponible dans un format standard, accessible et manipulable de manière unifiée par toutes les applications du Web. Le Web sémantique de Tim Berners-Lee est voué à donner du sens à l’ensemble des données mises en ligne afin de faciliter la communication entre les hommes et les machines et permettre ainsi à ces dernières de réaliser des tâches qui incombaient jusqu’alors aux utilisateurs. Par ailleurs, le nom Web de données met en avant la nécessité de créer des liens entre données pour passer d’un Web organisé en silos de données déconnectés (ayant leur propres formats, protocoles, applications, etc.) à un espace unifié sous la forme d’une collection de silos inter-connectés. La figure 1.1 présente l’état actuel du LOD 4 sous la forme d’un graphe où les noeuds correspondent à des bases de connaissances respectant les principes du Web sémantique et les arcs représentent les liens existants. Parmi les plus renommés des silos de données, la base sémantique DBPedia fournit une grande partie du contenu de Wikipedia et incorpore des liens vers d’autres bases de connaissances telles que Geonames, par exemple. Ces relations (sous la forme de triplets RDF 5 , voir la section 1.2.3) permettent aux applications Web d’exploiter la connaissance supplémentaire (et potentiellement plus précise) issue d’autres bases de connaissances et de fournir ainsi de meilleurs services à leurs utilisateurs. 2. Nouvelles Technologies de l’Information et de la Communication 3. World Wide Web Consortium, ❤tt♣✿✴✴✇✇✇✳✇✸✳♦r❣✴ 4. Linking Open Data cloud diagram, by Richard Cyganiak and Anja Jentzsch. ❤tt♣✿✴✴❧♦❞✲❝❧♦✉❞✳♥❡t✴ 5. Resource Description Framework, ❤tt♣✿✴✴✇✇✇✳✇✸✳♦r❣✴❘❉❋✴ 19 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 1. Représentation des connaissances As of September 2011 Music Brainz (zitgist) P20 Turismo de Zaragoza yovisto Yahoo! Geo Planet YAGO World Factbook El Viajero Tourism WordNet (W3C) WordNet (VUA) VIVO UF VIVO Indiana VIVO Cornell VIAF URI Burner Sussex Reading Lists Plymouth Reading Lists UniRef UniProt UMBEL UK Postcodes legislation data.gov.uk Uberblic UB Mannheim TWC LOGD Twarql transport data.gov. uk Traffic Scotland theses. fr Thesaurus W totl.net Telegraphis TCM Gene DIT Taxon Concept Open Library (Talis) tags2con delicious t4gm info Swedish Open Cultural Heritage Surge Radio Sudoc STW RAMEAU SH statistics data.gov. uk St. Andrews Resource Lists ECS Southampton EPrints SSW Thesaur us Smart Link Slideshare 2RDF semantic web.org Semantic Tweet Semantic XBRL SW Dog Food Source Code Ecosystem Linked Data US SEC (rdfabout) Sears Scotland Geography Scotland Pupils & Exams Scholarometer WordNet (RKB Explorer) Wiki UN/ LOCODE Ulm ECS (RKB Explorer) Roma RESEX RISKS RAE2001 Pisa OS OAI NSF Newcastle LAAS KISTI JISC IRIT IEEE IBM Eurécom ERA ePrints dotAC DEPLOY DBLP (RKB Explorer) Crime Reports UK Courseware CORDIS (RKB Explorer) CiteSeer Budapest ACM riese Revyu research data.gov. uk Ren. Energy Generators reference data.gov. uk Rechtspraak. nl RDF ohloh Last.FM (rdfize) RDF Book Mashup Rådata nå! PSH Product Types Ontology Product DB PBAC Poké- pédia patents data.go v.uk Ox Points Ordnance Survey Openly Local Open Library Open Cyc Open Corporates Open Calais OpenEI Open Election Data Project Open Data Thesaurus Ontos News Portal OGOLOD Janus AMP Ocean Drilling Codices New York Times NVD ntnusc NTU Resource Lists Norwegian MeSH NDL subjects ndlna my Experiment Italian Museums meducator MARC Codes List Manchester Reading Lists Lotico Weather Stations London Gazette LOIUS Linked Open Colors lobid Resources lobid Organisations LEM Linked MDB LinkedL CCN Linked GeoData LinkedCT Linked User Feedback LOV Linked Open Numbers LODE Eurostat (Ontology Central) Linked EDGAR (Ontology Central) Linked Crunchbase lingvoj Lichfield Spending LIBRIS Lexvo LCSH DBLP (L3S) Linked Sensor Data (Kno.e.sis) Klappstuhlclub Goodwin Family National Radioactivity JP Jamendo (DBtune) Italian public schools ISTAT Immigration iServe IdRef Sudoc NSZL Catalog Hellenic PD Hellenic FBD Piedmont Accomodations GovTrack GovWILD Google Art wrapper gnoss GESIS GeoWord Net Geo Species Geo Names Geo Linked Data GEMET GTAA STITCH SIDER Project Gutenberg Medi Care Eurostat (FUB) EURES Drug Bank Diseasome DBLP (FU Berlin) Daily Med CORDIS (FUB) Freebase flickr wrappr Fishes of Texas Finnish Municipalities ChEMBL FanHubz Event Media EUTC Productions Eurostat Europeana EUNIS EU Institutions ESD standards EARTh Enipedia Population (EnAKTing) NHS (EnAKTing) Mortality (EnAKTing) Energy (EnAKTing) Crime (EnAKTing) CO2 Emission (EnAKTing) EEA SISVU educatio n.data.g ov.uk ECS Southampton ECCOTCP GND Didactal ia DDC Deutsche Biographie data dcs Music Brainz (DBTune) Magnatune John Peel (DBTune) Classical (DB Tune) Audio Scrobbler (DBTune) Last.FM artists (DBTune) DB Tropes Portuguese DBpedia dbpedia lite Greek DBpedia DBpedia dataopenac-uk SMC Journals Pokedex Airports NASA (Data Incubator) Music Brainz (Data Moseley Incubator) Folk Metoffice Weather Forecasts Discogs (Data Incubator) Climbing data.gov.uk intervals Data Gov.ie data bnf.fr Cornetto reegle Chronicling America Chem2 Bio2RDF Calames business data.gov. uk Bricklink Brazilian Politicians BNB UniSTS UniPath way UniParc Taxono my UniProt (Bio2RDF) SGD Reactome PubMed Pub Chem PROSITE ProDom Pfam PDB OMIM MGI KEGG Reaction KEGG Pathway KEGG Glycan KEGG Enzyme KEGG Drug KEGG Compound InterPro Homolo Gene HGNC Gene Ontology GeneID Affymetrix bible ontology BibBase FTS BBC Wildlife Finder BBC Program mes BBC Music Alpine Ski Austria LOCAH Amsterdam Museum AGROV OC AEMET US Census (rdfabout) Media Geographic Publications Government Cross-domain Life sciences User-generated content FIGURE 1.1 – Linking Open Data 20 Copyright c 2013 - CASSIDIAN - All rights reserved1.2. L’information sémantique Pour mettre en œuvre les principes du Web sémantique, le W3C recommande un ensemble de technologies du Web sémantique (RDF, OWL, SKOS, SPARQL, etc.) fournissant un environnement dans lequel les applications du Web peuvent partager une modélisation commune, interroger "sémantiquement" le LOD (Linked Open Data), inférer de nouvelles connaissances à partir de l’existant, etc. 1.2.2 Les ontologies Le concept d’ontologie s’avère aujourd’hui indissociable du Web sémantique. Toutefois, les ontologies ne sont pas nouvelles et sont les héritières des travaux en Ontologie (la science de l’Être) menés par des philosophes de le Grèce antique tels qu’Aristote ou Platon. L’ontologie telle qu’on l’entend en informatique est maintenant assez éloignée de ces études menées au carrefour entre la métaphysique et la philosophie. Plusieurs définitions ont été proposées dont celles de [Gruber, 1993] et [Neches et al., 1991]. Le premier donne une définition très abstraite des ontologies mais largement admise dans la littérature : "Une ontologie est une spécification explicite d’une conceptualisation" 6 . Le second propose celle-ci : "Une ontologie définit les termes et les relations de base du vocabulaire d’un domaine ainsi queMaître de conférences les règles qui permettent de combiner les termes et les relations afin de pouvoir étendre le vocabulaire" 7 . La définition de [Gruber, 1993] renvoie à deux caractéristiques principales des ontologies à savoir, d’une part, l’élaboration d’un modèle abstrait de l’existant (conceptualisation) et, d’autre part, sa formalisation en vue d’une exploitation par des machines (spécification explicite). Les ontologies à l’ère du Web sémantique sont aux bases de connaissances ce que les modèles de données sont aux bases de données [Charlet et al., 2004]. Elles définissent l’ensemble des objets du domaine de connaissances ciblé ainsi que les attributs et relations caractérisant ces objets. Les objets sont représentés sous forme de concepts hiérarchisés constituant la taxonomie de classes de l’ontologie. Cette relation de subsomption se retrouve dans toutes les ontologies, quelque soit le domaine concerné : les classes de plus haut niveau dans la hiérarchie correspondent à des concepts généraux et les classes inférieures représentent des concepts plus spécifiques. S’ajoutent à cette taxonomie des relations entre concepts de nature diverse ainsi que des attributs de concepts. Les premières ont pour domaine ("domain" en anglais) et co-domaine ("range" en anglais) des classes de l’ontologie tandis que les seconds ont pour domaine une classe et pour co-domaine une valeur d’un certain type (chaine de caractères, nombre, date, booléen, etc.). Ce type de modélisation implique un phénomène d’héritage : chaque classe de l’ontologie hérite des propriétés (relations et attributs) de sa classe supérieure (dite "classe mère"). Pour résumer, nous pouvons dire qu’une ontologie définit sémantiquement et de façon non-ambigüe un ensemble de concepts et propriétés issus d’un consensus. Un exemple commun dans la communauté d’ingénierie des connaissances est l’ontologie des pizza.owl servant couramment de base aux tutoriels dédiés aux ontologies. Cet exemple-type très complet contient un ensemble de classes, propriétés, attributs et instances du domaine ainsi que des fonctionnalités plus avancées de contraintes, cardinalités et axiomes. L’annexe G présente une vue d’ensemble de cette ontologie grâce au logiciel Protégé (présenté en section 1.2.5). 6. traduction de l’anglais "An ontology is an explicit specification of a conceptualization" 7. traduction de l’anglais "An ontology defines the basic terms and relations comprising the vocabulary of a topic area as well as the rules for combining terms and relations to define extensions to the vocabulary" 21 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 1. Représentation des connaissances Par ailleurs, on distingue différents types d’ontologie selon la portée de la modélisation [Guarino, 1998] : les ontologies dites "générales" ou "de haut niveau", les ontologies de domaine, de tâche ou d’application. Les premières visent à décrire les objets du monde communs à plusieurs domaines tels que le temps et l’espace alors que les trois autres types modélisent des concepts spécifiques. La création d’ontologies de haut niveau est parfois vue comme une utopie et la majorité des travaux de la littérature se fondent sur des ontologies de domaine. Plusieurs aspects peuvent rendre la construction d’une ontologie délicate et coûteuse en temps. En effet, ce travail de modélisation comporte une part de subjectivité car plusieurs visions d’un même domaine sont possibles et le temps pour arriver à un consensus peut s’en trouver allongé. Ce phénomène s’amplifie avec la complexité du domaine à modéliser mais également avec la taille de la communauté concernée. Afin de faciliter la tâche d’élaboration d’une ontologie des travaux tels que [Noy and Mcguinness, 2001], [Mizoguchi, 2003a] ou encore [Mizoguchi, 2003b] suggèrent un ensemble de bonnes pratiques. 1.2.3 Les langages de représentation Pour permettre aux ordinateurs d’exploiter cette modélisation, des langages informatiques de spéci- fication d’ontologie ont été créés dans le cadre du Web Sémantique. Les premiers langages ont été développés par la DARPA au début des années 2000, il s’agit de DAML 8 , OIL 9 [Fensel et al., 2001] ou DAML+OIL [Horrocks, 2002]. Ceux-ci sont les ancêtres des langages RDFS et OWL 10 devenus les recommandations actuelles du W3C. La majorité d’entre eux est fondée sur des formalismes inspirés du modèle des assertions en logique de premier ordre. RDF est le formalisme recommandé par le W3C mais d’autres existent tels que Common Logic 11 [Bachmair and Ganzinger, 2001], DOGMA 12 [Jarrar and Meersman, 2009], KIF 13 [Genesereth, 1991], F-Logic 14 [Kifer et al., 1995], etc. RDF est un formalisme pour la représentation de faits sur le Web fondé sur la notion de triplet. Tel les assertions en logique des prédicats, un triplet RDF est composé de trois éléments : un sujet, un prédicat et un objet. Le sujet et le prédicat sont des ressources et, dans le cas du Web sémantique, il s’agit de tout objet pouvant être identifié (une page Web, une personne, une propriété, etc.). Une ressource Web est représentée par un URI 15 qui peut être, par commodité, raccourci grâce à un espace de nom (namespace). L’objet du triplet, quant à lui, peut être soit une ressource (le triplet exprime une relation entre objets) soit une valeur (le triplet exprime un attribut d’un objet). L’ensemble des valeurs possibles en RDF est emprunté du format XML. Bien que le W3C recommande l’utilisation du formalisme RDF/XML, d’autres types de sérialisation existent telles que les formats N3 (Notation3), N-triples, Turtle, JSON, etc. 8. DARPA Agent Markup Language 9. Ontology Inference Layer 10. Ontology Web Language, ❤tt♣✿✴✴✇✇✇✳✇✸✳♦r❣✴❚❘✴♦✇❧✲❢❡❛t✉r❡s✴ 11. ❤tt♣✿✴✴✐s♦✲❝♦♠♠♦♥❧♦❣✐❝✳♦r❣✴ 12. Developing Ontology-Grounded Methods and Applications, ❤tt♣✿✴✴✇✇✇✳st❛r❧❛❜✳✈✉❜✳❛❝✳❜❡✴r❡s❡❛r❝❤✴❞♦❣♠❛✳ ❤t♠ 13. Knowledge Interchange Format, ❤tt♣✿✴✴✇✇✇✳❦s❧✳st❛♥❢♦r❞✳❡❞✉✴❦♥♦✇❧❡❞❣❡✲s❤❛r✐♥❣✴❦✐❢✴ 14. Frame Logic 15. Uniform Resource Identifier 22 Copyright c 2013 - CASSIDIAN - All rights reserved1.2. L’information sémantique Le langage RDFS est une première extension de RDF visant à structurer les ressources pour la spécification des ontologies. Les propriétés les plus utilisées du formalisme RDFS sont les suivantes : rdfs :Class, rdfs :subClassOf, rdfs :domain, rdfs :range et rdfs :label. Les deux premières servent à défi- nir la taxonomie de l’ontologie, les deux suivantes permettant de formaliser la notion de sujet et d’objet et enfin, la propriété label sert à nommer les éléments de l’ontologie (classes et propriétés). Enfin, le langage largement privilégié aujourd’hui pour la modélisation des ontologies est OWL. Dé- veloppé depuis 2002 par un groupe de travail du W3C, celui-ci constitue une seconde extension plus expressive du standard RDF/XML. OWL permet notamment grâce à des constructeurs d’exprimer des contraintes supplémentaires sur les classes et propriétés définies : disjonction, union et intersection de classes, propriétés symétriques, inverses, etc. Une majeure partie de ces constructeurs est directement issue des logiques de description permettant des mécanismes d’inférence sur les connaissances de l’ontologie. Précisons également que le langage OWL se décline en plusieurs sous-langages selon leurs niveaux d’expressivité : OWL-Lite, OWL-DL et OWL-Full. Nous présentons en annexe H un extrait de l’ontologie pizza.owl exprimée au format OWL. 1.2.4 Inférence et bases de connaissances Nous pouvons définir l’inférence comme le fait de déduire de nouvelles connaissances par une analyse de l’existant. Dans le cas des ontologies, il s’agit concrètement de découvrir de nouveaux triplets à partir des triplets connus en exploitant la structure de l’ontologie et les contraintes logiques spécifiées. Autrement dit, l’inférence permet de faire apparaître automatiquement des faits implicites que l’œil humain ne peut détecter car ils sont masqués par la complexité de la modélisation. Ce genre de raisonnement peut être effectué au niveau de l’ontologie en elle-même (terminological box ou TBox) ou au niveau des instances de l’ontologie (assertional box ou ABox). Il faut noter que plus le langage de représentation utilisé est expressif, plus l’inférence sera complexe voire impossible à mettre en œuvre. Dans le cas du langage OWL, la complexité de l’inférence est croissante lorsque l’on passe du sous-langage OWL-Lite à OWL-DL et enfin à OWL-Full. Ces mécanismes d’inférence sont implémentés dans des raisonneurs tels que Pellet 16, Fact++ 17 ou encore Hermitt 18. Lorsque la complexité de la modélisation est trop élevée pour ces raisonneurs, il est possible de définir des règles d’inférence manuellement grâce à des langages tels que SWRL 19 ou Jena rules 20 . Ces mécanismes de déduction constituent une réelle plus-value des ontologies car ils permettent, d’une part, de vérifier la qualité des bases de connaissance construites et, d’autre part, d’y ajouter de nouvelles connaissances de façon entièrement automatique. Les systèmes de gestion de base de données classiques (MySQL, Oracle Database, IBM DB2, etc.) ont vu se créer leurs équivalents sémantiques, nommés triplestores, permettant le stockage et le requêtage de triplets RDF. Les grands fournisseurs de SGBD propriétaires adaptent aujourd’hui leurs solutions au Web sémantique et des triplestores opensource sont également disponibles comme Sesame 21, Virtuoso 22 ou encore Fuseki 23. La récupération 16. ❤tt♣✿✴✴❝❧❛r❦♣❛rs✐❛✳❝♦♠✴♣❡❧❧❡t✴ 17. ❤tt♣✿✴✴♦✇❧✳♠❛♥✳❛❝✳✉❦✴❢❛❝t♣❧✉s♣❧✉s✴ 18. ❤tt♣✿✴✴✇✇✇✳❤❡r♠✐t✲r❡❛s♦♥❡r✳❝♦♠✴ 19. Semantic Web Rule Language, ❤tt♣✿✴✴✇✇✇✳✇✸✳♦r❣✴❙✉❜♠✐ss✐♦♥✴❙❲❘▲✴ 20. ❤tt♣✿✴✴❥❡♥❛✳❛♣❛❝❤❡✳♦r❣✴❞♦❝✉♠❡♥t❛t✐♦♥✴✐♥❢❡r❡♥❝❡✴ 21. openRDF, ❤tt♣✿✴✴✇✇✇✳♦♣❡♥r❞❢✳♦r❣✴ 22. OpenLink, ❤tt♣✿✴✴✈✐rt✉♦s♦✳♦♣❡♥❧✐♥❦s✇✳❝♦♠✴ 23. Apache Jena, ❤tt♣✿✴✴❥❡♥❛✳❛♣❛❝❤❡✳♦r❣✴ 23 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 1. Représentation des connaissances de ces données sémantiques est réalisée majoritairement grâce au langage SPARQL 24, l’équivalent sé- mantique du langage SQL 25 dont l’usage est recommandé par le W3C pour l’interrogation de bases de connaissances sémantiques. La requête ci-dessous, par exemple, permet de récupérer l’ensemble des entités de type foaf :Person dont le nom de famille commence par la lettre S. PREFIX r d f : < h t t p : / / www. w3 . o r g / 1 9 9 9/ 0 2/ 2 2 − r d f −s y nt a x −n s #> PREFIX f o a f : < h t t p : / / xmlns . com / f o a f / 0 . 1 / > SELECT ? f ? l WHERE { ? p r d f : t y p e f o a f : P e r s o n . ? p f o a f : f i r s t N a m e ? f . ? p f o a f : l a stN am e ? l . FILTER ( r e g e x ( ? l , "^ S " ) ) } 1.2.5 Les éditeurs d’ontologies Bien que l’intérêt pour les ontologies sur le Web soit relativement récent, de nombreux outils ont été développés dans le but de modéliser et de manipuler des ontologies. Le principal atout de ces logiciels est la possibilité de gérer une ontologie dans l’un des formats cités précédemment sans avoir à modifier manuellement le code sous-jacent. Nous présentons ici quelques logiciels distribués librement et gratuitement. Tout d’abord, SWOOP 26 est un éditeur simplifié d’ontologies open-source, développé par l’université du Maryland. Implémenté en Java, cet outil supporte les formats RDF (différentes sérialisations) et OWL. Parallèlement à ses fonctions d’édition, Swoop permet d’effectuer des raisonnements et propose un service de recherche des ontologies existantes. D’autre part, OntoWiki 27 est une application Web conçue comme un wiki permettant de gérer une ontologie de manière simple et collaborative. Cet outil est développé par le groupe de recherche AKSW 28 de l’université de Leipzig, également connu pour leur projet DBPedia. Cet outil supporte plusieurs formats tels que RDF/XML, Notation3, Turtle ou encore Talis(JSON). L’accent est également mis sur l’aspect Linked Data et l’intégration de ressources externes. Des extensions sont disponibles pour par exemple attacher des pages de wiki à des ressources de l’ontologie, visualiser des informations statistiques grâce à CubeViz ou encore intégrer des fonds de carte géographiques. L’outil TopBraid Composer 29 est fourni par la société anglo-saxonne TopQuadrant et s’insrcit dans la suite d’outils professionnels TopBraid Suite. Plusieurs versions de TopBraid Composer sont disponibles dont une édition gratuite Free Edition (FE). Cette application est implémentée en Java grâce à la plateforme Eclipse et exploite les fonctionnalités de la librairie Apache Jena. Elle supporte l’import et 24. SPARQL Protocol and RDF Query Language, ❤tt♣✿✴✴✇✇✇✳✇✸✳♦r❣✴❚❘✴s♣❛rq❧✶✶✲♦✈❡r✈✐❡✇✴ 25. Structured Query Language 26. ❤tt♣✿✴✴❝♦❞❡✳❣♦♦❣❧❡✳❝♦♠✴♣✴s✇♦♦♣✴ 27. ❤tt♣✿✴✴♦♥t♦✇✐❦✐✳♥❡t✴Pr♦❥❡❝ts✴❖♥t♦❲✐❦✐ 28. Agile Knowledge engineering and Semantic Web 29. ❤tt♣✿✴✴✇✇✇✳t♦♣q✉❛❞r❛♥t✳❝♦♠✴♣r♦❞✉❝ts✴❚❇❴❈♦♠♣♦s❡r✳❤t♠❧ 24 Copyright c 2013 - CASSIDIAN - All rights reserved1.3. Modélisation des événements l’export de fichiers en langage RDF(S), OWL et OWL2 et son système de built-ins ouvre de nombreuses autres fonctionnalités telles que l’utilisation de divers moteurs d’inférence, le requêtage en SPARQL, le développement de règles d’inférence en SWRL, les vérification d’intégrité et gestion des exceptions. L’application Apollo 30 est développée par le Knowledge Media Institute (KMI). Cet outil implémentée en Java fournit les fonctions basiques de création d’ontologie et présente une bonne flexibilité grâce à son système de plug-ins. Toutefois, Apollo ne permet pas de mécanismes d’inférence et est fondé sur son propre métalangage ce qui ne facilite pas l’interopérabilité avec d’autres outils. NeOn Toolkit 31 est un autre environnement open-source très complet d’ingénierie des ontologies issu du projet européen NeOn. Cet outil est particulièrement adapté à la gestion d’ontologies multi-modulaires ou multilingues, à la fusion d’ontologies et à leur intégration dans des applications sémantiques plus larges. L’accent y est mis sur la contextualisation et la mise en réseau de modélisations hétérogènes et sur les aspects collaboratifs de la gestion d’ontologies. Fondé sur l’environnement de développement Eclipse, NeOn Toolkit propose l’intégration de divers plugins pour la modélisation visuelle, l’apprentissage et l’alignement d’ontologie, la définition de règles d’inférence, etc. Son architecture ouverte et modulaire est compatible avec les architectures orientées services (SOA) [Haase et al., 2008]. Terminons par l’éditeur d’ontologies le plus renommé et le plus utilisé dans la communauté d’ingé- nierie des connaissances : l’environnement Protégé 32. Créé par les chercheurs de l’université de Stanford, Protégé est développé en Java, gratuit et open-source. Il s’agit d’une plateforme d’aide à la création, la visualisation et la manipulation d’ontologies dans divers formats de représentation (RDF, RDFS, OWL, etc.). Ce logiciel peut également être utilisé en combinaison avec divers moteurs d’inférence (tels que RacerPro ou Fact) afin d’effectuer des raisonnements et d’obtenir de nouvelles assertions. De plus, de par la flexibilité de son architecture, Protégé est facilement configurable et extensible par les plugins dé- veloppés au sein d’autres projets. La figure 1.2 présente une vue de l’ontologie-exemple pizza.owl dans l’environnement Protégé. Enfin, les créateurs de cet outil mettent l’accent sur l’aspect collaboratif dans la modélisation d’ontologies en proposant Collaborative Protégé et WebProtégé. Le premier est une extension intégrée à Protégé permettant à plusieurs utilisateurs d’éditer la même ontologie et de commenter les modifications effectuées par chacun. Un système de vote rend également possible la concertation sur tel ou tel changement. WebProtégé est une application Web légère et open-source reprenant les principes de Collaborative Protégé dans le contexte du Web. Elle permet une édition d’ontologies collaborative et à distance. Pour une description plus détaillée et une comparaison plus poussée de ces éditeurs, nous renvoyons le lecteur aux présentations faites par [Alatrish, 2012] et [Charlet et al., 2004]. 1.3 Modélisation des événements Le concept d’événement étant au centre de nos travaux, les sections suivantes visent à définir plus précisément cette notion complexe. Nous nous intéressons aux différentes visions de l’événement dans la littérature et plus particulièrement dans les domaines de l’extraction d’information et du Web sémantique. Nous résumons les grands courants de représentation des événements dans le but de les extraire 30. ❤tt♣✿✴✴❛♣♦❧❧♦✳♦♣❡♥✳❛❝✳✉❦✴ 31. ❤tt♣✿✴✴♥❡♦♥✲t♦♦❧❦✐t✳♦r❣ 32. ❤tt♣✿✴✴♣r♦t❡❣❡✳st❛♥❢♦r❞✳❡❞✉✴ 25 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 1. Représentation des connaissances FIGURE 1.2 – L’environnement Protégé automatiquement. Puis, nous réalisons un état des lieux des ontologies existantes centrées sur la modé- lisation des événements. Enfin, un focus est proposé sur les questions de représentation du temps et de l’espace qui sont des aspects importants dans le traitement des événements. 1.3.1 Qu’est-ce qu’un événement ? Considéré comme une entité aux propriétés bien spécifiques, l’événement a initialement été étudié par des philosophes [Davidson, 1967] puis par des linguistes [Van De Velde, 2006] [Desclés, 1990] (voir [Casati and Varzi, 1997] pour une bibliographie exhaustive). [Higginbotham et al., 2000] compare quelques définitions de l’événement et met notamment l’accent sur deux courants traditionnels opposés : les événements comme concepts universaux (généraux et répé- tables) d’une part, et particuliers (spécifiques et uniques), d’autre part. Dans le premier courant, on peut citer [Montague, 1969] pour lequel les événements sont des propriétés attribuées à des instants (ou des intervalles) dans le temps, ou encore [Chisholm, 1970] qui les définit comme des situations ("states of affairs") pouvant décrire le même intervalle de temps de façon différente. Par ailleurs, [Quine, 1960] et [Kim, 1973] appartiennent au second courant : les événements sont définis comme des objets particuliers ("individuals"). Le premier considère que les événements ont le même statut que les objets physiques et portent le contenu (parfois hétérogène) d’une portion de l’espace-temps. Il n’y a donc qu’un seul et même événement possible par région spatio-temporelle mais ce même événement peut donner lieu à différentes descriptions linguistiques. [Kim, 1973] se place à l’opposé de cette vision en permettant à un nombre 26 Copyright c 2013 - CASSIDIAN - All rights reserved1.3. Modélisation des événements indéfini d’événements d’occuper un seul et même moment. L’événement est ici un objet concret (ou une collection d’objets) exemplifiant une propriété (ou un ensemble de propriétés) à un moment donné. Enfin, une position intermédiaire est celle de [Davidson, 1969] qui considère les événements selon leur place dans un réseau de causalité : des événements sont identiques s’ils partagent les mêmes causes et les mêmes effets. Cependant, ce même auteur reviendra plus tard vers la thèse de Quine. Suite à ces réflexions sur la nature des événements (qui est encore débattue à l’heure actuelle), d’autres recherches ont vu le jour en linguistique, analyse du discours et philosophie du langage. En effet, les événements étant avant tout des objets sociaux, leur étude doit se faire entre étroite corrélation avec la manière dont ils sont relatés et exprimés par l’homme. Parmi ces travaux nous pouvons citer [Krieg-Planque, 2009]. Celle-ci donne une définition simple de l’événement mais qui nous paraît très juste : "un événement est une occurrence perçue comme signifiante dans un certain cadre". Ici, le terme "occurrence" met l’accent sur la notion de temporalité qui est reconnue comme partie intégrante de ce concept par la quasi totalité des travaux. Le "cadre" selon Krieg-Planque réfère à "un système d’attentes donné" qui "détermine le fait que l’occurrence acquiert (ou non) [...] sa remarquabilité [...] et, par conséquent, est promue (ou non) au rang d’événement.". C’est ici qu’est fait le lien avec la sociologie et l’histoire : tout événement prend place dans un milieu social qui détermine l’obtention de son statut "remarquable". Enfin, [Neveu and Quéré, 1996] s’attachent à décrire plus précisément l’apparition des événements dits "modernes", façonnés et relayés par les médias actuels. Ils soulignent que l’interprétation d’un évé- nement est étroitement liée au contenu sémantique des termes utilisés pour nommer cet événement. Pour plus de clarté nous appellerons ces termes des "noms d’événement". Ces "noms d’événement" transposent en langage naturel la "propriété sémantique" des événements mentionnée par [Saval, 2011]. Cette description de l’événement est également au centre d’un phénomène plus large, que [Ricœur, 1983] nomme "mise en intrigue" : celui-ci vise à organiser, selon le cadre mentionné plus haut, un ensemble d’éléments circonstants ou participants de l’événement. 1.3.1.1 Les événements en extraction d’information On distingue actuellement deux grandes visions de l’événement dans la communauté de l’extraction d’information [Ahn, 2006]. D’une part, l’approche TimeML provient de recherches menées en 2002 dans le cadre du programme AQUAINT 33 fondé par l’ARPA 34. D’autre part, le modèle ACE a été défini dans la tâche Event Detection and Recognition (VDR) des campagnes d’évaluation du même nom à partir de 2005. L’approche TimeML [Pustejovsky et al., 2003] définit les événements de la façon suivante : "situations that happen or occur [...] predicates describing states or circumstances in which something obtains or holds true". Ceux-ci peuvent être ponctuels ou duratifs et sont organisés en sept types : Occurrence, State, Reporting, I-Action, I-State, Aspectual, Perception. L’événement est considéré conjointement à trois autres types d’entité : TIMEX, SIGNAL et LINK. Les objets TIMEX correspondent aux entités temporelles simples telles que les expressions de dates et heures, durée, fréquence, etc. (annotées par des étiquettes TIMEX3 36). Les entités SIGNAL correspondent à des mots fonctionnels exprimant des rela- 33. Advanced Question Answering for Intelligence, ❤tt♣✿✴✴✇✇✇✲♥❧♣✐r✳♥✐st✳❣♦✈✴♣r♦❥❡❝ts✴❛q✉❛✐♥t✴ 34. ancien nom de la DARPA, Defense Advanced Research Projects Agency, 35 36. ❤tt♣✿✴✴t✐♠❡♠❧✳♦r❣✴s✐t❡✴t✐♠❡❜❛♥❦✴❞♦❝✉♠❡♥t❛t✐♦♥✲✶✳✷✳❤t♠❧ 27 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 1. Représentation des connaissances tions temporelles. Il peut s’agir de prépositions de temps (pendant, après, etc.), de connecteurs temporels (quand, lorsque, etc.), de mots subordonnants (si, etc.), d’indicateurs de polarité (négation) ou encore de quantifieurs (dix fois, souvent, etc.). Enfin, les annotations LINK font le lien entre les différentes entités temporelles (EVENT, TIMEX et SIGNAL). Ces liens sont de trois types : TLINK (liens temporels entre événements ou entre un événement et une autre entité de type TIMEX), SLINK (liens de subordination entre deux événements ou entre un événement et une entité SIGNAL), ALINK (liens aspectuels entre un événement aspectuel et son argument). Dans le modèle ACE [NIST, 2005] un événement est vu comme une structure complexe impliquant plusieurs arguments pouvant également être complexes. L’aspect temporel correspond ici à un type d’argument mais n’est pas au centre de la modélisation. Ce modèle définit un ensemble de types et sous-types d’événement (8 types comme Life, Movement, Business, etc. et 33 sous-types comme Marry, DeclareBankruptcy, Convict, Attack, etc.) et associe à chaque événement un ensemble d’arguments autorisés pouvant être des entités ou des valeurs et auxquels est associé un rôle (parmi 35 rôles dont Time, Place, Agent, Instrument, etc. [LDC, 2005]). Par ailleurs, les événements tels que définis dans la campagne ACE possèdent des attributs tels que le temps, la modalité, la polarité ou encore la généricité. Enfin, comme pour les autres types d’entité, on distingue la notion de mention d’événement, d’une part, qui correspond à une portion de texte constituée d’une ancre d’événement et de ses arguments et, d’autre part, l’événement en lui-même, c’est-à-dire un ensemble de mentions d’événement qui réfère au même objet du monde réel. Ces deux modèles sont différents sur plusieurs aspects, la divergence principale étant que la première approche vise à annoter tous les évènements d’un texte, alors que la seconde a pour cibles uniquement les événements d’intérêt pour une application donnée. Le modèle TimeML, considérant un événement comme tout terme temporellement ancré, est généralement choisi dans des projets où cet aspect est central (pour la construction de chronologies par exemple). L’approche ACE est la plus utilisée car elle s’applique aux besoins de divers domaines mais implique toutefois un processus d’annotation plus complexe à mettre en place (la représentation de l’événement étant elle-même plus complexe). 1.3.1.2 Les ontologies orientées "événement" Plusieurs ontologies disponibles sur le Web proposent une modélisation spécifique au concept d’évé- nement. Nous présentons ci-après les caractéristiques principales de cinq d’entre elles : – The Event Ontology (EO) 37 – Linking Open Descriptions of Events (LODE) 38 – Simple Event Model (SEM) 39 – DOLCE-UltraLite (DUL) 40 – CIDOC Conceptual Reference Model (CIDOC CRM) 41 The Event Ontology a été développée par les chercheurs Yves Raimond et Samer Abdallah du Centre for Digital Music à Londres [Raimond et al., 2007] et sa dernière version date d’octobre 2007. Cette 37. ❤tt♣✿✴✴♠♦t♦♦❧s✳s♦✉r❝❡❢♦r❣❡✳♥❡t✴❡✈❡♥t✴❡✈❡♥t✳❤t♠❧ 38. ❤tt♣✿✴✴❧✐♥❦❡❞❡✈❡♥ts✳♦r❣✴♦♥t♦❧♦❣② 39. ❤tt♣✿✴✴s❡♠❛♥t✐❝✇❡❜✳❝s✳✈✉✳♥❧✴✷✵✵✾✴✶✶✴s❡♠✴ 40. ❤tt♣✿✴✴♦♥t♦❧♦❣②❞❡s✐❣♥♣❛tt❡r♥s✳♦r❣✴♦♥t✴❞✉❧✴❉❯▲✳♦✇❧ 41. ❝✐❞♦❝✲❝r♠✳♦r❣✴ 28 Copyright c 2013 - CASSIDIAN - All rights reserved1.3. Modélisation des événements ontologie est centrée sur la notion d’événement telle que [Allen and Ferguson, 1994] la définissent : "[...] events are primarily linguistic or cognitive in nature. That is, the world does not really contain events. Rather, events are the way by which agents classify certain useful and relevant patterns of change.". Cette ontologie des événements à été développée dans le cadre du projet Music Ontology et est donc particulièrement adaptée à la représentation des événements dans ce domaine (concerts, représentations, etc.). Comme le montre la figure 1.3, cette modélisation se veut générique et s’appuie sur des ontologies largement utilisées telles que FOAF, ainsi que sur des standards de représentation spatio-temporelle recommandés par le W3C42. Toutefois, la classe Event n’est pas sous-typée et les propriétés factor et product paraissent vaguement définies (pas de co-domaine). FIGURE 1.3 – L’ontologie Event : modélisation des événements L’ontologie LODE [Troncy et al., 2010] a été créée dans le cadre du projet européen EventMedia 43 [Fialho et al., 2010]. Ce projet vise à concevoir un environnement Web permettant aux internautes d’explorer, de sélectionner et de partager des événements. L’ontologie est au centre de cette initiative car elle constitue le socle commun pour représenter et stocker des événements provenant de sources hétérogènes. Les concepteurs de cette ontologie la présente comme un modèle minimal dont l’objectif premier est, dans la mouvance du LOD (Linked Open Data), de créer des liens entre les ontologies existantes afin de représenter les aspects faisant consensus dans la communauté de représentation des événements. Pour ce faire, un certain nombre d’alignements entre ontologies est implémenté dans LODE tels que des équivalences de classes et propriétés avec les ontologies DUL, EO, CIDOC CRM, etc. Cette interopérabilité permet notamment d’obtenir des connaissances supplémentaires lors des mécanismes d’inférence. Cette ontologie n’est donc pas réellement une ontologie des événements mais plutôt un outil d’alignement des modélisations existantes. Enfin, les concepteurs ont exclu pour le moment tout travail sur la sous-catégorisation des événements et la définition de relations entre événements (inclusion, causalité, etc.). Les figures 1.4 et 1.5 schématisent respectivement les relations entre concepts et les relations entre propriétés dans LODE. 42. ❤tt♣✿✴✴✇✇✇✳✇✸✳♦r❣✴✷✵✵✻✴t✐♠❡★ et ❤tt♣✿✴✴✇✇✇✳✇✸✳♦r❣✴✷✵✵✸✴✵✶✴❣❡♦✴✇❣s✽✹❴♣♦s★ 43. ❤tt♣✿✴✴❡✈❡♥t♠❡❞✐❛✳❝✇✐✳♥❧✴ 29 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 1. Représentation des connaissances FIGURE 1.4 – LODE : modélisation des événements FIGURE 1.5 – LODE : alignements entre propriétés L’ontologie SEM a été créée par le groupe Web & Media de l’université d’Amsterdam [van Hage et al., 2011]. Elle décrit les événements dans le but de répondre à la question "who did what with what to whom, where and when ?" mais aussi dans une perspective d’interopérabilité entre différents domaines. Une particularité de SEM est l’accent mis sur la représentation des rôles associés aux acteurs impliqués dans un événement. SEM permet de modéliser la nature du rôle, des informations temporelles sur sa validité mais également la source l’ayant attribué à l’acteur. Dans le même objectif que LODE, SEM fournit de nombreux liens (sous la forme de propriétés SKOS 44) avec une dizaine d’ontologies existantes : ontologies dédiées aux événements (EO, LODE, etc.), standards W3C (Time, WGS84), ontologies de haut niveau reconnues (SUMO, OpenCyc, etc.), etc. Toutefois, les événements dans cette ontologie ne sont pas sous-typés et, mise à part la propriété hasSubEvent, aucune autre relation entre événements n’est mo- 44. Simple Knowledge Organization System, ❤tt♣✿✴✴✇✇✇✳✇✸✳♦r❣✴✷✵✵✹✴✵✷✴s❦♦s✴ 30 Copyright c 2013 - CASSIDIAN - All rights reserved1.3. Modélisation des événements délisée. La figure 1.6, fournie par les développeurs de l’ontologie, schématise les concepts et relations principaux dans SEM. FIGURE 1.6 – SEM : modélisation des événements DUL (DOLCE+DnS-UltraLite) est une ontologie développée par le laboratoire italien STLab 45 à la suite de DOLCE 46, une ontologie de haut niveau créée dans le cadre du projet WonderWeb 47. Un événement y est défini comme suit : "Any physical, social, or mental process, event, or state.". Plus concrètement, la classe Event est spécifiée en deux sous-classes Action et Process, la première se diffé- renciant de la seconde par la propriété executesTask indiquant l’objectif de l’action. Comme le montre la figure 1.7, cette ontologie de haut niveau ne comporte pas de liens vers d’autres modélisations et notamment la représentation spatio-temporelle des événements y reste peu définie. Pour finir, le modèle CIDOC CRM est un standard international ISO pour le partage d’information dans le domaine du patrimoine culturel. Celui-ci est développé depuis 1994 et distribué au format OWL par les chercheurs de l’Université d’Erlangen-Nuremberg en Allemagne 48. L’événement est une sousclasse de TemporalEntity et y est défini comme un changement d’état : "changes of states in cultural, social or physical systems, regardless of scale, brought about by a series or group of coherent physical, cultural, technological or legal phenomena.". La figure 1.8 présente une vue globale de l’organisation des différents concepts de cette ontologie avec un focus sur la classe Event. Les différentes propriétés de l’événement sont schématisées dans la figure 1.9. Les remarques faites sur DUL (absence de liens vers d’autres ontologies et représentation spatio-temporelle peu définie) s’appliquent également à cette ontologie. Par ailleurs, la distinction entre les concepts Event, Period et Condition State n’est pas clairement 45. Semantic Technology laboratory 46. Descriptive Ontology for Linguistic and Cognitive Engineering 47. ❤tt♣✿✴✴✇♦♥❞❡r✇❡❜✳s❡♠❛♥t✐❝✇❡❜✳♦r❣✴ 48. ❤tt♣✿✴✴❡r❧❛♥❣❡♥✲❝r♠✳♦r❣ 31 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 1. Représentation des connaissances FIGURE 1.7 – DUL : modélisation des événements définie. Enfin, bien que CIDOC CRM se veuille générique et définisse de nombreuses sous-classes de l’événement, cette taxonomie ne paraît pas s’appliquer à tous les domaines. FIGURE 1.8 – CIDOC CRM : taxonomie des classes 32 Copyright c 2013 - CASSIDIAN - All rights reserved1.3. Modélisation des événements FIGURE 1.9 – CIDOC CRM : modélisation des événements 1.3.2 Modélisation du temps et de l’espace Comme l’ont montré les sections précédentes, la définition des événements est indissociable des notions de temps et d’espace. Bien que ces concepts soient intuitivement compréhensibles par tous, leur modélisation en vue de traitements automatisés n’est pas chose aisée. En effet, le temps et l’espace peuvent revêtir différentes dimensions sociologiques et physiques donnant lieu à diverses représentations. Nous proposons ci-après un résumé des grands courants théoriques de représentation temporelle et spatiale ainsi que quelques exemples d’ontologies associées. 1.3.2.1 Représentation du temps On distingue classiquement deux types de représentation temporelle : d’une part, une vue sous forme de points/instants et, d’autre part, un découpage du continuum temporel en intervalles/périodes. Les travaux les plus connus sont ceux de [McDermott, 1982] pour la représentation en points et ceux de [Allen, 1983] pour les intervalles. Le premier considère l’espace temps comme une succession de points et définit les relations suivantes entre deux points ti et tj : (ti < tj ) ∨ (ti > tj ) ∨ (ti = tj ) Allen définit l’unité temporelle de base comme étant un intervalle de temps et propose une algèbre composée de 13 relations (voir la figure 1.10). Ces deux modèles temporels sont les plus utilisés mais d’autre types ont été proposés pour, par exemple, hybrider ces deux approches. De nombreuses recherches sont menées également dans diverses disciplines (philosophie, informatique théorique, bases de données, etc.) sur d’autres problématiques liées au temps telles que les logiques et les contraintes temporelles, le raisonnement sur le temps, etc. [Allen, 1991] [Hayes, 1995] Parmi ces travaux, [Ladkin, 1987] propose un système de représentation du temps faisant le lien entre les nombreux modèles théoriques développés et les besoins applicatifs de traitement du temps. Il s’agit 33 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 1. Représentation des connaissances FIGURE 1.10 – Algèbre temporel d’Allen du Time Unit System (TUS), une approche hiérarchique et granulaire qui représente toute expression temporelle en un groupe de granules (c’est-à-dire des unités temporelles indivisibles). Un granule (ou unité de temps) est une séquence finie d’entiers organisés selon une hiérarchie linéaire : année, mois, jour, heure, etc. De plus, ce formalisme introduit la notion de BTU (Basic Time Unit) qui correspond au niveau de granularité choisi en fonction de la précision nécessitée par une application (e.g. les jours, les secondes, etc.). Par exemple, si le BTU est fixé à heure, chaque unité temporelle sera exprimée comme une séquence d’entiers i telle que : i = [année,mois,jour,heure]. De plus, TUS définit la fonction maxj ([a1, a2, ..., aj−1]) donnant la valeur maximale possible à la position j pour qu’une séquence temporelle soit valide en tant que date. Cet opérateur est nécessaire car, selon notre actuel système calendaire, le granule jour dépend des granules mois et année. Depuis les débuts du Web sémantique, les chercheurs se sont intéressés à l’application des modèles théoriques existants pour la construction d’ontologies temporelles. L’ontologie OWL Time 49, issue d’un groupe de travail du W3C, est la plus connue et la plus utilisée actuellement. Celle-ci définit un concept de base TemporalEntity, spécifié en instants et intervalles. On y trouve également les relations temporelles issues de l’algèbre d’Allen ainsi qu’un découpage calendaire du temps (année, mois, jour, heure, minute et seconde). 1.3.2.2 Représentation de l’espace Du côté de la représentation spatiale, les premières approches proviennent des mathématiques : d’une part, Euclide définit plusieurs catégories d’objets géométriques de base (points, lignes, surfaces, etc.) ainsi que leurs propriétés et relations ; d’autre part, Descartes considère le point comme élément fondamental et propose un modèle numérique de représentation géographique en associant à chaque point un ensemble de valeurs pour chacune de ses dimensions (coordonnées cartésiennes). Ces deux modélisations constituent la vision classique de l’espace en termes de points. 49. ❤tt♣✿✴✴✇✇✇✳✇✸✳♦r❣✴❚❘✴♦✇❧✲t✐♠❡✴ 34 Copyright c 2013 - CASSIDIAN - All rights reserved1.3. Modélisation des événements Plus récemment, se développe une vision alternative où l’unité de base de modélisation spatiale est la région. Introduite par [Whitehead, 1920], celle-ci se fonde sur une perception plus commune de l’espace et est également désignée sous le nom de "géométrie du monde sensible". Cette représentation dite aussi qualitative (en contraste avec les premières approches quantitatives) permet de décrire toute entité spatiale selon les trois concepts suivants : intérieur, frontière et extérieur. Ce principe est à l’origine de l’analyse topologique visant à décrire les relations spatiales selon cette notion de limite. Cette proposition de Whitehead a donné lieu à l’élaboration de diverses théories de l’espace fondées sur les régions dont [Tarski, 1956]. Ce mode de représentation a été celui adopté par la communauté de l’Intelligence Artificielle parce qu’étant plus proche de la vision humaine et donc plus applicatif. Le modèle RCC-8 de [Randell et al., 1992] est le formalisme de premier ordre le plus utilisé pour modéliser et raisonner sur des entités spatiales. Il s’agit d’une transposition de l’algèbre d’Allen au problème de la représentation spatiale. Ce modèle comprend huit types de relation entre deux régions spatiales schématisés par la figure 1.11. FIGURE 1.11 – Les relations topologiques RCC-8 Du côté du Web sémantique, [Minard, 2008] propose un état de l’art de quelques ontologies d’objets géographiques développées notamment par des laboratoires spécialisés tels que l’INSEE, l’IGN ou AGROVOC. S’ajoutent à ces ontologies de nombreux thésaurus et bases de connaissances géographiques telles que la plus renommée GeoNames 50. Il nous faut mentionner également le groupe de travail W3C Geospatial Incubator Group (GeoXG) 51 et le consortium international OGC52 qui collaborent depuis quelques années pour faciliter l’interopérabilité entre les systèmes d’information géographique (SIG) dans le cadre du Web sémantique. Plusieurs initiatives en découlent dont le vocabulaire WGS84 Geo Positioning 53, le langage de balisage GML 54 ou encore le langage de requête GeoSPARQL 55 . 1.3.3 Spécifications dédiées au ROSO Nous proposons ici un tour d’horizon des modélisations réalisées et exploitées dans le domaine militaire et de la sécurité au sens large. 50. ❤tt♣✿✴✴✇✇✇✳❣❡♦♥❛♠❡s✳♦r❣ 51. ❤tt♣✿✴✴✇✇✇✳✇✸✳♦r❣✴✷✵✵✺✴■♥❝✉❜❛t♦r✴❣❡♦✴❳●❘✲❣❡♦✲♦♥t✲✷✵✵✼✶✵✷✸✴ 52. Open Geospatial Consortium, ❤tt♣✿✴✴✇✇✇✳♦♣❡♥❣❡♦s♣❛t✐❛❧✳♦r❣✴ 53. ❤tt♣✿✴✴✇✇✇✳✇✸✳♦r❣✴✷✵✵✸✴✵✶✴❣❡♦✴✇❣s✽✹❴♣♦s★ 54. Geography Markup Language, ❤tt♣✿✴✴✇✇✇✳♦♣❡♥❣❡♦s♣❛t✐❛❧✳♦r❣✴st❛♥❞❛r❞s✴❣♠❧ 55. ❤tt♣✿✴✴❣❡♦s♣❛rq❧✳♦r❣✴ 35 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 1. Représentation des connaissances Une première catégorie de ressources existantes sont les standards OTAN 56 dits STANAGs 57. Ceuxci sont des accords de normalisation ratifiés par les pays de l’Alliance pour faciliter les interactions entre leurs armées. Ces documents définissent des procédures, termes et conditions formant un référentiel commun (technique, opérationnel ou administratif) dédié à être mis en œuvre au sein des différents services militaires de l’OTAN. Certains sont spécifiques aux systèmes d’information et de communication (SIC) tels que les NATO Military Intelligence Data Exchange Standard [NATO, 2001] et Joint Consultation Command Control Information Exchange Data Model [NATO, 2007]. Le premier, également nommé STANAG 2433 ou AINTP-3(A), a pour objectif l’échange de l’information et de l’intelligence au sein de l’Alliance et la proposition d’un ensemble de standards d’implémentation. Les structures de données qui y sont définies constituent un exemple pour les pays membres qui, pour la plupart, s’en sont inspirés dans la conception de leurs bases de données. Le second accord, dit STANAG 5525 ou JC3IEDM, sert d’interface commune pour l’échange d’informations sur le champ de bataille. Il vise une interopérabilité internationale entre les systèmes d’information de type C2 (Command and Control) pour faciliter le commandement des opérations interarmées. Ces standards militaires ne sont pas des ontologies mais définissent un ensemble de concepts (et relations entre ces concepts) spécifiques à certaines procédures. Ceux-ci sont organisés de façon hiérarchique et décrits le plus précisément possible en langage naturel. Ces modèles sont généralement très complets et très bien documentés car ils sont destinés à des opérateurs humains spécialistes du sujet traité. Par ailleurs, nous pouvons citer l’agence de recherche américaine IARPA 58 et son programme OSI 59 dont l’objectif est le développement de méthodes pour l’analyse des données accessibles publiquement. Cette organisation finance des projets d’innovation technologique pour la détection automatique et l’anticipation d’événements sociétaux tels que les situations de crise, catastrophes naturelles, etc. Dans le cadre de ce programme a été développée la typologie IDEA 60 incluant environ 250 types d’événements sociaux, économiques et politiques ainsi que des entités simples avec lesquelles ils sont en relation [Bond et al., 2003]. Du côté des ontologies, on recense notamment les modélisations swint-terrorism [Mannes and Golbeck, 2005], reprenant les concepts principaux nécessaires au domaine du terrorisme, et AKTiveSA [Smart et al., 2007], dédiée à la description des contextes opérationnels militaires autres que la guerre. [Baumgartner and Retschitzegger, 2006] réalise également un état de l’art des ontologies de haut niveau dédiées à la tenue de situation (situation awareness). [Inyaem et al., 2010b] s’attache à la définition d’une ontologie floue pour l’extraction automatique d’événements terroristes. Toutefois, comme dans beaucoup de travaux de ce domaine, l’ontologie développée n’est pas distribuée publiquement pour des raisons stratégiques et/ou de confidentialité. Le site web ❤tt♣✿✴✴♠✐❧✐t❛r②♦♥t♦❧♦❣②✳❝♦♠ recense un certain nombre d’ontologies pour le domaine militaire. Enfin, [Bowman et al., 2001] et [Boury-Brisset, 2003] proposent un ensemble de conseils méthodologiques pour la construction d’ontologies dédiées aux applications militaires et stratégiques. 56. Organisation du Traité de l’Atlantique Nord 57. STANdardization AGreement, ❤tt♣✿✴✴✇✇✇✳♥❛t♦✳✐♥t✴❝♣s✴❡♥✴♥❛t♦❧✐✈❡✴st❛♥❛❣✳❤t♠ 58. Intelligence Advanced Research Projects Activity, ❤tt♣✿✴✴✇✇✇✳✐❛r♣❛✳❣♦✈✴ 59. Open Source Indicators, ❤tt♣✿✴✴✇✇✇✳✐❛r♣❛✳❣♦✈✴Pr♦❣r❛♠s✴✐❛✴❖❙■✴♦s✐✳❤t♠❧ 60. Integrated Data for Events Analysis, ❤tt♣✿✴✴✈r❛♥❡t✳❝♦♠✴■❉❊❆✳❛s♣① 36 Copyright c 2013 - CASSIDIAN - All rights reserved1.4. Conclusions 1.4 Conclusions A travers ce premier état de l’art, nous avons pu nous familiariser avec les différentes problématiques de la représentation des connaissances au sens large. Nous avons, dans un premier temps, rappelé une distinction importante antre les notions de donnée, information et connaissance qui constitue l’une de bases théoriques de ce domaine. Nous avons, par la suite, présenté, dans leur ensemble, les principes et technologies du Web sémantique qui sont partie intégrante d’une majorité de travaux actuels en fouille de documents et dont l’adéquation à cette problématique n’est plus à prouver. Enfin, nous avons réalisé un focus sur la place des événements en représentation des connaissances et présenté les différentes théories et modèles de la littérature. Dans un souci d’interopérabilité avec les systèmes existants, nous avons privilégié l’utilisation de modèles communs au sein de nos travaux tout en les adaptant aux besoins spécifiques de notre application si nécessaire. Le modèle ACE, très utilisé par la communauté en EI, nous parait bien adapté à la modélisation des événements dans le cadre de nos recherches. En effet, comme nous l’avons montré dans ce chapitre, celui-ci est compatible avec les besoins des analystes du ROSO ainsi qu’avec le modèle de données de la plateforme WebLab. Nous avons par la suite réalisé un tour d’horizon des ontologies centrées sur les événements déjà développées et réutilisables : les plus communes présentent toutes des similarités de structure et un effort est réalisé dans la communauté pour lier les différentes modélisations entre elles via des alignements ontologiques. Parmi celles-ci, les ontologies DUL et LODE présentent le plus de correspondances avec nos travaux. L’ensemble de ces observations seront prises en compte lors de l’élaboration de notre modèle de connaissances présentée au chapitre 4. 37 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 1. Représentation des connaissances 38 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 2 Extraction automatique d’information Sommaire 2.1 Définition et objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 2.2 Approches d’extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 2.2.1 Extraction d’entités nommées et résolution de coréférence . . . . . . . . . 43 2.2.2 Extraction de relations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 2.2.3 Extraction d’événements . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.3 Plateformes et logiciels pour l’EI . . . . . . . . . . . . . . . . . . . . . . . . . 50 2.4 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 2.5 Évaluation des systèmes d’EI . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 2.5.1 Campagnes et projets d’évaluation . . . . . . . . . . . . . . . . . . . . . 54 2.5.2 Performances, atouts et faiblesses des méthodes existantes . . . . . . . . . 56 2.6 Problèmes ouverts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 2.7 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 39 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 2. Extraction automatique d’information Depuis les débuts du Traitement Automatique du Langage dans les années 60-70, la compréhension automatique de textes est l’objet de nombreuses recherches. L’objectif principal est de permettre à un ordinateur de comprendre le sens global d’un document comme savent le faire les êtres humains. Les échecs récurrents des systèmes alors développés mettent rapidement en cause une vision trop générique de la compréhension automatique. En effet, de tels outils s’avèrent alors inutilisables dans un contexte opérationnel en raison du coût élevé des adaptations nécessaires (bases de connaissances et ressources lexicales spécifiques). Conscients d’être trop ambitieux au regard des possibilités technologiques, les chercheurs s’orientent alors vers des techniques plus réalistes d’extraction d’information. S’il n’est pas directement possible de comprendre automatiquement un texte, le repérage et l’extraction des principaux éléments de sens apparaît comme un objectif plus raisonnable. Cette réorientation théorique est reprise de façon détaillée par [Poibeau, 2003]. Ce chapitre présente tout d’abord les objectifs principaux de l’extraction d’information (section 2.1), puis une synthèse des méthodes les plus couramment mises en œuvre dans ce domaine (section 2.2). Pour cela, nous distinguons les travaux existants selon la nature des informations extraites : entités nommées, relations entre entités et événements. Quelques travaux en résolution de coréférence sont également présentés. La section 2.3 propose un tour d’horizon des outils et plateformes existants pour le développement de systèmes d’extraction d’information. Nous parcourons ensuite (section 2.4) quelques-unes des applications possibles dans ce domaine. Pour conclure ce chapitre, la section 2.5 aborde le problème de l’évaluation en extraction d’information à travers une revue des campagnes d’évaluation, puis une présentation des performances (atouts et faiblesses) des systèmes existants et enfin, un récapitulatif des limites restantes à l’heure actuelle. 2.1 Définition et objectifs Face à l’augmentation vertigineuse des documents textuels mis à disposition de tous, l’extraction automatique d’information voit un intérêt grandissant depuis une vingtaine d’années. En effet, noyés sous cette masse d’information non-structurée, nous rêvons d’un système automatique capable, dans nos tâches quotidiennes (professionnelles ou personnelles), de repérer et d’extraire de façon rapide et efficace les informations dont nous avons besoin. En réponse à cela, les systèmes développés visent à analyser un texte de manière automatique afin d’en extraire un ensemble d’informations jugées pertinentes [Hobbs and Riloff, 2010]. Il s’agit généralement de construire une représentation structurée (bases de données, fiches, tableaux) à partir d’un ou plusieurs documents à l’origine non-structurés. Cela en fait une approche guidée par le but de l’application dans laquelle elle s’intègre, dépendance qui reste, à l’heure actuelle, une limite majeure des systèmes d’extraction [Poibeau, 2003]. L’extraction d’information (EI) a souvent été confondue avec un autre domaine de l’intelligence artificielle (IA) qu’est la recherche d’information (RI). Bien que cet amalgame s’explique car ces deux champs de recherche partagent un objectif premier — présenter à l’utilisateur des informations qui ré- pondent à son besoin — ceux-ci diffèrent sur plusieurs autres points. Tout d’abord, les outils de RI renvoient généralement une liste de documents à l’utilisateur alors qu’en extraction d’information les résultats sont des éléments d’information extraits de ces documents. Par ailleurs, la recherche d’information s’attache à répondre à une requête exprimée par un utilisateur grâce à un système de mots-clés (ou d’autres mécanismes plus sophistiqués de recherche sémantique) [Vlahovic, 2011]. Dans le domaine de l’EI, la réponse des outils est guidée par une définition a priori des éléments d’information à repérer 40 Copyright c 2013 - CASSIDIAN - All rights reserved2.1. Définition et objectifs dans un ensemble de textes. Malgré ces distinctions et comme c’est le cas avec d’autres disciplines du TALN 61, l’EI est utile à la RI et inversement. Les systèmes d’extraction d’information bénéficient souvent de la capacité de filtrage des outils de RI en focalisant leur analyse sur un ensemble déterminé de documents. A l’inverse, la recherche d’information peut exploiter les informations extraites par les outils d’EI en tant que champs de recherche additionnels et ainsi améliorer le filtrage et l’ordonnancement des documents pour une requête donnée. Les tâches les plus communes en extraction d’information sont l’extraction d’entités nommées [Nadeau and Sekine, 2007], le repérage de relations entre ces entités [Rosario and Hearst, 2005] et la dé- tection d’événements [Naughton et al., 2006]. Celles-ci se distinguent par la nature et la complexité des informations que l’on cherche à repérer et à extraire automatiquement : entités nommées, relations ou événements. Nous détaillons ci-après les objets d’étude et les objectifs spécifiques à chaque tâche. La reconnaissance d’entités nommées (REN) vise à reconnaître et catégoriser automatiquement un ensemble d’éléments d’information qui correspondent généralement à des noms propres (noms de personnes, organisations, lieux) mais aussi aux dates, unités monétaires, pourcentages, unités de mesure, etc. Ces objets sont communément appelés "entités nommées" et s’avèrent indispensables pour saisir le sens d’un texte. Le terme "entité nommée" (EN) n’est apparu en EI que très récemment lors de la 6ème édition des campagnes d’évaluation MUC62 (voir la section 2.5) et sa définition est encore aujourd’hui l’objet de nombreuses discussions. Ce terme renvoie à la théorie de la "référence directe" évoquée dès la fin du 19ème siècle par des philosophes du langage tels que John Stuart Mill. A l’heure actuelle, une majorité de travaux se retrouvent dans la définition proposée par [Kripke, 1980] sous le nom de "désignateurs rigides" : "entités fortement référentielles désignant directement un objet du monde". Il nous faut également souligner que ces entités nommées dites "entités simples" constituent généralement un premier niveau de la chaîne d’extraction et permettent la détection de structures plus complexes que sont les relations et les événements. A cette première tâche d’extraction est couramment associé le problème de résolution de coréférence entre EN. La résolution de coréférence vise à regrouper plusieurs extractions ayant des formes de surface différentes mais référant à la même entité du monde : par exemple, "Big Apple" et "New York", ou encore "JFK" et "John Fitzgerald Kennedy". Ce problème a surtout été exploré conjointement à la détection d’entités nommées mais cette problématique est applicable à tout type d’extraction. Dans les campagnes MUC, la résolution de coréférence fait partie d’un ensemble de tâches nommé SemEval (Semantic Evaluation) ayant pour objectif une compréhension plus profonde des textes [Grishman and Sundheim, 1996]. De plus, la différentiation entre les termes "mention" et "entité" introduite lors des campagnes ACE 63 (voir la section 2.5) met en avant ce besoin de regrouper plusieurs "mentions" d’une entité provenant d’un ou plusieurs textes. Nous détaillons dans la section 2.2.1 les mé- thodes employées pour la reconnaissance de ces entités nommées et la résolution de coréférence entre ces entités. L’extraction de relations a pour objet d’étude les liens existants entre plusieurs entités : celle-ci peut-être binaire (entre deux objets) ou n-aire (plus de deux objets en relation). Il s’agit par exemple de détecter dans un corpus de documents que Barack Obama est l’actuel président des États-Unis, ce qui se traduira par une relation de type "président de" entre l’entité de type Personne "Barack Obama" et l’entité de type Lieu "États-Unis". La détection de relations n-aires correspond à ce que l’on nomme en anglais "record extraction" où il s’agit de repérer un réseau de relations entre entités et dont l’extraction 61. Traitement Automatique du Langage Naturel 62. Message Understanding Conference, ❤tt♣✿✴✴✇✇✇✲♥❧♣✐r✳♥✐st✳❣♦✈✴r❡❧❛t❡❞❴♣r♦❥❡❝ts✴♠✉❝✴ 63. Automatic Content Extraction, ❤tt♣✿✴✴✇✇✇✳✐t❧✳♥✐st✳❣♦✈✴✐❛❞✴♠✐❣✴t❡sts✴❛❝❡✴ 41 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 2. Extraction automatique d’information d’événements fait partie. Cette problématique diffère de la tâche de reconnaissance des entités nommées sur un point essentiel. Une entité nommée correspond à une portion séquentielle de texte et peut être directement représentée par une annotation délimitant le début et la fin de cette séquence. Une relation entre entités ne correspond pas directement à un ensemble consécutif de mots mais représente un lien entre deux portions de texte. Cela implique des processus et des formats d’annotation différents pour ces deux types de tâches. Dans la section 2.2.2, nous nous focaliserons sur les méthodes utilisées pour la détection de relations binaires, les relations n-aires seront abordées par le biais de l’extraction des événements. Est couramment associée à cette tâche d’EI l’extraction d’attributs ayant pour objectif d’extraire automatiquement un ensemble pré-défini de propriétés rattachées à ces entités, le type de ces propriétés dépendant directement de la nature de l’objet en question. Par exemple pour une personne, on pourra extraire son nom et son prénom, sa nationalité, son âge, etc. et pour une entreprise, son siège social, le nombre d’employés, etc. L’extraction des événements est une autre tâche de l’EI très étudiée. Celle-ci peut être conçue comme une forme particulière d’extraction de relations où une "action" est liée à d’autres entités telles qu’une date, un lieu, des participants, etc. Comme cela a été décrit dans les sections 1.3 et 1.3.1.2, cette définition peut varier selon les points de vue théoriques et les applications et donne lieu à différentes représentations et ontologies dédiées aux événements. La détection d’événements s’avère particulièrement utile dans les activités de veille en général et intéresse de plus en plus les entreprises de nombreux domaines pour ses applications en intelligence économique et stratégique [Capet et al., 2011]. Nous présentons par la suite (en section 2.2.3) un tour d’horizon des techniques utilisées pour le repérage des événements dans les textes. 2.2 Approches d’extraction En extraction d’information émergent historiquement deux principaux types d’approche : l’extraction basée sur des techniques linguistiques d’un côté et les systèmes statistiques à base d’apprentissage de l’autre. Cette distinction se retrouve largement en IA et dans les autres disciplines du TALN telles que la traduction automatique, etc. Le premier type d’approche est nommé dans la littérature "approche symbolique", "à base de connaissances", "déclarative", "à base de règles" ou encore "système-expert" et exploite les avancées en TALN. Celles-ci reposent principalement sur une définition manuelle de toutes les formes linguistiques permettant d’exprimer l’information ciblée, autrement dit l’ensemble des contextes d’apparition de telle entité ou relation. Cela se traduit généralement par l’utilisation de grammaires formelles constituées de règles et patrons linguistiques élaborés par des experts-linguistes. Ces patrons sont généralement de deux types : les patrons lexico-syntaxiques et les patrons lexico-sémantiques. Les premiers associent des caractéristiques de mot (forme fléchie, lemme, genre, casse, etc.) à des indices structurels et de dépendance (syntagmatiques, phrastiques ou textuels). Les patrons lexico-sémantiques y ajoutent des éléments sé- mantiques tels que la projection de lexiques (gazetteers), l’utilisation de réseaux sémantiques externes tels que WordNet 64 ou encore d’ontologies [Hogenboom et al., 2011]. Les méthodes symboliques ont pour principales faiblesses leur taux de rappel peu élevé et leur coût de développement manuel coûteux. 64. ❤tt♣✿✴✴❣❧♦❜❛❧✇♦r❞♥❡t✳♦r❣ 42 Copyright c 2013 - CASSIDIAN - All rights reserved2.2. Approches d’extraction Le second type d’approche utilise des techniques statistiques pour apprendre des régularités sur de larges corpus de textes où les entités-cibles ont été préalablement annotées (domaine du "machine learning"). Ces méthodes d’apprentissage sont supervisées, non-supervisées ou semi-supervisées et exploitent des caractéristiques textuelles plus ou moins linguistiques. Parmi celles-ci nous pouvons citer les "Modèles de Markov Caché" (Hidden Markov Models, HMM), les "Champs Conditionnels Aléatoires" (Conditional Random Fields, CRF), les "Machines à Vecteur de Support" (Support Vector Machines, SVM), etc. ([Ireson et al., 2005] pour un état de l’art approfondi). Les principales limites de ce second type d’approche restent qu’elles nécessitent une grande quantité de données annotées pour leur phase d’apprentissage et produisent des modèles de type "boite noire" qui restent à l’heure actuelle difficilement accessibles et interprétables. Pour répondre à ce problème, des méthodes non-supervisées telles que [Etzioni et al., 2005] proposent d’utiliser des techniques de clustering pour extraire des entités d’intérêt. Depuis quelques années, les méthodes hybrides tendent à se généraliser : les acteurs du domaine combinent plusieurs techniques face aux limites des approches symboliques et statistiques. De plus en plus de recherches portent sur l’apprentissage de ressources linguistiques ou encore sur l’utilisation d’un apprentissage dit "semi-supervisé" visant à combiner des données étiquetées et non-étiquetées ([Nadeau and Sekine, 2007], [Hobbs and Riloff, 2010]). Afin de diminuer l’effort de développement des systèmes symboliques, certains travaux s’intéressent à l’apprentissage automatique de règles d’extraction. A partir d’un corpus annoté, l’objectif est de trouver un ensemble minimal de règles permettant d’atteindre les meilleures performances, c’est-à-dire la meilleure balance entre précision et rappel (voir la section 2.5 pour une définition de ces mesures). Ces approches sont soit ascendantes ("bottom-up" en anglais) lorsqu’elles ont pour point de départ un ensemble de règles très spécifiques et opèrent des généralisations pour augmenter la couverture du système [Califf and Mooney, 2003] ; soit descendantes ("top-down" en anglais) lorsqu’elles partent d’un ensemble de règles très génériques pour arriver, par spécialisations successives, à un système plus précis [Soderland, 1999]. [Muslea, 1999] propose un tour d’horizon des grands types de règle résultant d’un apprentissage automatique. Toutes ces méthodes reposent généralement sur des pré-traitements linguistiques dits "classiques" comme la "tokenization" (découpage en mots), la lemmatisation (attribution de la forme non-fléchie associée), l’analyse morphologique (structure et propriétés d’un mot) ou syntaxique (structure d’une phrase et relations entre éléments d’une phrase). Notons ici l’importance particulière accordée à l’analyse syntaxique (en constituants ou dépendance) dans le repérage et le typage des relations et des événements. Nous détaillons par la suite quelques techniques couramment mises en œuvre selon le type d’objet à extraire : entité nommée, relation ou événement. 2.2.1 Extraction d’entités nommées et résolution de coréférence La reconnaissance automatique d’entités nommées fut consacrée comme l’une des tâches principales de l’EI lors de la 6ème campagne d’évaluation MUC. Les systèmes alors proposés s’attellent à l’extraction de trois types d’entités définis sous les noms "ENAMEX", "TIMEX" et "NUMEX" correspondant respectivement aux noms propres (personnes, lieux, organisations, etc.), entités temporelles et entités numériques. Cette classification n’est pas la seule dans la littérature, [Daille et al., 2000] aborde notamment la distinction entre les catégorisations dites "référentielles" (telles que celle de MUC) et celles dites "graphiques". Les premières classent les entités nommées selon la nature des objets du monde auxquels elles renvoient tandis que les secondes proposent une classification selon la composition graphique des 43 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 2. Extraction automatique d’information entités. A titre d’exemple, une classification inspirée de [Jonasson, 1994] distingue les entités nommées "pures simples", des EN "pures complexes" et des EN "mixtes". Quelque soit la catégorisation choisie, celle-ci est fixée a priori dans la majorité des applications. A l’inverse, les récents travaux autour de la construction d’ontologies et de bases de connaissances à partir de textes mettent en œuvre une extraction "tous types confondus" pour en déduire a posteriori une classification. L’extraction des entités nommées est généralement déroulée en deux phases : leur repérage dans le texte et leur typage selon la catégorisation pré-définie. [Nadeau and Sekine, 2007] propose un état de l’art des différentes approches explorées jusqu’à nos jours pour réaliser cette tâche : on y retrouve l’opposition "classique" (abordée dans la section précédente) entre méthodes symboliques et statistiques ainsi que l’intérêt récent pour les approches hybrides. Par ailleurs, [Friburger, 2006] présente les aspects linguistiques les plus communément exploités par les systèmes de REN. Les approches à base de règles linguistiques sont les plus anciennes et, bien que coûteuses car elles sont définies manuellement par un expert, elles s’avèrent généralement plus rapides à l’exécution et plus personnalisables. L’ensemble de règles s’apparente à une grammaire locale et vise à définir de façon la plus exhaustive possible les différents contextes d’apparition de telle entité. De nombreux formats d’expression de règles d’extraction existent (CPSL [Appelt and Onyshkevych, 1998], JAPE [Cunningham et al., 2000], DataLog [Ceri et al., 1989], etc.) et celles-ci partagent la structure générique suivante : regle : contexte → action La partie contexte est composée de plusieurs propositions décrivant un contexte textuel au moyen de diverses caractéristiques linguistiques et formelles. Le repérage des entités nommées se base géné- ralement sur la présence de majuscules puis leur catégorisation est réalisée grâce à des listes de noms propres connus ou de mots dits "catégorisants" (par exemple les prénoms). Ces caractéristiques peuvent être des attributs associés aux tokens (unités lexicales correspondant plus ou moins à un découpage en mots), à des segments plus larges tels que les syntagmes, à la phrase ou au texte dans son entier. Elles peuvent provenir de l’entité elle-même ou de son co-texte (respectivement "internal evidence" et "external evidence" [McDonald, 1996]). Lorsque le contexte est repéré dans le corpus à traiter, la partie action de la règle est exécutée. Il s’agit dans la plupart des cas d’apposer une annotation d’un certain type sur tout ou partie du contexte textuel repéré. Afin de gérer d’éventuels conflits lors de l’exécution d’un ensemble de règles, la plupart des systèmes intègrent des polices d’exécution sous forme d’heuristiques (par exemple : la règle qui produit l’annotation la plus longue est privilégiée) ou d’attribution de priorité à chaque règle. Par ailleurs, les systèmes à base de règles sont couramment implémentés en cascade, c’est-à-dire que les annotations fournies par un premier ensemble de règles peuvent être réutilisées en entrée d’un second ensemble de règles. [Wakao et al., 1996] développe le système LaSIE, une chaine de traitement symbolique fondée sur des grammaires d’unification exprimées en Prolog. Cet extracteur d’EN pour l’anglais a été évalué sur un ensemble d’articles du Wall Street Journal et atteint une F-mesure d’environ 92%. A la même période, l’ancien Stanford Research Center propose FASTUS (sponsorisé par la DARPA), un automate à états finis non-déterministe pour l’extraction d’entités nommées (sur le modèle de MUC-4) dans des textes en anglais et en japonais [Hobbs et al., 1997]. Plus récemment, [Maurel et al., 2011] présente le système open-source CasEN dédié au traitement des textes en français et développé grâce au logiciel CasSys (fourni par la plateforme Unitex) facilitant la création de cascades de transducteurs. Cet outil a 44 Copyright c 2013 - CASSIDIAN - All rights reserved2.2. Approches d’extraction notamment été testé lors de la campagne d’évaluation ESTER 2 65 (voir la section 2.5) dont l’objectif est de comparer les performances des extracteurs d’EN sur des transcriptions de la parole. Bien que les approches statistiques bénéficient d’un essor plus récent, de nombreuses techniques d’extraction ont été et sont encore explorées. Le principe sous-jacent de ces méthodes est d’apprendre, à partir de textes pré-annotés avec les entités-cibles, un modèle de langage qui, appliqué sur un nouveau corpus, permettra d’extraire de nouvelles entités du même type. La majorité de ces approches se fonde sur un corpus d’apprentissage segmenté en tokens auxquels est associé un certain nombre de caracté- ristiques représentées par des vecteurs. Ces caractéristiques peuvent être intrinsèques au token (telles que sa forme de surface, sa longueur, sa catégorie grammaticale, etc.), liées à sa graphie (sa casse, la présence de caractères spécifiques, etc.) ou encore provenir de ressources externes (bases d’entités nommées connues, liste de mots catégorisants, etc.). A partir de ces différentes informations fournies dans le corpus d’apprentissage, la reconnaissance d’entités nommées est traitée comme un problème de classi- fication. On distingue d’une part, des classifieurs dits linéaires tels que les modèles à base de régression logistique ou les machines à vecteurs de support [Isozaki and Kazawa, 2002] et, d’autre part, des classifieurs graphiques probabilistes tels que les HMMs [Zhao, 2004] ou les CRFs [Lafferty et al., 2001]. Le second type de classification est généralement plus performant car il permet de prendre en compte, lors de l’apprentissage du modèle d’annotation, les dépendances de classe entre tokens voisins. La principale limite de toutes ces approches reste le fait qu’elles construisent leur modèle au niveau token et ne permettent pas d’exploiter d’autres caractéristiques à un niveau de granularité plus élevé. Pour pallier à ce problème, il existe des techniques d’apprentissage statistique fondées sur un découpage en segments (en groupes syntaxiques, par exemple) ou sur une analyse de la structure globale des textes [Viola and Narasimhan, 2005]. Toutefois, les CRFs restent le modèle statistique le plus utilisé actuellement en REN de par leurs bonnes performances et leur capacité d’intégration de diverses caractéristiques [Tkachenko and Simanovsky, 2012]. Par ailleurs, les chercheurs en EI s’intéressent ces dernières années à combiner des techniques issues des approches symboliques et statistiques pour améliorer les performances de leurs systèmes d’extraction. [Charnois et al., 2009], par exemple, propose une approche semi-supervisée par apprentissage de patrons linguistiques pour l’extraction d’entités biomédicales (ici les noms de gènes). Ce travail met en œuvre une extraction de motifs séquentiels fréquents par fouille de textes et sous contraintes. Cette approche permet une extraction plus performante en utilisant un nouveau type de motif appelé LSR (utilisation du contexte du motif pour augmenter sa précision). Par ailleurs, [Charton et al., 2011] s’intéresse à l’extraction d’entités nommées en utilisant des motifs d’extraction extraits à partir de Wikipedia pour compléter un système d’apprentissage statistique par CRF. Les auteurs exploitent ici le contenu riche en noms propres et leurs variantes des ressources encyclopédiques telles que Wikipedia pour en extraire des patrons linguistiques. Ces résultats sont ensuite fusionnés avec ceux de l’approche statistique et une amélioration de la REN est constatée après évaluation sur le corpus de la campagne ESTER 2. L’inconvé- nient ici étant le besoin de données annotées, d’autres méthodes proposent d’interagir avec l’utilisateur : celui-ci fournit un petit ensemble d’exemples permettant d’obtenir un premier jeu de règles et celui-ci est amélioré de façon interactive et itérative [Ciravegna, 2001]. D’autres travaux tels que [Mikheev et al., 1999] choisissent de limiter la taille des gazetteers utilisés pour la REN et montrent que, tout en allégeant fortement la phase de développement de leur système (une approche hybride combinant un système à base de règles à un modèle probabiliste à Maximum d’Entropie), cela à un impact faible sur ses performances. [Fourour, 2002] propose Nemesis, un outil de REN fondé sur une approche incrémentielle se 65. Évaluation des Systèmes de Transcription Enrichie d’Émissions Radiophoniques, ❤tt♣✿✴✴✇✇✇✳❛❢❝♣✲♣❛r♦❧❡✳♦r❣✴ ❝❛♠♣❴❡✈❛❧❴s②st❡♠❡s❴tr❛♥s❝r✐♣t✐♦♥✴ 45 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 2. Extraction automatique d’information déroulant en trois phases : un premier jeu de règles est appliqué, celui-ci est suivi d’une étape d’apprentissage pour améliorer ce jeu, puis un second repérage est effectué grâce au jeu de règles amélioré. Pour finir, beaucoup de travaux se penchent sur la résolution de coréférence entre entités nommées. En effet, comme introduit dans la section 2.1, il est courant de faire référence à une entité du monde réel (une personne, un lieu, une organisation, etc.) de plusieurs manières : par son/ses nom(s) propre(s) (par exemple, "Paris" ou "Paname"), par une expression la décrivant ("la capitale de la France") ou encore par un groupe nominal ou un pronom en contexte ("cette ville", "elle"). Ainsi, lorsqu’un texte contient différentes mentions d’une même entité, il apparait intéressant de pouvoir les lier (on obtient ainsi des chaines de référence) pour indiquer qu’elles font référence à un seul et même objet réel, qu’il y a donc coréférence. Cette problématique n’est pas triviale et peut s’appliquer à un seul et même document mais aussi au sein d’un corpus (coréférence entre entités provenant de textes distincts). La résolution de coréférence peut se faire de façon endogène ou exogène (en utilisant des ressources externes), en utilisant des techniques linguistiques, statistiques ou hybrides. Cette tâche fait notamment partie de campagnes d’évaluation telles que ACE (Global Entity Detection and Recognition). [Bontcheva et al., 2002] adopte une approche à base de règles pour la résolution de coréférence entre ENs et pronominale. Ces travaux ont été implémentés sous la forme d’un transducteur à états finis au sein de la plateforme GATE et sont intégrés à la chaine de traitement ANNIE (il s’agit des modules nommés Orthomatcher et Pronominal Corerefencer). Un exemple d’approche statistique et exogène est celle présentée par [Finin et al., 2009] où la base de connaissances Wikitology (construites à partir de Wikipedia, DBPedia et FreeBase) est utilisée en entrée d’un classifeur SVM (avec une trentaine d’autres caractéristiques textuelles) pour la construction de chaines de référence. 2.2.2 Extraction de relations L’extraction de relations consiste à détecter et typer un lien exprimé textuellement entre deux entités. Cette tâche a notamment été proposée à l’évaluation lors de la campagne MUC-7, évaluation poursuivie par les campagnes ACE à partir de 2002. Les avancées dans cette problématique proviennent essentiellement des travaux d’EI menés dans les domaines de la médecine et de la biologie, notamment pour l’analyse des rapports médicaux et expérimentaux. Les premiers systèmes développés sont fondés sur un ensemble de règles d’extraction dont les plus simples définissent des patrons sous forme de triplets du type : e1 relation e2 (où e1 et e2 sont deux entités reconnues au préalable). La majorité des relations n’étant pas exprimées aussi simplement dans les textes réels, les règles d’extraction doivent être plus élaborées et intégrer d’autres caractéristiques textuelles situées soit entre les deux entités visées soit autour du triplet relationnel. Comme pour la REN, les systèmes complètent couramment des caractéristiques de mot et une analyse structurelle par des indices sémantiques. [Muller and Tannier, 2004] présente une méthode symbolique comprenant une analyse syntaxique pour la détection de relations temporelles entre entités de type "événement". Dans le domaine médical, [Fundel et al., 2007] développe RelEx, un outil visant à extraire les interactions entre protéines et gènes et dont l’évaluation (sur le corpus MEDLINE) a montré de bonnes performances (précision et rappel d’environ 80%). [Nakamura-Delloye and Villemonte De La Clergerie, 2010] propose une méthode d’extraction de relations entre entités nommées basée sur une analyse en dépendance. Leur idée est de repérer les chemins syntaxiques entre deux entités (i.e. l’ensemble des relations de dépendance qu’il faut parcourir pour relier ces deux entités) afin de construire par généralisation des groupes de patrons de relations syntaxiques spécifiques à tel type de relation sémantique. 46 Copyright c 2013 - CASSIDIAN - All rights reserved2.2. Approches d’extraction De nombreux travaux se tournent également vers l’apprentissage automatique de patrons de relation afin de faciliter ou de remplacer le travail manuel de l’expert. [Cellier et al., 2010], par exemple, s’attache au problème de la détection et du typage des interactions entre gènes par apprentissage de règles linguistiques. Leur approche réutilise une technique employée à l’origine en fouille de données : l’extraction de motifs séquentiels fréquents. Celle-ci permet d’apprendre à partir d’un corpus annoté un ensemble de régularités pour les transformer, après validation par un expert, en règles d’extraction. Il faut noter ici que le corpus d’apprentissage n’est pas annoté avec les relations-cibles mais uniquement avec des caractéristiques de plus bas niveau (entités nommées de type "gène", catégories morpho-syntaxiques, etc.). De plus, l’ajout de contraintes permet de diminuer la quantité de motifs retournés par le système et ainsi faciliter le tri manuel fait par l’expert. Du côté des approches statistiques, [Rosario and Hearst, 2004] s’intéresse à la détection de relations entre maladies et traitements (de sept types distincts dont "cures", "prevents", "is a side effect of", etc.) et compare plusieurs méthodes statistiques pour cette tâche. Une sous-partie du corpus MEDLINE 2011 est annotée manuellement par un expert du domaine afin d’entraîner et tester plusieurs modèles graphiques et un réseau de neurones. Ce dernier obtient les meilleures performances avec une précision d’environ 97%. Une autre approche statistique pour l’extraction de relations est celle de [Zhu et al., 2009] proposant de combiner un processus de "bootstrapping" et un réseau logique de Markov. Le premier permet d’initier l’apprentissage à partir d’un petit jeu de relations fournies par l’utilisateur et ainsi diminuer le besoin en données annotées. De plus, ce travail exploite les capacités d’inférence permises par les réseaux logiques de Markov afin d’augmenter les performances globales de leur système StatSnowball. La plupart des approches supervisées étant dépendantes du domaine de leur corpus d’apprentissage, [Mintz et al., 2009] s’intéresse à une supervision dite "distante" en utilisant la base de connaissances sémantique Freebase 66. Le principe de ce travail est de repérer dans un corpus de textes brut des paires d’entités étant en relation dans Freebase et d’apprendre des régularités à partir du contexte textuel de cette paire. L’apprentissage est implémenté ici sous la forme d’un classifieur à logique de régression multi-classes et prend en compte des caractéristiques lexicales (par exemple, la catégorie grammaticale des mots), syntaxiques (une analyse en dépendance) et sémantiques (un repérage des entités nommées). Pour finir, nous pouvons citer quelques travaux comme ceux de [Hasegawa et al., 2004] ou [Wang et al., 2011] proposant d’appliquer des techniques de "clustering" à l’extraction de relations. Le premier décrit une méthode non-supervisée d’extraction et de catégorisation de relations entre EN par "clustering". Celui-ci s’opère par une première étape de représentation du contexte de chaque paire d’entités proches en vecteurs de caractéristiques textuelles. Puis, on calcule une similarité cosinus entre vecteurs qui est donnée en entrée d’un "clustering" hiérarchique à lien complet. On obtient ainsi un "cluster" par type de relation, relation nommée en prenant le mot ou groupe de mot le plus fréquent entre paires d’EN au sein du "cluster". D’autre part, [Wang et al., 2011] s’intéresse à la détection de relations en domaine ouvert et de façon non-supervisée. Pour cela, leur approche est d’extraire un ensemble de relations par plusieurs phases de filtrage puis de les regrouper par type en utilisant des techniques de "clustering". La première étape est réalisée par trois filtrages successifs : les phrases contenant deux ENs et au moins un verbe entre les deux sont sélectionnées, puis les phrases non-porteuses de relation sont évacuées par des heuristiques et enfin par un apprentissage à base de CRFs. Une fois l’ensemble des relations pertinentes extraites, celles-ci sont regroupées par type sémantique en utilisant un algorithme de "clustering de Markov". Cette méthode ne nécessite pas d’annoter les relations dans un corpus d’apprentissage, ni de fixer au préalable les différents types de relation à extraire. 66. ❤tt♣✿✴✴✇✇✇✳❢r❡❡❜❛s❡✳❝♦♠✴ 47 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 2. Extraction automatique d’information 2.2.3 Extraction d’événements L’extraction d’événements, parfois considérée comme une extraction de relations n-aires, consiste à repérer dans un ou plusieurs textes des événements d’intérêt tels que définis dans la section 1.3. Cette tâche peut se résumer par le fait de répondre à la question suivante : "Who did what to whom when and where ?". Certains modèles y ajoutent les questions "how ?" et "why ?". La littérature dans ce domaine montre que l’extraction des événements regroupe généralement plusieurs sous-tâches [Ahn, 2006] : 1. détection des marqueurs d’événement ; 2. affectation des attributs ; 3. identification des arguments ; 4. estimation des rôles ; 5. résolution de coréférence. Plusieurs campagnes MUC67 s’y sont intéressé avec notamment des tâches de remplissage automatique de formulaires ("template filling"). Comme en extraction d’information de façon générale, la littérature du domaine offre à la fois des travaux basés sur des approches symboliques et des techniques purement statistiques. La première approche symbolique retenue est décrite dans [Aone and Ramos-Santacruz, 2000] : il s’agit du système REES 68 permettant l’extraction de relations et d’événements à grande échelle. Cet outil repose sur l’utilisation combinée de lexiques et de patrons syntaxiques pour la détection d’évé- nements principalement basés sur des verbes. Ces lexiques correspondent à une description syntaxique et sémantique des arguments de chaque verbe déclencheurs d’événement. Ces informations sont par la suite réutilisées au sein des patrons syntaxiques décrivant les différents contextes d’apparition d’un évé- nement. Dans la lignée, [Grishman et al., 2002b] s’intéresse à la détection d’événements épidémiques au moyen d’un transducteur à états finis. Par ailleurs, le système d’extraction IE2 (Information Extraction Engine) a été développé par la société américaine SRA International spécialisée dans le traitement de l’information [Aone et al., 1998]. Cet outil a obtenu les meilleures performances (51% de F-mesure) pour la tâche Scenario Template (ST) lors de la campagne d’évaluation MUC-7. Il s’agit d’une extracteur modulaire comprenant 6 modules dont celui nommé "EventTag" permettant le remplissage de scénarios d’événement grâce à des règles syntactico-sémantiques élaborées manuellement. Un autre outil d’EI à base de connaissances est celui proposé par [Appelt et al., 1995], il s’agit du système FASTUS ayant participé à plusieurs campagnes d’évaluation (MUC-4, MUC-5 et MUC-6). Cet extracteur est fondé sur un ensemble de règles de grammaire développé par des experts et a montré de bonnes performances dans la tâche d’extraction d’événements de MUC-6 69. FASTUS a obtenu une F-mesure de 51% contre 56% pour le meilleur des systèmes de la campagne. Cet outil est fondé sur un formalisme d’expression de règles nommé FASTSPEC visant à faciliter l’adaptation de l’outil à de nouveaux domaines. Du côté des approches statistiques, [Chieu, 2003] développe le système ALICE 70 afin d’extraire des événements par apprentissage statistique. Ceux-ci ont évalué quatre algorithmes de classification issus de la suite Weka sur les données-test de la campagne MUC-4. Le corpus d’apprentissage est constitué des documents sources (des dépêches de presse) et des fiches d’événements associés. Les caractéristiques utilisées intègrent notamment une analyse des dépendances syntaxiques par phrase du corpus ainsi que des 67. Message Understanding Conference 68. Relation and Event Extraction System 69. la tâche concernait les changements de personnel dans la direction d’une entreprise 70. Automated Learning-based Information Content Extraction 48 Copyright c 2013 - CASSIDIAN - All rights reserved2.2. Approches d’extraction chaines de coréférence entre entités nommées. Les meilleurs résultats sont obtenus avec un classifieur à Maximum d’Entropie (ALICE-ME) et celui-ci approche les performances du meilleur des participants de la campagne MUC-4. D’autre part, [Jean-Louis et al., 2012] présente un outil d’extraction d’événements sismiques exploitant des techniques d’analyse du discours et d’analyse de graphes. La reconnaissances des événements s’effectue en trois phases : un découpage des textes selon leur contenu événementiel, la construction d’un graphe des entités reconnues et le remplissage d’un formulaire d’événement par sélection des entités pertinentes dans le graphe. La première phase repose sur un apprentissage statistique par CRF tandis que la seconde est réalisée grâce à un classifieur à Maximum d’Entropie. Le corpus d’apprentissage pour ces deux premières étapes est constitué de dépêches provenant de l’AFP et de Google Actualités pour lesquelles des experts ont manuellement construits les formulaires d’événements. Les caractéristiques pour l’apprentissage (découpage en mots et phrases, détection des ENs, analyse syntaxique, etc.) ont été obtenues de l’analyseur LIMA [Besançon et al., 2010]. Enfin, le remplissage des formulaires d’événement est réalisé par combinaison de plusieurs algorithmes de sélection (PageRank, vote, etc.) afin de choisir la meilleure entité du graphe pour chaque champ du formulaire. Les méthodes d’apprentissage de patrons ou les approches semi-supervisées apparaissent intéressantes comme par exemple le système de [Xu et al., 2006]. Ceux-ci proposent un outil d’extraction de patrons linguistiques par une méthode de "bootstrapping" appliquée à la détection des événements comme des remises de prix ("prize award events"). Cette approche est itérative et faiblement supervisée car elle permet, en partant de quelques exemples d’événements provenant d’une base de données existante, d’apprendre des régularités d’occurrence de ces événements et d’en déduire des patrons d’extraction. Ceux-ci ont ensuite été implémentés sous forme de règles dans une application créée grâce à la plateforme SProUT 71 [Drozdzynski et al., 2004]. Nous pouvons égelement citer le projet TARSQI 72 (respectant la spécification TimeML) qui a donné lieu au développement du système Evita 73. [Saurí et al., 2005] présente succinctement les principes théoriques sur lesquels repose cet outil ainsi que son fonctionnement général. Les auteurs définissent les verbes, noms et adjectifs comme les trois catégories de mots déclencheurs étant les plus porteuses de sens pour la détection d’événements. Ils détaillent par la suite les différentes méthodes d’extraction associées à chaque type de déclencheur et plus particulièrement les caractéristiques textuelles et grammaticales à prendre en compte. Ainsi, pour la détection d’événements portés par un verbe, Evita opère un découpage en syntagmes verbaux et détermine pour chacun sa tête ; puis, vient une phase de tri lexical pour écarter les têtes ne dénotant pas un événement (verbes d’état, etc.) ; l’on tient ensuite compte des traits grammaticaux du verbe tels que la voix, la polarité (positif/négatif), la modalité, etc. ; et une analyse syntaxique de surface vient aider à l’identification des différents participants de l’événement. Pour finir, [Huffman, 1995] propose LIEP 74, un système de découverte de patrons d’extraction dont les résultats sont utilisés par l’extracteur d’événements symbolique ODIE 75. Dans cette approche, on propose à l’utilisateur une interface lui permettant de remplir une fiche d’événement correspondant à une phrase donnée. Ces éléments sont ensuite utilisés pour apprendre par une approche ascendante (voir section 2.2) un ensemble de patrons récurrents qui sont ensuite ajoutés en tant que nouveaux chemins dans le transducteur à états finis de l’outil ODIE. Les auteurs de ce système montrent que LIEP approche les performances d’un système purement symbolique avec une F-mesure de 85% contre 89% pour ODIE. 71. Shallow Processing with Unification and Typed feature structures 72. Temporal Awareness and Reasoning Systems for Question Interpretation 73. Events In Texts Analizer 74. Learning Information Extraction Patterns 75. On-Demand Information Extraction 49 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 2. Extraction automatique d’information 2.3 Plateformes et logiciels pour l’EI Ces années de recherche en EI ont donné lieu comme vu précédemment à de nombreux travaux et, par conséquent, au développement de nombreux outils d’extraction d’information. Afin de faciliter ces développements et leur réutilisation au sein de chaines plus complexes, est apparu un nombre important de ce qu’on pourrait appeler des boites à outils pour l’EI et le TAL plus généralement. Celles-ci partagent une même visée finale, à savoir le traitement automatique des textes, mais se différencient sur plusieurs points. Elles proviennent tout d’abord de milieux différents, soit académique, soit industriel, soit sont issues d’une collaboration entre laboratoire(s) de recherche et entreprise(s) au sein d’un projet commun. De plus, il peut s’agir soit de simples entrepôts d’outils et algorithmes, soit de véritables plateformes d’intégration de modules hétérogènes. Dans ce cas, on pourra constater des choix d’architecture distincts pour la combinaison et l’enchainement de ces différents modules. Par ailleurs, la diversité et la complexité des documents traités constitue également un facteur de variation (différents formats, langues, domaines, structures, etc.). Cette hétérogénéité des contenus se traduit naturellement par différents choix de représentation de l’information, même si le format XML tend à se généraliser. Enfin, ces boites à outils ne donnent pas la même priorité à l’interaction avec l’utilisateur et ne se dotent pas des mêmes moyens de visualisation [Enjalbert, 2008]. Nous présentons ici un rapide tour d’horizon de ces boites à outils, centré sur différentes plateformes et suites logicielles distribuées en open-source et/ou gratuitement. Précisons tout d’abord que cette liste est non-exhaustive et a été constituée, sans ordre préférentiel, au fil de notre état de l’art et de nos travaux. OpenCalais Tout d’abord, la société Thomson Reuters (qui a racheté ClearForest) propose plusieurs services autour de l’extraction d’information regroupés sous le nom OpenCalais 76. Celle-ci a mis en place OpenCalais Web Service, un outil en ligne d’extraction d’entités nommées, relations et évènements. Cet outil ainsi que les divers plugins qui l’accompagnent (Marmoset, Tagaroo, Gnosis, etc.) sont utilisables gratuitement pour usage commercial ou non. Le service d’annotation en ligne permet de traiter des textes en anglais, français et espagnol grâce à une détection automatique de la langue du texte fourni. Il extrait pour toutes ces langues un nombre conséquent de types d’entités nommées (villes, organisations, monnaies, personnes, e-mails, etc.) et attribue également un indice de pertinence/intérêt à chacune des extractions. L’analyse des textes en anglais est plus complète : extraction d’événements et de relations, désambiguïsation d’entités, détection de thème, association automatique de mots-clés ("semantic tags"), etc. Toutes ces annotations peuvent être récupérées au format RDF 77. Enfin, précisons qu’OpenCalais fournit aussi bien des modules fondés sur des techniques linguistiques que des méthodes statistiques ou hybrides. 76. ❤tt♣✿✴✴✇✇✇✳♦♣❡♥❝❛❧❛✐s✳❝♦♠✴ 77. Ressource Description Framework 50 Copyright c 2013 - CASSIDIAN - All rights reserved2.3. Plateformes et logiciels pour l’EI LingPipe LingPipe développé par Alias-i 78 constitue une autre véritable "boîte à outils" pour l’analyse automatique de textes. Divers outils y sont disponibles gratuitement pour la recherche et, parmi ceux-ci, une majorité relèvent plus ou moins directement du domaine de l’extraction d’information. D’une part, des modules de pré-traitement permettent de « préparer » le texte pour la phase d’extraction : analyse morpho-syntaxique, découpage en phrases, désambiguïsation sémantique de mots. D’autre part, LingPipe met à disposition des modules de détection d’entités nommées, de phrases d’intérêt, d’analyse d’opinion et de classification thématique. Ces traitements sont tous réalisés par approche statistique et notamment par l’utilisation de CRF et d’autres modèles d’apprentissage (spécifiques à une langue, un genre de texte ou un type de corpus). OpenNLP Également reconnu, le groupe OpenNLP 79 rassemble un nombre important de projets open-source autour du Traitement Automatique du Langage. Son objectif principal est de promouvoir ces initiatives et de favoriser la communication entre acteurs du domaine pour une meilleure interopérabilité des systèmes. En extraction d’information, nous pouvons retenir les projets NLTK 80, MALLET 81, Weka 82 ou encore FreeLing 83. Le premier correspond à plusieurs modules en Python pouvant servir de base au dé- veloppement de son propre outil d’extraction. Le second projet, MALLET, est un logiciel développé par les étudiants de l’université du Massachussetts Amherst sous la direction d’Andrew McCallum, expert du domaine [McCallum, 2005]. Ce logiciel inclut différents outils pour l’annotation de segments (entités nommées et autres), tous basés sur des techniques statistiques de type CRF, HMM et MEMM 84. Dans la même lignée, Weka est une suite de logiciels gratuits de "machine learning" développé à l’Université de Waikato (Nouvelle-Zélande) et distribués sous licence GNU GPL 85 [Hall et al., 2009]. Enfin, FreeLing [Padró and Stanilovsky, 2012] est une suite d’analyseurs de langage dont des modules de découpage en phrases, de tokenisation, lemmatisation, étiquetage grammatical, analyse syntaxique en dépendance, etc. Ce projet propose notamment une palette d’outils de traitement automatique pour la langue espagnole. GATE GATE est une plateforme open-source Java dédiée à l’ingénierie textuelle [Cunningham et al., 2002]. Créée il y a une vingtaine d’années par les chercheurs de l’université de Sheffield (Royaume-Uni), GATE est largement utilisé par les experts en TAL et dispose d’une grande communauté d’utilisateurs. Cela lui permet de disposer d’un ensemble de solutions d’aide et de support (forum, liste de diffusion, foire aux questions, wiki, tutoriels, etc.). Par ailleurs, les créateurs de GATE propose des formations ainsi que des certifications permettant de faire valoir ses compétences à l’utilisation de cette plateforme. 78. ❤tt♣✿✴✴❛❧✐❛s✲✐✳❝♦♠✴❧✐♥❣♣✐♣❡✴ 79. Open Natural Language Processing, ❤tt♣✿✴✴♦♣❡♥♥❧♣✳s♦✉r❝❡❢♦r❣❡✳♥❡t✴ 80. Natural Language ToolKit, ❤tt♣✿✴✴✇✇✇✳♥❧t❦✳♦r❣✴ 81. Machine Learning for LanguagE Toolkit, ❤tt♣✿✴✴♠❛❧❧❡t✳❝s✳✉♠❛ss✳❡❞✉✴ 82. Waikato Environment for Knowledge Analysis, ❤tt♣✿✴✴✇✇✇✳❝s✳✇❛✐❦❛t♦✳❛❝✳♥③✴♠❧✴✇❡❦❛✴ 83. ❤tt♣✿✴✴♥❧♣✳❧s✐✳✉♣❝✳❡❞✉✴❢r❡❡❧✐♥❣✴ 84. Maximum Entropy Markov Models 85. General Public License 51 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 2. Extraction automatique d’information LinguaStream Par ailleurs, le GREYC 86 développe depuis 2001 la plateforme LinguaStream 87, un environnement intégré orienté vers la pratique expérimentale du TALN. Celui-ci permet un assemblage visuel de modules de traitement hétérogènes pour des applications en EI, RI, veille, résumé automatique, enseignement, etc. Ces enchainements de modules sont représentés sous forme de graphes acycliques et l’ensemble des données traitées est sérialisé en XML. [Widlocher et al., 2006] présente une application (réalisée dans le cadre de DEFT’2006) de segmentation thématique de textes implémentée grâce à la plateforme LinguaStream. Unitex La boite à outils Unitex est principalement développée par Sébastien Paumier à l’Institut Gaspard Monge (Université de Paris-Est Marne-la-Vallée) [Paumier, 2003]. Il s’agit d’une plateforme open-source multilingue pour le traitement en temps réel de grandes quantités de textes en langage naturel. Unitex permet d’appliquer des traitements divers sur les textes tels que le repérage de patrons linguistiques sous forme d’expressions régulières ou d’automates, l’application de lexiques et de tables, etc. Cela y est implémenté par des réseaux de transition récursifs définissables graphiquement. Cet outil propose également la production de concordances ou encore un ensemble d’études statistiques en corpus. Nooj Créateur de la plateforme Intex au LADL 88 (sous la direction du Professeur Maurice Gross), le Professeur Max Silberztein continue ses travaux depuis 2002 en proposant NooJ 89, un environnement de développement dédié au traitement du langage naturel écrit [Silberztein et al., 2012]. Cette suite propose des modules de traitement pour une vingtaine de langues (anglais, français, portugais, arabe, chinois, hébreu, etc.) et gère plus d’une centaine de formats de fichier d’entrée. Comme dans beaucoup de plateformes de ce type, les données y sont manipulées au format XML et enrichies grâce aux annotations fournies par les différents composants appliqués en cascade. Une communauté, en majorité européenne, s’est formée autour de cette plateforme donnant lieu depuis 2005 à une conférence NooJ annuelle réunissant divers travaux réalisés grâce à cet outil ainsi qu’à des tutoriels et ateliers réguliers. Stanford NLP Group et Ontotext Pour finir, mentionnons également les groupes de recherche Stanford NLP Group 90 et Ontotext 91 dont les travaux sont intégrés dans GATE. L’équipe de l’université de Stanford en Californie, a créé différents outils de TAL très utiles pour l’extraction d’information : un analyseur syntaxique probabiliste pour l’anglais, un étiqueteur morpho-syntaxique ainsi qu’un système d’extraction d’entités nommées qui 86. Groupe de Recherche en Informatique, Image, Automatique et Instrumentation de Caen 87. ❤tt♣✿✴✴✇✇✇✳❧✐♥❣✉❛str❡❛♠✳♦r❣ 88. Laboratoire d’Automatique Documentaire et Linguistique - Université de Paris-Est Marne-la-Vallée 89. ❤tt♣✿✴✴✇✇✇✳♥♦♦❥✹♥❧♣✳♥❡t✴ 90. ❤tt♣✿✴✴♥❧♣✳st❛♥❢♦r❞✳❡❞✉✴ 91. ❤tt♣✿✴✴✇✇✇✳♦♥t♦t❡①t✳❝♦♠✴ 52 Copyright c 2013 - CASSIDIAN - All rights reserved2.4. Applications reconnaît les noms de personne, d’organisation et de lieu. Ontotext développe ses activités autour des technologies sémantiques et diffuse gratuitement la plateforme KIM 92 pour un usage non-commercial. Celle-ci propose de créer des liens sémantiques entre documents mais aussi d’extraire les entités nommées, relations et événements d’un texte et de les stocker automatiquement dans une base de données. 2.4 Applications Les applications possibles de l’extraction automatique d’information sont à l’heure actuelle nombreuses et ne cessent de croître avec les avancées de la recherche (en particulier dans le domaine du Web). Dans cet ensemble d’applications, un petit nombre est historique et continue de susciter l’inté- rêt depuis les débuts de l’EI : il s’agit notamment de l’analyse des "news", du domaine biomédical ou encore de la veille économique et stratégique. D’autres usages sont plus récents et coïncident avec l’apparition de nouvelles technologies et des nouveaux besoins utilisateur ou techniques qui en découlent. Nous proposons ici un aperçu (non-exhaustif et général) de quelques cas d’application et des travaux de la littérature associés. Tout d’abord, un grand nombre de travaux s’intéressent à l’utilisation des outils d’EI pour des besoins de veille : celle-ci peut être au service d’une entreprise, d’une entité gouvernementale ou encore d’un particulier souhaitant rester informé sur un sujet donné. Cette veille peut aider à la protection des populations par la prévention des épidémies ([Lejeune et al., 2010], [Grishman et al., 2002a], [Chaudet, 2004]) ou des événements sismiques [Besançon et al., 2011], par exemple. Par l’analyse automatique de différents types de sources d’information (rapports médicaux, dépêches de presse, réseaux sociaux, etc.), l’objectif est d’anticiper autant que possible ce genre de catastrophes et de suivre leur propagation pour assister les forces de secours par exemple. Les gouvernements portent aussi un grand intérêt à l’EI pour automatiser leurs processus de veille stratégique et militaire. [Zanasi, 2009], [Capet et al., 2008], [Tanev et al., 2008] ou encore [Pauna and Guillemin-Lanne, 2010] présentent leurs travaux pour une évaluation et un suivi du risque militaire et/ou civil, national et/ou international. [Hecking, 2003] se concentre sur l’analyse automatique des rapports écrits par les militaires, [Sun et al., 2005] et [Inyaem et al., 2010a] de leur côté s’intéressent à la prévention des actes de terrorisme. Enfin, [Goujon, 2002] présente une extraction automatique des événements appliquée à la crise de 2002 en Côte d’Ivoire. Dans le domaine économique, cette veille vise essentiellement à cerner des communautés de consommateurs (par exemple à partir du contenu des blogs [Chau and Xu, 2012]), à assurer un suivi des technologies et/ou produits d’un secteur donné pour les besoins d’une entreprise [Zhu and Porter, 2002] ou encore à améliorer son service-client par analyse des conversations téléphoniques [Jansche and Abney, 2002]. Pour tous les types de veille mis en œuvre, les acteurs du domaine s’intéressent également à adapter les processus d’EI pour garantir un traitement des informations en temps réel [Piskorski and Atkinson, 2011] [Liu et al., 2008]. Cette "fraicheur" des informations est particulièrement importante pour les analystes financiers et le suivi des évolutions des bourses par exemple [Borsje et al., 2010]. Par ailleurs, les chercheurs en EI se mettent au service d’autres sciences telles que la médecine et la biologie en permettant l’analyse automatique de rapports médicaux pour l’extraction d’interactions entre protéines, gènes, etc. [Rosario and Hearst, 2005] [Bundschus et al., 2008]. Dans un autre domaine d’intérêt public, la Commission Européenne a financé le projet PRONTO pour la détection d’événements dans les réseaux de transport public [Varjola and Löffler, 2010]. Les techniques d’EI sont également 92. Knowledge and Information Management 53 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 2. Extraction automatique d’information exploitées pour aider les acteurs judiciaires avec notamment l’analyse automatique des rapports de police [Chau et al., 2002]. Un autre cas d’application est le traitement automatique des publications scientifiques pour la construction de bases de citations telles que Citeseer [Lawrence et al., 1999]. De plus, comme mentionné en introduction de ce chapitre (voir la section 2.1), les résultats des outils d’extraction peuvent servir à d’autres disciplines de l’IA telles que la recherche d’information [Vlahovic, 2011], les systèmes de questions-réponses [Saurí et al., 2005], la construction des ontologies [Vargas-Vera and Celjuska, 2004] [Piskorski et al., 2007], le résumé automatique de documents [Radev et al., 2001], etc. Enfin, avec la récente démocratisation de l’IA et l’entrée dans les foyers de nouvelles technologies de l’information, beaucoup de recherches en EI concernent des applications dédiées au grand public. Les systèmes de recommandation en ligne en bénéficient [Luberg et al., 2012] [Ittoo et al., 2006], mais aussi les logiciels anti-spam [Jason et al., 2004] ou encore les sites de recherche d’emploi [Califf and Mooney, 2003] [Ciravegna, 2001]. De plus, l’important volume de données récemment accessibles par le biais des réseaux sociaux, des sites de partage, collaboratifs, etc. a ouvert la voie à de nouvelles applications orientées vers le Web et en particulier le Web Sémantique. [Popescu et al., 2011] et [Sayyadi et al., 2009] s’intéressent à l’extraction d’événements dans les flux sociaux (Twitter notamment). [Nishihara et al., 2009] propose un système de détection des expériences personnelles dans les blogs. On peut également exploiter les méta-données fournies par les utilisateurs, comme le fait [Rattenbury et al., 2007] en analysant les "tags" postés sur Flickr pour en extraire des événements et des lieux dans les photos partagées. Pour finir, citons l’encyclopédie collaborative Wikipedia qui est non seulement une ressource précieuse pour le développement des outils d’EI mais qui bénéficie aussi de ces technologies [Chasin, 2010]. 2.5 Évaluation des systèmes d’EI 2.5.1 Campagnes et projets d’évaluation En parallèle des nombreux systèmes d’EI développés ces dernières années (dont certains ont été présentés dans les sections précédentes), la communauté des chercheurs a mis en place un certain nombre de campagnes d’évaluation telles que ACE, MUC, ESTER, CONLL 93, TAC94, etc. Afin de stimuler le développement des techniques d’extraction d’information et de dégager les pistes de recherche les plus prometteuses, ces campagnes d’évaluation sont menées tant au niveau national qu’international. Celles-ci ont pour but de mettre en place un protocole d’évaluation commun permettant aux experts du domaine de mesurer les performances de leurs outils. Les campagnes définissent généralement plusieurs tâches à accomplir telles que l’extraction d’entités nommées, de relations ou encore d’événements, la résolution de coréférence, etc. Le protocole le plus courant est de fournir un corpus d’entraînement et un corpus de test où les éléments à extraire ont été pré-annotés ainsi qu’un ou plusieurs scripts d’évaluation ("scoring"). Le corpus d’entraînement permet de préparer l’outil à la tâche d’extraction pour pouvoir ensuite s’auto-évaluer sur le corpus de test et estimer son score grâce aux scripts fournis. Une fois leurs systèmes préparés à la tâche d’évaluation, les participants sont évalués et classés par les organisateurs de la campagne. Ces évaluations s’accompagnent le plus souvent de publications d’articles dans lesquels ceux-ci décrivent leur outil et les techniques mises en œuvre. Cela 93. Conference on Computational Natural Language Learning, ❤tt♣✿✴✴✐❢❛r♠✳♥❧✴s✐❣♥❧❧✴❝♦♥❧❧✴ 94. Text Analysis Conference, ❤tt♣✿✴✴✇✇✇✳♥✐st✳❣♦✈✴t❛❝✴ 54 Copyright c 2013 - CASSIDIAN - All rights reserved2.5. Évaluation des systèmes d’EI permet de mettre en avant les nouvelles approches et de faire le point sur les performances de celles déjà connues. Dans le domaine de l’extraction d’information, les campagnes MUC restent les pionnières et les plus connues au niveau international. Créées au début des années 1990 par la DARPA 95, elles constituent les premières initiatives pour encourager l’évaluation des systèmes d’extraction et ont fortement contribué à l’essor de ce domaine. À l’origine destinées au domaine militaire, les sept séries d’évaluation menées ont permis de diversifier les applications. Celles-ci se caractérisent par la tâche d’extraction consistant à remplir un formulaire à partir d’un ensemble de documents en langage naturel. Certains jeux de données de ces campagnes sont actuellement mis à disposition gratuitement. La DARPA a également initié le « Machine Reading Program » (MRP) : projet visant à construire un système universel de lecture de texte capable d’extraire automatiquement la connaissance du langage naturel pour la transformer en représentation formelle. Celui-ci est destiné à faire le lien entre le savoir humain et les systèmes de raisonnement nécessitant ce savoir. Il s’agit pour cela de combiner les avancées en TALN et en IA. Par ailleurs, nous pouvons citer le programme ACE (Automatic Content Extraction) qui, sous la direction du NIST 96, mène également des campagnes d’évaluation. Spécialisées dans l’analyse d’articles de presse, celles-ci évaluent l’extraction d’entités nommées et la résolution de co-référence (mentions d’entités nommées). Aujourd’hui, la campagne TAC (Text Analysis Conference) a pris la suite des actions menées dans le cadre du programme ACE. Toujours à l’échelle mondiale, les campagnes CoNLL (Conference on Natural Language Learning) évaluent et font la promotion des méthodes d’extraction par apprentissage. Celles-ci sont classées parmi les meilleures conférences internationales dans le domaine de l’intelligence artificielle. Ce succès est en partie du au fait que ces conférences sont dirigées par l’ACL (Association of Computational Linguistics), la plus réputée des associations de linguistique et informatique. Celle-ci est aussi à l’origine des conférences Senseval/Semeval spécialisées dans l’évaluation des outils de désambiguïsation sémantique, point crucial en extraction d’information. En Europe, l’association ELRA (European Language Ressources Association) a mis en place les conférences LREC (Language Ressources and Evaluation Conference). Lors de celles-ci les différents acteurs en ingénierie linguistique présentent de nouvelles méthodes d’évaluation ainsi que divers outils liés aux ressources linguistiques. De plus, cette association participe à l’évaluation de systèmes divers en fournissant les corpus et données nécessaires. Enfin, il nous faut citer la campagne française ESTER (Évaluation des Systèmes de Transcription Enrichie d’Émissions Radiophoniques) qui, entre autres activités, évalue le repérage d’entités nommées appliqué à des textes issus de transcription de la parole. Les mesures d’évaluation les plus communément utilisées en extraction d’information sont la précision, le rappel et la F-mesure. Ces métriques peuvent être définies ainsi : Précisioni = nombre d’entités correctement étiquetées i nombre d’entités étiquetées i 95. Defense Advanced Research Projects Agency 96. National Institute of Standards and Technology 55 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 2. Extraction automatique d’information Rappeli = nombre d’entités correctement étiquetées i nombre d’entités i F-mesurei = (1 + β 2 ) · (précisioni · rappeli ) (β 2 · précisioni + rappeli ) où β ∈ R+ β est une facteur de pondération permettant de favoriser soit la précision soit le rappel lors du calcul de la F-mesure. La plupart des travaux pondère de façon égale la précision et le rappel, il est donc plus fréquemment utilisé une F1-mesure définie comme suit : F1-mesurei = 2 · précisioni · rappeli précisioni + rappeli Précisons également que ces métriques sont souvent évaluées lors de la conception des approches afin de favoriser soit la précision soit le rappel de celles-ci en fonction de l’application visée. 2.5.2 Performances, atouts et faiblesses des méthodes existantes Bien que le système d’évaluation actuel ne soit pas parfait, les différentes campagnes d’évaluation menées depuis plus de vingt ans permettent de dresser un bilan des performances des outils développés et de comparer les atouts et faiblesses des différentes approches adoptées. Comme nous l’avons exprimé précédemment, les avancées en EI sont disparates, elles varient en fonction de nombreux paramètres tels que l’objet ciblé (sa nature et sa complexité intrinsèque), l’ancienneté de la tâche en EI, le domaine/genre des textes analysés, les techniques employées, etc. Tout cela, rend très difficile une comparaison quantitative des systèmes développés et un bilan qualitatif nous parait plus approprié. Pour ce faire, nous nous inspirons de [Hogenboom et al., 2011] qui propose une évaluation selon quatre critères : la quantité de données annotées nécessaire, le besoin de connaissances externes, la nécessité d’une expertise humaine et l’interprétabilité des résultats. Nous donnons tout de même, à titre indicatif, quelques résultats (en termes de précision, rappel et F-mesure) issus des campagnes d’évaluation présentées ci-dessus. En premier lieu, les systèmes purement linguistiques, bien que très précis, ont pour principales faiblesses leur taux de rappel moindre et leur coût de développement manuel coûteux. Ceux-ci ne nécessitent pas de corpus annoté mais impliquent un fort besoin en expertise humaine et dépendent souvent de connaissances externes (listes de mots, réseaux lexicaux, bases de connaissances, etc.). Ce dernier point se vérifie particulièrement dans le cas des systèmes à base de règles lexico-sémantiques. Un avantage non-négligeable de ces approches reste leur caractère symbolique permettant, sous réserve d’une expertise en TAL, d’appréhender plus facilement leur machinerie interne, de les adapter après analyse des résultats et d’observer dans la foulée l’impact des modifications. Ce cycle d’ingénierie est devenu plus aisé avec l’apparition des boites à outils pour l’EI (voir la section 2.3) dont certaines proposent des modules d’évaluation en temps réel de la chaine d’extraction. A titre d’exemple, le meilleur participant de la dernière campagne MUC pour l’extraction des événements (tâche Scenario Template de MUC-7) est un système symbolique et obtient les scores suivants : 65% de précision, 42% de rappel et 51% de F-mesure. Sur la tâche de REN, [Appelt, 1999] rapporte un taux d’erreur de 30% inférieur pour les approches symboliques comparées aux méthodes statistiques entièrement supervisées (respectivement environ 96% et 56 Copyright c 2013 - CASSIDIAN - All rights reserved2.6. Problèmes ouverts 93% de F-mesure). Les systèmes à base de connaissances sont également les plus performants pour la résolution de coréférence avec des résultats allant jusqu’à 63% de rappel et 72% de précision. De leur côté, les approches statistiques permettent de couvrir de nombreux contextes d’apparition (leur rappel est généralement plus élevé) mais nécessitent une grande quantité de données annotées pour l’apprentissage du modèle sous-jacent. Cela constitue une réelle contrainte car les corpus d’apprentissage sont inégalement disponibles selon la langue ciblée, le domaine/genre des textes, etc. Quelques travaux présentés plus haut s’intéressent à cette problématique en diminuant la supervision nécessaire dans le développement de tels systèmes : c’est le cas du "clustering" ou des techniques de "bootstrapping". En contrepartie, l’apprentissage statistique nécessite peu ou pas d’expertise humaine et des ressources externes limitées. Toutefois, il reste l’inconvénient que ces approches produisent des modèles de type "boite noire" qui restent à l’heure actuelle difficilement accessibles et interprétables. Enfin, les méthodes statistiques ont montré leur efficacité tout particulièrement en contexte bruité, dans le traitement des transcriptions de l’oral, par exemple. La meilleure approche statistique de la campagne CoNLL obtient une F-mesure de 91% en reconnaissance d’entités nommées. Les méthodes d’extraction par apprentissage statistique testées lors du challenge PASCAL 2005 atteignent une F-mesure de 75% pour la tâche d’extraction de relations. Pour finir, nous avons vu l’intérêt récent pour le développement d’approches hybrides afin d’exploiter les points forts des méthodes précédentes. Même si ce type d’approche n’est pas parvenu pour le moment à éviter tous les écueils pointés ci-dessus, la combinaison des techniques symboliques et statistiques présente plusieurs atouts. L’apprentissage symbolique permet, par exemple, de diminuer l’effort de développement des règles d’un système-expert classique tout en augmentant le rappel de ces approches. On peut également opter pour une construction automatique des ressources linguistiques externes dont dé- pendent beaucoup des outils développés. Après analyse des erreurs d’extraction par méthode statistique, il est aussi intéressant de compléter le système par un ensemble de règles pour gérer les cas statistiquement peu fréquents. L’outil LP2 (ayant remporté le challenge PASCAL 2005) implémente une méthode de déduction de règles d’extraction et obtient une F-mesure de près de 90% pour l’extraction de relations. Par ailleurs, dans le domaine médical, le système CRYSTAL montre une précision de 80% et un rappel de 75%. Toutes approches confondues, les meilleurs systèmes en extraction de relations obtiennent une Fmesure d’environ 75% sur des données de la campagne ACE (ce score passe à 40% lorsque l’annotation des ENs est automatisée). Pour la tâche de remplissage de formulaires, les systèmes développés montent à une F-mesure de 60% (une annotation humaine obtenant 80%). 2.6 Problèmes ouverts Pour conclure cet état de l’art sur l’extraction d’information, nous souhaitons faire le point sur les différents problèmes et challenges restant à résoudre. En effet, même si des progrès considérables ont été accomplis depuis les débuts de l’EI, un certain nombre de problèmes constituent toujours un réel frein à la commercialisation des systèmes existants [Piskorski and Yangarber, 2013]. Tout d’abord, la plupart des solutions sont développées pour un domaine ou un genre de texte particulier et voient leurs performances décroître rapidement face à des textes différents de ce point de vue. Le même problème survient lorsque les outils sont développés à partir de corpus très homogènes (sur la 57 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 2. Extraction automatique d’information forme ou le contenu) et que ceux-ci sont réutilisés sur d’autres corpus de nature plus variée. Ces limites concernent à la fois les méthodes symboliques et statistiques et nécessitent une ré-adaptation constante des techniques. Il a été montré que les performances d’un système d’extraction peuvent varier de 20% à 40% lors du passage à un nouveau domaine/genre de texte [Nadeau and Sekine, 2007]. Des travaux tels que [Chiticariu et al., 2010] ou [Daumé et al., 2010] s’attachent à faciliter la portabilité des outils d’EI d’un domaine à un autre tout en maintenant de bonnes performances. Un autre enjeu est la réduction de l’effort de développement des systèmes, qu’ils soient symboliques ou statistiques. Outre leurs performances, ce point déterminera la commercialisation à grande échelle de ces outils. Du côté des approches à base de règles, cela est abordé par les travaux en apprentissage symbolique [Cellier and Charnois, 2010] tandis que pour réduire la quantité de données annotées nécessaires aux systèmes statistiques, les chercheurs se tournent vers des techniques comme l’apprentissage dit actif ("active learning") [Culotta et al., 2006] [Thompson et al., 1999]. Plus récemment, une solution prometteuse s’offre aux développeurs de systèmes supervisés et semi-supervisés, il s’agit du crowdsourcing : cette nouvelle pratique consiste à mettre à contribution les internautes pour créer du contenu et constitue un bon moyen pour la création de corpus annotés par exemple [Lofi et al., 2012]. Par ailleurs, on s’intéresse à adapter les méthodes d’extraction actuelles à une classification plus fine des entités nommées (villes, ONG, missiles, etc.) [Sekine et al., 2002] [Fleischman and Hovy, 2002]. En effet, la REN telle qu’elle était étudiée lors des premières campagnes d’évaluation atteint aujourd’hui des performances quasi-égales à celles d’un annotateur humain et ne répond que partiellement au besoin réel des utilisateurs finaux. Au sujet de l’évaluation des technologies, nous pouvons souligner, d’une part, le peu de discussions dans la communauté de l’EI au sujet des métriques d’évaluation. En effet, ces métriques proviennent directement de l’évaluation en recherche d’information et s’avèrent, dans certains cas, peu adaptées à l’évaluation des systèmes d’extraction. [Lavelli et al., 2004] propose un résumé critique des méthodologies d’évaluation mises en œuvre depuis les débuts de l’EI. D’autre part, nous pouvons nous demander si les meilleurs résultats obtenus depuis quelques années en EI sont directement issus de l’amélioration des technologies ou s’il s’agit plutôt d’une simplification générale des tâches d’extraction. Un dernier défi provient directement du récent engouement pour le Web Sémantique : il s’agit de tisser des liens entre les communautés de l’extraction d’information et de l’ingénierie des connaissances afin de "sémantiser" les informations extraites. Suivant l’objectif premier du Web Sémantique et du Web de données — favoriser l’émergence de nouvelles connaissances en liant les informations aux connaissances déjà présentes sur la toile — certains travaux s’attèlent à la problématique de création de liens sémantiques entre la sortie des extracteurs et les bases de connaissance existantes (notamment grâce au nommage unique par URI dans les données au format RDF). [Mihalcea and Csomai, 2007] [Ratinov et al., 2011] [Milne and Witten, 2008] sont des exemples de travaux de ce type dont le but est de lier les informations extraites à des concepts Wikipedia. Nous reviendrons plus amplement sur ces approches au chapitre 3.1.2. 2.7 Conclusions La réalisation de cet état de l’art sur l’extraction d’information a révélé un domaine de recherche très étudié étant donné sa relative jeunesse : nous avons pu recenser un nombre important d’approches, 58 Copyright c 2013 - CASSIDIAN - All rights reserved2.7. Conclusions d’applications possibles, de logiciels et plateformes développés ainsi que de campagnes et projets d’évaluation menés jusqu’à nos jours. Les méthodes développées sont historiquement réparties en deux catégories : les symboliques et les statistiques. Les premières, développées manuellement par des experts de la langue, s’avèrent globalement plus précises, tandis que les secondes réalisent un apprentissage sur une grande quantité de données présentent généralement un fort taux de rappel. Parallèlement à cela, nous avons constaté une certaine complémentarité des approches existantes (voir la section 2.5.2) non seulement en termes de précision et rappel de façon générale mais également du point de vue des types d’entité ciblés, du genre textuel, du domaine d’application, etc. Il nous parait en conséquence pertinent de proposer un système d’extraction fondé sur la combinaison de plusieurs approches existantes afin de tirer partie de leurs différentes forces. Pour ce faire, les approches par apprentissage symbolique nous paraissent intéressantes car elles s’avèrent faiblement supervisées et plus flexible que d’autres approches statistiques. Enfin, ce tour d’horizon nous a permis de comparer différents outils et logiciels pour la mise en œuvre de ces approches ainsi que différents jeu de données potentiellement adaptés à l’évaluation de nos travaux. 59 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 2. Extraction automatique d’information 60 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 3 Capitalisation des connaissances Sommaire 3.1 Fusion de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 3.1.1 Réconciliation de données . . . . . . . . . . . . . . . . . . . . . . . . . . 63 3.1.2 Web de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 3.1.3 Similarité entre données . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 3.2 Capitalisation appliquée aux événements . . . . . . . . . . . . . . . . . . . . . 66 3.3 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 61 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 3. Capitalisation des connaissances Lorsque la quantité de documents disponibles dépasse un certain seuil, la problématique essentielle devient d’aider les analystes à analyser cette masse de données et à identifier les informations d’inté- rêt sans avoir à parcourir et synthétiser manuellement l’ensemble des documents. Dans ce contexte, les outils d’EI abordés en chapitre 2 se trouvent limités : en effet, la plupart réalise une analyse de l’information parcellaire, mono-document, mono-genre et mono-langue. De plus, comme nous l’avons montré, ces systèmes sont encore, à l’heure actuelle, imparfaits et, même si les progrès dans ce sens ont été signi- ficatifs depuis des années, les erreurs d’analyse ne sont pas rares. Face à cela, il devient de plus en plus nécessaire d’adopter un point de vue global et de concevoir un système de capitalisation des connaissances permettant à la fois d’extraire les informations d’intérêt à partir d’une masse de documents mais également de valoriser les résultats des extracteurs en assurant leur cohérence (éliminer les redondances, contradictions, créer des liens entres les informations, etc.) [Ji, 2010]. Cette problématique, relativement nouvelle, ne bénéficie pas encore d’un intérêt comparable aux deux premiers axes (chapitres 1 et 2) mais elle est l’objet de recherches dans divers domaines tels que la fusion de données, la réconciliation et le nettoyage de données, le Linked Data, la résolution de coréférence, la détection de similarité entre données, etc. Nous présentons dans ce chapitre quelques-unes des méthodes développées explorant différents angles d’un même axe de recherche, à savoir la capitalisation globale et automatisée des connaissances. 3.1 Fusion de données La fusion de données a fait ses débuts aux États-Unis dans les années 70 et a été beaucoup étudiée jusqu’à nos jours dans des domaines divers tels que les applications militaires, de robotique, de transport ou encore en traitement d’images. L’objectif principal de cette discipline est d’optimiser l’acquisition de connaissances en combinant un ensemble d’informations (souvent imparfaites et hétérogènes) provenant de multiples sources plutôt que de les considérer chacune individuellement. Selon l’application, la fusion de données peut servir, d’une part, à reconstituer une situation le plus fidèlement possible à la réalité ou, d’autre part, à améliorer le processus de prise de décision [Desodt-Lebrun, 1996]. Parallèlement aux données à fusionner, la plupart des méthodes de fusion emploie des informations supplémentaires guidant la combinaison. Celles-ci peuvent provenir des données elles-mêmes ou de sources externes et sont par conséquent potentiellement exprimées dans des formalismes distincts. On distingue généralement plusieurs niveaux de fusion selon le type des informations traitées. Nous retiendrons la distinction principale entre la fusion dite numérique manipulant des informations de bas niveau (provenant essentiellement de capteurs) [Bloch, 2005] et la fusion dite symbolique dédiée aux informations de plus haut niveau. C’est dans le cadre de ce second type de fusion (symbolique) qu’apparaissent les travaux introduisant des techniques issues de l’intelligence artificielle et principalement ce que l’on nomme les systèmes à base de connaissance. Ceux-ci sont fondés, d’une part, sur une base de connaissances contenant l’expertise du domaine (les faits ou assertions connus) et, d’autre part, un moteur d’inférence permettant de déduire de nouvelles connaissances à partir de l’existant. Les systèmes à base de connaissance peuvent impliquer différents types de traitement sur les données : les raisonnements temporel et spatial, les déductions et inductions logiques, l’apprentissage automatique, diverses techniques de traitement automatique du langage, etc. La fusion symbolique est souvent choisie pour le traitement des données textuelles et trouve de nombreuses applications dans les systèmes automatiques nécessitant une interaction avec l’être humain. 62 Copyright c 2013 - CASSIDIAN - All rights reserved3.1. Fusion de données Alors que beaucoup de recherches ont été menées dans le cadre de la fusion de données numériques, l’extraction automatique d’information apparait comme une perspective nouvelle permettant d’appliquer ces techniques à un autre type de données et dans un contexte particulièrement incertain et bruité. Ce besoin est fondé sur une constatation principale qui s’avère particulièrement vraie dans le contexte de la veille en sources ouvertes : la même information est rapportée de nombreuses fois par des sources différentes et sous diverses formes. Cela ce traduit notamment par l’utilisation de divers vocabulaires et conventions pour exprimer les mêmes données, des informations plus ou moins à jour et complètes selon les sources, des points de vue différents sur les faits, etc. Dans les sections suivantes, nous abordons plusieurs axes de recherche traitant de cette problématique, à savoir la réconciliation des données, le Web de données et la détection de similarité entre données, puis nous nous centrerons sur l’application des méthodes de capitalisation de connaissances à la reconnaissance des événements. 3.1.1 Réconciliation de données Le réconciliation de données est abordée dans la littérature sous de multiples dénominations, provenant de différentes communautés scientifiques et mettant l’accent sur un aspect particulier de cette problématique : des travaux comme ceux de [Winkler et al., 2006] parlent de record linkage (littéralement traduit par "liaison d’enregistrements ou d’entrées"), on trouve également les termes d’appariement d’objets (object matching), réconciliation de référence [Saïs et al., 2009], duplicate record detection (détection de doublons) [Elmagarmid et al., 2007], désambiguïsation d’entités ou encore résolution de co-référence entre entités [Bhattacharya and Getoor, 2007]. Les premiers sont plutôt issus de la communauté des bases de données, tandis que ces derniers sont généralement employés par les chercheurs en intelligence artificielle (TAL, ingénierie des connaissances, Web sémantique, etc.). Le problème de la réconciliation de données a fait ses débuts dans les années 60 avec les travaux de [Newcombe et al., 1959] en génétique puis avec ceux de [Fellegi and Sunter, 1969] pour le traitement de duplicats dans des fichiers démographiques. La capacité à désambiguïser des dénominations polysé- miques ou d’inférer que deux formes de surface distinctes réfèrent à la même entité est cruciale pour la gestion des bases de données et de connaissances. La méthode la plus simple (mais aussi la moins efficace) pour réconcilier des données est de comparer uniquement leurs représentations textuelles. Les premiers travaux dans ce sens réalisent une réconciliation de référence par paires de mentions et fondée sur la représentation de leurs contextes linguistiques en vecteurs de caractéristiques. Différentes mesures de similarité (voir la section 3.1.3) sont ensuite estimées entre ces vecteurs pour les combiner de fa- çon linéaire par moyenne pondérée, par exemple [Dey et al., 1998]. Plus récemment, d’autres travaux proposent un appariement des descriptions de données plus générique mais toujours basé sur des comparaisons locales [Benjelloun et al., 2006] ou suivent une approche globale exploitant les dépendances existant entre les réconciliations [Dong et al., 2005]. Enfin, [Saïs et al., 2009] propose une approche de réconciliation de référence à base de connaissances et non-supervisée qui combine une méthode logique et une technique numérique. Ces travaux permettent d’exploiter la sémantique exprimée par les données et par leur structure par application d’un ensemble d’heuristiques. Dans le domaine du traitement de données textuelles, lorsque cette tâche est réalisée sans liaison à une base de connaissances externe, elle est souvent appelée résolution de co-référence : les mentions d’entités provenant soit d’un même document soit de plusieurs sont regroupées, chaque groupe référant 63 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 3. Capitalisation des connaissances à une seule et même entité réelle. La tâche de résolution de co-référence sur un ensemble de documents a été adressée par plusieurs chercheurs en commençant par [Bagga and Baldwin, 1999]. Ceux-ci se sont attelés au problème de la co-référence inter-documents en comparant, pour chaque paire d’entités dans deux documents distincts, les vecteurs de mots construits à partir de toutes les phrases contenant les mentions des deux entités. Pour aller plus loin, d’autres approches utilisent des modèles probabilistes [Verykios and Elmagarmid, 1999] mais ceux-ci nécessitent une grande quantité de données annotées pour leur apprentissage. [Wacholder et al., 1997] a développé Nominator l’un des premiers systèmes de REN et de co-référence entre entités fondé sur des mesures de similarité entre contextes d’occurrence. Par ailleurs, un ensemble de travaux récents proposent de représenter l’information extraite de plusieurs documents sous la forme d’un réseau [Ji et al., 2009] où les entités d’intérêt sont vues comme les feuilles d’un graphe et peuvent être liées entre elles par différents types de relations statiques. Ces différentes études visent à regrouper toutes les mentions d’une même entité au sein d’une collection de textes. Toutefois, la construction d’une chaine de co-référence entre entités ne suffit pas à la capitalisation des connaissances car il reste nécessaire de rattacher cette chaine à une entité du monde réel. Il s’agit d’une tâche complexe et il s’avère parfois difficile, même pour un lecteur humain, de dé- terminer à quel objet il est fait référence dans un texte. Dans la plupart des cas, celui-ci identifie la référence d’une entité grâce à des indices issus de son contexte textuel mais aussi et surtout en exploitant l’ensemble du savoir qu’il a déjà acquis par des expériences passées. 3.1.2 Web de données Avec l’essor du Web sémantique de nombreuses recherches proposent d’aller plus loin dans la réconciliation de données et de lier les connaissances entre elles pour créer un Web de données ou Linked Open Data (LOD). Ce liage d’entités est défini comme l’appariement d’une mention textuelle d’une entité et d’une entrée définie dans une base de connaissances. On distingue 3 défis à dépasser pour cette tâche [Dredze et al., 2010] : – Les variations de forme : une seule et même entité est souvent mentionnée sous diverses formes textuelles telles que des abréviations (JFK pour John Fitzgerald Kennedy), des expressions raccourcies (Obama pour Barack Obama), des orthographes alternatives (Osama, Ussamah ou encore Oussama pour désigner l’ancien dirigeant d’Al-Qaïda) et des alias/pseudonymes (Big Apple pour la ville de New York). – Les ambiguïtés référentielles : une seule et même forme de surface peut correspondre à plusieurs entrées dans une base de connaissances. En effet, de nombreux noms d’entités sont polysémiques (Paris est une ville en France mais aussi au Texas). – L’absence de référent : il peut arriver, particulièrement lorsque la quantité de documents traités est conséquente, que la ou les base(s) de connaissances servant de référentiel ne contiennent pas d’entrée pour une ou plusieurs des entités repérées dans les textes (par exemple, le tout nouveau nom donné par les spécialistes à une catastrophe naturelle). De par sa popularité et son exhaustivité, la base de connaissances Wikipédia a largement été utilisée comme base de référence pour le liage de données : ce cas particulier a même reçu le nom de Wikification. Etant donné une chaine de caractères identifiée dans un texte, l’objectif est de déterminer la page Wikipédia à laquelle cette chaine fait référence. Par exemple, pour la phrase suivante "Votre avion dé- collera de JFK", un système de Wification retournera l’identifiant ❤tt♣✿✴✴❢r✳✇✐❦✐♣❡❞✐❛✳♦r❣✴✇✐❦✐✴ 64 Copyright c 2013 - CASSIDIAN - All rights reserved3.1. Fusion de données ❆✪❈✸✪❆✾r♦♣♦rt❴✐♥t❡r♥❛t✐♦♥❛❧❴❏♦❤♥✲❋✳✲❑❡♥♥❡❞②, correspondant à l’aéroport de New York et non la page du 35ème président des États-Unis, par exemple. Les études existantes sur la Wikification diffèrent en fonction des types de corpus traités et des expressions qu’elles cherchent à lier. Par exemple, certains travaux se focalisent sur la Wikification des entités nommées alors que d’autres visent toutes les expressions d’intérêt en cherchant à reproduire un équivalent de la structure de liens de Wikipédia pour un ensemble de textes donné. Le système Wikifier [Milne and Witten, 2008], par exemple, est fondé sur une approche utilisant les liens entre les articles de Wikipédia en tant que données d’apprentissage. En effet, les liens entre les pages de cette base étant créés manuellement par les éditeurs, ils constituent des données d’apprentissage très sûres pour réaliser des choix de désambiguïsation. Par ailleurs, le prototype LODifier [Augenstein et al., 2012] vise à convertir des textes en langage naturel de tout domaine en données liées. Cette approche incorpore plusieurs méthodes de TAL : les entités nommées sont repérées par un outil de REN, des relations normalisées sont extraites par une analyse sémantique profonde des textes et une méthode de désambiguisation sémantique (Word Sense Disambiguation en anglais) permet de traiter les cas de polysémie. L’outil Wikifier y est utilisé pour améliorer la couverture de la REN mais également pour obtenir des liens vers le Web de données grâce aux identifiants DBPedia proposés. Le sens d’un document est finalement consolidé en un graphe RDF dont les noeuds sont connectés à des bases à large couverture du LOD telles que DBPedia et WordNet. Contrairement aux approches précédentes, les travaux de [Dredze et al., 2010] sont facilement adaptables à d’autres bases de connaissances que Wikipédia. Cette approche implémente un apprentissage supervisé fondé sur un ensemble exhaustif de caractéristiques textuelles et s’avère particulièrement efficace dans les cas d’absence de référent. Pour finir, citons l’initiative NLP2RDF 97 qui, également dans l’objectif de créer le Web de données, propose le format d’échange unifié NIF (NLP Interchange Format) afin de favoriser l’interopérabilité des méthodes et systèmes de TAL et l’exploitation de leurs résultats au sein du LOD (via le langage RDF notamment). 3.1.3 Similarité entre données Comme entrevu dans les sections précédentes, les recherches menées en réconciliation de données (au sens large) vont de paire, dans la littérature, avec les travaux conduits autour des calculs de similarité entre ces données. La multitude des calculs de similarité existants faisant que nous ne pourrons les parcourir de façon exhaustive ici, nous choisissons de les présenter par catégories et ce en faisant référence à des états de l’art existants, spécialisés sur cette problématique. Nous avons retenu deux d’entre eux très complets à savoir [Elmagarmid et al., 2007] et [Bilenko et al., 2003]. Les approches de calcul de similarité procèdent généralement en deux étapes : une phase dite de préparation des données suivie d’une phase de fusion des champs référant à une même entité. En effet, hétérogènes du point de vue de leur fond et de leur forme, les données manipulées nécessitent d’être pré-traitées dans le but de les stocker de façon la plus uniforme possible dans les bases de données. Cela consiste généralement à réduire au maximum leur diversité structurelle en les convertissant dans un format commun et normalisé. Vient, dans un second temps, l’étape de comparaison des données entre elles et d’estimation de leur similarité. Une grande quantité de méthodes ont été proposé pour ce faire : celles-ci varient sur plusieurs critères (type de données visé, niveau de comparaison, etc.) qui donnent 97. ❤tt♣✿✴✴♥❧♣✷r❞❢✳♦r❣✴❛❜♦✉t 65 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 3. Capitalisation des connaissances à des catégorisations différentes. [Elmagarmid et al., 2007] distingue les mesures de similarité au niveau caractère (distance d’édition, affine gap distance, distance de Smith-Waterman, distance de Jaro, Q-Grams) et les métriques basées sur les tokens (chaines atomiques, WHIRL, Q-Grams avec TF.IDF). [Bilenko et al., 2003] différencie les mesures statiques (distance d’édition, métrique de Jaro et ses variantes, distances basées sur les tokens et hybrides) de celles à base d’apprentissage (classifieurs SVM entrainés avec des vecteurs de caractéristiques, affine gap distance, modèles d’apprentissage avec distance de Levenstein). Pour finir, nous pouvons citer les recherches de [Moreau et al., 2008] définissant un modèle générique en vue de faciliter la combinaison de différentes mesures de similarité au sein d’un même système. 3.2 Capitalisation appliquée aux événements Selon [Quine, 1985], deux mentions d’événement co-réfèrent si elles partagent les mêmes propriétés et participants. Contrairement à la co-référence entre entités dites simples, celle entre événements s’avère plus complexe principalement car les mentions d’événements présentent des structures linguistiques plus riches et variées que les mentions d’entités simples. De plus, le premier type de tâche est réalisé au niveau du mot ou du groupe de mots alors que la résolution de co-référence entre événements doit s’effectuer à un niveau plus élevé (phrase, discours). Une partie des approches existantes pour répondre à ce problème repose sur des méthodes d’apprentissage supervisées explorant diverses caractéristiques linguistiques des textes [Humphreys et al., 1997] [Bagga and Baldwin, 1999] [Naughton et al., 2006]. [Lee et al., 2012], par exemple, propose une approche globale par apprentissage pour la résolution de co-référence, réalisée de façon conjointe entre entités et événements, au sein d’un seul ou de plusieurs documents. Celle-ci est fondée sur une méthode itérative de regroupement exploitant un modèle de régression linéaire appris sur ces données. Toutefois, la résolution de co-référence entre événements impliquant d’explorer une grande quantité de caractéristiques linguistiques, annoter un corpus d’apprentissage pour cette tâche requiert un effort de développement manuel important. De plus, étant donné que ces modèles reposent sur des décisions locales d’appariement, ils ne peuvent généralement pas capturer des relations de co-référence au niveau d’un sujet défini ou sur une collection de plusieurs documents. En réponse à cela, sont créés des systèmes comme Resolver [Yates and Etzioni, 2009] qui permet d’agréger des faits redondants extraits (par l’outil d’extraction d’information TextRunner) grâce à un modèle non-supervisé estimant la probabilité qu’une paire de mentions coréfèrent en fonction de leur contexte d’apparition (exprimé sous forme de n-tuples). Par ailleurs, [Chen and Ji, 2009] propose de représenter les co-références entre événements par un graphe pondéré non-orienté où les nœuds représentent les mentions d’événement et les poids des arêtes correspondent aux scores de co-référence entre deux des mentions. La résolution de co-référence est ensuite réalisée comme un problème de clustering spectral du graphe mais le problème le plus délicat reste l’estimation des similarités en elles-mêmes. Il nous faut noter enfin les travaux de [Khrouf and Troncy, 2012] explorant la problématique de la réconciliation des événements dans le Web de données. En effet, partant du constat que le nuage LOD contient un certain nombre de silos d’événements possédant leurs propres modèles de données, ceux-ci proposent d’aligner cet ensemble de descriptions d’événements grâce à diverses mesures de similarité et de les représenter avec un modèle commun (l’ontologie LODE présentée en section 1.3.1.2). 66 Copyright c 2013 - CASSIDIAN - All rights reservedPour finir, concernant l’évaluation de cette problématique, nous pouvons mentionner la campagne d’évaluation ACE (présentée en section 2.5.1) mettant à disposition des données d’évaluation pour la tâche Event Detection and Recognition (VDR). Toutefois, son utilisation s’avère limitée car cette ressource ne contient que des annotations de co-référence intra-documents et pour un nombre restreint de types d’événements (Life, Movement, Transaction, Business, Conflict, Contact, Personnel and Justice). 3.3 Conclusions La réalisation de cet état de l’art a mis en exergue une suite logique à nos travaux sur l’extraction automatique d’information, à savoir la problématique du passage du texte à la connaissance proprement dite. Comme nous avons pu le voir, celle-ci a donné lieu à diverses recherches au sein de plusieurs communautés de l’IA, chacune d’elles manipulant sa propre terminologie adaptée à ses propres besoins. Ses divergences de vocabulaire n’empêchent pas de voir la place importante réservée à la capitalisation des connaissances au sein des recherches actuelles que ce soit en fusion de données, extraction d’information ou Web sémantique. Certains de ces travaux nous paraissent convenir à nos objectifs tels que [Chen and Ji, 2009] avec leur représentation en graphe de l’ensemble des connaissances (bien adaptée aux travaux dans le cadre du Web sémantique et du WebLab notamment), [Khrouf and Troncy, 2012] pour leur approche globale autour de plusieurs bases de connaissances et enfin, les différentes similarités entre données qui peuvent permettre de réconcilier des extractions. Les enseignements tirés de ce tour d’horizon ont été exploités lors de l’élaboration de notre approche d’agrégation des événements (voir le chapitre 6). Ce chapitre clôture notre partie état de l’art sur les différents domaines de recherche abordés par cette thèse. 67 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 3. Capitalisation des connaissances 68 Copyright c 2013 - CASSIDIAN - All rights reservedDeuxième partie Contributions de la thèse 69 Copyright c 2013 - CASSIDIAN - All rights reservedIntroduction Cette seconde partie présente les contributions réalisées durant cette thèse en réponse à notre problé- matique de recherche et de façon adaptée aux conclusions de l’état de l’art réalisé. Nous y proposons, dans le chapitre 4 Modélisation des connaissances du domaine, notre première contribution : un modèle de représentation des connaissances conçu en accord avec les besoins de notre cadre applicatif (le ROSO et le Media mining) et avec les observations faites au chapitre 1 (sur les modèles et approches existantes). Cette première proposition comprend, d’une part, une modélisation des événements en plusieurs dimensions et, d’autre part, une implémentation de ce modèle au sein d’une ontologie de domaine, nommée WOOKIE, élaborée durant nos recherches. Dans un second chapitre (5 Extraction automatique des événements), les contributions liées à notre axe de recherche Extraction d’information seront exposées. Nous commencerons par la conception d’une approche de reconnaissance d’entités nommées pour l’anglais et le français et implémentée grâce à la plateforme GATE. Puis, le cœur du chapitre sera dédié à l’élaboration d’une approche mixte pour l’extraction automatique des événements dans les textes selon le modèle de connaissances défini auparavant. Celle-ci est fondée sur deux techniques actuelles issue de la littérature en extraction d’information : une première méthode symbolique à base de règles linguistiques contextuelles et une seconde fondée sur un apprentissage de patrons d’extraction par fouille de motifs séquentiels fréquents. L’ensemble des méthodes exposées seront accompagnées d’exemples tirés de données réelles afin de faciliter leur compréhension. Enfin, le dernier chapitre de cette partie (6 Agrégation sémantique des événements) sera centré sur un processus d’agrégation sémantique des événements destiné à assurer la création d’un ensemble de connaissances cohérent et d’intérêt pour l’utilisateur. Cela sera réalisé en différentes phases (conformément aux observations faites durant l’état de l’art) : une première étape de normalisation des différentes extractions, suivie d’une approche permettant d’estimer une similarité sémantique multi-niveaux entre événements et un processus d’agrégation sémantique fondé sur une représentation en graphe des connaissances. 71 Copyright c 2013 - CASSIDIAN - All rights reservedIntroduction 72 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 4 Modélisation des connaissances du domaine Sommaire 4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 4.2 Notre modèle d’événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 4.2.1 La dimension conceptuelle . . . . . . . . . . . . . . . . . . . . . . . . . 75 4.2.2 La dimension temporelle . . . . . . . . . . . . . . . . . . . . . . . . . . 76 4.2.3 La dimension spatiale . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 4.2.4 La dimension agentive . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 4.3 WOOKIE : une ontologie dédiée au ROSO . . . . . . . . . . . . . . . . . . . 78 4.4 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 73 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 4. Modélisation des connaissances du domaine 4.1 Introduction Ce chapitre détaille la première contribution proposée durant nos travaux de thèse : une modélisation des événements ainsi qu’une ontologie de domaine nommée WOOKIE. Celles-ci ont été élaborées en fonction des conclusions de notre état de l’art et de façon adaptée à notre problématique, à savoir l’extraction automatique des événements dans le cadre du ROSO. Nous proposons, tout d’abord, le modèle d’événement défini pour servir de guide à l’ensemble de notre processus de capitalisation des connaissances. Un événement est représenté selon quatre dimensions (conceptuelle, temporelle, spatiale et agentive) pour chacune desquelles nous avons défini des propriétés bien spécifiques. Enfin, nous présentons l’élaboration de notre ontologie de domaine au regard de la littérature et en y intégrant notre modélisation des événements. Nous terminons ce chapitre par un bilan des forces et faiblesses de notre contribution. 4.2 Notre modèle d’événement Nous prenons pour point de départ la définition de Krieg-Planque ("un événement est une occurrence perçue comme signifiante dans un certain cadre") qui apparaît bien adaptée à nos travaux. Cette définition restant très théorique, il convient d’expliciter comment un événement est exprimé au sein des dépêches de presse (celles de l’AFP 98, par exemple). Après observation de plusieurs dépêches, celles-ci semblent généralement être centrées sur un événement principal, celui-ci étant le plus souvent résumé dans le titre et explicité tout au long de l’article (en faisant parfois référence à d’autres événements). Cette description de l’événement tout au long de la dépêche, est constituée de plusieurs sous-événements ("mentions d’événement" dans le modèle ACE) qui contribuent à la "mise en intrigue" mentionnée auparavant. Ces mentions d’événements sont généralement composées d’un terme déclencheur (dit aussi "nom d’événement" ou "ancre") associé à une ou plusieurs autres entités d’intérêt ("arguments" dans le modèle ACE) telles que des circonstants spatio-temporels (date et lieu de l’événement) et des participants (acteurs, auxiliaires, instruments, etc.). L’objectif de nos travaux est d’extraire automatiquement les mentions d’événement pertinentes pour notre application pour ensuite agréger celles qui réfèrent à un seul et même événement dans la réalité. Afin de proposer une définition formelle des événements, nous nous fondons également sur les travaux de [Saval et al., 2009] décrivant une extension sémantique pour la modélisation d’événements de type catastrophes naturelles. Les auteurs définissent un événement E comme la combinaison d’une propriété sémantique S, d’un intervalle temporel T et d’une entité spatiale SP. Nous adaptons cette modé- lisation à notre problématique en y ajoutant une quatrième dimension A pour représenter les participants impliqués dans un événement et leurs rôles respectifs. Par conséquent, un événement est représenté comme suit : Définition 1. Un événement E est modélisé comme E =< S, T, SP, A > où la propriété sémantique S est le type de l’événement (que nous appellerons dimension conceptuelle), l’intervalle temporel T est la date à laquelle l’événement est survenu, l’entité spatiale SP est le lieu d’occurrence de l’événement et A est l’ensemble des participants impliqués dans E associés avec le(s) rôle(s) qu’ils tiennent dans E. Exemple 1. L’événement exprimé par "M. Dupont a mangé au restaurant Lafayette à Paris en 1999" est représenté comme (Manger, 1999, Paris, M. Dupont). 98. Agence France Presse 74 Copyright c 2013 - CASSIDIAN - All rights reserved4.2. Notre modèle d’événement Les sections suivantes décrivent comment chaque dimension de l’événement est modélisée. Enfin, dans nos travaux, le "cadre" mentionné par Krieg-Planque est défini par l’ontologie de domaine WOOKIE 99 (voir la section 4.3) et plus précisément par la spécification de la classe événement ("Event") en différentes sous-classes et propriétés. Il détermine quels sont les entités et événements d’intérêt pour notre application. 4.2.1 La dimension conceptuelle La dimension conceptuelle S d’un événement correspond au sens véhiculé par le nom porteur de cet événement. En effet, comme le souligne [Neveu and Quéré, 1996], l’interprétation d’un événement dépend étroitement de la sémantique exprimée par les termes employés pour nommer cet événement. Cette dimension équivaut à la propriété sémantique des événements évoquée par [Saval et al., 2009] et représente le type de l’événement, c’est-à-dire sa classe conceptuelle au sein de notre ontologie de domaine. C’est la taxonomie des événements au sein de WOOKIE qui constitue le support principal de cette dimension conceptuelle. Nous avons défini pour notre application environ 20 types d’événement d’intérêt pour le renseignement militaire regroupés sous le concept de MilitaryEvent. Les différentes sous-classes d’événement sont les suivantes : – AttackEvent : tout type d’attaque, – BombingEvent : les attaques par explosifs, – ShootingEvent : les attaques par armes à feu, – CrashEvent : tous les types d’accidents, – DamageEvent : tous les types de dommages matériels, – DeathEvent : les décès humains, – FightingEvent : les combats, – InjureEvent : tout type d’événement entrainant des blessés, – KidnappingEvent : les enlèvements de personnes, – MilitaryOperation : tout type d’opération militaire, – ArrestOperation : les arrestations, – HelpOperation : les opérations d’aide et de secours, – PeaceKeepingOperation : les opérations de maintien de la paix, – SearchOperation : les opérations de recherche, – SurveillanceOperation : les opérations de surveillance, – TrainingOperation : les entrainements, – TroopMovementOperation : les mouvements de troupes, – NuclearEvent : tout type d’événement nucléaire, – TrafficEvent : tout type de trafic illégal. Cette taxonomie a été essentiellement constituée en nous inspirant des modélisations existantes dans le domaine telles que celles présentées en section 1.3.3. Mais également par observation des différents types d’événements rapportés dans des dépêches de presse sur des thèmes tels que les guerres en Afghanistan et en Irak ou encore les diverses attaques terroristes dans le monde. 99. Weblab Ontology for Open sources Knowledge and Intelligence Exploitation 75 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 4. Modélisation des connaissances du domaine 4.2.2 La dimension temporelle Pour la représentation des entités temporelles extraites nous utilisons le "Time Unit System" (TUS) proposé par [Ladkin, 1987]. Contrairement à la majorité des modèles théoriques dédiés à la logique temporelle [Fisher et al., 2005], ce formalisme s’avère plus applicable à des situations réelles de traitement des entités temporelles, notamment, par sa proximité avec les systèmes calendaires communément utilisés. Il s’agit d’une approche hiérarchique et granulaire qui représente toute expression temporelle en un groupe de granules (c’est-à-dire des unités temporelles indivisibles). Un granule (ou unité de temps) est une séquence finie d’entiers organisés selon une hiérarchie linéaire : année, mois, jour, heure, etc. De plus, ce formalisme introduit la notion de BTU (Basic Time Unit) qui correspond au niveau de granularité choisi en fonction de la précision nécessitée par une application (e.g. les jours, les secondes, etc.). Par exemple, si le BTU est fixé à heure, chaque unité temporelle sera exprimée comme une séquence d’entiers i telle que : i = [année,mois,jour,heure]. De plus, TUS définit la fonction maxj ([a1, a2, ..., aj−1]) donnant la valeur maximale possible à la position j pour qu’une séquence temporelle soit valide en tant que date. Cet opérateur est nécessaire car, selon notre actuel système calendaire, le granule jour dé- pend des granules mois et année. [Ligeza and Bouzid, 2008] définit toutes les valeurs maximales pour le granule jour de la façon suivante : – max3([g1, 2]) = 29 lorsque a1 est une année bissextile – max3([g1, 2]) = 28 lorsque a1 est une année non-bissextile – max3([g1, g2]) = 31 quelque soit g1 et lorsque g2 ∈ {1, 3, 5, 7, 8, 10, 12} – max3([g1, g2]) = 30 quelque soit g1 et lorsque g2 ∈ {4, 6, 9, 11} Une date est dite légale lorsqu’elle est valide au regard de cet opérateur et plus généralement du système calendaire courant et elle est dite illégale dans le cas contraire. Pour notre application, nous choisissons un BTU jour correspondant à la précision maximale des dates extraites. Par conséquent, toute expression temporelle i aura la forme suivante : i = [année,mois,jour]. Par exemple, [2010,09,19] représente un intervalle de temps qui débute le 18 septembre 2012 à minuit et termine un jour plus tard (ce qui équivaut à un BTU). De plus, les entités temporelles extraites peuvent s’avérer plus ou moins précises. Dans certains cas, les expressions de temps peuvent être imprécises à l’origine (e.g. "en Mai 2010") et, dans d’autres cas, l’imprécision peut être causée par une erreur d’extraction. Pour représenter ces entités floues, nous introduisons le symbole ∅ défini comme le manque d’information au sens général. Soit T = [g1, g2, g3] une expression temporelle : Définition 2. Expression temporelle complète : T est complète lorsque ∀i∈{1,2,3} , gi 6= ∅ Définition 3. Expression temporelle incomplète : T est incomplète lorsque ∃i∈{1,2,3} , gi = ∅ Nous listons ci-dessous toutes les formes possibles que peuvent revêtir les dates extraites une fois exprimées avec le formalisme TUS ainsi que des exemples : – [year, month, day], e.g. [2011, 12, 14] ; – [year, month] e.g. [2011, 12, ∅] ; – [month, day], e.g. [∅, 12, 14] ; – [year] e.g. [2011, ∅, ∅] ; – [month] e.g. [∅, 12, ∅] ; 76 Copyright c 2013 - CASSIDIAN - All rights reserved4.2. Notre modèle d’événement – [day] e.g. [∅, ∅, 14]. Enfin, le modèle TUS introduit l’opérateur convexify permettant la représentation des intervalles temporels convexes. Prenant pour paramètres deux intervalles primaires i et j, convexify(i, j) retourne le plus petit intervalle de temps contenant i et j. Par exemple, convexify([2008], [2011]) correspond à l’intervalle de 3 ans entre le premier jour de l’année 2008 et le dernier jour de 2011. Nous utilisons cet opérateur pour exprimer de façon unifiée les périodes de temps extraites des textes et permettre ainsi des calculs temporels grâce au modèle TUS. Par conséquent, une extraction telle que "from 2001 to 2005" est normalisé sous la forme convexify([2001], [2005]). 4.2.3 La dimension spatiale Pour notre application, nous choisissons de représenter les entités spatiales comme des aires géographiques et d’utiliser les relations topologiques du modèle RCC-8 pour leur agrégation. En effet, ce modèle s’avère mieux adapté à la comparaison d’entités spatiales que ceux à base de points et fondés sur les coordonnées géographiques. Comme dans le cas des entités temporelles, le raisonnement spatial nécessite d’opérer sur des objets non-ambigus et nous devons par conséquent préciser géographiquement tous les lieux extraits par notre système. Dans le cadre du WebLab, nous nous intéressons notamment à la désambiguïsation d’entités spatiales dans le but d’effectuer des traitements plus avancés comme la géolocalisation ou l’inférence spatiale [Caron et al., 2012]. Cette étape est réalisée en associant un identifiant GeoNames 100 unique (une URI) à chaque lieu extrait. Utiliser une base géographique comme GeoNames a plusieurs avantages : tout d’abord, il s’agit d’une base open-source et sémantique, par conséquent bien adaptée à une intégration au sein du WebLab ; de plus, en complément des coordonnées géographiques, cette ressource fournit des relations topologiques entre lieux, comme par exemple des relations d’inclusion. Nous utilisons, plus précisément, les trois propriétés suivantes pour l’agrégation des événements (voir la section 6.3.3) : – la propriété "children" réfère à une inclusion administrative ou physique entre deux entités géographiques ; – la propriété "nearby" relie deux entités qui sont géographiquement proches l’une de l’autre ; – la propriété "neighbour" est utilisée lorsque deux entités géographiques partagent au moins une frontière. La section 6.3.3 détaille comment nous utilisons ces relations topologiques pour l’agrégation des entités spatiales. 4.2.4 La dimension agentive Comme dit précédemment, tous les participants d’un événement et leurs rôles respectifs sont repré- sentés formellement par la dimension A. Nous définissons cette dimension de l’événement comme un ensemble A = (Pi , rj ) où chaque élément est un couple composé d’un participant pi et d’un rôle rj et où i et j ∈ N. Notre modèle ne limite pas la nature du champ "participant" (chaîne de caractères, entité nommée, nom propre/commun, etc.) pour rester le plus générique possible. Toutefois, dans notre application un participant correspond concrètement à une entité nommée de type Personne ou Organisation ayant été extraite et liée automatiquement à l’événement dans lequel elle est impliquée. Les différents 100. ❤tt♣✿✴✴✇✇✇✳❣❡♦♥❛♠❡s✳♦r❣✴ 77 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 4. Modélisation des connaissances du domaine types de rôles possibles ne sont également pas restreints ici car cela est fortement corrélé à l’application et aux capacités des extracteurs. Notre méthode d’extraction (voir la section 5.4) n’ayant pas été conçue pour déterminer le rôle joué par un participant dans un événement, cet aspect ne sera pas traité ici. 4.3 WOOKIE : une ontologie dédiée au ROSO Afin de définir précisément quelles sont les informations d’intérêt pour notre application, nous avons développé une ontologie de domaine nommée WOOKIE constituant la base de notre système de capitalisation des connaissances. Celle-ci a été créée de façon collaborative et a pour but de représenter les concepts de base nécessaires aux diverses applications du domaine. Cet aspect collaboratif (grâce notamment au logiciel WebProtégé) constitue un point important car il nous a permis de mettre en commun les visions de plusieurs membres de l’équipe IPCC afin de mieux cerner les besoins des opérationnels du renseignement. De plus, cette ontologie est implémentée au format OWL 101 selon les recommandations du W3C102 pour la représentation des connaissances au sein du Web Sémantique. Notre objectif étant de développer une ontologie à taille raisonnable mais générique pour le renseignement militaire, nous avons tout d’abord mené quelques recherches pour faire le point sur les ontologies existantes. En effet, il nous est apparu intéressant de pouvoir reprendre tout ou partie d’une modélisation déjà disponible. WOOKIE a donc été élaborée suite à un état de l’art approfondi de la littérature du domaine et des ontologies existant à l’heure actuelle (dont une partie est présentée dans le chapitre 1). Nous avons commencé par examiner les ontologies générales (dites "de haut niveau") les plus connues et utilisées telles que SUMO 103, PROTON 104, BFO 105, DOLCE 106 ou encore COSMO 107. Ces ontologies sont modélisées à divers niveaux : elles définissent des concepts de haut niveau ou "meta-concepts" (pouvant servir de base à l’organisation d’encyclopédies par exemple) mais aussi des spécialisations des concepts Lieu et Organisation qui se sont avérées particulièrement intéressantes pour le développement de notre ontologie. Puis, d’autres modélisations plus spécifiques nous ont été utiles, telles que des modélisations spécifiques au domaine militaire (voir la section 1.3.3), des ontologies spécialisées dans la description des évènements (voir la section 1.3). Ces différentes observations ont montré qu’aucune des ontologies trouvées ne correspondaient parfaitement au modèle de connaissances voulu et qu’il n’était donc pas adéquat de reprendre une de ces représentations en l’état. Toutefois, nous nous sommes inspirés de ces modélisations tout au long de la construction de WOOKIE et avons veillé à maintenir des équivalences sémantiques avec les ontologies existantes. Le développement de notre ontologie de domaine a été guidé par les méthodologies de la littérature telles que [Noy and Mcguinness, 2001] [Mizoguchi, 2003a]. Celles-ci nous ont permis d’organiser notre travail en plusieurs étapes que nous détaillons ci-après. Nous avons commencé par concevoir une taxonomie de concepts de haut niveau constituant la base de notre modélisation. Pour cela, nous avons accordé une attention particulière aux standards OTAN car ils définissent les objets d’intérêt et leurs propriétés pour le renseignement militaire. Ces standards demeurant trop techniques et détaillés, nous avons fait le choix de nous concentrer sur les catégories de 101. Ontology Web Language, ❤tt♣✿✴✴✇✇✇✳✇✸✳♦r❣✴❚❘✴♦✇❧✲❢❡❛t✉r❡s✴ 102. World Wide Web Consortium, ❤tt♣✿✴✴✇✇✇✳✇✸✳♦r❣✴ 103. Suggested Upper Merged Ontology 104. PROTo ONtology 105. Basic Formal Ontology 106. Descriptive Ontology for Linguistic and Cognitive Engineering 107. Common Semantic MOdel 78 Copyright c 2013 - CASSIDIAN - All rights reserved4.3. WOOKIE : une ontologie dédiée au ROSO l’intelligence définies par le STANAG 2433, connues sous le nom de "pentagramme du renseignement" (voir la figure 4.1). FIGURE 4.1 – Le pentagramme du renseignement Ce pentagramme reprend les éléments centraux du domaine du renseignement militaire et les définit comme ci-dessous. – Le concept Units y est défini comme tout type de rassemblement humain partageant un même objectif, pouvant être hiérarchiquement structuré et divisé en sous-groupes. Il s’agit à la fois des organisations militaires, civiles, criminelles, terroristes, religieuses, etc. – Le concept Equipment désigne toute sorte de matériel destiné à équiper une personne, une organisation ou un lieu pour remplir son rôle. Il peut s’agir d’équipement militaire ou civil, terrestre, aérien, spatial ou sous-marin. – Le concept Places regroupe les points ou espaces terrestres ou spatiaux, naturels ou construits par l’homme, pouvant être désignés par un ensemble de coordonnées géographiques. – Le concept Biographics désigne les individus et décrit un certain nombre de propriétés associées telles que des éléments d’identification, des informations sur la vie sociale et privée, un ensemble de relations avec d’autres individus ou organisations, etc. – Le concept Events décrit toute occurrence d’un élément considéré comme ayant de l’importance. Un événement peut être divisé en plusieurs sous-événements. Toutefois, les standards OTAN ne détaillent pas les sous-classes du pentagramme et les diverses propriétés de classes évoquées doivent être triées et réorganisées. Nous avons donc développé notre ontologie de haut en bas (approche descendante ou "top-down"), en partant des concepts plus généraux vers les plus spécifiques. Nous avons effectué cette spécialisation en conservant les classes intéressantes des autres ontologies observées. Pour ce faire, nous nous sommes inspirés de la méthodologie de construction d’une ontologie proposée par [Noy and Mcguinness, 2001]. La création de sous-classes a été guidée par le contexte du renseignement militaire et ses éléments d’intérêt. La taxonomie complète des classes de WOOKIE est donnée en annexe A. Pour la classe Equipment, nous nous sommes limités à décrire les différents types de véhicules et d’armes. La classe Person 79 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 4. Modélisation des connaissances du domaine est liée par équivalence au concept Person dans l’ontologie FOAF 108 mais n’a pas nécessité plus de pré- cision. En ce qui concerne le concept Unit, nous avons choisi de distinguer deux sous-classes Group et Organisation afin de différencier les groupements de personnes, point important dans le domaine visé. La classe Place a également été sous-typée en prenant en compte les besoins militaires, notamment par l’aspect stratégique des sous-classes du concept Infrastructure. Enfin, la modélisation de la classe Event s’est avérée une tâche essentielle compte tenu de l’importance de ces entités dans le renseignement et la veille militaire. Nous avons pour cela réservé plus de temps à la spécification de la classe MilitaryEvent, c’est-à-dire au choix et à l’organisation des différentes sous-classes en prenant en compte les observations préalables. La taxonomie des événements spécifiques au ROSO est présentée en annexe B. Par la suite, parallèlement aux relations hiérarchiques, nous avons liés les concepts de l’ontologie entre eux par des relations sémantiques (object properties). Il s’agit de propriétés ayant pour co-domaine un concept de l’ontologie. Celles-ci ont également été choisies en fonction des besoins du renseignement militaire et en concertation avec les membres de notre équipe. Plusieurs liens sont modélisés entre les personnes tels que des liens familiaux, de connaissance, des liens hiérarchiques, etc. (isFamilyOf, isSpouseOf, isFriendOf, isColleagueOf, etc.). Nous avons également créé des relations entre personnes et organisations (hasEmployee), entre organisations et équipements (producesEquipment, sellsEquipment) ou encore entre lieux et personnes (bornIn, diedIn), etc. Enfin, la classe Event est en relation avec tous les autres éléments du pentagramme conformément à notre modèle d’événement (voir la section 4.2). Ainsi par exemple, un événement implique des participants de type Person ou Unit (involves) ainsi qu’un instrument appartenant à la classe Equipment (hasEquipment) et se déroule dans un lieu associé à la classe Place (takesPlaceAt). Un événement peut également être relié à d’autres événements par des relations d’antécédence, succession, cause, conséquence, etc. (hasAssociatedEvent, causes, follows, etc.). Une quatrième étape a été d’attribuer à chaque classe un ensemble de propriétés permettant de les définir plus précisément en leur associant une valeur particulière. Cette valeur peut être une chaine de caractères, un nombre, une date, un booléen, etc. Comme nous l’avons déjà précisé plus haut, ces attributs sont héréditaires : ceux de la classe-mère sont automatiquement transmis aux classes-filles. Les 5 classes de plus haut niveau possèdent les attributs picture, pour leur associer une image, et alias, qui associé à la propriété rdfs :label permet d’indiquer leur(s) nom(s) alternatif(s). La classe Person possède un certain nombre d’attributs tels que la nationalité, la profession, l’âge, l’adresse postale, l’adresse électronique, les dates de naissance et de décès, etc. La classe Unit est également caractérisée par des adresses postale et électronique ainsi que des coordonnées téléphoniques. La classe Place n’a pas nécessité d’attributs. Le concept Equipment possède lui des attributs essentiellement liés à des caractéristiques techniques telles que la couleur, les dimensions, la vitesse ou encore à des informations d’identification comme la marque, le modèle, la plaque d’immatriculation, l’année de production, etc. Enfin, pour la classe Event, nous avons précisé les dates de début et fin, la durée ainsi que le nombre de victimes et de décès engendrés. La totalité des attributs de concepts est donnée en annexe D). Pour terminer, nous avons précisé les différents propriétés et attributs définis en spécifiant certaines contraintes et axiomes dans l’ontologie WOOKIE. Comme permis par la spécification OWL, des liens entre propriétés de type owl :inverseOf ont été implémentés pour indiquer que telle propriété porte un sens contraire à telle autre propriété. Par exemple, la relation isEmployeeOf (qui lie une personne à l’organisation à laquelle elle appartient) est l’inverse de hasEmployee. Par ailleurs, nous avons utilisé, le cas échéant, les restrictions symmetric/assymetric, irreflexive et transitive des modèles OWL et OWL2. La propriété hasFriend est, par exemple, symétrique et non-réflexive. La relation isSuperiorTo entre 108. Friend Of A Friend, ❤tt♣✿✴✴✇✇✇✳❢♦❛❢✲♣r♦❥❡❝t✳♦r❣✴ 80 Copyright c 2013 - CASSIDIAN - All rights reserved4.4. Conclusions deux membres d’une organisation est quant à elle transitive. Enfin, comme mentionné en section 1.3.1.2, WOOKIE intègre des liens sémantiques avec d’autres ontologies sous forme d’axiomes tels que des équivalences de classes (owl :equivalentClass) ou des relations de subsomption (rdfs :subClassOf). Ainsi, le concept Person de WOOKIE est équivalent au concept Person de l’ontologie FOAF et la classe Place de WOOKIE est un sous-type de Feature dans l’ontologie GeoNames. Par ailleurs, le concept d’événement dans notre ontologie équivaut sémantiquement au concept Event de l’ontologie LODE, par exemple. 4.4 Conclusions L’ontologie que nous venons de décrire constitue le modèle de connaissances qui servira de guide à notre approche d’extraction et de capitalisation des connaissances. Les principaux atouts de cette modélisation sont les suivants : tout d’abord, elle se fonde sur des modèles reconnus (ACE et DUL pour les événements et le modèle TUS et les relations topologiques RCC-8 pour la représentation spatiotemporelle). De plus, notre ontologie a été conçue en accord avec les besoins du ROSO (taxonomie de classes et propriétés) et intègre de nombreux liens sémantiques vers d’autres ontologies afin de maintenir une interopérabilité au sein du Web sémantique. Celle-ci présente toutefois quelques limites et nous envisageons des perspectives d’amélioration telles que l’intégration d’une cinquième dimension que nous appellerons "contextuelle" afin de représenter des éléments du contexte linguistique et extra-linguistique (indices de modalité, confiance, temporalité, propagation spatiale, etc.). Par ailleurs, nous souhaitons approfondir la représentation des rôles au sein de la dimension agentive en étudiant, par exemple, le modèle SEM (voir le chapitre 1.3.1.2). 81 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 4. Modélisation des connaissances du domaine 82 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 5 Extraction automatique des événements Sommaire 5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.2 La plateforme GATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.3 Extraction d’entités nommées . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 5.3.1 Composition de la chaine d’extraction . . . . . . . . . . . . . . . . . . . 87 5.3.2 Développement du module de règles linguistiques . . . . . . . . . . . . . 88 5.4 Extraction d’événements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 5.4.1 Approche symbolique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 5.4.2 Apprentissage de patrons linguistiques . . . . . . . . . . . . . . . . . . . 97 5.5 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 83 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 5. Extraction automatique des événements 5.1 Introduction Une fois notre modèle de connaissances établi, nous proposons de concevoir une approche permettant de reconnaitre automatiquement dans un ensemble de textes les différentes informations d’intérêt pour peupler la base de connaissances (créer des instances des différentes classes de l’ontologie WOOKIE et les liens existants entre ces instances). Ce chapitre présente notre seconde contribution : un système d’extraction automatique d’événements pour la veille en sources ouvertes. Celui-ci ayant été essentiellement élaboré grâce à la plateforme GATE, nos critères de choix ainsi qu’une présentation générale de cet outil sont exposés dans une première partie. Nous décrivons par la suite le développement d’un extracteur d’entités nommées nécessaire à la reconnaissance des événements tels que définis dans le chapitre 4.2. Nous terminons par une présentation de notre système de reconnaissance des événements fondé sur deux méthodes : une approche à base de règles linguistiques, d’une part, et une méthode par apprentissage de motifs fréquents, d’autre part. Les paramètres choisis pour notre application ainsi que les performances de notre système d’EI seront présentés en section 7.2. 5.2 La plateforme GATE GATE est une plateforme open-source implémentée en Java dédiée à l’ingénierie textuelle au sens large [Cunningham et al., 2002]. Créée il y a une vingtaine d’années par les chercheurs de l’université de Sheffield (Royaume-Uni), GATE est largement utilisée par les experts en TAL et dispose d’une grande communauté d’utilisateurs. Cela lui permet de proposer un ensemble de solutions d’aide et de support (forum, liste de diffusion, foire aux questions, wiki, tutoriels, etc.). Ce point a constitué un critère important afin de choisir notre environnement de développement parmi les différentes plateformes et outils présentés en section 2.3. Par ailleurs, GATE propose une chaine d’extraction d’entités nommées pour l’anglais nommée ANNIE composée de différents modules open source. Cette chaine ayant déjà été utilisée au sein de la plateforme WebLab, elle a constitué une première base pour l’élaboration de notre propre système d’extraction d’information. Fonctionnement général L’environnement GATE repose sur le principe de chaines de traitement composées de différents modules (dits "Processing Resources" PR) appliqués successivement sur un ou plusieurs textes (dits "Language Resources" LR). Les LR peuvent être des textes seuls, fournit dans l’interface par copiercoller ou URL, ou des corpus de textes créés manuellement ou importés d’un dossier existant. Produit d’une communauté d’utilisateurs croissante, l’ensemble des PR disponibles est conséquent : ceux-ci sont organisés au sein de plugins thématiques et permettent des traitements variés pour une quinzaine de langues au total. L’utilisateur peut ainsi sélectionner un ensemble de briques logicielles pertinentes pour sa tâche, les paramétrer et les organiser à sa convenance pour construire une chaine de traitement de texte adaptée (voir l’annexe E pour un exemple de chaine de traitement). La majorité des modules de traitement fournit une analyse des textes à traiter par un système d’annotations exprimées au format XML et selon le modèle de la plateforme. Ce système permet à chaque brique de traitement d’exploiter les annotations fournies par les modules précédents. Cela consiste géné- 84 Copyright c 2013 - CASSIDIAN - All rights reserved5.2. La plateforme GATE ralement à associer un ensemble d’attributs à une zone de texte. Ces attributs se présentent sous la forme propriété = "valeur". Voici un exemple d’annotation créée par un composant de segmentation en mots : Token { c a t e g o r y =NNP, ki n d =word , l e n g t h =5 , o r t h = u p p e r I n i t i a l , s t r i n g =Obama} Il s’agit ici d’une annotation de type Token à laquelle sont associés plusieurs attributs comme sa catégorie grammaticale (NNP), son type (word), sa longueur en nombre de caractères (5), sa casse (upperInitial) et la chaîne de caractères correspondante (Obama). Le formalisme JAPE Parallèlement aux différents modules d’analyse, la plateforme GATE propose un formalisme d’expression de grammaires contextuelles nommé JAPE (Java Annotation Patterns Engine). Ce formalisme est employé pour la définition de règles au sein des modules de type transducteurs à états finis. Ce système s’avère très utile en extraction d’information car il permet de définir les contextes d’apparition des éléments à extraire pour ensuite les repérer et les annoter dans un ensemble de textes. Le principe est de combiner différentes annotations fournies par les modules précédant le transducteur (tokens, syntagmes, relations syntaxiques, etc.) pour en créer de nouvelles plus complexes (entités nommées, relations, évè- nements, etc.) : cela revient à l’écriture de règles de production et donc à l’élaboration d’une grammaire régulière. Une grammaire dans GATE se décompose en plusieurs phases exécutées consécutivement et formant une cascade d’automates à états finis. Chaque phase correspond à un fichier .jape et peut être constituée d’une ou plusieurs règle(s) écrite(s) selon le formalisme JAPE. Classiquement, ces règles sont divisées en deux blocs : une partie gauche (Left Hand Side ou LHS) définissant un contexte d’annotations à repérer et une partie droite (Right Hand Side ou RHS) contenant les opérations à effectuer sur le corpus à traiter lorsque le contexte LHS y a été repéré. Le lien entre ces deux parties se fait en attribuant des étiquettes à tout ou partie du contexte défini en LHS afin de cibler les annotations apposées en RHS. Pour plus de clarté, prenons l’exemple d’une règle simple : 1 R ule : OrgAcronym 2 ( 3 { O r g a n i s a t i o n } 4 { Token . s t r i n g == " ( " } 5 ( { Token . o r t h == " a l l C a p s " } ) : o r g 6 { Token . s t r i n g == " ) " } 7 ) 8 −−> 9 : o r g . O r g a n i s a t i o n = { r u l e =" OrgAcronymRule " , ki n d =" Acronym "} FIGURE 5.1 – Exemple de règle d’extraction exprimée dans le formalisme JAPE L’objectif de celle-ci est d’annoter avec le type Organisation tous les acronymes entre parenthèses positionnés après une première annotation de ce même type. La première ligne de cette règle indique le nom qui lui a été donné par son auteur. Les lignes 2 à 7 définissent le motif à repérer dans le texte : les types des annotations sont encadrés par des accolades (e.g. {Organisation}), l’accès aux attributs 85 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 5. Extraction automatique des événements des annotations se fait sous la forme Annotation.attribut (Token.string, par exemple, permet d’obtenir la valeur de la propriété string associée aux annotations de type Token fournies par un module précédent), (...) :org permet d’étiqueter la partie visée du motif pour y référer en partie RHS de la règle. Puis, la flèche (ligne 8) sert de séparateur entre les parties LHS et RHS. La ligne 9 permet d’attribuer une annotation de type Organisation au segment étiqueté org en partie gauche. Remarquons également en partie droite l’ajout des propriétés rule et kind à l’annotation produite afin d’indiquer quelle règle en est à l’origine et qu’il s’agit d’un acronyme d’organisation. Ces attributs peuvent être librement définis par le développeur de grammaires. Précisons également qu’un système de macros permet de nommer une séquence d’annotations afin de la réutiliser de façon raccourcie dans les règles définies. Enfin, il est possible de gérer l’ordre d’exécution d’un ensemble de règles en choisissant un des différents modes de contrôle proposés par le formalisme JAPE (all, once, appelt, etc.). Quelques modules utilisés dans nos travaux Dans cette section, nous présentons différents modules qui nous ont été utiles pour mettre en oeuvre notre système d’extraction d’information. Tout d’abord, nous devons parler d’ANNIE (A Nearly-New Information Extraction system), une chaine complète dédiée à la reconnaissance d’entités nommées pour l’anglais. Fournie conjointement à la plateforme, cette chaine comprend différents modules d’analyse : 1. Document Reset : supprime toutes les annotations apposées précédemment sur le document, 2. English Tokenizer : découpe le texte en mots (tokens), 3. Gazetteer : repère les éléments contenus dans une liste (gazetteer) et les annote en tant que Lookup, 4. Sentence Splitter : découpe le texte en phrases, 5. POS Tagger : ajoute à l’annotation Token (mise par le tokenizer) une propriété category indiquant la catégorie morpho-syntaxique du mot en question. Il s’agit, ici, d’une version dérivée de l’étiqueteur Brill [Brill, 1992], 6. NE Transducer : un transducteur JAPE définissant un ensemble de règles afin de repérer des entités nommées (Person, Organization, Location, Date, URL, Phone, Mail, Address, etc.), 7. OrthoMatcher : annote les relations de co-référence entre les entités nommées repérées précédemment. ANNIE étant spécialisée pour le traitement de textes anglais, d’autres modules se sont avérés né- cessaires pour l’extraction d’information en français. Nous avons notamment utilisé les modules de découpage en mots et d’étiquetage morpho-syntaxique adaptés pour la langue française (French tokenizer et TreeTagger). De plus, la phase d’extraction d’événements a nécessité l’utilisation de l’analyseur syntaxique Stanford parser fournissant une analyse syntaxique en dépendance des phrases à traiter. Par ailleurs, nos travaux nécessitant un découpage des textes en groupes syntaxiques (nominaux et verbaux), les modules NP Chunker et VP Chunker ont répondu à ce besoin. Enfin, divers modules d’analyse linguistique nous ont été utiles tels qu’un analyseur morphologique ou encore un repérage lexical paramétrable (dit Flexible Gazetteer). 86 Copyright c 2013 - CASSIDIAN - All rights reserved5.3. Extraction d’entités nommées 5.3 Extraction d’entités nommées La phase d’extraction d’entités nommées consiste à mettre en place un système de détection et de typage des entités d’intérêt pour l’anglais et le français. En effet, pour reconnaitre des événements tels qu’ils sont définis dans WOOKIE, notre premier objectif est de repérer les entités de type Person, Unit, Date et Place. Pour ce faire, comme nous l’avons montré dans l’état de l’art correspondant (voir la section 2.2.1), plusieurs types de méthodes ont été explorées : des approches symboliques, statistiques ou encore hybrides. Celles-ci ayant montré des performances comparables pour le problème de la REN, notre choix a été guidé par le contexte applicatif de nos travaux. En effet, il apparait important dans le contexte du ROSO d’éviter l’extraction d’informations erronées (ce que l’on nomme plus communément le bruit). Ce critère nous a donc orienté vers le choix d’une approche à base de règles, pour laquelle la littérature a montré une plus grande précision et qui s’avère également plus facilement adaptable à un domaine d’application donné. Notre système de REN a été élaboré selon un processus ascendant et itératif : nous avons collecté un ensemble de dépêches de presse en anglais et français et repéré manuellement des exemples d’entités nommées à extraire. Partant de ces exemples, nous avons construit (par généralisations successives des contextes d’apparition de ces entités) une première version du système, que nous avons appliqué sur ce même jeu de textes pour vérifier la qualité des règles construites (en termes de précision et rappel). Le système a ensuite été modifié pour atteindre la qualité voulue, puis un nouveau corpus de textes a été constitué pour découvrir de nouvelles formes d’entités et ainsi de suite. De par la proximité des langues anglaise et française, cette méthode a été appliquée pour les deux langues et les systèmes d’extraction développés suivent donc les mêmes principes et présentent une structure commune. Nous présentons ci-dessous les différentes étapes d’extraction ainsi que leur implémentation pour l’anglais et le français grâce à la plateforme GATE. 5.3.1 Composition de la chaine d’extraction La chaine d’extraction d’entités nommées est composée de différents modules d’analyse listés et dé- crits ci-après. L’ordre d’exécution de ces modules a son importance car chaque traitement exploite les annotations créées précédemment. Pour cela, nous nous sommes inspirés de la chaine d’extraction ANNIE présentée ci-dessus tout en l’adaptant à notre problématique et à notre représentation des connaissances. La composition de modules obtenue reste la même pour l’anglais et le français bien que certains des modules soient spécifiques à la langue traitée. Notons également que les quatre premières étapes sont réalisées par des briques (reprises en l’état) proposées dans GATE tandis que les deux derniers modules ont été au centre de nos travaux et ont nécessité notre expertise. 1. Réinitialisation du document Ce premier module permet de nettoyer le document traité de toute annotation existante afin de le préparer à l’exécution d’une nouvelle chaine d’extraction. Il est indépendant de la langue. 2. Découpage en mots Ce second module découpe le texte en mots ou plus précisément en tokens. Ce traitement dépend de la langue traitée : nous avons donc utilisé les tokenizers spécifiques à l’anglais et au français fournis dans GATE. 87 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 5. Extraction automatique des événements 3. Découpage en phrases Cette étape permet d’obtenir une annotation par phrase du texte. L’anglais et le français étant des langues proches syntaxiquement, le même module a été utilisé pour ces deux langues. 4. Étiquetage grammatical Également nommée "étiquetage morpho-syntaxique" ou Part-Of-Speech (POS) tagging en anglais, cette phase donne pour chaque token repéré un ensemble d’informations grammaticales telles que la catégorie grammaticale (nom, verbe, adjectif, etc.), le genre, le nombre, etc. Ce module est dépendant de la langue considérée : l’analyseur pour l’anglais est celui présent dans la chaine ANNIE tandis que pour le français nous avons choisi l’outil TreeTagger. 5. Repérage lexical Cette étape consiste à repérer dans les textes à traiter un ensemble de mots clés préalablement définis dans des listes nommées gazetteers. Ces mots clés sont généralement des termes communs dont l’occurrence peut indiquer la présence d’une entité nommée. Les gazetteers sont de nature variée : listes de prénoms pour la reconnaissance des noms de personnes, jours de la semaine et noms des mois pour la détection des dates, etc. A chaque liste est associée une étiquette sémantique qui constituera le type de l’annotation apposée. Même s’il s’agit généralement d’une simple projection de lexique, ce module s’avère très utile pour l’extraction des entités nommées en tant que telle effectuée par le module suivant. En effet, les annotations fournies par ce module entrent dans la définition des différents contextes d’apparition des entités nommées (partie gauche des règles). Un exemple de gazetteer pour la détection des personnes en français est présentée en annexe F. 6. Règles d’extraction Ce dernier module d’annotation constitue le cœur du système de REN et contient les règles linguistiques élaborées manuellement, suivant le formalisme JAPE, pour la détection des entités de type Personne, Organisation, Lieu et Date. Nous avons fait le choix, dans le cadre de nos recherches, de ne pas conserver le module de résolution de co-référence Orthomatcher au sein de notre système d’extraction. En effet, nous avons constaté que la précision de ce module n’étant pas suffisamment bonne pour notre cas d’application et que cela détériorait la qualité de l’extraction d’événements (fortement dépendantes de l’extraction d’entités nommées). 5.3.2 Développement du module de règles linguistiques Le module d’extraction constitue le cœur de notre système. L’ensemble des règles linguistiques dé- veloppées sont contextuelles et partagent la forme suivante : regle : contexte → action Elles sont implémentées selon le formalisme JAPE décrit en section 5.2. Conformément à notre cas d’application, nous avons veillé, lors de leur développement, à privilégier la précision au rappel, c’est-à-dire l’extraction d’informations pertinentes pour mieux répondre à l’attente des opérationnels du domaine. Concrètement, cela s’est traduit par la construction de règles linguistiques dont les résultats sont plus sûrs et la mise à l’écart de règles pouvant entrainer de fausses annotations. 88 Copyright c 2013 - CASSIDIAN - All rights reserved5.3. Extraction d’entités nommées Celles-ci sont organisées en plusieurs ensembles, chacun étant spécifique au type d’entité ciblé. Ces ensembles sont implémentés sous la forme d’automates à états finis et l’exécution des règles au sein d’un même ensemble est régie par un système de priorité. Celui-ci permet de déterminer, lorsqu’il y a conflit entre plusieurs règles, quelle est celle qui doit être privilégiée pour annoter une portion de texte. Les différents ensembles de règles sont eux exécutés successivement selon un ordre fixé à l’avance au sein du système, constituant ce que l’on appelle des phases d’extraction. Pour déterminer le meilleur agencement de ces phases au sein du module de règles, nous nous sommes référés aux travaux de [Mikheev, 1999] et plus particulièrement à la gestion d’éventuelles ambiguïtés entre entités. Le principe suggéré est le suivant : afin d’éviter toute ambiguïté, il est conseillé d’exécuter en premier les règles les plus sûres (basées essentiellement sur le contexte linguistique), puis de typer les entités encore inconnues grâce aux gazetteers du module précédent et de lever les ambiguïtés restantes dans une phase finale. Nos propres observations nous ont amenés à choisir, en outre, un ordre de détection entre les 4 entités-cibles : nous typons, tout d’abord, les dates qui ne sont généralement pas confondues avec les autres entités ; puis, vient une phase de détection des organisations, suivie par les entités de type Personne et, enfin, les noms de lieux. En effet, nous avons observé que les noms d’organisations peuvent inclure des noms de personnes ou de lieux et doivent donc être repérés en priorité afin d’écarter l’ambiguïté. Par ailleurs, certains prénoms présentant une homonymie avec des noms de lieux, les entités de type Personne doivent être extraites avant celles de type Lieu. Ces premières présentent des formes moins variables et sont donc plus facilement repérables (grâce notamment aux listes de prénoms et de titres personnels). Pour l’extraction des EN en anglais, nous sommes partis de l’existant (la chaine ANNIE) en modifiant l’ordre des phases selon le principe explicité ci-dessus et sélectionnant/améliorant les règles les plus pertinentes pour notre application. Dans le cas du français, nous avons construit le système complet en s’appuyant sur la même méthodologie. Nous présentons, pour conclure cette section, quelques exemples de règles et gazetteers pour chaque type d’extraction. Extraction des dates La référence au temps peut s’exprimer de façon diverse et les expressions temporelles revêtent des formes textuelles variées : littérales ("en janvier"), numériques (10/01/2013) ou mixtes ("le 9 janvier"). La littérature distingue les expressions dites "absolues" de celles dites "relatives" : les premières permettent à elles seules de se repérer sur un axe temporel (par exemple, "le 9 janvier 2002" ou "l’année 2010") alors que les secondes ("hier matin", "le 5 mars", etc.) nécessitent pour cela des informations complémentaires provenant du co-texte ou du contexte extra-linguistique. On constate aussi des diffé- rences dans l’expression des dates d’une langue à une autre : dans notre cas, les anglophones n’expriment pas les dates comme les francophones. Toutes ces variations rendent la détection automatique des dates complexe et le développement des règles doit être réalisé en tenant compte des spécificités de l’anglais et du français. Voici pour exemple deux règles JAPE extraites de notre système : la première 5.2 permet d’extraire des dates en français, la seconde 5.3 est l’équivalent pour l’anglais (les dates en gris sont des exemples pouvant être détectés par la règle). Comme mentionné plus haut, il est fait usage de macros (termes en majuscules) pour faciliter la lecture et la maintenance du jeu de règles. De plus, un ensemble de propriétés est adjoint à l’annotation pour faciliter la normalisation des dates (voir la section 6.2). 89 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 5. Extraction automatique des événements / / l u n d i 27 a v r i l 2009 / / 27 a v r i l 2009 / / 1 e r a v r i l 2006 R ule : DateC om plete ( (NOM_JOUR) ? (NB_JOUR ) : j o u r ( { Token . s t r i n g == "−" } ) ? (NOM_MOIS ) : mois (ANNEE ) : a n n e e ) : d a t e −−> : d a t e . Date = { r u l e = " DateC om plete " , s t a r t Y e a r = : a n n e e . Token . s t r i n g , s t a r tM o n t h = : mois . Lookup . v al u e , s t a r t D a y = : j o u r . Lookup . v a l u e } FIGURE 5.2 – Règle d’extraction de dates en français / / Wed 10 J ul y , 2000 / / Sun , 21 May 2000 / / 10 t h o f J ul y , 2000 R ule : DateNameComplete P r i o r i t y : 100 ( (DAY_NAME (COMMA) ? ) ? (ORDINAL | DAY_NUM ) : day (MONTH_NAME ) : month (COMMA) ? (YEAR ) : y e a r ) : d a t e −−> : d a t e . Date = { r u l e = " DateNameComplete " , s t a r t Y e a r = : y e a r . Token . s t r i n g , s t a r tM o n t h = : month . Lookup . v al u e , s t a r t D a y = : day . Token . s t r i n g } FIGURE 5.3 – Règle d’extraction de dates en anglais Extraction des organisations Le système développé permet d’extraire des noms d’organisations divers tels que : NATO, Communist Party of India-Maoist, Ouattara Party, Nations Unies, AFP, Radio Azzatyk, armée de l’Air, etc. Nous utilisons pour cela des gazetteers de mots couramment associés à des noms d’organisations, qu’ils fassent partie de l’entité nommée ou non (la figure 5.4 est un extrait d’un de ces gazetteers pour l’anglais). La règle ci-dessous 5.5 utilise un de ces gazetteers afin de reconnaitre des noms d’organisations en anglais précédés d’un titre ou d’une fonction de personne tels que the director of the FBI ou the interim vice president of Comcast Business. Extraction des personnes Concernant la reconnaissance des noms de personne, nous avons assez classiquement utilisé des gazetteers de prénoms. Toutefois, face à l’immense variété des prénoms (même en domaine restreint) et 90 Copyright c 2013 - CASSIDIAN - All rights reserved5.3. Extraction d’entités nommées FIGURE 5.4 – Extrait du gazetteer org_key.lst R ule : O r g T i t l e P r i o r i t y : 60 ( { Lookup . maj o rT y pe == " j o b t i t l e " } { Token . s t r i n g == " o f " } ( { Token . s t r i n g == " t h e " } ) ? ( (UPPER ( POSS ) ? ) [ 1 , 4 ] ORG_KEY ) : o r g ) −−> : o r g . O r g a n i s a t i o n = { r u l e = " O r g T i t l e " } FIGURE 5.5 – Règle d’extraction d’organisations en anglais les ambiguïtés possibles, il est nécessaire d’exploiter d’autres indices contextuels tels que les titres ou fonctions personnelles. Ces derniers peuvent être placés en début ou en fin de l’entité nommée, la figure 5.6 donne quelques exemples d’indices antéposés en anglais. Enfin, la règle suivante 5.7, par exemple, exploite les annotations posées par différents gazetteers (fonctions et nationalités ici) pour l’extraction des noms de personne. 91 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 5. Extraction automatique des événements FIGURE 5.6 – Extrait du gazetteer person_pre.lst R ule : P e r s F o n c t i o n ( FONCTION ( NATIONALITE ) ? ( ( ( NP ) [ 1 , 3 ] ) : l a s t ) : p e r s o n ) −−> : p e r s o n . P e r s o n = { r u l e = " P e r s F o n c t i o n " } FIGURE 5.7 – Règle d’extraction de personnes en français Extraction des lieux L’extraction automatique des noms de lieux est, avec celle des organisations, l’une des plus complexe à mettre en œuvre de par la grande diversité formelle et référentielle de ces entités. En effet, les dépêches de presse relatant généralement des faits de façon précise, nous pouvons y trouver des noms de lieux granularité variable (noms de pays, villes, villages, régions, quartiers, rues, etc.) et exprimés parfois de façon relative ou imprécise (par exemple, eastern Iraq, Asie centrale, au nord de l’Afghanistan). De même que 92 Copyright c 2013 - CASSIDIAN - All rights reserved5.3. Extraction d’entités nommées pour la détection des organisations, de nombreuses ressources géographiques sont disponibles librement (gazetteers de toponymes, bases de données géographiques, etc.) et nous avons pu constituer quelques listes de base pour la détection des lieux communément mentionnés (liste des pays, des continents, des capitales, etc.). Il est nécessaire également de fonder nos règles d’extraction sur des indices contextuels tels que des noms communs déclencheurs d’entités géographiques (voir la figure 5.8 pour des exemples en français). FIGURE 5.8 – Extrait du gazetteer loc_key.lst Pour finir, la figure 5.9 est un exemple de règle JAPE exploitant ces indices de contexte : R ule : L o cK e y I n cl P r i o r i t y : 50 ( { Lookup . mino rType == " l o c _ k e y _ i n c l " } (DE ) ? ( ARTICLE ) ? (UPPER ) [ 1 , 3 ] ( ADJLOC ) ? ) : l o c −−> : l o c . L o c a ti o n = { r u l e = " L o cK e y I n cl " } FIGURE 5.9 – Règle d’extraction de lieux en français 93 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 5. Extraction automatique des événements 5.4 Extraction d’événements Nous détaillons, dans cette section, le cœur de notre première contribution à savoir la conception et l’implémentation d’un système d’extraction automatique d’événements tels que nous les avons défi- nis au chapitre 4. L’objectif est donc d’extraire un ensemble d’événements associés aux participants et circonstants suivants : la date de l’événement, son lieu d’occurrence et les entités de type Personne et Organisation impliquées. Celui-ci est constitué de deux extracteurs suivant deux approches distinctes : une méthode symbolique à base de règles linguistiques élaborées manuellement et une approche par apprentissage de motifs séquentiels fréquents. En effet, l’état de l’art réalisé (voir le chapitre 2.2.3) n’ayant pas révélé d’approche nettement supérieure aux autres, la combinaison de plusieurs méthodes parait être la solution la plus pertinente. Élaborer un système composite permet de tirer le meilleur parti des approches actuelles en exploitant la complémentarité des différents types d’approche (statistique, symbolique, etc.). Nous nous sommes tournés, dans le cadre de cette thèse, vers la combinaison d’un système à base de règles et d’un apprentissage symbolique pour plusieurs raisons. Tout d’abord, de par les besoins du ROSO, il est préférable de privilégier l’extraction d’informations fiables et précises et les approches symboliques répondent bien à ce besoin. Par ailleurs, afin d’améliorer les performances de ces techniques, il est apparu intéressant de les combiner avec un système d’apprentissage, dont le rappel est généralement meilleur. Nous nous sommes, dans un premier temps, orientés vers un système statistique tels que les CRFs, cependant après plusieurs recherches, nous n’avions pas à disposition un corpus d’apprentissage adapté (annoté en événements du domaine militaire/sécurité). Cela nous a donc mené vers le choix d’une méthode d’apprentissage faiblement supervisée telle que l’extraction de motifs fréquents qui ne nécessite pas de données annotées avec les entités-cibles. Nous présentons ci-dessous les principes théoriques de chaque approche choisie ainsi que la façon dont nous les avons mises en œuvre pour le traitement de dépêches de presse en langue anglaise. La méthode élaborée se veut indépendante de la langue des textes considérés et a été illustrée, dans le cadre de cette thèse, pour des textes en anglais uniquement en raison d’une plus grande disponibilité pour cette langue des outils et données nécessaires. 5.4.1 Approche symbolique La première méthode employée pour la détection d’événements est fondée sur la définition de règles linguistiques contextuelles (du même type que celles présentées en section 5.3) couplée avec une analyse syntaxique des textes. Celle-ci a été implémentée grâce à la plateforme GATE sous la forme d’une chaîne de traitement composée de différents modules d’analyse linguistique (tokenisation, découpage en phrases, repérage lexical, étiquetage grammatical, analyse syntaxique, etc.) et se déroule en plusieurs étapes détaillée ci-après. Repérage des déclencheurs d’événements La première étape consiste à repérer dans les textes à traiter les termes qui réfèrent potentiellement aux événements ciblés, que nous appellerons des "déclencheurs d’événements" (correspondant aux ancres du modèle ACE). Tout d’abord, nous considérons comme possibles déclencheurs d’événements 94 Copyright c 2013 - CASSIDIAN - All rights reserved5.4. Extraction d’événements les verbes et les noms, éléments porteurs de sens. Le repérage de ces déclencheurs se fait par l’utilisation de gazetteers contenant, d’une part, des lemmes verbaux pour les déclencheurs de type verbe et, d’autre part, des lemmes nominaux pour les déclencheurs de type nom. Nous avons chois de constituer des listes de lemmes afin d’obtenir des listes plus courtes et d’étendre le repérage des déclencheurs à toutes les formes fléchies (grâce au module GATE de type flexible gazetteer). Ces déclencheurs (139 lemmes actuellement) ont été manuellement répartis en différentes listes, chacune étant associée à un type d’événement (c’est-à-dire à une classe de notre ontologie) afin d’être repérés et annotés dans le corpus à analyser. Après une phase de découpage en mots, un analyseur morphologique attribue à chaque token son lemme. Nous comparons ensuite chaque lemme aux listes de déclencheurs et, s’ils correspondent, le mot lemmatisé est annoté comme étant un déclencheur d’événement. De plus, on lui associe la classe d’événement qu’il représente. La figure 5.4.1 présente la liste des lemmes verbaux utilisés comme déclencheurs des événements de type BombingEvent (les informations indiquées après le symbole § seront clarifiées par la suite). FIGURE 5.10 – Gazetteer bombings.lst Analyse des dépendances syntaxiques Une fois les déclencheurs d’événement repérés, il nous faut leur associer les différentes entités impliquées pour former l’événement dans son ensemble. Pour cela, nous effectuons, dans un premier temps, une extraction automatique d’entités nommées grâce au système présenté en section 5.3 ainsi qu’une analyse en constituants syntaxiques (syntagmes nominaux NP, verbaux VP, prépositionnels SP ou adjectivaux SA). Nous devons ensuite repérer les différentes relations entre le déclencheur et les entités de la phrase. Nous employons, dans ce but, un analyseur syntaxique donnant les dépendances entre les différents élé- ments phrastiques. En effet, une analyse syntaxique permet d’obtenir une meilleure précision par rapport à l’utilisation d’une analyse dite "par fenêtre de mots" associant un simple découpage en syntagmes (chunking) et des règles contextuelles. Après avoir examiné les différentes solutions proposées dans la plateforme GATE, nous avons opté pour l’utilisation du Stanford parser [De Marneffe and Manning, 2008]. Ici, nous faisons le choix de n’utiliser que les dépendances principales à savoir les relations sujet, objet, préposition et modifieur de nom. Les dépendances extraites par le Stanford parser se présentent sous la forme de liens entre les éléments centraux du syntagme-recteur et du syntagme-dépendant, plus communément appelés "têtes de syntagme" (voir la figure 5.11). 95 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 5. Extraction automatique des événements FIGURE 5.11 – Exemple d’analyse syntaxique en dépendance Voix active Voix passive Classe 1 sujet = agent, objet = patient sujet = patient, ct. prep. "by" 109 = agent Classe 2 sujet = agent, objet = instrument sujet = instrument, ct. prep. "by" = agent Classe 3 sujet = instrument, objet = patient sujet = patient, ct. prep. "by" = instrument Classe 4 sujet = agent, objet = locatif sujet = locatif, ct. prep. "by" = agent Classe 5 sujet = patient ∅ TABLE 5.1 – Classes argumentales pour l’attribution des rôles sémantiques Attribution des rôles sémantiques La dernière étape consiste à attribuer un rôle sémantique (agent, patient, instrument, etc.) aux diffé- rents participants de l’événement. Cela est rendu possible par une étude de la structure argumentale du verbe ou du nom déclencheur : à savoir déterminer sa valence (nombre d’arguments) et les rôles sémantiques de ses différents actants. Si nous prenons l’exemple des verbes anglais kill et die, nous remarquons qu’ils ont des valences différentes (2 et 1 respectivement) et que leurs sujets n’ont pas le même rôle sé- mantique : le premier sera agent et le second patient. L’attribution de ces rôles sémantiques nécessite d’étudier, en amont, la construction des lemmes présents dans nos gazetteers [François et al., 2007]. Pour cela, nous avons choisi de constituer 5 classes argumentales, chacune d’elles correspondant à un type de construction verbale ou nominale (voir le tableau 5.1). L’attribution des rôles sémantiques est réalisée par un ensemble de règles linguistiques (implémenté sous la forme d’un transducteur JAPE) exploitant les informations fournies par les phases précédentes. La figure 5.12 résume les différentes étapes de notre approche. FIGURE 5.12 – Extraction des événements : différentes étapes L’ensemble de ces traitements ont été implémentés grâce à des modules fournis dans GATE (voir la figure 5.13) et permettent d’obtenir une annotation positionnée sur l’ancre d’événement indiquant le type 96 Copyright c 2013 - CASSIDIAN - All rights reserved5.4. Extraction d’événements de l’événement (sa classe dans l’ontologie de domaine) ainsi que les différentes entités impliquées (date, lieu et participants). Un exemple d’annotation obtenu est fourni par la figure 5.14. FIGURE 5.13 – Extraction des événements : chaine de traitement GATE pour l’anglais FIGURE 5.14 – Extraction des événements : exemple d’annotation GATE 5.4.2 Apprentissage de patrons linguistiques Dans un second temps, nous nous sommes intéressés à l’extraction d’événements par une technique d’extraction de motifs séquentiels fréquents. Ce type d’approche permet d’apprendre automatiquement des patrons linguistiques compréhensibles et modifiables par un expert linguiste. Présentation de l’approche La découverte de motifs séquentiels a été introduite par [Agrawal et al., 1993] dans le domaine de la fouille de données et adaptée par [Béchet et al., 2012] à l’extraction d’information dans les textes. 97 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 5. Extraction automatique des événements Ceux-ci s’intéressent en particulier à la découverte de motifs séquentiels d’itemsets. Il s’agit de repérer, dans un ensemble de séquences de texte, des enchaînements d’items ayant une fréquence d’apparition supérieure à un seuil donné (dit support). La recherche de ces motifs s’effectue dans une base de sé- quences ordonnées d’itemsets où chaque séquence correspond à une unité de texte. Un itemset est un ensemble d’items décrivant un élément de cette séquence. Un item correspond à une caractéristique particulière de cet élément. Un certain nombre de paramètres peuvent être adaptés selon l’application visée : la nature de la séquence et des items, le nombre d’items, le support, etc. La fouille sur un ensemble de séquences d’itemsets permet l’extraction de motifs combinant plusieurs types d’items et d’obtenir ainsi des patrons génériques, spécifiques ou mixant les informations (ce qui n’est pas permis par les motifs d’items simples). Par exemple, cette technique permet d’extraire les patrons suivants : < t h r e e C h i l e a n s a r r e s t e d n e a r Buenos A i r e s > < NP a r r e s t e d n e a r L o c a ti o n > < NP VB PRP L o c a ti o n > où NP est un syntagme nominal, VB est un verbe, PRP est une préposition et Location est une entité nommée de type Lieu. La phase d’apprentissage permet d’obtenir un ensemble de motifs séquentiels fréquents qui sont ensuite sélectionnés par un expert pour en retenir les plus pertinents pour la tâche d’extraction visée. Les motifs retenus sont alors appliqués sur un le nouveau corpus à analyser, préalablement annoté pour obtenir les différents types d’items considérés. Contrairement à d’autres approches d’EI (présentées en section 2.2), la découverte de motifs séquentiels fréquents ne nécessite ni corpus annoté avec les entités-cibles, ni analyse syntaxique. Cela constitue un réel avantage car, tout d’abord, l’annotation manuelle de corpus reste un effort important et l’analyse syntaxique est encore une technologie aux performances inégales et peu disponible librement selon les langues. Toutefois, le point faible partagé par les méthodes d’apprentissage symbolique reste le nombre important de motifs extraits. Pour pallier ce problème, [Béchet et al., 2012] propose l’ajout de contraintes pour diminuer la quantité de motifs retournés et l’utilisation de l’outil Camelis [Ferré, 2007] pour ordonner et visualiser les motifs des plus généraux aux plus spécifiques puis filtrer les plus pertinents. Application à l’extraction automatique des événements Dans la lignée de ces travaux, nous avons utilisé un outil d’extraction de motifs séquentiels développé au GREYC110 (selon la méthode de [Béchet et al., 2012]). Le système repris présente plusieurs points forts qui justifient ce choix : il permet d’extraire des motifs dits "fermés" (c’est-à-dire non redondants) et génère ainsi moins de motifs que d’autres systèmes. De plus, ce logiciel s’avère robuste et permet la fouille de séquences d’itemsets, fonctionnalité qui est rarement proposée par les outils de fouille de données existants. Notre contribution a donc été d’adapter la technique de fouille de motifs séquentiels à notre domaine d’application et au traitement de dépêches de presse dans le but de générer automatiquement des patrons linguistiques pour la détection d’événements. Nous avons tout d’abord défini un ensemble de paramètres de base pour l’apprentissage : nous choisissons comme séquence la phrase et comme unité de base le 110. ❤tt♣s✿✴✴s❞♠❝✳❣r❡②❝✳❢r 98 Copyright c 2013 - CASSIDIAN - All rights reserved5.5. Conclusions token ainsi qu’un ensemble d’items de mot tels que sa forme fléchie, son lemme, sa catégorie grammaticale. Pour segmenter le corpus d’apprentissage et obtenir ces différentes informations, nous avons employé l’analyseur morpho-syntaxique TreeTagger 111 [Schmid, 1994]. A cela, nous proposons d’ajouter une reconnaissance des entités nommées (de type Personne, Organisation, Lieu et Date) ainsi qu’un repérage lexical des déclencheurs d’événements. Nous pouvons ainsi découvrir des motifs séquentiels fréquents impliquant un déclencheur d’événement et une ou plusieurs entités d’intérêt constituant les participants/circonstants de l’événement en question. Ces deux traitements sont réalisés grâce à la chaine de REN présentée en section 5.3 et aux gazetteers construits pour le premier système symbolique. Enfin, pour réduire le nombre de motifs retournés et faciliter la sélection manuelle de l’expert, nous introduisons un ensemble de contraintes spécifiques à notre application. D’une part, des contraintes linguistiques d’appartenance permettant de filtrer les motifs selon les items qu’ils contiennent. Pour notre application, la contrainte d’appartenance utilisée est de ne retourner que les motifs contenant au minimum un déclencheur d’événement et une entité nommée d’un type d’intérêt (voir plus haut). D’autre part, nous avons employé une contrainte dite de gap [Dong and Pei, 2007], permettant l’extraction de motifs ne contenant pas nécessairement des itemsets consécutifs (contrairement aux n-grammes dont les éléments sont strictement contigus). Un gap d’une valeur maximale n signifie qu’au maximum n itemsets (mots) sont présents entre chaque itemset du motif retourné dans les séquences correspondantes. Par exemple, si la séquence suivante (1) est présente dans le corpus d’apprentissage et que le gap est fixé à 2, le système pourra retourner le motif (2) : (1) [...] a suspected sectarian attack in Mehmoodabad area of Karachi [...] (2) < DT EventTrigger PRP Location PRP Location > où DT est un déterminant, EventTrigger un déclencheur d’événement, PRP une préposition et Location une entité nommée de type Lieu. La contrainte de gap permet, dans cet exemple, de retourner un motif plus générique en omettant la présence des mots "suspected" et "sectarian" si ceux-ci ne sont pas fréquents. Les contraintes de gap et de support (fréquence minimale d’un motif) sont des paramètres à ajuster lors de la phase d’apprentissage. Ce paramétrage a été réalisé pour nos expérimentations et est présenté en partie 7.2.1. Une fois le nombre de motifs extraits diminué grâce à des contraintes, ceux-ci ont été manuellement sélectionnés en fonction de leur pertinence pour la tâche d’extraction des événements. Pour cela, nous utilisons l’outil Camelis [Ferré, 2007] permettant d’ordonner et visualiser les motifs des plus généraux aux plus spécifiques puis de filtrer les plus pertinents. La figure 5.15 présente un aperçu de cet outil. Les motifs ainsi sélectionnés sont ensuite appliqués sur un nouveau corpus afin d’en extraire les événements-cibles. Dans un souci de réutilisation des systèmes déjà développés et pour faciliter cette dernière étape, nous choisissons d’exprimer les motifs obtenus grâce au formalisme JAPE et obtenons ainsi un nouveau module intégrable dans une chaine de traitement GATE. 5.5 Conclusions Notre seconde contribution détaillée dans ce chapitre est une approche mixte pour l’extraction automatique des événements fondée sur une méthode symbolique à base de grammaires contextuelles et sur 111. ❤tt♣✿✴✴✇✇✇✳✐♠s✳✉♥✐✲st✉tt❣❛rt✳❞❡✴♣r♦❥❡❦t❡✴❝♦r♣❧❡①✴❚r❡❡❚❛❣❣❡r✴ 99 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 5. Extraction automatique des événements FIGURE 5.15 – Visualisation et sélection des motifs avec l’outil Camelis une seconde technique de fouille de motifs séquentiels fréquents. Dans un premier temps, nous avons implémenté un extracteur d’entités nommées sur le modèle des approches symboliques classiques. Celui-ci permet d’annoter au préalable les différentes entités dites simples nécessaires à la reconnaissance des événements. Les résultats de ce premier extracteur ont montré des performances comparables à l’état de l’art bien qu’il pourrait être amélioré en réalisant notamment une extraction des dates dites relatives ou encore des entités d’intérêt autres que les entités nommées (comme l’extraction des équipements par exemple). Les deux méthodes pour l’extraction des événements ont montré leur efficacité lors de l’état de l’art présenté à la section 2.2.3 et nous renvoyons à la section 7.2 pour une évaluation de leurs performances sur un corpus de test de notre domaine d’application. La méthode à base de règles GATE pourra être améliorée en tenant compte d’autres informations fournies par l’analyse syntaxique telles que la voix (passive ou active) du déclencheur, la polarité de la phrase (négative ou positive), la modalité mais aussi les phénomènes de valence multiple. L’approche à base de motifs séquentiels fréquents pourrait également tirer profit de cette analyse syntaxique en intégrant les relations de dépendance produites en tant que nouveaux items ou sous forme de contraintes. Enfin, concernant les deux approches, leur limite principale (qui est aussi celle de beaucoup des approches de la littérature) est qu’ils réalisent l’extraction au niveau phrastique. Une granularité plus large tel que le paragraphe ou le discours pourrait permettre d’améliorer le rappel de ces approches. 100 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 6 Agrégation sémantique des événements Sommaire 6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 6.2 Normalisation des entités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 6.3 Similarité sémantique entre événements . . . . . . . . . . . . . . . . . . . . . 105 6.3.1 Similarité conceptuelle . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 6.3.2 Similarité temporelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 6.3.3 Similarité spatiale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 6.3.4 Similarité agentive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 6.4 Processus d’agrégation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 6.5 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 101 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 6. Agrégation sémantique des événements 6.1 Introduction L’état de l’art réalisé ainsi que le développement de notre propre système d’extraction d’information a montré la difficulté de cette tâche mais également et surtout des pistes d’amélioration possibles. Un premier constat est que les outils d’EI existants fournissent des résultats pouvant être incomplets, redondants, flous, conflictuels, imprécis et parfois totalement erronés. Par ailleurs, comme confirmé par nos premières expérimentations (voir la section 7.2), plusieurs approches actuelles s’avèrent complé- mentaires et une combinaison adaptée de leurs résultats pourrait aboutir à une découverte de l’information plus efficace. Dans le cadre de cette thèse, l’objectif visé est d’améliorer la qualité des fiches de connaissances générées et présentées à l’utilisateur afin de faciliter son processus de découverte des informations d’intérêt. Pour ce faire, nous proposons un processus d’agrégation sémantique des résultats issus de la phase d’extraction des événements. Cette troisième contribution vise à produire un ensemble de connaissances cohérent 112 en regroupant entre elles les mentions d’événements référant à un seul et même événement du monde réel. Ce processus est fondé sur des calculs de similarité sémantique et permet d’agréger à la fois des événements provenant des deux extracteurs développés et/ou de différentes sources d’information (agrégation intra- et inter-documents). Dans ce chapitre, nous présentons tout d’abord les mécanismes mis en place pour la normalisation des entités extraites, étape préalable nécessaire au processus d’agrégation. Dans un second temps, sont exposées les différentes méthodes définies pour estimer la similarité des événements au niveau de chacune de leurs dimensions (conceptuelle, temporelle, spatiale et agentive). Enfin, nous détaillons le processus d’agrégation proposé, fondé sur ces mesures de similarité locales. 6.2 Normalisation des entités Notre processus d’agrégation sémantique des événements nécessite de manipuler non plus de simples portions de texte extraites mais des objets sémantiques, des éléments de connaissance à proprement parler. Pour cela, nous proposons une première phase de normalisation visant à désambiguïser les différentes entités impliquées dans les événements dans le but de les rattacher à un objet du monde réel (c’est-à-dire déterminer leur référence). Nous présentons, dans les sections suivantes, les différentes méthodes mises en place pour la normalisation de ces entités. Normalisation des dates La normalisation des entités temporelles est nécessaire en raison des multiples façons possibles d’exprimer le temps en langage naturel ("04/09/2012", "Mon, 09/April/12", "two days ago", etc.). Celle-ci consiste à les convertir en un format unique facilitant leur comparaison et le calcul de leur similarité (voir la section 6.3.2). Conformément à notre modélisation temporelle de l’événement (voir la section 4.2.2), nous avons choisi pour cela le format TUS, définissant une représentation numérique unifiée des dates. Nous avons effectué cette normalisation au sein-même de notre module d’extraction d’information : les règles JAPE en question récupèrent séparément les différents éléments de la date (année, mois et jour, 112. Nous entendons ici par "cohérence" une absence de contradictions et de redondances. 102 Copyright c 2013 - CASSIDIAN - All rights reserved6.2. Normalisation des entités les granules dans le modèle TUS) afin de reconstituer sa forme normalisée et d’ajouter cette information sous forme d’attribut aux annotations de type Date produites. Nous avons fait le choix de nous intéresser exclusivement aux dates absolues car la résolution des dates relatives est un sujet de recherche à part entière [Llorens Martínez, 2011] que nous ne pouvons approfondir dans le cadre de cette thèse. En effet, l’extraction de ces dernières nécessite des traitements plus complexes en vue de leur normalisation tels que la résolution d’anaphores temporelles, l’analyse automatique du contexte linguistique d’occurrence, etc. Le tableau 6.1 ci-dessous présente quelques exemples de dates extraites dans des textes en anglais ainsi que leurs formes normalisées par notre outil. Date extraite Date normalisée 1999-03-12 1999-03-12 1948 1948-01-01/12-31 April 4, 1949 1949-04-04 July 1997 1997-07-01/31 03-12-99 1999-12-03 TABLE 6.1 – Normalisation des dates Normalisation des lieux [Garbin and Mani, 2005] ont montré que 40% des toponymes présents dans un corpus de dépêches de l’AFP sont ambigus. Il existe différents types d’ambiguïté : un nom propre peut référer à des entités de types variés (Paris peut faire référence à une ville ou à une personne), deux lieux géographiques peuvent porter le même nom (London est une ville en Angleterre mais aussi au Canada), certaines entités géographiques peuvent également porter plusieurs noms ou en changer au cours du temps, etc. Notre objectif ici est d’associer à chaque entité géographique extraite un référent unique correspondant à une entité du monde réel bien définie. Nous avons pour cela utilisé un service de désambiguïsation des entités géographiques développé dans notre département. Celui-ci opère en attribuant à chaque entité géographique extraite un identifiant de la base sémantique GeoNames. Le projet GeoNames a notamment pour avantages d’être open-source, de définir de nombreux toponymes dans le monde (l’information n’est pas limitée à certaines régions géographiques) et d’intégrer des relations avec d’autres sources de données (permettant des traitements plus avancés si nécessaire). Par ailleurs, ce composant de normalisation des lieux s’inspire des travaux de [Buscaldi, 2010]. L’approche est fondée sur des calculs de cohérence sur l’ensemble des toponymes possibles pour chaque entité géographique extraite. Cette cohérence est définie à partir de trois types de critères : – les distances géographiques entre toponymes ; – les types géographiques des toponymes (continent, ville, rivière ...) ; – les distances entre les entités géographiques au sein du texte considéré. L’intérêt de cette méthode est de pouvoir dégager des groupes de toponymes cohérents entre eux. De plus, elle permet de donner plus d’importance à la notion de qualité administrative par rapport à celle de proximité géographique lorsqu’une dépêche parle, par exemple, de New York, Paris et Londres. 103 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 6. Agrégation sémantique des événements Le code ci-dessous est un extrait des triplets RDF/XML produits par ce service. Les quatre premières lignes lient l’entité extraite identifiée par l’URI http ://weblab.ow2.org/wookie/instances/Place#india et son entité de référence dans la base GeoNames (ayant pour identifiant http ://sws.geonames.org/1269750/). Le reste de l’exemple donne quelques-unes des propriétés de l’entité GeoNames Republic of India : sa classe dans l’ontologie Geonames (ligne 15), ses coordonnées géographiques selon le standard WGS84 (lignes 9 et 11), son nom dans GeoNames (ligne 14), etc. 1 < r d f : D e s c r i p t i o n 2 r d f : a b o u t = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s / P l a c e # i n d i a " > 3 < g e o : h a s S p a t i a l T h i n g r d f : r e s o u r c e = " h t t p : / / sws . geonames . o r g / 1 2 6 9 7 5 0/ " / > 4 < / r d f : D e s c r i p t i o n > 5 6 < r d f : D e s c r i p t i o n r d f : a b o u t = " h t t p : / / sws . geonames . o r g / 1 2 6 9 7 5 0/ " > 7 < g e o : p a r e n t F e a t u r e r d f : r e s o u r c e = " h t t p : / / sws . geonames . o r g / 6 2 9 5 6 3 0/ " / > 8 < g e o : p a r e n t F e a t u r e r d f : r e s o u r c e = " h t t p : / / sws . geonames . o r g / 6 2 5 5 1 4 7/ " / > 9 < w g s 8 4:l o n g 10 r d f : d a t a t y p e = " h t t p : / / www. w3 . o r g / 2 0 0 1 / XMLSchema# d o u bl e " > 7 7 . 0 < / w g s 8 4:l o n g > 11 < w g s 8 4 : l a t 12 r d f : d a t a t y p e = " h t t p : / / www. w3 . o r g / 2 0 0 1 / XMLSchema# d o u bl e " > 2 0 . 0 < / w g s 8 4 : l a t > 13 < r d f s : l a b e l > R e p u bli c o f I n d i a < / r d f s : l a b e l > 14 < ge o: name > R e p u bli c o f I n d i a < / ge o: name > 15 < r d f : t y p e r d f : r e s o u r c e = " h t t p : / / www. geonames . o r g / o nt o l o g y # F e a t u r e " / > 16 < / r d f : D e s c r i p t i o n > FIGURE 6.1 – Désambiguïsation des entités spatiales : exemple de triplets RDF/XML produits Normalisation des participants La normalisation des participants est également une problématique complexe de par la diversité des noms de personnes et d’organisations rencontrés dans les dépêches de presse. Une même entité est souvent mentionnée sous de multiples formes telles que des abréviations (Boston Symphony Orchestra vs. BSO), des formes raccourcies (Osama Bin Laden vs. Bin Laden), des orthographes alternatives (Osama vs. Ussamah vs. Oussama), des alias ou pseudonymes (Osama Bin Laden vs. Sheikh Al-Mujahid). De nombreux travaux se sont intéressés à la désambiguïsation de telles entités et particulièrement depuis l’essor du mouvement Linked Data et la mise à disposition de nombreuses bases de connaissances sé- mantiques sur le Web (voir le chapitre 3). Bien que cette thèse ne nous ait pas permis d’approfondir cette problématique, nous avons retenu, à titre de perspectives, certaines approches théoriques et outils qui pourront être intégrés au sein de notre processus d’agrégation. Nous pouvons citer, parmi les outils disponibles sur le Web, DBPedia Spotlight 113 et Zemanta 114 , permettant l’attribution d’un référent unique (provenant d’une base de connaissances externe) à chaque entité d’intérêt repérée dans un texte. Le premier outil est issu d’un projet open source et se présente sous la forme d’un service Web utilisant DBPedia comme base sémantique de référence. Le système Zemanta est lui propriétaire et initialement conçu pour aider les créateurs de contenu Web (éditeurs, blogueurs, etc.) grâce à des suggestions automatiques diverses (images, liens, mots-clés, etc.). Cet outil suggère notamment des liens sémantiques vers des concepts issus de nombreuses bases de connaissances telles que Wikipédia, IMDB, MusicBrainz, etc. Du côté des travaux théoriques, nous avons retenu deux 113. ❤tt♣s✿✴✴❣✐t❤✉❜✳❝♦♠✴❞❜♣❡❞✐❛✲s♣♦t❧✐❣❤t✴❞❜♣❡❞✐❛✲s♣♦t❧✐❣❤t✴✇✐❦✐ 114. ❤tt♣✿✴✴❞❡✈❡❧♦♣❡r✳③❡♠❛♥t❛✳❝♦♠✴ 104 Copyright c 2013 - CASSIDIAN - All rights reserved6.3. Similarité sémantique entre événements approches qui nous paraissent adaptées pour réaliser cette étape de normalisation des participants d’un événement. D’une part, [Cucerzan, 2007] propose de réaliser de façon conjointe la reconnaissance des entités nommées et leur désambiguïsation. Pour cette seconde tâche, cette approche emploie une grande quantité d’informations contextuelles et catégorielles automatiquement extraites de la base Wikipédia. Il est notamment fait usage des nombreux liens existants entre les entités de cette base, des pages de désambiguïsation sémantique (redirections) ainsi que d’un modèle vectoriel créé à partir du contexte textuel des entités nommées repérées. Par ailleurs, [Mann and Yarowsky, 2003] présente un ensemble d’algorithmes visant à déterminer le bon référent pour des noms de personne en utilisant des techniques de regroupement non-supervisé et d’extraction automatique de caractéristiques. Les auteurs montrent notamment comment apprendre et utiliser automatiquement l’information biographique contenue dans les textes (date de naissance, profession, affiliation, etc.) afin d’améliorer les résultats du regroupement. Cette technique a montré de bons résultats sur une tâche de désambiguïsation de pseudonymes. 6.3 Similarité sémantique entre événements Nous proposons d’évaluer la similarité entre événements, c’est-à-dire d’estimer à quel degré deux mentions d’événement peuvent référer à un seul et même événement de la réalité. Cette estimation sera utilisée dans notre application pour aider l’utilisateur final à compléter ses connaissances et à prendre des décisions de fusion d’information. Celui-ci pourra, le cas échéant, décider de fusionner deux fiches de connaissances (une interface d’aide à la fusion de fiches a été développée au sein de la plateforme WebLab) qu’il considère référer au même événement réel. Ci-après, nous détaillons les mesures de similarité mises en œuvre pour chacune des dimensions de l’événement et les exprimons selon une échelle qualitative. En effet, une échelle qualitative s’avère plus pertinente pour élaborer un processus de capitalisation orienté utilisateur : étant donné que ces similarités seront présentées à l’analyste, une estimation symbolique sera mieux comprise qu’une similarité numérique. Nous définissons cette échelle comme composée de quatre niveaux : 1. identité (ID) : les deux dimensions réfèrent à la même entité réelle, 2. proximité (PROX) : les deux dimensions ont des caractéristiques communes et pourraient référer à la même entité du monde réel, 3. différence (DIFF) : les deux dimensions ne réfèrent pas à la même entité, 4. manque d’information (MI) : il y a un manque d’information dans l’une ou les deux dimensions (résultant du document d’origine ou du système d’extraction) qui empêche de savoir si elles ré- fèrent ou non à la même entité réelle. Définition 4. Une fonction de similarité sémantique est une fonction : R : E × E → {ID, P ROX, DIF F, MI} où E est un ensemble d’événements et ID, PROX, DIFF et MI représentent respectivement l’identité, la proximité, la différence et le manque d’information. Ces niveaux sont définis et illustrés dans les sections suivantes, à travers différentes fonctions de similarité spécifiques à chaque dimension de l’événement : Rs, Rt , Rsp et Ra. 105 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 6. Agrégation sémantique des événements 6.3.1 Similarité conceptuelle Soient e = (S, T, SP, A) et e 0 = (S 0 , T0 , SP0 , A0 ) deux événements et S et S 0 leurs dimensions conceptuelles respectives. Définition 5. Rs est une fonction de similarité conceptuelle : Rs : E × E → {ID, P ROX, DIF F} tel que 1. Rs(e, e0 ) = DIF F ssi S et S 0 sont deux classes différentes de l’ontologie et ne sont pas en relation de subsomption l’une avec l’autre 2. Rs(e, e0 ) = P ROX ssi S est une sous-classe (à tout niveau) de S 0 dans l’ontologie (et inversement) 3. Rs(e, e0 ) = ID ssi S et S 0 correspondent à la même classe de l’ontologie de domaine Notons ici que le niveau Manque d’Information (MI) n’est pas défini car la dimension conceptuelle d’un événement est nécessairement fournie par notre système d’extraction. En effet, celui-ci est conçu de façon telle qu’il n’y a pas d’extraction d’événement sans déclencheur d’événement et association à une classe de l’ontologie. Prenons quelques exemples pour illustrer le calcul de cette similarité conceptuelle. Exemple 2. Soient e1, e2, e3 et e4 des événements et S1, S2, S3 et S4 leurs dimensions conceptuelles respectives tel que S1 = AttackEvent, S2 = BombingEvent, S3 = SearchOperation et S4 = AttackEvent. 1. Rs(e1, e3) = DIF F car les classes S1 et S3 ne sont pas en relation de subsomption dans notre ontologie de domaine (voir l’annexe B). 2. Rs(e1, e2) = P ROX car S2 est une sous-classe de S1 dans l’ontologie (voir l’annexe B). 3. Rs(e1, e4) = ID car e1 et e4 sont des instances de la même classe d’événement dans WOOKIE (S1 = S4 = AttackEvent). 6.3.2 Similarité temporelle Soient T = [g1, g2, g3] et T 0 = [g 0 1 , g0 2 , g0 3 ] deux entités temporelles exprimées au formalisme TUS. Définition 6. Nous définissons ⊕, un opérateur de complétion temporelle, prenant en paramètres T et T 0 où T et/ou T 0 est incomplet (voir la section 4.2.2) et retourne une expression temporelle T 00 = [g 00 1 , g00 2 , g00 3 ] où : 1. si gi = g 0 i alors g 00 i = gi = g 0 i 2. si gi = ∅ alors g 00 i = g 0 i (et inversement) Exemple 3. Si T = [∅, 3, 15] et T 0 = [2012, ∅, ∅] alors T 00 = T ⊕ T 0 = [2012, 3, 15] Exemple 4. Si T = [∅, 2, ∅] et T 0 = [2013, ∅, 29] alors T 00 = T ⊕ T 0 = [2013, 2, 29] 106 Copyright c 2013 - CASSIDIAN - All rights reserved6.3. Similarité sémantique entre événements Dans certains cas, deux événements ayant deux dates d’occurrence strictement différentes selon le format TUS (niveau DIFF défini plus bas) peuvent tout de même référer au même événement dans le monde réel. Par exemple, une attaque peut durer plusieurs heures sur deux jours et ce même événement pourra être reporté avec deux dates différentes. Afin de traiter ces situations particulières, nous définissons Dt(T, T0 ), une fonction générique retournant une distance temporelle entre deux entités et un seuil dt délimitant la différence (DIFF) et la proximité (PROX) temporelle. Cette distance peut être obtenue par des librairies dédiées à la manipulation d’entités temporelles et le seuil dt défini en fonction de l’application. Soient e = (S, T, SP, A) et e 0 = (S 0 , T0 , SP0 , A0 ) deux événements, nous définissons Rt au moyen de ces différents opérateurs et seuils. Définition 7. Rt est une fonction de similarité temporelle : Rt : E × E → {ID, P ROX, DIF F, MI} telle que 1. Rt(e, e0 ) = DIF F ssi l’une des conditions suivantes est vérifiée :  ∃i∈{1,2,3} tel que gi 6= ∅ et g 0 i 6= ∅ et gi 6= g 0 i et Dt(T, T0 ) > dt si T ou T 0 est incomplet et T ⊕ T 0 retourne une date illégale (voir la section 4.2.2) 2. Rt(e, e0 ) = P ROX ssi l’une des conditions suivantes est vérifiée :  Rt(e, e0 ) = DIF F et Dt(T, T0 ) ≤ dt T ou T 0 est incomplet et T ⊕ T 0 retourne une date légale (voir la section 4.2.2) 3. Rt(e, e0 ) = ID ssi T et T 0 sont complets (voir la section 4.2.2) et ∀i∈{1,2,3} , gi = g 0 i 4. Rt(e, e0 ) = MI ssi T et/ou T 0 est inconnu (c’est-à-dire que soit l’information n’était pas présente dans la source, soit elle n’a pas été extraite par le système d’extraction) Prenons quelques exemples pour illustrer le calcul de cette similarité temporelle. Exemple 5. Soient e1, e2, e3, e4 et e5 des événements et T1, T2, T3, T4 et T5 leurs dimensions temporelles respectives tel que T1 = [2012, 11, 05], T2 = [2013, 11, 05], T3 = ∅, T4 = [2012, 11, ∅] et T5 = [2013, 11, 05]. 1. Rt(e1, e2) = DIF F 2. Rt(e1, e4) = P ROX 3. Rt(e2, e5) = ID 4. Rt(e2, e3) = MI 6.3.3 Similarité spatiale Pour estimer la similarité entre entités géographiques, nous utilisons les relations topologiques du modèle RCC-8 (présenté en section 4.2.3) ainsi que les différentes relations spatiales existantes dans la base GeoNames. Comme mentionné précédemment, la dimension spatiale peut varier avec le point de 107 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 6. Agrégation sémantique des événements vue duquel un événement est rapporté : par exemple, un événement survenu à Cestas (un petit village à côté de Bordeaux) pourra être précisément situé par une agence de presse française mais pourrait être plus généralement localisé à Bordeaux (la grande ville la plus proche) par une agence étrangère. La similarité peut également être influencée par la nature des deux entités spatiales comparées (ville, pays, quartier, continent, etc.) et par la taille de la région administrative les englobant (par exemple, la distance entre deux villes du Lichtenstein ne sera pas considérée de la même façon que celle entre deux villes de Russie). Pour résumer, l’absence d’identité topologique entre deux lieux peut être due à une différence dans le niveau d’abstraction mais ne signifie pas nécessairement une différence spatiale (niveau DIFF). Pour mieux traiter ces cas, nos introduisons Dsp(SP, SP0 ), une fonction générique retournant une distance spatiale entre deux entités géographiques et un seuil dsp délimitant la différence (DIFF) et la proximité (PROX) spatiale. Cette distance peut être obtenue par des librairies dédiées à la manipulation d’entités spatiales et le seuil dsp défini en fonction de l’application. Soient e = (S, T, SP, A) et e 0 = (S 0 , T0 , SP0 , A0 ) deux événements et r une relation RCC-8 entre deux entités spatiales SP et SP0 (voir la section 1.3.2 et la figure 1.11). Définition 8. Rsp est une fonction de similarité spatiale : Rsp : E × E → {ID, P ROX, DIF F, MI} telle que 1. Rsp(e, e0 ) = DIF F ssi r(SP, SP0 ) = DC et Dsp(SP, SP0 ) > dsp 2. Rsp(e, e0 ) = P ROX ssi l’une des conditions suivantes est vérifiée :  r(SP, SP0 ) ∈ {EC, P O, T P P, NT P P, T P P i, NT P P i} r(SP, SP0 ) = DC et Dsp(SP, SP0 ) < dsp 3. Rsp(e, e0 ) = ID ssi r(SP, SP0 ) = EQ 4. Rsp(e, e0 ) = MI ssi SP et/ou SP0 est inconnu (c’est-à-dire que soit l’information n’était pas présente dans la source, soit elle n’a pas été extraite par le système d’extraction) Ces définitions théoriques sont implémentées en utilisant les relations GeoNames comme suit : Définition 9. 1. Rsp(e, e0 ) = DIF F ssi SP et SP0 ne sont liés par aucune relation topologique dans GeoNames et Dsp(SP, SP0 ) > dsp 2. Rsp(e, e0 ) = P ROX ssi (a) SP et SP0 sont liés par une relation "nearby", "neighbour" ou "children" dans la base GeoNames (b) SP et SP0 ne sont liés par aucune relation topologique dans GeoNames et Dsp(SP, SP0 ) < dsp 3. Rsp(e, e0 ) = ID ssi SP et SP0 ont le même identifiant GeoNames (c’est à dire la même URI) 4. Rsp(e, e0 ) = MI ssi SP et/ou SP0 est inconnu (c’est-à-dire que soit l’information n’était pas présente dans la source, soit elle n’a pas été extraite par le système d’extraction) Prenons quelques exemples pour illustrer le calcul de cette similarité spatiale. 108 Copyright c 2013 - CASSIDIAN - All rights reserved6.3. Similarité sémantique entre événements Exemple 6. Soient e1, e2, e3, e4 et e5 des événements et SP1, SP2, SP3, SP4 et SP5 leurs dimensions spatiales respectives tel que SP1 = P aris, SP2 = Singapour, SP3 = ∅, SP4 = F rance et SP5 = Singapour. 1. Rsp(e1, e2) = DIF F 2. Rsp(e1, e4) = P ROX 3. Rsp(e2, e5) = ID 4. Rsp(e2, e3) = MI 6.3.4 Similarité agentive Comme mentionné précédemment, l’ensemble des participants d’un événement est composé d’entités nommées de type Personne ou Organisation et ces participants sont concrètement stockés dans une base de connaissances sous la forme de chaines de caractères. Par conséquent, l’agrégation au niveau de cette dimension implique l’utilisation de mesures de similarité dédiées aux chaines de caractères mais aussi adaptées à la comparaison des entités nommées. La distance de Jaro-Winkler [Winkler et al., 2006] convient bien à notre cadre d’application en raison de son temps d’exécution modéré et sa bonne performance dans le traitement des similarités entre noms de personne notamment. Notre approche visant à rester indépendante des mesures de similarité choisies, il conviendra d’évaluer plusieurs métriques au sein de notre système de capitalisation des connaissances pour guider notre choix final et définir le seuil de distance dstr utilisé ci-dessous. Nous définissons Dstr(P, P0 ), une fonction générique retournant une distance entre deux chaines de caractères tel que Dstr(P, P0 ) = 0 signifie que les chaines de caractères représentant les participants P et P 0 sont égales. De plus, comme nous manipulons des entités nommées et non de simples chaines de caractères, nous avons exploré d’autres techniques dédiées à la résolution de coréférence entre entités nommées telles que [Finin et al., 2009]. Dans un premier temps, nous proposons d’utiliser la base sémantique DBpedia 115 pour agréger tous les noms alternatifs référant à la même entité réelle. Nous définissons alt(P) comme une fonction retournant tous les noms alternatifs donnés dans DBpedia pour une participant P. Définition 10. P et P 0 coréfèrent, noté P ' P 0 , ssi P ∈ alt(P 0 ) (et inversement) ou Dstr(P, P0 ) = 0 Par ailleurs, comme mentionné en section 4.2.4, la dimension A est définie comme un ensemble de participants, par conséquent, l’agrégation des participants d’un événement doit permettre de traiter une similarité entre ensembles. Définition 11. A et A0 coréfèrent, noté A ∼= A0 , ssi |A| = |A0 | et ∀P ∈ A, ∃P 0 ∈ A0 tel que P ' P 0 (et inversement) Soient e = (S, T, SP, A) et e 0 = (S 0 , T0 , SP0 , A0 ) deux événements tels que A = {P1, P2, . . . , Pn} et A0 = {P 0 1 , P0 2 , . . . , P0 n}. 115. ❤tt♣✿✴✴❞❜♣❡❞✐❛✳♦r❣✴ 109 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 6. Agrégation sémantique des événements Définition 12. Ra est une fonction de similarité agentive : Ra : E × E → {ID, P ROX, DIF F, MI} tel que 1. Ra(e, e0 ) = DIF F ssi ∀P ∈A et ∀P0∈A0, P 6∈ alt(P 0 ) (et inversement) et Dstr(P, P0 ) > dstr 2. Ra(e, e0 ) = P ROX ssi l’une des conditions suivantes est vérifiée :  ∀P ∈A, ∃P0∈A0 tel que P ' P 0 ∀P ∈A, ∃P0∈A0 tel que Dstr(P, P0 ) ≤ dstr 3. Ra(e, e0 ) = ID ssi A ∼= A0 4. Ra(e, e0 ) = MI ssi |A| = 0 et/ou |A0 | = 0 (c’est-à-dire que soit l’information n’était pas présente dans la source, soit elle n’a pas été extraite par le système d’extraction) Prenons quelques exemples pour illustrer le calcul de cette similarité agentive. Exemple 7. Soient e1, e2, e3, e4 et e5 des événements et A1, A2, A3, A4 et A5 leurs dimensions agentives respectives tel que A1 = {Elmer Eusebio}, A2 = {Police}, A3 = {∅}, A4 = {E. Eusebio} et A5 = {Police}. 1. Ra(e1, e2) = DIF F 2. Ra(e1, e4) = P ROX 3. Ra(e2, e5) = ID 4. Ra(e2, e3) = MI 6.4 Processus d’agrégation Nous proposons un processus d’agrégation fondé sur une représentation en graphe : l’ensemble des similarités calculées est organisé en un graphe non-orienté G = (E, edges), où E est l’ensemble des sommets et chaque sommet e ∈ E est un événement extrait, et où edges est l’ensemble des arêtes et chaque arête edge est un lien entre deux sommets e et e0 défini comme une fonction de similarité multivaluée. Définition 13. La fonction edge a pour domaine de définition : edge : E × E → R où R = Rs × Rt × Rsp × Ra correspondant aux fonctions de similarité définies précédemment. Définition 14. La fonction edge est définie telle que : edge(e, e0) = hRs(e, e0), Rt(e, e0), Rsp(e, e0), Ra(e, e0)i 110 Copyright c 2013 - CASSIDIAN - All rights reserved6.4. Processus d’agrégation Cette représentation est bien adaptée à notre cadre d’application (la plateforme WebLab et les technologies du Web sémantique au sens large), car la connaissance provenant des différents services de traitement de l’information est stockée dans des bases de connaissances sémantiques fondées sur les graphes. Le graphe G est construit selon le principe suivant : chaque événement extrait (avec l’ensemble de ses dimensions) est comparé deux à deux à chacun des autres événements pour déduire un degré de similarité au niveau de chaque dimension (Rs, Rt , Rsp et Ra) (selon les principes théoriques exposés dans les sections précédentes). Nous créons ensuite dans G l’ensemble des sommets E correspondant aux événements extraits ainsi qu’une arête multivaluée de similarité edge entre chaque paire d’événements. Les similarités obtenues pour chacune des dimensions (conceptuelle, temporelle, spatiale et agentive) constituent un ensemble d’indicateurs que nous souhaitons exploiter afin de déterminer si des événements co-réfèrent. Il est communément admis dans les applications de veille en sources ouvertes que l’information manipulée par les analystes est incertaine à plusieurs niveaux : l’information en elle-même (sa véracité, sa fiabilité, etc.), la source, les traitements opérés, etc. Partant de ce constat, nous voulons laisser à l’utilisateur le choix final de fusionner (ou non) deux événements jugés similaires, et cela dans le but d’éviter toute perte d’information pouvant survenir avec une fusion entièrement automatisée. L’objectif de nos travaux est en effet, non pas de concevoir un système de fusion de fiches à proprement parler, mais plutôt d’aider l’analyste dans sa prise de décision grâce à un processus d’agrégation sémantique des événements. Pour ce faire, nous proposons d’appliquer un regroupement automatique (clustering) sur le graphe de similarités obtenu afin de guider l’analyste au sein de cet ensemble de connaissances. Différentes combinaisons de similarités sont possibles pour réaliser ce regroupement en fonction des besoins de l’utilisateur. Nous proposons, dans un premier temps, de hiérarchiser l’ensemble de ces configurations selon leur degré de similarité global (en commençant par celle qui lie les événements les plus similaires) de la manière suivante : Configuration (C1) {isConceptuallyID, isT emporallyID, isSpatiallyID, isAgentivelyID} Configuration (C2a) {isConceptuallyID, isT emporallyID, isSpatiallyID, isAgentivelyP ROX} Configuration (C2b) {isConceptuallyID, isT emporallyID, isSpatiallyP ROX, isAgentivelyID} Configuration (C2c) {isConceptuallyID, isT emporallyP ROX, isSpatiallyID, isAgentivelyID} Configuration (C2d) {isConceptuallyP ROX, isT emporallyID, isSpatiallyID, isAgentivelyID} Configuration (C3a) {isConceptuallyID, isT emporallyID, isSpatiallyP ROX, isAgentivelyP ROX} Configuration (Cn) etc. Intuitivement, la configuration C1 parait la plus à même de regrouper entre eux les événements qui co-réfèrent. Toutefois, l’incomplétude et l’hétérogénéité des données extraites est telle que cette première configuration est peu fréquemment observée dans une application réelle. De sorte que, si l’analyste souhaite retrouver dans sa base de connaissances des événements similaires, il sera plus pertinent d’explorer d’autres configurations d’agrégation. Pour cela, nous proposons de réaliser un regroupement ascendant et hiérarchique du graphe de similarités fondé sur les différentes configurations de similarités possibles. Le processus de regroupement se déroule ainsi : 111 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 6. Agrégation sémantique des événements 1. Nous appliquons une première passe de regroupement selon la première configuration de notre hiérarchie C1 afin d’obtenir un premier jeu de n agrégats d’événements Ω. Ainsi, chaque sommet e ∈ Ωi est lié à tous les autres sommets de Ωi par une arête edgeC1 satisfaisant la configuration C1. Par ailleurs, chaque agrégat Ωi ainsi formé possède la caractéristique suivante : l’ensemble des arêtes edgeCn (présentes avant le premier regroupement) reliant un sommet e ∈ Ωi à un autre sommet e0 ∈ Ωj sera de même configuration de similarités. 2. Nous pouvons donc fusionner cet ensemble d’arêtes en une nouvelle arête edgeCx où Cx correspond à cette configuration commune et relie l’agrégat Ωi au sommet e ∈ Ωj . 3. Une fois ce nouvel ensemble d’arêtes créé, nous proposons d’effectuer de nouveau un regroupement selon une nouvelle configuration Cx (la suivante dans la hiérarchie) et ainsi de suite. Ce processus de regroupements successifs n’a pas vocation à être réalisé jusqu’à épuisement des configurations possibles. En effet, afin de proposer un environnement d’aide à la décision flexible et adaptable, nous envisageons de laisser l’analyste libre du nombre de regroupements qu’il souhaite effectuer ainsi que de définir ses propres configurations de regroupement. Cela sera réalisé de la façon suivante : les différents agrégats d’événements constitués après chaque phase de regroupement seront rendus accessibles à l’utilisateur au travers de diverses interfaces de la plateforme WebLab (recherche, carte géographique, bandeau temporel et autres vues). Celui-ci pourra observer les différents agrégats proposés et décider en fonction de cela du prochain regroupement à effectuer. Par exemple, l’utilisateur pourra demander au système de lui renvoyer tous les événements jugés similaires seulement sur le plan temporel (niveau PROX) et ensuite examiner les fiches d’événements correspondantes pour en déduire de nouvelles connaissances. Ce processus d’agrégation itératif et interactif sera illustré dans la section 7.3 de nos expérimentations. 6.5 Conclusions Ce chapitre nous a permis de présenter un processus d’agrégation sémantique des événements fondé sur une échelle de similarité qualitative et sur un ensemble de mesures spécifiques à chaque type de dimension. Nous avons tout d’abord proposé des mécanismes de normalisation des entités, adaptés à leurs natures, afin d’harmoniser formellement les différentes informations extraites. Concernant ce premier aspect, nous envisageons des améliorations futures telles que la désambiguïsation des dates relatives, par exemple, ou encore l’intégration au sein de notre système d’un outil de désambiguïsation des participants (tels que ceux mentionnés en section 6.2). Nous avons ensuite proposé un une échelle de similarité qualitative orientée utilisateur et un ensemble de calculs de similarité intégrant à la fois un modèle théorique adapté à chaque dimension et une implémentation technique employant les technologies du Web sémantique (ontologies et bases de connaissances externes). Nous souhaitons poursuivre ce travail en élargissant le panel de similarités employées comme en intégrant des mesures de proximité ontologique plus sophistiquées ainsi des outils de distance temporelle et spatiale (fondés sur les coordonnées géographiques par exemple) et pour la similarité agentive, une distance dédiée aux ensembles telle que SoftJaccard [Largeron et al., 2009]. L’ensemble des similarités calculées pourraient également provenir d’une fonction d’équivalence apprise automatiquement à partir de données annotées manuellement. Enfin, un processus d’agrégation fondé sur les graphes a été proposé afin de regrouper les mentions d’événements similaires et de permettre à l’analyste de découvrir de nouvelles connaissances. Ce type d’agrégation possède l’avantage principal d’être intrinsèquement adapté aux traitement des bases de connaissances et 112 Copyright c 2013 - CASSIDIAN - All rights reserved6.5. Conclusions ainsi aisément généralisable à d’autres silos du Web de données. Cette agrégation pourrait également être réalisée par calcul d’une similarité globale qui combinerait les différentes similarités locales. Le point délicat pour cette méthode sera alors d’estimer le poids de chaque dimension dans cette combinaison. Enfin, la possibilité donnée à l’utilisateur de fusionner des fiches grâce aux suggestions d’agrégats soulèvera d’autres problématiques à explorer telles que la mise à jour et le maintien de cohérence de la base de connaissance en fonction des actions de l’analyste. 113 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 6. Agrégation sémantique des événements 114 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 7 Expérimentations et résultats Sommaire 7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 7.2 Évaluation du système d’extraction . . . . . . . . . . . . . . . . . . . . . . . . 116 7.2.1 Protocole d’évaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 7.2.2 Analyse des résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 7.2.3 Bilan de l’évaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 7.3 Premières expérimentions sur l’agrégation sémantique . . . . . . . . . . . . . 122 7.3.1 Implémentation d’un prototype . . . . . . . . . . . . . . . . . . . . . . . 122 7.3.2 Jeu de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 7.3.3 Exemples d’observations . . . . . . . . . . . . . . . . . . . . . . . . . . 125 7.3.4 Bilan de l’expérimentation . . . . . . . . . . . . . . . . . . . . . . . . . 128 7.4 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 115 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 7. Expérimentations et résultats 7.1 Introduction Ce dernier chapitre présente les expérimentations réalisées durant cette thèse afin d’évaluer l’apport scientifique et technique de nos contributions. Nous commençons par une évaluation du système d’extraction d’événements conçu et implémenté tel que décrit dans le chapitre 5. Est ensuite détaillée notre seconde expérimentation appliquée cette fois-ci à l’évaluation du processus d’agrégation sémantique des événements (voir le chapitre 6). Pour chacune des évaluations, nous décrivons, tout d’abord, le système évalué et les différents corpus et paramètres utilisés pour l’expérimentation. Puis, nous présentons une analyse qualitative et/ou quantitative (par différentes métriques) des résultats obtenus. Enfin, nous exposons les différentes limites et perspectives de ces évaluations. 7.2 Évaluation du système d’extraction La première expérimentation vise à évaluer l’approche d’extraction des événements élaborée et dé- taillée en section 5.4. Nos objectifs sont, d’une part, d’estimer de façon quantitative les performances de chacune des méthodes d’extraction d’événements conçue et implémentée (l’extracteur à base de règles et celui fondé sur un apprentissage de motifs) et, d’autre part, de montrer leur complémentarité et l’utilité de les combiner. 7.2.1 Protocole d’évaluation Pour réaliser ces objectifs nous proposons d’extraire automatiquement l’ensemble des événements d’intérêt pour notre domaine d’application au sein d’une collection de textes de type journalistique en anglais et dont le thème est d’intérêt pour le ROSO. Nous nous focalisons donc sur la vingtaine de types d’événement listée en section 4.2.1 et sur leurs dimensions : temporelle (la date de l’événement), spatiale (son lieu d’occurrence) et agentive (les personnes et organisations impliquées) conformément au modèle d’événement présenté au chapitre 4.2. Nous présentons par la suite les données et les paramètres d’apprentissage ayant servi à mettre en place l’approche à base de motifs séquentiels. Précisons que la première approche symbolique n’a pas nécessité de paramétrage particulier. Données d’apprentissage Le premier ensemble de données nécessaire est un corpus d’apprentissage afin de mettre en œuvre notre système d’extraction par motifs séquentiels fréquents. Conformément aux paramètres définis en section 5.4.2, la découverte de motifs pertinents pour notre tâche d’extraction des événements nécessite un corpus de textes présentant les caractéristiques suivantes : – découpage en phrases ; – découpage en tokens; – lemmatisation ; – étiquetage grammatical ; – annotation des entités nommées (dates, lieux, personnes et organisations) ; – repérage des déclencheurs d’événements. 116 Copyright c 2013 - CASSIDIAN - All rights reserved7.2. Évaluation du système d’extraction Nous avons constitué ce corpus de manière semi-automatique à partir de 400 dépêches de presse sur l’engagement du Canada en Afghanistan collectées sur le Web 116 et de 700 dépêches parues entre 2003 et 2009 sur le site de l’ISAF 117. Dans un second temps, nous avons traité automatiquement ce corpus pour obtenir l’ensemble des annotations nécessaires : les découpages en phrases et mots ainsi que la lemmatisation ont été réalisés par des modules fournis dans GATE, l’étiquetage grammatical par l’outil TreeTagger et enfin l’annotation en entités nommées et déclencheurs d’événements grâce à notre système d’extraction d’EN et nos gazetteers d’événements. Puis, nous avons révisé manuellement ces deux derniers types d’annotation afin de corriger les éventuelles erreurs et ainsi garantir une meilleure qualité des données d’apprentissage. Enfin, un ensemble de pré-traitements spécifiques sont réalisés pour transformer l’ensemble de ce corpus au format supporté par l’outil d’extraction de motifs (notamment la constitution des itemsets). L’annexe K présente, à titre d’exemples, plusieurs phrases extraites du corpus d’apprentissage. Données de test Le second jeu de données nécessaire est un corpus de test (ou référence) permettant de comparer notre extraction d’événements par rapport à une vérité-terrain. Pour cela, nous avons choisi d’utiliser un corpus fourni dans la campagne d’évaluation MUC-4 et constitué de 100 dépêches de presse relatant des faits terroristes en Amérique du Sud. Il est fourni avec ce corpus un ensemble de fiches de référence, une seule fiche correspondant à une seule dépêche et décrivant l’événement principal relaté par celleci ainsi qu’un ensemble de propriétés. Ces fiches d’événements ne correspondant pas exactement aux besoins de cette évaluation, nous n’avons pu les réutiliser comme référence. En effet, la granularité (une seule fiche d’événement est proposée pour la totalité d’une dépêche) et le type des événements (uniquement de type ATTACK et BOMBING) ne correspondent pas à notre modélisation et ne permettent pas d’évaluer la totalité de notre approche. Par conséquent, notre évaluation porte sur une partie de ce corpus qui a été annotée manuellement, soit environ 210 mentions d’événements et près de 240 de leurs dimensions (55 dimensions temporelles, 65 dimensions spatiales et 120 dimensions agentives). L’annotation manuelle a été facilitée notamment par l’utilisation de la plateforme Glozz 118 dédiée à l’annotation et à l’exploration de corpus. L’annexe L présente, à titre d’exemple, une dépêche du corpus de test annotée avec les événements de référence. Phase d’apprentissage Nous avons, tout d’abord, opéré un apprentissage de motifs séquentiels fréquents sur le premier corpus en considérant quatre types d’item : la forme fléchie du mot, sa catégorie grammaticale, son lemme et sa classe sémantique (LookupEvent, Date, Place, Unit ou Person). Nous avons choisi de réaliser une tâche d’apprentissage par type de d’entité impliquée en utilisant le système des contraintes d’appartenance. Nous avons donc défini et employées les quatre contraintes : – Le motif retourné doit contenir un déclencheur d’événement et au minimum une entité de type Date ; 116. ❤tt♣✿✴✴✇✇✇✳❛❢❣❤❛♥✐st❛♥✳❣❝✳❝❛✴❝❛♥❛❞❛✲❛❢❣❤❛♥✐st❛♥, consulté le 21/03/2012 117. International Security Assistance Force, ❤tt♣✿✴✴✇✇✇✳♥❛t♦✳✐♥t✴✐s❛❢✴❞♦❝✉✴♣r❡ssr❡❧❡❛s❡s, consulté le 21/03/2012 118. ❤tt♣✿✴✴✇✇✇✳❣❧♦③③✳♦r❣✴ 117 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 7. Expérimentations et résultats – Le motif retourné doit contenir un déclencheur d’événement et au minimum une entité de type Place ; – Le motif retourné doit contenir un déclencheur d’événement et au minimum une entité de type Unit ; – Le motif retourné doit contenir un déclencheur d’événement et au minimum une entité de type Person. Nous obtiendrons donc après apprentissage quatre ensembles de motifs de type LookupEvent-Date, LookupEvent-Place, LookupEvent-Person et LookupEvent-Unit. Au préalable, il est nécessaire de fixer les deux paramètres de support et de gap (voir la section 5.4.2) : le premier donnant le nombre d’occurrences minimal du motif dans l’ensemble des séquences et le second permettant de "relâcher" la composition des motifs en autorisant un nombre maximal de mots possibles entre chaque élément du motif. Ce paramétrage a été effectué de façon itérative : nous avons fixé une première de valeur de support et de gap pour chaque apprentissage, effectué une première extraction de motifs, estimé leur qualité (en observant leur nombre, leur généricité/spécificité, leur couverture/précision), puis ajusté ces paramètres en fonction de nos observations. Le tableau 7.2 présente le nombre de motifs retournés par type de motif en fonction des paramètres choisis. Au regard de ces tests, nous avons choisi de fixer un gap maximal de 3 (correspondant à 3 mots possibles entre chaque élément du motif) et un support absolu relativement bas (environ 6% des séquences) afin d’obtenir des motifs intéressants mais en nombre raisonnable pour une exploration et une validation manuelles (environ 12000 motifs au total). Une fois l’ensemble des motifs raffinés par les contraintes d’appartenance et de gap, nous avons sélectionnés manuellement et les plus pertinents grâce à l’outil Camelis. La figure 7.1 suivante présente certains des motifs retenus 119, nous en avons conservés au total une cinquantaine. 1 { P e r s o n }{ VBD }{ DT }{ NN }{ IN }{ DT }{ E v e nt } 2 { , }{ DT }{ NN }{ E v e nt }{ J J }{ IN }{ P l a c e } 3 { J J }{ E v e nt }{ NP }{ NP }{ Date } 4 { s e r v e VBG }{ IN a s }{ a }{ NN }{ IN }{ t h e }{ J J }{ NP U nit }{ E v e nt } FIGURE 7.1 – Exemples de motifs séquentiels fréquents sélectionnés Pour finir, le jeu de motifs final a été converti en un ensemble de règles JAPE, nous obtenons donc un module indépendant facilement intégrable au sein de notre chaine globale d’extraction d’événements. Évaluation réalisée Une fois cette phase d’apprentissage accomplie, nous avons constitué trois chaines d’extraction GATE distinctes : Chaine 1 Approche à base de règles linguistiques (voir la section 5.4.1) ; Chaine 2 Approche par apprentissage de motifs (voir la section 5.4.2) ; 119. Les items des motifs correspondent aux catégories grammaticales et aux annotations sémantiques telles que VBD : auxiliaire "être" au passé, DT : déterminant, NN : nom commun au singulier, IN : préposition, JJ : adjectif, NP : nom propre au singulier, VBG : auxiliaire "être" au participe présent, Person : entité nommée de type personne, Event : déclencheur d’événement équivalant à l’étiquette LookupEvent ci-dessus, Place : entité nommée de type lieu, Date : entité nommée de type date, Unit : entité nommée de type organisation. 118 Copyright c 2013 - CASSIDIAN - All rights reserved7.2. Évaluation du système d’extraction LookupEvent-Date LookupEvent-Place LookupEvent-Person LookupEvent-Unit Sup3 Gap0 - - - 1381 Sup4 Gap0 113 - 67748 - Sup4 Gap2 - - - 18278 Sup6 Gap0 - 1000 - - Sup6 Gap2 1046 - - 2039 Sup8 Gap0 30 317 - - Sup8 Gap2 699 - - 725 Sup8 Gap3 1108 - - - Sup10 Gap2 - 8693 1730 344 Sup10 Gap3 681 6596 9540 47 Sup12 Gap3 - - 4614 - FIGURE 7.2 – Nombre de motifs retournés en fonction des paramètres choisis Chaine 3 Union des deux approches : elle contient l’ensemble des pré-traitements nécessaires à chaque approche (listés en section 5.4) ainsi que les deux modules de règles développés exécutés successivement. Ces trois chaines ont été exécutées sur le corpus de test et nous avons comparé manuellement et par document la qualité des événements extraits aux événements de référence correspondants. Cela nous a permis de calculer des scores de précision, rappel et F1-mesure (voir la section 2.5.1 pour la définition de ces métriques) pour chaque chaine. Par ailleurs, nous avons souhaité évaluer l’influence de l’analyse syntaxique en dépendance et de la qualité de la REN sur nos systèmes d’extraction d’événements. Le tableau 7.1 ci-dessous résume les différentes variantes des chaines évaluées et dont les résultats sont présentés dans la section suivante. Règles manuelles Motifs séquentiels Union des résultats Avec analyse syntaxique x x Sans analyse syntaxique x x REN automatique x x x REN manuelle x x x TABLE 7.1 – Chaines d’extraction d’événements : variantes évaluées 7.2.2 Analyse des résultats Le tableau 7.2 présente les scores de précision, rappel et F1-mesure obtenus : il s’agit des résultats d’évaluation des 3 chaines présentées plus haut par type de dimension et toutes dimensions confondues. Précisons qu’il s’agit des métriques calculées avec une annotation manuelle des entités nommées pour les 3 chaines et avec analyse syntaxique en dépendance pour la chaine 1. Nous pouvons tout d’abord constater que l’approche à base de règles et l’apprentissage de motifs obtiennent tous deux une très bonne précision globale et que, comme attendu, le rappel est meilleur pour cette dernière approche. Par ailleurs, nous avons été assez surpris par la bonne précision de la méthode par 119 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 7. Expérimentations et résultats Approche à base de règles manuelles Apprentissage de motifs Union des résultats Précision Rappel F1-mesure Précision Rappel F1-mesure Précision Rappel F1-mesure Date 0,93 0,25 0,39 0,90 0,64 0,75 0,90 0,68 0,78 Lieu 0,92 0,37 0,53 0,86 0,49 0,63 0,81 0,60 0,69 Participants 0,97 0,49 0,42 0,93 0,32 0,47 0,92 0,51 0,66 Toutes dimensions 0,94 0,37 0,45 0,90 0,48 0,62 0,88 0,60 0,71 TABLE 7.2 – Extraction d’événements : précision, rappel et F-mesure apprentissage, que nous expliquons par une sélection manuelle restrictive et précise des motifs. Quant aux taux de rappel peu élevés, ce n’est pas rare pour les approches à base de règles construites manuellement et, dans le cas de l’apprentissage de motifs, cela peut être du à un "gap" maximal trop restreint qui ne permet pas d’extraire les relations distantes. Par ailleurs, une analyse des résultats par type de dimension permet d’en apprendre sur les points forts et faiblesses de chacune des approches développées. Nous pouvons, par exemple, voir que le système à base de motifs séquentiels est nettement plus performant pour la reconnaissance des dates des événements. Concernant la dimension spatiale, bien que celle-ci soit meilleure en termes de F1-mesure, l’approche symbolique s’avère plus précise. Enfin, tandis que pour ces deux premières dimensions (temporelle et spatiale) l’union des résultats apporte peu par rapport à la meilleure des deux approches, celle-ci s’avère particulièrement utile pour la dimension agentive. Enfin, nous pouvons retenir de cette expérimentation que l’union des résultats obtient une F1-mesure nettement supérieure (près de 10 points par rapport à la meilleure des deux approches), ce qui dénote une amélioration globale de la qualité d’extraction pour tout type de dimension. De plus, nous remarquons que l’apprentissage de patrons complète avec succès notre approche symbolique en augmentant sensiblement le taux global de rappel. Nous constatons tout de même une légère perte de précision de l’union par rapport aux deux approches seules : celle-ci résulte du fait que réaliser une simple union des résultats, même si elle permet d’additionner les vrais positifs des deux approches, entraine aussi une addition des faux positifs. Toutes approches confondues, les résultats obtenus sont satisfaisants comparés à l’état de l’art même s’il convient de prendre des précautions lorsque l’on compare des systèmes évalués selon différents protocoles. Apport de l’analyse syntaxique Parallèlement à ces résultats, nous nous sommes intéressés à l’apport de l’analyse syntaxique au sein de notre approche symbolique. Le tableau 7.3 présente les performances de notre système avec et sans analyse syntaxique en dépendance. Nous pouvons constater que celle-ci permet d’augmenter sensiblement la qualité des extractions pour tous les types de dimension. Bien que les outils d’analyse syntaxique soient inégalement disponibles selon les langues, cette observation confirme l’intérêt de cette technique pour l’extraction des événements. Une perspective intéressante serait d’exploiter les résultats de l’analyse syntaxique au sein de la seconde approche en tant que caractéristique supplémentaire à prendre en compte lors de l’apprentissage des motifs séquentiels fréquents. Influence de la reconnaissance automatique des entités nommées Pour compléter les résultats précédents fondés sur une annotation manuelle des entités nommées, nous avons évalué les 3 chaines avec une annotation automatique des entités (voir la section 5.3). En 120 Copyright c 2013 - CASSIDIAN - All rights reserved7.2. Évaluation du système d’extraction Sans analyse syntaxique Avec analyse syntaxique Précision Rappel F1-mesure Précision Rappel F1-mesure Date 0,32 0,45 0,38 0,93 0,25 0,39 Lieu 0,86 0,18 0,30 0,92 0,37 0,53 Participants 0,90 0,31 0,46 0,97 0,49 0,42 Toutes dimensions 0,69 0,31 0,38 0,94 0,37 0,45 TABLE 7.3 – Extraction d’événements : apport de l’analyse syntaxique effet, les entités nommées étant repérées de façon automatique dans les applications réelles, il est important d’estimer quelle sera l’influence de cette automatisation sur l’extraction des événements. Le tableau 7.4 ci-dessous compare les performances de la 3ème chaine d’extraction (c’est-à-dire l’union des deux approches) avec une REN réalisée manuellement ou automatiquement. Nous observons une baisse géné- rale de la qualité des extractions qui s’explique par le fait que notre système d’extraction des événements dépend de ces entités nommées pour la reconnaissances des différentes dimensions. Par conséquent, si une entité nommée impliquée dans un événement n’a pas été reconnue, celui-ci ne pourra la reconnaître en tant que dimension de cet événement (ce qui fait diminuer le rappel de notre approche). Par ailleurs, si une entité a bien été reconnue mais mal catégorisée ou mal délimitée cela entrainera une perte de pré- cision pour notre extracteur d’événements. Malgré cette influence négative sur les résultats globaux, les scores obtenus par notre approche restent à la hauteur de l’état de l’art. REN manuelle REN automatique Précision Rappel F1-mesure Précision Rappel F1-mesure Date 0,90 0,68 0,78 0,86 0,64 0,73 Lieu 0,81 0,60 0,69 0,94 0,46 0,62 Participants 0,92 0,51 0,66 0,94 0,39 0,55 Toutes dimensions 0,88 0,60 0,71 0,91 0,50 0,64 TABLE 7.4 – Extraction d’événements : influence de la REN 7.2.3 Bilan de l’évaluation Cette première évaluation a permis les observations suivantes : 1. les deux approches proposées pour l’extraction des événements obtiennent des résultats équivalents voire supérieurs aux systèmes existants (voir la section 2.5.2) ; 2. l’analyse syntaxique en dépendance des phrases améliore significativement la qualité des extractions réalisées par l’approche symbolique ; 3. les performances globales de notre approche sont impactées à un niveau acceptable par la détection automatique des entités nommées ; 4. les deux techniques mises en œuvre pour l’extraction des événements présentent des forces complémentaires ; 5. une union de leurs résultats (peu coûteuse à réaliser) permet d’améliorer sensiblement la qualité des événements extraits. 121 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 7. Expérimentations et résultats Nous dressons donc un bilan positif de cette première évaluation. Toutefois, celle-ci présente des limites qui donnent lieu à plusieurs perspectives d’amélioration. Tout d’abord, la conclusion 1 bien que vraie si l’on compare les scores obtenus, doit être nuancée car il s’avère toujours difficile de comparer des systèmes d’extraction ayant été évalués selon des protocoles différents. L’influence de la REN automatique révèle une problématique plus largement présente dans le contexte du Media Mining : il s’agit de l’interdépendance des modules de traitement et du suivi de qualité tout au long de la chaine de traitement. Dans notre cas de figure, il serait intéressant de mettre en place une réelle collaboration (et non plus une simple juxtaposition) entre les modules de REN et d’extraction d’événements en explorant, par exemple, les travaux sur la qualité des annotations. Par ailleurs, suite à l’observation 2, nous souhaiterions amé- liorer notre approche d’extraction de motifs séquentiels avec de nouvelles caractéristiques issues d’une analyse syntaxique. Celles-ci pourraient notamment servir en tant que contraintes supplémentaires afin de limiter la quantité de motifs retournés. Enfin, évaluer les résultats obtenus par une simple union des deux approches a mis en exergue leurs complémentarités et de nouvelles pistes d’exploration pour élaborer une combinaison plus adaptée. Dans le cadre de nos travaux, nous avons choisi de réaliser l’extraction selon les deux approches successivement et de gérer cette problématique sur le même procédé que les mentions d’événements provenant de différents documents. 7.3 Premières expérimentions sur l’agrégation sémantique Cette seconde expérimentation vise à évaluer le prototype d’agrégation sémantique des événements que nous avons développé selon l’approche présentée au chapitre 6. Nous présentons, dans un premier temps, les principales caractéristiques techniques de ce prototype puis le jeu de données employé pour cette expérimentation. Par la suite, nous présentons nos premiers résultats et concluons par un bilan de cette expérimentation ainsi que les perspectives envisagées. 7.3.1 Implémentation d’un prototype L’approche proposée au chapitre 6 a été implémentée au sein de plusieurs services (en langage Java) permettant de traiter un ensemble de documents au format WebLab issus du service d’extraction d’information développé (voir la section 5.4). Un exemple de document contenant des événements extraits par notre système et représentés en RDF/XML selon le schéma l’ontologie WOOKIE est proposé en annexe I. L’ensemble des connaissances créé et modifié par ces services est stocké et géré au sein de bases de connaissances sémantiques grâce au triplestore Jena Fuseki 120. Dans un premier temps, les événements extraits ainsi que leurs dimensions provenant du système d’extraction sont stockés dans une première base de connaissances A régie par notre ontologie de domaine (voir la section 4.3). Les différents calculs de similarité ont été implémentés au sein d’un premier service qui présente les fonctionnalités suivantes (le reste des fonctions restant comme perspectives à nos travaux) : – similarité conceptuelle : implémentation par des tests de subsomption ontologique (telle que pré- sentée en section 6.3.1) ; – similarité temporelle : implémentation telle que proposée en section 6.3.2 mais sans la fonction de distance temporelle ; 120. ❤tt♣✿✴✴❥❡♥❛✳❛♣❛❝❤❡✳♦r❣✴❞♦❝✉♠❡♥t❛t✐♦♥✴s❡r✈✐♥❣❴❞❛t❛✴ 122 Copyright c 2013 - CASSIDIAN - All rights reserved7.3. Premières expérimentions sur l’agrégation sémantique – similarité spatiale : implémentation du service de désambiguïsation spatiale par GeoNames (voir la section 6.3.3) mais sans la fonction de distance spatiale ; – similarité agentive : implémentation par distance de Jaro-Winkler comme proposé en section 6.3.4, la désambiguïsation avec DBPedia reste à mettre en place. Les calculs de similarité sont combinés grâce à la librairie Apache Jena 121 et son mécanisme de règles d’inférence (voir l’annexe J pour un exemple de règle). Le moteur d’inférence développé est appliqué à la base A qui se trouve ainsi augmentée de l’ensemble des liens de similarité. Un second service réalise le processus d’agrégation sémantique : celui-ci permet de définir une confi- guration et d’appliquer une phase de regroupement au graphe de similarité entre événements (chargé dans la base A). Une fois le regroupement réalisé, c’est-à-dire lorsque le premier graphe a été enrichi avec les agrégats d’événements similaires, celui-ci est stocké dans une seconde base de connaissances B. Cette base sera alors disponible et interrogeable par les services de la plateforme WebLab pour présenter les agrégats à l’utilisateur final par divers modes de visualisation. Cette implémentation constitue une première preuve de concept pour montrer la faisabilité de notre processus d’agrégation sémantique. Toutefois, le système que nous avons conçu n’est, à l’heure actuelle, pas apte à passer à l’échelle pour obtenir des résultats significatifs sur un corpus d’évaluation à taille réelle. Ce passage à l’échelle constitue la principale perspective à court terme de nos travaux. Nous présentons dans les sections suivantes les observations que nous avons pu réaliser sur un jeu de données réelles plus réduit. 7.3.2 Jeu de données Pour cette expérimentation, nous nous appuyons sur une base de données nommée Global Terrorism Database (GTD). Il s’agit d’une base open-source contenant plus de 104 000 événements terroristes recensés manuellement de 1970 à 2011 [LaFree and Dugan, 2007]. Cette collection est gérée par le consortium américain START 122 étudiant les faits terroristes survenus dans le monde. Celle-ci est constituée à la fois d’événements d’échelle internationale et nationale, principalement collectés à partir de sources d’actualité sur le Web mais aussi provenant de bases de données existantes, livres, journaux et documents légaux. Les événements dans la base GTD sont catégorisés selon les neuf types suivants : 1. Assassination 2. Hijacking 3. Kidnapping 4. Barricade Incident 5. Bombing/Explosion 6. Unknown 7. Armed Assault 8. Unarmed Assault 9. Facility/Infrastructure Attack 121. ❤tt♣s✿✴✴❥❡♥❛✳❛♣❛❝❤❡✳♦r❣✴ 122. Study of Terrorism and Responses to Terrorism 123 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 7. Expérimentations et résultats En fonction de son type, un événement peut présenter entre 45 et 120 propriétés/attributs tels que les suivants : – type de l’événement ; – date de l’événement (année, mois, jour) ; – lieu de l’événement (région, pays, état/province, ville, latitude/longitude) ; – auteur(s) (personne ou groupe) ; – nature de la cible ; – type de l’arme utilisée ; – dommages matériels ; – nombre de décès ; – nombre de blessés ; – résumé ; – indice de certitude ; – sources (1 à 3) : nom de la source, extrait (titre), date de l’article, URL ; – etc. L’ensemble de ces données est représenté sous forme de couples "champ-valeur" et téléchargeable au format CSV. Nous disposons d’ores et déjà d’une partie de cette base (environ 4800 fiches d’événements survenus en 2010) convertie en base de connaissance sémantique (graphe RDF). Cette base de données est bien adaptée à l’évaluation de notre processus global de capitalisation des connaissances car elle constitue une collection de fiches d’événements manuellement agrégées à partir de plusieurs sources d’information. Les sources (articles et dépêches principalement) à l’origine d’une fiche sont accessibles via l’attribut scite qui spécifie leurs URLs. Une collecte automatique de ces sources (grâce à un service WebLab) permet donc facilement de constituer un corpus d’évaluation composé de dépêches de presse et des fiches d’événements correspondantes. Il faut noter également que cette base est fondée sur une modélisation différente de celle définie dans le cadre de nos recherches (l’ontologie WOOKIE). Il nous faut donc trouver le meilleur alignement de classes et attributs afin de pouvoir évaluer les résultats de notre approche par rapport aux fiches de référence de la base GTD. Le modèle d’événement employé par cette base étant sensiblement similaire au nôtre, l’alignement des attributs d’intérêt (date, lieu et participants) n’a pas soulevé de difficultés. Concernant la taxonomie des événements, 4 classes (sur les 9 du modèle GTD) ont pu être alignées avec le modèle WOOKIE car ayant la même sémantique (voir le tableau 7.5). Nos expérimentations sont donc limitées par ce point et ne concernent que des événements de ces 4 types. Modèle GTD Ontologie WOOKIE Facility/Infrastructure Attack DamageEvent Bombing/Explosion BombingEvent Armed Assault AttackEvent Hostage Taking KidnappingEvent TABLE 7.5 – Alignement des types d’événement entre le modèle GTD et l’ontologie WOOKIE 124 Copyright c 2013 - CASSIDIAN - All rights reserved7.3. Premières expérimentions sur l’agrégation sémantique 7.3.3 Exemples d’observations Calculs de similarité Nous présentons ici un exemple d’application à ce jeu de données de la similarité sémantique entre événements : nous collectons et analysons trois dépêches de presse (que nous nommerons source1, source2 et source3) à l’origine d’une même fiche d’événement issue de la base GTD 123 et résumée par la figure 7.3. Le tableau suivant 7.6 présente quatre des événements extraits automatiquement par FIGURE 7.3 – Un exemple d’événement issu de la base GTD notre système à partir de ces sources, ainsi que leurs dimensions. Event1 Event2 Event3 Event4 rdfs :label explosions explosions bomb blasts attacked rdf :type BombingEvent BombingEvent BombingEvent AttackEvent wookie :date - [∅ ,10,31] - - wookie :takesPlaceAt Atirau city - - Kazakstan wookie :involves - KNB department Kazakh Police - source scite1 scite2 scite3 scite2 TABLE 7.6 – Événements extraits et leurs dimensions Nous constatons dans cet exemple que, sans post-traitement adapté, ces quatre événements seraient présentés à l’utilisateur final de façon distincte et sans aucun lien entre eux (quatre fiches de connaissance différentes seraient créées). Toutefois, appliquer notre modèle de similarité sémantique entre événements, permet de compléter cet ensemble de connaissances avec des relations de similarité entre ces quatre fiches de connaissance. La figure 7.4 constitue un extrait des différentes similarités obtenues représentées en RDF/XML. Tout d’abord, une proximité conceptuelle a été détectée entre les événements Event2 et Event4 (ligne 9) de par le fait que le type de l’événement Event2 est une sous-classe de celui de l’événement Event4 dans l’ontologie de domaine. De plus, le service de désambiguïsation géographique ayant assigné des identifiants GeoNames aux entités Atirau city et Kazahstan, nous pouvons appliquer 123. National Consortium for the Study of Terrorism and Responses to Terrorism (START). (2012). Global Terrorism Database [Data file]. Retrieved from ❤tt♣✿✴✴✇✇✇✳st❛rt✳✉♠❞✳❡❞✉✴❣t❞ 125 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 7. Expérimentations et résultats le calcul de similarité spatiale et déduire que les événements Event1 et Event4 sont spatialement proches (ligne 5). Enfin, la fonction de similarité agentive utilisant la distance de Jaro-Winkler a permis d’estimer que les participants des événements Event2 et Event3 ne co-réfèrent pas (ligne 10). 1 < r d f : D e s c r i p t i o n r d f : a b o u t = " # E ve nt 1 " > 2 3 4 5 6 < / r d f : D e s c r i p t i o n > 7 < r d f : D e s c r i p t i o n r d f : a b o u t = " # E ve nt 2 " > 8 9 10 11 < / r d f : D e s c r i p t i o n > 12 < r d f : D e s c r i p t i o n r d f : a b o u t = " # E ve nt 3 " > 13 14 < / r d f : D e s c r i p t i o n > FIGURE 7.4 – Similarités entre événements : extrait représenté en RDF/XML Processus d’agrégation Dans un second temps, notre processus global d’agrégation a été testé sur un sous-ensemble du corpus GTD : l’ensemble des traitements (extraction, calculs de similarité et agrégation sémantique) a été appliqué sur 60 dépêches de presse collectées du Web. Nous pouvons déjà faire quelques observations chiffrées sur ce corpus de test et les résultats obtenus : (a) 92 fiches d’événements de référence correspondent à ces 60 dépêches ; (b) la majorité des dépêches (40) est associée à une seule fiche de référence, 15 dépêches relatent chacune 2 événements de référence et les 5 restantes renvoient chacune à 3 événements ; (c) 223 mentions d’événements ont été repérées par notre approche d’extraction (tous types confondus) ; (d) 44 de ces événements extraits font partie des 4 types de l’alignement (voir le tableau 7.5 et ont pu donc être évalués ; (e) ces 44 mentions d’événements comprennent 20 AttackEvent, 14 BombingEvent, 2 DamageEvent et 8 KidnappingEvent ; (f) parmi ces 44 mentions, 3 possèdent une date, 7 présentent un lieu extrait et 5 impliquent des participants. Nous nous sommes ensuite intéressés aux différentes relations de similarité de type ID et PROX (les plus pertinentes pour rapprocher des événements similaires) créées entre les 44 événements extraits : – 20 relations de type isConceptuallyID ont été détectées ; – 17 relations de type isConceptuallyPROX ; – 4 relations de type isAgentivelyID ; – 3 relations de type isSpatiallyPROX. 126 Copyright c 2013 - CASSIDIAN - All rights reserved7.3. Premières expérimentions sur l’agrégation sémantique Nous pouvons constater que peu de relations de ce type ont été détectées. Cela est, tout d’abord, à corréler avec l’observation (f) faite plus haut, montrant que, parmi les 44 événements extraits et analysables, peu de dimensions ont été extraites. Ce manque est du notamment à une limite de notre corpus d’évaluation mise en avant par l’observation (b) : chaque événement du jeu de données est rapporté au maximum par 3 sources, ce qui ne reflète pas les conditions réelles d’un processus de veille, où de nombreuses sources et articles reportant le même événement sont quotidiennement collectés et analysés. Dans un second temps, nous avons appliqué un premier regroupement avec pour condition de regrouper entre eux les événements partageant au minimum une similarité de niveau ID et une similarité de niveau PROX. Au vu des relations de similarité ci-dessus, seules deux configurations ont permis d’obtenir des agrégats : – {isConceptuallyID, isT emporallyLI, isSpatiallyLI, isAgentivelyID} produit 3 agrégats d’événements ; – {isConceptuallyP ROX, isT emporallyLI, isSpatiallyP ROX, isAgentivelyLI} produit 1 agrégat d’événements. Appliqué sur les 3 agrégats produits par la première configuration, un second regroupement par la configuration {isConceptuallyDIF F, isT emporallyLI, isSpatiallyLI, isAgentivelyID} permet d’obtenir un agrégat contenant les trois événements présentés dans le tableau 7.7. Deux des événements proviennent d’une même source (Event2 et Event3) et le troisième (Event1) d’une source différente, celles-ci sont reportées en annexes M et N. Event1 Event2 Event3 gtd :source s3 s12 s12 rdfs :label kidnapping kidnapped bomb wookie :involves Taliban Taliban TABLE 7.7 – Exemple de 3 événements agrégés automatiquement Afin d’évaluer l’apport de cette agrégation, nous avons examiné les fiches de référence associées aux deux sources dont ces événements ont été extraits : la source s3 renvoie à un seul événement (que nous nommerons Reference1) et la source s12 renvoie à deux événements (que nous nommerons Reference2 et Reference3). Le tableau 7.8 ci-dessous présente ces trois fiches de référence ainsi que quelques propriétés d’intérêt pour cette expérimentation. Nous pouvons, à partir de cet exemple, faire les observations suivantes : – Les trois extractions d’événements réalisées correspondent bien aux fiches de référence associées à leurs sources respectives ; – Les deux regroupements successifs ont permis d’agréger 3 événements perpétrés par le même agent ("Taliban") ; – Une géolocalisation des 3 événements de référence (voir la figure 7.5) montrent que les 3 événements agrégés se sont produits dans la même zone géographique. Bien que les lieux des 3 événements n’aient pas été repérés automatiquement, l’agrégation permettrait à l’analyste de découvrir cette proximité (en remontant par exemple aux sources des trois événements) ; – Dans l’hypothèse qu’avec une plus grande quantité de sources analysées les dimensions manquantes (date et lieu) auraient pu être extraites, l’analyste aurait pu analyser la répartition spatiale et temporelle de ces 3 événements afin d’en déduire de nouvelles connaissances ou de nouvelles prédictions. 127 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 7. Expérimentations et résultats Reference1 Reference2 Reference3 eventID 201009260002 201001230002 201001230007 source s3 s12 s12 year 2010 2010 2010 month 9 1 1 day 26 23 23 country Afghanistan Afghanistan Afghanistan region South Asia South Asia South Asia province/state Konar Konar Paktika city Chawkay Shigal Unknown attackType1 Hostage Taking (Kidnapping) Hostage Taking (Kidnapping) Armed Assault attackType2 Armed Assault targetType1 NGO Police Transportation corp1 Development Alternatives Inc Sheigal Law Enforcement target1 Linda Norgrove police chief of Sheigal district and two other police officers Civilians targetType2 NGO corp2 Development Alternatives Inc target2 Three Afghan aid employees perpetrator Taliban Taliban Taliban TABLE 7.8 – Fiches d’événements de référence FIGURE 7.5 – Visualisation des 3 événements extraits sur une carte géographique 7.3.4 Bilan de l’expérimentation Cette première expérimentation a montré des résultats prometteurs à la fois pour notre approche de similarité entre événements et pour le processus d’agrégation sémantique en tenant compte de ces similarités. En effet, nous avons montré que notre approche globale peut être mise en œuvre sur des 128 Copyright c 2013 - CASSIDIAN - All rights reserveddonnées réelles sans nécessiter d’effort d’adaptation important et en maintenant le niveau de qualité escompté. Toutefois, celle-ci présente un certain nombre de limites qui constituent autant de perspectives à explorer à l’avenir. Tout d’abord, nous souhaitons améliorer notre prototype en implémentant la totalité des mesures de similarité proposées en section 6.3 (distances temporelles et spatiales ainsi que la desambiguïsation agentive grâce à la base DBPedia). De plus, nous complèterons le service de regroupement en y intégrant le procédé de regroupement hiérarchique par plusieurs passes (une seule passe est réalisée pour le moment). Enfin, des problèmes techniques empêchent, à l’heure actuelle, d’obtenir des résultats significatifs et quantitatifs sur un plus grand ensemble de données. Ce passage à l’échelle constitue notre plus proche perspective future et permettra d’évaluer notre approche de façon exhaustive et avec des métriques adaptées (issues par exemple de l’évaluation des méthodes de clustering) sur l’ensemble du jeu de données présenté en section 7.3.2 : soit environ 5000 événements de référence. Cette évaluation devra principalement permettre de répondre aux deux questions suivantes : – est-ce que les événements extraits correspondant à une seule et même fiche de référence sont bien rapprochés ? – est-ce que les événements extraits ne correspondant pas à la même fiche de référence sont bien différenciés ? 7.4 Conclusions Dans ce dernier chapitre, nous avons présenté deux expérimentations destinées à évaluer deux de nos contributions. Tout d’abord, une première évaluation a porté sur notre approche mixte d’extraction automatique des événements : celle-ci a été testée et comparée à un corpus de référence annoté manuellement pour les besoins de l’expérimentation. Pour ce faire, nous avons effectué une évaluation en termes de précision/rappel/F1-mesure et cela selon différentes configurations : chaque approche a été évaluée séparément puis comparée à l’union de leurs résultats. Nous avons également fait varier diffé- rents paramètres tels que la présence de l’analyse syntaxique ou encore l’automatisation de la REN. Une analyse détaillée des résultats a montré de bonnes performances en comparaison avec l’état de l’art et ceci pour l’ensemble des configurations d’évaluation testées. Cette première évaluation a également pointé quelques limites de notre approche telles que l’impact de l’extraction d’entités nommées sur les performances des extracteurs d’événements. De plus, celle-ci pourrait être améliorée en exploitant davantage les informations fournies par l’analyse syntaxique en dépendance. La seconde expérimentation a constitué une première analyse qualitative dans le but d’illustrer les résultats de notre processus d’agrégation sémantique sur un jeu de données réelles. Nous avons présenté, dans un premier temps, l’implémentation d’un prototype fonctionnel couvrant la chaine complète d’agré- gation des événements. Puis, la base de données Global Terrorism Database a été introduite ainsi qu’un sous-ensemble de celle-ci servant de corpus d’évaluation pour cette expérimentation. Les tests réalisés se sont avérés prometteurs à la fois pour ce qui est du calcul de similarité entre événements et du processus d’agrégation proposé. Le premier traitement a rapproché efficacement des mentions d’événements qui co-réfèrent et permettra ainsi de réduire la tâche de l’analyste du ROSO en lui proposant l’ensemble des liens de similarité en tant que critères supplémentaires de recherche. Puis, nous avons appliqué notre processus d’agrégation par regroupements successifs sur ce jeu de test et ceci pour pour 3 types de confi- guration. Malgré le peu d’agrégats formés (en raison de la taille réduite du corpus), nous avons montré 129 Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 7. Expérimentations et résultats par un exemple l’utilité de cette agrégation du point de vue utilisateur. Cette seconde contribution pourra être améliorée en intégrant l’ensemble des fonctions de similarité proposées à notre prototype d’agrégation et en optimisant celui-ci pour permettre son passage à l’échelle d’un processus de veille réel. 130 Copyright c 2013 - CASSIDIAN - All rights reservedConclusion et perspectives Sommaire 1 Synthèse des contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 1.1 État de l’art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 1.2 Un modèle de connaissances pour le ROSO . . . . . . . . . . . . . . . . 133 1.3 Une approche mixte pour l’extraction automatique des événements . . . . 134 1.4 Un processus d’agrégation sémantique des événements . . . . . . . . . . 134 1.5 Évaluation du travail de recherche . . . . . . . . . . . . . . . . . . . . . . 135 2 Perspectives de recherche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 131 Copyright c 2013 - CASSIDIAN - All rights reservedConclusion et perspectives 1 Synthèse des contributions La problématique étudiée durant cette thèse est la capitalisation des connaissances à partir de sources ouvertes. Nous nous sommes plus particulièrement intéressés à l’extraction et à l’agrégation automatique des événements dans le domaine du Renseignement d’Origine Sources Ouvertes. Ce sujet de recherche nous a amenés à explorer les principaux axes de recherche suivants : – La représentation et la modélisation des connaissances ; – L’extraction automatique d’information ; – La capitalisation des connaissances. Pour répondre à cette problématique, nous avons, dans une première phase de nos recherches, réalisé un état de l’art approfondi de ces trois axes scientifiques. 1.1 État de l’art Nous avons, tout d’abord, exploré les principes théoriques et les recherches actuelles dans les domaines de la représentation des connaissances, du Web sémantique et de la modélisation des événements. Ce premier état de l’art a rappelé la distinction fondamentale entre les concepts de donnée, information et connaissance. Il a également confirmé l’importance croissante des technologies du Web sémantique qui sont partie intégrante d’une majorité de travaux actuels en fouille de documents. Les ontologies, plus particulièrement, se positionnement comme un mode de représentation des connaissances en adéquation avec les nouvelles problématiques du traitement de l’information. Combinées aux bases de connaissances sémantiques et moteurs d’inférence, cela constitue un socle de technologies particulièrement adapté à la capitalisation des connaissances à partir de sources ouvertes. Dans un second temps, nous nous sommes focalisés sur la place des événements en représentation des connaissances et avons étudié les différentes théories, modèles et ontologies proposés jusqu’alors. L’événement apparait comme un concept complexe, dont la définition et la modélisation sont encore aujourd’hui des sujets de discussions et débats. Beaucoup de travaux s’accordent sur un objet multi-dimensionnel impliquant une situation spatio-temporelle et un ensemble d’acteurs et facteurs. Nous avons également exploré les spécifications utilisées par les acteurs du renseignement afin d’adapter notre proposition à ce cadre d’application. La seconde revue de littérature a été centrée sur l’extraction automatique d’information dans les textes. Celle-ci a révélé un domaine de recherche très étudié bien que relativement jeune : nous avons pu recenser un nombre important d’approches, d’applications possibles, de logiciels et plateformes développés ainsi que de campagnes et projets d’évaluation menés jusqu’à nos jours. Les méthodes développées sont historiquement réparties en deux catégories : les symboliques et les statistiques. Les premières, dé- veloppées manuellement par des experts de la langue, s’avèrent globalement plus précises, tandis que les secondes réalisent un apprentissage sur une grande quantité de données et présentent généralement un fort taux de rappel. Parallèlement à cela, nous avons constaté une certaine complémentarité des approches existantes, non seulement en termes de précision et de rappel mais également du point de vue des types d’entités ciblées, du genre textuel, du domaine d’application, etc. Il apparait, par conséquent, pertinent de combiner les approches existantes afin de tirer partie de leurs atouts respectifs. Pour ce faire, les approches hybrides constituent des alternatives intéressantes car elles s’avèrent faiblement supervisées et plus flexibles que d’autres approches statistiques. Enfin, ce tour d’horizon nous a permis de comparer 132 Copyright c 2013 - CASSIDIAN - All rights reserved1. Synthèse des contributions différents outils et logiciels pour la mise en œuvre de notre approche ainsi que différents jeux de données potentiellement adaptés à l’évaluation de nos travaux. Le dernier état de l’art autour de la capitalisation des connaissances a mis en avant une suite logique à nos travaux en extraction automatique d’information : la conception d’une approche globale permettant la transition du texte vers la connaissance proprement dite. Cette problématique a donné lieu à diverses recherches au sein de plusieurs communautés de l’IA, chacune d’elles manipulant sa propre terminologie adaptée à ses propres besoins. Ses divergences de vocabulaire n’empêchent pas d’observer la place importante réservée à la capitalisation des connaissances au sein des recherches actuelles, que ce soit en réconciliation de données, extraction d’information ou Web sémantique. La majorité des approches proposées en réconciliation de données trouve ses origines dans les bases de données. Il s’agit dans ce cadre d’assurer le maintien de cohérence des bases en détectant les entrées et champs dupliqués. Pour cela, beaucoup de travaux sont fondés sur des calculs de similarité : les plus simples opèrent une similarité entre chaines de caractère tandis que les plus avancés exploitent le contexte linguistique et extra-linguistique des données à comparer. Ces dernières se distinguent ensuite par le type et la méthode employée pour obtenir ces caractéristiques de contexte et sur leur mode de combinaison. Nous avons également exploré les techniques de capitalisation au sein du Web sémantique. A l’heure actuelle, cela est réalisé principalement par ce que l’on nomme la Wikification : il s’agit de désambuiguïser sémantiquement les mentions textuelles d’intérêt afin de les rattacher à une entité du monde référencée dans une base de connaissances externe (dans le LOD essentiellement). Enfin, la capitalisation des connaissances sur les événements extraits est l’objet d’un intérêt grandissant. Également nommée co-référence entre événements, cette problématique est adressée principalement par des méthodes statistiques supervisées ou non, d’une part, et des approches fondées sur les graphes et les calculs de similarité d’autre part. Suite à la réalisation de ces états de l’art, nous avons proposé trois contributions relatives aux trois domaines scientifiques explorés. Celles-ci s’articulent au sein de notre processus global de capitalisation des connaissances. Au regard des conclusions de l’état de l’art, l’objectif directeur de nos recherches est de concevoir un système global de reconnaissance et d’agrégation des événements le plus générique possible et intégrant des méthodes et outils de la littérature. 1.2 Un modèle de connaissances pour le ROSO Notre première contribution est l’élaboration d’un modèle de connaissances qui servira de guide à notre approche de capitalisation des connaissances. Nous avons, tout d’abord, défini une modélisation des événements fondée sur des modèles reconnus en ingénierie des connaissances et en extraction d’information. Un événement est représenté par quatre dimensions : une dimension conceptuelle (correspondant au type de l’événement), une dimension temporelle (la date/ période d’occurrence de l’événement), une dimension spatiale (le lieu d’occurrence de l’événement) et une dimension agentive (dédiée aux différents acteurs impliqués dans l’événement). Pour la définition de ses dimensions, nous avons privilégié la gé- néricité du modèle ainsi que sa reconnaissances par la communauté scientifique concernée (par exemple, le modèle TUS et la représentation spatiale en aires géographiques). Par ailleurs, afin de modéliser l’ensemble des informations d’intérêt pour les analystes du ROSO, une ontologie de domaine a été proposée. Celle-ci comprend en tant que classes de plus haut niveau les cinq entités principales de ce domaine : les organisations, les lieux, les personnes, les équipements et les événements. De plus, notre ontologie intègre de nombreux liens sémantiques vers d’autres modélisations existantes afin de maintenir une interopérabilité au sein du Web sémantique. Cette contribution présente quelques limites et nous envisageons 133 Copyright c 2013 - CASSIDIAN - All rights reservedConclusion et perspectives des perspectives d’amélioration telles que l’intégration d’une cinquième dimension contextuelle afin de représenter des éléments du contexte linguistique et extra-linguistique, mais également une définition des rôles au sein de la dimension agentive. 1.3 Une approche mixte pour l’extraction automatique des événements Notre seconde contribution est une approche mixte pour l’extraction automatique des événements fondée sur une méthode symbolique à base de grammaires contextuelles, d’une part, et sur une technique de fouille de motifs séquentiels fréquents, d’autre part. La méthode symbolique comporte un ensemble de règles d’extraction développées manuellement et exploite notamment la sortie d’une analyse syntaxique en dépendance combinée avec un ensemble de classes argumentales d’événement. La seconde technique permet d’obtenir de manière faiblement supervisée un ensemble de patrons d’extraction grâce à la fouille de motifs séquentiels fréquents dans un ensemble de textes. Nous avons également conçu et implémenté un système de reconnaissance d’entités nommées sur le modèle des approches symboliques classiques. Celui-ci permet d’annoter au préalable les différentes entités dites simples nécessaires à la reconnaissance des événements. Les deux méthodes pour l’extraction des événements ont montré leur efficacité lors de l’état de l’art réalisé et leurs performances ont été évaluées sur un corpus de test de notre domaine d’application (voir la section Évaluation du travail de recherche ci-dessous). La méthode à base de règles pourra être améliorée en tenant compte d’autres informations fournies par l’analyse syntaxique telles que la voix (passive ou active) du déclencheur, la polarité de la phrase (négative ou positive), la modalité mais aussi les phénomènes de valence multiple. L’approche à base de motifs séquentiels fréquents pourrait également tirer profit de cette analyse syntaxique en intégrant les relations de dépendance produites en tant que nouveaux items ou sous forme de contraintes. Enfin, concernant les deux approches, leur limite principale (qui est aussi celle d’autres approches de la littérature) est qu’elles réalisent l’extraction au niveau phrastique. Une granularité plus large tel que le paragraphe ou le discours pourrait permettre d’améliorer les performances de ces approches. 1.4 Un processus d’agrégation sémantique des événements Notre contribution suivante est un processus d’agrégation sémantique des événements fondé sur une échelle de similarité qualitative et sur un ensemble de mesures spécifiques à chaque type de dimension. Nous avons tout d’abord proposé des mécanismes de normalisation des entités, adaptés à leurs natures, afin d’harmoniser formellement les différentes informations extraites. Concernant ce premier aspect, nous envisageons des améliorations telles que la désambiguïsation des dates relatives, par exemple, ou encore l’intégration au sein de notre système d’un outil de désambiguïsation sémantique des participants. Nous avons ensuite proposé un une échelle de similarité qualitative orientée utilisateur et un ensemble de calculs de similarité intégrant à la fois un modèle théorique adapté à chaque dimension et une implémentation technique employant les technologies du Web sémantique (ontologies et bases de connaissances sémantiques). Nous souhaitons poursuivre ce travail en élargissant le panel de similarités employées : notamment, des mesures de proximité ontologique plus sophistiquées ainsi que des outils de distance temporelle et spatiale et, pour la similarité agentive, une distance dédiée aux ensembles d’entités. Les similarités entre événements pourraient également provenir d’une fonction d’équivalence apprise automatiquement à partir de données annotées manuellement. Enfin, un processus d’agrégation fondé sur les graphes a été proposé afin de regrouper les mentions d’événements similaires et de permettre à l’analyste 134 Copyright c 2013 - CASSIDIAN - All rights reserved1. Synthèse des contributions de découvrir de nouvelles connaissances. Ce type d’agrégation possède l’avantage principal d’être intrinsèquement adapté aux traitement des bases de connaissances et ainsi aisément généralisable à d’autres silos du Web de données. Cette agrégation pourrait également être réalisée par calcul d’une similarité globale qui combinerait les différentes similarités locales. Le point délicat pour cette méthode sera alors d’estimer le poids de chaque dimension dans cette combinaison. 1.5 Évaluation du travail de recherche Pour conclure ce bilan des contributions, nous avons proposé durant notre travail de recherche deux expérimentations destinées à évaluer deux de nos contributions. Tout d’abord, une première évaluation a porté sur notre approche mixte d’extraction automatique des événements : celle-ci a été testée et comparée à un corpus de référence (issu de la campagne d’évaluation MUC) annoté manuellement pour les besoins de l’expérimentation. Une analyse détaillée des résultats a montré de bonnes performances en comparaison avec l’état de l’art et ceci pour l’ensemble des configurations d’évaluation testées. Cette première évaluation a également pointé quelques limites de notre approche telles que l’impact de l’extraction d’entités nommées sur les performances des extracteurs d’événements. De plus, celle-ci pourrait être améliorée en exploitant davantage les informations fournies par l’analyse syntaxique en dépendance. La seconde expérimentation a constitué une première analyse qualitative dans le but d’illustrer les résultats de notre processus d’agrégation sémantique sur un jeu de données réelles. Nous avons présenté, dans un premier temps, l’implémentation d’un prototype fonctionnel couvrant la chaine complète d’agrégation des événements. Puis, la base de données Global Terrorism Database a été introduite ainsi qu’un sous-ensemble de celle-ci servant de corpus d’évaluation pour cette expérimentation. Les tests réalisés se sont avérés prometteurs à la fois pour ce qui est du calcul de similarité entre événements et du processus d’agrégation proposé. Le premier traitement a rapproché efficacement des mentions d’événements qui co-réfèrent et permettra ainsi de réduire la tâche de l’analyste du ROSO en lui proposant l’ensemble des liens de similarité en tant que critères supplémentaires de recherche. Puis, nous avons appliqué notre processus d’agrégation par regroupements successifs sur ce jeu de test et nous avons montré par un exemple l’utilité de cette agrégation du point de vue utilisateur. Cette seconde contribution pourra être améliorée en intégrant l’ensemble des fonctions de similarité proposées à notre prototype d’agrégation et en optimisant celui-ci pour permettre son passage à l’échelle d’un processus de veille réel. 135 Copyright c 2013 - CASSIDIAN - All rights reservedConclusion et perspectives 2 Perspectives de recherche Les travaux de recherche menés durant cette thèse ont permis de mettre en avant des perspectives d’amélioration de notre processus de capitalisation des connaissances. La première suite à donner à nos travaux sera de mettre en place une évaluation quantitative et sur un jeu de données significatif (la base GTD par exemple) de notre processus global de capitalisation de connaissances. Pour cela, nous envisageons d’optimiser l’implémentation de notre processus d’agrégation sémantique pour passer à l’échelle de notre corpus d’évaluation. L’extraction des événements pourra être améliorée par différentes méthodes exploitant la connaissance disponible dans le Web de données. L’ensemble des silos sémantiques liés entre eux par des équivalences et des relations ontologiques peut être exploité par divers moyens. Une autre piste d’amélioration est l’intégration d’un système d’estimation de la confiance ou qualité des extractions afin de guider soit les systèmes suivants soit l’utilisateur. De plus, il pourra être intéressant d’y ajouter d’autres méthodes performantes de l’EI comme par exemple une extraction par apprentissage statistique sous réserve de disposer d’un corpus annoté adéquat. Concernant notre approche à base de motifs séquentiels, nous pourrons diversifier le corpus d’apprentissage utilisé afin d’obtenir des patrons plus génériques et performants pour d’autres domaines ou genres de texte. Les récentes recherches visant à évaluer la qualité des extractions telles que [Habib and van Keulen, 2011], nous paraissent également à prendre en compte afin d’améliorer les performances de nos extracteurs mais aussi dans le but de réaliser une hybridation intelligente de ces différentes méthodes d’extraction. Par ailleurs, comme dit précédemment le travail présenté ici est centré sur la définition d’un système global de reconnaissance et d’agrégation d’événements le plus générique possible. Cela implique que les différentes mesures de similarité présentées sont facilement interchangeables avec d’autres mesures plus avancées sans remettre en cause notre approche globale. La similarité agentive pourra, par exemple, être améliorée en y intégrant des techniques de résolution de co-référence entre entités. Nous pourrons également prendre en compte certaines dépendances entre les dimensions d’événement : à titre d’exemple, la dimension sémantique peut influencer l’agrégation d’entités temporelles dans le cas d’événements duratifs comme des épidémies ou des guerres où deux mentions d’événement peuvent avoir deux dates différentes mais tout de même référer au même événement du monde réel. En effet, nous n’étudions pour le moment que les événements dits ponctuels mais il sera intéressant de poursuivre ce travail en étudiant les événements duratifs et plus particulièrement les liens temporels entre événements grâce aux relations d’Allen [Allen, 1981] et à l’opérateur convexify défini dans le modèle TUS. Une autre perspective pourra être d’étudier tous les types de dépendance entre dimensions, notamment en explorant certaines techniques de résolution collective d’entités. Concernant le processus d’agrégation proposé, nous envisageons d’étudier les travaux existants autour de la cotation de l’information et plus particulièrement de la fiabilité des sources et des informations. La qualité des connaissances capitalisées peut être grandement améliorée dès lors que le processus d’agrégation des informations tient compte de ces indices (voir par exemple les travaux de [Cholvy, 2007]). Pour finir, l’interaction avec l’utilisateur constitue également une piste de recherche intéressante. [Noël, 2008] met en avant que les technologies du Web sémantique ont souvent été critiquées pour le fait que les aspects utilisateur y ont souvent été négligés. Ceux-ci proposent donc l’application des techniques de recherche exploratoire au Web sémantique et, plus particulièrement, à l’accès aux bases 136 Copyright c 2013 - CASSIDIAN - All rights reservedde connaissances par les utilisateurs. De plus, la possibilité donnée à l’utilisateur de fusionner des fiches grâce aux suggestions d’agrégats soulèvera d’autres problématiques à explorer telles que la mise à jour et le maintien de cohérence de la base de connaissance en fonction des actions de l’analyste. 137 Copyright c 2013 - CASSIDIAN - All rights reservedConclusion et perspectives 138 Copyright c 2013 - CASSIDIAN - All rights reservedAnnexes 139 Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe A WOOKIE : taxonomie des concepts 141 Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe A. WOOKIE : taxonomie des concepts 142 Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe B WOOKIE : événements spécifiques au ROSO 143 Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe B. WOOKIE : événements spécifiques au ROSO 144 Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe C WOOKIE : relations entre concepts 145 Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe C. WOOKIE : relations entre concepts 146 Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe D WOOKIE : attributs des concepts 147 Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe D. WOOKIE : attributs des concepts 148 Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe E GATE : exemple de chaine de traitement 149 Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe E. GATE : exemple de chaine de traitement 150 Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe F Gazetteer pour la détection de personnes en français 151 Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe F. Gazetteer pour la détection de personnes en français 152 Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe G L’ontologie-type pizza.owl 153 Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe G. L’ontologie-type pizza.owl 154 Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe H Extrait de l’ontologie pizza.owl au format OWL < !−− / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / OWL C l a s s e s / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / −−> < !−− C l a s s : h t t p : / /www. co−ode . o r g / o n t o l o g i e s / p i z z a / p i z z a . owl# Ame rican −−> < o w l : C l a s s r d f : a b o u t = " # Ame rican " > < r d f s : l a b e l xml :l a n g= " p t " >Ame rica na < / r d f s : l a b e l > < r d f s : s u b C l a s s O f > < o w l : R e s t r i c t i o n > < o w l : o n P r o p e r t y r d f : r e s o u r c e = " # h a sT o p pi n g " / > < owl: s omeVal ue sF r om r d f : r e s o u r c e = " # TomatoTopping " / > < / o w l : R e s t r i c t i o n > < / r d f s : s u b C l a s s O f > < r d f s : s u b C l a s s O f > < o w l : R e s t r i c t i o n > < o w l : o n P r o p e r t y r d f : r e s o u r c e = " # h a sT o p pi n g " / > < owl: s omeVal ue sF r om r d f : r e s o u r c e = " # P e p e r o ni S a u s a g e T o p pi n g " / > < / o w l : R e s t r i c t i o n > < / r d f s : s u b C l a s s O f > < r d f s : s u b C l a s s O f > < o w l : R e s t r i c t i o n > < o w l : o n P r o p e r t y r d f : r e s o u r c e = " # h a sC o u nt r y O f O ri gi n " / > < o wl: h a s V al u e r d f : r e s o u r c e = " # Ame rica " / > < / o w l : R e s t r i c t i o n > < / r d f s : s u b C l a s s O f > < r d f s : s u b C l a s s O f > < o w l : R e s t r i c t i o n > < o w l : o n P r o p e r t y r d f : r e s o u r c e = " # h a sT o p pi n g " / > < owl: s omeVal ue sF r om r d f : r e s o u r c e = " # M o z z a r ell a T o p pi n g " / > < / o w l : R e s t r i c t i o n > 155 Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe H. Extrait de l’ontologie pizza.owl au format OWL < / r d f s : s u b C l a s s O f > < r d f s : s u b C l a s s O f > < o w l : C l a s s r d f : a b o u t = " # NamedPizza " / > < / r d f s : s u b C l a s s O f > < r d f s : s u b C l a s s O f > < o w l : R e s t r i c t i o n > < o w l : o n P r o p e r t y r d f : r e s o u r c e = " # h a sT o p pi n g " / > < o wl: all V al u e s F r o m > < o w l : C l a s s > < o wl: u ni o n O f r d f : p a r s e T y p e = " C o l l e c t i o n " > < o w l : C l a s s r d f : a b o u t = " # M o z z a r ell a T o p pi n g " / > < o w l : C l a s s r d f : a b o u t = " # P e p e r o ni S a u s a g e T o p pi n g " / > < o w l : C l a s s r d f : a b o u t = " # TomatoTopping " / > < / o wl: u ni o n O f > < / o w l : C l a s s > < / o wl: all V al u e s F r o m > < / o w l : R e s t r i c t i o n > < / r d f s : s u b C l a s s O f > < / o w l : C l a s s > < !−− / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / OWL O bj e ct P r o p e r t i e s / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / −−> < !−− O bj e ct p r o p e r t y : h t t p : / /www. co−ode . o r g / o n t o l o g i e s / p i z z a / p i z z a . owl# h a sB a s e −−> < o w l : O b j e c t P r o p e r t y r d f : a b o u t = " # h a sB a s e " > < r d f : t y p e r d f : r e s o u r c e = "&owl ; F u n c t i o n a l P r o p e r t y " / > < r d f : t y p e r d f : r e s o u r c e = "&owl ; I n v e r s e F u n c t i o n a l P r o p e r t y " / > < o w l : i n v e r s e O f > < o w l : O b j e c t P r o p e r t y r d f : a b o u t = " # i sB a s e O f " / > < / o w l : i n v e r s e O f > < r d f s : d o m a i n > < o w l : C l a s s r d f : a b o u t = " # P i z z a " / > < / r d f s : d o m a i n > < r d f s : r a n g e > < o w l : C l a s s r d f : a b o u t = " # Pi z z aB a s e " / > < / r d f s : r a n g e > < / o w l : O b j e c t P r o p e r t y > < !−− / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / OWL I n d i v i d u a l s / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / −−> < !−− I n d i v i d u a l : h t t p : / /www. co−ode . o r g / o n t o l o g i e s / p i z z a / p i z z a . owl# Ame rica −−> < o wl: T hi n g r d f : a b o u t = " # Ame rica " > 156 Copyright c 2013 - CASSIDIAN - All rights reserved< r d f : t y p e r d f : r e s o u r c e = " # C o u nt r y " / > < / o wl: T hi n g > < !−− / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / OWL Axioms / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / −−> < o w l : C l a s s r d f : a b o u t = " # LaRei ne " > < o w l : d i s j o i n t W i t h > < o w l : C l a s s r d f : a b o u t = " #Mushroom " / > < / o w l : d i s j o i n t W i t h > < / o w l : C l a s s > < o w l : C l a s s r d f : a b o u t = " #Mushroom " > < o w l : d i s j o i n t W i t h > < o w l : C l a s s r d f : a b o u t = " # LaRei ne " / > < / o w l : d i s j o i n t W i t h > < / o w l : C l a s s > < o w l : A l l D i f f e r e n t > < o w l : d i s t i n c tM e m b e r s r d f : p a r s e T y p e = " C o l l e c t i o n " > < o wl: T hi n g r d f : a b o u t = " # Ame rica " / > < o wl: T hi n g r d f : a b o u t = " # I t a l y " / > < o wl: T hi n g r d f : a b o u t = " #Germany " / > < o wl: T hi n g r d f : a b o u t = " # F r a n c e " / > < o wl: T hi n g r d f : a b o u t = " # E n gla n d " / > < / o w l : d i s t i n c tM e m b e r s > < / o w l : A l l D i f f e r e n t > < / r d f:RDF > 157 Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe H. Extrait de l’ontologie pizza.owl au format OWL 158 Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe I Exemple de document WebLab contenant des événements < r e s o u r c e x s i : t y p e = " n s 3:D oc ume nt " u r i = " w e bl a b: / / S m a l l E n g l i s h T e s t / 1 " xml n s: n s 3 = " h t t p : / / we bla b . ow2 . o r g / c o r e / 1 . 2 / model # " x m l n s : x s i = " h t t p : / / www. w3 . o r g / 2 0 0 1 / XMLSchema−i n s t a n c e " > < a n n o t a t i o n u r i = " w e bl a b: / / S m a l l E n g l i s h T e s t /1#0−a2 " > < d a t a xml n s: n s 2 = " h t t p : / / we bla b . ow2 . o r g / 1 . 2 / model # " > < r d f:RDF xml n s: d c = " h t t p : / / p u r l . o r g / dc / el e m e n t s / 1 . 1 / " x m l n s : r d f = " h t t p : / / www. w3 . o r g / 1 9 9 9/ 0 2/ 2 2 − r d f−s y nt a x−n s # " > < r d f : D e s c r i p t i o n r d f : a b o u t = " w e bl a b: / / S m a l l E n g l i s h T e s t / 1 " > < d c : l a n g u a g e >en< / d c : l a n g u a g e > < / r d f : D e s c r i p t i o n > < / r d f:RDF > < / d a t a > < / a n n o t a t i o n > < m e di aU nit x s i : t y p e = " n s 3 : T e x t " u r i = " s o u r c e : / / x p _ s 7 8 " > < a n n o t a t i o n u r i = " s o u r c e : / / x p _ s 7 8 # a0 " > < d a t a > < r d f:RDF x m l n s : r d f s = " h t t p : / / www. w3 . o r g / 2 0 0 0 / 0 1 / r d f−schema # " x m l n s : d c t = " h t t p : / / p u r l . o r g / dc / t e rm s / " x m l n s : r d f = " h t t p : / / www. w3 . o r g / 1 9 9 9/ 0 2/ 2 2 − r d f−s y nt a x−n s # " x ml n s: wl r = " h t t p : / / we bla b . ow2 . o r g / c o r e / 1 . 2 / o nt ol o g y / r e t r i e v a l # " xml n s:wl p = " h t t p : / / we bla b . ow2 . o r g / c o r e / 1 . 2 / o nt o l o g y / p r o c e s s i n g # " xml n s:w o o ki e = " h t t p : / / we bla b . ow2 . o r g / wookie # " > < r d f : D e s c r i p t i o n r d f : a b o u t = " s o u r c e : / / x p _ s 7 8 #4 " > < w l p : r e f e r s T o r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s / S e a r c h O p e r a t i o n #40 d72785− 2171−4372−8e61 −5808 b41122c3 " / > < w l p : r e f e r s T o r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s / S e a r c h O p e r a t i o n #832 b376 f− c7dd−4d23−a8ea −4441027 c4115 " / > < / r d f : D e s c r i p t i o n > < r d f : D e s c r i p t i o n r d f : a b o u t = " s o u r c e : / / x p _ s 7 8 #5 " > < w l p : r e f e r s T o r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s / C r a s hE v e nt #81 b9be1e−a f a 9− 4 a84 −9066−414 b8021468c " / > < w l p : r e f e r s T o 159 Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe I. Exemple de document WebLab contenant des événements r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s / C r a s hE v e nt #5 bbe4888 −5445− 4896−a d f 0 −0a 2 0 b 7 6ee d 2 7 " / > < / r d f : D e s c r i p t i o n > < r d f : D e s c r i p t i o n r d f : a b o u t = " s o u r c e : / / x p _ s 7 8 # a0 " > < wl p:i s P r o d u c e dB y r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / w e b s e r v i c e s / g a t e s e r v i c e " / > < / r d f : D e s c r i p t i o n > < r d f : D e s c r i p t i o n r d f : a b o u t = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s / C r a s hE v e nt #5 bbe4888 −5445−4896− a d f 0 −0a 2 0 b 7 6ee d 2 7 " > < w o o k i e : s o u r c e > s o u r c e : / / x p _ s 7 8 < / w o o k i e : s o u r c e > < r d f s : l a b e l > i n c i d e n t < / r d f s : l a b e l > < r d f : t y p e r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / wookie # C r a s hE v e nt " / > < / r d f : D e s c r i p t i o n > < r d f : D e s c r i p t i o n r d f : a b o u t = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s / S e a r c h O p e r a t i o n #832 b376 f−c7dd− 4 d23−a8ea −4441027 c4115 " > < w o o k i e : i n v o l v e s r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s / U nit # p o l i c e " / > < w o o k i e : s o u r c e > s o u r c e : / / x p _ s 7 8 < / w o o k i e : s o u r c e > < r d f s : l a b e l > i n v e s t i g a t i n g < / r d f s : l a b e l > < r d f : t y p e r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / wookie # S e a r c h O p e r a t i o n " / > < / r d f : D e s c r i p t i o n > < r d f : D e s c r i p t i o n r d f : a b o u t = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s / S e a r c h O p e r a t i o n #40 d72785−2171− 4372−8e61 −5808 b41122c3 " > < w o o k i e : s o u r c e > s o u r c e : / / x p _ s 7 8 < / w o o k i e : s o u r c e > < r d f s : l a b e l > i n v e s t i g a t i n g < / r d f s : l a b e l > < r d f : t y p e r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / wookie # S e a r c h O p e r a t i o n " / > < / r d f : D e s c r i p t i o n > < r d f : D e s c r i p t i o n r d f : a b o u t = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s / C r a s hE v e nt #81 b9be1e−a f a 9 −4a84− 9066−414 b8021468c " > < w o o k i e : i n v o l v e s r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s / U nit # p o l i c e " / > < w o o k i e : s o u r c e > s o u r c e : / / x p _ s 7 8 < / w o o k i e : s o u r c e > < r d f s : l a b e l > i n c i d e n t < / r d f s : l a b e l > < r d f : t y p e r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / wookie # C r a s hE v e nt " / > < / r d f : D e s c r i p t i o n > < r d f : D e s c r i p t i o n r d f : a b o u t = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s / P e r s o n # muhammad_khan_ sa soli " > < w l p : i s C a n d i d a t e > t r u e < / w l p : i s C a n d i d a t e > < r d f s : l a b e l >Muhammad Khan S a s o l i < / r d f s : l a b e l > < r d f : t y p e r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / wookie # P e r s o n " / > < / r d f : D e s c r i p t i o n > < r d f : D e s c r i p t i o n r d f : a b o u t = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s / U nit # k h u z d a r _ p r e s s _ c l u b " > < w l p : i s C a n d i d a t e > t r u e < / w l p : i s C a n d i d a t e > < r d f s : l a b e l >Khuzda r P r e s s Club < / r d f s : l a b e l > < r d f : t y p e r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / wookie # U nit " / > < / r d f : D e s c r i p t i o n > 160 Copyright c 2013 - CASSIDIAN - All rights reserved< r d f : D e s c r i p t i o n r d f : a b o u t = " s o u r c e : / / x p _ s 7 8 #2 " > < w l p : r e f e r s T o r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s / P e r s o n # muhammad_khan_ sa soli " / > < / r d f : D e s c r i p t i o n > < r d f : D e s c r i p t i o n r d f : a b o u t = " s o u r c e : / / x p _ s 7 8 #3 " > < w l p : r e f e r s T o r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s / U nit # p o l i c e " / > < / r d f : D e s c r i p t i o n > < r d f : D e s c r i p t i o n r d f : a b o u t = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s / U nit # p o l i c e " > < w l p : i s C a n d i d a t e > t r u e < / w l p : i s C a n d i d a t e > < r d f s : l a b e l > P o l i c e < / r d f s : l a b e l > < r d f : t y p e r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / wookie # U nit " / > < / r d f : D e s c r i p t i o n > < r d f : D e s c r i p t i o n r d f : a b o u t = " s o u r c e : / / x p _ s 7 8 #1 " > < w l p : r e f e r s T o r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s / U nit # k h u z d a r _ p r e s s _ c l u b " / > < / r d f : D e s c r i p t i o n > < / r d f:RDF > < / d a t a > < / a n n o t a t i o n > < se gme nt x s i : t y p e = " n s 3: Li n e a r S e g m e nt " s t a r t = " 303 " end= " 321 " u r i = " s o u r c e : / / x p _ s 7 8 #1 " / > < se gme nt x s i : t y p e = " n s 3: Li n e a r S e g m e nt " s t a r t = " 386 " end= " 406 " u r i = " s o u r c e : / / x p _ s 7 8 #2 " / > < se gme nt x s i : t y p e = " n s 3: Li n e a r S e g m e nt " s t a r t = " 523 " end= " 529 " u r i = " s o u r c e : / / x p _ s 7 8 #3 " / > < se gme nt x s i : t y p e = " n s 3: Li n e a r S e g m e nt " s t a r t = " 533 " end= " 546 " u r i = " s o u r c e : / / x p _ s 7 8 #4 " / > < se gme nt x s i : t y p e = " n s 3: Li n e a r S e g m e nt " s t a r t = " 551 " end= " 559 " u r i = " s o u r c e : / / x p _ s 7 8 #5 " / > < c o n t e n t > Wednesday , December 1 5 , 2010 E−Mail t h i s a r t i c l e t o a f r i e n d P r i n t e r F r i e n d l y V e r si o n More S h a ri n g S e r v i c e s S h a r e | S h a r e on f a c e b o o k S h a r e on t w i t t e r S h a r e on l i n k e d i n S h a r e on st um bl e u p o n S h a r e on em ail S h a r e on p r i n t | J o u r n a l i s t gunned down i n Khuzda r KALAT: U n i d e n t i f i e d a rmed men gunned down Khuzda r P r e s s Club p r e s i d e n t i n Khuzda r on T ue s da y . A c c o r di n g t o t h e l o c a l p o l i c e , Muhammad Khan S a s o l i was on h i s way home when t h e u n i d e n t i f i e d men gunned him down i n La b o u r Colony . The a s s a i l a n t s f l e d f rom t h e s c e n e . P o l i c e i s i n v e s t i g a t i n g t h e i n c i d e n t . app < / c o n t e n t > < / m e di aU nit > < / r e s o u r c e > 161 Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe I. Exemple de document WebLab contenant des événements 162 Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe J Exemple de règle d’inférence au formalisme Jena @ p r e fi x r d f : < h t t p : / /www. w3 . o r g / 1 9 9 9/ 0 2/ 2 2 − r d f−s y nt a x−n s # >. @ p r e fi x owl : < h t t p : / /www. w3 . o r g / 2 0 0 2 / 0 7 / owl # >. @ p r e fi x r d f s : < h t t p : / /www. w3 . o r g / 2 0 0 0 / 0 1 / r d f−schema # >. @ p r e fi x x s d : < h t t p : / /www. w3 . o r g / 2 0 0 1 / XMLSchema# >. @ p r e fi x wookie : < h t t p : / / we bla b . ow2 . o r g / wookie # >. [ I n i t i a l i z a t i o n : −> p r i n t ( " / / / / / / / / / / / / / / E v e nt s s e m a n ti c s i m i l a r i t y r u l e s / / / / / / / / / / / / / / / / / / / / " ) ] / / / / / / / / / / / / / / / S em a nti c s i m i l a r i t y / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / [ SemSIM_1 : ( ? e1 wookie : s e m a nti c all y S IM ? e2 ) <− ( ? e1 r d f : t y p e ? c1 ) , ( ? e2 r d f : t y p e ? c2 ) , i s R e l e v a n t ( ? c1 ) , i s R e l e v a n t ( ? c2 ) , n oVal ue ( ? e1 wookie : s e m a nti c all y S IM ? e2 ) , n ot E q u al ( ? e1 , ? e2 ) , n ot E q u al ( ? c1 , ? c2 ) , h a s S u bCl a s s ( ? c1 , ? c2 ) ] 163 Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe J. Exemple de règle d’inférence au formalisme Jena 164 Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe K Extrait d’un document du corpus d’apprentissage { However howeve r RB }{ , , , }{ Canada Canada NP P l a c e }{ c o n t i n u e s c o n t i n u e VBZ }{ t o t o TO }{ make make VB }{ p r o g r e s s p r o g r e s s NN }{ on on IN }{ t h e t h e DT }{ s i x s i x CD }{ p r i o r i t i e s p r i o r i t y NNS }{ we we PP }{ ha ve ha ve VBP }{ i d e n t i f i e d i d e n t i f y VBN }{ t h a t t h a t WDT }{ w i l l w i l l MD }{ h el p h el p VB LookupEvent }{ b u i l d b u i l d VB }{ t h e t h e DT }{ f o u n d a t i o n f o u n d a t i o n NN }{ f o r f o r IN }{ a a DT }{ more more RBR }{ s t a b l e s t a b l e J J }{ A f g h a n i s t a n A f g h a n i s t a n NP P l a c e }{ . . SENT } { The t h e DT }{ f i f t h f i f t h J J }{ q u a r t e r l y q u a r t e r l y J J }{ r e p o r t r e p o r t NN }{ h i g h l i g h t s h i g h l i g h t VBZ }{ C a n a di a n C a n a di a n J J }{ a c t i v i t y a c t i v i t y NN }{ i n i n IN }{ s e v e r a l s e v e r a l J J }{ a r e a s a r e a NNS }{ : : : }{ − − : }{ Unde r u n d e r IN }{ a a DT }{ Ca na dia n−s u p p o r t e d Ca na dia n−s u p p o r t e d J J }{ p r o j e c t p r o j e c t NN }{ t o t o TO }{ c l e a r c l e a r J J }{ l a n dmi n e s l a n dmi n e NNS }{ and and CC }{ o t h e r o t h e r J J }{ e x p l o s i v e s e x p l o s i v e NNS }{ , , , }{ t r a i n i n g t r a i n i n g NN LookupEvent }{ be ga n b e gi n VBD }{ f o r f o r IN }{ 80 @card@ CD }{ l o c a l l y l o c a l l y RB }{ r e c r u i t e d r e c r u i t VBN }{ d emi n e r s d emi n e r s NNS }{ i n i n IN }{ Ka n da ha r Ka n da ha r NP P l a c e }{ , , , }{ and and CC }{ an an DT }{ a d d i t i o n a l a d d i t i o n a l J J }{ 2 7 0 , 0 0 0 @card@ CD }{ s q u a r e s q u a r e J J }{ m et r e s m et r e NNS }{ o f o f IN }{ l a n d l a n d NN }{ we re be VBD }{ c l e a r e d c l e a r VBN }{ . . SENT } { Canada Canada NP P l a c e }{ c o n t i n u e s c o n t i n u e VBZ }{ t o t o TO }{ p u r s u e p u r s u e VB }{ i t s i t s PP$ }{ e f f o r t s e f f o r t NNS }{ t o t o TO }{ p r o t e c t p r o t e c t VB LookupEvent }{ i t s i t s PP$ }{ s e c u r i t y s e c u r i t y NN }{ by by IN }{ h e l p i n g h el p VBG LookupEvent }{ t h e t h e DT }{ A fghan A fghan J J U nit }{ g o v e r nm e nt g o v e r nm e nt NN U nit }{ t o t o TO }{ p r e v e n t p r e v e n t VB }{ A f g h a n i s t a n A f g h a n i s t a n NP P l a c e }{ f rom f rom IN }{ a g a i n a g a i n RB }{ becoming become VBG }{ a a DT }{ b a s e b a s e NN }{ f o r f o r IN }{ t e r r o r i s m t e r r o r i s m NN }{ d i r e c t e d d i r e c t VBN }{ a g a i n s t a g a i n s t IN }{ Canada Canada NP P l a c e }{ o r o r CC }{ i t s i t s PP$ }{ a l l i e s a l l y NNS }{ . . SENT } 165 Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe K. Extrait d’un document du corpus d’apprentissage 166 Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe L Extrait d’un document du corpus de test TST4−MUC4−0001 C o n c e p ci o n < / Pl a c e > , 23 Aug 88< / Date> ( S a n t i a g o D ome stic S e r v i c e < / Uni t> ) −− [ R e p o rt ] [ Mi g uel Angel V a l d e b e n i t o < / Person> ] [ T e xt ] P o l i c e < / Uni t> s o u r c e s ha ve r e p o r t e d t h a t u n i d e n t i f i e d i n d i v i d u a l s p l a n t e d a bomb< / LookupEvent> i n f r o n t o f a < Pl a c e >Mormon Chu rch < / Pl a c e > i n T al c a h u a n o D i s t r i c t < / Pl a c e > . The bomb , which e x pl o d e d < / LookupEvent> and c a u s e d p r o p e r t y damage< / LookupEvent> w o rt h 5 0 , 0 0 0 p e s o s , was p l a c e d a t a c h a p e l o f t h e Chu rch o f J e s u s C h r i s t o f L a t t e r −Day S a i n t s < / Pl a c e > l o c a t e d a t No 3856 Gomez C a r r e n o S t r e e t < / Pl a c e > . The s h o c k wave d e s t r o y e d a w all , t h e r o o f , and t h e windows o f t h e c h u rc h , b ut di d n ot c a u s e any i n j u r i e s . C a r a b i n e r o s bomb s q u a d < / Uni t> p e r s o n n e l i m m e di at el y went < / LookupEvent> t o t h e l o c a t i o n and d i s c o v e r e d t h a t t h e bomb was made o f 50 g rams o f an−f o [ ammonium n i t r a t e −f u e l o i l b l a s t i n g a g e n t s ] and a sl ow f u s e . C a r a b i n e r o s s p e c i a l f o r c e s < / Uni t> s o o n r a i d e d < / LookupEvent> a l a r g e a r e a t o t r y t o a r r e s t < / LookupEvent> t h o s e r e s p o n s i b l e f o r t h e a t t a c k , b ut t h e y we re u n s u c c e s s f u l . The p o l i c e < / Uni t> ha ve a l r e a d y i n f o rm e d t h e a p p r o p r i a t e a u t h o r i t i e s , t h a t i s , t h e n a t i o n a l p r o s e c u t o r and t h e T al c a h u a n o c r i m i n a l c o u r t < / Uni t> , o f t h i s a t t a c k . 167 Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe L. Extrait d’un document du corpus de test 168 Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe M Source s12 : dépêche de presse à l’origine des événements Event1 et Event2 J a n u a r y 2 4 , 2010 Two U. S . S o l d i e r s Are Among 17 A fghan D e at h s By ROD NORDLAND and SANGAR RAHIMI KABUL, A f g h a n i s t a n − At l e a s t 17 p e o pl e di e d i n f o u r s e p a r a t e e p i s o d e s i n A f g h a n i s t a n on S at u r d a y , w hil e a p o l i c e c h i e f was ki d n a p p e d and a p r o v i n c i a l g o v e r n o r n a r r o wl y e s c a p e d a s s a s s i n a t i o n . T h r e e women and a young boy we re k i l l e d when a t a x i crammed wit h a t l e a s t e i g h t p a s s e n g e r s t r i e d t o r u n an i l l e g a l T a l i b a n c h e c k p o i n t i n P a k t i k a P r o vi n c e , i n t h e e a s t , and t h e m i l i t a n t s r i d d l e d t h e c a r wit h b u l l e t s . F o u r A fghan s o l d i e r s g u a r di n g t h e g o v e r n o r o f Wardak P r o vi n c e , j u s t w e st o f Kabul , we re k i l l e d when t h e T a l i b a n s e t o f f a hi d d e n bomb a s he t r a v e l e d t o a s c h o o l b u i l d i n g i n s p e c t i o n ; t h e g o v e r n o r was unha rmed . Two Ame rican s o l d i e r s we re k i l l e d by an i m p r o vi s e d e x p l o s i v e d e v i c e i n s o u t h e r n A f g h a ni st a n , a c c o r d i n g t o a p r e s s r e l e a s e f rom t h e i n t e r n a t i o n a l m i l i t a r y command h e r e . And s e v e n A f g ha n s we re k i l l e d i n t h e r em ot e v i l l a g e o f Qulum B al a q i n F a r y a b P r o vi n c e , i n n o r t h e r n A f g h a ni st a n , when t h e y t r i e d t o e x c a v a t e an ol d bomb d r o p p e d by an a i r c r a f t many y e a r s ago , a c c o r d i n g t o a s t a t e m e n t f rom t h e I n t e r i o r M i n i s t r y . One p e r s o n was wounded . I n a d d i t i o n , t h e p o l i c e c h i e f o f S h e i g a l d i s t r i c t i n Kuna r P r o vi n c e , J a m a t u l l a h Khan , and two o f h i s o f f i c e r s we re ki d n a p p e d w hil e p a t r o l l i n g j u s t a f t e r mi d ni g ht on S a t u r d a y c l o s e t o t h e b o r d e r wit h P a k i s t a n . Gen . K h a l i l u l l a h Zia yee , t h e p r o v i n c i a l p o l i c e c h i e f , s a i d t h e y we re a b d u ct e d " by t h e e n emi e s o f p e a c e and s t a b i l i t y i n t h e c o u nt r y , " t h e g o v e r nm e nt ’ s c at c h−a l l t e rm f o r i n s u r g e n t s . "We don ’ t ha ve any i n f o r m a t i o n a b o ut him y et , " G e n e r al Zi a y e e s ai d , s p e a ki n g o f t h e p o l i c e c h i e f . He a d de d t h a t a s e a r c h was u n d e r way . The T a l i b a n and common c r i m i n a l s o f t e n ki d n a p o f f i c i a l s f o r ransom . 169 Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe M. Source s12 : dépêche de presse à l’origine des événements Event1 et Event2 The t a x i c a b s h o o t i n g o c c u r r e d a s t h e d r i v e r was t r y i n g t o t a k e h i s p a s s e n g e r s t o g e t m e di c al c a r e a t a n e a r b y m i l i t a r y b a s e r u n by i n t e r n a t i o n a l f o r c e s . I n a d d i t i o n t o t h e t h r e e women and a boy o f 5 o r 6 who we re k i l l e d , t h r e e o t h e r p a s s e n g e r s we re wounded , a c c o r d i n g t o Mukhles Afghan , a spokesman f o r t h e p r o v i n c i a l g o v e r n o r i n P a k t i k a . The a t t e m p t e d a s s a s s i n a t i o n o f t h e g o v e r n o r o f Wardak , Mohammad Halim F e di y e e , o c c u r r e d d u r i n g a t r i p t h a t had bee n announced , l e a v i n g h i s convoy v u l n e r a b l e . "We we re awa re o f t h e pl a n n e d a t t a c k and we had a l r e a d y d e f u s e d two bombs p l a n t e d on o u r way , " s a i d S h a h e d ull a h Shahed , a spokesman f o r t h e g o v e r n o r who was t r a v e l i n g wit h him . He s a i d a T a l i b a n l o c a l commander named Ahmadullah and a n o t h e r f i g h t e r had p l a n t e d a new bomb j u s t b e f o r e t h e convoy c r o s s e d a c u l v e r t , d e t o n a t i n g i t u n d e r t h e f i r s t a rm o re d v e h i c l e i n t h e convoy . The b l a s t k i l l e d f o u r s o l d i e r s i n t h e v e h i c l e . Mr . Shahed s a i d o t h e r s o l d i e r s managed t o c a p t u r e t h e two T a l i b a n members a s t h e y t r i e d t o f l e e . " T hi s t r i p was an a n n o u nce d t r i p , and e v e r y b o d y was w a i t i n g f o r t h e g o v e r n o r t o h el p them s o l v e t h e i r p r o blem s , " Mr . Shahed s a i d . " H u n d re d s o f t r i b a l e l d e r s and l o c a l p e o pl e we re w a i t i n g t o s e e t h e g o v e r n o r . " An A fghan em pl o yee o f The New York Times i n K h o st P r o vi n c e c o n t r i b u t e d r e p o r t i n g . 170 Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe N Source s3 : dépêche de presse à l’origine de l’événement Event3 F o u r ki d n a p p e d i n e a s t A f g h a n i s t a n Sun Sep 2 6 , 2010 3: 7PM M i l i t a n t s ha ve ki d n a p p e d a B r i t i s h woman al o n g wit h t h r e e l o c a l s i n e a s t e r n A f g h a n i s t a n a s s e c u r i t y c o n t i n u e s t o d e t e r i o r a t e i n t h e war−r a v a g e d c o u n t r y . Those a b d u ct e d i n t h e p r o v i n c e o f Kunar a r e r e p o r t e d l y em pl o y e e s o f an Ame rican company . L o c al o f f i c i a l s ha ve blamed t h e ki d n a p pi n g on t h e T a l i b a n b ut t h e m i l i t a n t s ha ve n ot y e t cl aim e d r e s p o n s i b i l i t y . Ki d n a p pi n g s ha ve r e c e n t l y bee n on t h e r i s e i n A f g h a n i s t a n a s t h e s e c u r i t y s i t u a t i o n d e t e r i o r a t e s t o i t s w o r st l e v e l s s i n c e t h e 2001 US−l e d i n v a s i o n t h e r e . The T a l i b a n ha ve a b d u ct e d o v e r a d oze n p e o pl e a c r o s s A f g h a n i s t a n d u r i n g t h e r e c e n t p a r l i a m e n t a r y e l e c t i o n s . T hi s i s w hil e some 1 5 0 , 0 0 0 US−l e d f o r e i g n t r o o p s a r e r e s p o n s i b l e f o r s e c u r i t y i n t h e war−t o r n n a t i o n . JR /AKM/MMN 171 Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe N. Source s3 : dépêche de presse à l’origine de l’événement Event3 172 Copyright c 2013 - CASSIDIAN - All rights reservedBibliographie [Agrawal et al., 1993] Agrawal, R., Imielinski, T., and Swami, A. (1993). Mining association rules ´ between sets of items in large databases. In Proceedings of the 1993 ACM SIGMOD international conference on Management of data, SIGMOD ’93, pages 207–216, New York. ACM. 97 [Ahn, 2006] Ahn, D. (2006). The stages of event extraction. Proceedings of the Workshop on Annotating and Reasoning about Time and Events - ARTE ’06, pages 1–8. 27, 48 [Alatrish, 2012] Alatrish, E. S. (2012). Comparison of ontology editors. eRAF Journal on Computing, 4 :23–38. 25 [Allen, 1981] Allen, J. F. (1981). An interval-based representation of temporal knowledge. In Proceedings of the 7th international joint conference on Artificial intelligence - Volume 1, pages 221–226, San Francisco, CA, USA. Morgan Kaufmann Publishers Inc. 136 [Allen, 1983] Allen, J. F. (1983). Maintaining knowledge about temporal intervals. Commun. ACM, 26(11) :832–843. 33 [Allen, 1991] Allen, J. F. (1991). Time and time again : The many ways to represent time. Journal of Intelligent Systems, 6(4) :341–355. 33 [Allen and Ferguson, 1994] Allen, J. F. and Ferguson, G. (1994). Actions and events in interval temporal logic. Journal of Logic and Computation, 4 :531–579. 29 [Aone et al., 1998] Aone, C., Halverson, L., Hampton, T., and Ramos-Santacruz, M. (1998). SRA : Description of the IE2 system used for MUC-7. In Proceedings Seventh Message Understanding Conference (MUC-7), Fairfax, VA. 48 [Aone and Ramos-Santacruz, 2000] Aone, C. and Ramos-Santacruz, M. (2000). REES : A large-scale relation and event extraction system. In ANLP, pages 76–83. 48 [Appelt, 1999] Appelt, D. E. (1999). Introduction to information extraction. AI Commun., 12(3) :161– 172. 56 [Appelt et al., 1995] Appelt, D. E., Hobbs, J. R., Bear, J., Israel, D., Kameyama, M., Martin, D., Myers, K., and Tyson, M. (1995). SRI International FASTUS system : MUC-6 test results and analysis. In Proceedings of the 6th conference on Message understanding, MUC6 ’95, pages 237–248, Stroudsburg, PA, USA. Association for Computational Linguistics. 48 [Appelt and Onyshkevych, 1998] Appelt, D. E. and Onyshkevych, B. (1998). The common pattern specification language. In Proceedings of a workshop on held at Baltimore, Maryland : October 13-15, 1998, TIPSTER ’98, pages 23–30, Stroudsburg, PA, USA. Association for Computational Linguistics. 44 173 Copyright c 2013 - CASSIDIAN - All rights reservedBibliographie [Augenstein et al., 2012] Augenstein, I., Padó, S., and Rudolph, S. (2012). Lodifier : generating linked data from unstructured text. In Proceedings of the 9th international conference on The Semantic Web : research and applications, ESWC’12, pages 210–224, Berlin, Heidelberg. Springer-Verlag. 65 [Bachmair and Ganzinger, 2001] Bachmair, L. and Ganzinger, H. (2001). Resolution theorem proving. In Handbook of Automated Reasoning, pages 19–99. Elsevier and MIT Press. 22 [Bagga and Baldwin, 1999] Bagga, A. and Baldwin, B. (1999). Cross-document event coreference : Annotations, experiments, and observations. In In Proc. ACL-99 Workshop on Coreference and Its Applications, pages 1–8. 64, 66 [Balmisse, 2002] Balmisse, G. (2002). Gestion des connaissances. Outils et applications du knowledge management. Vuibert. 18 [Baumgartner and Retschitzegger, 2006] Baumgartner, N. and Retschitzegger, W. (2006). A survey of upper ontologies for situation awareness. Proc. of the 4th IASTED International Conference on Knowledge Sharing and Collaborative Engineering, St. Thomas, US VI, pages 1–9+. 36 [Béchet et al., 2012] Béchet, N., Cellier, P., Charnois, T., and Crémilleux, B. (2012). Discovering linguistic patterns using sequence mining. In CICLing (1), pages 154–165. 97, 98 [Benjelloun et al., 2006] Benjelloun, O., Garcia-Molina, H., Kawai, H., Larson, T. E., Menestrina, D., Su, Q., Thavisomboon, S., and Widom, J. (2006). Generic entity resolution in the serf project. IEEE Data Eng. Bull., 29(2) :13–20. 63 [Berners-Lee et al., 2001] Berners-Lee, T., Hendler, J., and Lassila, O. (2001). The Semantic Web. Scientific American, 284(5) :34–43. 19 [Besançon et al., 2010] Besançon, R., de Chalendar, G., Ferret, O., Gara, F., Mesnard, O., Laïb, M., and Semmar, N. (2010). LIMA : A multilingual framework for linguistic analysis and linguistic resources development and evaluation. In Chair), N. C. C., Choukri, K., Maegaard, B., Mariani, J., Odijk, J., Piperidis, S., Rosner, M., and Tapias, D., editors, Proceedings of the Seventh International Conference on Language Resources and Evaluation (LREC’10), Valletta, Malta. European Language Resources Association (ELRA). 49 [Besançon et al., 2011] Besançon, R., Ferret, O., and Jean-Louis, L. (2011). Construire et évaluer une application de veille pour l’information sur les événements sismiques. In CORIA, pages 287–294. 53 [Best and Cumming, 2007] Best, R. and Cumming, A. (2007). Open source intelligence (osint) : Issues for congress. Rl 34270, Congressional Research Service. 3 [Bhattacharya and Getoor, 2007] Bhattacharya, I. and Getoor, L. (2007). Collective entity resolution in relational data. ACM Transactions on Knowledge Discovery from Data, 1(1) :5–es. 63 [Bilenko et al., 2003] Bilenko, M., Mooney, R. J., Cohen, W. W., Ravikumar, P., and Fienberg, S. E. (2003). Adaptive name matching in information integration. IEEE Intelligent Systems, 18(5) :16–23. 65, 66 [Bloch, 2005] Bloch, I. (2005). Fusion d’informations numériques : panorama méthodologique. In Journées Nationales de la Recherche en Robotique 2005, pages 79–88, Guidel, France. 62 [Bond et al., 2003] Bond, D., Bond, J., Oh, C., Jenkins, J. C., and Taylor, C. L. (2003). Integrated Data for Events Analysis (IDEA) : An Event Typology for Automated Events Data Development. Journal of Peace Research, 40(6) :733–745. 36 [Bontcheva et al., 2002] Bontcheva, K., Dimitrov, M., Maynard, D., Tablan, V., and Cunningham, H. (2002). Shallow Methods for Named Entity Coreference Resolution. In TALN 2002. 46 174 Copyright c 2013 - CASSIDIAN - All rights reserved[Borsje et al., 2010] Borsje, J., Hogenboom, F., and Frasincar, F. (2010). Semi-automatic financial events discovery based on lexico-semantic patterns. Int. J. Web Eng. Technol., 6(2) :115–140. 53 [Boury-Brisset, 2003] Boury-Brisset, A.-C. (2003). Ontological approach to military knowledge modeling and management. In NATO RTO Information Systems Technology Symposium (RTO MP IST 040), Prague. 36 [Bowman et al., 2001] Bowman, M., Lopez, A. M., and Tecuci, G. (2001). Ontology development for military applications. In Proceedings of the Thirty-ninth Annual ACM Southeast Conference. ACM Press. 36 [Brill, 1992] Brill, E. (1992). A simple rule-based part of speech tagger. In Proceedings of the third conference on Applied natural language processing, ANLC ’92, pages 152–155, Stroudsburg, PA, USA. Association for Computational Linguistics. 86 [Bundschus et al., 2008] Bundschus, M., Dejori, M., Stetter, M., Tresp, V., and Kriegel, H.-P. (2008). Extraction of semantic biomedical relations from text using conditional random fields. BMC Bioinformatics, 9(1) :1–14. 53 [Buscaldi, 2010] Buscaldi, D. (2010). Toponym Disambiguation in Information Retrieval. PhD thesis, Universidad Politecnica de Valencia. 103 [Califf and Mooney, 2003] Califf, M. E. and Mooney, R. J. (2003). Bottom-Up Relational Learning of Pattern Matching Rules for Information Extraction. J. Mach. Learn. Res., 4 :177–210. 43, 54 [Capet et al., 2011] Capet, P., Delavallade, T., Généreux, M., Poibeau, T., Sándor, Á., and Voyatzi, S. (2011). Un système de détection de crise basé sur l’extraction automatique d’événements. In et P. Hoogstoel, M. C., editor, Sémantique et multimodalité en analyse de l’information, pages 293– 313. Lavoisier. 42 [Capet et al., 2008] Capet, P., Delavallade, T., Nakamura, T., Sandor, A., Tarsitano, C., and Voyatzi, S. (2008). A risk assessment system with automatic extraction of event types. In Shi, Z., MercierLaurent, E., and Leake, D., editors, Intelligent Information Processing IV, volume 288 of IFIP – The International Federation for Information Processing, pages 220–229. Springer US. 53 [Caron et al., 2012] Caron, C., Guillaumont, J., Saval, A., and Serrano, L. (2012). Weblab : une plateforme collaborative dédiée à la capitalisation de connaissances. In Extraction et gestion des connaissances (EGC’2012), Bordeaux, France. 77 [Casati and Varzi, 1997] Casati, R. and Varzi, A. (1997). Fifty years of events : an annotated bibliography 1947 to 1997. ❤tt♣✿✴✴✇✇✇✳♣❞❝♥❡t✳♦r❣✴♣❛❣❡s✴Pr♦❞✉❝ts✴❡❧❡❝tr♦♥✐❝✴❡✈❡♥ts❜✐❜✳❤t♠. 26 [Cellier and Charnois, 2010] Cellier, P. and Charnois, T. (2010). Fouille de données séquentielle d’itemsets pour l’apprentissage de patrons linguistiques. In Traitement Automatique des Langues Naturelles (short paper). 58 [Cellier et al., 2010] Cellier, P., Charnois, T., and Plantevit, M. (2010). Sequential patterns to discover and characterise biological relations. In Gelbukh, A., editor, Computational Linguistics and Intelligent Text Processing, volume 6008 of Lecture Notes in Computer Science, pages 537–548. Springer Berlin Heidelberg. 47 [Ceri et al., 1989] Ceri, S., Gottlob, G., and Tanca, L. (1989). What you always wanted to know about datalog (and never dared to ask). IEEE Transactions on Knowledge and Data Engineering, 1(1) :146– 166. 44 [Charlet et al., 2004] Charlet, J., Bachimont, B., and Troncy, R. (2004). Ontologies pour le Web sémantique. In Revue I3, numéro Hors Série «Web sémantique». Cépaduès. 21, 25 175 Copyright c 2013 - CASSIDIAN - All rights reservedBibliographie [Charlot and Lancini, 2002] Charlot, J.-M. and Lancini, A. (2002). De la connaissance aux systèmes d’information supports. In Rowe, F., editor, Faire de la recherche en systèmes d’information, pages 139–145. Vuibert FNEGE. 18 [Charnois et al., 2009] Charnois, T., Plantevit, M., Rigotti, C., and Cremilleux, B. (2009). Fouille de données séquentielles pour l’extraction d’information dans les textes. Revue Traitement Automatique des Langues (TAL), 50(3) :59–87. 45 [Charton et al., 2011] Charton, E., Gagnon, M., and Ozell, B. (2011). Génération automatique de motifs de détection d’entités nommées en utilisant des contenus encyclopédiques. In 18e Conférence sur le Traitement Automatique des Langues Naturelles (TALN 2011), Montpellier. Association pour le Traitement Automatique des Langues (ATALA). 45 [Chasin, 2010] Chasin, R. (2010). Event and temporal information extraction towards timelines of wikipedia articles. In UCCS REU 2010, pages 1–9. Massachusetts Institute of Technology. 54 [Chau and Xu, 2012] Chau, M. and Xu, J. (2012). Business intelligence in blogs : understanding consumer interactions and communities. MIS Q., 36(4) :1189–1216. 53 [Chau et al., 2002] Chau, M., Xu, J. J., and Chen, H. (2002). Extracting meaningful entities from police narrative reports. In Proceedings of the 2002 annual national conference on Digital government research, dg.o ’02, pages 1–5. Digital Government Society of North America. 54 [Chaudet, 2004] Chaudet, H. (2004). Steel : A spatio-temporal extended event language for tracking epidemic spread from outbreak reports. In In U. Hahn (Ed.), Proceedings of KR-MED 2004, First International Workshop on Formal Biomedical Knowledge Representation. 53 [Chen and Ji, 2009] Chen, Z. and Ji, H. (2009). Graph-based event coreference resolution. In Proceedings of the 2009 Workshop on Graph-based Methods for Natural Language Processing, TextGraphs- 4, pages 54–57, Stroudsburg, PA, USA. Association for Computational Linguistics. 66, 67 [Chieu, 2003] Chieu, H. L. (2003). Closing the gap : Learning-based information extraction rivaling knowledge-engineering methods. In In Proceedings of the 41st Annual Meeting of the Association for Computational Linguistics, pages 216–223. 48 [Chisholm, 1970] Chisholm, R. (1970). Events and propositions. Noûs, 4(1) :15–24. 26 [Chiticariu et al., 2010] Chiticariu, L., Krishnamurthy, R., Li, Y., Reiss, F., and Vaithyanathan, S. (2010). Domain adaptation of rule-based annotators for named-entity recognition tasks. In In EMNLP (To appear. 58 [Cholvy, 2007] Cholvy, L. (2007). Modelling information evaluation in fusion. In FUSION, pages 1–6. 136 [Ciravegna, 2001] Ciravegna, F. (2001). Adaptive information extraction from text by rule induction and generalisation. In Proceedings of the 17th international joint conference on Artificial intelligence - Volume 2, IJCAI’01, pages 1251–1256, San Francisco, CA, USA. Morgan Kaufmann Publishers Inc. 45, 54 [Crié, 2003] Crié, D. (2003). De l’extraction des connaissances au Knowledge Management. Revue française de gestion, 29(146) :59–79. 18 [Cucerzan, 2007] Cucerzan, S. (2007). Large-scale named entity disambiguation based on Wikipedia data. In Proceedings of the 2007 Joint Conference on Empirical Methods in Natural Language Processing and Computational Natural Language Learning (EMNLP-CoNLL), pages 708–716, Prague, Czech Republic. Association for Computational Linguistics. 105 176 Copyright c 2013 - CASSIDIAN - All rights reserved[Culotta et al., 2006] Culotta, A., Kristjansson, T., McCallum, A., and Viola, P. (2006). Corrective feedback and persistent learning for information extraction. Artificial Intelligence, 170(14–15) :1101 – 1122. 58 [Cunningham et al., 2002] Cunningham, H., Maynard, D., Bontcheva, K., and Tablan, V. (2002). GATE : A framework and graphical development environment for robust nlp tools and applications. In Proceedings of the 40th Annual Meeting of the Association for Computational Linguistics, Philadelphia, PA, USA. 51, 84 [Cunningham et al., 2000] Cunningham, H., Maynard, D., and Tablan, V. (2000). JAPE : a Java Annotation Patterns Engine (Second Edition). Technical Report Technical Report CS–00–10, of Sheffield, Department of Computer Science. 44 [Daille et al., 2000] Daille, B., Fourour, N., and Morin, E. (2000). Catégorisation des noms propres : une étude en corpus. In Cahiers de Grammaire - Sémantique et Corpus, volume 25, pages 115–129. Université de Toulouse-le-Mirail. 43 [Daumé et al., 2010] Daumé, III, H., Kumar, A., and Saha, A. (2010). Frustratingly easy semisupervised domain adaptation. In Proceedings of the 2010 Workshop on Domain Adaptation for Natural Language Processing, DANLP 2010, pages 53–59, Stroudsburg, PA, USA. Association for Computational Linguistics. 58 [Davidson, 1967] Davidson, D. (1967). The logical form of action sentences. In Rescher, N., editor, The Logic of Decision and Action. University of Pittsburgh Press, Pittsburgh. 26 [Davidson, 1969] Davidson, D. (1969). The individuation of events. In Rescher, N., editor, Essays in honor of Carl G. Hempel, pages 216–234. D. Reidel, Dordrecht. reprinted in Davidson, Essays on Actions and Events. 27 [De Marneffe and Manning, 2008] De Marneffe, M.-C. and Manning, C. D. (2008). Stanford typed dependencies manual. Technical report, Stanford University. 95 [Desclés, 1990] Desclés, J.-P. (1990). "State, event, process, and topology". General Linguistics, 29(3) :159–200. 26 [Desodt-Lebrun, 1996] Desodt-Lebrun, A.-M. (1996). Fusion de données. In Techniques de l’ingénieur Automatique avancée, number 12 in 96, pages 1–9. Editions Techniques de l’Ingénieur. 62 [Dey et al., 1998] Dey, D., Sarkar, S., and De, P. (1998). A probabilistic decision model for entity matching in heterogeneous databases. Management Science, 44(10) :1379–1395. 63 [Dong and Pei, 2007] Dong, G. and Pei, J. (2007). Sequence Data Mining, volume 33 of Advances in Database Systems. Kluwer. 99 [Dong et al., 2005] Dong, X., Halevy, A., and Madhavan, J. (2005). Reference reconciliation in complex information spaces. Proceedings of the 2005 ACM SIGMOD international conference on Management of data - SIGMOD ’05, page 85. 63 [Dredze et al., 2010] Dredze, M., McNamee, P., Rao, D., Gerber, A., and Finin, T. (2010). Entity disambiguation for knowledge base population. In Proceedings of the 23rd International Conference on Computational Linguistics, COLING ’10, pages 277–285, Stroudsburg, PA, USA. Association for Computational Linguistics. 64, 65 [Drozdzynski et al., 2004] Drozdzynski, W., Krieger, H.-U., Piskorski, J., Schäfer, U., and Xu, F. (2004). Shallow processing with unification and typed feature structures — foundations and applications. Künstliche Intelligenz, 1 :17–23. 49 177 Copyright c 2013 - CASSIDIAN - All rights reservedBibliographie [Elmagarmid et al., 2007] Elmagarmid, A. K., Ipeirotis, P. G., and Verykios, V. S. (2007). Duplicate record detection : A survey. IEEE Trans. on Knowl. and Data Eng., 19(1) :1–16. 63, 65, 66 [Enjalbert, 2008] Enjalbert, P. (2008). « Préface ». In Plate-formes pour le traitement automatique des langues, volume 49 of Revue interntaionale Traitement Automatique des Langues, chapter 2, pages 7–10. ATALA. 50 [Etzioni et al., 2005] Etzioni, O., Cafarella, M., Downey, D., Popescu, A.-M., Shaked, T., Soderland, S., Weld, D. S., and Yates, A. (2005). Unsupervised named-entity extraction from the web : An experimental study. Artif. Intell., 165(1) :91–134. 43 [Fellegi and Sunter, 1969] Fellegi, I. P. and Sunter, A. B. (1969). A theory for record linkage. Journal of the American Statistical Association, 64 :1183–1210. 63 [Fensel et al., 2001] Fensel, D., van Harmelen, F., Horrocks, I., McGuinness, D. L., and Patel-Schneider, P. F. (2001). OIL : An ontology infrastructure for the semantic web. IEEE Intelligent Systems, 16(2) :38–45. 22 [Ferré, 2007] Ferré, S. (2007). CAMELIS : Organizing and Browsing a Personal Photo Collection with a Logical Information System. In Diatta, J., Eklund, P., and Liquière, M., editors, Int. Conf. Concept Lattices and Their Applications, volume 331, pages 112–123, Montpellier, France. 98, 99 [Fialho et al., 2010] Fialho, A., Troncy, R., Hardman, L., Saathoff, C., and Scherp, A. (2010). What’s on this evening ? Designing user support for event-based annotation and exploration of media. In EVENTS 2010, 1st International Workshop on EVENTS - Recognising and tracking events on the Web and in real life, May 4, 2010, Athens, Greece, Athens, GRÈCE. 29 [Finin et al., 2009] Finin, T., Syed, Z., Mayfield, J., McNamee, P., and Piatko, C. (2009). Using Wikitology for Cross-Document Entity Coreference Resolution. In Proceedings of the AAAI Spring Symposium on Learning by Reading and Learning to Read. AAAI Press. 46, 109 [Fisher et al., 2005] Fisher, M., Gabbay, D., and Vila, L. (2005). Handbook of Temporal Reasoning in Artificial Intelligence. Foundations of Artificial Intelligence. Elsevier Science. 76 [Fleischman and Hovy, 2002] Fleischman, M. and Hovy, E. (2002). Fine grained classification of named entities. Proceedings of the 19th international conference on Computational linguistics -, 1 :1–7. 58 [Fourour, 2002] Fourour, N. (2002). Nemesis, un système de reconnaissance incrémentielle des entités nommées pour le français. Actes de la 9ème Conférence Nationale sur le Traitement Automatique des Langues Naturelles (TALN 2001), 1 :265–274. 45 [François et al., 2007] François, J., Le Pesant, D., and Leeman, D. (2007). Présentation de la classification des verbes français de jean dubois et françoise dubois-charlier. Langue Française, 153(153) :3– 32. 96 [Friburger, 2006] Friburger, N. (2006). « Linguistique et reconnaissance automatique des noms propres ». Meta : journal des traducteurs / Meta : Translators’ Journal, 51(4) :637–650. 44 [Fundel et al., 2007] Fundel, K., Küffner, R., Zimmer, R., and Miyano, S. (2007). Relex–relation extraction using dependency parse trees. Bioinformatics, 23. 46 [Garbin and Mani, 2005] Garbin, E. and Mani, I. (2005). Disambiguating toponyms in news. In Proceedings of the conference on Human Language Technology and Empirical Methods in Natural Language Processing. 103 [Genesereth, 1991] Genesereth, M. R. (1991). Knowledge interchange format. In KR, pages 599–600. 22 178 Copyright c 2013 - CASSIDIAN - All rights reserved[Giroux et al., 2008] Giroux, P., Brunessaux, S., Brunessaux, S., Doucy, J., Dupont, G., Grilheres, B., Mombrun, Y., and Saval, A. (2008). Weblab : An integration infrastructure to ease the development of multimedia processing applications. ICSSEA. 6 [Goujon, 2002] Goujon, B. (2002). Annotation d’événements dans les textes pour la veille stratégique. Event (London). 53 [Grishman et al., 2002a] Grishman, R., Huttunen, S., and Yangarber, R. (2002a). Information extraction for enhanced access to disease outbreak reports. Journal of biomedical informatics, 35(4) :236–46. 53 [Grishman et al., 2002b] Grishman, R., Huttunen, S., and Yangarber, R. (2002b). Real-time event extraction for infectious disease outbreaks. Proceedings of the second international conference on Human Language Technology Research -, pages 366–369. 48 [Grishman and Sundheim, 1996] Grishman, R. and Sundheim, B. (1996). Message understanding conference-6 : a brief history. In Proceedings of the 16th conference on Computational linguistics - Volume 1, pages 466–471, Morristown, NJ, USA. Association for Computational Linguistics. 41 [Gruber, 1993] Gruber, T. R. (1993). A translation approach to portable ontology specifications. Knowl. Acquis., 5(2) :199–220. 21 [Guarino, 1998] Guarino, N. (1998). Formal ontology and information systems. In Proceedings of Formal Ontology in Information System, pages 3–15. IOS Press. 22 [Haase et al., 2008] Haase, P., Lewen, H., Studer, R., Tran, D. T., Erdmann, M., d’Aquin, M., and Motta, E. (2008). The NeOn Ontology Engineering Toolkit. In WWW 2008 Developers Track. 25 [Habib and van Keulen, 2011] Habib, M. B. and van Keulen, M. (2011). Improving named entity disambiguation by iteratively enhancing certainty of extraction. Technical Report TR-CTIT-11-29, Centre for Telematics and Information Technology University of Twente, Enschede. 136 [Hall et al., 2009] Hall, M., Frank, E., Holmes, G., Pfahringer, B., Reutemann, P., and Witten, I. H. (2009). The WEKA data mining software : an update. SIGKDD Explor. Newsl., 11(1) :10–18. 51 [Hasegawa et al., 2004] Hasegawa, T., Sekine, S., and Grishman, R. (2004). Discovering relations among named entities from large corpora. In Proceedings of the 42nd Annual Meeting on Association for Computational Linguistics, ACL ’04, Stroudsburg, PA, USA. Association for Computational Linguistics. 47 [Hayes, 1995] Hayes, P. (1995). A catalog of temporal theories. Technical report, University of Illinois. Tech report UIUC-BI-AI-96-01. 33 [Hecking, 2003] Hecking, M. (2003). Information extraction from battlefield reports. Proceedings of the 8thInternational Command and Control Research and Technology Symposium (ICCRTS). 53 [Higginbotham et al., 2000] Higginbotham, J., Pianesi, F., and Varzi, A. (2000). Speaking of Events. Oxford University Press. 26 [Hobbs et al., 1997] Hobbs, J. R., Appelt, D. E., Bear, J., Israel, D. J., Kameyama, M., Stickel, M. E., and Tyson, M. (1997). FASTUS : A Cascaded Finite-State Transducer for Extracting Information from Natural-Language Text. CoRR, cmp-lg/9705013. 44 [Hobbs and Riloff, 2010] Hobbs, J. R. and Riloff, E. (2010). Information extraction. In Handbook of Natural Language Processing, Second Edition. CRC Press, Taylor and Francis Group, Boca Raton, FL. 40, 43 179 Copyright c 2013 - CASSIDIAN - All rights reservedBibliographie [Hogenboom et al., 2011] Hogenboom, F., Frasincar, F., Kaymak, U., and de Jong, F. (2011). An Overview of Event Extraction from Text. In van Erp, M., van Hage, W. R., Hollink, L., Jameson, A., and Troncy, R., editors, Workshop on Detection, Representation, and Exploitation of Events in the Semantic Web (DeRiVE 2011) at Tenth International Semantic Web Conference (ISWC 2011), volume 779 of CEUR Workshop Proceedings, pages 48–57. CEUR-WS.org. 42, 56 [Horrocks, 2002] Horrocks, I. (2002). daml+oil : a description logic for the semantic web. IEEE Data Engineering Bulletin, 25 :4–9. 22 [Huffman, 1995] Huffman, S. (1995). Learning information extraction patterns from examples. In Connectionist, Statistical, and Symbolic Approaches to Learning for Natural Language Processing, pages 246–260. Springer. 49 [Humphreys et al., 1997] Humphreys, K., Gaizauskas, R., and Azzam, S. (1997). Event coreference for information extraction. In Proceedings of the ACL-97 Workshop on Operational Factors in Practical, Robust Anaphora Resolution for Unrestricted Texts, Madrid, Spain. 66 [Inyaem et al., 2010a] Inyaem, U., Haruechaiyasak, C., Meesad, P., and Tran, D. (2010a). Terrorism event classification using fuzzy inference systems. CoRR, abs/1004.1772. 53 [Inyaem et al., 2010b] Inyaem, U., Meesad, P., Haruechaiyasak, C., and Tran, D. (2010b). Construction of fuzzy ontology-based terrorism event extraction. In WKDD, pages 391–394. IEEE Computer Society. 36 [Ireson et al., 2005] Ireson, N., Ciravegna, F., Califf, M. E., Freitag, D., Kushmerick, N., and Lavelli, A. (2005). Evaluating machine learning for information extraction. In Proceedings of the 22nd international conference on Machine learning, ICML ’05, pages 345–352, New York, NY, USA. ACM. 43 [Isozaki and Kazawa, 2002] Isozaki, H. and Kazawa, H. (2002). Efficient support vector classifiers for named entity recognition. In In Proceedings of the 19th International Conference on Computational Linguistics (COLING’02, pages 390–396. 45 [Ittoo et al., 2006] Ittoo, A., Zhang, Y., and Jiao, J. (2006). A text mining-based recommendation system for customer decision making in online product customization. In Management of Innovation and Technology, 2006 IEEE International Conference on, volume 1, pages 473–477. 54 [Jansche and Abney, 2002] Jansche, M. and Abney, S. P. (2002). Information extraction from voicemail transcripts. In In Proc. Conference on Empirical Methods in NLP. 53 [Jarrar and Meersman, 2009] Jarrar, M. and Meersman, R. (2009). Ontology engineering — the DOGMA approach. In Dillon, T. S., Chang, E., Meersman, R., and Sycara, K., editors, Advances in Web Semantics I, pages 7–34. Springer-Verlag, Berlin, Heidelberg. 22 [Jason et al., 2004] Jason, R. S., Crawford, J., Kephart, J., and Leiba, B. (2004). Spamguru : An enterprise anti-spam filtering system. In In Proceedings of the First Conference on E-mail and Anti-Spam, page 2004. 54 [Jean-Louis et al., 2012] Jean-Louis, L., Romaric, B., and Ferret, O. (2012). Une méthode d’extraction d’information fondée sur les graphes pour le remplissage de formulaires. In Actes de la 19e conférence sur le Traitement Automatique des Langues Naturelles (TALN’2012), pages 29–42, Grenoble, France. 49 [Ji, 2010] Ji, H. (2010). Challenges from information extraction to information fusion. In Proceedings of the 23rd International Conference on Computational Linguistics : Posters, COLING ’10, pages 507–515, Stroudsburg, PA, USA. Association for Computational Linguistics. 62 180 Copyright c 2013 - CASSIDIAN - All rights reserved[Ji et al., 2009] Ji, H., Grishman, R., Chen, Z., and Gupta, P. (2009). Cross-document Event Extraction and Tracking : Task, Evaluation, Techniques and Challenges. Society, pages 166–172. 64 [Jonasson, 1994] Jonasson, K. (1994). Le Nom Propre, Constructions et interprétations. Champs linguistiques. Duculot. 44 [Khrouf and Troncy, 2012] Khrouf, H. and Troncy, R. (2012). Réconcilier les événements dans le web de données. In Actes de IC2011, pages 723–738, Chambéry, France. 66, 67 [Kifer et al., 1995] Kifer, M., Lausen, G., and Wu, J. (1995). Logical foundations of object-oriented and frame-based languages. J. ACM, 42(4) :741–843. 22 [Kim, 1973] Kim, J. (1973). Causation, nomic subsumption, and the concept of event. Journal of Philosophy, 70(8) :217–236. 26 [Krieg-Planque, 2009] Krieg-Planque, A. (2009). A propos des noms propres d’événement, volume 11, pages 77–90. Les carnets du Cediscor. 27 [Kripke, 1980] Kripke, S. (1980). Naming and Necessity. Harvard University Press. 41 [Ladkin, 1987] Ladkin, P. (1987). The logic of time representation. phdphd, University of California, Berkeley. 33, 76 [Lafferty et al., 2001] Lafferty, J. D., McCallum, A., and Pereira, F. C. N. (2001). Conditional random fields : Probabilistic models for segmenting and labeling sequence data. In Proceedings of the Eighteenth International Conference on Machine Learning, ICML ’01, pages 282–289, San Francisco, CA, USA. Morgan Kaufmann Publishers Inc. 45 [LaFree and Dugan, 2007] LaFree, G. and Dugan, L. (2007). Introducing the Global Terrorism Database. Terrorism and Political Violence, 19(2) :181–204. 123 [Largeron et al., 2009] Largeron, C., Kaddour, B., and Fernandez, M. (2009). Softjaccard : une mesure de similarité entre ensembles de chaînes de caratères pour l’unification d’entités nommées. In Ganascia, J.-G. and Gançarski, P., editors, EGC, volume RNTI-E-15 of Revue des Nouvelles Technologies de l’Information, pages 443–444. Cépaduès-Éditions. 112 [Lavelli et al., 2004] Lavelli, A., Califf, M. E., Ciravegna, F., Freitag, D., Giuliano, C., Kushmerick, N., and Romano, L. (2004). IE evaluation : Criticisms and recommendations. In In AAAI-2004 Workshop on Adaptive Text Extraction and Mining. 58 [Lawrence et al., 1999] Lawrence, S., Giles, C. L., and Bollacker, K. (1999). Digital libraries and autonomous citation indexing. IEEE COMPUTER, 32(6) :67–71. 54 [LDC, 2005] LDC, L. D. C. (2005). ACE (Automatic Content Extraction) : English annotation guidelines for events, version 5.4.3 2005.07.01 edition edition. 28 [Lee et al., 2012] Lee, H., Recasens, M., Chang, A., Surdeanu, M., and Jurafsky, D. (2012). Joint entity and event coreference resolution across documents. In Proceedings of the 2012 Joint Conference on Empirical Methods in Natural Language Processing and Computational Natural Language Learning, EMNLP-CoNLL ’12, pages 489–500, Stroudsburg, PA, USA. Association for Computational Linguistics. 66 [Lejeune et al., 2010] Lejeune, G., Doucet, A., Yangarber, R., and Lucas, N. (2010). Filtering news for epidemic surveillance : towards processing more languages with fewer resources. In CLIA/COLING, pages 3–10. 53 [Ligeza and Bouzid, 2008] Ligeza, A. and Bouzid, M. (2008). Temporal specifications with xtus. a hierarchical algebraic approach. In Cotta, C., Reich, S., Schaefer, R., and Lig˛eza, A., editors, KnowledgeDriven Computing, volume 102 of Studies in Computational Intelligence, pages 133–148. Springer Berlin / Heidelberg. 76 181 Copyright c 2013 - CASSIDIAN - All rights reservedBibliographie [Liu et al., 2008] Liu, M., Liu, Y., Xiang, L., Chen, X., and Yang, Q. (2008). Extracting key entities and significant events from online daily news. In IDEAL, pages 201–209. 53 [Llorens Martínez, 2011] Llorens Martínez, H. (2011). A semantic approach to temporal information processing. PhD thesis, Universidad de Alicante. 103 [Lofi et al., 2012] Lofi, C., Selke, J., and Balke, W.-T. (2012). Information extraction meets crowdsourcing : A promising couple. Datenbank-Spektrum, 12(2) :109–120. 58 [Luberg et al., 2012] Luberg, A., Järv, P., and Tammet, T. (2012). Information extraction for a tourist recommender system. In Fuchs, M., Ricci, F., and Cantoni, L., editors, Information and Communication Technologies in Tourism 2012, pages 332–343. Springer Vienna. 54 [Mann and Yarowsky, 2003] Mann, G. S. and Yarowsky, D. (2003). Unsupervised personal name disambiguation. In Proceedings of the Seventh Conference on Natural Language Learning at HLT-NAACL 2003 - Volume 4, CONLL ’03, pages 33–40, Stroudsburg, PA, USA. Association for Computational Linguistics. 105 [Mannes and Golbeck, 2005] Mannes, A. and Golbeck, J. (2005). Building a terrorism ontology. In ISWC Workshop on Ontology Patterns for the Semantic Web. 36 [Maurel et al., 2011] Maurel, D., Friburger, N., Antoine, J.-Y., Eshkol, I., and Nouvel, D. (2011). Cascades de transducteurs autour de la reconnaissance des entités nommées. Traitement Automatique des Langues, 52(1) :69–96. 44 [McCallum, 2005] McCallum, A. (2005). Information extraction : Distilling structured data from unstructured text. Queue, 3(9) :48–57. 51 [McDermott, 1982] McDermott, D. (1982). A temporal logic for reasoning about processes and plans*. Cognitive Science, 6(2) :101–155. 33 [McDonald, 1996] McDonald, D. D. (1996). Internal and external evidence in the identification and semantic categorization of proper names. In Boguraev, B. and Pustejovsky, J., editors, Corpus processing for lexical acquisition, pages 21–39. MIT Press, Cambridge, MA, USA. 44 [Mihalcea and Csomai, 2007] Mihalcea, R. and Csomai, A. (2007). Wikify ! : linking documents to encyclopedic knowledge. In Proceedings of the sixteenth ACM conference on Conference on information and knowledge management, CIKM ’07, pages 233–242, New York, NY, USA. ACM. 58 [Mikheev, 1999] Mikheev, A. (1999). A knowledge-free method for capitalized word disambiguation. Proceedings of the 37th annual meeting of the Association for Computational Linguistics on Computational Linguistics -, pages 159–166. 89 [Mikheev et al., 1999] Mikheev, A., Moens, M., and Grover, C. (1999). Named entity recognition without gazetteers. In Proceedings of the ninth conference on European chapter of the Association for Computational Linguistics, EACL’99, pages 1–8, Stroudsburg, PA, USA. Association for Computational Linguistics. 45 [Milne and Witten, 2008] Milne, D. and Witten, I. H. (2008). Learning to link with wikipedia. In Proceedings of the 17th ACM conference on Information and knowledge management, CIKM ’08, pages 509–518, New York, NY, USA. ACM. 58, 65 [Minard, 2008] Minard, A.-L. (2008). Etat de l’art des ontologies d’objets géographiques. Master’s thesis, Laboratoire COGIT (IGN). 35 [Mintz et al., 2009] Mintz, M., Bills, S., Snow, R., and Jurafsky, D. (2009). Distant supervision for relation extraction without labeled data. In Proceedings of the Joint Conference of the 47th Annual 182 Copyright c 2013 - CASSIDIAN - All rights reservedMeeting of the ACL and the 4th International Joint Conference on Natural Language Processing of the AFNLP : Volume 2 - Volume 2, ACL ’09, pages 1003–1011, Stroudsburg, PA, USA. Association for Computational Linguistics. 47 [Mizoguchi, 2003a] Mizoguchi, R. (2003a). Tutorial on ontological engineering : Part 1 : Introduction to ontological engineering. New Generation Comput., 21(4) :365–384. 22, 78 [Mizoguchi, 2003b] Mizoguchi, R. (2003b). Tutorial on ontological engineering : Part 2 : Ontology development, tools and languages. New Generation Comput., 22(1) :61–96. 22 [Montague, 1969] Montague, R. (1969). On the nature of certain philosophical entities. The Monist, 53(2) :159–194. 26 [Moreau et al., 2008] Moreau, E., Yvon, F., and Cappé, O. (2008). Robust similarity measures for named entities matching. In Proceedings of the 22nd International Conference on Computational Linguistics - Volume 1, COLING ’08, pages 593–600, Stroudsburg, PA, USA. Association for Computational Linguistics. 66 [Muller and Tannier, 2004] Muller, P. and Tannier, X. (2004). Annotating and measuring temporal relations in texts. In Coling 2004 , Genève,, pages 50–56. Association for Computational Linguistics. 46 [Muslea, 1999] Muslea, I. (1999). Extraction Patterns for Information Extraction Tasks : A Survey. Proc. AAAI-99 Workshop Machine Learning for Information Extraction, pages 1–6. 43 [Nadeau and Sekine, 2007] Nadeau, D. and Sekine, S. (2007). A survey of named entity recognition and classification. Linguisticae Investigationes, 30(1) :3–26. Publisher : John Benjamins Publishing Company. 41, 43, 44, 58 [Nakamura-Delloye and Villemonte De La Clergerie, 2010] Nakamura-Delloye, Y. and Villemonte De La Clergerie, É. (2010). Exploitation de résultats d’analyse syntaxique pour extraction semisupervisée des chemins de relations. In TALN 2010, page taln2010_submission_164, Montréal, Canada. 46 [NATO, 2001] NATO (2001). The NATO Military Intelligence Data Exchange Standard AINTP-3(A). Technical report, NATO. 36 [NATO, 2007] NATO (2007). Joint c3 information exchange data model - jc3iedm. Technical report, NATO. 36 [Naughton et al., 2006] Naughton, M., Kushmerick, N., and Carthy, J. (2006). Event extraction from heterogeneous news sources. In Proc. Workshop Event Extraction and Synthesis. American Nat. Conf. Artificial Intelligence. 41, 66 [Neches et al., 1991] Neches, R., Fikes, R., Finin, T., Gruber, T., Patil, R., Senator, T., and Swartout, W. R. (1991). Enabling technology for knowledge sharing. AI Mag., 12(3) :36–56. 21 [Neveu and Quéré, 1996] Neveu, E. and Quéré, L. (1996). Le temps de l’événement I, chapter Présentation, pages 7–21. Number 75 in Réseaux. CNET. 27, 75 [Newcombe et al., 1959] Newcombe, H. B., Kennedy, J. M., Axford, S. J., and James, A. P. (1959). Automatic Linkage of Vital Records. Science, 130(3381) :954–959. 63 [Nishihara et al., 2009] Nishihara, Y., Sato, K., and Sunayama, W. (2009). Event extraction and visualization for obtaining personal experiences from blogs. In Proceedings of the Symposium on Human Interface 2009 on Human Interface and the Management of Information. Information and Interaction. Part II : Held as part of HCI International 2009, pages 315–324, Berlin, Heidelberg. Springer-Verlag. 54 183 Copyright c 2013 - CASSIDIAN - All rights reservedBibliographie [NIST, 2005] NIST (2005). The ACE 2005 (ACE05) Evaluation Plan. 28 [Noël, 2008] Noël, L. (2008). From semantic web data to inform-action : a means to an end. Workshop SWUI (Semantic Web User Interaction), CHI 2008, 5-10 Avril, 2008, Florence, Italie. 136 [Noy and Mcguinness, 2001] Noy, N. F. and Mcguinness, D. L. (2001). Ontology Development 101 : A Guide to Creating Your First Ontology. Technical Report KSL-01-05, Stanford Knowledge Systems Laboratory. 22, 78, 79 [Padró and Stanilovsky, 2012] Padró, L. and Stanilovsky, E. (2012). Freeling 3.0 : Towards wider multilinguality. In Proceedings of the Language Resources and Evaluation Conference (LREC 2012), Istanbul, Turkey. ELRA. 51 [Paquet, 2008] Paquet, P. (2008). De l’information à la connaissance. In Information et communication et management dans l’entreprise : quels enjeux ?, pages 17–48. Harmattan. 18 [Paumier, 2003] Paumier, S. (2003). A Time-Efficient Token Representation for Parsers. In Proceedings of the EACL Workshop on Finite-State Methods in Natural Language Processing, pages 83–90, Budapest. 52 [Pauna and Guillemin-Lanne, 2010] Pauna, R. and Guillemin-Lanne, S. (2010). Comment le text mining peut-il aider à gérer le risque militaire et stratégique ? Text. 53 [Piskorski and Atkinson, 2011] Piskorski, J. and Atkinson, M. (2011). Frontex real-time news event extraction framework. In Proceedings of the 17th ACM SIGKDD international conference on Knowledge discovery and data mining, KDD ’11, pages 749–752, New York, NY, USA. ACM. 53 [Piskorski et al., 2007] Piskorski, J., Tanev, H., and Wennerberg, P. O. (2007). Extracting violent events from on-line news for ontology population. In Proceedings of the 10th international conference on Business information systems, BIS’07, pages 287–300, Berlin, Heidelberg. Springer-Verlag. 54 [Piskorski and Yangarber, 2013] Piskorski, J. and Yangarber, R. (2013). Information extraction : Past, present and future. In Poibeau, T., Saggion, H., Piskorski, J., and Yangarber, R., editors, Multi-source, Multilingual Information Extraction and Summarization, Theory and Applications of Natural Language Processing, pages 23–49. Springer Berlin Heidelberg. 57 [Poibeau, 2003] Poibeau, T. (2003). Extraction automatique d’information : Du texte brut au web sé- mantique. Lavoisier. 40 [Polanyi, 1966] Polanyi, M. (1966). The tacit dimension. Routledge and Keagan Paul. 18 [Popescu et al., 2011] Popescu, A.-M., Pennacchiotti, M., and Paranjpe, D. (2011). Extracting events and event descriptions from Twitter. In Proceedings of the 20th international conference companion on World wide web, WWW ’11, pages 105–106, New York, NY, USA. ACM. 54 [Pustejovsky et al., 2003] Pustejovsky, J., Castaño, J. M., Ingria, R., Sauri, R., Gaizauskas, R. J., Setzer, A., Katz, G., and R., R. D. (2003). TimeML : Robust specification of event and temporal expressions in text. In New Directions in Question Answering’03, pages 28–34. 27 [Quine, 1985] Quine, W. V. (1985). Events and reification. In Actions and Events : Perspectives on the Philosophy of Davidson, pages 162–71. Blackwell. 66 [Quine, 1960] Quine, W. V. O. (1960). Word and Object. MIT Press paperback series. Technology Press of the Massachusetts Inst. of Technology. 26 [Radev et al., 2001] Radev, D. R., Blair-Goldensohn, S., Zhang, Z., and Raghavan, R. S. (2001). Interactive, domain-independent identification and summarization of topically related news articles. In Proceedings of the 5th European Conference on Research and Advanced Technology for Digital Libraries, ECDL ’01, pages 225–238, London, UK, UK. Springer-Verlag. 54 184 Copyright c 2013 - CASSIDIAN - All rights reserved[Raimond et al., 2007] Raimond, Y., Abdallah, S. A., Sandler, M. B., and Giasson, F. (2007). The music ontology. In ISMIR, pages 417–422. 28 [Randell et al., 1992] Randell, D. A., Cui, Z., and Cohn, A. G. (1992). A spatial logic based on regions and connection. In Proceedings of the 3rd international conference on knowledge representation and reasoning. 35 [Ratinov et al., 2011] Ratinov, L., Roth, D., Downey, D., and Anderson, M. (2011). Local and global algorithms for disambiguation to wikipedia. In Proceedings of the 49th Annual Meeting of the Association for Computational Linguistics : Human Language Technologies - Volume 1, HLT ’11, pages 1375–1384, Stroudsburg, PA, USA. Association for Computational Linguistics. 58 [Rattenbury et al., 2007] Rattenbury, T., Good, N., and Naaman, M. (2007). Towards automatic extraction of event and place semantics from flickr tags. In Proceedings of the 30th annual international ACM SIGIR conference on Research and development in information retrieval, SIGIR ’07, pages 103–110, New York, NY, USA. ACM. 54 [Ricœur, 1983] Ricœur, P. (1983). Temps et récit 1. L´intrigue et le récit historique, volume 227 of Points : Essais. Ed. du Seuil, Paris. 27 [Rosario and Hearst, 2004] Rosario, B. and Hearst, M. A. (2004). Classifying semantic relations in bioscience texts. Proceedings of the 42nd Annual Meeting on Association for Computational Linguistics - ACL ’04, pages 430–es. 47 [Rosario and Hearst, 2005] Rosario, B. and Hearst, M. A. (2005). Multi-way relation classification : application to protein-protein interactions. In Proceedings of the conference on Human Language Technology and Empirical Methods in Natural Language Processing, HLT ’05, pages 732–739, Stroudsburg, PA, USA. Association for Computational Linguistics. 41, 53 [Saurí et al., 2005] Saurí, R., Knippen, R., Verhagen, M., and Pustejovsky, J. (2005). Evita : a robust event recognizer for QA systems. In Proceedings of the conference on Human Language Technology and Empirical Methods in Natural Language Processing, HLT ’05, pages 700–707, Stroudsburg, PA, USA. Association for Computational Linguistics. 49, 54 [Saval, 2011] Saval, A. (2011). Modèle temporel, spatial et sémantique pour la découverte de relations entre évènements. PhD thesis, Univeristé de Caen Basse-Normandie. 27 [Saval et al., 2009] Saval, A., Bouzid, M., and Brunessaux, S. (2009). A Semantic Extension for Event Modelisation. 2009 21st IEEE International Conference on Tools with Artificial Intelligence, pages 139–146. 74, 75 [Sayyadi et al., 2009] Sayyadi, H., Hurst, M., and Maykov, A. (2009). Event Detection and Tracking in Social Streams. In Proceedings of International Conference on Weblogs and Social Media (ICWSM). 54 [Saïs et al., 2009] Saïs, F., Pernelle, N., and Rousset, M.-C. (2009). Combining a logical and a numerical method for data reconciliation. In Spaccapietra, S., editor, Journal on Data Semantics XII, volume 5480 of Lecture Notes in Computer Science, pages 66–94. Springer Berlin Heidelberg. 63 [Schmid, 1994] Schmid, H. (1994). Probabilistic part-of-speech tagging using decision trees. In Proceedings of the International Conference on New Methods in Language Processing, Manchester, UK. 99 [Sekine et al., 2002] Sekine, S., Sudo, K., and Nobata, C. (2002). Extended named entity hierarchy. In Rodríguez, M. G. and Araujo, C. P. S., editors, Proceedings of 3 rd International Conference on Language Resources and Evaluation (LREC’02), pages 1818–1824, Canary Islands, Spain. 58 185 Copyright c 2013 - CASSIDIAN - All rights reservedBibliographie [Serrano et al., 2013a] Serrano, L., Bouzid, M., Charnois, T., Brunessaux, S., and Grilheres, B. (2013a). Events extraction and aggregation for open source intelligence : from text to knowledge. In IEEE International Conference on Tools with Artificial Intelligence (ICTAI 2013), Washington DC, USA. [Serrano et al., 2013b] Serrano, L., Bouzid, M., Charnois, T., Brunessaux, S., and Grilheres, B. (2013b). Extraction et agrégation automatique d’événements pour la veille en sources ouvertes : du texte à la connaissance. In Ingénierie des Connaissances 2013 (IC 2013), Lille, France. [Serrano et al., 2012a] Serrano, L., Bouzid, M., Charnois, T., and Grilheres, B. (2012a). Vers un système de capitalisation des connaissances : extraction d’événements par combinaison de plusieurs approches. In Atelier des Sources Ouvertes au Web de Données (SOS-DLWD’2012) en conjonction avec la conférence internationale francophone (EGC 2012), Bordeaux, France. [Serrano et al., 2012b] Serrano, L., Charnois, T., Brunessaux, S., Grilheres, B., and Bouzid, M. (2012b). Combinaison d’approches pour l’extraction automatique d’événements (automatic events extraction by combining multiple approaches) [in french]. In Actes de la conférence conjointe JEP-TALNRECITAL 2012, volume 2 : TALN, Grenoble, France. ATALA/AFCP. [Serrano et al., 2011] Serrano, L., Grilheres, B., Bouzid, M., and Charnois, T. (2011). Extraction de connaissances pour le renseignement en sources ouvertes. In Atelier Sources Ouvertes et Services (SOS 2011) en conjonction avec la conférence internationale francophone (EGC 2011), Brest, France. [Silberztein et al., 2012] Silberztein, M., Váradi, T., and Tadic, M. (2012). Open source multi-platform nooj for nlp. In COLING (Demos), pages 401–408. 52 [Smart et al., 2007] Smart, P., Russell, A., Shadbolt, N., Shraefel, M., and Carr, L. (2007). Aktivesa. Comput. J., 50 :703–716. 36 [Soderland, 1999] Soderland, S. (1999). Learning information extraction rules for semi-structured and free text. Mach. Learn., 34 :233–272. 43 [Sun et al., 2005] Sun, Z., Lim, E.-P., Chang, K., Ong, T.-K., and Gunaratna, R. K. (2005). Event-driven document selection for terrorism information extraction. In Proceedings of the 2005 IEEE international conference on Intelligence and Security Informatics, ISI’05, pages 37–48, Berlin, Heidelberg. Springer-Verlag. 53 [Tanev et al., 2008] Tanev, H., Piskorski, J., and Atkinson, M. (2008). Real-time news event extraction for global crisis monitoring. In Proceedings of the 13th international conference on Natural Language and Information Systems : Applications of Natural Language to Information Systems, NLDB ’08, pages 207–218, Berlin, Heidelberg. Springer-Verlag. 53 [Tarski, 1956] Tarski, A. (1956). Logic, Semantics, Metamathematics, chapter Foundations of the Geometry of Solids. Oxford, Clarendon Press. 35 [Thompson et al., 1999] Thompson, C. A., Califf, M. E., and Mooney, R. J. (1999). Active learning for natural language parsing and information extraction. In Proceedings of the Sixteenth International Conference on Machine Learning, ICML ’99, pages 406–414, San Francisco, CA, USA. Morgan Kaufmann Publishers Inc. 58 [Tkachenko and Simanovsky, 2012] Tkachenko, M. and Simanovsky, A. (2012). Named entity recognition : Exploring features. In Jancsary, J., editor, Proceedings of KONVENS 2012, pages 118–127. ÖGAI. Main track : oral presentations. 45 [Troncy et al., 2010] Troncy, R., Shaw, R., and Hardman, L. (2010). LODE : une ontologie pour repré- senter des événements dans le web de données. In IC 2010, 21st Journées Francophones d’Ingénierie des Connaissances, June 8-11, 2010, Nîmes, France, Nîmes, FRANCE. 29 186 Copyright c 2013 - CASSIDIAN - All rights reserved[Van De Velde, 2006] Van De Velde, D. (2006). Grammaire des événements. Presses Universitaires du Septentrion. 26 [van Hage et al., 2011] van Hage, W. R., Malaisé, V., Segers, R., Hollink, L., and Schreiber, G. (2011). Design and use of the Simple Event Model (SEM). Web Semantics : Science, Services and Agents on the World Wide Web, 9(2) :128–136. 30 [Vargas-Vera and Celjuska, 2004] Vargas-Vera, M. and Celjuska, D. (2004). Event recognition on news stories and semi-automatic population of an ontology. In Proceedings of the 2004 IEEE/WIC/ACM International Conference on Web Intelligence, WI ’04, pages 615–618, Washington, DC, USA. IEEE Computer Society. 54 [Varjola and Löffler, 2010] Varjola, M. and Löffler, J. (2010). PRONTO : Event Recognition for Public Transport. Proceedings of 17th ITS World Congress, Busan, Korea. 53 [Verykios and Elmagarmid, 1999] Verykios, V. S. and Elmagarmid, A. K. (1999). Automating the approximate record matching process. Information Sciences, 126 :83–98. 64 [Viola and Narasimhan, 2005] Viola, P. and Narasimhan, M. (2005). Learning to extract information from semi-structured text using a discriminative context free grammar. In Proceedings of the 28th annual international ACM SIGIR conference on Research and development in information retrieval, SIGIR ’05, pages 330–337, New York, NY, USA. ACM. 45 [Vlahovic, 2011] Vlahovic, N. (2011). Information Retrieval and Information Extraction in Web 2.0 environment. nternational Journal of Computers, 5(1). 40, 54 [Wacholder et al., 1997] Wacholder, N., Ravin, Y., and Choi, M. (1997). Disambiguation of proper names in text. In Proceedings of the fifth conference on Applied natural language processing, ANLC ’97, pages 202–208, Stroudsburg, PA, USA. Association for Computational Linguistics. 64 [Wakao et al., 1996] Wakao, T., Gaizauskas, R., and Wilks, Y. (1996). Evaluation of an algorithm for the recognition and classification of proper names. In Proceedings of the 16th conference on Computational linguistics - Volume 1, COLING ’96, pages 418–423, Stroudsburg, PA, USA. Association for Computational Linguistics. 44 [Wang et al., 2011] Wang, W., Besançon, R., Ferret, O., and Grau, B. (2011). Filtering and clustering relations for unsupervised information extraction in open domain. Proceedings of the 20th ACM international conference on Information and knowledge management - CIKM ’11, page 1405. 47 [Whitehead, 1920] Whitehead, A. (1920). The Concept of Nature. Dover science books. Dover Publications. 35 [Widlocher et al., 2006] Widlocher, A., Bilhaut, F., Hernandez, N., Rioult, F., Charnois, T., Ferrari, S., and Enjalbert, P. (2006). Une approche hybride de la segmentation thématique : collaboration du traitement automatique des langues et de la fouille de texte. In Actes de DEfi Fouille de Texte (DEFT’06), Semaine du Document Numérique (SDN’06), Fribourg, Suisse. 52 [Winkler et al., 2006] Winkler, W. E., Winkler, W. E., and P, N. (2006). Overview of record linkage and current research directions. Technical report, Bureau of the Census. 63, 109 [Xu et al., 2006] Xu, F., Uszkoriet, H., and Li, H. (2006). Automatic Event and Relation Detection with Seeds of Varying Complexity. In AAAI 2006 Workshop on Event Extraction and Synthesis. 49 [Yates and Etzioni, 2009] Yates, A. and Etzioni, O. (2009). Unsupervised methods for determining object and relation synonyms on the web. J. Artif. Intell. Res. (JAIR), 34 :255–296. 66 187 Copyright c 2013 - CASSIDIAN - All rights reservedBibliographie [Zanasi, 2009] Zanasi, A. (2009). Virtual weapons for real wars : Text mining for national security. In Corchado, E., Zunino, R., Gastaldo, P., and Herrero, A., editors, Proceedings of the International Workshop on Computational Intelligence in Security for Information Systems CISIS’08, volume 53 of Advances in Soft Computing, pages 53–60. Springer Berlin Heidelberg. 53 [Zhao, 2004] Zhao, S. (2004). Named entity recognition in biomedical texts using an hmm model. In Proceedings of the International Joint Workshop on Natural Language Processing in Biomedicine and its Applications, JNLPBA ’04, pages 84–87, Stroudsburg, PA, USA. Association for Computational Linguistics. 45 [Zhu and Porter, 2002] Zhu, D. and Porter, A. L. (2002). Automated extraction and visualization of information for technological intelligence and forecasting. Technological Forecasting and Social Change, 69(5) :495 – 506. TF Highlights from {ISF} 2001. 53 [Zhu et al., 2009] Zhu, J., Nie, Z., Liu, X., Zhang, B., and Wen, J.-R. (2009). StatSnowball : a statistical approach to extracting entity relationships. In Proceedings of the 18th international conference on World wide web, WWW ’09, pages 101–110, New York, NY, USA. ACM. 47 188 Copyright c 2013 - CASSIDIAN - All rights reserved Normalisation et Apprentissage de Transductions d’Arbres en Mots Gr´egoire Laurence To cite this version: Gr´egoire Laurence. Normalisation et Apprentissage de Transductions d’Arbres en Mots. Databases. Universit´e des Sciences et Technologie de Lille - Lille I, 2014. French. . HAL Id: tel-01053084 https://tel.archives-ouvertes.fr/tel-01053084 Submitted on 29 Jul 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.Universit´e des Sciences et Technologies de Lille – Lille 1 D´epartement de formation doctorale en informatique Ecole doctorale SPI Lille ´ UFR IEEA Normalisation et Apprentissage de Transductions d’Arbres en Mots THESE ` pr´esent´ee et soutenue publiquement le 4 Juin 2014 pour l’obtention du Doctorat de l’Universit´e des Sciences et Technologies de Lille (sp´ecialit´e informatique) par Gr´egoire Laurence Composition du jury Pr´esident : Olivier Carton (Olivier.Carton@liafa.univ-paris-diderot.fr) Rapporteurs : Olivier Carton (Olivier.Carton@liafa.univ-paris-diderot.fr) Marie-Pierre B´eal (beal@univ-mlv.fr) Directeur de th`ese : Joachim Niehren (joachim.niehren@lifl.fr) Co-Encadreur de th`ese : Aur´elien Lemay (aurelien.lemay@univ-lille3.fr) Laboratoire d’Informatique Fondamentale de Lille — UMR USTL/CNRS 8022 INRIA Lille - Nord EuropeRésumé Le stockage et la gestion de données sont des questions centrales en informatique. La structuration sous forme d’arbres est devenue la norme (XML, JSON). Pour en assurer la pérennité et l’échange efficace des données, il est nécessaire d’identifier de nouveaux mécanismes de transformations automatisables. Nous nous concentrons sur l’étude de transformations d’arbres en mots représentées par des machines à états finies. Nous définissons les transducteurs séquentiels d’arbres en mots ne pouvant utiliser qu’une et unique fois chaque nœud de l’arbre d’entrée pour décider de la production. En réduisant le problème d’équivalence des transducteurs séquentiels à celui des morphismes appliqués à des grammaires algébriques (Plandowski, 95), nous prouvons qu’il est décidable en temps polynomial. Cette thèse introduit la notion de transducteur travailleur, forme normalisée de transducteurs séquentiels, cherchant à produire la sortie le «plus tôt possible» dans la transduction. A l’aide d’un algorithme de normalisation et de minimisation, nous prouvons qu’il existe un représentant canonique, unique transducteur travailleur minimal, pour chaque transduction de notre classe. La décision de l’existence d’un transducteur séquentiel représentant un échantillon, i.e. paires d’entrées et sorties d’une transformation, est prouvée NP-difficile. Nous proposons un algorithme d’apprentissage produisant à partir d’un échantillon le transducteur canonique le représentant, ou échouant, le tout en restant polynomial. Cet algorithme se base sur des techniques d’infé- rence grammaticales et sur l’adaptation du théorème de Myhill-Nerode. Titre : Normalisation et Apprentissage de Transductions d’Arbres en MotsAbstract Storage, management and sharing of data are central issues in computer science. Structuring data in trees has become a standard (XML, JSON). To ensure preservation and quick exchange of data, one must identify new mechanisms to automatize such transformations. We focus on the study of tree to words transformations represented by finite state machines. We define sequential tree to words transducers, that use each node of the input tree exactly once to produce an output. Using reduction to the equivalence problem of morphisms applied to contextfree grammars (Plandowski, 95), we prove that equivalence of sequential transducers is decidable in polynomial time. We introduce the concept of earliest transducer, sequential transducers normal form, which aim to produce output "as soon as possible" during the transduction. Using normalization and minimization algorithms, we prove the existence of a canonical transducer, unique, minimal and earliest, for each transduction of our class. Deciding the existence of a transducer representing a sample, i.e. pairs of input and output of a transformation, is proved NP-hard. Thus, we propose a learning algorithm that generate a canonical transducer from a sample, or fail, while remaining polynomial. This algorithm is based on grammatical inference techniques and the adaptation of a Myhill-Nerode theorem. Title : Normalization and Learning of Tree to Words TransductionsRemerciements Cet espace me permettant de remercier toutes les personnes m’ayant aider à effectuer, rédiger, soutenir et fêter cette thèse, je tiens tout d’abord à saluer le travail effectué par Marie-Pierre Béal et Olivier Carton, qui ont du rapporter et être jury de cette thèse. Je les remercie d’avoir eu le courage de relire l’intégralité de ce manuscrit, des retours qu’ils m’en ont fait, et de l’intérêt qu’ils ont portés à mon travail. Cette thèse n’aurait jamais eu lieu sans la présence de mes encadrants, tout particulièrement Joachim Niehren qui m’a permis d’intégrer cette équipe dès mon stage de recherche, et lancé les travaux qui mènent à ce que vous tenez maintenant entre vos mains. Merci à Joachim, Aurélien Lemay, Slawek Staworko et Marc Tommasi de m’avoir suivi pendant cette (longue) épreuve, de m’avoir guidé, soutenu, et aider à mener cette thèse pour arriver à ce résultat qui je l’espère vous fait autant plaisir qu’a moi. Tout n’a pas toujours été facile, je n’ai pas toujours été aussi investi qu’il aurait fallut, mais vous avez toujours réussi à me remettre sur la route, et permis d’arriver à cette étape. Je ne peut remercier mes encadrants sans penser à l’intégralité des membres de l’équipe Mostrare (links, magnet, et même avant) qui m’ont permis de passer ces quelques années dans un parfait environnement de travail (mais pas que). Ayant plus ou moins intégré cette équipe depuis mon stage de maitrise (grâce à Isabelle Tellier et Marc), il me serait difficile d’énumérer ici l’intégralité des membres que j’y ai croisé, et ce que chacun m’a apporté. Je m’adonne quand même à ce petit exercice pour l’ensemble des doctorants qui ont partagé cette position de thésard dans l’équipe : Jérôme, Olivier, Edouard, Benoît, Antoine, Tom, Jean, Adrien, Radu, et Guillaume (même si il n’était pas doctorant). Ces années ont également été occupées par mes différents postes dans l’enseignements à Lille 3 ou encore Lille 1 et je remercie l’ensemble des enseignants qui m’ont aidés et accompagné durant cette tâche, tout particulièrement Alain Taquet avec qui j’ai partagé mes premiers enseignements. Même si il n’ont pas à proprement contribué à ce que contient cette thèse (enfin ça dépend lesquels), malgré eux ils y sont pour beaucoup, je parle bien entendu de mes amis et ma famille. Je n’en ferait pas non plus la liste ici, n’en déplaise à certains, mais je remercie tout particulièrement mes parents, ma soeur pour m’avoir supporter et permis d’en arriver là, mon parrain et ma marraine pour leur présence et l’intérêt tout particulier qu’ils ont portés à ma thèse. Merci à toute ma famille et mes amis d’avoir été présents avant, pendant, et je l’espère encore longtemps après cette thèse, d’avoir réussi à me lafaire oubliée parfois. Une pensée toute particulière à Sébatien Lemaguer qui a eu la lourde tâche de relire l’intégralité de cette thèse (sauf ces remerciements) à la recherche de fautes (trop nombreuses). Je ne pouvait pas finir ces remerciement sans parler de mon amie, amour, Manon, a qui cette thèse appartient au moins autant qu’a moi, support inconditionnel dans l’ombre sans qui je n’aurai surement pas réussi à terminer cette thèse. Elle a vécue au moins autant que moi toute cette épreuve, jusqu’à son dernier moment, et m’a permis de malgré tout mes périodes de doutes d’aboutir à ce résultat. Merci à toi, et merci à vous tous.Table des matières Introduction 1 1 Automates 11 1.1 Mots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.1.1 Mots et langages . . . . . . . . . . . . . . . . . . . . . . . . 11 1.1.2 Grammaires . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.1.3 Automates . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.2 Arbres d’arité bornée . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.2.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.2.2 Automates d’arbres . . . . . . . . . . . . . . . . . . . . . . 21 1.3 Arbres d’arité non-bornée . . . . . . . . . . . . . . . . . . . . . . . 25 1.3.1 Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1.3.2 Comment définir les automates ? . . . . . . . . . . . . . . 25 1.3.3 Codage binaire curryfié (ascendant) . . . . . . . . . . . . 26 1.3.4 Codage binaire frère-fils (descendant) . . . . . . . . . . . 29 1.4 Mots imbriqués . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 1.4.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 1.4.2 Linéarisation d’arbres d’arité non-bornée . . . . . . . . . 32 1.4.3 Automates de mots imbriqués . . . . . . . . . . . . . . . . 33 1.4.4 Automate descendant . . . . . . . . . . . . . . . . . . . . . 34 2 Transducteurs 37 2.1 Transducteurs de mots . . . . . . . . . . . . . . . . . . . . . . . . 39 2.1.1 Transducteurs rationnels . . . . . . . . . . . . . . . . . . . 39 2.1.2 Transducteurs déterministes . . . . . . . . . . . . . . . . . 50 2.1.3 Transducteurs déterministes avec anticipation . . . . . . 76 2.2 Transducteur d’arbres d’arité bornée . . . . . . . . . . . . . . . . 80 2.2.1 Transducteur descendants . . . . . . . . . . . . . . . . . . 81 2.2.2 Transducteur ascendant . . . . . . . . . . . . . . . . . . . 88 2.2.3 Transducteur avec anticipation . . . . . . . . . . . . . . . 90 2.2.4 Macro-transducteurs descendants . . . . . . . . . . . . . . 93 2.3 Transducteurs d’arbres en mots . . . . . . . . . . . . . . . . . . . 95 2.3.1 Transducteurs descendants . . . . . . . . . . . . . . . . . . 95 2.3.2 Transducteurs ascendants . . . . . . . . . . . . . . . . . . 98 2.4 Transducteurs d’arbres d’arité non bornée . . . . . . . . . . . . . 100 2.4.1 Transducteurs de mots imbriqués en mots . . . . . . . . 101 2.4.2 Transducteurs de mots imbriqués en mots imbriqués . . 1043 Transformations XML 105 3.1 XSLT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 3.1.1 XSLT en Pratique . . . . . . . . . . . . . . . . . . . . . . . 105 3.2 Transducteurs et xslt . . . . . . . . . . . . . . . . . . . . . . . . . 109 3.2.1 dST2W . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 3.2.2 Macro-Transducteurs et xpath . . . . . . . . . . . . . . . 110 4 Équivalence de transducteurs séquentiels d’arbres en mots 115 4.1 Relation avec l’équivalence de morphismes sur CFGs . . . . . . 115 4.1.1 Exécution d’un dNW2W . . . . . . . . . . . . . . . . . . 116 4.1.2 Arbre syntaxique étendu . . . . . . . . . . . . . . . . . . . 116 4.2 Relation entre dB2W et dT2W . . . . . . . . . . . . . . . . . . . 121 5 Normalisation et minimisation des transducteurs descendants d’arbres en mots 125 5.1 dST2W travailleur . . . . . . . . . . . . . . . . . . . . . . . . . . 125 5.2 Caractérisation sémantique . . . . . . . . . . . . . . . . . . . . . . 127 5.2.1 Approche naïve . . . . . . . . . . . . . . . . . . . . . . . . 127 5.2.2 Décompositions et résiduels . . . . . . . . . . . . . . . . . 129 5.2.3 Transducteur canonique . . . . . . . . . . . . . . . . . . . 133 5.3 Minimisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 5.3.1 Minimisation des edST2Ws . . . . . . . . . . . . . . . . . 135 5.3.2 Minimisation de dST2Ws arbitraires . . . . . . . . . . . 138 5.4 Normalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 5.4.1 Réduction de langages . . . . . . . . . . . . . . . . . . . . 143 5.4.2 Faire traverser un mot dans un langage . . . . . . . . . . 143 5.4.3 Déplacement de gauche à droite . . . . . . . . . . . . . . 148 5.4.4 Algorithme de normalisation . . . . . . . . . . . . . . . . 151 5.4.5 Bornes exponentielles . . . . . . . . . . . . . . . . . . . . . 158 6 Apprentissage de transducteurs descendants d’arbres en mots161 6.1 Théorème de Myhill-Nerode . . . . . . . . . . . . . . . . . . . . . 161 6.2 Consistence des dST2Ws . . . . . . . . . . . . . . . . . . . . . . . 162 6.3 Modèle d’apprentissage . . . . . . . . . . . . . . . . . . . . . . . . 165 6.4 Algorithme d’apprentissage . . . . . . . . . . . . . . . . . . . . . . 166 6.5 Décompositions, résiduels et équivalence . . . . . . . . . . . . . . 166 6.6 Echantillon caractéristique . . . . . . . . . . . . . . . . . . . . . . 170 7 Conclusion 177 7.1 Perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 Bibliographie 183Introduction De tout temps, le stockage, la gestion et l’échange de données sont des questions centrales en informatique, plus encore de nos jours, la quantité de données devenant de plus en plus importante et partagée entre différents services. La structuration des données participe énormément à ces défis. Elle permet par exemple d’intégrer une certaine sémantique absolument nécessaire pour l’échange, d’effectuer plus efficacement des traitements comme des requêtes ou des transformations. Les arbres de données sont une telle représentation structurée des informations. Mon travail de thèse est une contribution à l’étude de ces arbres de données et particulièrement leurs transformations. Une question centrale que j’aborde consiste en la définition d’algorithmes d’apprentissage de ces programmes de transformations, que je représente sous la forme de machines à états finis : les transducteurs. Arbres de données Les arbres de données permettent d’apporter une structure à des données textuelles. Ces arbres sont composés de nœuds étiquetés par des symboles issus d’un alphabet fini. Les valeurs textuelles se retrouvent au niveau du feuillage de l’arbre ou dans ses nœuds internes sous forme d’attributs. Elles sont composés à partir d’un alphabet fini, comme par exemple celui de l’ASCII ou de l’unicode, mais ne sont pas bornées en taille. Certains modèles existants, tels que le xml (recommandation du W3C) ou JSON (JavaScript Object Notation), cherchent à homogénéiser le format des données des documents structurés sous forme d’arbre en proposant une syntaxe permettant de les représenter. Que ce soit sous forme d’arbres d’arité non bornée, ordonnés, associés à des champs textuels et des enregistrements pour le xml, ou d’arbres d’arité bornée et d’ensembles d’enregistrements non bornés ni ordonnés pour ce qui est de JSON, le but reste de spécifier une syntaxe en limitant le moins possible la sémantique que l’utilisateur souhaite associer à la structure. Certains formats de données qui en découlent limitent le choix des étiquettes de nœuds utilisables dans la structure. Ces étiquettes (les balises) doivent appartenir à un ensemble fini et fixé et portent chacune une sémantique forte. C’est le cas de fichiers html ou des méta-données contenues dans certains document issus de logiciels de traitement de texte. Les arbres de données peuvent se trouver également dans les bases de données, ou encore2 Introduction dans le «Cloud computing», où même si parfois ils partagent des syntaxes proches, peuvent être utilisés dans des domaines totalement différents avec des sémantiques qui leurs sont propres. Que ce soit pour l’échange, la mise en relation ou la sélection de données, il devient de plus en plus nécessaire, au delà des modifications automatiques de texte, comme pouvait le permettre des programmes tels que Perl, d’identifier de nouveaux mécanismes de transformation basés sur la structure. Il est surtout intéressant de voir jusqu’où les méta-données contenues dans la structure même jouent un rôle dans le choix des transformations à effectuer. Transformations Pour cela, il faut dans un premier temps se demander quel type de transformation nous intéresse. Il existe déjà plusieurs moyens de transformer des arbres de données, que ce soit pour une tâche spécifique ou comme le permet le langage xslt, une représentation des transformations dans le sens le plus large du terme. Le langage de programmation xslt (Clark, 1999), pour «eXtensible Stylesheet Language Transformations», est un langage défini au sein de la recommandation xsl du consortium W3C. Il permet de transformer des arbres de données, représentés par un ou plusieurs xml, en données de différents types, xml, textuels ou même binaires. Il est lui même repré- senté sous la forme d’un arbre de données dont certaines étiquettes de noeuds spécifient les fonctions de transformation à appliquer. Cette application passe par la sélection de noeuds à transformer à l’aide de requêtes xpath (Clark et DeRose, 1999). Ces requêtes permettent la sélection de noeuds dans un arbre de données à l’aide d’opérations primitives de déplacement dans la fi- liation de l’arbre. Une grande expressivité se faisant souvent au détriment de la complexité, xslt est un programme Turing-complet (Kepser, 2004; Onder et Bayram, 2006). Pour pouvoir étudier théoriquement et se diriger vers un possible apprentissage, Il est nécessaire d’en introduire des sous classes, moins expressives. L’intérêt d’un arbre de données étant de structurer des informations pour en simplifier la recherche et l’utilisation, il n’est pas surprenant qu’une des fonctions les plus utilisées dans le langage xslt soit la fonction «xsl ∶ value − of » retournant l’ensemble des valeurs textuelles contenues dans les feuilles des sous-arbres traités. Par exemple, comme l’illustre la figure 1, cherchons à récupérer le nom et prénom du premier contact contenu dans un carnet d’adresse sous format xml, pour un futur affichage dans un document html . Cela donne en xslt, l’appel de la balise suivante : 3 contacts contact identite nom Laurence prenom Grégoire adresse ⋯ ⋯ ⋯ ⇒ "Laurence Grégoire" Figure 1 – Exemple de transformation xslt basique Seule la structure de l’arbre importe ici pour décider du traitement à effectuer sur les feuilles. De ce fait, les valeurs textuelles pourraient être abstraites sous la forme de balises dédiées ne servant qu’à les identifier, et permettre leur réutilisation dans la sortie. Toutefois, la structure interne n’est pas toujours suffisante pour décider du traitement à effectuer. Les valeurs textuelles sont parfois des éléments centraux d’une transformation. Les opérations telles que les jointures utilisent ces valeurs textuelles comme repères pour regrouper certaines informations. Dès lors elles font partie intégrante de la sélection des noeuds à manipuler et ne peuvent plus être ignorés. Qu’en est il de la sortie ? Il n’est pas toujours intéressant de garder la structure de l’entrée. Comme l’illustre la transformation représentée dans la figure 1, il est parfois nécessaire de se concentrer sur la concaténation de champs textuels sélectionnés. Même si une structure est parfois nécessaire, il reste tout à fait possible de la représenter sous format xml, une chaîne composée de balises ouvrantes et fermantes représentant un arbre de données. Cette liberté dans la représentation de la sortie se fait au détriment du contrôle de la structure de sortie, qui n’est plus reconnue en tant qu’arbre de données, empêchant ainsi son utilisation directe en entrée d’une autre transformation. Il n’est plus possible dès lors de composer plusieurs transformations sans pré- traitements sur les données intermédiaires. Nous décidons dans cette thèse de nous concentrer sur les transformations d’arbres en mots qui permettent la concaténation dans la sortie. Cela repré- sente une simplification des transformations d’arbres de données à arbres de données. Il est dès lors plus possible d’exprimer les opérations de jointures.4 Introduction Nous perdons également les propriétés de compositions, la structure d’entrée n’étant plus présente dans la production. Cela nous permet de nous concentrer sur la possibilité de manipuler les chaînes de sortie, ce qui nous intéresse ici. Motivation générale Notre but reste l’automatisation de la tâche de transformation. Cela passe par un apprentissage de la transformation que l’on souhaite effectuer. L’apprentissage considéré ici revient à chercher à identifier une cible, appartenant à une classe de langages connue, à partir d’exemples (et de possibles contreexemples). Il nous reste donc à identifier formellement une classe de transformations d’arbres en mots, de choisir le modèle d’apprentissage que nous souhaitons appliquer, et les exemples à partir desquels apprendre. L’apprentissage que nous souhaitons utiliser se base sur l’inférence grammaticale (Gold, 1967) en cherchant à identifier à la limite un langage cohérent avec les exemples d’entrée. Le plus souvent cette technique se divise en deux étapes, une représentation des exemples dans un formalisme les regroupant, et la généralisation de ce modèle pour en déduire un langage reconnaissant souvent un langage plus large que celui représenté par les exemples, mais tout en restant cohérent avec cet échantillon. Pour ce qui est des exemples, la transformation d’arbres en mots peut être vue comme un ensemble de paires composées d’un arbre et de la chaîne de mots résultant de la transformation de cet arbre. Il est connu que, pour apprendre un langage de mots régulier, ne considérer que des exemples positifs n’est pas suffisant en inférence grammaticale (Gold, 1967). Il est nécessaire d’avoir des contre-exemples ou autres éléments permettant d’éviter une surgénéralisation. Qu’en est-il de nos transformations ? Une des propriétés permettant de contrôler cette possible sur-généralisation est le fait qu’une transformation doit rester fonctionnelle. Nous devons pour cela nous assurer qu’une entrée ne puisse être transformée qu’en au plus un résultat. Le deuxième contrôle peut être fait à l’aide du domaine d’entrée, le langage d’arbres sur lequel la transformation peut s’effectuer. Il existe pour cela de nombreuses possibilités, que ce soit à l’aide d’exemples négatifs ou encore par la connaissance directe du domaine, donné en entrée de l’apprentissage. L’apprentissage de langage d’arbres étant un problème connu et ayant déjà été résolu par inférence grammaticale (Oncina et Garcia, 1992), nous opterons pour la deuxième solution, en supposant que le domaine nous est déjà donné. Une fois le type d’exemples et d’apprentissage choisi, il nous reste à choisir quel modèle utiliser pour représenter notre transformation, vérifier que ce mo-5 dèle dispose des propriétés nécessaires pour un apprentissage, et enfin définir l’algorithme d’apprentissage à proprement parler. Nous choisissons d’utiliser les transducteurs, machines à états finis permettant d’évaluer une entrée en produisant la sortie associée. Nous souhaitons donc que toute transformation de la classe qui nous intéresse soit définissable par la classe de transducteurs choisie, ce qu’il reste à prouver. Nous voulons également que la cible d’un apprentissage soit unique, qu’a chaque transformation lui soit associé un transducteur canonique la représentant. Cela repose sur la normalisation du transducteur, pour en homogénéiser le contenu, et de sa minimisation pour assurer l’unicité. Il est donc nécessaire d’introduire une classe de transducteurs permettant de représenter les transformations d’arbres en mots, disposant d’une forme normale. La cible de l’apprentissage d’une transformation sera le transducteur canonique, unique minimal, de cette classe la représentant. Il est donc nécessaire de définir un théorème de type Myhill-Nerode (Nerode, 1958) pour ce modèle, assurant, entre autre, l’existence d’un transducteur canonique pour chaque transformation de notre classe. L’algorithme d’apprentissage en lui même se résume à la décomposition de la transformation représentée par les exemples, pour en déduire les états du transducteur cible. Cela repose sur la possibilité de tester efficacement l’équivalence de fragments de la transformation pour identifier les fragments communs. Il reste à spécifier le modèle de transducteurs à l’aide duquel nous souhaitons modéliser notre transformation. Transducteurs Que ce soit sur les mots ou les arbres, de nombreux modèles de transducteurs ont déjà été proposés et étudiés dans le domaine. Nous nous intéressons particulièrement aux modèles déterministes, ne permettant qu’une exécution possible pour une donnée d’entrée fixée, qui en plus d’assurer la fonctionnalité de la transformation représentée, simplifie la décidabilité de problèmes importants. Avant de nous concentrer sur un modèle permettant de transformer des arbres en mots, nous pouvons évoquer deux classes de transducteurs permettant respectivement de gérer les mots et les arbres. Les transducteurs sous-séquentiels, transducteurs déterministes de mots introduits par Schützenberger (1975), transforment, lettre par lettre un mot d’entrée dans sa sortie. Cette production est obtenue par concaténation de toutes les chaînes produites par le transducteur. Pour ce qui est des arbres, les transducteurs déterministes d’arbres d’arité bornée, basés sur les travaux de Rounds (1968) et Thatcher (1970), permettent, en parcourant un arbre de sa racine à ses feuilles, de produire un arbre. Chaque règle de cet arbre associe6 Introduction à un noeud de l’arbre d’entrée et ses fils, un contexte, arbre à trous. Chacun de ces sous-arbres manquants s’obtient par l’application d’une transduction à un fils de ce noeud. Aucune contrainte n’est faite sur l’ordre d’utilisation de ces fils ou encore du nombre de fois qu’ils sont utilisés. Cela revient à autoriser la copie et le réordonnancement des fils d’un noeud dans la sortie. Il n’est cependant pas possible de fusionner le contenu de plusieurs noeuds ou de supprimer des noeuds internes. Ces classes de transducteurs disposent de résultats de décidabilité sur les problèmes théorique importants. Ainsi, le problème d’équivalence est montré décidable, par Engelfriet et al. (2009) pour les transducteurs d’arbres, et par Choffrut (1979) pour les transducteurs de mots. Une forme normale, assurant à l’aide de contraintes une représentation normalisé d’un transducteur, a été introduite pour chacun d’entre eux, que ce soit par Choffrut (1979) pour les mots ou par Lemay et al. (2010) pour les arbres, afin d’assurer l’existence d’un transducteur canonique, normalisé minimal unique, pour chaque transformation exprimable par un transducteur de la classe. Des algorithmes d’apprentissages ont été proposés pour chacune de ces classes, que ce soit l’algorithme OSTIA (Oncina et al., 1993) pour les transducteurs sous-séquentiels, ou plus récemment sur les transducteurs d’arbres en arbres (Lemay et al., 2010). Pour ce qui est des transformations d’arbres en mots que nous cherchons à représenter, nous nous dirigeons sur une machine proche des transducteurs d’arbres, du moins sur le traitement de l’entrée, mais produisant cette foisci des mots. Les règles produisent maintenant, pour un noeud et ses fils, la concaténation de mots et du résultat de transduction des fils. Les problèmes théoriques, tel que l’équivalence et l’existence de représentants canoniques, sont ouverts pour cette classe de transductions. Il est également possible de pousser vers d’autres modèles de transducteurs plus expressifs tels que les macro transducteurs d’arbres (Engelfriet, 1980), plus proche des transformations de type XSLT que les modèles évoqués pré- cédemment. Mais ce modèle autorisant également des opérations telles que la concaténation, il n’est pas intéressant d’attaquer cette classe alors que des classes strictement moins expressives, et utilisant le même type d’opérateurs, n’ont toujours pas de résultats de décidabilité sur les problèmes théoriques. Maintenant que nous avons décidé du type de transformation qui nous intéresse, d’arbres en mots, ainsi que la manière de les représenter, transducteurs déterministes d’arbres en mots, nous pouvons nous concentrer sur l’apprentissage en lui-même.7 Contributions Dans cette thèse, nous définissons et étudions les transducteurs séquentiels déterministes descendants d’arbres d’arité bornée en mots. Être séquentiel signifie que chaque règle de ces transducteurs associe à un noeud une production obtenue par concaténation de mots et de l’application d’une transduction sur chacun de ces fils. Chaque fils doit être utilisé une et une seule fois, et ce dans leur ordre d’apparition dans l’entrée. Les règles d’un transducteur séquentiel sont de la forme : ⟨q, f(x1, . . . , xk)⟩ → u0 ⋅ ⟨q1, x1⟩ ⋅ . . .⟨qk, xk⟩uk qui spécifie que la transformation d’un arbre f(t1, . . . , tk) à partir d’un état q sera le résultat de la concaténation des chaînes ui et des résultats de transduction des sous arbres ti à partir des états qi respectifs. Le fait d’interdire la réutilisation et le réordonnancement des fils dans la production de la sortie est une simplification du modèle assez conséquente. Mais comme nous le verrons par la suite, cette restriction est nécessaire pour décider efficacement de problèmes théoriques cruciaux dans l’élaboration d’un apprentissage. Le problème d’équivalence de ce modèle est par exemple connu décidable pour la famille plus générale de transduction. Toute fois, il ne permet pas de disposer d’une solution efficace. Équivalence efficace En réduisant le problème d’équivalence à celui de l’équivalence de morphismes appliqués à des grammaires algébriques, prouvé décidable en temps polynomial dans la taille des morphismes et de la grammaire (Plandowski, 1995), nous prouvons que l’équivalence des transducteurs séquentiels est décidable également en temps polynomial dans la taille du transducteur considéré. Cette réduction se base sur la définition d’une grammaire représentant l’exécution parallèle de transducteurs séquentiels sur lesquels sont définis deux morphismes recomposant la sortie de transducteurs séquentiels respectifs. Toute la sortie est contenue dans les règles représentées sur cette exécution. Malgré des expressivités foncièrement différentes, les transducteurs d’arbres en mots ascendants, descendants, et les transducteurs de mots imbriqués en mots partagent des représentations d’exécutions similaires, l’ordre de l’entrée y étant toujours gardé. Cette similarité permet de mettre en relations ces principales classes de transductions d’arbres en mots en étendant le résultat de décidabilité de l’équivalence à chacune d’entre elles (Staworko et al., 2009).8 Introduction Normalisation Par la suite (Laurence et al., 2011), nous introduisons une forme normale pour les transducteurs séquentiels d’arbres en mots, cherchant à produire la sortie le plus tôt possible dans le transducteur. Cette notion de «plus tôt» pouvant être perçue de plusieurs manières nous allons l’illustrer à l’aide d’un court exemple. Exemple 1. Prenons un transducteur séquentiel M composé de deux états q0 et q1, de l’axiome initial permettant de produire de la sortie avant même de commencer la lecture d’un arbre entrée q0, n’ajoutant ici aucune sortie, et des règles suivantes. ⟨q0, f(x1, x2)⟩ → ⟨q1, x1⟩ ⋅ ac ⋅ ⟨q1, x2⟩, ⟨q1, g(x1)⟩ → ⟨q1, x1⟩ ⋅ abc, ⟨q1, a⟩ → ε. Nous pouvons représenter son exécution par l’annotation de l’arbre transformé, la sortie s’obtenant par la concaténation des mots produits en suivant le parcours en profondeur, comme l’illustre le premier arbre de la figure 2. f g g a g a ac ε ε ε abc ε ε abc ε abc ε f g g a g a ε a c bca ε ε cab ε cab ε ε Figure 2 – Exemple d’exécution d’un transducteur séquentiel et sa version normalisée Nous choisissons comme normalisation de débuter par la sortie la production le plus haut possible dans l’arbre. Par exemple, si l’arbre à pour racine f, nous savons directement que sa sortie débutera par un “a” et se terminera par un “c”. Il nous faut donc remonter ces deux lettres, respectivement à gauche et à droite, en les faisant passer à travers la transduction des sous arbres. Une fois que la sortie se trouve le plus haut possible, pour assurer un seul résultat pour la normalisation d’un arbre, nous avons décider de forcer la sortie à être9 produite le plus à gauche d’une règle, comme l’illustre le passage de droite à gauche des productions sur les noeuds étiquetés par un g. Cela donne le transducteur suivant. L’état q1 a été divisé en deux états qg et qd, le traitement du sous arbre gauche et droit étant maintenant différents. Les règles du transducteur obtenu sont les suivantes : ⟨q0, f(x1, x2)⟩ → ⟨qg, x1⟩ ⋅ ac ⋅ ⟨qd, x2⟩, ⟨qg, g(x1)⟩ → bca ⋅ ⟨qg, x1⟩, ⟨qg, a⟩ → ε, ⟨qd, g(x1)⟩ → cab ⋅ ⟨qd, x1⟩, ⟨qd, a⟩ → ε. L’exécution de ce transducteur est illustré sur le deuxième arbre de la figure 2. Nous définissons un algorithme de normalisation permettant à partir de tout transducteur séquentiel de le renvoyer sous forme normalisée. La difficulté de cette normalisation est la manipulation de la sortie, les mots devant à la fois être tirés à gauche et droite du transducteur et parfois poussés à travers la transduction de sous arbres, comme l’illustre l’exemple. Si on se limite à la sortie, cette opération revient à manipuler des mots à travers des grammaires algébriques de mots, projection du transducteur sur la sortie. La force de notre normalisation est, qu’a partir de contraintes globales devant s’appliquer les unes après les autres, nous avons réussi à en déduire des contraintes locales. En arrivant à représenter ces modifications à l’aide d’un langage d’opérations sur les mots, pouvant être directement appliquées aux états d’un transducteur, nous avons mis en place une normalisation efficace et locale d’un transducteur séquentiel d’arbres en mots. Nous identifions également les bornes sur la taille d’un transducteur sé- quentiel normalisé en fonction de la taille du transducteur de base, pouvant parfois atteindre une taille double exponentielle dans celle de la source. Apprentissage Nous aboutissons, en nous basant sur les précédents résultats, sur l’apprentissage des transducteurs séquentiels d’arbres en mots (Laurence et al., 2014). Pour cela, il faut tout d’abord identifier les transformations apprenables (i.e. représentables par des transducteurs séquentiels). Pour cela, on cherche à retrouver directement la structure des transducteurs dans une transformation. Cette restructuration passe par la décomposition de la sortie par rapport à l’entrée, l’introduction de sous transformations associées aux chemins de l’arbre d’entrée, ainsi que l’instauration de classes d’équivalence regroupant ces résiduels. À partir de cela, nous pouvons introduire des propriétés sur les transformations assurant une représentation possible sous la forme d’un transducteur séquentiel, puis prouver ces résultats par l’adaptation du théorème de Myhill-Nerode à notre classe de transduction.10 Introduction Il reste à adapter cette même approche pour l’apprentissage, non plus à partir d’une transformation complète en notre possession, mais à partir d’un échantillon d’exemples et d’un automate représentant son domaine. Nous limitant au modèle séquentiel, toute transformation et tout échantillon d’exemples n’est pas représentable par un transducteur séquentiel. Notre algorithme doit pouvoir échouer si les exemples ne peuvent être représentés par un transducteur séquentiel. En adaptant chaque étape, de la décomposition à l’identifi- cation des classes d’équivalences, l’algorithme s’assure en temps polynomial de l’existence d’un transducteur séquentiel cohérent avec l’entrée, et produit le transducteur canonique correspondant, ou le cas échéant échoue. À l’aide de la notion d’échantillon caractéristique, nous prouvons cependant que cet algorithme n’échoue pas dans les cas où l’entrée est suffisante pour aboutir à un transducteur cible représenté par cet échantillon. Plan de thèse Après avoir rappelé les différentes notions nécessaires à la compréhension de cette thèse, nous rappellerons également les différents modèles d’automates permettant de reconnaître des langages d’arbres, ces modèles étant la base des transducteurs qui nous intéressent. Nous y présenterons également les diffé- rents résultats tels que la décidabilité de l’équivalence ou encore l’apprentissage, ce qui nous permettra à travers des modèles plus simples d’illustrer les approches que nous appliquerons par la suite sur les transducteurs. Le deuxième chapitre nous permettra, à travers un survol des différentes classes de transductions existantes, de montrer les différents résultats existant dans le domaine, et où se placent les modèles que nous étudieront dans cet ensemble. Nous profiterons du troisième chapitre pour montrer une des facettes pratiques de la transformation à travers le langage xslt, qui permet de représenter et effectuer la transformation de fichiers xml sous différents formats. Les trois derniers chapitres présenteront les contributions de cette thèse. Le premier chapitre se concentre sur le problème d’équivalence, en améliorant la décidabilité pour les transducteurs d’arbres en mots. La réduction qui y est introduite permettra également d’apporter un autre regard sur les différentes classes de transductions d’arbres en mots évoquées. Les deux derniers chapitres présenteront les résultats centraux de cette thèse, à savoir la normalisation, minimisation et l’apprentissage des transducteurs séquentiels.Chapitre 1 Automates Avant de pouvoir parler de transducteurs, il est indispensable de poser les bases sur lesquelles ils se construisent. Après avoir défini formellement les différents modèles de données manipulés dans cette thèse, nous nous attarderons sur les automates, structure de base à partir desquelles les transducteurs sont définis. Pour cela, nous partirons des automates de mots, pour ensuite survoler les différents types d’automates permettant la manipulations d’arbres. 1.1 Mots 1.1.1 Mots et langages Un alphabet est un ensemble fini et non vide de symboles. La taille d’un alphabet Σ est le nombre de symboles qu’il contient, noté ∣Σ∣. Un mot est une séquence possiblement vide de symboles appartenant à un alphabet Σ. On représente par ε le mot vide. L’étoile de Kleene est la clôture réflexive et transitive d’un langage, noté Σ∗ pour l’alphabet Σ. Σ∗ est l’ensemble de tout les mots définissable à partir de l’alphabet Σ. On note u1 ⋅ u2 la concaténation de deux mots u1 et u2. La taille d’un mot u est le nombre de symboles qui le compose, noté ∣u∣. Les mots sont liés entre eux par une relation d’ordre totale . HAL Id: tel-00987630 https://tel.archives-ouvertes.fr/tel-00987630 Submitted on 6 May 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.Th`ese de Doctorat Universit´e Pierre et Marie Curie – Paris 6 Sp´ecialit´e SYSTEMES ` INFORMATIQUES pr´esent´ee par Mme. Nada SBIHI pour obtenir le grade de Docteur de l’universit´e Pierre et Marie Curie – Paris 6 Gestion du trafic dans les r´eseaux orient´es contenus Jury James ROBERTS Directeur de th`ese Chercheur, INRIA et SystemX Serge FDIDA Directeur de th`ese Professeur, UPMC Sorbonne universit´es – Paris 6 Leila SAIDANE Rapporteur Professeur, ENSI–Tunisie Walid DABBOUS Rapporteur Chercheur, INRIA Sophia Antipolis Sebastien TIXEUIL Examinateur Professeur, UPMC Sorbonne universit´es – Paris 6 Diego PERINO Examinateur Chercheur, Bell Labs–Alcatel-Lucent Gwendal SIMON Examinateur Maˆıtre de conf´erence, Telecom BretagneRemerciements Je tiens tout particuli`erement `a remercier mon encadrant de th`ese M. Jim Roberts de m’avoir donn´e la chance de poursuivre mes ´etudes. Son suivi et ses pr´ecieux conseils m’ont apport´es beaucoup d’aide durant ma th`ese. Son experience est une source in´epuisable dont j’ai pu apprendre grˆace `a son encadrement et sa g´en´erosit´e. Je remercie ´egalement M.Serge Fdida d’avoir accept´e de diriger ma th`ese ainsi que Mme. Leila Saidane et Mr. Walid Dabbous mes rapporteurs, pour leurs remarques et suggestions sur la version pr´eliminaire de ce document. Je suis reconnaissante `a M.S´ebastien Tixeuil, M. Diego Perino et M. Gwendal Simon pour avoir accept´e de m’honorer de leur participation au jury de cette th`ese. Je tiens `a remercier M. Philippe Robert de m’avoir acceuilli au sein de l’´equipe R´eseaux, algorithmes et Probabilit´es(RAP) `a l’INRIA. Je suis tr`es reconnaissante `a Mme. Christine Fricker pour son aide, sa g´en´erosit´e et sa gentillesse. Ton savoir scientifique, ta p´edagogie et ta modestie m’ont donn´e beaucoup d’espoirs. Je remercie ´egalement les anciens et nouveaux membres de l’´equipe Rap et particuli`erement Virginie Collette. Un grand merci `a mes parents pour leur encouragement et Otmane, mon ´epoux pour son soutien, petit clin d’oeil particulier `a mon fils Amine. Merci `a ma famille, amies, et coll´egues. 3Resum ´ e´ Les r´eseaux orient´es contenus (CCN) ont ´et´e cr´e´es afin d’optimiser les ressources r´eseau et assurer une plus grande s´ecurit´e. Le design et l’impl´ementation de cette architecture est encore `a ces d´ebuts. Ce travail de th`ese pr´esente des propositions pour la gestion de trafic dans les r´eseaux du future. Il est n´ecessaire d’ajouter des m´ecanismes de contrˆole concernant le partage de la bande passante entre flots. Le contrˆole de trafic est n´ecessaire pour assurer un temps de latence faible pour les flux de streaming vid´eo ou audio, et pour partager ´equitablement la bande passante entre flux ´elastiques. Nous proposons un m´ecanisme d’Interest Discard pour les r´eseaux CCN afin d ?optimiser l’utilisation de la bande passante. Les CCN favorisant l’utilisation de plusieurs sources pour t´el´echarger un contenu, nous ´etudions les performances des Multipaths/ Multisources ; on remarque alors que leurs performances d´ependent des performances de caches. Dans la deuxi`eme partie de cette th`ese, nous ´evaluons les performances de caches en utilisant une approximation simple et pr´ecise pour les caches LRU. Les performances des caches d´ependent fortement de la popularit´e des objets et de la taille des catalogues. Ainsi, Nous avons ´evalu´e les performances des caches en utilisant des popularit´es et des catalogues repr´esentant les donn´ees r´eelles ´echang´ees sur Internet. Aussi, nous avons observ´e que les tailles de caches doivent ˆetre tr`es grandes pour assurer une r´eduction significative de la bande passante ; ce qui pourrait ˆetre contraignant pour l’impl´ementation des caches dans les routeurs. Nous pensons que la distribution des caches devrait r´epondre `a un compromis bande passante/m´emoire ; la distribution adopt´ee devrait r´ealiser un coˆut minimum. Pour ce faire, nous ´evaluons les diff´erences de coˆut entre architectures. 4Abstract Content Centric Network (CCN) architecture has been designed to optimize network resources and ensure greater security. The design and the implementation of this architecture are only in its beginning. This work has made some proposals in traffic management related to the internet of the future. We argue that it is necessary to supplement CCN with mechanisms enabling controlled sharing of network bandwidth by competitive flows. Traf- fic control is necessary to ensure low latency for conversational and streaming flows, and to realize satisfactory bandwidth sharing between elastic flows. These objectives can be realized using ”per-flow bandwidth sharing”. As the bandwidth sharing algorithms in the IP architecture are not completely satisfactory, we proposed the Interest Discard as a new technique for CCN. We tested some of the mechanisms using CCNx prototype software and simulations. In evaluating the performance of multi-paths we noted the role of cache performance in the choice of selected paths. In the second part, we evaluate the performance of caches using a simple approximation for LRU cache performance that proves highly accurate. As caches performance heavily depends on populations and catalogs sizes, we evaluate their performance using popularity and catalogs representing the current Internet exchanges. Considering alpha values, we observe that the cache size should be very large ; which can be restrictive for caches implementation in routers. We believe that the distribution of caches on an architecture creates an excessive bandwidth consumption. Then, it is important to determine a tradeoff bandwidth/memory to determine how we should size caches and where we should place them ; this amounts to evaluate differences, in cost, between architectures. 5Table des matieres ` Introduction g´en´erale 10 I La gestion du trafic dans les r´eseaux orient´es contenus 16 1 Introduction 17 1.1 Probl´ematique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.2 Etat de l’art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.2.1 Contrˆole du trafic au coeur du r´eseau . . . . . . . . . . . . . . . . . 18 1.2.2 Protocole de transport . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.2.3 Multipath et multisource . . . . . . . . . . . . . . . . . . . . . . . . 19 2 Partage de bande passante 21 2.1 Identification des flots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.2 Caches et files d’attente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.3 Le principe du flow aware networking . . . . . . . . . . . . . . . . . . . . . 23 2.3.1 Partage des ressources dans les CCN . . . . . . . . . . . . . . . . . . 23 2.3.2 Contrˆole de surcharge . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3 M´ecanismes pour CCN 26 3.1 M´ecanismes pour les utilisateurs . . . . . . . . . . . . . . . . . . . . . . . . 26 3.1.1 D´etection des rejets . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.1.2 Protocole de transport . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.2 M´ecanismes pour op´erateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.2.1 Motivation ´economique . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.2.2 Interest Discard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4 Strat´egies d’acheminement 31 4.1 Multicast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.2 Multisources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.2.1 Protocole de transport Multipath . . . . . . . . . . . . . . . . . . . . 32 64.2.2 Performance de MPTCP . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.2.3 CCN et routage multipath . . . . . . . . . . . . . . . . . . . . . . . . 38 4.2.4 Performances des multipaths . . . . . . . . . . . . . . . . . . . . . . 38 5 Simulations et exp´erimentations 42 5.1 Simulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 5.2 Exp´erimentations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 5.2.1 Fair sharing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 5.2.2 Interest discard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 5.2.3 Sc´enarios et r´esultats . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 6 Conclusion 46 II Performances des caches 48 7 Introduction 49 7.1 Probl´ematique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 7.2 Etat de l’art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 7.3 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 8 Mesure du trafic et performances des caches 51 8.1 Mesure du trafic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 8.1.1 Types de contenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 8.1.2 La taille des contenus et des objets . . . . . . . . . . . . . . . . . . . 52 8.1.3 Distribution de la popularit´e . . . . . . . . . . . . . . . . . . . . . . 53 8.2 Le taux de hit d’un cache LRU . . . . . . . . . . . . . . . . . . . . . . . . . 54 8.2.1 Independent Reference Model . . . . . . . . . . . . . . . . . . . . . . 54 8.2.2 Les mod`eles analytiques . . . . . . . . . . . . . . . . . . . . . . . . . 55 8.2.3 La formule de Che . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 8.3 Autres politiques de remplacement . . . . . . . . . . . . . . . . . . . . . . . 57 8.3.1 Le cache Random . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 8.3.1.1 Relation entre taux de hit et temps moyen de s´ejour . . . . 57 8.3.1.2 Approximation de Fricker . . . . . . . . . . . . . . . . . . . 59 8.3.1.3 Approximation de Gallo . . . . . . . . . . . . . . . . . . . . 60 8.3.2 Le cache LFU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 8.3.3 Comparaison des politiques de remplacement . . . . . . . . . . . . . 63 9 Les performances des hi´erarchies de caches 64 9.1 Caract´eristiques d’une hi´erarchie de caches . . . . . . . . . . . . . . . . . . 64 9.1.1 Politique de remplacement . . . . . . . . . . . . . . . . . . . . . . . . 64 9.1.2 Les politiques de meta-caching . . . . . . . . . . . . . . . . . . . . . 65 9.1.3 Les politiques de forwarding . . . . . . . . . . . . . . . . . . . . . . . 67 9.2 Performances des hi´erarchies de caches . . . . . . . . . . . . . . . . . . . . . 69 9.2.1 G´en´eralisation de la formule de Che . . . . . . . . . . . . . . . . . . 699.2.2 Cas d’application : hi´erarchie de caches avec mix de flux . . . . . . . 72 10 Conclusion 76 III Coˆuts d’une hi´erarchie de caches 77 11 Introduction 78 11.1 Probl´ematique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 11.2 Etat de l’art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 12 Coˆut d’une hi´erarchie de caches `a deux niveaux 82 12.1 Diff´erence des coˆuts entre structures . . . . . . . . . . . . . . . . . . . . . . 83 12.2 Estimation num´erique des coˆuts . . . . . . . . . . . . . . . . . . . . . . . . . 84 12.2.1 Coˆut normalis´e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 12.2.2 Solution optimale en fonction du taux de hit global . . . . . . . . . . 87 12.3 Exemple : coˆuts des torrents . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 13 Coop´eration de caches 90 13.1 Load sharing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 13.2 Caches coop´eratifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 13.3 Routage orient´e contenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 14 Hi´erarchies alternatives 99 14.1 Coˆut d’une hi´erarchie de caches `a plusieurs niveaux . . . . . . . . . . . . . . 99 14.1.1 Evaluation des coˆuts . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 14.1.2 Coop´eration de caches . . . . . . . . . . . . . . . . . . . . . . . . . . 101 14.2 Coˆuts et politiques de remplacement . . . . . . . . . . . . . . . . . . . . . . 102 14.2.1 Politique LFU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 14.2.2 Politique Random . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 15 Conclusion 107 Conclusion g´en´erale 108Introduction gen´ erale ´ Les r´eseaux orient´es contenus L’id´ee de passer d’un r´eseau `a connexion point `a point `a un r´eseau orient´e contenu date de plus d’une d´ecennie. En effet le projet TRIAD 1 proposait d´ej`a une architecture ICN. Cependant, peu de travaux ont ´et´e construits sur la base de ce projet, sans doute parce que les contenus `a cette ´epoque n’avaient pas le mˆeme poids ´enorme qu’ils prennent actuellement dans le trafic Internet. Quelques ann´ees apr`es, d’autres propositions commencent `a ´eclairer la recherche dans le domaine des r´eseaux orient´es contenu. DONA, une architecture orient´ee donn´ees a ´et´e propos´ee en 2007 par Koponen et al. [1]. Elle se base sur l’utilisation de noms autocertifi´es et incorpore des fonctionnalit´es de caching. Plus r´ecemment l’architecture CCN a attir´e l’attention de la communaut´e scienti- fique, alert´ee par la croissance ´enorme du trafic de distribution de contenus et le succ`es des CDNs proposant des services payants aux fournisseurs de contenus. Les CDNs utilisent d’une mani`ere intelligente les chemins menant aux contenus et implantent des caches partout dans le monde afin d’acc´el´erer les t´el´echargements. Akamai reste le leader mondiale dans ce domaine. Les op´erateurs ne peuvent pas rester passifs dans cet univers des contenus et sont oblig´es d’envisager une mise `a niveau de l’Internet afin de r´eduire les coˆuts engendr´es par l’augmentation rapide du trafic de contenus, notamment de vid´eos. L’architecture CCN vient au bon moment et suscite beaucoup d’int´erˆet de la communaut´e scientifique, d’autant plus que celui qui propose cette architecture n’est autre que Van Jacobson tr`es connu pour des contributions marquantes au d´eveloppement d’IP [2]. Plusieurs autres projets d’architecture orient´ee contenu ont ´et´e propos´ees dont 4WARD/SAIL [3] et PSIRP/PURSUIT [4]. Ghodsi et al. [5] ont compar´e les diff´erentes propositions de r´eseaux ICN et ont dress´e les points de divergences et les points communs entre ces architectures. Ils d´eplorent aussi le peu de remise en question de l’utilisation des ICN en comparaison avec une solution d’´evolution des CDNs. Les architectures ICN pr´esentent plusieurs points communs de design. Les ´echanges sur ces architecture sont bas´es sur le mod`ele publish/subsribe, le nom de l’objet est publi´e, un objet est demand´e par l’envoi de paquet Interest. Les caches ICN sont utilis´es pour tout 1http ://gregorio.stanford.edu/triad/ 1011 type de donn´ees et protocole. Ils sont ouverts `a tout utilisateur qui peut ainsi d´eposer ses propres contenus dans les caches. Tous les noeuds du r´eseau utilisent un cache localis´e au niveau routeur et les contenus sont s´ecuris´es ind´ependamment de leur emplacement. C’est le serveur d’origine qui signe les contenus, et les utilisateurs peuvent v´erifier les contenus grˆace `a leur signature publique. Les architectures diff`erent dans certains points. Certains designs proposent la s´ecurisation des contenus avec un m´ecanisme d’auto-certification. Dans ce cas, les contenus portent des noms qui n’ont pas de signification ´evidente pour l’homme (un code `a plusieurs caract`eres par exemple). La s´ecurit´e des contenus est assur´ee par la signature des objets. L’utilisateur peut v´erifier l’authenticit´e de l’objet en validant sa signature au moyen d’une clef publique r´ecup´er´ee grˆace aux PKI. Le routage orient´e contenus est aussi un point de divergence entre architectures, certaines architectures pr´econisent le routage orient´e contenus bas´e sur BGP alors que d’autres proposent leur propre mod`ele de routage. Dans tous les cas, ce domaine reste encore mal explor´e et pose des probl`emes s´erieux de passage `a l’´echelle. CCN Van Jacobson propose la nouvelle architecture d’Internet orient´ee contenu nomm´ee CCN (Content-centric networking) [2]. Cette architecture permettrait une recherche directe d’un contenu sans avoir `a identifier son d´etenteur, comme dans le cas des r´eseaux IP. En effet, dans les r´eseaux IP les donn´ees sont recherch´ees par leur localisation et non pas par leur nom. Un utilisateur cherchant une donn´ee doit avoir une information sur l’adresse IP de la machine contenant cette information pour pouvoir la r´ecup´erer. Ce fonctionnement pose plusieurs probl`emes de s´ecurit´e, de disponibilit´e et de complexit´e des processus de r´ecup´eration de donn´ees. L’architecture CCN a pour objectif de simplifier les processus de recherche. Un utilisateur cherche une donn´ee `a travers son nom. D´es lors que la requˆete est lanc´ee, une demande sous forme d’un paquet dit “Interest” est envoy´ee `a son routeur d’acc`es. Si la donn´ee n’est pas pr´esente dans le content store de ce routeur, la requˆete se propage au fur et `a mesure dans le r´eseau. Une fois la donn´ee trouv´ee, elle suit le chemin inverse de la requˆete de recherche jusqu’`a l’utilisateur final et sera stock´ee dans un “Content Store” dans les routeurs CCN interm´ediaires. Cette architecture offre plusieurs possibilit´es de disponibilit´e ind´ependamment de l’adresse d’une machine. La s´ecurit´e est associ´ee directement aux donn´ees et pas aux “conteneurs” ( liens, routeurs, serveurs,...) ce qui permet d’ajuster de mani`ere tr`es flexible le niveau de s´ecurit´e `a la nature du contenu en question. Plus int´eressant encore, les contenus ne sont plus associ´es `a des conteneurs pr´ecis mais peuvent ˆetre dupliqu´es `a volont´e et stock´es notamment dans des m´emoires caches au sein du r´eseau. Les contenus sont divis´es en “chunks”, chaque chunk ayant typiquement la taille d’un paquet IP. CCN respecte le d´eroulement logique d’une requˆete : un utilisateur demande une donn´ee en ´emettant des paquets de type “Interest” et re¸coit en retour des paquets de donn´ees de type “Data”. A chaque paquet Interest correspond un seul paquet Data et12 B Provider P1 S2 Interests U2 S1 of Data U1 Provider P2 A C source emitter of Figure 1 – Un segment du r´eseau CCN reliant un utilisateur U1 `a une source S1 chaque paquet Data correspond `a un Chunk. La figure 1 repr´esente un segment d’un r´eseau CCN. Pour r´ecup´erer des donn´ees du fournisseur P2, l’usager U1 envoie des paquets “Interest” pour le contenu demand´e au travers des routeurs A et B. Supposant que les Content Stores de A et B ne contiennent pas le document demand´e, les paquets Data suivent le chemin inverse de S1 vers U1 en passant par B et A. Pour g´erer l’envoi des donn´ees, trois types de m´emoires sont utilis´ees au niveau de chaque noeud : • Content Store : Dans cette base de donn´ees sont stock´es des objets physiquement. • Pending Interest Table (PIT) : Dans cette table sont stock´es les noms des donn´ees et les interfaces demandeuses correspondantes. • FIB : par analogie avec IP, le FIB dans CCN stocke les pr´efixes des noms des donn´ees ainsi que les prochaines interfaces `a emprunter pour arriver `a la donn´ee. Cette table est enrichie `a travers les d´eclarations de d´etention de donn´ees par les noeuds du r´eseau. Dans CCN il n’y a nul besoin d’acheminer les adresses source et destination `a travers le r´eseau pour r´ecup´erer la donn´ee. Le format des paquets Interests et Data est explicit´e `a la figure 2. Selector Nonce Content Name Signature Content Name Signed Info Data Interest Packet Data Packet Figure 2 – Format des paquets CCN13 A la r´eception d’un Interest par un noeud, ce dernier v´erifie si le chunk demand´e existe dans son Content Store. Si c’est le cas, le paquet Data sera envoy´e `a l’interface demandeuse. Sinon le chunk demand´e sera recherch´e dans le PIT. S’il est trouv´e, l’interface demandeuse sera rajout´ee au PIT. Si les deux bases de donn´ees ne fournissent aucune information, on cherchera dans le FIB si une entr´ee matche avec le chunk recherch´e. Alors le paquet Interest sera achemin´e vers les interfaces conduisantes `a la donn´ee. La table PIT sera mise `a jour avec une nouvelle entr´ee pour le chunk en question. A la r´eception d’un paquet Data par un noeud, une recherche est effectu´ee dans le Content Store. Si une entr´ee matche, alors le paquet re¸cu est supprim´e, car ceci implique que le chunk est d´ej`a livr´e `a toutes les interfaces demandeuses. Sinon la donn´ee sera recherch´ee dans le PIT. Si une entr´ee matche avec la donn´ee re¸cue, elle sera achemin´ee vers les interfaces demandeuses. Le chunk sera typiquement stock´e en mˆeme temps dans le Content Store. image video 1,0 1 video ...... ...... file 0 0 0 0 video fichier 3 2 1 image video 1 2 image data ...... A ....... C Interest[video] FIB(A) Content Store(C) Interest[image] Interest[video] B D FIB(B) PIT(B) Interest[image] Content Store(D) Figure 3 – La recherche des donn´ees dans CCN Dans l’exemple de la figure 3, le noeud A cherche les chunks “video” et “image”. Le FIB du noeud A indique que les paquets Interests doivent ˆetre achemin´es vers l’interface 0 et 1 pour l’image, et vers l’interface 1 pour la vid´eo. A la r´eception de l’Interest demandant la vid´eo par le noeud B, ce dernier ignore l’Interest re¸cu car le PIT contient d´ej`a une entr´ee. Cette entr´ee est mise `a jour. Cependant, quand le noeud B re¸coit l’Interest demandant l’image, il l’envoie `a l’interface 1 indiqu´ee par le FIB. Le noeud D, par la suite, achemine la donn´ee vers le noeud A. Cette donn´ee sera stock´ee dans tous les Content Stores des noeuds l’ayant re¸cu ou transit´e. Le s´equencement des paquets est ´etabli grˆace aux noms des chunks. Ces derniers sont organis´es d’une fa¸con hi´erarchique. Ainsi, pour demander un segment il faut indiquer le14 nom hi´erarchique du chunk demand´e dans le paquet Interest. Le FIB d´etermine l’interface de sortie ad´equate grˆace `a un algorithme “longest prefixe match”. La gestion du trafic La gestion du trafic consiste `a contrˆoler le partage de la bande passante des liens afin d’assurer la qualit´e de service des diverses applications. Le partage ´equitable de la bande passante entre flots r´epond aux exigences des flux sensibles `a d´ebit faible et prot`ege les flux adaptatifs des flux gourmands. La gestion du trafic dans les r´eseaux IP a fait l’objet de plusieurs travaux de recherches, mais jusqu’`a pr´esent aucune solution enti`erement satisfaisante n’a ´et´e trouv´ee. Jacobson et al. proposent un mod`ele CCN bas´e sur un ´echange Interest/Data : pour recevoir un paquet Data, l’utilisateur devrait envoyer un paquet Interest. Ils assurent que ce m´ecanisme r´ealise une bonne gestion de trafic. Ceci est insuffisant en r´ealit´e. Tous les utilisateurs n’utilisent pas un protocole de transport unique ; ce dernier peut ˆetre modifi´e par l’utilisateur final. Il est alors n´ecessaire de d´efinir des m´ecanismes pour g´erer le partage de la bande passante. La d´etection de rejets par num´eros de s´equences des paquets n’est plus applicable sur CCN ; l’utilisation des multipaths et multichemins change l’ordre des paquets, et le timeout ne suffit pas pour assurer de bonnes performances du protocole de transport. D’autre part, dans CCN, l’utilisateur ne peut plus utiliser un protocole de transport multipath car il ignore les destinations possibles de ces paquets. En plus des diff´erences entre CCN et IP en termes de mod`ele d’´echange de donn´ees, les CCN impl´ementent des caches au niveau de chaque routeur. Ainsi, l’utilisation des caches r´eduit la consommation de bande passante, et les d´elais de transmission. Contributions de la th`ese Le rapport est structur´e comme suit : • Gestion du trafic dans les r´eseaux orient´es contenus : Nous proposons des m´ecanismes pour g´erer les flots dans CCN, en identifiant les flots par le nom d’objet, et en adaptant le Fair queuing `a CCN. Nous proposons un m´ecanisme Interest Discard pour prot´eger les op´erateurs des rejets de Data, un nouveau mod`ele de tarification, une d´etection rapide des rejets pour contrˆoler les fenˆetres des protocoles de transport, et nous ´evaluons les performances des Multipaths. Nous ´evaluons les m´ecanismes propos´es par simulation et exp´erimentation. • Performance des caches : Nous ´evaluons les types des contenus, leur taille, et leur loi de popularit´e. Nous utilisons la formule de Che comme mod`ele analytique fiable pour mesurer les taux de hit des caches LRU, nous adaptons cette formule au cas Random,15 nous ´evaluons le taux de hit d’une hi´erarchie `a deux niveaux, et nous proposons une diff´erentiation de stockage de donn´ees pour am´eliorer la probabilit´e de hit. • Coˆuts des hi´erarchies de caches : Nous cherchons un optimum pour un tradeoff bande passante/m´emoire, nous effectuons une estimation des couts, nous appliquons les calculs `a un cas r´eel de donn´ees de type torrents et nous comparons les performances d’une hi´erarchie coop´erative et non-coop´erative. Le travail de th`ese a contribu´e `a la r´edaction des articles suivants : • S. Oueslati, J. Roberts, and N. Sbihi, Flow-Aware traffic control for a content-centric network, in Proc of IEEE Infocom 2012. • C. Fricker, P. Robert, J. Roberts, and N. Sbihi, Impact of traffic mix on caching performance in a content-centric network, in IEEE NOMEN 2012, Workshop on Emerging Design Choices in Name-Oriented Networking • J. Roberts, N. Sbihi, Exploring the Memory-Bandwidth Tradeoff in an InformationCentric Network, International Teletraffic Congress, ITC 25, Shanghai, 2013.Premi`ere partie La gestion du trafic dans les r´eseaux orient´es contenus 16Chapitre 1 Introduction 1.1 Probl´ematique Jacobson et al [2] remettent en cause l’architecture TCP/IP en constatant qu’il est n´ecessaire de mettre en place une nouvelle architecture Internet r´epondant mieux `a la croissance exponentielle de la demande pour des contenus de tous types. Con¸cu au d´ebut pour des ´echanges simples, l’Internet devient en effet le moyen incontournable pour consulter les sites du Web, ´echanger vid´eos et audios, et partager des fichiers. Son utilisation ayant ´evolu´e, son architecture devrait suivre. Plusieurs projets sont consacr´es `a la conception du r´eseau du futur. La proposition CCN de Jacobson et al. [2] est une des plus cr´edibles et a fait l’object de nombreuses ´etudes. Nous avons constat´e cependant que la d´efinition de cette nouvelle architecture reste incompl`ete, notamment en ce qui concerne la gestion du trafic. L’objet de la pr´esente partie du rapport est de d´ecrire nos ´etudes sur cette question. Le contrˆole de trafic est essentiel afin d’assurer aux flots audios et vid´eos des d´elais faibles mˆeme quand ils partagent la bande passante avec des flots de donn´ees `a haut d´ebit. Il importe ´egalement d’empˆecher d’´eventuels “flots gourmands” d’alt´erer la qualit´e des autres flots en s’accaparant une part excessive de la bande passante des liens qu’ils partagent. Nous pouvons diviser les axes de recherches concernant la gestion du trafic en 3 volets : • Le partage de bande passante. Dans CCN comment faut il partager la bande passante entre flots et comment identifier un flot quand les adresses IP ne sont plus utilis´ees dans les paquets ? Comment exploiter la particularit´e des r´eseaux CCN, dite de “flow balance”, o`u les paquets Data suivent exactement le chemin inverse des paquets Interest. • Le protocole de transport. La conception d’un protocole de transport sous CCN est plus compliqu´e qu’en IP. En effet, nous ne pouvons plus prendre en compte la succession des num´eros de s´equence des paquets comme garantie de non congestion, car, sous CCN mˆeme sans congestion les paquets ne se suivent pas forc´ement. Un flot ne 1718 1.2. ETAT DE L’ART se dirige pas vers une destination particuli`ere et unique. Les paquets Data peuvent venir de n’importe quelle source de donn´ees, y compris des caches, et peuvent suivre des chemins diff´erents. • Multipath et multisource. Sous CCN le t´el´echargement des objets de sources multiples devient une opportunit´e int´eressante pour augmenter les d´ebits. Cette multiplicit´e a l’avantage de pouvoir am´eliorer les d´ebits de t´el´echargment. Cependant, il y a ´egalement un inconv´enient car, les paquets empruntant plusieurs chemins diff´erents, l’opportunit´e d’exploiter les caches devient plus faible. 1.2 Etat de l’art Lorsque nous avons fait les ´etudes pr´esent´ees dans cette partie, `a partir du Chapitre 2, il n’y avait pas de publications qui abordaient les questions mentionn´ees ci-dessus. Cet ´etat de fait a chang´e depuis et dans la pr´esente section nous ´evoquons quelques articles dont les propositions peuvent mettre en cause nos choix. 1.2.1 Contrˆole du trafic au coeur du r´eseau Nous proposons, dans le chapitre 2, la mise en oeuvre dans les files d’attente des routeurs d’un ordonnancement de type Deficit Round Robin (DRR) afin d’assurer l’´equit´e du partage de bande passante. Nous associons `a cet ordonnancement un m´ecanisme “Interest discard” de rejet s´electif de paquets Interest dans la direction inverse. D’autres ont propos´e d’assurer l’´equit´e du partage en ordonnan¸cant plutˆot les flots de paquets Interest dans un m´ecanisme dit “Interest shaping”. Dans ce cas, les paquets Data sont achemin´es dans une simple file FIFO. Dans [6], Fdida et al. d´ecrivent un m´ecanisme d’Interest shaping impl´ement´e au niveau de chaque routeur CCN. La file de transmission des paquets Data est observ´ee et un seuil de remplissage est fix´e. Le d´ebit des paquets Interest est r´egul´e suivant le d´ebit des paquets Data et en tenant compte de la diff´erence entre la taille de la file d’attente et le seuil. Ainsi les paquets Interest peuvent ˆetre retard´es si le nombre de paquets Data stock´es en file d’attente d´epassent le seuil. Dans l’article [7], Gallo et al. proposent un m´ecanisme d’Interest shaping presque identique `a la nˆotre sauf que les paquets Interest subissent un retard d’envoi en cas de congestion afin de limiter leur d´ebit. Des files virtuelles accueillent les paquets Interest selon l’objet recherch´e et un compteur est attribu´e `a chaque file. Les m´ecanismes d’Interest shaping peuvent provoquer des pertes de d´ebits dans certains sc´enarios. Dans l’exemple de la figure 1.1, si on applique l’Interest shaping sur tout le trafic on va retarder les paquets Interest ind´ependamment de leur appartenance aux flots. On va alors transmettre plus de paquets Interest du flot2 que du flot1. Sachant que le flot 2 sur le lien suivant perd en bande passante puisque la capacit´e du lien est inf´erieur `a la capacit´e du lien emprunt´e par le flot 1, cette situation particuli`ere entraine une perte en capacit´e. Il nous semble que notre choix d’agir directement sur le flux de donn´ees en imposant l’´equit´e par ordonnancement DRR est plus robuste. l’Interest discard n’intervient alorsCHAPITRE 1. INTRODUCTION 19 Client ccn node Serveur1 Serveur2 3Mb 3Mb 1Mb Flow1 Flow2 Figure 1.1 – Exemple illustrant la perte en d´ebit en utilisant le shaping sans classification par flot que comme m´ecanisme de contrˆole secondaire permettant le routeur de ne pas inutilement demander des paquets Data qui ne peuvent pas ˆetre achemin´es `a cause de la congestion sur la voie descendante. Il est notable aussi que le m´ecanisme d’Interest discard s’int`egre naturellement avec l’ordonnancement DRR dans la mˆeme “line card”. 1.2.2 Protocole de transport Dans notre proposition, le protocole de transport n’est pas critique car le contrˆole d’´equit´e du partage est r´ealis´e par ordonnancement DRR. D’autres ont propos´e plutˆot de maintenir de simples files FIFO en se fiant au protocole de transport pour le contrˆole d’´equit´e. Dans IP deux moyens permettent de d´etecter un rejet de paquet : les num´eros de s´equences des paquets s’ils ne se suivent pas ou le timeout si le d´elai d’acquittement d´epasse un seuil. Dans CCN les paquets Data, mˆeme s’ils ne subissent aucun rejet, n’ont pas forc´ement le bon ordre puisque les paquets peuvent ˆetre re¸cus de plusieurs sources diff´erentes. D’autre part le timeout calcul´e sur la base du RTT change tout le temps et ceci pourrait conduire `a des timeouts inopin´es. Gallo et al. [8] d´efinissent un protocole de transport d´enomm´e ICP (Interest Control Protocol). Ils proposent la d´etection de rejet par timeout mais en mettant `a jour r´eguli`erement le seuil de temporisation selon un historique. CCN dans ses premi`eres versions proposait un timeout fixe ce qui sanctionnait lourdement les flots en n´ecessitant une attente excessive avant de d´etecter les rejets. Vu que les RTTs peuvent varier dans CCN non seulement `a cause de la congestion, mais, du fait qu’on peut r´ecup´erer les objets de plusieurs sources, cette d´etection par timeout semble difficile `a mettre en oeuvre. Dans notre approche, d´etaill´ee plus loin, nous proposons un m´ecanisme de notification explicite de congestion qui permettrait une d´etection rapide de congestion sans besoin de timeout. 1.2.3 Multipath et multisource Dans CCN, un utilisateur ne peut pas connaitre d’avance les chemins emprunt´es par les paquets, car les paquets Interest ne contiennent que le nom de l’objet et le num´ero du20 1.2. ETAT DE L’ART paquet demand´e, sans aucune pr´ecision sur la destination. La difficult´e alors de d´etecter ou de s´eparer les chemins rend l’utilisation des protocoles de type MPTCP (multipath TCP) quasiment impossible. De ce fait, on ne peut pas utiliser une fenˆetre par chemin car l’utilisateur n’a aucun moyen d’acheminer ses paquets en suivant un chemin pr´ecis. Ce sont les routeurs qui choisissent le chemin d’un paquet Interest. Gallo et al. [7] proposent un couplage entre protocole de transport multipath et un m´ecanisme de forwarding au niveau des routeurs. Ils adaptent le protocole ICP au cas multipath en collectant les RTT venant de diff´erents chemins. En effet, un paquet Interest ne peut pas “savoir” `a l’avance vers quel chemin il serait achemin´e, mais, une fois achemin´e par le r´eseau, un paquet Data “connait” surement le chemin qu’il a emprunt´e. Le r´ecepteur peut donc identifier et enregistrer les chemins emprunt´es par les paquets. Ceci permet notamment d’estimer le RTT de chaque chemin. Cette approche nous paraˆıt lourde `a mettre en oeuvre. Dans notre proposition, on envisage l’utilisation de multipaths mais l’imposition d’un ordonnancement DRR par flot rend inefficace les m´ecanismes de coop´eration `a la MPTCP. Nous envisageons donc d’autres m´ecanismes pour ´eviter les ´ecueils d’un contrˆole de congestion ind´ependant par chemin. Cependant, nous notons ´egalement que le gain de d´ebit dˆu `a l’utilisation simultan´ee de plusieurs chemins n’est r´ealisable que par des flots ne subissant pas de limitation au niveau de l’acc`es. Cette observation nous m`ene `a croire qu’un seul chemin, judicieusement choisi, peut largement suffire dans la grande majorit´e des cas. Par ailleurs, Rossini et al. [9] identifie un ph´enom`ene de “pollution” des caches caus´e par l’utilisation des multipaths. Leurs r´esultats montrent des taux de hit nettement inf´erieurs en cas d’utilisation de chemins multiples, dˆu `a l’´eparpillement des copies de paquets dans les diff´erents caches.Chapitre 2 Partage de bande passante L’utilisation des caches au sein des CCN contribue `a l’am´elioration des d´elais de t´el´echargement et r´eduit les probl`emes de congestion. Mais la demande en trafic est en augmentation permanente, et il reste n´ecessaire d’utiliser des m´ecanismes de gestion du trafic. En effet, le contrˆole de congestion est n´ecessaire pour assurer des d´elais n´egligeables pour les flots voix et vid´eos, et pour ´eviter une consommation abusive de la bande passante par des flots agressifs. Des travaux ant´erieurs sur le r´eseau IP sugg`erent que le partage de bande passante par flot impos´e par un ordonnancement dans les routeurs est une solution efficace. Il r´ealise en effet une diff´erentiation de service implicite et assure de bonnes performances. Les flots dans les CCN peuvent ˆetre identifi´es selon l’objet recherch´e et il est possible ainsi d’appliquer une politique de congestion orient´ee flot. Pour g´erer le trafic et ´eviter la congestion, nous adoptons donc une politique “flowaware” o`u les actions de gestion tiennent compte de l’appartenance des paquets `a des flots. Nous pensons que ceci est pr´ef´erable `a un contrˆole de congestion o`u la performance d´epend d’un protocole mis en oeuvre dans l’´equipement des utilisateurs, comme dans le r´eseau IP actuel. En effet, rien ne garantit l’utilisation fid`ele de ce protocole. De plus, plusieurs variantes de TCP qui voient le jour le rendant de plus en plus agressif vis `a vis des versions ant´erieures. 2.1 Identification des flots Dans IP, un flot est d´efini par les adresses IP et les num´eros de port ; cela correspond typiquement `a une requˆete pr´ecise et sp´ecifique. Dans un CCN, au niveau de l’interface r´eseau, on ne peut acheminer qu’une seule demande pour le mˆeme objet. Un CCN utilise le multicast en envoyant l’objet re¸cu `a toutes les interfaces indiqu´ees dans la PIT. Nous identifions un flot grˆace aux noms de l’objet recherch´e et le fait que les paquets sont observ´es au mˆeme point du r´eseau et sont rapproch´es dans le temps. La figure 2.1 montre le format de l’entˆete des paquets en CCN. Les paquets Data et Interest portent le mˆeme nom d’objet mais, actuellement, il n’y a pas moyen de parser 2122 2.2. CACHES ET FILES D’ATTENTE chunk name user supplied name version chunk number other fields object name Figure 2.1 – Format des paquets CCN ce nom car c’est le ‘chunk name’ qui identifie un paquet data. Le champ ‘object name’ pourrait ˆetre analys´e afin d’identifier d’une fa¸con unique les paquets correspondants `a la demande d’objet mais ceci n´ecessiterait une modification du code CCNx. 2.2 Caches et files d’attente La d´eclaration faite dans l’article de Van Jacobson que “LRU remplace FIFO” semble ˆetre inexacte. Une file d’attente ne peut jouer le rˆole d’un cache, et vice versa, puisque la file d’attente devrait ˆetre de taille faible pour permettre un acc`es rapide `a la m´emoire, alors qu’un cache devrait ˆetre de taille grande mˆeme si le temps d’acc`es est plus lent. On d´emontre ceci par des exemples. On consid`ere une politique d’ordonnancement id´eal (LFU) o`u les objets les plus populaires sont stock´es dans un cache de taille N. L’impl´ementation d’une telle politique est possible selon [10]. On consid`ere des applications g´en´erant la majorit´e du trafic Internet comme YouTube et BitTorrent. La popularit´e des objets de ces applications suit la loi Zipf de param`etre α, c’est `a dire que la popularit´e du i eme ` objet le plus populaire est proportionnelle `a i −α. Des observations rapport´ees dans les articles [11] et [12] placent ce param`etre `a 0.75 environ. On consid`ere que les objets ont tous la mˆeme taille et que le catalogue est de M objets. La probabilit´e de hit global h pour une politique LFU peut ˆetre exprim´ee par : h = PN i=1 i −α PM i=1 i−α . Si on consid`ere un catalogue et une taille de cache assez grands, on a h ≈ N M 1−α . Pour 100 millions vid´eos Youtube de taille 4MB [13] il faut 640 GB de m´emoire pour un taux de hit de 20 % ou de 25 TB de m´emoire pour un taux de hit de 50 %. Pour 400 000 torrents avec une taille moyenne de 7 GB, il faut 4 TB pour un taux de hit de 20 %, ou de 175 TB de m´emoire pour un taux de hit de 50 %. Par ailleurs, la taille d’une file d’attente est au maximum ´egale au produit de la bande passante par le d´elai RTT [14] ; pour un lien `a 10 Gb/s et un d´elai de 200 ms, la taille d’une file d’attente est donc de l’ordre de 300 MB. Il est donc clairement n´ecessaire de distinguer deux m´emoires diff´erentes : des m´emoires cache de grande taille pour le stockage des donn´ees, et une file d’attente de taille beaucoup moins importante et avec un acc`es rapide.CHAPITRE 2. PARTAGE DE BANDE PASSANTE 23 Le contrˆole du trafic s’appuie sur la gestion des files d’attente. Il est donc important ´egalement pour cette raison de bien reconnaˆıtre la distinction entre ces files et le Content Store. 2.3 Le principe du flow aware networking Afin de prot´eger les flots sensibles audio et vid´eo, des techniques pour la gestion de la QoS comme Diffserv et Intserv ont ´et´e propos´ees. Le marquage de paquets dans Diffserv est une technique qui a ´et´e impl´ement´ee pour prioriser les flots voix ou vid´eo. Cependant, c’est une technique qui reste complexe `a mettre en oeuvre et sujette `a une possibilit´e de modification illicite du marquage. Il est bien connu par ailleurs que les approches orient´ees flots d’Intserv sont trop complexes et ne passent pas `a l’´echelle. On pourrait ´eventuellement prot´eger les flots sensibles et assurer une certaine ´equit´e dans le partage des ressources en utilisant un protocole de transport comme TCP. Cependant, l’utilisateur garde dans tous les cas une possibilit´e de modifier les impl´ementations ou bien d’utiliser des versions agressives de TCP. Nous pensons que le flow aware networking, d´eja propos´e pour les r´eseaux IP peut ˆetre adapt´e aux r´eseaux CCN. Ceci consiste `a mettre en place deux fonctionnalit´es : 1. le partage ´equitable de bande passante par flot, 2. le contrˆole de surcharge. Nous d´eveloppons ces deux points ci-dessous. 2.3.1 Partage des ressources dans les CCN Le partage ´equitable de la bande passante offre plusieurs avantages tr`es connus (voir [15], [16], [17] et [18]). Nous citons `a titre d’exemple : • les flots ´emettant des paquets `a un d´ebit inf´erieur au d´ebit ´equitable ne subissent pas de rejets de paquets. • les flot sensibles (conversationnels et streaming) ayant g´en´eralement des d´ebits faibles sont prot´eg´es et b´en´eficient d’un service de diff´erentiation implicite, • les flots agressifs ne gagnent rien en ´emettant des paquets trop rapidement car leur d´ebit ne peut d´epasser le d´ebit ´equitable. Pour une utilisation ´equitable de la bande passante, et pour prot´eger les flot sensibles, nous proposons que le r´eseau CCN assure lui-mˆeme le partage ´equitable des ressources r´eseau. Les avantages de cette technique ont ´et´e largement d´evelopp´es dans les articles pr´ecit´es ; elle peut s’adapter parfaitement aux r´eseaux CCN. Pour le partage ´equitable des ressources, nous avons revu plusieurs propositions. Nous comparons par simulations certains protocoles fair drop, et un protocole fair queuing. On consid`ere un lien `a 10 Mb/s partag´e par les flux suivants :24 2.3. LE PRINCIPE DU FLOW AWARE NETWORKING • TCP1 : facteur AIMD=1/2, RTT=10ms • TCP2 : facteur AIMD=1/2, RTT=30ms • TCP3 : facteur AIMD=1/2, RTT=50ms • CBR : flux `a d´ebit constant de 3Mb/s • Poisson : Un flux poissonien de paquets repr´esentant la superposition d’un grand nombre de flux de faible d´ebit. La figure 2.2 pr´esente les r´esultats obtenus. 0 1 2 3 4 5 Tail Drop Fred Afd tcp0 tcp1 tcp2 cbr Poisson (a) Algorithmes Fair drop 0 1 2 3 4 5 Fair Queuing Throughput(Mb/s) tcp0 tcp1 tcp2 cbr Poisson (b) Fair queuing Figure 2.2 – Comparaison des protocoles fair drop et du protocole Fair queuing Il est clair que le fair queuing est l’algorithme le plus efficace. Il a ´egalement l’avantage d’ˆetre sans param`etre. Son passage `a l’´echelle a ´et´e d´emontr´e `a condition d’assurer ´egalement un contrˆole de surcharge. En effet, il a ´et´e d´emontr´e dans [19] que le nombre de flots ne d´epasse pas quelques centaines si la charge du r´eseau reste inf´erieur `a 90 %, une valeur de charge au-dessus des exigences des op´erateurs. Le d´ebit ´equitable pour un lien de capacit´e C et de charge ρ est estim´e `a C(1 − ρ) [20]. Dans un r´eseau `a charge normale (ne d´epassant pas 90 %) ce d´ebit est largement suffisant pour les flots streaming et conversationnels. Le partage ´equitable n’est pas un objectif en soi, mais un moyen d’assurer un d´ebit acceptable et de prot´eger les flots adaptatifs des flots gourmands. Ainsi, tout flot ne d´epassant pas le d´ebit ´equitable ne subit aucun rejet de paquet dont le d´elai est tr`es faible. C’est aussi un moyen automatique pour assurer un fonctionnement normal sur Internet sans se soucier des comportements de l’utilisateur final. Notons que la possibilit´e de contourner l’imposition d’un partage ´equitable par la g´en´eration de multiples flots au lieu d’un seul est tr`es limit´ee [21]. Tr`es peu d’usagers peuvent en fait ´emettre du trafic `a un d´ebit plus fort que le d´ebit ´equitable. Le d´ebit pour la plupart des usagers est limit´e par leur d´ebit d’acc`es. De plus, dans un r´eseauCHAPITRE 2. PARTAGE DE BANDE PASSANTE 25 CCN o`u les flots sont d´efinis par le nom de l’objet, la possibilit´e de d´emultiplier les flots est beaucoup plus limit´ee qu’en IP. Nous proposons l’utilisation d’un algorithme d’ordonnancement comme DRR [22] o`u les files par flot sont mod´elis´ees par des listes chain´ees utilisant une structure nomm´ee ActiveList. Il a ´et´e d´emontr´e que le nombre de flots dans ActiveList est limit´e `a quelques centaines pour une charge ne pas d´epassant 90%, ind´ependamment de la capacit´e du lien C [19]. Ces r´esultats d´emontrent le “scalabilit´e” de l’ordonnancement DRR. 2.3.2 Contrˆole de surcharge La demande en trafic est le produit du d´ebit d’arriv´ee des flots par la taille moyenne d’un flot. On dit qu’un r´eseau est en surcharge si la demande d´epasse la capacit´e du lien. Dans ce cas, le r´eseau est instable : le nombre de flots en cours croˆıt et leur d´ebit devient tr`es faible. Le partage ´equitable de la bande passante par flot n’est donc scalable que si la charge du lien (demande divis´ee par la capacit´e du lien) est normale. On consid`ere la valeur maximale d’une charge normale ´egale `a 90%. Si la charge du r´eseau d´epasse 90%, le nombre de flots devient trop grand et donc lourd `a g´erer. Pour contrˆoler la charge, on pourrait mettre en place un m´ecanisme de contrˆole d’admission. Ceci consiste `a ´eliminer tout nouveau flot d`es que la charge du r´eseau atteint une valeur maximale. Pour ceci, il faut sauvegarder une liste de flots en cours et ´ecarter tout nouveau flot arrivant. Cependant, pour un r´eseau bien dimensionn´e, le probl`eme de surcharge ne se pose qu’en certains cas rares, comme par exemple une panne sur un lien r´eseau. Pour CCN, plutˆot qu’un contrˆole d’admission complexe et peu utilis´e, nous proposons la simple suppression des paquets d’une certaine liste de flots afin de r´eduire le niveau de charge. Cette liste pourrait ˆetre d´efinie de mani`ere arbitraire (par une fonction hash sur l’identit´e du flot) ou, si possible, de mani`ere plus s´elective en n’incluant que les flots les moins prioritaires.Chapitre 3 Mecanismes pour CCN ´ 3.1 M´ecanismes pour les utilisateurs L’usager dans un CCN doit participer `a la gestion du trafic en modulant la vitesse `a laquelle il envoie les Interests pour les chunks d’un mˆeme objet. L’utilisation du protocole de transport adaptatif dans un r´eseau CCN ´equip´e de l’ordonnancement DRR n’est pas n´ecessaire pour assurer le bon fonctionnement du r´eseau. Cependant, nous recommandons l’utilisation d’un protocole adaptatif pour ´eviter les r´e´emissions multiples, dues aux rejets Interest. 3.1.1 D´etection des rejets Nous proposons pour l’utilisateur un m´ecanisme de d´etection rapide de rejet dont voici la description. Si un paquet est rejet´e au niveau de la file d’attente en raison de sa saturation ou en raison d’une politique de gestion de la file d’attente, on envoie `a l’utilisateur l’entˆete du paquet data sans le payload. L’utilisateur, en recevant un paquet data de payload nul, sait que le paquet a ´et´e rejet´e, et donc r´eajuste la vitesse d’´emission des Interests pour ´eviter l’accumulation de r´e´emissions inutiles. Mieux encore, une modification peut ˆetre apport´ee `a l’entˆete du paquet data afin de pr´eciser qu’il correspond `a un discard. Cette technique de d´etection de rejet est particuli`erement int´eressante dans les CCN, puisqu’on ne peut pas se baser sur le s´equencement des paquets. En effet, contrairement `a TCP/IP, deux paquets qui se suivent `a l’origine ne se suivent pas forc´ement `a la r´eception, car la source d’une donn´ee n’est pas forc´ement unique, et le chemin n’est pas forc´ement le mˆeme pour tous les paquets. Actuellement, dans l’impl´ementation CCNx, la d´etection est faite uniquement en se basant sur le timeout. Ceci reste tr`es impr´ecis, et peut poser des probl`emes. A titre 26CHAPITRE 3. MECANISMES POUR CCN ´ 27 d’exemple, avec un timeout fixe, comme c’est le cas de CCNx dans ses premi`eres versions, une d´etection de rejet ne correspond pas forc´ement en fait `a un rejet, mais `a un temps de propagation et de transmission d´epassant le timeout. R´eduisant la fenˆetre dans un tel cas ne fait que d´et´eriorer les d´ebits des flots malgr´e la disponibilit´e de la capacit´e dans les liens. Un protocole de transport efficace arrive `a d´etecter rapidement les rejets. Ceci devient plus difficile lorsque le protocole de transport connecte l’utilisateur `a deux sources ou plus. Dans CCN, un utilisateur ne peut savoir `a l’avance s’il est servi par deux sources, car la seule donn´ee qu’il d´etient est le nom d’objet. De plus, toute l’architecture du r´eseau et la localisation des serveurs de donn´ees sont invisibles pour lui, ce qui est le but de CCN. L’article de Carofiglio et al. [8] apporte une r´eponse `a ce probl`eme. En utilisant un historique un peu large, on collecte des informations statistiques sur le nombre de chemins utilis´es ainsi que les RTT recens´es pendant les ´echanges, et on construit, sur la base de ces informations, un protocole de transport multipath efficace. En tous les cas, nous sommes peu favorables `a l’utilisation des multipaths et multisources. Les liens r´eseaux ont des capacit´es tellement grandes que le d´ebit d’un seul flot ne peut gu`ere atteindre la capacit´e du lien. Le d´ebit des flots est limit´e en fait par le d´ebit d’acc`es au r´eseau qui est faible par rapport au d´ebit des liens au coeur de r´eseau. Donc, un seul lien non surcharg´e est largement suffisant pour q’un flot r´ealise son d´ebit maximal. Par contre, nous sommes favorables `a des m´ecanismes de load balancing en cas de surcharge de certains liens, ce qui devrait ˆetre assez exceptionnel dans un r´eseau bien dimensionn´e. Avec la d´etection rapide des rejets, le paquet Interest qui a subi le discard est transform´e en paquet data sans payload, avec ´eventuellement une modification l´eg`ere de l’entˆete afin de signaler le discard. Le paquet traverse le chemin inverse en supprimant au fur et `a mesure les entr´ees correspondantes `a la PIT. A la r´eception du paquet data, l’utilisateur ou les utilisateurs corrigeront le probl`eme d´etect´e en adaptant au mieux le d´ebit d’´emission selon le protocole de transport. 3.1.2 Protocole de transport Dans le cas d’un ordonnancement fair queuing, l’utilisateur ne gagne pas en bande passante en ´etant tr`es agressif. Les r´e´emissions multiples d’Interest sont une cons´equence directe d’un protocole de transport agressif ne prenant pas en compte le feedback r´eseau. Si le fair sharing est impos´e, comme nous l’avons sugg´er´e, le protocole de transport n’est plus vu comme un outil pour r´ealiser le partage de bande passante. Le plus simple serait d’envoyer des paquets Interest `a d´ebit constant, mais dans ce cas, le r´ecepteur devrait g´erer une large liste de paquets Interest en attente. Nous proposons plutˆot un protocole AIMD (additive increase/multiplicative-decrease) comme TCP avec d´etection rapide de perte et en utilisant une fenˆetre adaptative CWND (Congestion Window). Le nombre de paquets Interest d’un flot qui transite28 3.2. MECANISMES POUR OP ´ ERATEURS ´ dans le r´eseau ne doit pas d´epasser la taille de la fenˆetre CWND. A la d´etection d’un rejet par d´etection rapide ou timeout, la fenˆetre est r´eduite suivant un facteur ; plus ce facteur est proche de 1, plus le protocole est aggressif. En absence de perte, la fenˆetre CWND croˆıt lin´eairement selon un certain taux. Encore, plus ce taux est grand, plus le protocole est aggressif. 3.2 M´ecanismes pour op´erateurs En plus de l’ordonnancement “fair queuing”, nous envisageons un m´ecanisme pr´eventif de rejet d’Interest. L’op´erateur devrait ´egalement exploiter les sources multiples de certaines donn´ees en appliquant une strat´egie d’acheminement adapt´ee. 3.2.1 Motivation ´economique Il est important de mettre en place une motivation ´economique pour encourager l’op´erateur `a d´eployer cette nouvelle architecture. Il est ´egalement important que le fournisseur de r´eseau soit r´emun´er´e pour le trafic qu’il ´ecoule. On consid`ere que le fournisseur devrait ˆetre pay´e pour les data envoy´es ; par exemple, dans la figure 3.1, l’utilisateur U1 paye le fournisseur P1 pour les data qu’il fournit, et P1 paye P2 pour les data re¸cus. Cette approche fournit bien la motivation n´ecessaire pour d´eployer un r´eseau CCN muni de caches, car le fournisseur, en utilisant des caches, ne serait pas amen´e `a acheter le mˆeme contenu plusieurs fois. Les frais devraient couvrir les coˆuts d’infrastructure (bande passante et caches), et leur nature exacte pourrait prendre de nombreuses formes, y compris les tarifs forfaitaires et des accords de peering. 3.2.2 Interest Discard L’utilisateur ne paye le fournisseur que s’il re¸coit effectivement la donn´ee. Le fournisseur doit donc assurer un contrˆole de congestion afin d’´eviter la perte des donn´ees transmises `a ses clients. Il a int´erˆet `a rejeter les Interests en exc`es pour ´eviter de racheter des donn´ees qui ne peuvent pas ˆetre revendues `a cause d’une congestion ´eventuelle. Afin d’´eviter un tel probl`eme, nous proposons un m´ecanisme compl´ementaire pour prot´eger le fournisseur. Supposons le lien AB dans la figure 3.1 congestionn´e ; B va limiter le d´ebit des Interests envoy´es vers le fournisseur P2 pour ´eviter d’acheter des donn´ees qui ne seront pas revendues `a l’utilisateur final U1 puisqu’elles seront perdues `a cause de la congestion. Nous appelons ce m´ecanisme “Interest Discard”. On consid`ere le lien AB de la figure 3.1. A re¸coit les paquets Interest de U1 et renvoie ces paquets vers B. B re¸coit dans l’autre sens les paquets de donn´ees r´ecup´er´es du fournisseur P2 et applique le Deficit Round Robin sur les paquets Data envoy´es vers A.CHAPITRE 3. MECANISMES POUR CCN ´ 29 Ub Aout Bin Ain Bout Interests Data Interests Data Sb Ua Sa Figure 3.1 – Les cartes r´eseaux des routeurs A et B travers´ees par des paquets Interest et Data B calcule en effet un d´ebit d’´equit´e correspondant `a l’inverse du temp de cycle moyen de DRR. Le d´ebit des Interest est limit´e par des rejets forc´es en utilisant un sceau `a jetons. Le d´ebit des Interests est limit´e au d´ebit correspondant au d´ebit ´equitable r´ealis´e actuellement par le DRR (tenant compte de la taille diff´erente des paquets Interest et Data). Le sceau `a jetons est donc aliment´e au rythme de l’ordonnancement. Notons que le DRR et le sceau `a jetons seront r´ealis´es dans la mˆeme carte r´eseau facilitant ainsi leur couplage. Nous pr´esentons le pseudocode interest Discard, cet algorithme doit ˆetre utilis´e au niveau de chaque interface r´eseau. Il est ex´ecut´e `a l’arriv´ee d’un interest `a l’interface, et `a chaque cycle Round Robin incr´ementer tous les compteurs de l’interface. Nous r´esumons ci-dessous l’algorithme ex´ecut´e au niveau de l’interface r´eseau. Algorithm 1 A l’arriv´ee d’un paquet interest `a l’interface r´eseau R´ecup´erer le nom d’objet du paquet name Calculer le hash du nom d’objet hash if f ile[hash]∄ then Cr´eer la file ayant comme ID hash Attribuer un compteur count[hash] au flux Initialiser le compteur count[hash] = b end if if count(hash)==0 then rejeter l’interest i else count(hash)- - ; end if Nous adoptons le DRR comme algorithme fair queuing, il utilise un nombre fixe de files. On note M le nombre maximal de files Round Robin30 3.2. MECANISMES POUR OP ´ ERATEURS ´ Algorithm 2 A la sortie de l’interface r´eseau i = 0 while i < M do if f ile[i]∃ then Servir le premier paquet de f ile[i] end if if f ile[i] = ∅ et count[i] = b then Supprimer la file physique f ile[i] end if for i = 0 to M − 1 do count[i] = count[i] + 1 end for end whileChapitre 4 Strategies d’acheminement ´ L’architecture CCN offre de nouvelles possibilit´es d’acheminement. Il est en particulier possible d’utiliser plusieurs sources pour un mˆeme objet. Nous avons fait quelques ´etudes sur l’acheminement multi-sources. On d´emontre que les m´ecanismes de gestion du trafic fonctionnent bien dans ce contexte. Cependant, avant de poursuivre la recherche dans ce domaine, il est essentiel de comprendre les possibilit´es r´eelles qu’offrirait un r´eseau CCN en fonction de sa politique de stockage. Nos ´etudes dans cette direction sont d´ecrites dans les deux parties suivantes de ce rapport. 4.1 Multicast Sur la figure 3.1 les utilisateurs Ua et Ub demandent le mˆeme objet stock´e au niveau du fournisseur S1. Si les demandes se passent en mˆeme temps, une seule demande sera enregistr´ee au niveau du routeur B et donc le flot correspondant `a l’objet demand´e aura le mˆeme d´ebit des flots unicast dans le lien BS1. Il n’y a donc pas lieu de distinguer ces flots dans l’ordonnanceur DRR. Si les demandes sont d´ecal´ees dans le temps et que l’utilisateur Ua commence le t´el´echargement des paquets avant l’utilisateur Ub, il est possible que le d´ebit accord´e au flot soit divis´e par deux au niveau du lien BS1. Mais puisque le routeur B est dot´e d’une m´emoire cache, il est tr`es probable que l’utilisateur Ub trouve les paquets pr´ec´edemment t´el´echarg´es par Ua au niveau du cache B, et donc seuls les paquets non t´el´echarg´es par U1 seront demand´es et traverseront le lien S1B. Le d´ebit des flots multicast est donc ´egal au d´ebit des flots unicast sur toutes les branches du r´eseau. Il suffit que le temps de t´el´echargement d’un objet soit inf´erieur au temps de stockage de l’objet dans un cache. Encore, il n’y a pas lieu de distinguer ces flots dans l’ordonnanceur DRR. 3132 4.2. MULTISOURCES Il est important alors de maintenir une m´emoire sauvegardant les paquets des flots en cours, ´evitant ainsi la division du d´ebit des flot par deux ou plus au cas o`u plusieurs flots cherchant le mˆeme objet arrivent en mˆeme temps sur une interface r´eseau, et que ces flot soient non synchronis´es. 4.2 Multisources 4.2.1 Protocole de transport Multipath L’utilisation des multipaths n’a pas de sens que si les performances du r´eseau s’am´eliorent, et que cette utilisation ne r´eduit pas le d´ebit des flots et leurs performances par rapport `a une utilisation compl`etement unipath. Il est important de v´erifier que l’utilisation du routage multipath ne diminue de mani`ere sensible la r´egion de stabilit´e. Un r´eseau stable, est un r´eseau o`u les flots sont servis en un temps fini, c’est `a dire qu’aucun flot souffre de congestion `a cause de la charge sur un lien de son chemin. Dans un mod`ele enti`erement unipath, un r´eseau est stable `a condition que chaque chemin r constitu´e d’un ensemble de liens L(r) et travers´e par un ensemble de flots S v´erifie : X k∈S ρk < Cl ∀l ∈ L(r). Le fair queuing, que nous pr´econisons d’utiliser au niveau des routeurs, n’est pas seulement b´en´efique pour prot´eger les flot gourmands, et pour r´ealiser une certaine ´equit´e entre les flots, mais c’est aussi un moyen de maximiser la r´egion de stabilit´e. En effet, les auteurs de [23] ont d´emontr´e que le fair queuing offrait une r´egion de stabilit´e maximale, et donc permettrait une utilisation optimale du r´eseau. Dans un r´egime multipath, les auteurs de [24] ont d´emontr´e qu’un r´eseau est stable sous la condition : X r∈S ρr < X l∈L(s) Cl . 4.2.2 Performance de MPTCP Afin de mieux comprendre l’utilisation du routage multipath dans CCN, nous avons ´etudi´e d’abord l’impact sur la performance des diff´erentes versions de MPTCP envisag´ees actuellement pour le r´eseau IP. Les protocoles Multipaths sont class´es en deux cat´egories : les protocoles non coordonn´es et les protocoles coordonn´es. Un protocole de transport non coordonn´e permet de r´ecup´erer un maximum de d´ebit mais cette augmentation de d´ebit p´enalise le d´ebit des autres flots car le flot multipath consomme plus de capacit´e que les autres. L’exemple illustr´e dans la figure 4.1 montre que l’utilisation du TCP non coordonn´e peut r´eduire le d´ebit des flots unicast en offrant plus de d´ebit aux flots multichemins, ce qui est loin de nos objectifs. EnCHAPITRE 4. STRATEGIES D’ACHEMINEMENT ´ 33 effet, le flot f1 partage le lien `a 2 Mb/s avec le flot f2 malgr´e la disponibilit´e d’un autre lien enti`erement d´edi´e pour lui et pouvant servir tout le d´ebit requis. flux2 flux1 c=4 c=2 c=2 Figure 4.1 – Le TCP Multipath non coordonn´e n’assure pas l’´equit´e Le MPTCP coordonn´e r´epond `a la condition de stabilit´e. Sa description est pr´esent´e par l’IETF1 ; la RFC 6356 d´ecrit les fonctionnalit´es d’un protocole de transport MPTCP. Il offre beaucoup d’avantages tels que la fiabilit´e en maintenant la connexion en cas de panne, le load balancing en cas de congestion ou l’utilisation du r´eseau wifi et ADSL en mˆeme temps, par exemple, pour r´ecup´erer le mˆeme contenu. Chaque flot utilisant MPTCP est subdivis´e en plusieurs sous-flots, chacun ´eventuellement suivant un chemin diff´erent. Chaque sous-flot r d´etient sa propre fenˆetre wr [25]. On trouve deux types de protocole MPTCP coordonn´e : le MPTCP semi coupl´e et le MPTCP coupl´e. Dans le cas d’un protocole MPTCP coupl´e, `a la d´et´ection d’un rejet, la fenˆetre cwndr du sous-flot r d´ecroit `a max(cwndr − cwndtotal/2, 1). Dans le cas d’un contrˆole de congestion MPTCP semi coupl´e la fenˆetre d’un sous-flot d´ecroit selon sa propre fenˆetre de congestion uniquement. En utilisant un MPTCP enti`erement coupl´e, les fenˆetres s’annulent `a tour de rˆole rendant le fonctionnement de ce protocole instable [26]. Dans notre proposition du module de gestion du trafic pour CCN, nous avons propos´e l’utilisation du Round Robin, il s’av`ere que le Round Robin invalide le fonctionnement du MPTCP coordonn´e. Les ajustements faits par l’utilisateur ne corrigent pas ce probl`eme. Nous avons observ´e ce ph´enom`ene en simulant avec ns2 un tron¸con de r´eseau pr´esent´e dans la figure 4.2. Un flot MPTCP ´emis par le noeud A est constitu´e de deux sous-flot : TCP0, qui suit le plus long chemin vers le r´ecepteur MPTCP (noeud D) A-B-C-D, et T CP2, qui suit le plus court chemin vers le r´ecepteur MPTCP A-D. Un flot TCP g´en´er´e par le noeud E suit le plus court chemin E-B-C-F vers le r´ecepteur TCP. Nous comparons dans un premier temps les d´ebits des flots T CP0 et T CP2 partageant le lien B-C avec une politique Tail drop dans tous les noeuds du r´eseau. La figure 14.3 confirme l’efficacit´e du MPTCP coordonn´e qui r´ealise l’´equit´e en prenant en compte toute la bande passante offerte au flot, et non pas la bande passante offerte par un lien uniquement. Avec le MPTCP non coordonn´e le flot TCP0 partage 1http ://datatracker.ietf.org/wg/mptcp/charter/34 4.2. MULTISOURCES Emetteur TCP Recepteur TCP Emetteur MPTCP Recepteur MPTCP TCP0 TCP1 TCP0 TCP1 TCP0 1Mb 2Mb Figure 4.2 – un r´eseau pour illustrer les Multipaths (a) MPTCP coordonn´e (b) MPTCP non coordonn´e Figure 4.3 – MPTCP coordonn´e priorise le flot unipath ´equitablement la bande passante avec TCP2, ce qui est ´equitable localement sur le lien, mais ne l’est pas globalement dans le r´eseau, puisque l’´emetteur TCP re¸coit un d´ebit suppl´ementaire du sous-flot TCP1. Le protocole MPTCP coordonn´e corrige ce probl`eme et offre au flot unipath TCP1 plus de d´ebit que TCP0. Nous recommen¸cons le mˆeme sc´enario mais en appliquant une politique Round Robin au noeud B. Nous observons le d´ebit des flots TCP0 et TCP2. On obtient les r´esultats pr´esent´es dans la figure 4.4 : Le MPTCP coordonn´e avec Round Robin r´ealise une ´equit´e par lien. Les flots TCP0 et TCP2 partage ´equitablement la bande passante au niveau du lien B-C, contrairement aux r´esultats observ´es avec Tail Drop, ou le flot TCP2 gagnait plus de d´ebit. L’effetCHAPITRE 4. STRATEGIES D’ACHEMINEMENT ´ 35 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 0 2 4 6 8 10 12 14 16 18 20 throughput temps tcp0 reno0 Figure 4.4 – Le Round Robin annule l’efficacit´e du MPTCP des changements des fenˆetres d’une mani`ere coordonn´ee sont invalid´es par le Round Robin. L’effet du partage ´equitable local par lien du Round Robin est dominant, et le MPTCP coordonn´e perd son efficacit´e. Pour pallier `a ce probl`eme ,on propose un nouveau protocole MPRR(Multipath Round Robin) permettant de r´ealiser l’´equit´e niveau flot et de pr´eserver les performances du protocole MPTCP, le protocole MPTCP est d´ecrit par les algorithme ci dessous : Algorithm 3 A l’arriv´ee d’un paquet interest `a l’interface r´eseau I0 et sortant de l’interface I1 R´ecup´erer le nom d’objet du paquet name Calculer le hash du nom d’objet hash if f ile[hash]∄ then Cr´eer la file ayant comme ID hash Attribuer un compteur mark[hash] au flux Initialiser le compteur mark[hash] = 0 end if if interest marqu´e then mark[hash]++ ; else envoyer le paquet interest `a l’interface I1 if Une autre interface I2 r´eseau est utilis´e par le flux name then envoy´e un paquet interest marqu´e `a I2 end if end if36 4.2. MULTISOURCES Algorithm 4 A la sortie de l’interface r´eseau i = 0 while i < M do if f ile[i]∃ then if mark[i] == 0 then Servir le premier paquet de f ile[i] end if else mark[i]- - ; end if if f ile[i] = ∅ then Supprimer la file physique f ile[i] end if end while Au niveau d’un routeur, si deux interfaces I1 et I2 sont utilis´ees pour envoyer les paquets d’un flot f, `a chaque fois qu’un paquet Interest du flot f est envoy´e vers une interface, un paquet Interest dupliqu´e et marqu´e serait envoy´e `a la deuxi`eme interface. Les interfaces servant un flot multipath sont sauvegard´ees au niveau de la FIB. Au niveau du cache, `a chaque fois qu’on re¸coit un paquet Interest marqu´e, il prendrait place dans la file d’attente du flot f et le compteur Interest discard du flot f serait d´ecr´ement´e. Mais ce paquet ne serait pas achemin´e vers les autres interfaces du r´eseau, il est utilis´e uniquement pour mettre en place l’´equit´e entre flots. Chaque flot a une file unique au niveau de chaque interface. La file correspondante au flot f est trait´e une seule fois `a chaque cycle Round Robin comme tous les flots arrivants `a l’interface. Afin de v´erifier notre protocole, on utilise le simulateur Simpy pour simuler le r´eseau de la figure 4.5. 1,2 1,2 1 capacity=10Mb/s capacity=1Mb/s capacity=2Mb/s Figure 4.5 – r´eseau simul´e avec Simpy En utilisant le MPRR au niveau des interfaces on obtient les r´esultats pr´esent´es dans la figure 4.6 Le d´ebit du flot TCP0 partageant le lien avec le sous-flot MPTCP TCP1, et le d´ebit du sous flot MPTCP circulant sur le deuxi`eme lien TCP2 en utilisant les politiques Tail drop, Round Robin et MPRR sont repr´esent´es dans la figure 4.6.CHAPITRE 4. STRATEGIES D’ACHEMINEMENT ´ 37 0 200000 400000 600000 800000 1e+06 1.2e+06 1.4e+06 1.6e+06 1.8e+06 2e+06 0 50 100 150 200 250 300 350 400 450 500 Throughput(b/s) Time tcp0 tcp1 tcp2 (a) politique Tail drop 100000 200000 300000 400000 500000 600000 700000 800000 900000 1e+06 1.1e+06 1.2e+06 0 50 100 150 200 250 300 350 400 450 500 T hroughput(b/s) T ime tcp0 tcp1 tcp2 (b) politique Round Robin Figure 4.6 – D´ebits des flots avec politique Tail drop (gauche) et Round Robin (droite) Le MPTCP offre des d´ebits approximativement ´equitables tenant compte de la capacit´e global offerte au flot. Le Round Robin assure une ´equit´e au niveau de chaque lien, ce qui a pour effet de r´ealiser une in´equit´e au sens global en prenant compte de la capacit´e globale offerte. 200000 400000 600000 800000 1e+06 1.2e+06 1.4e+06 1.6e+06 1.8e+06 0 50 100 150 200 250 300 350 400 450 500 Throughput(b/s) Time tcp0 tcp1 tcp2 Figure 4.7 – D´ebits des flot avec politique Multipath Round Robin Le MPRR corrige le probl`eme provoqu´e par l’utilisation du Round Robin en r´ealisant des d´ebits presque ´equitables en prenant compte toute la capacit´e offerte aux flots, les graphes montrent une am´elioration par rapport au Tail drop traditionnel.38 4.2. MULTISOURCES 4.2.3 CCN et routage multipath Mˆeme si le MPTCP s’av`ere performant en utilisant Tail drop, ou en utilisant le MPRR, on ne peut pas faire enti`erement confiance `a tous les utilisateurs de l’Internet. L’utilisateur d´etient toujours la possibilit´e de modifier son protocole de transport, ou d’utiliser le MPTCP non coordonn´e, par exemple. Rien n’oblige l’utilisateur `a participer `a la gestion de congestion. On note aussi la difficult´e d’impl´ementer un protocole MPTCP dans CCN, du fait que l’utilisateur ne peut choisir la destination de chaque paquet. On pourrait envisager une m´ethode statistique se basant sur l’historique des chemins travers´es et leur RTTs. Si on ne peut choisir le chemin qui serait travers´e `a l’´emission, il reste possible de savoir le chemin qui a ´et´e suivi par un paquet `a la r´eception en stockant les noeud travers´es dans chaque paquet, par exemple [27]. Malheureusement cette m´ethode reste compliqu´ee et demande beaucoup de modifications au niveau de chaque paquet. De plus, la coordination des routeurs est n´ecessaire pour r´ealiser l’´equit´e globale dans le r´eseau. Nous pensons que les multipaths dans CCN ne devrait pas ˆetre g´er´es par les utilisateurs, ou du moins les utilisateurs ne sont pas responsables de la gestion du trafic dans le r´eseau. Nous ne pouvons qu’´emettre des conseils permettant `a l’utilisateur d’utiliser au mieux la bande passante et d’´eviter les rejets d’Interests successifs rendant leur protocole de transport compliqu´e `a g´erer. C’est le r´eseau qui devrait distribuer les paquets ´equitablement sur les liens disponibles. 4.2.4 Performances des multipaths Nous pensons que les flots multipaths devraient ˆetre g´er´e par le r´eseau lui-mˆeme. Pour ´evaluer les performances des multipaths, nous proposons d’´etudier deux segments de r´eseaux pr´esent´es dans la figure 4.8. N1 a) multiple single-hop sources N1 N4 N3 N2 S2 S3 S4 b) short paths and long paths Figure 4.8 – Deux r´eseaux pour illustrer les Multipaths Dans la figure 4.8a, les flot arrivants au noeud N1 peuvent r´ecup´erer les donn´ees duCHAPITRE 4. STRATEGIES D’ACHEMINEMENT ´ 39 routeur S1 localis´ee dans le noeud N1, sinon dans le cas o`u la donn´ee est introuvable, la r´ecup´erer d’une des 3 sources S4,S2 ou S3. Dans la figure 4.8b, deux routeurs sont choisi aux hasard pour r´ecup´erer les donn´ees. Nous comparons les 3 cas suivants : – un seul chemin qui correspond au chemin le plus court en nombre de sauts est utilis´e par les flots, – deux chemins sont utilis´es conjointement, – on utilise un contrˆole de charge s´electif qui consiste `a refuser l’acc`es au lien `a tout flot multipath si le lien est un chemin secondaire, et si la charge du lien d´epasse un certain seuil. On utilise des simulations Monte-Carlo pour ´evaluer le d´ebit moyen des flots en fonction de la charge, et comparer ainsi les performances des strat´egies d’acheminement. La figure repr´esente la bande passante en fonction de la charge. Pour le premier (a) a (b) b Figure 4.9 – MPTCP coordonn´e priorise les flot unipath r´eseau 4.9(a) la charge maximale `a partir de laquelle le r´eseau est instable est de 5,29 exprim´ee en unit´es du d´ebit d’un lien. Ceci peut ˆetre pr´edit par calcul. Dans ce cas, les chemins ont le mˆeme nombre de sauts. D´es qu’un chemin est surcharg´e on ne peut plus l’utiliser. L’utilisation du r´eseau est maximal avec le DRR et le contrˆole de charge. Les d´ebits du deuxi`eme r´eseau montrent que l’utilisation des chemins multiples sans aucune strat´egie m`ene `a une perte en capacit´e (la r´egion de stabilit´e est r´eduite). Dans ce cas le d´ebit offert est maximale au d´ebut. L’utilisation des chemins unicast offre une meilleur capacit´e en trafic, mais les d´ebits offerts au d´ebut sont plus faibles. Afin d’offrir des d´ebits plus importants `a faible charge, tout en offrant une meilleure capacit´e en trafic, nous proposons d’appliquer le contrˆole de charge s´electif.40 4.2. MULTISOURCES D`es qu’un seuil de d´ebit est atteint dans un lien, il faut refuser l’acc`es aux flots multipaths si le lien appartient `a un chemin secondaire. Pour distinguer les chemins secondaires et principaux pour un flot on peut marquer les paquets qui traversent un chemin secondaire. On observe effectivement que les performances obtenues avec un contrˆole de charge s´electif sont mieux que celles obtenus avec une utilisation exclusive des chemins les plus courts, et ´evidement mieux que l’utilisation al´eatoire des chemins multipath. En r´ealit´e les liens au coeur du r´eseau ont des d´ebits tr`es ´elev´es d´epassant le d´ebit d’acc`es des utilisateurs. L’utilisation des chemins multiples n’est pas forc´ement b´en´efique, les performances des caches localis´es au niveau des routeurs peuvent s´erieusement d´ecroitre. Pour illustrer ce ph´enom`ene, on consid`ere un r´eseau simple repr´esent´e dans la figure 4.10. A C B Figure 4.10 – tron¸con de r´eseau pour d´emontrer l’impact des multipath sur le hit global Des flots arrivent au noeud A selon un processus de Poisson. Si l’objet se trouve dans le noeud A alors le cache A r´epond `a la requˆete. Si l’objet demand´e se trouve dans les deux caches B et C alors un des deux caches est choisi au hasard et l’objet est r´ecup´er´e du cache choisi. Si un des caches contient l’objet et que l’autre ne le contient pas, le chemin le plus long menant au cache d´etenteur d’objet est s´electionne avec une probabilit´e P. Si aucun des caches B ou C ne contient l’objet alors il est dirig´e vers le serveur d’origine `a travers le routeur B ou C (choisi au hasard). La popularit´e des requˆetes suit une loi Zipf(0.8). On trace la probabilit´e de hit global de cette micro architecture en fonction de la probabilit´e de choix du chemin le plus long pour diff´erentes valeurs de la taille des caches. On choisit une taille de catalogue de 104 objets. Conform´ement `a la proposition CCN les caches ont la mˆeme taille. Cette exemple illustre un contre exemple des b´en´efices tir´es par les multipaths. Mˆeme si les multipaths paraissent comme une solution int´eressante pour augmenter le trafic v´ehicul´e sur Internet, son utilisation dans les r´eseaux CCN tel que pr´esent´e par Van Jacobson ne parait pas forc´ement b´en´efique. Ce constat a aussi ´et´e d´emontr´e par Rossini et al. [9]. Il est clair que le mieux pour les r´eseaux CCN est de n’utiliser les chemins les plus longs que pour les cas extrˆemes ou un flot ne peut ˆetre servi par son chemin le plus court `a cause d’une charge maximale dans un lien du chemin, et que le chemin le plus long ne contient aucun lien proche de la surcharge. Nous proposons de maintenir le choix des chemins les plus courts comme choix principal. Si un flot est rejet´e de son chemin le plus court `a cause de la surcharge d’un lien appartenant `a son chemin on peut dans ce cas seulement envisager d’emprunter un chemin secondaire, `a condition que ce chemin n’atteint pas un certain seuil deCHAPITRE 4. STRATEGIES D’ACHEMINEMENT ´ 41 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 hitg P T=0.1 T=0.3 T=0.5 Figure 4.11 – Taux de hit en fonction de la probabilit´e du choix du plus long chemin charge. A B C D chemin congestionn Dtection de congestion Figure 4.12 – Chemin plus longs choisis en cas de congestion uniquement La figure 4.12 montre un exemple de l’utilisation des multipaths dans CCN. Quand un objet se trouve dans le cache D, les Interests suivent le plus court chemin A-B-D. Mais quand le cache D re¸coit l’Interest il ne peut le servir `a travers le chemin inverse car une congestion est d´etect´e. Le flot est alors redirig´e vers le noeud d’avant B qui propose un autre chemin vers le cache D. Le chemin ´etant non congestionn´e le flot emprunte le chemin A-B-C-D. La FIB du noeud B est mise `a jour afin de v´ehiculer tous les paquets Interest du flot vers l’interface menant au noeud C et non pas au noeud D. D’autre part, un routage orient´e contenu est lourd `a mettre en place, une mise `a jour des FIB `a chaque fois qu’un objet est supprim´e d’un cache peut avoir un impact sur plusieurs tables, surtout si les tables enregistrent les paquets et non les objets.Chapitre 5 Simulations et experimentations ´ Nous avons test´e, par simulation et exp´erimentation certains des m´ecanismes que nous avons propos´es. 5.1 Simulations On consid`ere un lien `a 10 Mb/s partag´e entre un flot Poisson `a 5 Mb/s et un ensemble de flots permanents. Les flots sont ordonnanc´es en utilisant le DRR. Le flot de Poisson repr´esente de mani`ere simplifi´ee un ensemble de flots de d´ebit beaucoup plus faible que le d´ebit ´equitable. Les paquets de ce flot sont suppos´es appartenir `a des flots diff´erents. Les flots permanents simul´es sont : – AIMD (7/8) : l’utilisateur final impl´emente un contrˆole de congestion AIMD avec facteur de r´eduction de la fenˆetre CWND β = 7/8 et, pour ce flot, RTT = 10 ms. – AIMD (1/2) : l’utilisateur final impl´emente un contrˆole de congestion AIMD avec facteur de r´eduction de la fenˆetre CWND β = 1/2 et RTT = 200 ms. – CWIN (5) : L’utilisateur final maintient une fenˆetre fixe de 5 packets et RTT = 200 ms. – CWIN (100) : L’utilisateur final maintient une fenˆetre fixe de 100 packets et RTT = 200 ms. – CBR : L’utilisateur final envoie des paquets Interest `a taux fixe correspondant `a un d´ebit constant de paquets data de 4 Mb/s. 42CHAPITRE 5. SIMULATIONS ET EXPERIMENTATIONS ´ 43 Les r´esultats sont r´esum´es dans les tableaux 5.1 et 5.2. On distingue les cas d’une d´etection rapide par l’utilisateur nomm´ee “Rapid” et une d´etection par timeout fix´e `a 1s. On distingue aussi les deux cas avec “Interest discard” ou sans “Interest discard”. Table 5.1 – D´ebits en Mb/s Flow sans discard Interest discard Rapid TO (1s) Rapid TO (1s) AIMD (7/8) 1.20 1.24 1.23 1.31 AIMD (1/2) 1.19 1.10 1.12 0.84 CWIN (5) 0.19 0.19 0.19 0.19 CWIN (100) 1.20 1.24 1.23 1.32 CBR 1.20 1.24 1.23 1.32 Table 5.2 – Taux de rejets et de discard (perte/discard) Flow sans discard Interest discard Rapid TO (1s) Rapid TO (1s) AIMD (7/8) .006/0 .01/0 0/.01 0/.01 AIMD (1/2) .002/0 .003/0 0/.001 0/.003 CWIN (5) .006/0 0/0 0/.0 0/0 CWIN (100) .30/0 .18/0 0/.65 0/.22 CBR .76/0 .75/0 0/.75 0/.74 Les flot agressifs CWIN(100) et CBR ont des d´ebits `a peu pr`es ´egaux au flot TCP(7/8), mais le taux de rejets des data des flot agressifs est tr`es important (30% pour le CWIN(100) et 76% pour CBR) ; les rejets data sont convertis en rejets Interest en utilisant le m´ecanisme Interest Discard. A partir de ces r´esultats, nous recommandons que les utilisateurs choisissent un protocole de transport AIMD agressif avec donc un facteur de r´eduction proche de 1. 5.2 Exp´erimentations 5.2.1 Fair sharing Nous avons utilis´e comme algorithme d’ordonnancement le DDR [22]. Cet algorithme utilise des files virtuelles, chacune correspondant `a un identifiant de flot. A la r´eception d’un paquet, un hash est calcul´e `a partir du nom d’objet, et le paquet est plac´e dans la file correspondante `a cet identifiant. Les files sont impl´ement´ees comme une simple liste chain´ee appel´e ActiveList. Lorsque la file globale atteint une taille maximale, le dernier paquet de la file de flot la plus longue est supprim´e.44 5.2. EXPERIMENTATIONS ´ client serveur ./ccnd video1 @ipB video2 @ipB FIB ./ccnd Content Store video2 video1 Discard de l’interest ou nom? Identifier nom objet et calculer son hash Alimenter les conteurs chaque cycle Round Robin Figure 5.1 – Testbed et interest Discard 5.2.2 Interest discard On impl´emente un compteur pour chaque flot dans l’ActiveList du DRR. Tous les compteurs seront incr´ement´es d’un quantum `a chaque fois que l’ordonnanceur DRR compl`ete un cycle (parcours toutes les files) jusqu’`a une valeur maximale b. A chaque fois qu’un Interest correspondant `a un flot arrive sur la carte r´eseau, le compteur du flot est d´ecr´ement´e d’un quantum. Si un Interest arrive et que le compteur du flot correspondant `a l’Interest est `a z´ero, il faut supprimer l’Interest. 5.2.3 Sc´enarios et r´esultats Nous avons impl´ement´e un ordonnancement DRR [22] ainsi que l’Interest discard dans un r´eseau basique de deux noeuds. Un lien full duplex interconnecte deux machines Linux. Une machine joue le rˆole du serveur et stocke des fichiers de donn´ees, l’autre machine est client, cherchant ces donn´ees. L’ordonnancement est impl´ement´e dans l’espace noyau en utilisant une version modifi´ee du module sch sfq d´evelopp´e par L.Muscariello et P.Viotti [28]. Cette nouvelle impl´ementation permet l’identification des flots par les noms d’objets. L’Interest discard est impl´ement´e dans le noyau, les modifications suivantes ont ´et´e apport´ees : – Cr´eation d’un compteur par flot. – Incr´ementation de tous les compteurs `a chaque cycle DRR. – D´ecr´ementation d’un compteur `a chaque fois qu’un Interest est envoy´e. – Rejet d’un Interest si le compteur est nulle. Au niveau du serveur, nous appliquons un shaping `a 10 Mb/s, lan¸cons le d´emon ccnd, et chargeons des fichiers dans le r´ef´erentiel. Au niveau de la machine cliente, nous lan¸cons le d´emon ccnd, et r´ecup´erons les objets stock´es dans le serveur en utilisantCHAPITRE 5. SIMULATIONS ET EXPERIMENTATIONS ´ 45 deux applications : l’application ccncatchunks2 impl´ement´ee par PARC, et l’application cbr que nous avons d´evelopp´ee pour envoyer les paquets Interest `a un d´ebit constant. La figure 5.2 repr´esente les d´ebits instantan´es dans le cas d’un ordonnancement FIFO, et dans le cas d’un ordonnancement DRR. 0 5 10 0 20 40 60 80 100 rate (Mb/s) FIFO 0 5 10 0 20 40 60 80 100 rate (Mb/s) DRR Figure 5.2 – D´ebits des flot : cbr et ccncatchunks2 Le flot ccncatchunks2 arrive `a avoir son d´ebit maximal en utilisant le Deficit Round Robin, contrairement `a l’ordonnancement par d´efaut tail drop. Les r´esultats des exp´erimentations confirment les simulations. L’Interest Discard permet de convertir les rejets data en rejets Interest, ce qui aide `a conserver la bande passante et `a prot´eger l’op´erateur. sans filtre b = 10 b = 100 perte .42 .002 .005 discard 0 .45 .46 Le tableau ci-dessus montre que l’Interest discard est un m´ecanisme efficace pour ´eviter les rejets data et donc ´eviter un gaspillage de la bande passante.Chapitre 6 Conclusion Dans cette partie, nous avons propos´e un ensemble de m´ecanismes de gestion du trafic pour la proposition CCN. Cet ensemble comprend quatre volets essentiels : – La gestion du partage de bande passante. Grˆace `a l’identification des flots par les noms d’objets, il est d´esormais possible de d´efinir un flot sous CCN. Nous soulignions la n´ecessit´e de s´eparer files d’attente et caches parce qu’ils n’ont pas les mˆemes exigences en termes de taille et de temps de r´eponse. La file d’attente devrait ˆetre de taille petite avec un temps de r´eponse rapide. Par contre les caches sont plus grands mais exigent un temps de r´eponse moins rapide et utilisent typiquement une politique LRU (remplacement de l’objet le moins r´ecemment demand´e). Le partage de bande passante est assur´e au moyen de l’ordonnancement fair queuing (DRR de pr´ef´erence) au niveau flot. – Des m´ecanismes pour utilisateurs. Nous conseillons l’utilisation d’un protocole AIMD adaptatif, pas pour assurer l’´equit´e, qui est r´ealis´ee directement par DRR, mais afin de limiter les pertes et le d´eclenchement de r´e´emissions multiples lourdes `a g´erer. L’utilisateur ne gagne rien en ´etant agressif car le r´eseau partage ´equitablement la bande passante. La d´etection rapide des rejets assure l’efficacit´e du protocole de transport. Nous proposons donc une d´etection rapide de rejets au niveau des routeurs. Si un paquet Interest ne peut ˆetre servi ou si un paquet Data devrait ˆetre rejet´e, un paquet data sans payload est envoy´e vers l’usager. Nous utilisons cette m´ethode car, dans CCN, l’existence de chemins multiples entraine des probl`emes de s´equencement des paquets Data rendant impossible la d´etection rapide de perte en contrˆolant les num´eros de s´equence. L’utilisation de sources multiples engendre en plus des variations importantes du RTT rendant difficile le r´eglage du seuil de Timeout. – Des m´ecanismes pour op´erateurs. Nous proposons un nouveau mod`ele de facturation o`u un usager ou un op´erateur “ach`ete” des paquets de Data en ´emettant 46CHAPITRE 6. CONCLUSION 47 les paquets Interest correspondants. Ce m´ecanisme incite les op´erateurs `a investir dans des ressources r´eseaux afin de pouvoir “vendre” davantage de trafic. Les op´erateurs sont ´egalement motiv´es `a utiliser les caches afin d’´eviter le rachat multiple fois d’un objet populaire. Nous proposons aussi un m´ecanisme d’Interest discard qui limite les rejets Data et permet `a l’op´erateur d’´eviter de demander des paquets Data qui ne peuvent pas ˆetre revendus en aval. – Des strat´egies d’acheminement. Le multicast sous CCN est compatible avec le fair queuing que nous sugg´erons d’utiliser au niveau des routeurs. CCN utilise le multicast comme une partie de la proposition de sorte que deux flux synchronis´es demandant le mˆeme objet ne peuvent le t´el´echarger parall`element sur un lien. Une seule demande est envoy´ee pour les deux flux, ce qui ´evite la division du d´ebit des flux due au fair queuing. Si les demandes ne sont pas synchronis´ees l’utilisation des caches permet de maintenir le d´ebit de t´el´echargement grˆace au stockage temporaire des paquets en cours de t´el´echargement. Par contre l’utilisation du fair queuing peut poser un s´erieux probl`eme en ce qui concerne les multipaths. Le fair queuing annule le comportement du flux multipath coordonn´e et le transforme en un flux multipath non coordonn´e. Une ´equit´e locale par lien est r´ealis´ee mais l’´equit´e globale ne l’est pas car le flux multipath re¸coit plus de d´ebit qu’un flux unipath. Nous corrigeons ce probl`eme par la conception d’un protocole MPRR (multipath Round Robin). Un protocole de type MPTCP est difficile `a r´ealiser sous CCN puisque l’utilisateur n’a aucune visibilit´e sur les chemins utilis´es. Nous proposons donc une gestion par flot plutˆot qu’une gestion par paquet. Il suffit d’observer la charge des liens et de n’accepter aucun nouveau flot sur un chemin long que si la charge des liens est assez faible. Nous avons ´egalement observ´e que l’utilisation de multipaths nuit `a l’efficacit´e des caches dans certains cas. Suite `a nos observations li´es `a la d´egradation du taux de hit global due `a l’utilisation des multipaths, une ´etude des performances des caches est n´ecessaire, car la gestion du trafic en d´epend. Cette ´etude est l’objet de la prochaine partie.Deuxi`eme partie Performances des caches 48Chapitre 7 Introduction 7.1 Probl´ematique Dans ce chapitre, nous traitons le probl`eme de la performance des caches dans les r´eseaux orient´es contenus. Compte tenu des modifications majeures `a apporter aux r´eseaux dans le cas o`u une mise en oeuvre de CCN est envisag´ee (mise `a jour des caches, protocoles, m´emoires distribu´ees), il est important de mesurer le gain apport´e par cette architecture. Il est primordial de mesurer la quantit´e et la mani`ere dont arrivent les objets. Les conclusions que nous pouvons tirer d’une ´etude de performances d´epend de la popularit´e des objets arrivant aux caches, et de la taille des catalogues. Nous souhaitons apporter des conclusions pratiques en utilisant des donn´ees r´eelles. On note que la diffusion de contenus repr´esente 96% du trafic Internet. Ce contenu est constitu´e d’un mix de donn´ees. Nous avons alors mis en place une ´evaluation d’une hi´erarchie de caches `a deux niveaux en utilisant un mix de flux refl´etant un ´echange r´eel de donn´ees sur Internet. 7.2 Etat de l’art 7.3 Contributions Dans cette partie, on ´evalue le taux de hit, pour une hi´erarchie de caches `a deux niveaux, avec un mix de flux r´eel. Ceci en utilisant un mod`ele simple permettant d’effectuer des calculs rapides pour des tailles importantes de cache. Ce mod`ele, pr´ec´edemment propos´e dans la litt´erature, a ´et´e test´e, v´erifi´e, et d´emontr´e math´ematiquement. Des simulations ont ´et´e effectu´ees pour confirmer son exactitude. Nous avons effectu´e 4950 7.3. CONTRIBUTIONS les calculs en utilisant un mix de flux refl´etant le partage actuel du trafic sur Internet. Nous proposons un stockage des contenus VoD au niveau des routeurs d’acc`es, vu leur volume faible par rapport aux autres types de donn´ees. Les autres types devraient ˆetre stock´es dans un cache tr`es volumineux, probablement constituant un deuxi`eme niveau de caches.Chapitre 8 Mesure du trafic et performances des caches Pour estimer les taux de hit d’une architecture `a deux niveaux, il est primordial de mesurer les caract´eristiques du trafic, car les taux de hit d´ependent fortement de la nature du trafic et de son volume. 8.1 Mesure du trafic Nous pr´esentons les caract´eristiques du trafic Internet, et nous discutons des param`etres les plus importants pour nos ´evaluations. 8.1.1 Types de contenu Le “Cisco Visual Networking Index” publi´e en 2011 [29] classifie le trafic Internet et la demande globale pr´evue pour la p´eriode 2010-2015. 96% du trafic repr´esente le transfert de contenus susceptibles d’ˆetre stock´es dans les m´emoires cache. On peut les classifier en quatre cat´egories : – Donn´ees web : Ce sont les pages web visit´ees par les internautes. – Fichiers partag´es : G´en´eralement g´er´es par des protocoles pair `a pair, cr´eant une communaut´e d’entraide : Un utilisateur (leecher) peut t´el´echarger un fichier stock´e dans une des machines des autres utilisateurs (seeders). D`es que son t´el´echargement est termin´e, le leecher devient `a son tour seeder. Les r´eseaux pair `a pair rencontrent de plus en plus de probl`emes `a cause de la violation des droits 5152 8.1. MESURE DU TRAFIC d’auteur par leurs utilisateurs. Ces derniers peuvent mettre en t´el´echargement du contenu ill´egal. R´ecemment, `a titre d’exemple, le site Demonoid n’est plus disponible, probablement `a cause de la violation des droits d’auteur. – Contenu g´en´er´e par les utilisateurs (UGC) : C’est un ensemble de contenus g´en´er´es par les utilisateurs, ou directement mis `a disposition par ces derniers. La communaut´e utilisant ce partage utilise des logiciels libres, des contenus avec des licences de droit d’auteur flexibles, permettant des ´echanges simples entre des utilisateurs, mˆeme ´eloign´es g´eographiquement. A la diff´erence des r´eseaux pair `a pair, les donn´ees sont sauvegard´ees sur les serveurs priv´ees du fournisseur de contenu. Il d´etient alors la possibilit´e de v´erifier les contenus charg´es par les utilisateurs avant leur publication. – Vid´eo `a la demande (VoD) : C’est une technique de diffusion de donn´ees permettant `a des utilisateurs de commander des films ou ´emissions. La t´el´evision sur IP est le support le plus utilis´e. Le service VoD est propos´e g´en´eralement par des fournisseurs d’acc`es Internet, et il est dans la plupart des cas payant. Le contenu propos´e est lou´e pour une p´eriode donn´ee, assurant ainsi le respect des droits num´eriques. Les proportions du trafic sont indiqu´es dans le tableau 8.1. Fraction du trafic (pi) taille de la taille moyenne 2011 2015 population(Ni) des objets (θi) Web .18 .16 1011 10 KB File sharing .36 .24 105 10 GB UGC .23 .23 108 10 MB VoD .23 .37 104 100 MB Table 8.1 – Les caract´eristiques des contenus du trafic Internet 8.1.2 La taille des contenus et des objets – Web : La soci´et´e Netcraft 1 publie chaque mois le nombre de sites, estim´e grˆace `a un sondage fait aupr`es de soci´et´es d’h´ebergement et d’enregistrement des noms de domaine. Elle estime le nombre de sites actifs `a 861 379 152, en consid´erant la moyenne de nombre de pages par site `a 273 2 nous comptons plus de 2 ∗ 1011 pages web. Pour notre ´etude, on suppose que le nombre de pages web est de 1011 et leur taille moyenne est de 10KB [30]. – Fichiers partag´es : On estime le nombre de fichiers partag´es grˆace aux statistiques relev´ees sur le site Demonoid3 `a 400 000 fichiers de taille moyenne de 7.4 GB. Nous arrondissons ces chiffres dans le tableau 8.1. 1http ://news.netcraft.com/archives/category/web-server-survey/ 2http ://www.boutell.com/newfaq/misc/sizeofweb.html 3www.demonoid.me/CHAPITRE 8. MESURE DU TRAFIC ET PERFORMANCES DES CACHES 53 – UGC : Les contenus UGC sont domin´es par Youtube. Une ´etude r´ecente, faite par Zhou et al. [31], estime le nombre de vid´eos Youtube `a 5 × 108 de taille moyenne de 10 MB. Actuellement avec une simple recherche du mot clef ”a” sur Youtube nous comptons plus de 109 vid´eos. – VoD : Les vid´eos `a la demande sont estim´ees `a quelques milliers et sont de taille moyenne de 100 MB. Ce sont sans doute des sous-estimations avec l’essore r´ecente de certaines applications VoD mais elles sont suffisamment pr´ecises pour les ´evaluations pr´esent´ees dans la suite. 8.1.3 Distribution de la popularit´e La distribution de la popularit´e est un des ´el´ements essentiels du calcul des performances d’un cache. – Web : La popularit´e des pages web suit g´en´eralement la loi de Zipf : le taux de demandes q(n) pour le ni´eme objet le plus populaire est proportionnel `a 1/nα. Selon [32] et [30] le param`etre α varie entre 0.64 and 0.83. – Fichiers partag´es : Il est possible de calculer la popularit´e des torrents en utilisant les statistiques extraites du site Demonoid. En entrant un mot clef, on peut classer les torrents d’une mani`ere d´ecroissante suivant le nombre de t´el´echargements en cours (mais le site ne permet l’affichage que des 10 000 premiers et les 10 000 derniers torrents). La loi de popularit´e correspond `a peu pr`es `a une loi de Zipf de param`etre α ´egal 0.82. On estime que la popularit´e du site PirateBay suit une loi de Zipf de param`etre 0.75. On trace la popularit´e des vid´eos partag´es pour deux sites ”PirateBay” et ”torrentreactor” 4 . Apr`es une recherche par mot clef, les sites affichent les vid´eos et le nombre de leechers correspondants. En choisissant comme mot clef la seule lettre ”a”, et apr`es un tri d´ecroissant du nombre de leechers, nous tra¸cons les popularit´es pr´esent´ees dans 8.1(a) et 8.1(b). Pour le site torrentreactor, la popularit´e suit la loi Zipf(0.75) pour les premiers rangs, puis la courbe s’incline et suit une loi Zipf(1.2) pour la queue de la loi. La mˆeme observation concerne le site PirateBay. – UGC : Les flux UGC suivent une loi de Zipf avec α estim´e `a 0.56 [11] ou `a 0.8 [13]. Des travaux r´ecents de Carlinet et al. [33] sugg`erent plutˆot une loi Zipf(0.88). – VoD : L’´etude de Carlinet et al. ´evalue ´egalement les VoD. La loi de popularit´e n’est pas de Zipf, mais une combinaison de deux lois de Zipf. La premi`ere est de param`etre 0.5 pour les 100 objets les plus populaires, la deuxi`eme est de param`etre 1.2 pour les objets suivants. Des statistiques ´etudi´ees par Yu et al. [34] pour un service VoD en Chine sugg`erent une loi de Zipf avec α variant ente 0.65 et 1. 4http ://www.torrentreactor.net54 8.2. LE TAUX DE HIT D’UN CACHE LRU 1 10 100 1000 10000 100000 1 10 100 1000 10000 nombre de leechers Zipf(0.75) (a) torrentreactor 1 10 100 1000 10000 1 10 100 1000 rang nombre de leechers Pirate Bay Zipf(0.7) (b) Pirate Bay Figure 8.1 – La popularit´e des vid´eos partag´ees sur torrentreactor et Pirate Bay 8.2 Le taux de hit d’un cache LRU 8.2.1 Independent Reference Model Afin d’utiliser les mod`eles math´ematiques, on consid`ere g´en´eralement un ensemble d’objets ayant des popularit´es fixes, ainsi qu’un catalogue d’objets fixe. C’est le mod`ele dit “independance reference model” ou IRM. En r´ealit´e, les objets changent de popularit´e et les catalogues ne cessent d’augmenter. Une prise en compte d’une telle complexit´e ne peut ˆetre r´esolue par mod`ele math´ematique, et est tr`es complexe `a simuler. Cependant, la variance des popularit´es est n´egligeable par rapport au temps de remplissage d’un cache. On peut consid´erer que les mod`eles sont applicables sur un intervalle de temps o`u les popularit´es et les catalogues seront approximativement fixes. Afin d’appliquer ce mod`ele math´ematique, il faut aussi que les requˆetes soient ind´ependantes. Ceci est vrai si des demandes arrivent d’un grand nombre d’utilisateurs agissant de fa¸con ind´ependante. Ces conditions s’appliquent pour un premier niveau de cache. Mais pour les niveaux sup´erieurs, la corr´elation des demandes invalide le mod`ele IRM. Cependant, selon Jenekovic et Kang [35], la corr´elation des demandes qui d´ebordent du premier niveau d’un simple r´eseau de caches `a deux niveaux, a un faible effet sur la probabilit´e de hit observ´ee. Nous avons d’ailleurs v´erifi´e par simulation l’effet de la corr´elation des demandes pour un r´eseau de caches en arbre. Pour conclure, les mod`eles math´ematiques bas´es sur l’IRM peuvent ˆetre appliqu´es pour les r´eseaux CCN, car la popularit´e des objets varient d’une mani`ere faible par rapport `a la vitesse de remplissage des caches et l’ind´ependance est respect´ee.CHAPITRE 8. MESURE DU TRAFIC ET PERFORMANCES DES CACHES 55 8.2.2 Les mod`eles analytiques Une politique de remplacement LFU (least frequently used) reste la politique id´eale ; mais, il est impossible de mettre en place cet id´eal car la popularit´e des objets est en g´en´eral inconnue. Van Jacobson propose un ordonnancement LRU (least recently used) dans tous les caches mˆeme si plusieurs travaux remettent en question les performances r´eseau avec une utilisation exclusive de LRU. Les ´etudes de performance des r´eseaux CCN n´ecessitent l’utilisation de mod`eles math´ematiques afin de confirmer et de g´en´eraliser les observations tir´ees des simulations et exp´erimentations. Notre objectif, qui est d’´evaluer la performance pour les tr`es grandes populations (jusqu’`a 1011 pages web, par exemple) et leur m´elange, n’est pas envisageable par simulation. Les mod`eles exacts sont tr`es complexes, mˆeme dans le cas basique d’un seul cache. La complexit´e de ces mod`eles croit d’une fa¸con exponentielle avec la taille des caches et le nombre d’objets. Il est donc plus int´eressant de cr´eer des mod`eles simplifi´es bas´es sur des approximations. La majorit´e des mod`eles ont ´et´e con¸cus pour une politique de remplacement LRU avec le mod`ele dit IRM (Independent Reference Model). Quelques travaux r´ecents ont trait´e cette probl´ematique. En effet, G. Carofiglio et al. [36] proposent un mod`ele g´en´eralis´e dans le cas d’un r´eseau de caches (architecture en arbre) ; ce mod`ele se limite aux cas d’arriv´ees suivant un processus de Poisson et une loi de popularit´e de type Zipf avec α > 1. Ce mod`ele s’applique `a la mise en cache par paquet (comme CCN) et prend en compte la d´ependance entre les paquets data d’un mˆeme objet. Un autre mod`ele pour les r´eseaux de caches a ´et´e propos´e par E.Rosensweig et al. [37] ; c’est un mod`ele adapt´e `a toute architecture. Cependant, la complexit´e du calcul du taux de hit, dˆu `a Dan et Towsley [38], limite cette approche `a des r´eseaux et des populations de taille relativement faible. 8.2.3 La formule de Che Nous pensons qu’une mise en cache par objet est plus simple `a d´eployer et `a utiliser qu’une mise en cache par paquet. La proposition de Che et al. [39] est particuli`erement int´eressante. Hormis sa facilit´e d’utilisation par rapport aux autres mod`eles, sa grande pr´ecision a ´et´e d´emontr´ee dans plusieurs cas. On consid`ere un cache de taille C, des objets appartenant `a un catalogue de taille M arrivent au cache suivant une loi de popularit´e pop(n) proportionnelle `a q(n). Sous un syst`eme conforme au mod`ele IRM, la probabilit´e de hit h(n) d’un objet n selon l’approximation de Che est estim´ee `a : h(n) = 1 − e −q(n)tc , (8.1) o`u tc est la solution de l’´equation : C = X n (1 − e −q(n)tc ). (8.2)56 8.2. LE TAUX DE HIT D’UN CACHE LRU Cette approximation est centrale pour le reste du travail. Voici quelques ´el´ements expliquant sa pr´ecision et sa validit´e comme mod`ele math´ematique. On note Tc(n) le temps o`u exactement C objets diff´erents de n ont ´et´e demand´es. On suppose une premi`ere demande de l’objet n faite `a l’instant 0, la prochaine requˆete pour l’objet n a lieu `a τn, cette demande est un hit si τn < Tc(n). La probabilit´e de hit de l’objet n peut ˆetre exprim´ee par : h(n) = P(τn < Tc(n)). (8.3) Che et al. ont mesur´e par simulation Tc(n) et ont observ´e qu’il est presque d´eterministe et montre une tr`es faible variation en fonction du rang mˆeme pour des catalogues petits (catalogue de 10 000 objets). Cette variable est presque ind´ependante de l’objet n et est caract´eristique au catalogue On pose alors E(Tc(n)) = tc que Che et al consid`erent comme le “temps caract´eristique” du cache. Puisque les arriv´ees de requˆetes suivent un processus de Poisson, le temps inter-arriv´ee τn suit une loi exponentielle de param`etre q(n). On a donc la probabilit´e de hit h(n) de l’objet n, en r´e´ecrivant (8.3 : h(n) = P(τn < tc) = 1 − exp(−q(n)tc) . Dans l’intervalle [0,tc], nous avons exactement C arriv´ees sans compter l’objet n. Donc, `a cet instant pr´ecis, parmi les M objets du catalogue, C objets exactement sont arriv´es au cache `a l’instant tc, sans compter l’objet n. Ceci peut ˆetre exprim´e par : X M i=1,i6=n P(τi < tc) = C o`u τi est le temps s´eparant le d´ebut de l’observation t = 0 du temps d’arriv´ee de la demande de l’objet i au cache donc exponentielle de paramˆetre q(i). Cette ´equation permet de calculer le temps caract´eristique des caches tc. Mais pour plus de facilit´e, l’´equation devient : PM i=1 P(τi < tc) = C. Ceci est valable si la popularit´e individuelle de l’objet est relativement petite par rapport `a la somme des popularit´es. En utilisant le fait que τi est de loi exponentielle de param`etre q(i), l’´equation devient l’´equation (8.2), C = PM i=1(1 − e −q(i)tc ). L’approximation n’est pas seulement pr´ecise dans le cas, envisag´e par Che et al, d’un grand cache et d’une population importante, mais ´egalement pour des syst`emes tr`es petits. Nous avons v´erifi´e la validit´e de l’approximation par simulation, pour un seul cache de taille 104 et une loi Zipf(0.8) ou un cache de taille 16 et une loi g´eom´etrique Geo(0.5). La figure 8.2 montre la pr´ecision de l’approximation et sa validit´e mˆeme dans le cas d’un petit cache. Pour calculer le h(n), il faut d’abord trouver le tc qui est le z´ero de l’´equation (8.2). Pour trouver le z´ero de cette ´equation on utilise la m´ethode de Newton : On peut trouver une valeur proche du z´ero d’une fonction f(x) en calculant successivementCHAPITRE 8. MESURE DU TRAFIC ET PERFORMANCES DES CACHES 57 0 0.2 0.4 0.6 0.8 1 1 100 10000 hit rate cache size (objects) 0 0.2 0.4 0.6 0.8 1 1 4 16 cache size (objects) Figure 8.2 – Taux de Hit en fonction de la taille du cache en utilisant l’approximation de Che : `a gauche, N = 104 , popularit´e de Zipf(.8) , rangs 1, 10, 100, 1000 ; `a droite, N = 16, popularit´e geo(.5), rangs 1, 2, 4, 8. une suite de valeurs xi jusqu’`a l’obtention d’une approximation satisfaisante. xi+1 est calcul´e `a partir de la valeur de xi : xi+1 = xi − f(xi) f ′(xi) . (8.4) Le x0 est choisi arbitrairement et on calcule x1 en utilisant la formule 8.4. On recalcule f(x1) et si f(x1) est suffisamment proche de z´ero, x1 est alors le z´ero de f(x). Sinon on calcule x2,... Nous constatons que la convergence est extrˆemement rapide. 8.3 Autres politiques de remplacement 8.3.1 Le cache Random 8.3.1.1 Relation entre taux de hit et temps moyen de s´ejour On consid`ere un cache de taille C utilisant une politique de remplacement Random. Dans cette politique, lorsqu’il faut lib´erer de la place pour cacher un nouveau contenu, le contenu `a ´eliminer est choisi au hasard. La taille du catalogue est M. On note Ts(n) le temps de s´ejour de l’objet n. On commence nos observations sur des simulations pour un catalogue de taille petite (100 objets), et un cache de 50 objets. Nous ´etudions le cas des objets arrivant suivant une loi Zipf(0.6) et Zipf(1.2). Les requˆetes arrivent avec un taux de 100 requˆetes/s. On lance la simulation pour 1 000, 10 000 et 100 000 it´erations. On trace dans ces trois cas la moyenne du temps de s´ejour Ts(n) en fonction de n (voir figure 8.3). On remarque que, plus le nombre d’it´erations augmente, plus la moyenne du temps de s´ejour tend vers une valeur pr´ecise. Cette valeur est la mˆeme quelque soit le rang. En se basant sur cette observation, on consid`ere que la valeur du temps de s´ejour est ind´ependante de n (adoptant la mˆeme approximation que Che). Le Ts est fixe quand58 8.3. AUTRES POLITIQUES DE REMPLACEMENT 0 1000 2000 3000 4000 5000 6000 0 10 20 30 40 50 60 70 80 90 100 Ts rang 1000 iteration 10000 iterations 100000 iterations (a) Zipf(0.6) 0 2000 4000 6000 8000 10000 12000 0 10 20 30 40 50 60 70 80 90 100 Ts rang 1000 iteration 10000 iterations 100000 iterations (b) Zipf(1.2) Figure 8.3 – Temps de s´ejour en fonction du rang pour un cache Random le temps de simulation devient grand, car tout objet du cache a la mˆeme probabilit´e que les autres objets d’ˆetre ´elimin´e. Son ´elimination d´epend surtout du taux de miss du cache qui devient fixe et stable apr`es un certain temps de simulation. Nous appliquons la formule de Little. La probabilit´e de hit d’un objet i est exprim´ee par : h(n) = λ(n)Ts(n) o`u Ts(n) est la moyenne du temps de s´ejour de l’objet n. Ts(n) ´etant fixe et ind´ependant de n on pose Ts(j) = Ts ∀j. Le taux d’entr´ee dans le cache est λ(n) = (1 − h(n))pop(n) o`u pop(n) est la popularit´e normalis´ee de l’objet n. On obtient alors : h(n) = (1 − h(n))pop(n)Ts Finalement h(n) peut ˆetre exprim´e par : h(n) = pop(n)Ts 1 + pop(n)Ts . (8.5) La moyenne du temps de s´ejour peut ˆetre calcul´ee en utilisant l’´equation suivante (comme dans le cas d’un cache LRU) : X M i=1 h(i) = X M i=1 pop(i)Ts 1 + pop(i)Ts = C. (8.6) L’´equation (8.6) peut ˆetre r´esolue avec la m´ethode de Newton. Nous utilisons la valeur Ts retrouv´ee dans l’´equation (8.5) pour d´eterminer les h(n). Les valeurs h(n) trouv´e par calcul et h(n) trouv´e par simulation sont compar´ees dans la Figure 8.4 pour diff´erentes valeurs de taille de cache et pour les deux lois, Zipf(0.6) et Zipf(1.2) et pour diff´erentes tailles de cache : c = C/M = 0.3, 0.5, 0.7.CHAPITRE 8. MESURE DU TRAFIC ET PERFORMANCES DES CACHES 59 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 10 20 30 40 50 60 70 80 90 100 hit rang simulation c=0.5 simulation c=0.3 simulation c=0.7 calcul c=0.5 calcul c=0.3 calcul c=0.7 (a) Zipf(0.6) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 10 20 30 40 50 60 70 80 90 100 hit rang simulation c=0.5 simulation c=0.3 simulation c=0.7 calcul c=0.5 calcul c=0.3 calcul c=0.7 (b) Zipf(1.2) Figure 8.4 – Taux de hit en fonction du rang pour un cache Random 8.3.1.2 Approximation de Fricker Dans Fricker, Robert and Roberts [40], l’approximation suivante est donn´ee : Ts ≃ P τC j6=n q(j) , (8.7) o`u τC est une constante. On va discuter de la validit´e de cette approximation. Le temps de s´ejour d’un objet n peut ˆetre exprim´e, comme repr´esent´e dans la figure 8.5, par une somme de temps tj o`u tj est la dur´ee entre deux requˆetes successives. Arrivee de l’objet n Temps de sejour de l’objet n t1 t3 ti t2 Arrivee de l’objet n sortie de l’objet n Figure 8.5 – Repr´esentation du temps de s´ejour A chaque arriv´ee au cache, l’objet n peut ˆetre retir´e du cache avec une probabilit´e de 1/C si l’objet arriv´e n’appartient pas d´ej`a au cache. On suppose que toute nouvelle arriv´ee au cache implique une mise `a jour mˆeme si cette arriv´ee est un hit. Soit n fix´e. Calculons le temps de s´ejour Ts(n). Tout objet i arrive au cache suivant un processus de Poisson de taux q(i). Les temps inter-arriv´ees Zi sont des variables al´eatoires ind´ependantes de loi exponentielle de param`etre q(i). La prochaine requˆete susceptible de retirer l’objet n du cache se passe `a un temps Xn1 Xn1 = inf i6=n (Zi). (8.8)60 8.3. AUTRES POLITIQUES DE REMPLACEMENT Donc Xn1 suit une loi exponentielle de param`etre P i6=n q(i). Comme la politique de remplacement est Random, on en d´eduit facilement que Ts(n) = X Y j=1 Xnj (8.9) o`u Xnj est de loi exponentielle de param`etre P i6=n q(i), et Y est de loi g´eom´etrique de param`etre 1 − 1/C sur N∗ , ind´ependant de (Xnj )j≥1. D’o`u, en passant `a l’esp´erance dans l’´equation (8.9), Ts(n) = X +∞ i=1 P(Y = i) X i k=1 E(Xnk). (8.10) Or, E(Xnk) = 1/ X j6=n q(j), et comme Y suit une loi g´eom´etrique de param`etre 1 − 1/C sur N∗ , il vient que E(Y ) = C. En effet, une v.a. de loi g´eom´etrique de param`etre a sur N∗ est de moyenne 1/(1−a). En reportant dans l’´equation (8.10 le temps de s´ejour moyen peut donc ˆetre exprim´e par : Ts(n) = E(Y ) P j6=n q(j) = C P j6=n q(j) . Revenons `a l’approximation (8.7). L’id´ee sous-jacente dans [40] est qu’on peut approximer le temps de s´ejour de n en supposant que toute arriv´ee mˆeme un hit implique une mise `a jour. Cela revient `a supposer que tous les objets autres que n sont hors du cache. Intuitivement, cela est justifi´e si 1) le cache est petit devant la taille du catalogue, 2) les objets les plus populaires sont hors du cache car ce sont eux qui contribuent le plus `a P j6=n q(j). Cette deuxi`eme condition n’est pas du tout naturelle. On va voir, en tra¸cant les diff´erentes approximations du taux de hit, que cela est vrai pour une loi de popularit´e de Zipf de param`etre α < 1 o`u les objets ont des popularit´es plus voisines que pour α > 1 o`u les objets les plus populaires sont dans le cache avec forte probabilit´e. 8.3.1.3 Approximation de Gallo Gallo et al [41] ont propos´e une approximation pour le taux de hit pour une valeur de α > 1. La probabilit´e de miss d’un objet i est approxim´ee quand C est grand par :CHAPITRE 8. MESURE DU TRAFIC ET PERFORMANCES DES CACHES 61 M iss(i) = ραi α Cα + ραi α o`u ρα =  π α sin( π α ) α . Cela revient `a hitg(i) = 1 − M iss(i) ≈ 1 ρα(i/C) α + 1 . Donc tout calcul fait, le temps de s´ejour devrait ˆetre proportionnel `a  C ∗ sin( π α ) π α α pour α > 1. On compare l’approximation du taux de hit avec l’approximation de Gallo et al [41] hitg pour des valeurs de α > 1 pour un catalogue de M = 20 000. Voir Figure 8.6. On remarque que les deux approximations sont proches pour des valeurs de caches mˆemes petites (C ≥ 20). 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1 10 100 1000 10000 100000 hit rang hitG hitF α = 1.2 α = 1.5 α = 1.7 (a) C=20 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1 10 100 1000 10000 100000 hit rang hitG hitF α = 1.2 α = 1.5 α = 1.7 (b) C=100 Figure 8.6 – Comparaison des taux de hit avec l’approximation de Fricker et Gallo 8.3.2 Le cache LFU Le cache LFU ne stocke que les objets les plus populaires. Donc, la probabilit´e de hit LFU peut ˆetre calcul´ee, pour un catalogue de taille M et pour un cache LFU de taille  C objets : hit(i) = 1; 0 ≤ i ≤ C, hit(i) = 0;i > C.62 8.3. AUTRES POLITIQUES DE REMPLACEMENT La probabilit´e de hit globale d’un cache LFU peut donc ˆetre exprim´ee par : hitg = X C i=1 pop(i) o`u pop(i) est la popularit´e normalis´ee de l’objet i. Pour une loi de Zipf, la popularit´e normalis´ee de l’objet i peut ˆetre exprim´ee par : pop(i) = 1/iα PM k=1 1/kα Donc la probabilit´e globale de hit pour un cache LFU peut ˆetre exprim´ee par : hitg = PC i=1 1/iα PM i=1 1/iα . Soit i un entier et t un r´eel tel que i ≤ t ≤ i + 1. Pour α > 0, on a : 1 (i + 1)α < 1 t α < 1 i α. Donc, 1 (i + 1)α < Z i+1 i 1 t α dt < 1 i α , d’o`u (M + 1)1−α − 1 1 − α < X M i=1 1 i α < M1−α 1 − α et (C + 1)1−α − 1 1 − α < X C i=1 1 i α < C 1−α 1 − α . Puisque le nombre d’objets est grand, nous consid´erons M + 1 ≈ M. Nous utilisons des caches d’au moins quelques centaines d’objets donc, C + 1 ≈ C nous concluons que : X M i=1 1 i α ≈ M1−α 1 − α et X C i=1 1 i α ≈ C 1−α 1 − α . (8.11) La probabilit´e de hit global pour un cache LFU peut ˆetre exprim´ee par : hitg =  C M 1−α ,CHAPITRE 8. MESURE DU TRAFIC ET PERFORMANCES DES CACHES 63 8.3.3 Comparaison des politiques de remplacement On compare les deux politiques de remplacement LRU et Random en fonction du rang, pour des valeurs de α = 0.6 et α = 1.2, et pour un cache de 50% la taille du catalogue. On fixe le catalogue M = 106 objets. Il est clair que la politique LRU est plus performante que Random. On remarque aussi que l’´ecart entre LRU et Random est r´eduit pour un α = 1.2, ce qui est confirm´e par l’´etude de Gallo et al. [41]. Cet ´ecart se r´eduit de plus en plus quand α grandit. Mais pour une comparaison effective, il est imp´eratif de comparer le taux de hit global des caches Random, LRU et LFU. 0 0.2 0.4 0.6 0.8 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 hitg c LRU LFU Random (a) Zipf(0.6) 0 0.2 0.4 0.6 0.8 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 hitg c LRU LFU Random (b) Zipf(1.2) Figure 8.7 – Taux de hit global en fonctions des tailles de cache normalis´e On remarque que la diff´erence des performances des caches est plus grande et visible dans le cas d’un Zipf(0.6). Cette diff´erence diminue pour un α = 1.2, non seulement entre LRU et Random, mais aussi LFU. Les caches deviennent aussi plus efficaces. Or, selon notre ´etude bibliographique et les statistiques tir´ees de certains sites fournisseurs de donn´ees, on sait que le α est g´en´eralement < 1. La politique LFU dans ce cas s’´eloigne largement de LRU et Random. Mais un petit ´ecart est `a noter entre les deux politiques de remplacement LRU et Random.Chapitre 9 Les performances des hierarchies de caches ´ 9.1 Caract´eristiques d’une hi´erarchie de caches Pour ´evaluer les performances des hi´erarchies de caches, il est important de pr´eciser ses caract´eristiques. Une hi´erarchie de caches est diff´erente d’une autre si un ou plusieurs de ces caract´eristiques sont diff´erentes. 9.1.1 Politique de remplacement La fonction d’un algorithme de remplacement est de choisir un contenu `a remplacer dans un cache quand le cache est plein, et qu’un nouveau contenu doit ˆetre enregistr´e. Un algorithme optimal ´elimine le contenu qui serait le moins utilis´e. Pour ceci, l’´evolution des popularit´es des objets devrait ˆetre connue. Puisque la variation des popularit´es des objets se produit sur un temps beaucoup plus grand que le temps n´ecessaire pour remplir un cache, les pr´edictions futures peuvent se baser sur le comportement pass´e ; ce qu’on appelle principe de localit´e. On trouve diff´erentes politiques de remplacement – LRU (Least Recently Used) : cet algorithme remplace le contenu utilis´e le moins r´ecemment. Il se base sur le principe de localit´e temporelle. Un objet tr`es populaire sera demand´e plus rapidement qu’un objet moins populaire. L’impl´ementation de cette politique est simple. Il suffit d’attribuer `a chaque objet du catalogue un hash, le hash correspond `a une case permettant de renseigner l’adresse de l’objet recherch´e (si l’objet n’existe pas, l’adresse correspond `a NULL). Des pointeurs permettent de relier les objets et de sauvegarder l’ordre des objets. 64CHAPITRE 9. LES PERFORMANCES DES HIERARCHIES DE CACHES ´ 65 – LFU (Least Frequently Used) : cet algorithme remplace le contenu le moins fr´equemment utilis´e. Il est optimal pour des popularit´es fixes, mais les variations des popularit´es des objets le rend moins efficace. Si les variations des popularit´es sont lentes, LFU est un bon algorithme de remplacement. De plus, il est facile `a impl´ementer, il suffit d’attribuer `a chaque contenu le nombre de fois o`u il a ´et´e demand´e. Par contre, son impl´ementation mat´erielle serait coˆteuse, car un compteur devrait ˆetre attribu´e `a chaque contenu. – Random : Cet algorithme remplace un contenu au hasard, il ne demande aucun enregistrement d’information, mais il est moins performant que LRU. – MRU (Most recently used) : Cette politique ´elimine le contenu correspondant `a la donn´ee la plus r´ecemment demand´ee. Cette politique s’av`ere efficace comme politique de deuxi`eme niveau dans le cas d’une hi´erarchie de caches. Gallo et al [41] ont d´emontr´e, par simulation et par calcul, que la diff´erence entre les performances observ´ees entre un cache LRU et Random ne sont pas importantes, et surtout pour des popularit´es d’objets suivant une loi de Zipf avec α > 1 (α = 1.7). Nous avons simul´e des caches LRU et Random avec une loi Zipf (0.6), le constat reste le mˆeme. La diff´erence constat´ee entre probabilit´e de hit obtenue avec LRU et celle obtenue avec Random est faible. Mais cette diff´erence atteint 16% dans certains cas. Cette diff´erence, mˆeme n´egligeable, peut r´eduire l’utilisation de la bande passante d’une mani`ere importante. 9.1.2 Les politiques de meta-caching – LCE(Leave Copy Everywhere ) : Les objets sont copi´es `a chaque cache travers´e. – Fix [42] : Cette politique consiste `a mettre dans le cache un objet selon une probabilit´e fixe. – LCD(Leave Copy Down) [42] : Copier uniquement dans le cache suivant. Selon Laoutaris, cet algorithme offre les meilleurs r´esultats dans tous les cas ´etudi´es, et donc parait le plus prometteur de tous. – ProbCache [43] : Un objet est copi´e dans un cache suivant une probabilit´e calcul´ee en se basant sur le nombre de sauts travers´es. Psaras et al. pr´esentent des r´esultats remettant en cause LCD comme meilleur algorithme de metacaching, mais la diff´erence des performances reste petite entre les deux algorithmes. D’autre part, Rossini el al. [44] constatent que, inversement, LCD offre de meilleurs r´esultats. – WAVE [45] : c’est un algorithme de meta-caching orient´e chunk. Il est similaire `a LCD, sauf que des variables sont utilis´ees pour contrˆoler le stockage des donn´ees selon leur popularit´e. Les objets peu populaires ont peu de chance de traverser tous les caches menant au demandeur. Cet algorithme semble plus complexe que LCD, par opposition `a LCD qui stocke naturellement les objets les plus populaires tout pr`es des utilisateurs.66 9.1. CARACTERISTIQUES D’UNE HI ´ ERARCHIE DE CACHES ´ – Btw [46] : Cet algorithme se base sur le stockage des donn´ees uniquement dans les noeuds pertinents du r´eseau, c’est-`a-dire ayant la probabilit´e la plus ´elev´ee d’aboutir `a un hit pour les objets demand´es. Plusieurs ´etudes mettent en valeur la politique LCD `a cause de son efficacit´e constat´ee par les ´etudes comparatives, mais aussi par sa simplicit´e par rapport aux autres politiques. L’´etude r´ecente de Rossini et al. [44] confirme l’efficacit´e de LCD par rapport aux autres politiques propos´ees. Dans cette perspective, Laoutaris et al. ont pr´esent´e une ´etude portant sur une hi´erarchie LCD [47] ; cette ´etude commence par une comparaison entre plusieurs politiques de meta-caching. La politique LCD semble ˆetre la meilleure avec MCD (Move copy down). Cette ´etude pr´esente aussi un mod`ele analytique pour calculer num´eriquement le taux de hit pour une hi´erarchie LCD `a deux niveaux. La probabilit´e de hit au premier niveau d’un objet pour une hi´erarchie de caches LCD est estim´ee `a : h1(i) = exp(λi ∗ τ1 − 1)/exp(λiτ1) + exp(λi ∗ τ2) exp(λi ∗ τ2) − 1 o`u τ1 et τ2 repr´esentent les temps caract´eristiques des caches au premier et au deuxi`eme niveau ; la probabilit´e de hit au premier niveau d´epend de la taille du cache au deuxi`eme niveau. La probabilit´e de hit au deuxi`eme niveau vient directement de la formule de Che pour LCE, en supposant les arriv´ees au deuxi`eme niveau ind´ependantes. h2(i) = 1 − exp(−λi ∗ M iss1(i) ∗ τ2) o`u M iss1(i) est le taux de miss de l’objet i au premier niveau de caches. Les temps caract´eristiques sont calcul´es en uti P lisant la formule : i h(i) = C o`u C est la taille du cache. Cette ´equation peut ˆetre utilis´ee au premier niveau comme au deuxi`eme niveau de cache. Nous obtenons alors deux ´equations `a deux inconnues, τ1 et τ2. On r´esout ces ´equations en utilisant la m´ethode de Newton appliqu´ee aux ´equations `a deux inconnues. Pour ce faire, on est amen´e `a calculer l’inverse de la matrice jacobienne pour trouver la solution des ´equations. Nous comparons le mod`ele math´ematique avec les simulations ; nous observons les r´esultats dans le graphique 9.1 : Nous avons effectu´e des simulations comparant la politique LCE et LCD jug´ee la meilleure de toutes les politiques de m´etaching. Nous pr´esentons dans les graphes 9.2 les r´esultats des simulations pour une hi´erarchie de caches `a deux niveaux, avec 10 serveurs au premier niveau, attach´es `a un serveur au deuxi`eme niveau. Les r´esultats montrent un avantage de LCD par rapport `a LCE. Cet avantage diminue au fur et `a mesure que la taille des caches augmente, r´eduisant ainsi l’utilit´e de LCD. LCD permet de r´eduire le nombre de copies inutiles dans une hi´erarchie. La politique MCD, en plus de copier les objets dans le cache inf´erieur, efface les objets dans les caches sup´erieurs, mais l’efficacit´e de cet algorithme reste presque identique `a LCD, surtout dans le cas d’une hi´erarchie `a deux niveaux. Ainsi, LCD paraˆıt la politique la plus simple et la plus rentable. Nous comparons aussi la probabilit´e de hit globale des hi´erarchies afin d’´evaluer l’efficacit´e globale des algorithmes :CHAPITRE 9. LES PERFORMANCES DES HIERARCHIES DE CACHES ´ 67 0 0.2 0.4 0.6 0.8 1 0 10 20 30 40 50 60 70 80 90 100 hit1 : taux de hit au premier niveau rang c1 = c2 = 0.1 c1 = c2 = 0.3 simulation calcul (a) Zipf(0.6) 0 0.2 0.4 0.6 0.8 1 0 10 20 30 40 50 60 70 80 90 100 hit1 : taux de hit au premier niveau rang c1 = c2 = 0.1 c1 = c2 = 0.3 simulation calcul (b) Zipf(0.9) Figure 9.1 – Taux de hit calcul´e par simulation et mod`ele analytique de Che 0 0.2 0.4 0.6 0.8 1 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 hit1 C2 c1 = 0.1 c1 = 0.3 c1 = 0.5 LCE LCD (a) Zipf(0.6) 0 0.2 0.4 0.6 0.8 1 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 hit1 C2 c1 = 0.1 c1 = 0.3 c1 = 0.5 LCE LCD (b) Zipf(0.9) Figure 9.2 – Taux de hit au premier niveau pour une hi´erarchie LCE et LCD 9.1.3 Les politiques de forwarding – SPR (Shortest Path Routing) : Cette politique consiste `a chercher l’objet en suivant le chemin le plus court vers le serveur d’origine. – Flooding [48] : Envoyer la demande `a tous les noeuds et suivre le chemin trouv´e. Cette technique est lourde `a mettre en place et est tr`es coˆuteuse. – INFORM [49] : Chaque noeud sauvegarde les valeurs correspondant au temps de latence n´ecessaire pour arriver `a une destination en passant par chaque noeud voisin. Le noeud voisin, menant `a destination et offrant le moins de temps pour y arriver, est s´electionn´e pour r´ecup´erer ou envoyer les prochains paquets. – CATT [50] : Le choix du prochain noeud `a suivre pour arriver `a la donn´ee est effectu´e suivant le calcul du param`etre nomm´e potential value. Ce param`etre68 9.1. CARACTERISTIQUES D’UNE HI ´ ERARCHIE DE CACHES ´ 0 0.2 0.4 0.6 0.8 1 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 hitg C2 LCE LCD (a) Zipf(0.6) 0 0.2 0.4 0.6 0.8 1 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 hitg C2 LCE LCD (b) Zipf(0.9) Figure 9.3 – Taux de hit global pour une hi´erarchie LCE et LCD `a deux niveaux pour les cas de bas en haut c1 = 0.1, c1 = 0.3 et c1 = 0.5 peut ˆetre ´evalu´e selon le nombre de sauts, la situation g´eographique, ou la qualit´e de la bande passante s´eparant le noeud voisin des noeuds contenant les donn´ees. – NDN [51] : Cette strat´egie est propos´ee actuellement pour les r´eseaux orient´es contenus. Elle utilise des tables FIB, PIT et CS ; mais les FIB doivent ˆetre remplies suivant une autre m´ethode. Cet algorithme suppose des tables FIB compl`etes. – NRR(Nearest Routing Replica) : C’est une strat´egie id´ealiste qui consiste `a trouver la copie la plus proche du cache. Cette politique est lourde `a mettre en place car il faut maintenir des tables de routage orient´ees contenu tr`es dynamiques. La majorit´e des algorithmes propos´es r´ecemment se basent sur le calcul de param`etres de performances menant au cache contenant la donn´ee. Tout ceci n´ecessite des m´ecanismes de signalisation et d’´echange de messages de contrˆole afin d’identifier p´eriodiquement les chemins menant `a tous les objets. Cette op´eration est non seulement coˆuteuse, mais aussi pose des probl`emes de passage `a l’´echelle. SPR reste jusqu’`a pr´esent l’algorithme le plus utilis´e, et le plus simple ne pr´esentant aucun probl`eme de passage `a l’´echelle. Si la donn´ee est pertinente et populaire, elle devrait se trouver dans l’un des caches du plus court chemin menant au serveur d’origine. Ce dernier, est statique et invariable, sauf en cas de panne. L’utilisation des chemins secondaires est conditionn´ee par des probl`emes de congestion dans le r´eseau. La politique NRR semble ˆetre la politique la plus efficace offrant les meilleurs taux de hit. Nous comparons la politique SPF avec NRR afin d’´evaluer la diff´erence entre la politique la plus performante, et la politique la plus utilis´ee pour le routage. Les r´esultats sont pr´esent´es dans le graphique 9.4 :CHAPITRE 9. LES PERFORMANCES DES HIERARCHIES DE CACHES ´ 69 0 0.2 0.4 0.6 0.8 1 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 hit1 c1 SPF NRR (a) Zipf(0.6) 0 0.2 0.4 0.6 0.8 1 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 hit1 c1 SPF NRR (b) Zipf(0.9) Figure 9.4 – Taux de hit au premier niveau pour les politiques de forwarding NRR et SPF 9.2 Performances des hi´erarchies de caches Dans cette partie, nous ´etudions le cas d’une hi´erarchie LRU, avec une politique de forwarding se basant sur la recherche dans le serveur d’origine le plus proche. Nous nous limitons au cas de deux niveaux de cache ; Sem Borst [52] affirme qu’il n’y a aucune utilit´e `a utiliser un cache coop´eratif de plus de deux niveaux. 9.2.1 G´en´eralisation de la formule de Che Il a ´et´e mentionn´e dans la section pr´ec´edente que la corr´elation des demandes `a un deuxi`eme niveau de cache n’a qu’une petite influence sur les probabilit´es de hit. Nous d´emontrons, par simulation, que la formule de Che reste valide pour un deuxi`eme niveau de cache `a condition d’avoir suffisamment de caches au premier niveau att´enuant ainsi la corr´elation entre les caches. On consid`ere un catalogue de M objets ; les demandes arrivent au premier niveau suivant les lois de popularit´e Zipf(α). On mesure la probabilit´e de hit global de l’architecture `a deux niveaux, constitu´ee de n caches au premier niveau et d’un seul cache au deuxi`eme niveau. Les caches au premier niveau ont la mˆeme taille C1. On pose c1 = C1/M, la taille normalis´ee des caches au premier niveau. T2 est la taille du cache au deuxi`eme niveau et c2 = C2/M sa taille normalis´ee. On utilise la formule de Che au deuxi`eme niveau de caches, en consid´erant la popularit´e pop2(i) de l’objet i `a l’entr´ee du cache au deuxi`eme niveau : pop2(i) = pmiss1(i) ∗ pop1(i) o`u pmiss1(i) est la probabilit´e de miss de l’objet i au premier niveau.70 9.2. PERFORMANCES DES HIERARCHIES DE CACHES ´ La formule de Che au premier niveau s’applique normalement : pmiss1(i) = exp(−pop1(i) ∗ tc1 ) o`u tc1 est la solution de l’´equation C1 = X n (1 − e −pop1(i)tc1 ). La forumule de Che appliqu´ee au deuxi`eme niveau donne : pmiss2(i) = exp(−pop2(i) ∗ tc2 ) o`u tc2 est la solution de l’´equation C2 = X n (1 − e −pop2(i)tc2 ). La probabilit´e de hit globale hitg(i) de l’objet i est calcul´ee de : hitg(i) = hit1(i) + hit2(i) − hit1(i) ∗ hit2(i) et la probabilit´e de hit globale de toute l’architecture est : hitg = Xpop1(i) ∗ hitg(i). Comme on peut le remarquer, le n n’intervient pas dans le calcul du hitg, Che propose une formule plus complexe que l’´equation initiale incluant le n. La formule ´etant dif- ficile `a exploiter et nos calculs ne semblant pas donner des r´esultats plus satisfaisants, nous souhaitons savoir si la forumule de Che pour un cache est valable aussi pour plusieurs niveaux de cache. On compare les r´esultats des calculs avec les r´esultats des simulations dans les cas suivants : On remarque que les r´esultats des simulations sont proches des r´esultats de calcul pour n = 5, l’approximation de Che devient de plus en plus exacte que n augmente. Nous avons v´erifi´e que l’approximation est tr`es pr´ecise pour n ≥ 10. On compare les taux de hit globaux `a chaque niveau de cache pour une hi´erarchie de caches `a 5 niveaux obtenus par simulation hitgs et par calcul hitgc , les tableaux ci dessous repr´esente le taux d’erreur Te pour des valeurs de n de 2 et 5 (chaque noeud `a n fils). Le taux d’erreur est calcul´e ainsi : Te = hitgs − hitgc hitgs On effectue le calcul et la simulation dans le cas de caches de mˆeme taille normalis´ee c(cas CCN),on pose Tg la taille globale Tg = 5∗c ; les conclusions tir´ees sont identiques, mˆeme si les tailles de cache sont diff´erentes d’un niveau `a un autre. Il est clair queCHAPITRE 9. LES PERFORMANCES DES HIERARCHIES DE CACHES ´ 71 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.2 0.4 0.6 0.8 1 hicg c2 c1 = 0.1 c1 = 0.3 c1 = 0.5 c1 = 0.7 c1 = 0.9 Simulation Calcul (a) n=2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.2 0.4 0.6 0.8 1 hicg c2 c1 = 0.1 c1 = 0.3 c1 = 0.5 c1 = 0.7 c1 = 0.9 Simulation Calcul (b) n=5 Figure 9.5 – Probabilit´es de hit global pour α = 0.6 pour un nombre de caches au premier niveau ´egal `a 2 (gauche) et 5 (droite) 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.2 0.4 0.6 0.8 1 hicg c2 c1 = 0.1 c1 = 0.3 c1 = 0.5 c1 = 0.7 c1 = 0.9 Simulation Calcul (a) n=2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.2 0.4 0.6 0.8 1 hicg c2 c1 = 0.1 c1 = 0.3 c1 = 0.5 c1 = 0.7 c1 = 0.9 Simulation Calcul (b) n=5 Figure 9.6 – Probabilit´es de hit global pour α = 0.8 la formule de Che reste une excellente approximation, mˆeme pour une hi´erarchie de caches, et `a tous les niveaux de caches. Chaque objet dans CCN est constitu´e d’un certain nombre de chunks, On peut appliquer l’approximation de Che au niveau des chunks. On consid`ere que la d´ependance entre chunks est n´egligeable. On consid`ere un catalogue de taille M objets, un cache de taille C ; chaque objet k est de taille Tk et constitu´e de Tk/s chunks, o`u s est la taille d’un chunk. La probabilit´e de hit du chunk oik de l’objet k est : h(oik) = 1 − exp(−pop(oik) ∗ tc)72 9.2. PERFORMANCES DES HIERARCHIES DE CACHES ´ level M = 104 M = 105 Tg = 20% level2 13% 17% level3 23% 25% level4 28% 29% level5 30% 32% Tg = 80% level2 14% 17% level3 23% 20% level4 25% 30% level5 28% 21% Table 9.1 – Taux d’erreur pour la formule de Che pour n = 2 level M = 103 M = 104 Tg = 20% level2 10% 6% level3 11% 13% level4 11% 9% level5 12% 10% Tg = 80% level2 1.3% 4% level3 3.5% 6.8% level4 5.8% 7.3% level5 6% 6.9% Table 9.2 – Taux d’erreur pour la formule de Che pour n = 5 o`u tc est la solution de l’´equation : C = X M k=1 T Xk/s i=1 (1 − exp(−pop(oik) ∗ tc). Les chunks appartenant au mˆeme objet ont la mˆeme popularit´e que l’objet : pop(oik) = pop(k). Donc tc est calcul´e avec l’´equation : C = X M k=1 (Tk/s) ∗ (1 − exp(−pop(k) ∗ tc). 9.2.2 Cas d’application : hi´erarchie de caches avec mix de flux Comme soulign´e pr´ec´edemment, les donn´ees Internet sont non homog`enes. Plusieurs cat´egories de donn´ees avec des lois de popularit´e et des tailles diff´erentes partagent les ressources r´eseaux. Nous nous limitons `a une hi´erarchie `a deux niveaux. On consid`ere un r´eseau constitu´e d’un premier niveau de caches (situ´es dans les routeurs d’acc`es)CHAPITRE 9. LES PERFORMANCES DES HIERARCHIES DE CACHES ´ 73 reli´es `a un grand cache de deuxi`eme niveau situ´e au coeur du r´eseau (voir la figure 9.7). Notons que le deuxi`eme niveau serait r´ealis´e en pratique par un r´eseau de caches dont les contenus seraient typiquement coordonn´es. L’´etude d’un tel r´eseau est l’objectif de nos travaux suivants. sources . . . . . layer 2 layer 1 users . Figure 9.7 – Hi´erarchie de caches `a deux niveaux On consid`ere que le nombre de routeurs d’acc`es au premier niveau de caches est large ; donc, les requˆetes arrivant au deuxi`eme niveau de cache peuvent ˆetre consid´er´ees comme ind´ependantes (i.e., l’IRM s’applique pour le deuxi`eme niveau). La popularit´e au deuxi`eme niveau de cache est ´egale `a q ′ (n) = q(n)(1 − h(n)) ; il suffit d’appliquer la formule de Che, en utilisant la nouvelle valeur de popularit´e, pour trouver la popularit´e de hit au deuxi`eme niveau h ′ (n). La figure 9.8 repr´esente la probabilit´e globale de hit, P n q(n)(h(n) + (1 − h(n)h ′ (n))/ P n q(n), en fonction des tailles de cache au premier et au deuxi`eme niveau. La loi de popularit´e est de Zipf et la figure montre l’impact de son param´etre α. 102 104 C1 102 104 C2 20% 40% 60% 80% 102 104 C1 102 104 20% 40% 60% 80% Figure 9.8 – Taux de hit(%) en fonction de la taille des caches dans les niveaux 1 et 2 : `a gauche, α = .8, N = 104 ; `a droite, α = 1.2. La mˆeme approche a ´et´e appliqu´ee dans le cas d’un mix de trafic, permettant ainsi de quantifier les tailles de cache aux deux niveaux pour une probabilit´e de hit cible.74 9.2. PERFORMANCES DES HIERARCHIES DE CACHES ´ 108 1012 1016 C1 108 1012 1016 C2 20% 40% 60% 80% 108 1012 1016 108 1012 1016 C2 20% 40% 60% 80% Figure 9.9 – Taux de hit(%) en fonction de la taille des caches dans les niveaux 1 et 2 : `a gauche trafic UGC, α = .8 ; `a droite, VoD α = 1.2, N = 104 . Les caches au premier niveau sont efficaces pour le trafic VoD voir figure 9.9. En effet, avec un cache `a 1012, la probabilit´e de hit du trafic VoD est de 80%. Avec un cache de mˆeme taille, on ne peut d´epasser 20% de probabilit´e de hit pour les autres types de trafic : UGC, fichiers partag´es et web. Il serait donc n´ecessaire de choisir des tailles de caches assez grandes. Les tailles de cache au premier niveau sont petites permettant ainsi leur insertion `a un routeur d’acc`es. Les VoD peuvent ainsi ˆetre stock´ees au premier niveau, contrairement aux autres types de donn´ees. Dans la table ci-dessous, nous ´evaluons la bande passante conserv´ee par une succession de deux caches ; le premier situ´e au premier niveau est de taille 1 TB , et le deuxi`eme situ´e au deuxi`eme niveau est de taille 100 TB. L’´evaluation est effectu´ee dans le cas d’un partage normal entre contenus, et dans le cas d’un premier niveau r´eserv´e au VoD. Les r´esultats pr´esent´es correspondent au trafic Mix de 2011 et 2015. On remarque qu’un stockage exclusif du VoD au premier niveau am´eliore la proZipf VoD(α) niveau1 R´eduction bande passante au niveau1 R´eduction bande passante au niveau1 et 2 2011 0.8 partag´e 17% 50% VoD 23% 58% 1.2 partag´e 24% 50% VoD 23% 58% 2015 0.8 partag´e 27% 59 % VoD 37% 61% 1.2 partag´e 36% 59% VoD 37% 61% Table 9.3 – R´eduction en bande passante pour C1=1TB et C2=100TB babilit´e du hit au premier niveau de cache ; ceci est plus significative pour une loi Zipf(0.8). Dans tous les cas, un stockage discriminatoire des VoD au premier niveauCHAPITRE 9. LES PERFORMANCES DES HIERARCHIES DE CACHES ´ 75 am´eliore le taux de hit global r´esultant des deux caches, que ce soit pour une loi Zipf(0.8) ou Zipf(1.2) ; la diff´erence devient moins importante pour le trafic futur en 2015.Chapitre 10 Conclusion Dans ce chapitre, nous avons ´evalu´e la nature, la quantit´e et la popularit´e des objets ´echang´es sur Internet, le trafic ´etant presque majoritairement du contenu distribu´e. Nous avons par la suite ´evalu´e les performances d’un cache LRU ; pour ce faire nous avons test´e la formule de Che. Cette derni`ere est facile `a utiliser num´eriquement, valable pour toute valeur de α de la loi de Zipf et pour plusieurs autres lois de popularit´e. Nous avons expliqu´e les raisons de son exactitude, en se basant sur la d´emonstration pr´esent´ee par Fricker et al. [40]. Nous avons aussi explor´e le cas d’un cache Random, et compar´e ses performances `a celles d’un cache LRU. Nous avons d´ecrit les caract´eristiques d’une hi´erarchie de caches, et compar´e les perfomances des politiques de m´etacaching et forwarding optimales avec des politiques d’usage. Nous avons constat´e `a travers un exemple en se basant sur des donn´ees repr´esentant l’´echange actuel sur Internet que pour des lois de popularit´e Zipf avec un param`etre α ¡1 il faut choisir des taille de cache tr`es grands pour r´eduire d’une mani`ere significative l’utilisation de la bande passante, ce qui est techniquement difficile `a mettre en place au niveau d’un routeur, ce qui nous m`ene `a penser qu’un d´eployment au niveau applicatif est plutot convenable. Dans la partie suivante nous comparons les couts des hierarchies distribu´es `a la CCN et des hierarchie centralis´ees `a la CDN qui nous paraissent techniquement plus convenables. 76Troisi`eme partie Coˆuts d’une hi´erarchie de caches 77Chapitre 11 Introduction 11.1 Probl´ematique Dans la partie pr´ec´edente, nous avons propos´e un stockage diff´erenci´e pour am´eliorer la probabilit´e de hit de la hi´erarchie. Or, en stockant la majorit´e des contenus au deuxi`eme niveau, la consommation de la bande passante est plus ´elev´ee. Pour les op´erateurs, deux crit`eres importants leur permettent de prendre des d´ecisions pour le stockage de donn´ees : les coˆuts et la difficult´e de mise en oeuvre. Puisque les r´eseaux de caches comme CCN sont distribu´es, il faut prendre en compte, en plus du coˆut de la m´emoire, le coˆut de la bande passante. Plus l’op´erateur investit en m´emoire, moins il investit en bande passante et vice versa. L’op´erateur est amen´e `a d´eterminer un tradeoff optimal entre bande passante et caches. D´eploy´es depuis des ann´ees, les CDN deviennent un acteur principal g´erant le contenu des sites les plus connus et utilis´es `a travers le monde. Les CDN, contrairement aux CCN, sont des hi´erarchies centralis´ees et non distribu´ees. Entre une technologie d´ej`a exp´eriment´ee et une technologie en cours de recherche, le choix de l’op´erateur est vite fait ; les CDN sont d´ej`a d´eploy´es et utilis´es, ne n´ecessitant aucune mise `a jour au niveau des routeurs ou des protocoles r´eseau. Le seul enjeu pouvant encourager les op´erateurs `a opter pour une architecture distribu´ee est le coˆut. Le travail de Ghodsi et al. [5] n’apporte pas cet espoir pour l’avenir des r´eseaux CCN ; cet article vient, en plein milieu de notre travail de recherche, remettre en cause l’utilisation des CCN `a l’avenir. Les arguments avanc´es par Ghodsi et al. sont : – La difficult´e de changer tout le mod`ele Internet de l’orient´e IP vers l’orient´e contenu. La convergence vers un r´eseau orient´e contenu n´ecessite un changement au niveau des routeurs et des protocoles. Ceci n´ecessiterait beaucoup de temps, compte tenu du temps d’attente avant la mise en place d’une mise `a 78CHAPITRE 11. INTRODUCTION 79 jour mineure telle que l’adressage IPv6. Sans compter le temps n´ecessaire pour l’impl´ementation de PKI assurant la s´ecurit´e des donn´ees. – Pour des caches de grande taille, il a ´et´e prouv´e que la coop´eration n’apporte que tr`es peu de gain ; donc l’utilit´e de distribuer la m´emoire sur tous les routeurs n’est pas forc´ement b´en´efique. En plus de ces arguments, notre travail pr´esent´e dans [40] montre qu’une r´eduction significative de bande passante n´ecessite l’utilisation de caches de tr`es grande taille, d´epassant largement la taille de la m´emoire pouvant ˆetre ajout´ee `a un routeur [53]. Notre probl`eme revient `a ´evaluer les coˆuts d’une architecture de cache distribu´ee : qu’est ce qui coˆuterait plus cher, mettre des petits caches partout ou de grands caches au premier niveau ? Ou plus exactement dans une architecture en arbre, comment faut-il choisir la taille de cache dans les diff´erents niveaux pour avoir un taux de hit cible avec le moindre coˆut ? 11.2 Etat de l’art Certaines ´etudes abordent le probl`eme de l’optimisation en fixant un ou plusieurs param`etres. Par exemple, Dario Rossi et Giuseppe Rossini [54] se sont d´ej`a pench´es sur ce probl`eme. Ils ont conclu que l’utilisation de caches de tailles diff´erentes ne fait augmenter le gain que de 2,5% dans le meilleur des cas, et qu’il vaut mieux utiliser la mˆeme taille de cache, vu le gain faible et la d´et´erioration de la rapidit´e d’un cache quand sa taille augmente. Dans cette ´etude, la taille globale de caches a ´et´e fix´ee. Le coˆut de caching est donc fix´e et le facteur de performance est le taux de hit. Le coˆut de bande passante n’a pas ´et´e pris en compte. Une configuration est pr´ef´erable `a une autre si sa probabilit´e de hit est meilleure. On voit que ceci n’est pas suffisant. Par ailleurs, le param`etre α de la loi Zipf de popularit´e est suppos´e sup´erieur `a 1, ce qui n’est pas conforme aux mesures. Sem Borst et al. [52] calculent les coˆuts de bande passante et proposent un algorithme de coop´eration pour le placement des donn´ees dans une hi´erarchie de caches afin de minimiser ce coˆut. Le coˆut de la m´emoire n’est pas pris en consid´eration, donc le tradeoff m´emoire/bande passante n’est pas ´etudi´e. Kangasharju [55] suppose que la localisation des caches et la capacit´e sont fixes, et dans [47] est explor´e le probl`eme d’optimisation avec une taille fixe de cache global comme contrainte. Notre vision des choses est diff´erente, nous pensons que le coˆut global inclut le coˆut de la bande passante et le coˆut de la m´emoire. C’est un crit`ere de comparaison fiable entre architectures. D’autres ´etudes cherchent le tradeoff m´emoire/bande passante, comme par exemple Nussbaumer et al. [56]. Ils adoptent une ´evaluation de coˆut similaire `a la nˆotre, en prenant en compte les coˆuts de la bande passante et de la m´emoire pour une hi´erarchie80 11.2. ETAT DE L’ART de caches en arbre. Cependant, leurs r´esultats ne sont pas applicables pour nous. Nous rencontrons le mˆeme probl`eme avec l’article [57] qui n’offre aucun r´esultat num´erique exploitable. Il est clair que la taille des caches d´etermine le coˆut de la m´emoire qui est croissant en fonction de la taille. Par contre le coˆut de la bande passante devient plus petit car le taux de hit augmente avec la taille. Notre objectif est de d´eterminer la hi´erarchie de cache optimale, que ce soit une architecture avec, ou sans coop´eration de caches. On fixe la probabilit´e de hit global de l’architecture `a une probabilit´e de hit cible. Avec une hi´erarchie de caches, il est toujours possible d’am´eliorer les gains en utilisant la coop´eration, comme c’´etait le cas pour les proxies, et donc rendre la distribution de caches rentable par rapport `a une hi´erarchie centralis´ee. Pourtant, Wolman et al. [58] ont d´emontr´e, par simulation sur une large population de 107 ou 108 objets que la coop´eration n’apporte que tr`es peu de gain ; ce qui remet en question l’utilit´e de mettre en place un lourd m´ecanisme de coop´eration et d’´echange de messages entre serveurs. Pour une population r´eduite, utiliser un seul proxy revient moins cher et est aussi efficace que plusieurs caches coop´eratifs. Plus r´ecemment, Fayazbakhsh et al. [59] ont constat´e que le stockage `a l’edge offre des performances plutˆot bonnes en termes de temps de latence, de congestion, et de charge du serveur d’origine. De plus, il offre un ´ecart de 17% par rapport `a une architecture CCN presque optimale, ce que les auteurs consid`erent comme minime, et compensable en pla¸cant plus de m´emoire `a l’edge. L’article [44] a remis en question cette ´etude par une contre-´etude, en montrant que le fait de coupler une strat´egie de forwarding optimale (chercher l’objet dans le cache le plus proche contenant l’objet recherch´e) avec une politique de m´eta-caching optimale (LCD pour Leave a Copy Down) augmente consid´erablement la marge entre un caching `a l’edge et un caching distribu´e `a la CCN, ceci en consid´erant une popularit´e Zipf avec α = 1. Wang et al. [60] traitent le probl`eme d’allocation de la m´emoire et cherchent `a trouver l’optimum. Le raisonnement va dans le mˆeme sens : l’optimum est obtenu `a travers une distribution non ´equitable des tailles de caches dans une hi´erarchie ; cette distribution d´epend de la popularit´e des objets, et de la taille du catalogue. En somme, un caching exclusif `a l’edge est une solution contest´ee du fait qu’elle n’a pas ´et´e compar´ee `a une solution ICN optimale avec une strat´egie de forwarding, et de meta-caching optimales. Dans tous les cas, le probl`eme que nous ´etudions est diff´erent du probl`eme trait´e dans les articles pr´ec´edemment cit´es. En g´en´eral, les chercheurs fixent une taille de cache global, ou par cache individuel, et cherchent un optimum pour la probabilit´e de hit globale, ou un optimum selon le nombre moyen de sauts travers´es par les requˆetes pour trouver l’objet recherch´e, ce qui mesure implicitement la consommation de la bande passante. Le fait de fixer la taille de cache ´elimine desCHAPITRE 11. INTRODUCTION 81 solutions possibles pour les optima, sachant que l’optimum absolu pour les utilisateurs est un stockage entier du catalogue `a l’edge ´evitant ainsi tout d´eplacement vers les serveurs d’origine. Entre la taille n´ecessaire pour assurer le stockage et la consommation de bande passante, le choix des op´erateurs devrait se baser sur les coˆuts, sachant que les coˆuts de la m´emoire d´ecroissent tr`es vite. Un stockage `a l’edge ´eliminerait tous les probl`emes li´es au routage orient´e contenu qui nous paraissent lourdes et posent des probl`emes de passage `a l’´echelle. L’utilisateur demande un objet de son edge. Si le routeur d’acc`es ne d´etient pas l’objet, alors la requˆete est redirig´ee vers le serveur d’origine. Le tableau 11.1 r´esume quelques ´etudes ayant trait´e la probl´ematique de l’optimum. R´ef´erence Contraintes Optimums Fayazbakhsh et al. [59] Les caches ont la mˆeme taille Peu d’avantages `a cacher partout dans le r´eseau, un caching `a l’edge est b´en´efique Rossini et al. [44] Les caches ont la mˆeme taille Avec une politique de meta caching LCD (Leave a copy down) et une strat´egie de forwarding menant au cache le plus proche(NRR) contenant l’objet, nous obtenons un ´ecart de 4% en nombre de sauts par rapport `a un couplage LCD et une politique de forwarding SPF menant au serveur d’origine le plus proche. Borst et al. [52] Taille de caches fixes, recherche de l’optimum en terme de bande passante L’optimum inter-niveau correspond `a un stockage des objets les plus populaires dans toutes les feuilles de l’arbre, et les moins populaires dans le cache sup´erieur. Table 11.1 – Comparaison des quelques ´etudes des coˆuts des hi´erarchies de cachesChapitre 12 Cout d’une hi ˆ erarchie de ´ caches a deux niveaux ` Dans ce chapitre, nous nous int´eressons aux coˆuts d’une hi´erarchie de caches. Nous souhaitons r´epondre `a la question : est-ce b´en´efique d’utiliser des caches distribu´es plutˆot que des caches centralis´es ? Nous pensons que c’est la diff´erence de base entre les r´eseaux CCN et les CDN. Afin de voir clairement la diff´erence des deux solutions, nous commen¸cons par une hi´erarchie `a deux niveaux uniquement. Notre hi´erarchie est repr´esent´ee `a la figure 12 : Le trafic g´en´er´e par les demandes des utilisateurs est de A en bit/s, le requˆetes ..... Figure 12.1 – architecture `a deux niveaux proviennent de n noeuds d’acc`es au premier niveau. Tous les caches au premier niveau ont la mˆeme taille T1. Le cache de deuxi`eme niveau est de taille T2. On cherche la structure optimale avec le minimum de coˆut. Les tailles T1 et T2 varient afin d’obtenir `a chaque fois une structure diff´erente, mais chaque structure devrait r´ealiser un taux de hit fix´e `a une valeur cible (afin de pouvoir comparer les coˆuts 82CHAPITRE 12. COUT D’UNE HI ˆ ERARCHIE DE CACHES ´ A DEUX NIVEAUX ` 83 des architectures). Donc pour chaque valeur de T1, il existe une seule valeur de T2 v´erifiant un taux de hit global fixe. 12.1 Diff´erence des coˆuts entre structures Le coˆut d’une architecture est ´egal `a la somme des coˆuts de la bande passante, le coˆut de la m´emoire, et le coˆut de gestion au niveau des caches. – Le coˆut de la bande passante Cb est proportionnel (on introduira une constante kb) au trafic global g´en´er´e entre le premier et le deuxi`eme niveau. Le coˆut d’acc`es est le mˆeme pour toutes les architectures, et donc il s’annule en diff´erence Cb = kb × T raf ic . – Le coˆut de la m´emoire Cm est proportionnel `a la taille des caches Cm = km × Taille de la m´emoire . – Le coˆut de gestion au niveau des caches Cg est proportionnel au trafic, soit Cg = ks × T raf ic. La diff´erence de coˆut entre deux architectures ayant le mˆeme taux de hit global est : δcout(T1, T′ 1 ) = (pmiss1 − p ′ miss1 )(kb + ks)A + (n(T1 − T ′ 1 ) + (T2 − T ′ 2 ))km o`u – pmiss1 est le taux de miss de la premi`ere architecture, – pmiss′ 1 est le taux de miss de la deuxi`eme architecture, – T1 (T2) est la taille des caches au premier (deuxi`eme) niveau de la premi`ere architecture – et T ′ 1 (T ′ 2 ) est la taille des caches au premier (deuxi`eme) niveau de la deuxi`eme architecture. Les deux architectures ont le mˆeme taux de hit global et le mˆeme nombre de caches au premier niveau.84 12.2. ESTIMATION NUMERIQUE DES CO ´ UTS ˆ 12.2 Estimation num´erique des coˆuts Nous avons besoin de quelques estimations des coˆuts unitaires kb, km et ks. – kb : On estime kb `a 15 $ par Mbps ; c’est une valeur non publi´ee mais estim´ee par quelques sources sur le web, et par des ´echanges priv´es avec un op´erateur. Ce coˆut unitaire couvre le coˆut du transport et des routeurs. – km : On estime le coˆut unitaire de la m´emoire `a km=0.15 $ par Gigabyte. Cette estimation est d´eriv´ee des fournisseurs de cloud comme Amazon. – ks : Le coˆut unitaire de gestion ks est estim´e `a 10 c par Mbps. Cette observation est tir´ee des charges de t´el´echargement des offres Cloud. La valeur de ks est donc n´egligeable par rapport `a la valeur de kb de sorte que la diff´erence des coˆuts entre architectures devient : ∆cout(T1, T′ 1 ) = (pmiss1 − p ′ miss1 )kbA + (n(T1 − T ′ 1 ) + (T2 − T ′ 2 ))km. Etudier la diff´erence de coˆuts revient `a ´etudier la fonction δ d´efinie par : ∆(T1) = pmiss(T1)kbA + (nT1 + T2(T1))km. Notre objectif est de d´eterminer les tailles T1 (et donc T2 puisque le taux de hit global est fix´e) correspondant au minimum de la fonction ∆. Le trafic `a l’acc`es est de l’ordre de A = 1 Tbp, la taille moyenne de chaque objet est de 1 GB et la taille du catalogue est estim´ee `a M = 2 × 106 objets. De plus, notons que la probabilit´e de hit d´epend du rapport entre la taille du cache et le catalogue. Pour v´erifier ceci, on consid`ere un cache de taille T et un catalogue de taille M. On trace sur la figure 12.2 la probabilit´e de hit en fonction de T /M pour diff´erentes valeurs de M et deux lois de popularit´e, Zipf(0.6) et Zipf(0.8). On observe que la probabilit´e de hit pour une popularit´e Zipf(0.6) est presque la mˆeme pour des tailles de catalogue diff´erentes. Pour le cas Zipf(0.8), la probabilit´e de hit est l´eg`erement plus faible pour un catalogue de taille 2 × 104 mais les probabilit´es de hit se rapprochent pour les grandes tailles de catalogue. Dans tous les cas, `a partir d’une taille de cache normalis´ee de 10%, les valeurs sont tr`es rapproch´ees. Puisque les tailles de catalogues sont grandes en r´ealit´e, il est clair que la probabilit´e de hit ne d´epend en pratique que du rapport entre la taille du cache et du catalogue. On note c la taille normalis´ee du cache c = T /M, ¯c la taille normalis´ee du cache au deuxi`eme niveau et h(c) la probabilit´e de hit au premier niveau de cache. La diff´erence de coˆut devient : δ(c) = (1 − h(c))kbA + M(nc + ¯c)km.CHAPITRE 12. COUT D’UNE HI ˆ ERARCHIE DE CACHES ´ A DEUX NIVEAUX ` 85 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1e-05 0.0001 0.001 0.01 0.1 1 M = 2 ∗ 104 M = 2 ∗ 105 M = 2 ∗ 106 M = 2 ∗ 107 (a) Popularit´e Zipf α=0.6 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1e-05 0.0001 0.001 0.01 0.1 1 M = 2 ∗ 104 M = 2 ∗ 105 M = 2 ∗ 106 M = 2 ∗ 107 (b) Popularit´e Zipf α=0.8 Figure 12.2 – Taux de hit en fonction des tailles de caches normalis´ees T /M 12.2.1 Coˆut normalis´e Dans un premier temps, on consid`ere que l’op´erateur souhaite ´eviter de chercher les donn´ees en dehors de son r´eseau, et donc la probabilit´e de hit cible est ´egale `a 1. Dans ce cas ¯c = 0 ( est une diff´erence de tailles de caches au deuxi`eme niveau qui s’annule dans ce cas). On pose Γ = Akb Mnkm , le rapport entre le coˆut maximal de bande passante Akb et le coˆut maximal de m´emoire Mnkm. Le tradeoff entre m´emoire et bande passante est visible sur l’´equation. On note Γnominal la valeur de Γ correspondante aux valeurs cit´ees dans le paragraphe pr´ec´edent, Γnominal = 1012 × 15 × 10−6 0.15 × 10−9 × 100 × 2 × 106 × 109 = 0.5. Avec ce choix taux de hit cible, la diff´erence de coˆut normalis´e peut s’exprimer : δ(c) = Γ(1 − h(c)) + c. Cette fonction est pr´esent´e `a la figure 12.3. On observe que, pour Γ=0.5 (c’est-`a-dire la valeur nominale), la valeur optimale du coˆut correspond `a une taille de cache au premier niveau plutˆot petite (inf´erieure `a 10% du catalogue) ; plus Γ devient petit, plus on a int´erˆet `a tout cacher au deuxi`eme niveau. Plus la valeur Γ augmente, plus la solution optimale correspondrait `a un grand cache au premier niveau. Ces observations sont valables pour les deux valeurs de α comme le montre la figure 12.4. On remarque que le choix d’une taille de cache au premier niveau ´egale `a la taille du catalogue offre une solution optimale pour une valeur de Γ > 2 pour α = 0.6, et de Γ > 3.8 pour α = 0.8. Plus le cache est efficace (param`etre α plus grand ou politique86 12.2. ESTIMATION NUMERIQUE DES CO ´ UTS ˆ 0.1 1 10 0 0.2 0.4 0.6 0.8 1 Γ = 10 Γ = 5.0 Γ = 1.0 Γ = 0.5 Γ = 0.1 (a) Popularit´e Zipf α=0.6 0.1 1 10 0 0.2 0.4 0.6 0.8 1 Γ = 10 Γ = 5.0 Γ = 1.0 Γ = 0.5 Γ = 0.1 (b) Popularit´e Zipf α=0.8 Figure 12.3 – Coˆuts normalis´es en fonction des tailles de caches normalis´es au premier niveau 0 0.2 0.4 0.6 0.8 1 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 coptimal Γ α = 0.6 α = 0.8 (a) Popularit´es diff´erentes 0 0.2 0.4 0.6 0.8 1 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 coptimal Γ LRU(α = 0.6) LF U(α = 0.6) LRU(α = 0.8) LF U(α = 0.8) (b) Politiques de remplacement diff´erentes Figure 12.4 – Taille de cache normalis´ee optimale en fonction de Γ de remplacement plus efficace), moins il est utile de stocker des donn´ees au premier niveau de cache. Mais, mˆeme pour un cache LFU et un α = 0.8, la solution optimale correspond `a un stockage complet du catalogue `a partir de Γ = 5. La solution optimale actuelle pour le Γ nominal correspond `a une valeur de moins de 10 % du catalogue ; mais les valeurs des coˆuts sont si rapproch´ees pour Γ = 1 que le choix d’un c a une valeur ´egale au catalogue semble meilleur car l’utilisateur peut profiter d’une latence plus faible. La valeur de kc diminue de 40% chaque ann´ee1 , kb diminue de 20% chaque ann´ee, le 1http ://www.jcmit.com/memoryprice.htmCHAPITRE 12. COUT D’UNE HI ˆ ERARCHIE DE CACHES ´ A DEUX NIVEAUX ` 87 trafic T augmente de 40% chaque ann´ee2 et le catalogue augmente d’`a peu pr`es 50%. Le Γ tend alors `a augmenter au fil du temps, et peut devenir cinq fois plus grand que le Γ nominal dans 6 ans. Cependant, les valeurs des coˆuts varient selon la r´egion g´eographique 3 et des ´el´ements inattendus peuvent augmenter le prix des m´emoires. Le tradeoff reste quand mˆeme compliqu´e `a d´eterminer car il d´epend de l’emplacement g´eographique, et des lois de popularit´e. 12.2.2 Solution optimale en fonction du taux de hit global Nous avons consid´er´e la probabilit´e de hit global ´egale `a 1. Or, pour diff´erentes raisons, le fournisseur de contenu peut manquer de moyens pour payer le prix optimal. La solution consiste `a g´erer une partie du catalogue (ce qui correspond `a la partie la plus populaire) et de confier le stockage des autres contenus `a un serveur distant. Le nombre de caches au premier niveau ne change rien `a la probabilit´e de hit global, on peut utiliser la formule de Che `a deux niveaux de caches. Donc δ(c) = Γ(1 − h(c)) + c + ¯c/n). On obtient les r´esultats pr´esent´es dans la figure 12.5 avec des probabilit´es de hit global de 0.5 et 0.9. 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 cout c Γ = 0.05 Γ = 0.5 Γ = 2 hitg=0.9 hitg=0.5 (a) Loi Zipf(0.6) 0 0.2 0.4 0.6 0.8 1 1.2 1.4 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 cout c Γ = 0.05 Γ = 0.5 Γ = 2 hitg=0.9 hitg=0.5 (b) Loi Zipf(0.8) Figure 12.5 – Coˆuts pour diff´erentes valeurs de Γ et de probabilit´es de hit On remarque que la courbe des diff´erences de coˆuts pour une probabilit´e de hit de 50% co¨ıncide avec la courbe des coˆuts pour une probabilit´e de hit de 90%. Ceci s’explique 2http ://www.networkworld.com/news/tech/2012/041012-ethernet-alliance-258118.html ?page=1 3http ://www.zdnet.fr/actualites/le-prix-du-transit-ip-baisse-encore-partout-dans-le-monde- 39775196.htm88 12.3. EXEMPLE : COUTS DES TORRENTS ˆ peut-ˆetre par la valeur de n (n=100) qui implique que la valeur de ¯c/n reste petite et n’influence pas la valeur des coˆuts. Ceci peut mener `a nous demander `a quel niveau il faut placer les caches dans un r´eseau. 12.3 Exemple : coˆuts des torrents Un moteur de recherche comme mininova.org offre un ensemble de torrents. Dan et al. [61] ont analys´e des donn´ees torrents de cette source et partag´e leurs donn´ees avec nous. Un premier fichier de donn´ees contient 2.9 × 106 torrents actifs et donne le nombre de leechers au moment de la capture. Nous avons conserv´e 1.6 × 106 torrents correspondant `a au moins un leecher actif au moment de la capture. On consid`ere un torrent de taille s et un nombre de leechers instantan´e de l. En utilisant la loi de Little, et en consid´erant la dur´ee de t´el´echargement proportionnelle `a la taille s, la fr´equence d’arriv´ee du torrent est : λ = nombre moyen de torrents temps de t´el´echargement . La fr´equence d’arriv´ee des torrents est donc proportionnelle `a l/s. Un deuxi`eme fichier correspondant aux tailles des torrents nous a ´et´e fourni. La popularit´e de chaque chunk est ´egale `a la popularit´e de son torrent. La formule de Che est plus facile `a utiliser au niveau chunk qu’au niveau torrent car les torrents ont des tailles diff´erentes, alors que les chunks ont la mˆeme taille. La popularit´e des chunks des torrents d´eduite des traces est repr´esent´ee `a la figure 12.6. 1e-05 0.001 0.1 10 1000 100000 1 100 10000 1e+06 1e+08 popularity rank head (Zipf(.6)) body (Zipf(.8)) tail Figure 12.6 – Popularit´e des chunks pour les torrentsCHAPITRE 12. COUT D’UNE HI ˆ ERARCHIE DE CACHES ´ A DEUX NIVEAUX ` 89 0.01 0.1 1 10 100 0 0.2 0.4 0.6 0.8 1 .3 .5 .7 .8 .9 .95 .99 (a) coˆuts normalis´es pour un coˆut de bande passante lin´eaire 0.01 0.1 1 10 100 0 0.2 0.4 0.6 0.8 1 .3 .5 .7 .8 .9 .95 .99 (b) coˆut normalis´es pour un coˆut de bande passante non lin´eaire Figure 12.7 – Coˆuts normalis´es pour diff´erentes valeur de Γ Les courbes pr´esent´ees dans la figure 12.7 repr´esentent les coˆuts normalis´es dans le cas d’une probabilit´e de hit globale de 1 pour les torrents. La figure 12.7(b) repr´esente le cas d’un coˆut de bande passante non lin´eaire T .75kb, ce qui permet d’´evaluer l’impact d’´economie d’´echelle. On remarque que les observations sont les mˆemes : pour un Γ = 10, la solution optimale correspond `a un stockage complet au premier niveau ; de mˆeme pour Γ = 1 la courbe est presque plate, impliquant qu’un stockage au premier niveau semble plutˆot b´en´efique.Chapitre 13 Cooperation de caches ´ Un grand nombre de publications met en avant l’avantage qu’on peut tirer de la distribution de caches et de leur coop´eration. Mais ces publications ne prennent pas en compte le coˆut des ´echanges entre les caches et donc le coˆut de la bande passante qui est typiquement plus important que le coˆut de la m´emoire. Dans cette section, nous nous int´eressons `a l’´evaluation du tradeoff bande passante/ m´emoire, dans le cas de coop´eration de caches. 13.1 Load sharing Li et Simon [62] proposent la division du catalogue en P partitions. Chaque cache peut stocker les ´el´ements d’une partition de taille ´egale `a M/P o`u M est la taille du catalogue. Figure 13.1 – R´eseau de caches P=3 et S=12 Pour ´evaluer les coˆuts de cette architecture, on introduit un nouveau facteur k ′ b repr´esentant le coˆut unitaire des liens entre caches du premier niveau. Une proportion 90CHAPITRE 13. COOPERATION DE CACHES ´ 91 1/P des requˆetes arrivant `a chaque cache correspondent au sous-catalogue attribu´e au cache, les (P − 1)/P requˆetes restantes ´etant redirig´ees vers les autres caches. La consommation de bande passante au premier niveau est donc estim´ee `a : nk′ b P − 1 P . Le coˆut de la bande passante r´esultante du taux de miss au premier niveau est estim´ee `a : nkbmiss(C) o`u miss(C) est la probabilit´e de miss au premier niveau pour cette architecture. Elle correspond au taux de miss d’un cache LRU de taille C pour un catalogue de taille M/P. On pose c = CP/M la taille normalis´ee des caches pour cette architecture. On ´ecrit miss(c) = miss(CP/M) o`u miss(c) correspond `a la probabilit´e de miss d’un cache LRU de taille P C et un catalogue de taille M. Tout calcul fait : δLS(c) = δ(c) + (1 − 1 P )(Γk ′ b kb − c). Le partitionnement du catalogue est b´en´efique dans le cas o`u Γk ′ b kb < c. Si, par exemple, Γ = 4 il faut que k ′ b kb < c/4 ≤ 1/4. Or, il serait surprenant que le coˆut d’un lien entre caches de premier niveau soit 4 fois inf´erieur au coˆut d’un lien entre le premier et le deuxi`eme niveau de caches, ce qui sugg`ere que ce type de partage de charge n’est gu`ere utile. 13.2 Caches coop´eratifs Ni et Tsang [63] proposent un algorithme de caches coop´eratifs bas´e sur le load sharing. Chaque cache est responsable d’une partition du catalogue. Toute requˆete destin´ee `a un cache sera d’abord recherch´ee dans le cache d’accueil, avant de s’adresser au cache responsable le plus proche. On d´esigne q(i) la popularit´e normalis´ee de l’objet i. Pour un cache du premier niveau, la popularit´e de chaque chunk appartenant `a la partition dont il est responsable est q ′ (n) = q(n)(1 + (P − 1)e −q ′ (n)tc ). En adaptant la formule de Che, on trouve tc en utilisant la formule (13.1) : X N n=1 1 P (1 − e −q ′ (n)tc ) + (1 − 1 P )(1 − e −q(n)tc ) = C (13.1) On consid`ere un cache k au premier niveau. On note R la fonction d´eterminant l’identit´e de la partition du catalogue dont il est responsable : R(k) = l veut dire que le cache k est responsable de la partition Ml . On note Ak l’ensemble de caches au premier niveau sauf le cache k. On observe les ´echanges entre caches illustr´es par la figure 13.2.92 13.2. CACHES COOPERATIFS ´ cache niveau 2 objet i, i /∈ Ml,miss(i) objet i, i ∈ Ml,miss(i) cache k Autres caches Ak objet i objet i, i ∈ Ml,miss(i) Figure 13.2 – illustration des diff´erents ´echanges pour une hi´erarchie coop´erative En utilisant l’´equation (13.1) pour trouver tc, nous pouvons calculer la probabilit´e de miss au niveau du cache k pour tout objet i missk(i) =  exp(−q(i)tc) ;i /∈ Ml exp(−q ′ (i)tc) ;i ∈ Ml . Les caches g`erent le trafic arrivant des noeuds d’acc`es. On note par θ ′ la probabilit´e de hit global de ce trafic : θ ′ = X N n=1 q(n)  1 P (1 − e −q ′ (n)tc ) + (1 − 1 P )(1 − e −q(n)tc )  / X N n=1 q(n) En cas de miss local, les requˆetes seront transmises aux caches responsables de la partition dont l’objet en question fait partie. Le cache k r´ealise un taux de hit suppl´ementaire pour ces requˆetes. La popularit´e des objets appartenant `a ces requˆetes `a l’entr´ee du cache k est q ′ (n) et la probabilit´e de hit de chaque objet est 1−e −q ′ (i)tc . Ces objets arrivent avec un taux q(i)e −q(i)tc et ils arrivent de P − 1 caches. Chaque cache autre que k envoie uniquement une fraction 1/P des objets ayant subi un miss au cache k, c’est-`a-dire les objets appartenant au sous-catalogue Ml . La probabilit´e de hit global du trafic d´ebordant des caches apr`es un premier essai (cache local) est exprim´ee par : θ ′′ = X N n=1 q(n)(1 − 1 P )e −q(n)tc (1 − e −q ′ (n)tc )/ X N n=1 q(n). On compare `a la figure 13.3 les r´esultats obtenus par simulation et par calcul pour les probabilit´es de hit locales θ ′ et les probabilit´es de hit suppl´ementaires dˆu `a laCHAPITRE 13. COOPERATION DE CACHES ´ 93 coop´eration θ ′′, pour un catalogue de 105 objets, pour P ´egale `a 2, 5 et 10 et pour les deux lois Zipf(0.6) et Zipf(1.2). 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 hit local c calcul simulation (a) α = 0.6 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 hit local c calcul simulation (b) α = 1.2 0 0.1 0.2 0.3 0.4 0.5 0.6 0 0.2 0.4 0.6 0.8 1 hit de coop’eration c P = 2 P = 5 P = 10 simulation calcul (c) α = 0.6 0 0.1 0.2 0.3 0.4 0.5 0.6 0 0.2 0.4 0.6 0.8 1 hit de coop’eration c P = 2 P = 5 P = 10 simulation calcul (d) α = 1.2 Figure 13.3 – Les probabilit´es de hit locales et de coop´eration en fonction de la taille de cache normalis´ee On remarque que la probabilit´e de hit locale obtenue par calcul co¨ıncide avec celle obtenue par simulation, et que cette probabilit´e est ind´ependante de P. Pour les probabilit´es de hit de coop´eration, une l´eg`ere diff´erence entre simulation et calcul est `a noter pour P = 2. Cette diff´erence diminue au fur et `a mesure que P augmente. Pour P = 10, les valeurs de simulation et de calcul sont identiques. Ces r´esultats s’expliquent par la pr´ecision de l’approximation de Che. Appliqu´ee `a un deuxi`eme niveau de caches, on s’attend `a ce que l’erreur due `a l’hypoth`ese d’ind´ependance soit faible si le nombre de caches de premier niveau est assez grand (n > 5). On note θ la probabilit´e de hit global au premier niveau : θ = θ ′ + θ ′′. Pour un cache94 13.2. CACHES COOPERATIFS ´ de taille C, le coˆut global de la structure est : cout(C) = Ak′ b P − 1 P (1 − θ ′ ) + Akb(1 − θ) + nkmC. Cet algorithme est inspir´e du load-sharing et chaque cache ne peut d´epasser la taille de M/P. La taille normalis´ee du cache peut donc s’´ecrire c = CP/M. On trace la probabilit´e θ(c/P) en fonction de c pour diff´erentes valeurs de P pour la loi Zipf(0.6). Les r´esultats sont pr´esent´es `a la figure 13.2. 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 θ(c/P) c P = 1 P = 2 P = 5 P = 10 Figure 13.4 – Probabilit´e de hit global θ(c/P) On remarque que θ(c) > θP (c/P) pour P ≥ 2 o`u θ(c) correspond `a la probabilit´e de hit au premier niveau sans coop´eration (P = 1). On note ˜θ la probabilit´e de hit locale des objets qui ne font pas partie de la partition du cache. On a ˜θ(c) < θ′ (c) et θp(c) < θ(cp). Divisant par nkmM, le coˆut normalis´e peut s’exprimer : δcc(c) = Γ(1 − θP (c)) + Γk ′ b kb (1 − 1 P )(1 − ˜θ(c)) + c/P. Tout calcul fait : δcc(c) > δ(c) + (1 − 1 P )(Γk ′ b kb (1 − θ ′ (c)) − c). Pour savoir quelle architecture est la plus rentable, il faut donc ´evaluer la quantit´e Γ k ′ b kb (1 − θ ′ (c)) − c. On pose f(c) = Γk ′ b kb (1 − θ ′ (c)) − c. La fonction f(c) est minimale si θ ′ (c) et c sont maximales, ce qui correspond `a un stockage complet au premier niveau, quel que soitCHAPITRE 13. COOPERATION DE CACHES ´ 95 la valeur de k ′ b /kb et de Γ. La coop´eration est moins rentable qu’une hi´erarchie simple si la taille des caches de premier niveau est grande. La conclusion d´epend encore des coˆuts relatifs k ′ b et kb. Notons que, plus le coˆut de bande passante augmente relatif au coˆut des caches, plus il s’av`ere inutile de faire coop´erer les caches. 13.3 Routage orient´e contenu Notre ´etude est favorable `a un stockage complet `a l’Edge puisque le tradeoff entre bande passante et m´emoire est optimal dans le cas d’un stockage entier au premier niveau. Nos r´esultats sont soutenus par d’autres ´etudes telles que [59] et [5]. Cependant, une autre ´etude remet en question ces r´esultats, les jugeant insuffisants car ils comparent un r´eseau de caches non optimal avec un caching `a l’Edge ce qui est pour les auteurs simpliste. Effectivement, [44] met en doute les r´esultats constat´es du fait que la comparaison n’a pas ´et´e faite avec une hi´erarchie de caches optimale. Avec un couplage meta-caching/strat´egie de forwarding, l’´ecart entre une hi´erarchie de caches optimale et un stockage `a l’edge peut s’av´erer beaucoup plus important. Nous nous int´eressons `a l’influence que peut avoir l’utilisation d’une hi´erarchie de caches plus efficace que la hi´erarchie LRU utilisant SPF (shortest path first) comme politique de forwarding. Nous souhaitons utiliser les caches pour obtenir des taux de hit assez grands (plus de 90%). Dans ce cas, l’efficacit´e de la politique de m´eta-caching LCD tend vers celle d’une politique LCE. La seule question restant `a traiter est l’influence de la politique de forwarding sur les coˆuts. On consid`ere une hi´erarchie de caches LRU `a deux niveaux. On note n le nombre de caches au premier niveau. Les caches au premier niveau ont la mˆeme taille C et on consid`ere une demande sym´etrique de donn´ees. Ces caches sont reli´es `a un cache de niveau 2 stockant la totalit´e du catalogue. Nous ´etudions donc l’optimum dans le cas d’un taux de hit de 100%. Chaque cache au premier niveau est reli´e `a tous les autres caches par des liens et le coˆut de bande passante de chaque lien est kb. Le coˆut de bande passante des liens reliant le cache du premier niveau au cache du deuxi`eme niveau est k ′ b . On note θ ′ le taux de hit local dˆu au hit des objets demand´es par les utilisateurs et on note θ ′′ le taux de hit dˆu `a la coop´eration. Le taux de hit global au premier niveau est θ = θ ′ + θ ′′. En utilisant les simulations, on trace θ ′ et on le compare `a hit(c) le taux de hit au premier niveau d’une hi´erarchie SPF pour un catalogue de M = 104 objets. On remarque que θ ′ est ´egal au taux de hit d’un cache LRU simple, la valeur de n ne changant rien `a ce constat. Le coˆut de cette hi´erarchie peut donc ˆetre exprim´e par : cost = Akb(1 − θ(c)) + Ak′ b θ ′′ + nkmC. On normalise cette formule et on trouve : costN (c) = δ(c) + Aθ′′(k ′ b − kb).96 13.3. ROUTAGE ORIENTE CONTENU ´ 0 0.2 0.4 0.6 0.8 1 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 θ ′ c hit1(c) θ ′ (a) Zipf(0.6) 0 0.2 0.4 0.6 0.8 1 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 T auxdehit c hit1(c) θ ′ (b) Zipf(1.2) Figure 13.5 – Probabilit´e de hit locale θ ′ et hit(c) compar´es par simulation Puisque k ′ b < kb, costN (c) < δ(c). Donc en utilisant une politique de forwarding NRR, on r´ealise un coˆut inf´erieur. Nous allons ´evaluer les optima dans ce cas. La popularit´e de l’objet i `a l’entr´e de chaque cache au premier niveau peut ˆetre exprim´e par : q ′ (i) = q(i)+Pn−1 k=1(mn−l (1− m) l )/l tel que m est la probabilit´e de miss de i de popularit´e q(i) pour un cache LRU. La probabilit´e de hit locale d’un objet peut ˆetre exprim´ee par : hit(n) = 1 − exp(−q ′ (n) ∗ tc) Le tc est calcul´e en utilisant l’´equation modifi´ee de Che : PM i=1(1 − exp(−q ′ (i) ∗ tc) = C La probabilit´e de hit locale est exprim´ee par : θ ′ = PM i=1 q(i) ∗ (1 − exp(−q ′ (i) ∗ tc)) La probabilit´e de hit de coop´eration est exprim´ee par :θ ′′ = PM i=1 q(i) ∗ exp(−q ′ (i) ∗ tc) ∗ (1 − exp(−(n − 1) ∗ tc ∗ q ′ (i))) On compare les r´esultats de calcul avec les r´esultats de simulation pour un catalogue de 104 objets, n prenant les valeurs de 10,20,40 et 100. Les calculs sont effectu´ees pour une loi Zipf(0.6) mais les conclusions sont vrai pour tout α. Les r´esultats du hit local et du hit de coop´eration sont repr´esent´es dans les graphs 13.6(a) et 13.6(b) On remarque que les hit locaux calcul´es par la m´ethode de Che modifi´ee co¨ıncident exactement avec les probabilit´es de hit r´ecup´er´es des simulations, et ces taux de hit sont ind´ependants de la valeur de n. D’autre part, on note une diff´erence entre le taux de hit de coop´eration r´ecup´er´e des calculs, et le taux de hit obtenu par simulation pour n = 5 et n = 10, mais cette diff´erence disparait pour des tailles de caches grands. Pour n = 100 aucune diff´erence est `a noter entre les deux m´ethodes calcul et simulation. Le cout d’une hi´erarchie NRR est estim´ee `a : cost = n∗km ∗C +A∗kb ∗(1−θ)+A∗k ′ b ∗θ ′′CHAPITRE 13. COOPERATION DE CACHES ´ 97 0 0.2 0.4 0.6 0.8 1 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 hit local c simulation calcul (a) hit local 0 0.2 0.4 0.6 0.8 1 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 hit de coope ′ration c simulation calcul n = 5 n = 10 n = 50 n = 100 (b) hit coop´eration Figure 13.6 – Probabilit´e de hit compar´es par simulation et calcul le cout normalis´e est estim´e `a : costn = c + Γ(1 − θ) + Γ ∗ ( k ′ b kb ) ∗ θ ′′ On trace la taille de cache optimale en fonction de Γ et k ′ b /kb On remarque que pour les valeurs futures 0 1 2 3 4 5 Γ 0 0.2 0.4 0.6 0.8 1 k ′ b kb 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Figure 13.7 – Taille de cache normalis´ee optimale en fonction de Γ et k ′ b /kb du Γ nominal, et pour un k ′ b /kb=0.8 la solution optimale consiste `a tout stocker au98 13.3. ROUTAGE ORIENTE CONTENU ´ premier niveau de caches.Chapitre 14 Hierarchies alternatives ´ 14.1 Coˆut d’une hi´erarchie de caches `a plusieurs niveaux 14.1.1 Evaluation des coˆuts Sem Borst et al. [52] affirment qu’il n’y a aucun int´erˆet `a distribuer des caches sur plus de deux niveaux. Cette affirmation a attir´e notre curiosit´e. Pour v´erifier ceci, on consid`ere une hi´erarchie de caches `a 5 niveaux. L’approximation de Che ´etant bonne pour tous les niveaux de caches, on l’utilise pour calculer la probabilit´e de hit globale de la structure ainsi que la probabilit´e de hit `a chaque niveau. Pour simplifier notre analyse, on consid`ere le cas d’une hi´erarchie homog`ene et sym´etrique en arbre `a nblevel niveaux. On se restreint dans cette ´etude `a 5 niveaux de caches (nblevel = 5). Le cache de niveau 5 est la racine de l’arbre et n’a pas de parent. Chaque noeud a le mˆeme nombre nbf de fils. A chaque niveau i de l’arbre, les caches ont la mˆeme taille Ti . On fixe nbf = 5. On consid`ere 3 cas : – une r´epartition ´equitable de m´emoire `a tous les niveaux, Ti = Ti+1 pour tout i, – une r´epartition favorisant les caches aux premiers niveaux Ti+1 = Ti/2, – une r´epartition favorisant les caches sup´erieurs Ti+1/2 = Ti . Le catalogue a une taille M. Notre objectif est de comparer les diff´erents cas en terme de coˆuts de m´emoire et de bande passante tout en pr´eservant la mˆeme valeur de probabilit´e de hit global. 99100 14.1. COUT D’UNE HI ˆ ERARCHIE DE CACHES ´ A PLUSIEURS NIVEAUX ` 1 2 3 nb_f Figure 14.1 – Hi´erarchie de caches `a 5 niveaux On note pmissi la probabilit´e de miss au niveau i. Le coˆut de la structure est : cout = Akb nblevel X−1 k=1 Y k i=1 pmissi + km nblevel X i=1 Ti(nbf ) nblevel−i . On note coutn le coˆut normalis´e en divisant le coˆut par kmMn, n ´etant le nombre total de caches. On pose Γ = Akb kmMn . Alors coutn = Γ( nblevel X−1 k=1 Y k i=1 pmissi ) + nblevel X i=1 tinbnblevel−i f /n. La figure 14.1.1 repr´esente les r´esultats obtenus pour diff´erentes valeurs de Γ. La valeur nominale de Γ est de 0.12. Le stockage favorisant les premiers niveaux est optimal juqu’`a la valeur d’un taux de hit global de 93%. Le stockage favorisant les premiers niveaux est toujours optimal si Γ ≥ 0.16. Il est probable que cette valeur soit bientˆot atteinte puisque Γ est en augmentation permanente du fait de l’augmentation rapide de la demande entrainant une augmentation de la valeur de d´ebit. Actuellement les coˆuts de la m´emoire baissent plus vite que les coˆuts de la bande passante et Γ augmente de plus en plus d´epassant actuellemnt la valeur de 0.12. Il est vrai que la popularit´e ne suit pas une loi Zipf(0.6) mais plutˆot une loi compos´ee de Zipf(0.6) et Zipf(0.8), mais dans tous les cas, la tendance future est le stockage entier au premier niveau en ´evitant la maintenance excessive de la bande passante entre routeurs. La r´epartition des caches n’est pas forc´ement gagnante pour un op´erateur ou un fournisseur de contenu puisqu’il faut prendre en compte les coˆuts ´elev´es de la bande passante par rapport aux coˆuts de la m´emoire.CHAPITRE 14. HIERARCHIES ALTERNATIVES ´ 101 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0 0.2 0.4 0.6 0.8 1 coutn hitg same size lower levels favored higher level favored (a) Γ = 0.01 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0 0.2 0.4 0.6 0.8 1 coutn hitg same size lower levels favored higher level favored (b) Γ = 0.08 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6 0 0.2 0.4 0.6 0.8 1 coutn hitg same size lower levels favored higher level favored (c) Γ = 0.12 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6 0 0.2 0.4 0.6 0.8 1 coutn hitg same size lower levels favored higher level favored (d) Γ = 0.15 Figure 14.2 – Coˆuts normalis´es pour diff´erentes valeur de Γ 14.1.2 Coop´eration de caches On restreint notre ´etude dans cette section au cas d’une r´epartition ´equitable de m´emoire comme c’est le cas pour CCN. Notre objectif est de d´eterminer le gain en m´emoire et en bande passante en comparant le cas d’une coop´eration des caches et le cas d’une non-coop´eration des caches. Il est clair que le gain en m´emoire qu’on peut avoir avec une coop´eration est tr`es int´eressant mais par ailleurs le gain en bande passante d´ecroit. On choisit la coop´eration par r´epartition du catalogue, c’est-`a-dire que chaque niveau de cache est destin´e `a stocker 1/5 du catalogue. Ainsi, on stocke le chunk num´ero i dans le niveau i (mod 5). Puisque les niveaux de caches traitent des catalogues disjoints et que les chunks suivent la mˆeme loi de popularit´e que les objets, il est simple de trouver la probabilit´e de hit des caches `a chaque niveau.102 14.2. COUTS ET POLITIQUES DE REMPLACEMENT ˆ La quantit´e de m´emoire utilis´ee est : Pnblevel i=1 C1(nbf ) nblevel−i . On note hiti(c1) la probabilit´e de hit d’un cache de taille normalis´ee c1 pour le niveau de cache i pour une hi´erarchie de caches p`ere-fils et un catalogue de taille M. La bande passante utilis´ee pour la hi´erarchie sans coop´eration est : nblevel X−1 i=1 (nbf ) nblevel−i (1 − hiti(c1)). 0 0.5 1 1.5 2 2.5 3 3.5 4 0 0.2 0.4 0.6 0.8 1 bande passante/A hitg caches non cooperatives caches cooperatives (a) Bande passante 0 5e+07 1e+08 1.5e+08 2e+08 2.5e+08 3e+08 3.5e+08 4e+08 0 0.2 0.4 0.6 0.8 1 Memory hitg caches non cooperatives caches cooperatives (b) M´emoire Figure 14.3 – Comparaison entre caches coop´eratifs et non coop´eratifs On remarque que les caches coop´eratifs utilisent moins de m´emoire pour obtenir la mˆeme probabilit´e de hit global. Cependant, la quantit´e de bande passante consomm´ee par les caches coop´eratifs est plus importante que la quantit´e de bande passante consomm´ee par les caches non coop´eratifs. 14.2 Coˆuts et politiques de remplacement 14.2.1 Politique LFU On consid`ere une hi´erarchie en arbre de caches LFU avec les objets stock´es du niveau bas au niveau sup´erieur suivant l’ordre d´ecroissant de leur popularit´e. La politique de forwarding est une politique de recherche p`ere/fils puisque le fils cherche l’objet en suivant le chemin le plus court menant au serveur d’origine qui est plac´e au niveau sup´erieur de la hi´erarchie. On consid`ere alors un catalogue de M objets class´es selon un ordre d´ecroissant de popularit´e : o1, o2, o3, ..., oM. La taille des caches au niveau i est ci . La figure 14.4 repr´esente notre hi´erarchie `a ´etudier et le tableau 14.2.1 pr´esente les param`etres.CHAPITRE 14. HIERARCHIES ALTERNATIVES ´ 103 niveau n niveau n−1 C1 niveau 1 Cn−1 Cn Figure 14.4 – R´eseau de caches avec une politique LFU M taille du catalogue Ci taille du cache au niveau i ci taille du cache au niveau i normalis´ee ci = Ci/M Pmi probabilit´e de miss de la hierarchie jusqu’au niveau i kb coˆut unitaire de la bande passante km coˆut unitaire de la m´emoire A d´ebit d’entr´ee `a la hierarchie nbi nombre de caches au niveau i Pmcible la probabilit´e de miss global cibl´ee La probabilit´e de miss au premier niveau Pm1 peut ˆetre exprim´e pour LFU par : Pm1 = M1−α − C 1−α 1 M1−α (14.1) ou Pm1 = 1 − c 1−α 1 . D’une mani`ere g´en´erale, la probabilit´e de miss de la hi´erarchie de caches constitu´ee des niveaux 1 `a i est exprim´ee par : Pmi = 1 − ( X i k=1 ck) 1−α . (14.2) On suppose la probabilit´e de hit globale de la hi´erarchie est fix´ee `a une valeur cible : Pmg = 1 − ( Xn k=1 ck) 1−α d’o`u cn = (1 − Pmg ) 1/(1−α) − nX−1 k=1 ck. (14.3) La fonction de coˆut peut ˆetre exprim´ee par :104 14.2. COUTS ET POLITIQUES DE REMPLACEMENT ˆ cout = Akb( nX−1 k=1 pmk ) + nX−1 k=1 (nbk − nbn)Ckkm On pose Γ′ = Akb M km . On divise la fonction de coˆut par une constante kmM et on obtient : coutN = nX−1 k=1 Γ ′ (1 − ( X k i=1 ci) 1−α ) + nX−1 i=1 (nbi − nbn)ci . L’optimum v´erifie ∂coutN ∂c1 = 0 et ∂coutN ∂c2 = 0, pour une probabilit´e de hit global de 1 : c1 = M in(  Γ ′ (1 − α) (nb1 − nb2) 1/α , 1). En posant Γ = Γ ′ nb1 − nb2 , on obtient : c1 = M in(1,(Γ(1 − α))1/α). (14.4) A la figure 14.5, on trace la valeur de l’optimum en fonction de α. 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 Γ = 1 Γ = 2 Γ = 3 Γ = 5 Figure 14.5 – La taille de cache optimale en fonction de α. On remarque que plus Γ augmente, plus l’optimum correspond `a un stockage au premier niveau de cache. Pour α = 0.8, `a partir de Γ = 5 l’optimum correspond `a un stockage entier `a l’edge. Nous nous int´eressons de plus `a la diff´erence de coˆuts entre LRU et LFU, les r´esultats sont repr´esent´es sur la figure 14.6. On remarque que la diff´erence de coˆuts entre politiques LRU et LFU diminue quand la taille des caches augmente. Donc il n’est pas utile d’impl´ementer une politique mat´eriellement coˆuteuse comme LFU car LRU suffit.CHAPITRE 14. HIERARCHIES ALTERNATIVES ´ 105 0 1 2 3 4 5 6 Γ 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 taille de caches normalis´e 0 5 10 15 20 25 30 (a) α = 0.6 0 1 2 3 4 5 6 Γ 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 taille de caches normalis´e 0 5 10 15 20 25 30 35 40 (b) α = 1.2 Figure 14.6 – Diff´erence entre coˆuts LRU et LFU en % 14.2.2 Politique Random La politique Random est une concurrente forte de LRU, son impl´ementation mat´erielle est simple et ses performances ne s’´eloignent pas de celles de LRU. Dans cette section nous ´etudions le tradeoff de cette politique. En utilisant la mˆeme ´equation des coˆuts pour la hi´erarchie LRU, le coˆut d’une hi´erarchie de caches Random est exprim´e par : costN = Γ(1 − h) + c o`u h est la probabilit´e de hit globale de la hi´erarchie, et c est la taille de cache normalis´ee au premier niveau. Avec la politique Random, nous tra¸cons `a la figure 14.7 la valeur de l’optimum en fonction du Γ pour diff´erentes valeurs de α. Nous distinguons les cas α < 1 et α > 1. On remarque que l’optimum correspond `a un 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.5 1 1.5 2 2.5 3 3.5 Cache Optimale Γ α = 0.6 α = 0.7 α = 0.8 α = 0.9 (a) α < 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0 1 2 3 4 5 6 Cache Optimale Γ α = 1.1 α = 1.2 α = 1.3 α = 1.4 (b) α > 1 Figure 14.7 – Tailles de caches optimales en fonction de Γ106 14.2. COUTS ET POLITIQUES DE REMPLACEMENT ˆ stockage complet `a l’Edge pour des arriv´ees suivant la loi Zipf(0.6) `a partir d’une valeur de Γ = 1.5. On conclut que mˆeme pour une politique Random, et compte tenu des valeurs de Γ selon nos estimations, un stockage complet `a l’edge correspond `a la solution optimale. Par ailleurs, quand la taille des caches est proche de la taille du catalogue, les probabilit´es de hit LRU et Random sont tr`es proches. L’utilisation de la politique Random devient int´eressante alors, car cette derni`ere est moins coˆuteuse mat´eriellement que LRU.Chapitre 15 Conclusion Dans cette partie, nous ´evaluons le coˆut d’une hi´erarchie de caches en prenant en compte le coˆut de la m´emoire et le coˆut de la bande passante. Nous utilisons la formule de Che pour ´evaluer num´eriquement ce tradeoff. Le coˆut optimal d´epend de la valeur du rapport Γ = kcA/(M kmn) ainsi que de la loi de popularit´e des objets. Nos r´esultats sugg`erent que dans un futur proche, l’optimum correspondra `a un stockage complet `a l’edge. Mais cette ´etude ´etant r´ealis´ee avec une fonction de coˆut lin´eaire, et avec des estimations non exacts des facteurs impactant les coˆuts, on ne peut la consid´erer que comme une premi`ere ´evaluation. Les op´erateurs poss´edant plus de d´etails et pr´ecisions pourraient adapter cette ´etude en int´egrant des fonctions de coˆuts r´eels. N´eanmoins, g´erer un grand cache est plus compliqu´e que la gestion d’un petit cache, et les performances et la rapidit´e de r´eponse d’un cache d´ependent de sa taille. Dans ce cas, chaque cache `a l’edge peut ˆetre lui-mˆeme distribu´e localement en un ensemble de caches. L’op´erateur pourrait d´edier `a titre d’exemple un ou plusieurs caches de taille maximale `a chaque fournisseur de contenu. Nous pensons que les fonctions de stockage et de gestion de contenu sont ind´ependantes. L’op´erateur ne peut en plus des fonctions de routage, fournir des r´eponses aux requˆetes d’utilisateurs, v´erifier les donn´ees en supprimant les donn´ees ill´egales par exemple, en mettant `a jour une donn´ee, etc. Le fait de centraliser les donn´ees permet de r´ealiser rapidement des op´erations de mise `a jour sur les donn´ees. 107Conclusion gen´ erale ´ L’Internet devient centr´e sur les contenus, 90% des ´echanges sur internet ´etant des consultations de sites Web, des t´el´echargements de fichier, ou des streamings audio ou vid´eo. La proposition CCN de Jacobson et al. vient donc au bon moment et suscite un grand int´erˆet. L’objectif de cette th`ese ´etait de rajouter `a la proposition CCN des fonctionnalit´es de gestion du trafic. En effet le protocole de transport propos´e au d´ebut n’offrait pas un bon d´ebit, puisque la d´etection de rejet se basait uniquement sur le timeout. D’autre part les paquets Data suivant le sens inverse des paquets Interest ne suffit pas pour assurer un partage ´equitable de bande passante et la protection des flux sensibles. Nous avons propos´e une solution dite “flow aware networking”, inspir´ee de travaux ant´erieurs sur IP o`u cette mani`ere de g´erer le traffic par flot a prouv´e son efficacit´e. Nous proposons ´egalement l’utilisation de la d´etection rapide de congestion pour rendre plus efficaces les protocoles de transport. L’interest Discard est un nouveau m´ecanisme con¸cu sp´ecialement pour les r´eseaux CCN permettant de limiter les rejets de paquets Data en supprimant s´electivement des paquets Interest en cas de congestion. Avec les r´eseaux orient´es contenus, on cherche les donn´ees dans n’importe quelle destination poss´edant le contenu. Dans ce contexte, les protocoles multipaths semblent prometteurs. Nous avons observ´e cependant que le t´el´echargement des donn´ees de sources multiples “pollue” les caches et d´et´eriore ainsi la probabilit´e de hit globale de l’architecture. Utiliser les chemins les plus courts pour tous les flux tant que la charge des liens ne d´epasse pas un seuil maximal s’av`ere suffisant. Les chemins longs ne doivent ˆetre utilis´es que lorsque leur charge est faible, sauf bien entendu en cas d’une panne au niveau du chemin le plus court. Les caches sont des acteurs majeurs dans la gestion du trafic et l’´etude de leur performance est essentielle. Il est n´ecessaire notamment d’´evaluer la mani`ere dont devrait ˆetre r´eparti les contenus dans une hi´erarchie de caches. La simulation ´etant coˆuteuse, puisque toute simulation de catalogue tr`es volumineux consomme beaucoup de temps, nous avons utilis´e des calculs approch´es `a l’aide de la formule de Che. Cette formule 108CHAPITRE 15. CONCLUSION 109 donne le taux de hit d’un cache de taille donn´ee sous l’hypoth`ese d’ind´ependance antre les arriv´ees de requˆetes. Elle s’av`ere tr`es pr´ecise et facile `a utiliser ´etant valable pour tout loi de popularit´e et toute taille de cache. L’utilisation de cette formule peut s’´etendre `a deux ou plusieurs niveaux de caches, `a condition que le nombre de cache au niveau inf´erieur soit grand (sup´erieur ou ´egale `a 5, d’apr`es nos ´etudes) afin de garantir l’ind´ependance des requˆetes. En utilisant ce mod`ele math´ematique, et avec des popularit´es et tailles de catalogues s’approchant de la r´ealit´e, nous avons pu ´etudier les perfomances d’une hierarchie de caches LRU. Dans un article r´ecent [59], Fayazbakhsh et al. se demandent s’il est vraiment n´ecessaire de distribuer les caches dans une hierarchie. D’autre part les CDNs rencontrent un succ`es ´enorme et sont op´erationnelles depuis des ann´ees. Pour un op´erateur, l’enjeu principale dans le choix d’une architecture orient´e contenu est le coˆut et la difficult´e de mise en place. Au niveau de la difficult´e de mise en place les CDN sont sans contestation mieux puisqu’ils sont d´eja op´erationnels. Le savoir faire dans ce domaine est fleurissant contrairement aux ICN qui manquent toujours d’une solution claire pour le routage, pour l’identification des objets dans le r´eseau ainsi que le changement des fonctionnalit´es des routeurs pour effectuer le stockage. Au niveau des coˆuts, nous ne pouvons estimer pr´ecis´ement laquelle des architectures est la moins coˆuteuse. Il est ´egalement difficile d’estimer tous les coˆuts possibles et d’avoir un mod`ele de coˆut fiable s’approchant des mod`eles utilis´es par les op´erateurs. Ne pouvant affranchir le pas de la confidentialit´e des donn´ees des op´erateurs, nous nous contentons d’estimer les coˆuts en prenant en compte les coˆuts de la m´emoire et de la bande passante. Nous adoptons un simple mod`ele de coˆut lin´eaire permettant une comparaison chiffr´ee quoique grossi`ere des diff´erentes options. Nous consid´erons qu’une hi´erarchie est mieux qu’une autre si le coˆut global incluant le coˆut des caches et le coˆut de la bande passante est plus faible. Notre objectif revient `a trouver un tradeoff optimal, puisque une hierarchie distribu´e est coˆuteuse en m`emoire mais ne coˆute rien en bande passante, alors qu’une hi´erarchie centralis´ee coˆute moins cher en m´emoire mais est plus coˆuteuse en bande passante. Suite aux r´esultats de nos ´etudes, nous recommandons un stockage presque complet `a l’edge. Cette solution paraˆıt optimale sutout dans un avenir proche car le coˆut des m´emoires baisse beaucoup plus vite que celui de la bande passante. D’autres ´etudes remettent en question cette conclusion, la jugeant rapide puisque certaines politiques de meta caching et forwarding am´eliorent la probabilit´e de hit des caches au premier niveau et r´eduisent donc le coˆut de la bande passante. Nous avons approfoni l’´etude de certains cas, dont celui de caches coop´eratives avec une politique de forwarding NRR (Nearest Replica Routing). Dans ce cas pour une hierarchie `a deux niveaux l’optimum correspond bien `a un stockage `a l’edge. Alors que Borst et al. [52] assurent qu’il n’ y a aucun avantage `a distribuer les contenus sur plusieurs niveaux de caches, cette affirmation n’´est pas accompagn´e de preuve. Nous avons donc estim´e les coˆuts pour une hierarchie `a plusieurs niveaux avec politique LRU. Les constats restent les mˆemes, il est plus rentable `a moyen terme d’utiliser de110 grands caches `a l’edge. On devrait poursuivre cette ´evaluation avec, par exemple, une politique de remplacement LCD et un routage NRR mais nos r´esultats pr´eliminaires mettent s´erieusement en question la notion CCN de mettre des caches dans tous les routeurs. Nos r´esultats s’accordent avec ceux de Fayazbakhsh et al. [59], mˆeme si les mod`eles utilis´es sont tr`es diff´erents. Un autre probl`eme pos´e par CCN est la difficult´e de gestion de donn´ees dans les caches. Si un fournisseur de donn´ees souhaite supprimer un objet, il est difficile de parcourir toute la hierarchie pour supprimer l’objet ou le mettre `a jour. Une hi´erarchie avec peu de niveaux est plus facile `a g´erer. Compte tenu des doutes concernant le coˆut ´elev´e de CCN, de la difficult´e de mise en oeuvre n´ecessitant des modifications majeures, de la n´ecessit´e de mettre en place une strat´egie de gestion de noms d’objets et leur authentifications, et de la difficult´e `a g´erer les donn´ees sur des serveurs distribu´es, il nous parait pr´ef´erable de stocker tous les objets `a l’edge tout proche des usagers. De grands caches `a ce niveau pourraient ˆetre sp´ecialis´e par fournisseur de contenus pour faciliter la gestion. Chaque objet s’identifierait d’abord par son fournisseur, qui a la responsabilit´e d’assurer l’unicit´e de l’objet et son authentification, ainsi que la s´ecurit´e de ses objets. L’op´erateur peut prendre en charge la fonctionnalit´e du caching `a l’edge en accord avec les fournisseur de contenus et attribuer `a chaque fournisseur un ou plusieurs caches. L’op´erateur peut devenir lui aussi fournisseur de contenus. Ceci bien sur peut ˆetre conclu `a travers des accords commerciaux entre les diff´erents acteurs. La fonctionnalit´e de l’internet serait alors surtout localis´ee `a l’edge du r´eseau de l’op´erateur. Certaines fonctionnalit´es propos´es dans CCN peuvent bien entendu ˆetre utiles dans cette architecture comme, par exemple, l’utilisation des noms d’objets au lieu des adresses IP. Toute utilisateur demanderait un objet avec le nom du fournisseur suivi du nom d’objet et c’est le routeur d’acc`es qui va, soit envoyer la donn´e demand´e `a travers ces caches `a l’edge, soit rediriger la demande vers le fournisseur de contenus. Pour les travaux futurs, nous souhaitons approfondir l’´etude du tradeoff m´emoire/bande passante en utilisant des mod`eles de coˆuts plus r´ealistes, et pour des hi´erarchies optimales NRR/LCD, ou des caches coop´eratives pour plusieurs niveaux de caches. Nous souhaitons aussi compl´eter notre ´etude sur les multipaths et leurs performances, d’analyser l’impact des caches et la mani`ere de les g´erer sur les performances des multipaths. Nous souhaitons aussi adapter la formule de Che `a plusieurs cas, notament pour le cas d’une hierarchie LCD `a plusieurs niveau de caches. Il est aussi important d’´evaluer l’´evolution des popularit´es des objets et leurs tailles.Ref´ erences ´ [1] T. Koponen, M. Chawla, G.-B. Chun, A. Ermolinskiy, H. Kim, S. Shenker, and I. Stoica, “A data-oriented (and beyond) network architecture,” ACM SIGCOMM Computer Communication Review, vol. 37, no. 4, pp. 181–192, 2007. [2] V. Jacobson, D. Smetters, J. Thornton, M. Plass, N. Briggs, and R. Braynard, “Networking named content,” in CoNext 2009, 2009. [3] B. Ahlgren, M. D’Ambrosio, M. Marchisio, I. Marsh, C. Dannewitz, B. Ohlman, K. Pentikousis, O. Strandberg, R. Rembarz, and V. Vercellone, “Design considerations for a network of information,” Proceedings of the 2008 ACM CoNEXT Conference, 2008. [4] “Publish-subscribe internet routing paradigm.” http://psirp.hiit.fi/. [5] A. Ghodsi, S. Shenker, T. Koponen, A. Singla, B. Raghavan, and J. Wilcox, “Information-centric networking : seeing the forest for the trees,” in Proceedings of HotNets-X, pp. 1 :1–1 :6, 2011. [6] S. Fdida and N. Rozhnova, “An effective hop-by-hop interest shaping mechanism for ccn communications,” in in IEEE NOMEN Workshop, co-located with INFOCOM, 2012. [7] G. Carofiglio, M. Gallo, and L. Muscariello, “Joint hop-by-hop and receiverdriven interest control protocol for content-centric networks,” ACM SIGCOMM Workshop on Information Centric Networking (ICN’12), 2012. [8] G. Carofiglio, M. Gallo, and L. Muscariello, “Icp : Design and evaluation of an interest control protocol for content-centric networking,” IEEE NOMEN Workshop, co-located with INFOCOM, 2012. [9] D. Rossi and G. Rossini, “Caching performance of content centric networks under multi-path routing (and more).” Technical report, Telecom ParisTech, 2011. [10] P. R. Jelenkovic, “Approximation of the move-to-front search cost distribution and least-recently-used caching fault probabilities,” Annals of Applied Probability, vol. 9, no. 2, pp. 430–464, 1999. 111112 REF´ ERENCES ´ [11] P. Gill, M. Arlitt, Z. Li, and A. Mahanti, “Youtube traffic characterization : a view from the edge,” in Proceedings of the 7th ACM SIGCOMM conference on Internet measurement, IMC ’07, (New York, NY, USA), pp. 15–28, ACM, 2007. [12] K.Gummadi, R. S.saroiu, S.Gribble, A.Levy, and J.Zahorjan., “Measurement, modeling and analysis of a peer-to-peer file shraing workload.,” in SOSP’03, 2003. [13] M. Cha, H. Kwak, P. Rodriguez, Y.-Y. Ahn, and S. Moon, “I tube, you tube, everybody tubes : analyzing the world’s largest user generated content video system,” in Proceedings of the 7th ACM SIGCOMM conference on Internet measurement, IMC ’07, (New York, NY, USA), pp. 1–14, ACM, 2007. [14] G. Appenzeller, I. Kesslassy, and N. McKeown, “Sizing router buffers,” in SIGCOMM 2004, 2004. [15] J.Nagle, “On packet switches with infinite storage,” in RFC 970, 1985. [16] S. Oueslati and J. Roberts, “A new direction for quality of service : Flow aware networking,” in NGI 2005, 2005. [17] R. Pan, L. Breslau, B. Prabhakar, and S. Shenker, “Approximate fair dropping for variable length packets,” ACM Computer Communications Review, vol. 33, no. 2, pp. 23–39, 2003. [18] B. Suter, T. Lakshman, D. Stiliadis, and A. Choudhury, “Buffer management schemes for supporting TCP in gigabit routers with per-flow queueing,” IEEE JSAC, vol. 17, no. 6, pp. 1159–1169, 1999. [19] A. Kortebi, L. Muscariello, S. Oueslati, and J. Roberts, “Evaluating the number of active flows in a scheduler realizing fair statistical bandwidth sharing,” in ACM Sigmetrics, 2005. [20] S. Ben Fredj, T. Bonald, A. Proutiere, G. R´egni´e, and J. W. Roberts, “Statistical bandwidth sharing : a study of congestion at flow level,” SIGCOMM Comput. Commun. Rev., vol. 31, no. 4, 2001. [21] B. Briscoe, “Flow rate fairness : Dismantling a religion,” SIGCOMM Comput. Commun. Rev., vol. 37, no. 2, pp. 63–74, 2007. [22] M. Shreedhar and G. Varghese, “Efficient fair queueing using deficit round robin,” SIGCOMM Comput. Commun. Rev., vol. 25, pp. 231–242, October 1995. [23] T. Bonald, M. Feuillet, and A. Prouti´ere, “Is the ”law of the jungle” sustainable for the internet ?,” in INFOCOM, 2009. [24] P. Key and L. Massouli´e, “Fluid models of integrated traffic and multipath routing,” Queueing Syst. Theory Appl., vol. 53, pp. 85–98, June 2006. [25] D. Wischik, C. Raiciu, A. Greenhalgh, and M. Handley, “Design, implementation and evaluation of congestion control for multipath tcp,” in NSDI’11 Proceedings of the 8th USENIX conference on Networked systems design and implementation, 2011.REF´ ERENCES ´ 113 [26] C. Raiciu, D. Wischik, and M. Handley, “Practical congestion control for multipath transport protocols,” in UCL Technical Report, 2010. [27] G. Carofiglio, M. Gallo, L. Muscariello, and M. Papalini, “Multipath congestion control in content-centric networks,” IEEE INFOCOM Workshop on emerging design choices in name oriented networking, 2013. [28] P. Viotti, “Caching and transport protocols performance in content-centric networks.” Eurocom Master Thesis, 2010. [29] Cisco, “Cisco visual networking index : Forecast and methodology, 2010-2015.” White paper, 2011. [30] A. Mahanti, C. Williamson, and D. Eager, “Traffic analysis of a web proxy caching hierarchy,” IEEE Network, pp. 16–23, May/June 2000. [31] J.Zhou, Y. Li, K. Adhikari, and Z.-L. Zhang, “Counting youtube videos via random prefix sampling,” in Proceedings of IMC’07, 2011. [32] L. Breslau, P. Cao, L. Fan, G. Phillips, and S. Shenke, “Web caching and zipflike distributions : evidence and implications,” INFOCOM ’99. Eighteenth Annual Joint Conference of the IEEE Computer and Communications Societies. Proceedings. IEEE, 1999. [33] Y. Carlinet, B. Kauffmann, P. Olivier, and A. Simonian, “Trace-based analysis for caching multimedia services.” Orange labs technical report, 2011. [34] H. Yu, D. Zheng, B. Y. Zhao, and W. Zheng, “Understanding user behavior in large-scale video-on-demand systems,” SIGOPS Oper. Syst. Rev., vol. 40, pp. 333–344, April 2006. [35] P. Jelenkovic, X. Kang, and A. Radovanovic, “Near optimality of the discrete persistent caching algorithm,” Discrete Mathematics and Theoretical Computer Science, pp. 201–222, 2005. [36] G. Carofiglio, M. Gallo, and L. Muscariello, “Bandwidth and storage sharing performance in information centric networking,” in ACM Sigcomm workshop on ICN, 2011. [37] E.Rosensweig, J. Kurose, and D.Towsley, “Approximate models for general cache networks,” in Infocom, 2010. [38] A. Dan and D.Towsley, “An approximate analysis of the lru and fifo buffer replacement schemes,” in SIGMETRICS, 1990. [39] H. Che, Y. Tung, and Z. Wang, “Hierarchical web caching systems : modeling, design and experimental results,” IEEE JSAC, vol. 20, no. 7, pp. 1305–1314, 2002. [40] C. Fricker, P. Robert, and J. Roberts, “A versatile and accurate approximation for lru cache performance,” in Proceedings of ITC 24, 2012. [41] M. Gallo, B. Kauffmann, L. Muscariello, A. Simonian, and C. Tanguy, “Performance evaluation of the random replacement policy for networks of caches,” ASIGMETRICS ’12, 2012.114 REF´ ERENCES ´ [42] N. Laoutaris, S. Syntila, and I. Stavrakakis, “Meta algorithms for hierarchical web caches,” in IEEE ICPCC, 2004. [43] I. Psaras, W. K. Chai, and G. Pavlou, “Probabilistic in-network caching for information-centric networks,” in Proceedings ICN ’12, (New York, NY, USA), pp. 55–60, ACM, 2012. [44] G. Rossini and D. Rossi, “Coupling caching and forwarding : Benefits, analysis, and implementation,” tech. rep., telecom-paristech. [45] K. Cho, M. Lee, K. Park, T. Kwonand, Y. Choi, and S. Pack, “Wave : Popularitybased and collaborative in-network caching for content- oriented networks,,” in IEEE INFOCOM, NOMEN, 2012. [46] W. Chai, D. He, I. Psaras, and G. Pavlou, “Cache less for more in informationcentric networks,” in IFIP NETWORKING, 2012. [47] N. Laoutaris, H. Che, and I. Stavrakakis, “The lcd interconnection of lru caches and its analysis,” Perform. Eval., vol. 63, pp. 609–634, July 2006. [48] R. Chiocchetti, D. Rossi, G. Rossini, G. Carofiglio, and D. Perino, “Exploit the known or explore the unknown ? : hamlet-like doubts in icn,” in ACM SIGCOMM,ICN, 2012. [49] R. Chiocchetti, D. Perino, G. Carofiglio, D. Rossi, and G. Rossini, “Inform : a dynamic interest forwarding mechanism for information centric networking,” in ACM SIGCOMM, ICN, 2013. [50] S. Eum, K. Nakauchi, M. Murata, Y. Shoji, and N. Nishinaga, “Catt :potential based routing with content caching for icn,” in ACM SIGCOMM, ICN, 2012. [51] C. Yi, A. Afanasyev, I. Moiseenko, L. Wang, B. Zhang, and L. Zhang, “A case for stateful forwarding plane,” Computer Communications, vol. 36, no. 7, 2013. [52] S. Borst, V. Gupta, and A. Walid, “Distributed caching algorithms for content distribution networks,” IEEE INFOCOM, 2010. [53] D. Perino and M. Varvello, “A reality check for content centric networking,” in Proceedings of the ACM SIGCOMM workshop on Information-centric networking, ICN ’11, (New York, NY, USA), pp. 44–49, ACM, 2011. [54] D. Rossi and G.Rossini, “On sizing ccn content stores by exploiting topogical information,” IEEE INFOCOM, NOMEN Worshop, 2012. [55] J. Kangasharju, J. Roberts, and K. W. Ross, “Object replication strategies in content distribution networks,” Computer Communications, pp. 367–383, 2001. [56] J. P. Nussbaumer, B. V. Patel, F. Schaffa, and J. P. G. Sterbenz, “Networking requirements for interactive video on demand,” IEEE Journal on Selected Areas in Communications, vol. 13, pp. 779–787, 1995. [57] I. Cidon, S. Kutten, and R. Soffer, “Optimal allocation of electronic content,” Computer Networks, vol. 40, no. 2, pp. 205 – 218, 2002.REF´ ERENCES ´ 115 [58] A. Wolman, G. M. Voelker, N. Sharma, N. Cardwell, A. Karlin, and H. M. Levy, “On the scale and performance of cooperative web proxy caching,” in ACM Symposium on Operating Systems Principles, pp. 16–31, ACM New York, 1999. [59] S. K. Fayazbakhsh, Y. Lin, A. Tootoonchian, A. Ghodsi, T. Koponen, B. Maggs, K. C. Ng, V. Sekar, and S. Shenker, “Less pain, most of the gain : incrementally deployable icn,” SIGCOMM ’13 Proceedings of the ACM SIGCOMM 2013 conference on SIGCOMM, 2013. [60] Y. Wang, Z. Li, G. Tyson, S. Uhlig, and G. Xie, “Optimal cache allocation for content-centric networking,” ICNP, IEEE, 2013. [61] N.Carlson, G.Dan, A.Mahanti, and M. Arlitt., “A longitudinal a characterization of local and global bittorrent workload dynamics,” In Proceedings of PAM12, 2012. [62] Z. Li and G. Simon, “Time-shifted tv in content centric networks : The case for cooperative in-network caching,” In Communications (ICC), 2011. [63] J. Ni and D. Tsang, “Large-scale cooperative caching and application-level multicast in multimedia content delivery networks,” Communications Magazine, IEEE, 2005. Trigraphes de Berge apprivoises Th´eophile Trunck To cite this version: Th´eophile Trunck. Trigraphes de Berge apprivoises. Discrete Mathematics. Institut d’Optique Graduate School, 2014. French. . HAL Id: tel-01077934 https://tel.archives-ouvertes.fr/tel-01077934 Submitted on 27 Oct 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.École Normale Supérieure de Lyon THÈSE pour obtenir le grade de Docteur de l’Université de Lyon, délivré par l’École Normale Supérieure de Lyon Spécialité : Informatique préparée au Laboratoire de l’Informatique du Parallélisme dans le cadre de l’École Doctorale Info-Math présentée et soutenue publiquement par Théophile Trunck le 17 septembre 2014 Titre : Trigraphes de Berge apprivoisés Directeur de thèse : Nicolas Trotignon Jury Celina De Figueiredo, Rapporteur Frédéric Maffray, Rapporteur Stéphan Thomassé, Examinateur Nicolas Trotignon, Directeur Annegret Wagler, ExaminateurRésumé L’objectif de cette thèse est de réussir à utiliser des décompositions de graphes afin de résoudre des problèmes algorithmiques sur les graphes. Notre objet d’étude principal est la classe des graphes de Berge apprivoisés. Les graphes de Berge sont les graphes ne possédant ni cycle de longueur impaire supérieur à 4 ni complémentaire de cycle de longueur impaire supérieure à 4. Dans les années 60, Claude Berge a conjecturé que les graphes de Berge étaient des graphes parfaits, c’est-à-dire que la taille de la plus grande clique est exactement le nombre minimum de couleurs nécessaires à une coloration propre et ce pour tout sous-graphe. En 2002, Chudnovsky, Robertson, Seymour et Thomas ont démontré cette conjecture en utilisant un théorème de structure : les graphes de Berge sont basiques ou admettent une décomposition. Ce résultat est très utile pour faire des preuves par induction. Cependant, une des décompositions du théorème, la skew-partition équilibrée, est très difficile à utiliser algorithmiquement. Nous nous focalisons donc sur les graphes de Berge apprivoisés, c’est-à-dire les graphes de Berge sans skew-partition équilibrée. Pour pouvoir faire des inductions, nous devons adapter le théorème de structure de Chudnovsky et al. à notre classe. Nous prouvons un résultat plus fort : les graphes de Berge apprivoisés sont basiques ou admettent une décomposition telle qu’un côté de la décomposition soit toujours basique. Nous avons de plus un algorithme calculant cette décomposition. Nous utilisons ensuite notre théorème pour montrer que les graphes de Berge apprivoisés admettent la propriété du grand biparti, de la clique-stable séparation et qu’il existe un algorithme polynomial permettant de calculer le stable maximum. Abstract The goal of this thesis is to use graph’s decompositions to solve algorithmic problems on graphs. We will study the class of tamed Berge graphs. A Berge graph is a graph without cycle of odd length at least 4 nor complement of cycle of odd length at least 4. In the 60’s, Claude Berge conjectured that Berge graphs are perfect graphs. The size of the biggest clique is exactly the number of colors required to color the graph. In 2002, Chudnovsky, Robertson, Seymour et Thomas proved this conjecture using a theorem of decomposition: Berge graphs are either basic or have a decomposition. This is a useful result to do proof by induction. Unfortunately, one of the decomposition, the skewpartition, is really hard to use. We are focusing here on tamed Berge graphs, i.e Berge graph without balanced skew- partition. To be able to do induction, we must first adapt the Chudnovsky et al’s theorem of structure to our class. We prove a stronger result: tamed Berge graphs are basic or have a decomposition such that one side is always basic. We also have an algorithm to compute this decomposition. We then use our theorem to prove that tamed Berge graphs have the big-bipartite property, the clique-stable set separation property and there exists a polytime algorithm to compute the maximum stable set. iiRemerciements Je tiens tout d’abord à remercier mon directeur de thèse Nicolas Trotignon, pour sa disponibilité, l’aide qu’il m’a accordée pendant cette thèse et toutes les choses qu’il a pu m’apprendre tant au niveau de la recherche que de comment bien rédiger ou de choses plus anecdotiques comme la liste des monarques danois à partir de XVe siècle 1 . Je souhaite à tous les thésards de pouvoir bénéficier d’un encadrement comme le tien. Si je peux présenter cette thèse, c’est aussi grâce à mes relecteurs. Je remercie Celina de Figueiredo pour toutes ses remarques sur le manuscrit et aussi pour avoir accepté de faire le déplacement à Lyon pour faire partie de mon jury. Je remercie également Frédéric Maffray, pour sa relecture scrupuleuse qui m’a permis de rendre plus claires certaines preuves. Merci également à Annegret Wagler d’avoir bien voulu faire partie de mon jury. Stéphan, merci pour tous les problèmes souvent suivis de solutions très élégantes que tu as pu nous poser durant ces années à Lyon, merci aussi d’avoir accepté de participer à ce jury. Durant ce temps passé en thèse, mais aussi durant mon stage de master où j’ai pu commencer à travailler sur les problèmes présentés ici, j’ai eu la chance de rencontrer de nombreuses personnes. Je pense tout d’abord à mes cobureaux, par ordre d’apparition : Pierre, lorsque j’étais encore en stage de master au Liafa à Paris et qui nous a ensuite fait l’honneur de ses visites à Lyon. Bruno pour ton accueil au sein du LIP, tes explications sur le fonctionnement du DI et qui par ta maîtrise de Sage m’a donné goût à la science expérimentale. Sébastien tes discussions ont contribué à enrichir mes connaissances en physique, merci surtout pour ton enthousiasme à vouloir travailler sur n’importe quel problème, qu’il soit ou non lié à ton domaine de recherche. Aurélie sans qui les grapheux de MC2 n’auraient pas pu aller à toutes ces conférences, merci pour ton soutien. Emilie, je ne sais pas si nous avons officiellement été cobureaux mais merci pour toutes ces discussions (scientifiques ou pas) et bien sûr pour ces quiz musicaux. Jean-Florent, pendant ce semestre à Varsovie j’ai été très content d’avoir un cobureau lui aussi conditionné à manger à heures fixes, merci de m’avoir aidé à comprendre les wqo. Comme le temps passé au labo ne se limite pas à mon bureau merci à toute l’équipe MC2 : Nathalie, Pascal, Irena, Natacha, Michaël, Éric, Éric, Zhentao, Kévin, Maxime, Petru, Sebastián, Matthieu. Je souhaite à tout le monde de pouvoir travailler dans une telle équipe. La recherche ne se limite pas à Lyon. Merci à Maria et Kristina de m’avoir appris autant de choses sur les graphes parfaits lors de votre séjour à Paris au début de mon stage. Marcin dziękuję za zaproszenie do Warszawy. Merci aussi à Marko et Jarek avec qui j’ai eu l’occasion de travailler respectivement à Belgrade et à Varsovie. Merci enfin à ceux qui m’ont les premiers fait découvrir la théorie des graphes lors de mon stage de M1. Daniël pour avoir proposé un sujet de stage intéressant et accessible, Matthew et Viresh pour vos discussions, Pim pour tes parties de billard. La thèse c’est aussi l’enseignement, à ce titre merci à tous ceux avec qui j’ai eu l’occasion d’enseigner : Christophe, Xavier, Éric, Vincent et Arnaud. Merci aussi à tous mes élèves, particulièrement à ceux que j’ai eu l’occasion de coacher pour le SWERC. 1. C’est une alternance de Christian et de Frédéric iiiMême s’ils ne m’ont pas fait gagner de gourde j’ai été très content de les accompagner à Valence. Un immense merci à Marie et Chiraz pour les réponses aux innombrables questions que j’ai pu leur poser et pour l’organisation de mes missions. Chiraz encore merci pour t’être occupée de l’organisation de ma soutenance. Merci à Damien pour ton aide lors des procédures d’inscription, de réinscription et de soutenance de thèse. Merci aussi à Catherine, Évelyne, Laetitia, Sèverine et Sylvie d’avoir toutes, à un moment donné, su répondre à mes demandes. Comme une thèse ce n’est pas seulement ce qui se passe au labo, je voudrais remercier tous ceux qui m’ont accompagné durant ces trois ans. Au risque d’en oublier, merci à : Coco, Dédé, Pedro, Jo, So, Nico, Julie, Rom, Jess, Marion, Mika, Pauline, Pippo, Audrey, Camille... Merci aussi à toute ma famille, à mes parents qui ont pu être présents pour ma soutenance, à ma sœur qui est régulièrement passée à Lyon pendant ma thèse, mais surtout à Léopold sans qui l’organisation du pot m’aurait bien plus stressé. Enfin Marie, merci pour ton soutien pendant ces trois dernières années, mais merci surtout de m’avoir suivi à Lyon. Et toi lecteur, si tu n’as pas encore trouvé ton nom, je ne t’ai pas oublié. J’espère juste que /dev/random te permettra de le trouver parmi tous les autres dans la grille suivante. O K R A M S H T E R G E N N A Z O G U X U E L L I M A C H I R A Z J E S S I C A V E A H C A T A N E M A T T H E W Z V M S O P E E I L E R U A Y H T A C R W S A O A Q N H K T T H E N I R E H T A C U R L T M P I P D X N W P L E O P O L D E I E N S I U C O C X E M O S E V E R I N E N E F T K D O T R A R A L L P E O L D H N H E F E A E L S O V O R E Y G E E B E O Z I G T L S N A I L I L C N D W A A Y I A L E V N L A I S R A E F I E W H W E R I A R N U E A L L V H N R N N P C A I A R H A Y E S C J S U K C D I A C I L V M A T R M O I N N E I A R K Q I E M S L Z M A D O I S T I I M N P I R F X J O Y N H N T C H G Q S A V I A E S U D F R S C F R E D E R I C A M J X T F T R I A Y L A E T I T I A L J B O R A S T I T J O E I L I M E V E L Y N E R X M R V N E M M N A H T A N O J R M V S C E L I N A P ivTable des matières Table des matières . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v 1 Introduction 1 2 Trigraphes de Berge apprivoisés 9 2.1 Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2 Trigraphes basiques . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.3 Décompositions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.4 Structure des trigraphes de Berge apprivoisés . . . . . . . . . . . . . 21 2.5 Blocs de décomposition . . . . . . . . . . . . . . . . . . . . . . . . . 28 3 Propriété du grand biparti 35 3.1 Grand biparti dans les trigraphes de Berge apprivoisés . . . . . . . 37 3.2 Clôture par k-joints généralisés . . . . . . . . . . . . . . . . . . . . 44 3.3 Grand biparti dans les classes closes par k-joints . . . . . . . . . . . 45 4 Clique-Stable séparateur 49 4.1 Clique-stable séparateur dans les trigraphes de Berge apprivoisés . . 51 4.2 Clique-stable séparateur dans les classes closes par k-joints . . . . . 55 5 Calcul du stable maximum 59 5.1 Le cas des trigraphes basiques . . . . . . . . . . . . . . . . . . . . . 60 5.2 Stocker α dans les blocs . . . . . . . . . . . . . . . . . . . . . . . . 62 5.3 Calculer α . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 6 Décompositions extrêmes 79 6.1 Décompositions extrêmes . . . . . . . . . . . . . . . . . . . . . . . . 79 6.2 Calculer une fin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 7 Conclusion 95 Bibliographie 97 vTABLE DES MATIÈRES viChapitre 1 Introduction Les graphes permettent de modéliser de nombreux problèmes. Par exemple, affecter un nombre minimal de salles permettant de faire cours sans que deux cours n’aient lieu dans la même salle au même moment est un problème de coloration du graphe d’intervalles représentant les cours. Certains de ces problèmes sont “faciles”, c’est-à-dire qu’il existe un algorithme en temps d’exécution polynomial pour les résoudre, d’autres sont difficiles (NPcomplet) c’est-à-dire que si l’on trouve un algorithme efficace pour les résoudre, on résout par la même occasion tous les problèmes NP (ceux pour lesquels si l’on nous donne une solution il est facile de la vérifier, en particulier tous les problèmes de chiffrement). Cependant même si un problème est difficile sur les graphes généraux, il est possible que sur certaines classes de graphes il soit facile. Le problème du stable maximum est en général difficile, mais dans le cas des graphes bipartis (les graphes sans cycle de longueur impaire ou de manière équivalente, les graphes pouvant se partitionner en deux ensembles de sommets V1 et V2, tels que les seules arêtes soient entre V1 et V2, c’est-à-dire qu’il n’y ait aucune arête dans V1 ni dans V2) il devient facile. Notons bien que l’adjectif facile veut seulement dire ici qu’il existe un algorithme polynomial (donc dans un certain sens efficace) pour le résoudre et pas que cet algorithme est “facile” à trouver. Par exemple, pour résoudre le problème du stable maximum dans les graphes bipartis, il faut utiliser le théorème de Kőnig assurant l’égalité entre deux paramètres de graphe et un algorithme de couplage qui est maintenant classique. Il est donc intéressant d’étudier des classes de graphes. D’un point de vue théorique afin de comprendre ce qui fait la difficulté d’un problème, mais également d’un point de vue pratique. En effet en modélisant un problème il est tout à fait possible que le graphe obtenu ait des propriétés spécifiques et qu’il soit alors 1CHAPITRE 1. INTRODUCTION 1 1 1 1 2 2 2 3 3 3 Figure 1.1 – Exemple de coloration possible d’avoir des algorithmes efficaces. De nombreuses restrictions peuvent être obtenues, par exemple un graphe peut être obtenu à partir d’une carte routière et donc être représenté sans que ses arêtes ne se croisent (il est alors planaire). Il peut être obtenu à partir d’intersections d’intervalles de R (c’est alors un graphe d’intervalles) ou de contraintes entre deux types d’objets. Nous nous intéressons particulièrement aux classes de graphes définies par sous-graphes induits interdits, c’est-à-dire qu’en supprimant des sommets, on est assuré de ne pas pouvoir obtenir certains sous-graphes. De manière équivalente cela veut dire que quel que soit le sommet que l’on supprime, le graphe reste dans notre classe, ce qui permet par exemple de faire des inductions. Les graphes bipartis sont un exemple de classe de graphe définie par sous-graphes induits interdits (les cycles de longueur impaire). La question générale est celle de l’influence des propriétés locales (on interdit localement une configuration) sur les propriétés globales : comment peut-on trouver un ensemble de taille maximum de sommets tous deux à deux non-adjacents, comment peut-on colorier le graphe avec seulement k couleurs ? Le problème de coloration est le suivant : étant donné un graphe G, nous voulons donner à chacun de ses sommets une couleur (classiquement on identifie les couleurs à des entiers), telle que deux sommets adjacents n’aient pas la même couleur. Une solution triviale est de donner à chaque sommet une couleur diffé- rente, mais nous cherchons à minimiser le nombre de couleurs différentes utilisées. Pour un graphe G on appelle nombre chromatique que l’on note χ(G) le nombre minimum de couleurs nécessaire pour colorier G. Une question naturelle à propos du problème de coloration, et c’est celle qui 2va motiver l’introduction de notre classe de graphes, est la suivante : pourquoi un graphe G peut-il être colorié avec c couleurs mais pas avec c − 1 ? Il est facile de trouver des conditions nécessaires. Par exemple, si un graphe contient une arête, c’est-à-dire deux sommets adjacents, il ne peut pas être colorié avec moins de 2 couleurs. Plus généralement s’il contient une clique de taille k (un ensemble de sommets tous deux à deux adjacents) alors il ne pourra pas être colorié avec strictement moins de k couleurs. Pour un graphe G on note ω(G) la taille de sa plus grande clique. Ce que nous venons de voir peut se traduire avec nos notations : Pour tout graphe G, χ(G) ≥ ω(G). Cependant la présence de clique n’est pas la seule obstruction. Par exemple, il n’y a pas de clique de taille strictement supé- rieure à deux dans un cycle sans corde sur 5 sommets, pourtant il est impossible de le colorier avec strictement moins de 3 couleurs. Plus généralement, il existe de nombreuses constructions qui pour tout entier k fournissent un graphe Gk n’ayant pas de triangle (de clique de taille plus que 3), mais qui n’est pas coloriable avec moins de k couleurs. Dans ce contexte, il est intéressant de regarder comment sont construits les graphes pour lesquels avoir une clique de taille k est la seule raison de ne pas être k coloriable. Il y a une petite subtilité technique, avec seulement cette propriété n’importe quel graphe est, si on lui ajoute une clique suffisamment grande, dans la classe. Pour éviter ce problème et comprendre vraiment les structures de nos graphes, Claude Berge a proposé dans les années 1960 de demander que tous les sous-graphes induits soient également dans la classe. C’est ainsi que sont définis les graphes parfaits : un graphe G est parfait si et seulement si pour tout sous-graphe induit H de G, alors la taille de la plus grande clique de H est égale au nombre de couleurs minimum permettant de colorier le graphe H. Soit avec nos notations un graphe G est parfait si et seulement si pour tout sous-graphe induit H de G, χ(H) = ω(H). Une autre notion importante est celle du stable. Un stable dans un graphe est un ensemble de sommets sans aucune arête entre eux. Pour tout graphe G on note α(G) la taille d’un stable maximum de G. Une opération classique sur un graphe G est de prendre son complémentaire G définit comme suit : les sommets de G sont les même que ceux de G et deux sommets de G sont adjacents si et seulement s’ils ne sont pas adjacents dans G. On peut alors voir qu’un stable dans G devient une clique dans G et inversement. On a alors avec nos notations α(G) = ω(G). D’un point de vue algorithmique, il est intéressant de noter que trouver un algorithme de coloration dans les graphes parfaits se ramène à un algorithme de calcul de stable et de clique maximum pondérés (on met des poids sur les sommets et on cherche un stable ou une clique de poids maximum). C’est pourquoi cette 3CHAPITRE 1. INTRODUCTION thèse contient un chapitre sur le calcul du stable mais pas sur un algorithme de coloration. Ce résultat classique est difficile à extraire des travaux originaux de Gröstchel, Lovász, Schrijver mais est exposé plus clairement dans plusieurs travaux ultérieurs [33, 36]. Afin que le problème de coloration soit également traité dans cette thèse, le voici avec sa démonstration. Théorème 1.1 (Gröstchel, Lovász, Schrijver, 1988). Pour toute classe C autocomplémentaire de graphes parfaits, s’il existe un algorithme de complexité O(n k ) pour calculer un stable maximum pondéré d’un graphe de C, alors il existe un algorithme de complexité O(n k+2) pour colorier les graphes de C. Démonstration. Commençons par donner un algorithme qui étant donné un graphe G de C et une liste de cliques maximums de G K1, . . . , Kt avec t < |V (G)| calcule en temps O(n k ) un stable de G intersectant toutes ces cliques. Donnons à chaque sommets le poids yv = |{i; v ∈ Ki}|. Ce poids peut être nul. Calculons alors avec notre algorithme un stable pondéré maximum S. Nous alons montrer que S intersecte bien toutes les cliques Ki . Considérons alors le graphe G0 obtenu à partir de G en réplicant yv fois chaque sommet v. Observons que G0 peut ne pas être dans C mais est un graphe parfait. En réplicant yv fois chaque sommet v de S nous obtenons S 0 un stable maximum de G0 . Par construction, G0 peut être partitionné en t cliques de taille ω(G) qui forment un coloriage optimale de G0 car α(G0 ) = ω(G0 ) = ω(G). Puisque que le complémentaire d’un graphe parfait est parfait, G0 est parfait, et donc |S 0 | = t. Donc dans G, S intersecte toutes les cliques Ki . Nous allons maintenant montrer comment trouver un stable S intersectant toutes les cliques maximum de G. Ce stable formera une couleur et nous appliquerons ensuite cette méthode inductivement sur G \ S qui est bien χ(G) − 1 coloriable. Notons que la classe C n’a pas besoin d’être héréditaire, puisqu’on peut émuler G\S en donnant un poids nul aux sommets de S. Commençons avec t = 0. À chaque étape nous avons une liste de cliques maximums K1, . . . , Kt et nous calculons un stable S les intersectant toutes avec la méthode décrite précédament. Si ω(G \ S) < ω(G), alors notre stable intersecte toute les cliques maximums de G. Dans le cas contraire, calculons une clique maximum Kt+1 de G\S. Ce qui revient à calculer un stable maximum dans G \ S et qui est possible car notre classe est autocomplémentaire et en donnant un poids nul aux sommets de S. Pour prouver notre résultat nous n’avons plus qu’à montrer que t la taille de notre liste de clique maximum est bornée par |V (G)|. 41 1 2 2 3 1 1 1 2 2 2 3 1 1 2 2 3 3 4 Figure 1.2 – Trous et complémentaire de trous (C5 = C5, C7 et C7) Soit Mt la matrice d’incidence des cliques K1, . . . Kt . C’est-à-dire que les colonnes de Mt correspondent aux sommets de G et que chaque ligne est une clique. Montrons par induction que les lignes de Mt sont indépendantes. Le cas de base est trivial. Supposons que les lignes de Mt sont indépendantes et montrons que celles de Mt+1 le sont. Soit x le vecteur d’incidence x de S. On a Mtx = 1 mais pas de Mt+1x = 1. Supposons que les lignes de Mt+1 ne soient pas indépendantes. Nous avons, Kt+1 = λ1K1 + · · · + λtKt . En multipliant par x nous avons Kt+1x = λ1 + · · · + λt 6= 1. En multipliant par le vecteur colonne 1 nous avons alors ω(G) = Kt+11 = λ1ω(G) + · · · + λtω. Donc λ1 + · · · + λt = 1, une contradiction. Par conséquent, les matrices M1, M2, . . . ne peuvent avoir plus de |V (G)| lignes, et notre nombre d’itérations est bien borné par |V (G)|. Comme nous l’avons vu, contenir un cycle sans corde de longueur impaire nous assure de ne pas être parfait. Il est facile de voir que contenir le complémentaire d’un cycle sans corde de longueur impaire (tous les sommets non-adjacents deviennent adjacents et ceux adjacents deviennent non-adjacents, pour tout graphe G on note G son complémentaire) empêche également un graphe d’être parfait. On appelle trou un cycle sans corde, et on note Cn le trou de longueur n. On dit qu’un graphe sans trou, ni complémentaire de trou de longueur impaire supérieure à 4 est un graphe de Berge. La propriété d’être parfait pour un graphe est une propriété globale et elle implique la propriété locale d’être de Berge. Un exemple trivial d’influence de propriété locale ou d’interdiction de structures locales sur la coloration est celui d’interdire les arêtes. Dans ce cas il est immédiat que le graphe est coloriable avec une seule couleur. Voyons un exemple plus intéressant. On note P4 le chemin de 4 sommets, ce graphe a 3 arêtes. Un 5CHAPITRE 1. INTRODUCTION graphe G est sans P4 s’il ne contient pas P4 en tant que sous graphe induit. Théorème 1.2. Les graphes sans P4 sont coloriables optimalement avec l’algorithme suivant : Commençons par attribuer à chaque couleur un entier. Puis tant qu’il existe un sommet non colorié le colorier avec la plus petite couleur non utilisée par un de ses voisins. Démonstration. Notons k le nombre de couleurs utilisées par l’algorithme. Soit i le plus petit entier, tel qu’il existe une clique composée de k − i + 1 sommets coloriés de i à k. Si le graphe ne contient pas d’arête, il est clair que l’algorithme est valide, sinon cette clique contient au moins 2 sommets. Nous allons montrer que i = 1. Supposons que ce n’est pas le cas. Par définition de l’algorithme, tout sommet de la clique a un voisin colorié par i − 1, notons S cet ensemble de sommets. Par minimalité de i, S ne peut être réduit à un unique sommet. De plus, les sommets de S ayant la même couleur, ils forment donc un stable (ils sont tous deux à deux non-adjacents). Il existe deux sommets u et v de S, tels que u a un voisin x dans la clique qui n’est pas un voisin de v et v a un voisin dans la clique qui n’est pas un voisin de u. Les sommets u − x − y − v forment un P4, c’est une contradiction. Il existe donc une clique de taille k. Comme nous l’avons vu précédemment il est donc impossible de colorier le graphe avec strictement moins de k couleurs. Notre algorithme est donc optimal. Cette démonstration classique montre en fait que les graphes sans P4 sont des graphes parfaits. Dans les années 1960, Claude Berge a conjecturé qu’un graphe était parfait si et seulement si il était de Berge. Comme on vient de le voir, le passage du global (être coloriable avec exactement le même nombre de couleurs que la taille de la plus grande clique) au local (ne pas contenir de trou ni de complémentaire de trou de longueur impaire plus grande que 4) est clair. D’après les définitions : les graphes parfaits sont des graphes de Berge. C’est la réciproque, le passage du local au global qui est complexe. Cette conjecture a motivé de nombreuses recherches, utilisant des outils très différents (polyèdre, combinatoire). Finalement c’est grâce à un théorème de structure qu’en 2002 Chudnovsky, Robertson, Seymour et Thomas ont pu démontrer cette conjecture. Théorème 1.3 (Chudnovsky, Robertson, Seymour, Thomas (2002)). Les graphes de Berge sont parfaits. 6Un théorème de structure est un théorème disant que les graphes d’une classe sont : ou bien basiques ou bien admettent une décomposition. Par basique, on entend qu’ils sont dans une sous-classe de graphe suffisamment simple ou étudiée pour qu’il soit possible de résoudre notre problème sur cette sous-classe. Par décomposition, on entend que le graphe est obtenu en recollant de manière bien définie deux graphes plus petits de la classe. Le sommet d’articulation (un sommet dont la suppression déconnecte le graphe) est un exemple de décomposition. Si l’on a deux graphes G1 et G2 on peut en former un troisième G3 plus gros en identifiant un sommet de G1 avec un sommet de G2, ce sommet devient alors un sommet d’articulation de G3. Il existe également une version plus forte des théorèmes de structure : les théorèmes de structure extrême, qui énoncent qu’un graphe est ou bien basique, ou bien admet une décomposition telle qu’un côté de la décomposition est basique. Si l’on regarde l’arbre de décomposition d’un théorème de structure extrême, c’est un peigne (chaque nœud interne de l’arbre a comme fils une feuille et un nœud). Les théorèmes de structure sont généralement très utiles pour faire des démonstrations ou obtenir des algorithmes. Ils permettent de faire des inductions. Si une propriété est vraie pour les graphes basiques et qu’il est possible en utilisant la forme de la décomposition d’avoir cette propriété sur la composition de graphes, alors la propriété est vraie pour la classe de graphes. Certaines décompositions sont faciles à utiliser, par exemple le sommet d’articulation ou plus généralement la clique d’articulation (une clique dont la suppression déconnecte le graphe) qui peuvent, par exemple, être utilisées pour la coloration. D’autres sont très difficiles à utiliser, par exemple le star-cutset (un sommet dont la suppression et la suppression de certains de ses voisins déconnectent le graphe) et ses généralisations. En effet, il est possible que le star-cutset soit constitué de la majeure partie du graphe, dans ce cas toute tentative d’induction nécessitant de conserver le starcutset dans chaque partie de la décomposition (c’est ce qui est le cas classique) conduira nécessairement à un algorithme exponentiel. Dans cette thèse, nous allons utiliser le théorème de structure des graphes de Berge afin de démontrer un certain nombre de propriétés et d’algorithmes. Le théorème de Chudnovsky et al. et dont nous avons déjà parlé est le suivant. Théorème 1.4 (Chudnovsky, Robertson, Seymour, Thomas (2002)). Les graphes de Berge sont basiques ou décomposables par skew-partitions équilibrées, 2-joints ou complémentaire de 2-joints. Toutes les définitions seront données dans le chapitre 2. Nous ne savons pas 7CHAPITRE 1. INTRODUCTION utiliser les skew-partitions (une décomposition généralisant les star-cutset) dans les algorithmes, nous nous focalisons donc sur les graphes de Berge sans skewpartition. Vu que notre classe et que nos problèmes sont auto-complémentaires notre principale décomposition est donc le 2-joint. Nous essayerons tant que possible de généraliser nos résultats à d’autres classes décomposables par k-joints. Dans le chapitre 2, nous donnons toutes les définitions. Nous avons en fait besoin de généraliser la définition d’arête d’un graphe. Nous aurons alors des arêtes fortes, des non-arêtes fortes et un nouveau type d’adjacence : les arêtes optionnelles qui encodent une adjacence floue. Ces graphes généralisés sont appelés trigraphes et on été introduit par Chudnovsky et al. lors de la preuve du théorème fort des graphes parfaits. Nous avons donc besoin de redéfinir toutes les notions usuelles de graphe, ainsi que le théorème de structure des graphes de Berge. Dans le chapitre 3, nous nous intéressons aux classes pour lesquelles il existe pour tout graphe de la classe deux ensembles de sommets complets dans le graphe ou dans son complément de taille linéaire. Il y a des contre-exemples de classes de graphes de Berge sans ces ensembles, mais lorsqu’on exclut les skew-partition ces ensembles existent toujours. Il est possible de généraliser cette propriété aux classes construites par k-joints. Dans le chapitre 4, nous nous intéressons à la propriété de la clique-stable séparation, c’est-à-dire à l’existence d’un nombre polynomial de partitions du graphe en 2 ensembles tels que pour toute clique et tout stable sans intersection, il existe une partition contenant la clique d’un côté et le stable de l’autre. Ce problème est ouvert en général sur les graphes de Berge, mais nous pouvons le démontrer dans le cas où on exclut les skew-partition. Ici encore cette propriété peut-être étendue aux classes construites par k-joints. Dans le chapitre 5, nous nous intéressons au calcul en temps polynomial du stable maximum. Notre algorithme est constructif et donne directement les sommets du stable. Dans le cas général des classes héréditaires on peut reconstruire avec un surcoût linéaire un stable maximum en sachant calculer sa valeur, cependant notre classe n’est pas héréditaire. Cet algorithme ne se généralise pas aux classes construites par k-joints, il existe de telles classes où le calcul du stable maximum est NP-complet. À partir de l’algorithme de calcul du stable on peut déduire un algorithme qui calcule une coloration optimale avec un surcoût de O(n 2 ). Dans le chapitre 6, nous montrons qu’en étendant notre ensemble de décompositions nous pouvons obtenir une version extrême du théorème de structure. Nous donnons également des algorithmes permettant de calculer une telle décomposition. 8Chapitre 2 Trigraphes de Berge apprivoisés Les résultats de ce chapitre ont été obtenus avec Maria Chudnovsky, Nicolas Trotignon et Kristina Vušković, ils font l’objet d’un article [15] soumis à Journal of Combinatorial Theory, Series B. Nous introduisons dans ce chapitre une généralisation des graphes, les trigraphes. Il semble que cette notion de trigraphe, inventée par Chudnovsky, soit en train de devenir un outil très utile en théorie structurelle des graphes. Les trigraphes ont entre autre été utilisés pour éliminer la paire homogène (deux ensembles A et B de sommets se comportant comme deux sommets vis à vis du reste du graphe i.e tels que le reste du graphe se décompose en quatre ensembles : les sommets complétement adjacents aux sommets de A et de B, ceux complétement adjacents aux sommets de A et complétement non-adjacents aux sommets de B, ceux complétement non-adjacents aux sommets de A et complétement adjacents aux sommets de B et ceux complétement non-adjacents aux sommets de A et de B) de la liste des décompositions utilisées pour décomposer les graphes de Berge [9]. Ils apparaissent également dans l’étude des graphes sans griffe [14] ou dans celle des graphes sans taureau [11, 10]. La notion de trigraphe apparait également lors de l’étude d’homomorphismes [18, 19]. Cependant il faut bien noter que dans ce dernier cas, même si le nom et les idées générales sont identiques, les définitions diffèrent légèrement. Avant de tout définir, essayons d’expliquer informellement l’intérêt des trigraphes. Le premier exemple de leurs utilisation est dans la démonstration de l’amélioration du théorème de décomposition des graphes de Berge. En effet, lors 9CHAPITRE 2. TRIGRAPHES DE BERGE APPRIVOISÉS A B Figure 2.1 – Paire Homogène (Une double arête entre deux ensembles indique qu’ils sont complet, une arête simple indique qu’on ne sait rien sur leur adjacence, l’absence d’arête indique qu’il n’y a aucune arête entre les deux ensembles) de la preuve du théorème des graphes parfaits Chudnovsky, Robertson, Seymour et Thomas [13] parviennent à décomposer les graphes de Berge en utilisant trois types de décompositions. Chudnovsky [9] montre alors qu’une de ces décompositions, la paire homogène est en fait inutile. Voyons l’intérêt des trigraphes dans la démonstration de ce résultat. L’idée de sa preuve est de prendre le plus petit graphe G dont la seule décomposition possible est une paire homogène et de chercher une contradiction. L’idée naturelle est alors de contracter cette paire homogène afin d’obtenir un graphe plus petit G0 , qui par hypothèse de minimalité, admet alors une décomposition autre que la paire homogène. On peut alors déduire de cette décomposition une décomposition dans G. Ce qui est contradictoire puisque par hypothèse, G n’est décomposable que par paire homogène. Cette idée est en fait une méthode classique de démonstration en théorie structurelle de graphes. Le principal problème (et c’est pour répondre à ce problème que les trigraphes ont été introduit) est de savoir comment contracter la paire homogène. Une paire homogène étant deux ensembles A et B de sommets se comportant comme deux sommets vis à vis du reste du graphe, on peut vouloir les réduire à deux sommets a et b tout en préservant leurs adjacences par rapport au reste du graphe. La question est de savoir s’il faut ou non mettre une arête entre ces deux sommets contractés. Sans donner les définitions précises, si on décide de ne pas mettre d’arête entre a et b, dans un certain sens, a va pouvoir être séparé de b, alors que dans le graphe de départ, séparer A de B n’a pas de sens. Nous avons le même problème dans le complémentaire du graphe si l’on décide de mettre une arête entre a et b. En 10fait aucun de ces choix n’est le bon, en effet a priori chacun de ces choix pourrait créer une décomposition. Ce n’est finalement pas le cas puisque le résultat est vrai mais toute démonstration se heurte à ce problème. L’idée est alors de mettre une arête optionnelle. Les trigraphes sont alors définis comme des graphes mais avec trois types d’adjacence, les arêtes, les arêtes optionnelles et les non-arêtes. Une réalisation d’un trigraphe est alors une affectation des arêtes optionnelles en arêtes et non-arêtes. Tout le vocabulaire et les propriétés sur les graphes se traduisent alors sur les trigraphes de la manière suivante : Une propriété P est vraie sur le trigraphe T si et seulement si elle est vraie sur toutes les réalisations G de T. On ne crée alors plus de décomposition car on peut alors montrer que si toutes les réalisations contiennent cette décomposition, alors cette décomposition était présente à l’origine, ce qui mène à une contradiction. Bien entendu pour pouvoir faire l’induction tous les résultats doivent être vrais sur les trigraphes. Comme c’est souvent le cas lors des preuves par induction afin d’obtenir le résultat voulu nous devons en montrer un plus fort. Les trigraphes permettent donc de travailler naturellement sur des hypothèses d’induction plus fortes ; pour toute réalisation la propriété doit être vraie ; ce qui nous permet alors de contracter des ensembles de sommets tout en préservant l’information d’adjacence entre ces sommets. Certains étaient adjacents, d’autre non, et suivant la réalisation choisie on a ou pas cet état. Ceci nous permet, si une décomposition existe (dans toutes les réalisations), de la trouver dans le graphe de départ. Ceci n’étant que de brèves explications, voyons maintenant les définitions pré- cises. Dans ce chapitre nous allons commencer par formaliser le vocabulaire usuel des graphes sur les trigraphes. Nous définissons ensuite plusieurs classes de trigraphes basiques (il s’agit des classes de base du thérorème fort des graphes parfaits, à savoir les trigraphes bipartis, les line trigraphes et les trigraphes doublés) et les décompositions que nous allons utiliser, là encore il s’agit des décompositions utilisées pour la démonstration du théorème fort des graphes parfaits à savoir les 2-joints et les skew-partitions équilibrées. Comme mentionné précédemment les paires homogènes ne sont pas utiles et nous les définirons plus tard lorsque nous voudrons une version “extrême” du théorème de structure, c’est à dire un théorème de structure dans lequel à chaque étape de décomposition, un côté au moins de la décomposition est un trigraphe basique. Nous définissons ensuite la classe des trigraphes que nous allons étudier, les trigraphes de Berge bigames, il s’agit d’une généralisation des trigraphes monogames utilisés dans [8]. Dans les trigraphes monogames les arêtes optionnelles forment un couplage alors que dans 11CHAPITRE 2. TRIGRAPHES DE BERGE APPRIVOISÉS les trigraphes bigames on autorise sous certaines conditions des composantes de deux arêtes optionnelles. Nous devons alors étendre le théorème de décomposition des trigraphes de Berge monogames aux trigraphes de Berge bigames. Enfin, nous pourrons définir la sous-classe qui nous intéresse, à savoir les trigraphes de Berge apprivoisés et montrer qu’ils se comportent bien vis à vis des décompositions du théorème. En effet il est possible de les décomposer tout en gardant l’information utile de l’autre partie de la décomposition et en restant dans la sous-classe. 2.1 Définitions Pour tout ensemble X, on note  X 2  l’ensemble de tous les sous-ensembles de X de taille 2. Pour alléger les notations, un élément {u, v} de  X 2  sera également noté uv ou vu. Un trigraphe T est composé d’un ensemble fini V (T), appelé l’ensemble de sommet de T et d’une application θ :  V (T) 2  −→ {−1, 0, 1}, appelée fonction d’adjacence. Deux sommets distincts de T sont dit fortement adjacents si θ(uv) = 1, fortement antiadjacents si θ(uv) = −1 et semiadjacents si θ(uv) = 0. On dit que u et v sont adjacents s’ils sont fortement adjacents ou semiadjacents ; et qu’ils sont antiadjacents, s’ils sont fortement antiadjacents ou semiadjacents. Une arête (antiarête) est une paire de sommets adjacents (antiadjacents). Si u et v sont adjacents (antiadjacents), on dit également que u est adjacent (antiadjacent) à v, ou que u est un voisin (antivoisin) de v. De la même manière, si u et v sont fortement adjacents (fortement antiadjacents), alors u est un voisin fort (antivoisin fort) de v. On note E(T), l’ensemble de toutes les paires fortement adjacentes de T, E(T) l’ensemble de toutes les paires fortement antiadjacentes de T et E ∗ (T) l’ensemble de toutes les paires semiadjacentes de T. Un trigraphe T peut être considèré comme un graphe si et seulement si E ∗ (T) est vide. Une paire {u, v} ⊆ V (T) de sommets distincts est une arête optionnelle si θ(uv) = 0, une arête forte si θ(uv) = 1 et une antiarête forte si θ(uv) = −1. Une arête uv (antiarête, arête forte, antiarête forte, arête optionnelle) est entre deux ensembles A ⊆ V (T) et B ⊆ V (T) si u ∈ A et v ∈ B ou si u ∈ B et v ∈ A. Soit T un trigraphe. Le complément de T est le trigraphe T avec le même ensemble de sommet V (T) que T, et avec la fonction d’adjacence θ = −θ. Pour v ∈ V (T), on note N(v) l’ensemble de tous les sommets de V (T) \ {v} qui sont adjacents à v. Soit A ⊂ V (T) et b ∈ V (T) \ A. On dit que b est fortement complet à A si b est fortement adjacent à tous les sommets de A ; b est fortement 122.1. DÉFINITIONS anticomplet à A si b est fortement antiadjacent à tous les sommets de A ; b est complet à A si b est adjacent à tous les sommets de A ; et b est anticomplet à A si b est anticomplet à tous les sommets de A. Pour deux ensembles disjoints A, B de V (T), B est fortement complet (fortement anticomplet, complet, anticomplet) à A si tous les sommets de B sont fortement complets (fortement anticomplets, complets, anticomplets) à A. Un ensemble de sommets X ⊆ V (T) domine (domine fortement) T, si pour tout sommet v ∈ V (T) \ X il existe u ∈ X, tel que v est adjacent (fortement adjacent) à u. Une clique de T est un ensemble de sommets deux à deux adjacents. Une clique forte est un ensemble de sommets deux à deux fortement adjacents. Un stable est un ensemble de sommets deux à deux antiadjacents. Un stable fort est un ensemble de sommets deux à deux fortement antiadjacents. Remarquons qu’avec ces définitions une clique et un stable peuvent s’intersecter sur plusieurs sommets, dans ce cas l’intersection est composée uniquement d’arêtes optionnelles. Pour X ⊆ V (T), le trigraphe induit par T sur X (noté T|X) a X comme ensemble de sommets et θ restreinte sur  X 2  comme fonction d’adjacence. L’isomorphisme entre deux trigraphes est défini de manière naturelle et pour deux trigraphes T et H, on dit que H est un trigraphe induit de T ou que T contient H en tant que sous-trigraphe induit, s’il existe X ⊆ V (T), tel que H est isomorphe à T|X. Comme la relation de sous-graphe induit est la principale relation étudiée dans cette thèse, on dit également que T contient H si T contient H comme sous-trigraphe induit. On note T \ X le trigraphe T|(V (T) \ X). Soit T un trigraphe. Un chemin P de T est une suite de sommets distincts p1, . . . , pk telle que ou bien k = 1, ou bien pour i, j ∈ {1, . . . , k}, pi est adjacent à pj , si |i − j| = 1 et pi est antiadjacent à pj si |i − j| > 1. Dans ce cas, V (P) = {p1, . . . , pk} et on dit que P est un chemin de p1 à pk, son intérieur est l’ensemble P ∗ = V (P) \ {p1, pk}, et la taille de P est k − 1. Parfois on note P par p1- · · · -pk. Notons que puisqu’un graphe est également un trigraphe, un chemin dans un graphe avec notre définition est plus généralement appelé dans la littérature un chemin sans corde. Un trou dans un trigraphe T est un sous-trigraphe induit H de T sur un ensemble de sommets h1, . . . , hk avec k ≥ 4, et pour i, j ∈ {1, . . . , k}, hi est adjacent à hj si |i − j| = 1 ou si |i − j| = k − 1 ; et hi est antiadjacent à hj si 1 < |i − j| < k − 1. La taille d’un trou est égale au nombre de sommets qu’il contient. Parfois on note H par h1- · · · -hk-h1. Un antichemin (resp. antitrou) dans T est un sous-trigraphe induit de T dont le complément est un chemin (resp. trou) dans T. 13CHAPITRE 2. TRIGRAPHES DE BERGE APPRIVOISÉS Une semiréalisation d’un trigraphe T est n’importe quel trigraphe T 0 sur l’ensemble de sommet V (T) qui vérifie les propriétés suivantes : pour tout uv ∈  V (T) 2  , si uv ∈ E(T) alors uv ∈ E(T 0 ), et si uv ∈ E(T) alors uv ∈ E(T 0 ). On peut voir une semiréalisation de T comme une affectation des arêtes optionnelles de T avec trois valeurs possibles : “arête forte”, “antiarête forte” ou “arête optionnelle”. Une réalisation de T est n’importe quel graphe qui est une semiréalisation de T (c’est à dire que toutes les arêtes optionnelles sont assignées aux valeurs “arête forte” ou “antiarête forte”). Pour S ⊆ E ∗ (T), on note par GT S la réalisation de T avec E(T)∪S comme ensemble d’arêtes, c’est à dire que dans GT S les arêtes optionnelles de S sont assignées à la valeur “arête” et que celles de E ∗ (T) \ S sont assignées à la valeur “antiarête”. La réalisation GT E ∗(T) est appelée réalisation complète de T. Soit T un trigraphe. Pour X ⊆ V (T), on dit que X et T|X sont connexes (resp. anticonnexes) si le graphe G T|X E ∗(T|X) (G T|X ∅ ) est connexe, c’est à dire qu’en remplaçant toute les arêtes optionnelles par des arêtes fortes (resp. antiarêtes fortes) le graphe obtenu est connexe (resp. le complémentaire du graphe obtenu est connexe). Une composante connexe (ou simplement une composante) de X est un sous-ensemble connexe maximal de X, et une anticomposante connexe (ou simplement une anticomposante) de X est un ensemble maximal anticonnexe de X. L’idée des ces définitions est la suivante : — une propriété est vraie sur un trigraphe T s’il existe un graphe G réalisation de T sur laquelle elle est vraie. — une propriété forte est vraie sur un trigraphe T si pour tout graphe G réalisation de T elle est vraie. — une antipropriété est vraie sur un trigraphe T si elle est vraie sur le complémentaire de T (les arêtes fortes deviennent des antiarêtes fortes et inversement). Attention dans les sections suivantes, les trigraphes basiques et les décompositions sont implicitement fortes. En effet si on a besoin de pouvoir parler de trigraphe connexe (au sens faible), nous n’aurons jamais besoin de parler de trigraphe faiblement de Berge ou admettant un 2-joint faible. En effet comme mentionné dans lors des motivations des trigraphes, nous voulons qu’un trigraphe soit basique ou admette une décomposition si et seulement si c’est le cas pour toutes ses réalisations. De cette manière nous pourront transformer une obstruction dans le trigraphe contracté en une obstruction dans le trigraphe de départ. 142.2. TRIGRAPHES BASIQUES 2.2 Trigraphes basiques Un trigraphe T est de Berge, s’il ne contient pas de trou impair ni d’antitrou impair. Par conséquent, un trigraphe est de Berge si et seulement si son complé- ment l’est. Notons également que T est de Berge si et seulement si, toutes ses semiréalisations (réalisations) sont de Berge. Remarquons qu’un trigraphe sans arêtes optionnelles et en particulier toutes réalisations d’un trigraphe peuvent être vues comme un graphe, il est alors important de voir qu’être un trigraphe de Berge pour un trigraphe sans arêtes optionnelles est exactement être un graphe de Berge. Notre définition dans les trigraphes est bien une généralisation aux trigraphes de la définition usuelle dans les graphes. Un trigraphe T est biparti si on peut partitionner son ensemble de sommets en deux stables forts. Toute réalisation d’un trigraphe biparti est un graphe biparti, et donc tout trigraphe biparti est de Berge. De la même manière, les compléments de trigraphes bipartis sont également de Berge. De même cette définition est bien une généralisation de la définition de biparti dans les graphes. Un trigraphe T est un line trigraphe, si la réalisation complète de T est le line graphe d’un graphe biparti et que toute clique de taille au moins 3 dans T est une clique forte. L’énoncé suivant est un résultat simple sur les lines trigraphes. Ici encore un line trigraphe sans arêtes optionnelles est un line graphe de graphe biparti. Lemme 2.1. Si T est un line trigraphe, alors toute réalisation de T est le line graphe d’un graphe biparti. Et plus, toute semiréalisation de T est un line trigraphe. Démonstration. Par définition, la réalisation complète G de T est le line graphe d’un graphe biparti R. Soit S ⊆ E ∗ (T). Définissons RS comme suit. Pour tout xy ∈ E ∗ (T) \ S, soit vxy l’extrémité commune de x et y dans R. Alors vxy est de degré 2 dans R car toute clique de taille au moins 3 dans T est une clique forte. Soit axy et bxy ses voisins. Supprimons vxy de R et remplaçons le par deux nouveaux sommets, uxy, wxy tels que uxy est seulement adjacent à axy, et wxy est seulement adjacent à bxy. Maintenant RS est biparti et GT S est le line graphe de RS. On a alors la première partie du résultat, la seconde suit car la réalisation complète d’une semiréalisation est une réalisation. Remarquons que cela implique que les line trigraphes ainsi que leurs complé- ments sont de Berge. Définissons maintenant les trigraphes semblables aux double 15CHAPITRE 2. TRIGRAPHES DE BERGE APPRIVOISÉS split graphes (défini pour la première fois dans [13]), c’est à dire les trigraphes doublés. Une bonne partition d’un trigraphe T est une partition (X, Y ) de V (T) (les cas X = ∅ ou Y = ∅ ne sont pas exclus) telle que : — Chaque composante de T|X a au plus deux sommets, et chaque anticomposante de T|Y a au plus deux sommets. — Il n’y a pas d’arête optionnelle de T qui intersecte à la fois X et Y — Pour toute composante Cx de T|X, toute anticomposante CY de T|Y et tout sommet v dans CX ∪ CY , il existe au plus une arête forte et une antiarête forte entre CX et CY qui est incidente à v. Un trigraphe est doublé si et seulement s’il a une bonne partition. Les trigraphes doublés peuvent aussi être définis comme les sous-trigraphes induits des double split trigraphes (voir [9] pour une définition des double split trigraphes que nous n’utiliserons pas ici). Remarquons que les trigraphes doublés sont clos par sous-trigraphes induit et par complémentation (en effet (X, Y ) est une bonne partition d’un trigraphe T si et seulement si (Y, X) est une bonne partition de T). Un graphe doublé est n’importe quelle réalisation d’un trigraphe doublé. Nous montrons maintenant le résultat suivant : Lemme 2.2. Si T est un trigraphe doublé, alors toute réalisation de T est un graphe doublé. De plus, toute semiréalisation de T est aussi un graphe doublé. Démonstration. L’énoncé sur les réalisations est clair par définition. Soit T un trigraphe doublé, et (X, Y ) une bonne partition de T. Soit T 0 une semiréalisation de T. Il est facile de voir que (X, Y ) est aussi une bonne partition de T 0 (par exemple, si une arête optionnelle ab de T|X est assignée à la valeur “antiarête”, alors {a} et {b} deviennent des composantes de T 0 |X, mais ils vérifient toujours la définition d’une bonne partition). Ceci prouve le résultat sur les semiréalisations. Remarquons que ceci implique que tout trigraphe doublé est de Berge, car tout graphe doublé est de Berge. Un trigraphe est basique si c’est, ou bien un trigraphe biparti, ou bien le complément d’un trigraphe biparti, ou bien un line trigraphe, ou bien le complément d’un line trigraphe ou bien un trigraphe doublé. Le résultat suivant résume les ré- sultats de cette section et montre bien que nos classes basiques sont implicitement fortement basiques. Lemme 2.3. Les trigraphes basiques sont de Berge et sont clos par soustrigraphe induit, semiréalisation, réalisation et complémentation. 162.3. DÉCOMPOSITIONS A1 C1 B1 A2 C2 B2 X1 X2 Figure 2.2 – 2-joint (Une double arête entre deux ensembles indique qu’ils sont complet, une arête simple indique qu’on ne sait rien sur leur adjacence, l’absence d’arête indique qu’il n’y a aucune arête entre les deux ensembles) 2.3 Décompositions Nous pouvons maintenant décrire les décompositions dont nous aurons besoin afin d’énoncer notre théorème de décomposition. Pour commencer, un 2-joint dans un trigraphe T est une partition (X1, X2) de V (T) telle qu’il existe des ensembles disjoints A1, B1, C1, A2, B2, C2 ⊆ V (T) vérifiant : — X1 = A1 ∪ B1 ∪ C1 et X2 = A2 ∪ B2 ∪ C2 ; — A1, A2, B1 et B2 sont non-vides ; — il n’y a pas d’arête optionnelle qui intersecte à la fois X1 et X2 ; — tout sommet de A1 est fortement adjacent à tous les sommets de A2, et tout sommet de B1 est fortement adjacent à tous les sommets de B2 ; — il n’y a pas d’autre arête forte entre X1 et X2 ; — pour i = 1, 2 |Xi | ≥ 3 ; et — pour i = 1, 2, si |Ai | = |Bi | = 1, alors la réalisation complète de T|Xi n’est pas un chemin de taille deux reliant les membres de Ai et ceux de Bi . 17CHAPITRE 2. TRIGRAPHES DE BERGE APPRIVOISÉS Remarquons bien qu’aucune arête importante (celles entre X1 et X2) pour la définition du 2-joint ne peut être une arête optionnelle. Ici aussi et sauf cas pathologique (Xi est un triangle d’arêtes optionelles ayant un sommet dans chaque ensemble Ai , Bi et Ci), le 2-joint est implicitement fort, dans tout graphe G réalisation de T, (X1, X2) est un 2-joint. Notons bien que dans les trigraphes de Berge ce cas pathologique ne peut pas apparaitre car il contredit le lemme 2.4 énoncé juste après. Nous aurions pu éviter ce problème en choisissant une définition plus forte du 2-joint, par exemple un 2-joint vérifiant par définition tous les points du théorème 2.9. Ce théorème prouve que dans le cas des trigraphes de Berge apprivoisés les 2-joints possèdent certaines conditions techniques supplémentaires que n’a pas ce cas pathologique. Cependant l’utilisation du théorème 2.5 qui est exactement le théorème 3.1 de [9] ne nous autorise pas à utiliser une définition adaptée aux trigraphes de Berge apprivoisés. Dans ces conditions, on dit que (A1, B1, C1, A2, B2, C2) est une affectation de (X1, X2). Le 2-joint est propre si pour i = 1, 2, toute composante de T|Xi intersecte à la fois Ai et Bi . Remarquons que le fait que le 2-joint soit propre ne dépend pas du choix de l’affectation. Un complément de 2-joint d’un trigraphe T est un 2-joint de T. Plus précisé- ment, un complément de 2-joint d’un trigraphe T est une partition (X1, X2) de V (T) telle que (X1, X2) est un 2-joint de T ; et (A1, B1, C1, A2, B2, C2) est une affectation de ce complément de 2-joint, si c’est une affectation du 2-joint correspondant dans le complément, i.e. A1 est fortement complet à B2 ∪ C2 et fortement anticomplet à A2, C1 est fortement complet à X2, et B1 est fortement complet à A2 ∪ C2 et fortement anticomplet à B2. Lemme 2.4. Soit T un trigraphe de Berge et (A1, B1, C1, A2, B2, C2) une affectation d’un 2-joint propre de T. Alors tous les chemins dont une extrémité est dans Ai, l’autre étant dans Bi et dont l’intérieur est dans Ci, pour i = 1, 2 ont des longueurs de même parité. Démonstration. Dans le cas contraire, pour i = 1, 2, soit Pi des chemins dont une extrémité est dans Ai , l’autre extrémité étant dans Bi et dont l’intérieur est dans Ci , tels que P1 et P2 ont des parités différentes. Ils forment un trou impair, c’est une contradiction. Notre deuxième décomposition est la skew-partition équilibrée. Soit A, B deux ensembles disjoints de V (T). On dit que la paire (A, B) est équilibrée s’il n’y a pas de chemin impair de longueur strictement supérieure à 1 dont les extrémités 182.3. DÉCOMPOSITIONS A1 C1 B1 A2 C2 B2 X1 X2 Figure 2.3 – Complèment de 2-joint (Une double arête entre deux ensembles indique qu’ils sont complet, une arête simple indique qu’on ne sait rien sur leur adjacence, l’absence d’arête indique qu’il n’y a aucune arête entre les deux ensembles) A B C D Figure 2.4 – Skew-partition (Une double arête entre deux ensembles indique qu’ils sont complet, l’absence d’arête indique qu’il n’y a aucune arête entre les deux ensembles) 19CHAPITRE 2. TRIGRAPHES DE BERGE APPRIVOISÉS sont dans B et dont l’intérieur est dans A et qu’il n’y a pas non plus d’antichemin de longueur strictement supérieure à 1 dont les extrémités sont dans A et dont l’intérieur est dans B. Une skew-partition est une partition (A, B) de V (T) telle que A n’est pas connexe et B n’est pas anticonnexe. Une skew-partition (A, B) est équilibrée si la paire (A, B) l’est. Étant donné une skew-partition équilibrée (A, B), (A1, A2, B1, B2) est une affectation de (A, B) si A1, A2, B1 et B2 sont des ensembles disjoints et non-vide, A1 ∪ A2 = A, B1 ∪ B2 = B, A1 est fortement anticomplet à A2, et B1 est fortement complet à B2. Remarquons que pour toute skew-partition équilibrée, il existe au moins une affectation. Attention, l’adjectif “équilibrée” pourrait laisser penser que les tailles des deux parties sont comparables, ce n’est absolument pas le cas. Il est tout à fait possible qu’un des ensembles de l’affectation concentre presque tout le trigraphe, le reste ne comportant qu’un nombre fixe négligeable de sommets. C’est le problème majeur à l’élaboration d’algorithmes utilisant les skew-partitions équilibrées. Si nous étions assurés que chaque ensemble de l’affectation fût composé d’au moins une fraction du trigraphe, nos algorithmes pourraient alors s’étendre sur tous les graphes parfaits. Ces deux décompositions généralisent les décompositions utilisées dans [13]. De plus toutes les arêtes et non-arêtes “importantes” dans ces décompositions doivent respectivement être des arêtes fortes et des antiarêtes fortes du trigraphe. Nos décompositions sont donc bien implicitement fortes. Nous pouvons maintenant énoncer plusieurs lemmes techniques. Un trigraphe est dit monogame si tous ses sommets appartiennent à au plus une arête optionnelle. Nous pouvons maintenant énoncer le théorème de décomposition pour les trigraphes monogames de Berge. C’est le théorème 3.1 de [9]. Théorème 2.5. Soit T un trigraphe monogame de Berge. Alors un des points suivants est vrai : — T est basique ; — T ou T admet un 2-joint propre ; ou — T admet une skew-partition équilibrée. Si (A, B) est une skew-partition d’un trigraphe T, on dit que B est un star cutset de T si au moins une anticomposante de B a taille 1. L’énoncé suivant est le Théorème 5.9 de [8]. 202.4. STRUCTURE DES TRIGRAPHES DE BERGE APPRIVOISÉS Lemme 2.6. Si un trigraphe de Berge admet un star cutset, alors il admet une skew-partition équilibrée. On dit que X est un ensemble homogène d’un trigraphe T si 1 < |X| < |V (T)|, et que tout sommet de V (T) \ X est ou bien fortement complet ou bien fortement anticomplet à X. Lemme 2.7. Soit T un trigraphe et X un ensemble homogène de T, tel qu’il existe un sommet de V (T)\X fortement complet à X, et un sommet de V (T)\ X fortement anticomplet à X. Alors T admet une skew-partition équilibrée. Démonstration. Soit A l’ensemble des sommets de V (T) \ X qui sont fortement anticomplets à X, et C l’ensemble des sommets de V (T) \ X qui sont fortement complets à X. Soit x ∈ X. Alors C ∪ {x} est un star cutset de T (puisque A est X \ {x} sont non-vides et fortement anticomplets entre eux), et donc T admet une skew-partition équilibrée d’après le lemme 2.6. Nous aurons également besoin du résultat suivant (qui est un corollaire immé- diat du théorème 5.13 de [8]) : Lemme 2.8. Soit T un trigraphe de Berge. Supposons qu’il y ait une partition de V (T) en quatre ensembles non-vides X, Y, L, R, tels que L est fortement anticomplet à R, et X est fortement complet à Y . Si (L, Y ) est équilibrée alors T admet une skew-partition équilibrée. 2.4 Structure des trigraphes de Berge apprivoisés Pour les besoins de nos inductions nous aurons besoin d’utiliser des trigraphes plus généraux que les trigraphes monogame. Nous allons donc définir les trigraphes bigame et montrer que le théorème de décomposition des trigraphes monogames de Berge s’étend sur les trigraphes bigames de Berge. Pour se familiariser avec notre objet d’étude principal, les trigraphes de Berge apprivoisés (définis dans la suite de ce paragraphe), nous allons commencer par montrer que dans ces trigraphes les 2-joints vérifient plusieurs conditions techniques supplémentaires. Soit T un trigraphe, notons par Σ(T) le graphe ayant V (T) comme ensemble de sommets et E ∗ (T) (les arêtes optionnelles de T) comme ensemble d’arêtes. Les 21CHAPITRE 2. TRIGRAPHES DE BERGE APPRIVOISÉS Figure 2.5 – Configuration possible des arêtes optionnelles dans les trigraphes bigame (les arêtes sont représentées par des traits pleins et les arêtes optionnelles par des pointillés) composantes connexes de Σ(T) sont appelées les composantes optionnelles de T. On dit qu’un trigraphe de Berge est bigame si les propriétés suivantes sont vérifiées : — Chaque composante optionnelle de T a au plus deux arêtes (et donc aucun sommet n’a plus de deux voisins dans Σ(T)). — Soit v ∈ V (T) de degré deux dans Σ(T), notons x et y ses voisins. Alors, ou bien v est fortement complet à V (T) \ {v, x, y} dans T, et x est fortement adjacent à y dans T (dans ce cas on dit que v et la composante optionnelle qui contient v sont lourds) ou bien v est fortement anticomplet à V (T) \ {v, x, y} dans T, et x est fortement antiadjacent à y dans T (dans ce cas on dit que v et la composante optionnelle qui contient v sont légers). Remarquons qu’un trigraphe T est bigame si et seulement si T l’est aussi ; de plus v est léger dans T si et seulement si v est lourd dans T. On dit qu’un trigraphe de Berge est apprivoisé s’il est bigame et qu’il ne contient pas de skew-partition équilibrée. On dit qu’un graphe de Berge est apprivoisé s’il ne contient pas de skewpartition équilibrée. Théorème 2.9. Soit T un trigraphe de Berge apprivoisé et soit (A1, B1, C1, A2, B2, C2) une affectation d’un 2-joint (X1, X2) dans T. Alors les propriétés suivantes sont vérifiées : (i) (X1, X2) est un 2-joint propre ; (ii) chaque sommet de Xi a un voisin dans Xi, i = 1, 2 ; (iii) chaque sommet de Ai a un antivoisin dans Bi , i = 1, 2 ; (iv) chaque sommet de Bi a un antivoisin dans Ai, i = 1, 2 ; 222.4. STRUCTURE DES TRIGRAPHES DE BERGE APPRIVOISÉS (v) chaque sommet de Ai a un voisin dans Ci ∪ Bi, i = 1, 2 ; (vi) chaque sommet de Bi a un voisin dans Ci ∪ Ai, i = 1, 2 ; (vii) si Ci = ∅, alors |Ai | ≥ 2 et |Bi | ≥ 2, i = 1, 2 ; (viii) |Xi | ≥ 4, i = 1, 2. Démonstration. Remarquons que d’après le lemme 2.6, ni T ni T ne peuvent contenir de star cutset. Pour démontrer (i), nous devons simplement démontrer que toute composante de T|Xi intersecte à la fois Ai et Bi , i = 1, 2. Supposons par contradiction qu’il y ait une composante connexe C de T|X1 qui n’intersecte pas B1 (les autres cas sont symétriques). S’il y a un sommet c ∈ C \ A1 alors pour tout sommet u ∈ A2, {u} ∪ A1 est un star cutset qui sépare c de B1, c’est une contradiction. Donc C ⊆ A1. Si |A1| ≥ 2 alors nous pouvons choisir deux sommets c ∈ C et c 0 6= c dans A1. Dans ce cas {c 0} ∪ A2 est un star cutset qui sépare c de B1. On a alors C = A1 = {c}. Il existe donc une composante de T|X1 qui n’intersecte pas A1 et par le même argument on peut déduire que B1 = 1 et que l’unique sommet de B1 n’a pas de voisin dans X1. Puisque |X1| ≥ 3, il existe un sommet u dans C1. Maintenant, {c, a2} avec a2 ∈ A2 est un star cutset qui sépare u de B1, c’est une contradiction. Pour démontrer (ii), nous avons simplement à remarquer que si un sommet de Xi n’a pas de voisin dans Xi , alors il forme une composante de T|Xi qui n’intersecte pas à la fois Ai et Bi . Ceci contredit (i). Pour démontrer (iii) et (iv), considérons un sommet a ∈ A1 fortement complet à B1 (les autres cas sont symétriques). Si A1 ∪ C1 6= {a} alors B1 ∪ A2 ∪ {a} est un star cutset qui sépare (A1 ∪ C1) \ {a} de B2. Donc A1 ∪ C1 = {a} et |B1| ≥ 2 car |X1| ≥ 3. Mais alors B1 est un ensemble homogène, fortement complet à A1 et fortement anticomplet à A2 et donc T admet une skew-partition équilibrée d’après le lemme 2.7, c’est une contradiction. Pour démontrer (v) et (vi), considérons un sommet a ∈ A1 fortement anticomplet à C1 ∪ B1 (les autres cas sont symétriques). D’après (ii), le sommet a a un voisin dans A1, et donc A1 6= {a}. Dans ce cas {a} ∪ B1 ∪ C1 ∪ B2 ∪ C2 est un star cutset dans T. C’est une contradiction. Pour démontrer (vii), supposons que C1 = ∅ et que |A1| = 1 (les autres cas sont symétriques). D’après (iv) et (vi), et comme C1 = ∅, A1 est à la fois complet et anticomplet à B1. Ceci implique que l’unique sommet de A1 soit semiadjacent à tous les sommets de B1 et donc puisque T est apprivoisé, |B1| ≤ 2. Puisque |X1| ≥ 3, |B1| = 2 et comme T est apprivoisé, l’unique sommet de A1 est ou bien 23CHAPITRE 2. TRIGRAPHES DE BERGE APPRIVOISÉS fortement complet ou bien fortement anticomplet à V (T) \ (A1 ∪ B1), c’est une contradiction car A1 est fortement complet à A2 et fortement anticomplet à B2. Pour démontrer (viii), nous pouvons supposer d’après (vii) que C1 6= ∅. Supposons donc par contradiction que |A1| = |C1| = |B1| = 1. Soit a, b, c les sommets de respectivement A1, B1, C1. D’après (iii), ab est une antiarête. De plus, c est adjacent au sommet a sinon il y aurait un star cutset centré en b qui séparerait a de c. Pour la même raison c est adjacent à b. Puisque la réalisation complète de T|X1 n’est pas un chemin de longueur 2 allant de a à b, nous savons que ab est une arête optionnelle. Ceci contredit le lemme 2.4. Soit b un sommet de degré deux dans Σ(T) et soit a, c les voisins de b dans Σ(T). Supposons également que b soit léger. Nous appelons un sommet w ∈ V (T)\ {a, b, c} un a-appendice de b s’il existe u, v ∈ V (T) \ {a, b, c} tel que : — a-u-v-w est un chemin ; — u est fortement anticomplet à V (T) \ {a, v} ; — v est fortement anticomplet à V (T) \ {u, w} ; et — w n’a pas de voisin dans Σ(T) à la possible exception de v (i.e. il n’y a pas d’arête optionnelle contenant w dans T à la possible exception de vw). Un c-appendice est défini de la même manière. Si b est un sommet lourd de T, alors w est un a-appendice de b dans T si et seulement si w est un a-appendice de b dans T. Le résultat suivant est analogue au théorème 2.5 pour les trigraphes de Berge bigame. Théorème 2.10. Tout trigraphe de Berge bigame est ou bien basique, ou bien admet une skew-partition équilibrée, un 2-joint propre, ou un 2-joint propre dans son complément. Démonstration. Pour T un trigraphe de Berge bigame, notons τ (T) le nombre de sommets de degré deux dans Σ(T). La démonstration est une induction sur τ (T). Si τ (T) = 0, le résultat est direct à partir du théorème 2.5. Maintenant prenons T un trigraphe de Berge bigame et soit b un sommet de degré deux dans Σ(T). Soient a, c les deux voisins de b dans Σ(T). Quitte à passer au complément, on peut supposer que b est léger. Soit T 0 le trigraphe obtenu à partir de T en rendant a fortement adjacent à b. Si b n’a pas de a-appendice, alors nous n’avons pas besoin d’effectuer plus de modifications ; prenons W = ∅. Dans le cas contraire, choisissons un a-appendice w 242.4. STRUCTURE DES TRIGRAPHES DE BERGE APPRIVOISÉS de b, et prenons u, v comme dans la définition des a-appendices ; prenons V (T 0 ) = V (T) \ {u, v}, W = {w} et rendons a semiadjacent à w dans T 0 . Si W = ∅ alors clairement T 0 est un trigraphe de Berge bigame et τ (T) > τ (T 0 ). Supposons que W 6= ∅. Si t ∈ V (T 0 ) est adjacent à a et à w, alors a-u-v-w-t est un trou impair dans T. Par conséquent aucun sommet de T 0 n’est adjacent à la fois à a et à w. En particulier, il n’y a pas d’antitrou impair de taille au moins 7 dans T 0 qui passe par a et par w. Comme il n’y a pas de trou impair qui passe par a et par w, T 0 est un trigraphe de Berge bigame. De plus τ (T) > τ (T 0 ) (nous rappelons que dans Σ(T), v est l’unique voisin potentiel de w et b est l’unique voisin potentiel de a). Par induction, une des conséquences du théorème 2.10 est vraie pour T 0 . Nous considérons les cas suivants et montrons que pour chacun d’entre eux, une des conséquences du théorème 2.10 est vraie pour T. Cas 1 : T 0 est basique. Supposons d’abord que T 0 est biparti. Nous affirmons que T est biparti. Soit V (T 0 ) = X ∪Y où X et Y sont des stables forts disjoints. L’affirmation est claire si b n’a pas de a-appendice, on peut donc supposer que W = {w}. On peut supposer que a ∈ X ; alors w ∈ Y . Dans ce cas X ∪ {v} et Y ∪ {u} sont des stables forts de T d’union V (T) et donc T est biparti. Supposons que T 0 est un line trigraphe. Observons pour commencer qu’aucune clique de taille au moins trois dans T ne contient u, v ou b. Donc si W = ∅, il est clair que T est un line trigraphe. Nous pouvons donc supposer que W 6= ∅. Remarquons que la réalisation complète de T est obtenue à partir de la réalisation complète de T 0 en subdivisant deux fois l’arête aw. Puisque aucun sommet de T 0 n’est adjacent à la fois à a et à w, T est un line trigraphe (car les line graphes sont clos par subdivision d’arêtes n’ayant pas d’extrémité commune, et que les line graphes de graphes bipartis sont clos par double subdivision de telles arêtes). Supposons que T 0 soit biparti et prenons X, Y une partition de V (T) en deux cliques fortes de T 0 . On peut supposer que a ∈ X. Supposons pour commencer que b ∈ Y . Puisque a est l’unique voisin fort de b dans T 0 , Y = {b} et donc X contient a et c, c’est une contradiction. Par conséquent on peut supposer que b ∈ X. Puisque a est l’unique voisin fort de b dans T 0 , X = {a, b} et b est fortement anticomplet à Y \ {c}. Soit N l’ensemble des voisins forts de a dans Y \ {c} et M l’ensemble des antivoisins forts de a dans Y \ {c}. Puisque T est un trigraphe de Berge bigame, Y = N ∪ M ∪ W ∪ {c}. Si |N| > 1 ou |M| > 1, alors d’après le lemme 2.7 T admet une skew-partition équilibrée. On peut donc supposer que |N| ≤ 1 et que |M| ≤ 1. Puisqu’aucun sommet de T 0 n’est adjacent à la fois à a et 25CHAPITRE 2. TRIGRAPHES DE BERGE APPRIVOISÉS à w, |N ∪ W| ≤ 1. Maintenant si M = ∅ ou que N ∪ W = ∅, alors T 0 est biparti et nous pouvons procéder comme ci-dessus. Sinon N ∪ W ∪ {c} est un clique cutset de T 0 de taille 2 qui est un star cutset de T et donc d’après le lemme 2.6 T admet une skew-partition équilibrée. Supposons maintenant que T 0 est un line trigraphe. Puisque bc est une arête optionnelle dans T 0 et que b est fortement anticomplet à V (T 0 ) \ {a, b, c}, c est fortement complet à V (T 0 ) \ {a, b, c} sinon il y aurait dans T 0 une clique de taille 3 avec une arête optionnelle. Puisque T 0 est un line trigraphe, pour tout triangle S de T 0 et tout sommet v ∈ V (T 0 ) \ S, v a au moins un voisin fort dans S. Si x, y ∈ V (T 0 ) \ {a, b, c} sont adjacents, alors {x, y, c} est un triangle et b n’a pas de voisin fort à l’intérieur. Par conséquent, V (T 0 ) \ {a, b, c} est un stable fort. Maintenant V (T 0 ) \ {a, c}, {a, c} forme une partition de V (T 0 ) en deux stables forts de T 0 . T 0 est donc biparti et nous pouvons procéder comme ci-dessus. Finalement, supposons que T 0 est un trigraphe doublé et prenons (X, Y ) une bonne partition de T 0 . Si T 0 |Y est vide ou n’a qu’une unique anticomposante, alors T 0 est biparti. Nous pouvons donc supposer que Y contient deux sommets fortement adjacents x et x 0 . S’il existe y 6= x et y 0 6= x 0 , tels que {x, y} et {x 0 , y0} soient des anticomposantes de T 0 |Y , alors tout sommet de T 0 a au moins deux voisins forts, c’est une contradiction à cause de b. Ceci implique que par exemple {x} est une anticomposante de T 0 |Y . Si T 0 |X est connexe ou vide, alors T 0 est le complément d’un trigraphe biparti. On peut donc supposer que T 0 |X a au moins deux composantes. Dans ce cas, Y est un star cutset de T 0 centré en x. Ce cas est le prochain cas traité. Cas 2 : T 0 admets une skew-partition équilibrée. Soit (A, B) une skew-partition équilibrée de T 0 . Si W 6= ∅, prenons A0 = A ∪ {u, v} ; et si W = ∅ prenons A0 = A. Dans tous les cas, T|A0 n’est pas connecté. Nous allons montrer que si une anticomposante Y de B n’intersecte pas {a, b}, alors T admet une skew-partition équilibrée. Puisque a est complet à W dans T 0 , il existe une composante L de A qui n’intersecte pas {a, b} et donc L est aussi une composante de A0 . Sans perte de généralité, on peut supposer que Y est disjoint de W (c’est clair dans le cas où B ∩ {a, b} 6= ∅ et si B ∩ {a, b} = ∅ on peut sans perte de généralité supposer que Y ∩ W = ∅). Maintenant, dans T, Y est fortement complet à B \ Y , L est fortement anticomplet à A0 \L et donc A0 , B0 est une skew-partition de T et (L ∪ Y ) ∩ ({a, b} ∪ W ∪ (A0 \ A)) ⊆ {b}. Puisque A, B est une skew-partition équilibrée de T 0 , la paire (L, Y ) est équilibrée dans T. Par conséquent le lemme 2.8 implique que T admet une skew-partition équilibrée. Nous pouvons donc supposer qu’il n’y a pas de tel ensemble Y et donc T 0 |B a 262.4. STRUCTURE DES TRIGRAPHES DE BERGE APPRIVOISÉS exactement deux anticomposantes, B1 et B2, de plus a ∈ B1 et b ∈ B2. Puisque a est l’unique voisin fort de b dans T 0 , B1 = {a}. Puisque a est anticomplet à W ∪ {c}, nous pouvons en déduire que W ∪ {c} ⊆ A0 . Soit A1 la composante de T|A0 contenant c et A1 = A0 \ A1. Supposons que a n’ait pas de voisin fort dans T. Dans ce cas B2 = {b} et puisque T est un trigraphe de Berge bigame, a est fortement anticomplet à A0 . Nous pouvons supposer que T n’est pas biparti, car sinon nous aurions déjà le résultat. T contient donc un trou impair C, qui doit être dans A1 ou dans A2 (en effet {a, b} est fortement complet à A0 ). Puisque T est un trigraphe de Berge bigame, C contient au moins une arête forte xy. Dans ce cas {x, y} est un star cutset dans T qui sépare {a, b} d’un sommet de A2. D’après le lemme 2.6, T a une skew-partition équilibrée. Nous pouvons donc supposer que le sommet a a au moins un voisin fort dans T. Soit x ∈ A2. Notons N l’ensemble des voisins forts de a dans T. Alors (N ∪ {a}) \ {x} est un star cutset dans T séparant b de x à moins que x soit l’unique voisin fort de a. Dans ce cas {a, x} est un star cutset séparant A1 de A2 \ {x}, à moins que A2 = {x}. Supposons alors que c ait un voisin y (dans ce cas c’est un voisin fort car T est un trigraphe de Berge bigame). Alors {c, y} est un star cutset séparant A1 \ {c, y} de x, à moins que A1 = {c, y} mais dans ce cas T est biparti. Supposons donc que c n’ait pas de voisin dans A1. Si T n’est pas biparti, il contient un trou impair, dans ce cas ce trou est dans A1 et n’importe quelle arête forte (qui existe puisque T est un trigraphe de Berge bigame) forme un star cutset séparant c du reste du trou. D’après le lemme 2.6, T a une skew-partition équilibrée. Cas 3 : T 0 admet un 2-joint propre. Soit (A1, B1, C1, A2, B2, C2) une affectation d’un 2-joint propre de T 0 . Supposons que a ∈ A1 ∪ B1 ∪ C1. Alors W ⊆ A1 ∪ B1 ∪ C1. Si W 6= ∅ prenons C 0 1 = C1 ∪ {u, v}, et sinon prenons C 0 1 = C1. On peut supposer que (A1, B1, C0 1 , A2, B2, C2) n’est pas un 2-joint propre de T et donc sans perte de généralité a ∈ A1 et b ∈ A2. Alors c ∈ B2 ∪ C2. Puisque a est l’unique voisin fort de b dans T 0 , A1 = {a}. D’après le cas 2, on peut supposer que T 0 n’admet pas de skew-partition équilibré et donc le lemme 2.9 implique que a est anticomplet à B1. Remarquons que puisque T est un trigraphe de Berge bigame, ab est la seule arête optionnelle dans T contenant le sommet a. Soit N l’ensemble des voisins forts de a dans C 0 1 dans T. D’après les définitions du 2-joint propre, N 6= ∅. On peut supposer que T n’admet pas de skew-partition équilibrée et donc d’après le lemme 2.9, tout 2-joint de T est propre. Dans ce cas, ou bien (N, B1, C0 1 \ N, {a}, B2, C2 ∪ A2) est une affectation d’un 2-joint propre de T, ou bien |N| = |B1| = 1 et la réalisation complète de T|(C 0 1 ∪ B1) est un chemin de longueur deux entres N et B1. Notons 27CHAPITRE 2. TRIGRAPHES DE BERGE APPRIVOISÉS n-n 0 -b1 ce chemin avec n ∈ N et b1 ∈ B1. Puisque b1 n’a pas de voisin dans Σ(T) à l’exception possible de n 0 , b1 est un a-appendice de b. En particulier, W 6= ∅. Puisque W ⊆ B1 ∪ C1, w = b1, u = n et v = n 0 . Dans ce cas |A1 ∪ B1 ∪ C1| = 2, ce qui contredit le fait que (A1, B1, C1, A2, B2, C2) soit l’affectation d’un 2-joint propre de T 0 . Cas 4 : (T 0 ) admet un 2-joint propre. Soit (A1, B1, C1, A2, B2, C2), une affectation d’un 2-joint dans T 0 . Commençons par supposer que W 6= ∅. Alors on peut supposer que a, w ∈ A1 ∪ B1 ∪ C1. Puisqu’aucun sommet de T 0 est adjacent à la fois à a et à w, on peut supposer sans perte de généralité que a ∈ A1, w ∈ B1 et C2 = ∅. Puisque a est l’unique voisin fort de b dans T 0 , b ∈ B2 et C1 = ∅. Dans ce cas (A1, B1, ∅, B2, A2, ∅) est une affectation d’un 2-joint de T 0 . D’après le deuxième cas, on peut supposer que T 0 n’admet pas de skew-partition équilibrée et donc ce 2-joint est propre d’après le lemme 2.9. Nous pouvons alors procéder comme dans le cas précédent. Supposons donc que W = ∅. On peut supposer que (A1, B1, C1, A2, B2, C2) n’est pas une affectation d’un 2-joint propre de T, par conséquent et sans perte de généralité, a ∈ A1 ∪ B1 ∪ C1, et b ∈ A2 ∪ B2 ∪ C2. Puisque a est l’unique voisin fort de b dans T 0 et puisque A1, B1 sont tous les deux non-vides, b 6∈ C2, et on peut alors supposer que b ∈ B2. Puisque A1 6= ∅, C1 = ∅ et A1 = {a}. Puisque |A1 ∪ B1 ∪ C1| ≥ 3, |B1| ≥ 2. De plus c est fortement antiadjacent à a et semiadjacent à b dans T, on peut donc en déduire que c ∈ A2. Maintenant, si le sommet a a un voisin x dans B1 dans le trigraphe T (c’est alors un voisin fort), alors {x, a} ∪ A2 ∪ C2 est un star cutset dans T, et si a est fortement anticomplet à B1 dans T, d’après la définition du 2-joint propre, B1 est un ensemble homogène dans T. Dans tous les cas, d’après le lemme 2.6 ou le lemme 2.7, T admet une skew-partition équilibrée. 2.5 Blocs de décomposition La manière d’utiliser les décompositions dans les chapitres suivantes nous demande de construire des blocs de décompositions et de récursivement poser plusieurs questions sur ces blocs. Pour pouvoir faire cela, nous devons nous assurer que les blocs de décompositions sont toujours dans notre classe de graphes. Un ensemble X ⊆ V (T) est un fragment d’un trigraphe T si une des conditions suivantes est vérifiée : 1. (X, V (T) \ X) est un 2-joint propre de T ; 282.5. BLOCS DE DÉCOMPOSITION A2 C2 B2 X2 A2 C2 B2 X2 Figure 2.6 – Blocs de décomposition : 2-joint 2. (X, V (T) \ X) est un complément de 2-joint propre de T. Remarquons qu’un fragment de T est un fragment de T. Nous pouvons maintenant définir le bloc de décomposition TX associé à un fragment X. Un 2-joint est pair ou impair suivant la parité des longueurs des chemins décrits par le lemme 2.4. Si (X1, X2) est un 2-joint propre impair et si X = X1, alors prenons (A1, B1, C1, A2, B2, C2) une affectation de (X1, X2). Nous construisons alors le bloc de décomposition TX1 = TX comme suit. Nous partons de T|(A1 ∪ B1 ∪ C1). Nous ajoutons ensuite deux sommets marqués a et b, tels que a est fortement complet à A1, b est fortement complet à B1, ab est une arête optionnelle et il n’y a aucune autre arête entre {a, b} et X1. Remarquons que {a, b} est une composante optionnelle de TX. Nous l’appelons la composante marquée de TX. Si (X1, X2) est un 2-joint propre pair et si X = X1, alors prenons (A1, B1, C1, A2, B2, C2) une affectation de (X1, X2). Nous construisons alors le bloc de décomposition TX1 = TX comme suit. Nous partons de T|(A1 ∪ B1 ∪ C1). Nous ajoutons ensuite trois sommets marqués a, b et c, tels que a est fortement complet à A1, b est fortement complet à B1, ac et cb sont deux arêtes optionnelles et il n’y a aucune autre arête entre {a, b, c} et X1. À nouveau nous appelons {a, b, c} la composante marquée de TX. Si (X1, X2) est le complément d’un 2-joint propre impair et si X = X1, alors prenons (A1, B1, C1, A2, B2, C2) une affectation de (X1, X2). Nous construi- 29CHAPITRE 2. TRIGRAPHES DE BERGE APPRIVOISÉS A2 C2 B2 X2 A2 C2 B2 X2 Figure 2.7 – Blocs de décomposition : Complément de 2-joint sons alors le bloc de décomposition TX1 = TX comme suit. Nous partons de T|(A1 ∪ B1 ∪ C1). Nous ajoutons ensuite deux sommets marqués a et b, tels que a est fortement complet à B1 ∪ C1, b est fortement complet à A1 ∪ C1, ab est une arête optionnelle et il n’y a aucune autre arête entre {a, b} et X1. À nouveau nous appelons {a, b} la composante marquée de TX. Si (X1, X2) est le complément d’un 2-joint propre pair et si X = X1, alors prenons (A1, B1, C1, A2, B2, C2) une affectation de (X1, X2). Nous construisons alors le bloc de décomposition TX1 = TX comme suit. Nous partons de T|(A1∪B1∪C1). Nous ajoutons ensuite trois sommets marqués a, b et c, tels que a est fortement complet à B1 ∪ C1, b est fortement complet à A1 ∪ C1, ac et cb sont deux arêtes optionnelles, ab est une arête forte et il n’y a aucune autre arête entre {a, b, c} et X1. À nouveau nous appelons {a, b, c} la composante marquée de TX. Lemme 2.11. Si X est un fragment d’un trigraphe T de Berge bigame, alors TX est un trigraphe de Berge bigame. Démonstration. Par définition de TX, il est clair que tout sommet de TX est ou bien dans au plus une arête optionnelle, ou bien est lourd, ou bien est léger, TX est donc bien un trigraphe bigame. Il reste juste à démontrer que TX est de Berge. Soit X = X1 et (X1, X2) un 2-joint propre de T. Soit (A1, B1, C1, A2, B2, C2) une affectation de (X1, X2). 302.5. BLOCS DE DÉCOMPOSITION Commençons par supposer que TX1 a un trou impair H = h1- · · · -hk-h1. Notons ZX1 l’ensemble des sommets marqués de TX1 . Supposons que les sommets de ZX1 soient consécutifs dans H, alors H \ ZX1 est un chemin P dont une extrémité est dans A1, l’autre dans B1 et dont l’intérieur est dans C1. Un trou de T est obtenu en ajoutant à P un chemin dont une extrémité est dans A2, dont l’autre extrémité est dans B2 et dont l’intérieur est dans C2. D’après le lemme 2.4 ce trou est impair, c’est une contradiction. Dans ce cas les sommets marqués ne sont pas consécutifs dans H, et puisque c n’a pas de voisin dans V (T) \ {a, b, c}, on peut en déduire que c 6∈ V (H). Maintenant, un trou de même longueur que H peut être obtenu dans T en remplaçant si besoin a et/ou b par des sommets a2 ∈ A2 et b2 ∈ B2, choisi pour être antiadjacent (ce qui est possible d’après le lemme 2.9). Supposons alors que TX1 ait un antitrou impair H = h1- · · · -hk-h1. Puisqu’un antitrou de longueur 5 est également un trou, on peut supposer que H est de longueur au moins 7. Donc dans H, toute paire de sommets à un voisin commun. Il y a donc au plus un sommet parmi a, b, c qui est dans H, et à cause de son degré, c ne peut pas être dans H. Un antitrou de même longueur que H peut être obtenu dans T en remplaçant si besoin a ou b par un sommet a2 ∈ A2 ou b2 ∈ B2, encore une fois c’est une contradiction. Remarquons que les cas où T a un complément de 2-joint sont traités par complémentation. Lemme 2.12. Si X est un fragment d’un trigraphe T de Berge apprivoisé, alors le bloc de décomposition TX n’a pas de skew-partition équilibrée. Démonstration. Pour démontrer ce résultat commençons par supposer que TX ait une skew-partition équilibrée (A0 , B0 ) et notons (A0 1 , A0 2 , B0 1 , B0 2 ) une affectation de cette skew-partition. Cherchons maintenant une skew-partition dans T. Nous utiliserons le lemme 2.8 pour démontrer qu’il existe alors une skew-partition équilibrée dans T. Le résultat sera alors vrai par contradiction. Soit X = X1 et (X1, X2) un 2-joint propre de T. Soit (A1, B1, C1, A2, B2, C2) une affectation de (X1, X2). Puisque les sommets marqués dans TX, a et b n’ont pas de voisin fort commun et que c n’a pas de voisin fort, il y a, à symétrie près, deux cas : a ∈ A0 1 et b ∈ A0 1 , ou a ∈ A0 1 et b ∈ B0 1 . Remarquons que lorsque (X1, X2) est pair, le sommet marqué c doit être dans A0 1 car il est adjacent au sommet a et n’a pas de voisin fort. Commençons par supposer que les sommets a et b sont tous les deux dans A0 1 . Dans ce cas (X2 ∪ A0 1 \ {a, b, c}, A0 2 , B0 1 , B0 2 ) est une affectation d’une skew- 31CHAPITRE 2. TRIGRAPHES DE BERGE APPRIVOISÉS partition (A, B) dans T. La paire (A0 2 , B0 1 ) est équilibrée dans T car elle l’est dans TX. Donc d’après le lemme 2.8, T admets une skew-partition équilibrée, c’est une contradiction. Les sommets a et b ne sont donc pas tous les deux dans A0 1 et donc a ∈ A0 1 et b ∈ B0 1 . Dans ce cas, (A2 ∪C2 ∪A0 1 \ {a, c}, A0 2 , B2 ∪B0 1 \ {b}, B0 2 ) est une affectation d’une skew-partition (A, B) dans T. La paire (A0 2 , B0 2 ) est équilibrée dans T car elle l’est dans TX. Donc d’après le lemme 2.8, T admet une skew-partition équilibrée, c’est une contradiction. Le cas où T admet un complément de 2-joint se prouve par complémentation. Nous avons dans ce chapitre introduit toutes les notions de base qui vont nous être utiles dans les chapitres suivants. Les résultats les plus importants sont le théorème 2.10 et les lemmes 2.11 et 2.12 qui nous permettent de dire que les trigraphes de Berge apprivoisés se décomposent par 2-joint et complémentaire de 2- joint et que les blocs construits restent dans la classe. Ces résultats sont la base des trois chapitres suivants dans lesquels nous allons pouvoir prouver divers résultats sur la classe en décomposant nos graphes puis en appliquant une induction. Enfin, notons que les graphes de Berge sans skew-partition forment une sousclasse stricte des graphes de Berge. La figure 2.8 montre un graphe qui, si l’on se restreint à notre ensemble de décomposition, n’est décomposable que par skewpartition. Dans ce graphe, les arêtes de couleurs vont vers tous les sommets de possédant la même couleur. Un résultat important serait d’arriver, en étendant l’ensemble des décompositions autorisées, à se débarrasser des skew-partitions. 322.5. BLOCS DE DÉCOMPOSITION Figure 2.8 – Un graphe de Berge décomposable uniquement par skew-partition 33CHAPITRE 2. TRIGRAPHES DE BERGE APPRIVOISÉS 34Chapitre 3 Propriété du grand biparti Les résultats de ce chapitre ont été obtenus avec Aurélie Lagoutte, ils font l’objet d’un article [26] soumis à Discrete Mathematics. Une des propriétés les plus simples à obtenir à l’aide d’une décomposition par 2-joints est celle du grand biparti. On dit qu’un graphe G d’ordre n a la c-propriété du grand biparti, s’il existe deux ensembles de sommets V1 ⊆ V et V2 ⊆ V , tels que |V1| ≥ cn˙ , |V2| ≥ cn˙ et que V1 soit ou bien complet, ou bien anticomplet à V2. On dit qu’une classe de graphes C a la propriété du grand biparti s’il existe une constante c, telle que tout graphe G ∈ C d’ordre n a la c-propriété du grand biparti. Cette propriété est appelée propriété d’Erdős Hajnal forte dans [22]. Par exemple, pour tout entier k, les graphes sans Pk, ni Pk induit ont la propriété du grand biparti [5]. Cette propriété est intéressante car dans le cas des classes de graphes définies par un unique sous-graphe induit H interdit, elle implique la propriété d’Erdős-Hajnal [3, 22]. C’est à dire qu’il existe une constante δH qui dépend de H, telle que tout graphe G de la classe contient une clique ou un stable de taille |V (G) δH |. Nous allons montrer le résultat suivant : Théorème 3.1. Tout graphe de Berge sans skew-partition équilibrée a la propriété du (1/148)-grand biparti. Ce résultat n’implique pas la propriété d’Erdős-Hajnal, puisque la classe des graphes de Berge apprivoisés n’est pas close par sous-graphe induit, en effet la suppression de sommets peut créer des skew-partitions équilibrées. Cependant, il est facile de voir que la propriété d’Erdős-Hajnal est une conséquence directe 35CHAPITRE 3. PROPRIÉTÉ DU GRAND BIPARTI du théorème fort des graphes parfaits. En effet, pour tout graphe G, |V (G)| ≤ χ(G)α(G) et par perfection des graphes de Berge χ(G) = ω(G), on sait donc que pour tout graphe de Berge G |V (G)| ≤ ω(G)α(G) donc pour tout graphe de Berge, ou bien ω(G) ≥ q |V (G)| ou bien α(G) ≥ q |V (G)|. En fait nous n’avons même pas besoin du théorème fort des graphes parfaits, il suffit d’avoir l’inégalité |V (G)| ≤ ω(G)α(G), prouvée dès 1972 par Lovász [28]. Le théorème 3.1 est dans un certain sens un résultat négatif, en effet les graphes de Berge n’ont en général pas la propriété du grand biparti. Interdire les skewpartitions donne donc une classe sensiblement plus petite. Comme l’a observé Seymour [34], les graphes de comparabilité non triviaux (ici qui ne sont ni des cliques, ni des graphes bipartis) ont tous une skew-partition. En fait Chvátal à démontré [16] que les graphes parfaitement ordonables, c’est à dire une super classe des graphes de comparabilité sont, ou bien biparti, ou bien admettent un starcutset dans leur complémentaire. Les graphes de comparabilité étant des graphes de Berge, c’est une des classes les plus intéressantes à regarder pour comprendre les restrictions posées par l’interdiction des skew-partitions équilibrées. Le résultat suivant est le théorème 2 de [21]. Théorème 3.2. Soit ε ∈ (0, 1). Pour tout entier n suffisamment grand, il existe un ordre partiel P sur n éléments tel qu’aucun élément de P n’est comparable à n ε autres éléments de P et pour tout A, B ⊂ P tels que |A| = |B| > 14n ε log2 n , il y a un élément de A comparable à un élément de B. En prenant les graphes de comparabilité des ordres partiels fournis par ce théorème, nous avons une classe de graphes parfaits qui n’a pas la propriété du grand biparti. À partir d’un ordre partiel, on construit son graphe de comparabilité de la manière suivante, les sommets sont les éléments de l’ordre et il y un arête entre deux sommets si et seulement si les éléments qu’ils représentent sont comparables dans l’ordre partiel. Le but de ce chapitre est de montrer que les graphes de Berge apprivoisés ont la propriété du grand biparti. Pour cela nous allons généraliser le problème aux trigraphes de Berge apprivoisés. Commençons par étendre la définition. Nous verrons ensuite comment généraliser ce résultat aux classes construites par k-joints généralisés. 363.1. GRAND BIPARTI DANS LES TRIGRAPHES DE BERGE APPRIVOISÉS 3.1 Grand biparti dans les trigraphes de Berge apprivoisés Soit une constante 0 < c < 1, un trigraphe T sur n sommet a la c-propriété du grand biparti s’il existe V1, V2 ⊆ V (T) tels que |V1|, |V2| ≥ cn˙ et que V1 est fortement complet ou anticomplet à V2. Il est immédiat de voir que pour les trigraphes sans arêtes optionnelles, la définition coïncide avec celle sur les graphes. Une autre remarque importante est que la propriété du grand biparti est une propriété autocomplémentaire : un trigraphe T a la propriété du grand biparti si et seulement si son complémentaire T a aussi la propriété du grand biparti. Nous rappelons qu’être un trigraphe de Berge apprivoisé est aussi une propriété auto-complémentaire. Lors de nos inductions nous pouvons donc ramener le cas des complémentaires de 2- joints au cas des 2-joints. Nous allons démontrer le résultat suivant : Théorème 3.3. Soit T un trigraphe de Berge apprivoisé, tel que n = |V (T)| ≥ 3. Alors T a la (1/148)-propriété du grand biparti. Pour les besoins de l’induction nous devons encore étendre notre problème aux trigraphes de Berge apprivoisés pondérés. Dans la suite, on associe à tout trigraphe T une fonction de poids w : V (T) ∪ E ∗ (T) → N, telle que w(v) > 0 pour v ∈ V (T) et que toute arête optionnelle de poids non nul soit étiquetée avec “2-joint” ou “complément 2-joint”. Pour tout sous-ensemble V 0 ⊆ V (T), on note w(V 0 ) = P v∈V 0 w(v) + P u,v∈V 0 w(uv). Avec ces notations, le poids W d’un trigraphe T est la somme w(V (T)) de ses poids, et étant donné une constante c < 1, on dit que T a la c-propriété du grand biparti, s’il existe V1, V2 ⊆ V (T), tels que w(V1), w(V2) ≥ cW˙ et V1 est fortement complet ou fortement anticomplet à V2. Remarquons que si w est une fonction de poids telle que w(v) = 1 pour tout sommet v ∈ V (T) et que w(uv) = 0 pour toute arête optionnelle uv ∈ E ∗ (T), nous obtenons la notion précédente. Remarquons également que la propriété du grand biparti est stable par réalisation comme le montre le lemme suivant. Lemme 3.4. Soit CT une classe de trigraphes ayant la c-propriété du grand biparti, alors la classe des graphes C = {G, G est une réalisation de T ∈ CT } a la c-propriété du grand biparti. Démonstration. Si un trigraphe T a la propriété du grand biparti, il existe une paire d’ensembles de sommets V1, V2 ⊆ V (T) témoins de la propriété. Dans toute 37CHAPITRE 3. PROPRIÉTÉ DU GRAND BIPARTI réalisation de T, V1, V2 reste une paire de témoins de la propriété du grand biparti. L’idée de la démonstration du théorème 3.1 est de contracter les sommets de T, tout en préservant les poids jusqu’à obtenir un trigraphe basique. Soit T un trigraphe avec une fonction de poids w, (X1, X2) un 2-joint propre dans T ou dans son complément T, tel que w(X1) ≥ w(X2), et (A1, B1, C1, A2, B2, C2) une affectation de (X1, X2). Définissons le trigraphe T 0 avec la fonction de poids w 0 comme la contraction de T, noté (T, w) ❀ (T 0 , w0 ). T 0 est le bloc de décomposition TX1 et sa fonction de poids w 0 est définie comme suit : — Sur les sommets de X1, on définit w 0 = w. — Sur les sommets marqués a, b, on définit w 0 (a) = w(A2) et w 0 (b) = w(B2) — Si le sommet marqué c existe, on définit w 0 (c) = w(C2). Sinon, on définit w 0 (ab) = w(C2) et on étiquette ab en fonction du type de (X1, X2). On définit a (resp. b, v ∈ X1) comme étant le représentant de A2 (resp. B2, v) et pour tout sommet v ∈ A2 (resp. B2, X1) on note v → a (resp. v → b, v → v). Suivant l’existence de c, c ou ab est le représentant de C2 et pour tout sommet v ∈ C2 on note v → c ou v → ab. Si (T, w) ❀ (T 0 , w0 ) et V 0 ⊆ V (T 0 ), on note également V → V 0 si V = {v ∈ V (T)|∃v 0 ∈ V 0 v → v 0∨ ∃u 0 v 0 ∈ V 02 v → u 0 v 0}. On note par →∗ (resp. ❀∗ ) la clôture transitive de → (resp. ❀). Lemme 3.5. Si T est un trigraphe avec une fonction de poids w et (T, w) ❀∗ (T 0 , w0 ) alors : — w 0 (V (T 0 )) = w(V (T)) — Si T 0 a la c-propriété du grand biparti, alors T aussi. Démonstration. La première partie du résultat est claire. Supposons que T 0 ait la c-propriété du grand biparti. Alors il existe W1, W2 ⊆ V (T), tels que W1 →∗ V1 et W2 →∗ V2. Puisque la contraction ne crée ni adjacence forte, ni antiadjacent forte qui n’existaient pas auparavant, si V1, V2 sont fortement complets (resp. anticomplets), W1, W2 sont également fortement complets (resp. anticomplets). De plus w(W1) = w 0 (V1) et w(W2) = w 0 (V2). Donc la paire (W1, W2) prouve que T 0 a la c-propriété du grand biparti. 383.1. GRAND BIPARTI DANS LES TRIGRAPHES DE BERGE APPRIVOISÉS Lemme 3.6. Soit 0 < c < 1/6. Soit T un trigraphe de Berge apprivoisé, et w sa fonction de poids telle que w(x) < cn˙ pour tout x ∈ V (T) ∪ E ∗ (T). Ou bien T a la c-propriété du grand biparti, ou bien il existe un trigraphe basique T 0 avec sa fonction de poids associée w 0 tel que (T, w) ❀∗ (T 0 , w0 ) et pour tout x ∈ V (T 0 ) ∪ E ∗ (T 0 ), w(x) < cn˙ . Démonstration. On prouve le résultat par induction sur T, en utilisant le résultat de décomposition sur les trigraphes de Berge bigames (Théorème 2.10). Si T n’est pas basique, alors il admet un 2-joint propre ou le complément d’un 2-joint propre. Le problème étant auto-complémentaire, nous traitons uniquement le cas d’un 2- joint (X1, X2) de T. Par symétrie, supposons que w(X1) ≥ w(X2) et donc w(X1) ≥ n/2. Soit (A1, B1, C1, A2, B2, C2) une affectation de (X1, X2). Par définition de X1, max(w(A1), w(B1), w(C1)) ≥ n/6 ≥ cn˙ . Donc si max(w(A2), w(B2), w(C2)) ≥ cn˙ , on a la c-propriété du grand biparti. Sinon, (T, w) ❀ (T 0 , w0 ) avec w 0 (x) < cn˙ pour tout x ∈ V (T 0 ) ∪ E ∗ (T 0 ) et T 0 est un trigraphe de Berge apprivoisé d’après 2.11. On peut donc appliquer l’hypothèse d’induction et ; ou bien trouver un trigraphe basique T 00, tel que (T, w) ❀ (T 0 , w0 ) ❀∗ (T 00, w00) et w 00(x) < cn˙ pour tout x ∈ V (T 00) ∪ E ∗ (T 00); ou bien T 0 a la c-propriété du grand biparti, et donc T aussi d’après le lemme 3.5. Si T est un trigraphe basique avec une fonction de poids w, on veut transformer T en un trigraphe ayant des poids uniquement sur ses sommets en transférant les poids des arêtes optionnelles sur de nouveaux sommets. On définit l’extension T 0 de T comme le trigraphe avec la fonction de poids w 0 : V (T 0 ) → N\{0} définie comme suit : V (T 0 ) = V (T) ∪ {vab|ab ∈ E ∗ (T), w(ab) > 0}, w 0 (v) = w(v) pour v ∈ V (T), l’étiquette de ab est donnée par vab, w 0 (vab) = w(ab), θ(avab) = θ(bvab) = 0, et si u ∈ V \ {a, b}, alors θ(uvab) = −1 si l’étiquette de ab est “2-joint” et θ(uvab) = 1 si l’étiquette est “complément 2-joint”. Remarquons que ab était le représentant de C2 de l’affectation (A1, B1, C1, A2, B2, C2) du 2-joint, et que vab prend sa place en tant que contraction de C2, puisque qu’il a le même poids et les même adjacences et antiadjacences fortes vis à vis du reste du trigraphe. Il n’était pas possible de garder la contraction de C2 à chaque étape et en même temps de rester apprivoisé, ce qui est la clé du lemme 3.6. Remarquons finalement que les nouveaux sommets ajoutés étiquetés “2-joint” forment un stable et que ceux étiquetés “complément de 2-joint” forment une clique. 39CHAPITRE 3. PROPRIÉTÉ DU GRAND BIPARTI Lemme 3.7. Soit T un trigraphe de Berge apprivoisé et w sa fonction de poids associée, tel que w(uv) = 0 pour tout uv ∈ E ∗ (T). Supposons que (T, w) ❀∗ (T 0 , w0 ) et soit T 00 avec sa fonction de poids w 00 l’extension de T 0 . Si T 00 a la c-propriété du grand biparti, alors T aussi. Démonstration. Soit (V1, V2) deux sous-ensembles de T 00 prouvant que T 00 a la c propriété du grand biparti. Soit X1 ⊆ V1 un sous-ensemble de sommets de V1 étiquetés. Alors V1\X1 ⊆ V (T 0 ) et il existe W1 ⊆ V (T), tel que W1 →∗ V1\X1. Soit Y1 = {v ∈ V (T)|∃vab ∈ X1, v → ab}. Alors w(W1 ∪ Y1) = w 00(V1) ≥ cn˙ . On définit de la même manière X2, W2 et Y2 et nous avons les même inégalités w(W2 ∪Y2) = w 00(V2) ≥ cn˙ . De plus, W1∪Y1 est fortement complet (resp. anticomplet) à W2∪Y2 si V1 est fortement complet (resp. anticomplet) à V2. Donc T a la c-propriété du grand biparti. Lemme 3.8. Si T 0 est l’extension d’un trigraphe basique T de Berge apprivoisé et que sa fonction de poids associée w0 vérifie w0(x) < cn˙ pour tout x ∈ V (T) ∪ E ∗ (T) et si c ≤ 1/148, alors T 0 a la c-propriété du grand biparti. Avant de pouvoir démontrer ce résultat nous avons besoin d’un lemme technique. Un graphe G a m arêtes-multiples si son ensemble d’arêtes E est un multiensemble de V 2 \ {xx|x ∈ V (G)} de taille m : il peut y avoir plusieurs arêtes entre deux sommets distincts mais pas de boucle. Une arête uv a deux extrémités u et v. Le degré de v ∈ V (G) est d(v) = |{e ∈ E|v est une extrémité de e}|. Lemme 3.9. Soit G un graphe biparti (A, B) avec m arêtes multiples et de degré maximum cm˙ avec c < 1/3. Alors il existe des sous-ensembles d’arêtes E1, E2 de G, tels que |E1|, |E2| ≥ m/48 et si e1 ∈ E1, e2 ∈ E2 alors e1 et e2 n’ont pas d’extrémité commune. Démonstration. Si m ≤ 48, il suffit de trouver deux arêtes sans extrémité commune. De telles arêtes existent toujours puisque le degré maximum est borné par cm˙ , donc aucun sommet ne peut être une extrémité commune à toutes les arêtes. Sinon si m > 48, considérons une partition aléatoire uniforme (U, U0 ) des sommets. Pour toute paires d’arêtes distinctes e1, e2, considérons la variable aléatoire Xe1,e2 = 1 si (e1, e2) ∈ (U 2 × U 02 ) ∪ (U 02 × U 2 ), et 0 sinon. Si e1 et e2 ont au moins une extrémité commune, alors Pr(Xe1,e2 = 1) = 0, sinon Pr(Xe1,e2 = 1) = 1/8. 403.1. GRAND BIPARTI DANS LES TRIGRAPHES DE BERGE APPRIVOISÉS Nous définissons alors : p = |{(e1, e2) ∈ E 2 |e1 et e2 n’ont pas d’extrémité commune}| pA = |{(e1, e2) ∈ E 2 |e1 et e2 n’ont pas d’extrémité commune dans A}| qA = |{(e1, e2) ∈ E 2 |e1 6= e2 et e1 et e2 n’ont pas d’extrémité commune dans A}| Nous définissons de la même manière pB et qB. Supposons que p ≥ 1 3  m 2  . Alors : E( X e1,e2∈E e16=e2 Xe1,e2 ) = X e1,e2∈E e16=e2 Pr(Xe1,e2 = 1) = p 8 ≥ 1 24 m 2 ! . Donc il existe une partition (U, U0 ) telle que : X e1,e2∈E e16=e2 Xe1,e2 ≥ 1 24 m 2 ! . Soit E1 = E ∩ U 2 et E2 = E ∩ U 02 . Alors |E1|, |E2| ≥ m/48, sinon : X e1,e2∈E e16=e2 Xe1,e2 = |E1| · |E2| < m 48 ·  1 − 1 48 m ≤ 1 24 m 2 ! , c’est une contradiction. Donc E1 et E2 vérifient les hypothèses du lemme. Il nous reste donc à démontrer que p ≥ 1 3  m 2  . Le résultat intermédiaire clé est que pA ≥ 2qA. Numérotons les sommets de A de 1 à |A| et rappelons que d(i) est le degré de i. Alors P|A| i=1 d(i) = m et : pA = 1/2   X |A| i=1 d(i)(m − d(i))   = 1/2     X |A| i=1 d(i)   2 − X |A| i=1 (d(i))2   = 1/2   X |A| i,j=1 i6=j d(i)d(j)   qA = 1/2   X |A| i=1 d(i)(d(i) − 1)   = 1/2   X |A| i=1 (d(i))2 − m   41CHAPITRE 3. PROPRIÉTÉ DU GRAND BIPARTI Par conséquent : 2pA − (4qA + 2m) = X |A| i=1 d(i)   X |A| j=1 j6=i d(j) − 2d(i)   = X |A| i=1 d(i)   X |A| j=1 d(j) − 3d(i)   = X |A| i=1 d(i) (m − 3d(i)) Mais pour tout i, d(i) ≤ cm˙ ≤ m/3 donc m − 3d(i) ≥ 0. Par conséquent, 2pA − (4qA + 2m) ≥ 0 et donc pA ≥ 2qA. Mais pA + qA =  m 2  donc qA ≤ 1 3  m 2  . De la même manière, pB ≥ 2qB et qB ≤ 1 3  m 2  . Finalement : p ≥ m 2 ! − qA − qB ≥ m 2 ! − 2 3 m 2 ! ≥ 1 3 m 2 ! . Démonstration du lemme 3.8. Soit w la fonction de poids associée à T 0 . Puisque le problème est auto-complémentaire, il suffit de démontrer le résultat si T est un trigraphe biparti, un trigraphe doublé ou un line trigraphe. Si T est un trigraphe doublé, alors T a une bonne partition (X, Y ). En fait, X est l’union de deux stables X1, X2 et Y est l’union de deux cliques Y1 et Y2. Donc T 0 est l’union de trois stables X1, X2, X3 (X3 est l’ensemble des sommets étiquetés “2-joint”) et de trois cliques Y1, Y2, Y3 (Y3 est l’ensemble des sommets étiquetés “complément de 2-joint”). Il existe un ensemble Z parmi ces six ensembles de taille au moins n/6. Puisque chaque sommet de Z a poids au plus cn˙ , on peut partitionner Z en (Z1, Z2) avec w(Z1), w(Z2) ≥ n/12 − cn˙ ≥ cn˙ et Z1 est ou bien fortement complet à Z2 (c’est le cas si Z est une clique forte) ou bien fortement anticomplet à Z2 (c’est le cas si Z est un stable fort). Le même argument s’applique si T est un trigraphe biparti, puisque c’est alors l’union de deux stables forts. La démonstration est plus compliquée si T est un line trigraphe. Soit X le stable fort des sommets étiquetés “2-joint” dans T, Y la clique forte des sommets étiquetés “complément de 2-joint”, et Z = V (T 0 ) \ (X ∪ Y ). Par définition du line trigraphe, la réalisation complète de T 0 |Z est le line graphe d’un graphe biparti G, et toute clique de T 0 |Z de taille au moins trois est une clique forte. Si vab ∈ X, 423.1. GRAND BIPARTI DANS LES TRIGRAPHES DE BERGE APPRIVOISÉS alors la réalisation complète de T 0 |(Z ∪ {vab}) est aussi le line graphe d’un graphe biparti : en effet, vab est semiadjacent à exactement a et b, et antiadjacent au reste des sommets. Par hypothèse sur les cliques de taille trois de T, il ne peut y avoir de sommet d ∈ Z adjacent à la fois à a et à b. Cela veut dire que l’extrémité commune x de a et b dans G a degré exactement deux. Ajoutons l’arête vab entre x et un nouveau sommet, alors la réalisation complète de T 0 |(Z ∪ {vab}) est le line graphe d’un graphe biparti. En itérant ce procédé, la réalisation complète T 0 |(Z ∪ X) est également le line graphe d’un graphe biparti. Distinguons alors deux cas : s’il existe une clique K de poids w(K) ≥ 4cn˙ dans T 0 , alors nous pouvons partitionner K en (K1, K2) avec w(K1), w(K2) ≥ 4cn/˙ 2 − cn˙ ≥ cn˙ et K1 est fortement complet à K2. Sinon, remarquons que dans Z∪X, toute composante optionnelle a au plus trois sommets. Pour chaque composante prenons le sommets de poids maximal pour obtenir un ensemble de sommets V 0 ⊆ Z ∪ X sans arête optionnelle entre eux, c’est à dire T 0 |V 0 est un graphe. De plus T 0 |V 0 est un sous-graphe de la réalisation complète de T 0 |(Z ∪ X) et donc est le line graphe d’un graphe biparti G. Au lieu de garder les poids strictement positifs sur les arêtes de G, nous transformons chaque arête xy de poids m en m arêtes xy. L’inégalité w(K) ≤ 4cn˙ pour toute clique K implique que d’une part le degré maximum d’un sommet de G est 4cn˙ , d’autre part, n 0 = w(V 0 ) ≥ (n − w(Y ))/3 ≥ n(1 − 4c)/3, puisque Y est une clique. Le lemme 3.9 prouve l’existence de deux sous-ensembles d’arêtes E1, E2 de G tels que |E1|, |E2| ≥ n 0/48 et si e1 ∈ E1, e2 ∈ E2 alors e1 et e2 n’ont pas d’extrémité commune. Cela correspond dans T 0 un témoin anticomplet de la propriété du grand biparti. Démonstration du Théorème 3.3. Soit c = 1/148. Si n < 1/c, il existe toujours une arête forte ou une antiarête forte uv par définition des trigraphes bigames, et nous définissons V1 = {u} et V2 = {v}. Sinon, donnons à T la fonction de poids w, telle que w(v) = 1 pour tout v ∈ V (T) (en particulier, w(V (T)) = n). Appliquons le lemme 3.6 à T pour obtenir ou bien la c propriété du grand biparti, ou bien pour contracter T : il existe un trigraphe basique T 0 tel que (T, w) ❀∗ (T 0 , w0 ). Appliquons alors le lemme 3.8 pour avoir la c-propriété du grand biparti dans l’extension de T 0 . Grâce au lemme 3.7 nous avons bien la c-propriété du grand biparti. 43CHAPITRE 3. PROPRIÉTÉ DU GRAND BIPARTI 3.2 Clôture par k-joints généralisés Dans cette section nous allons voir comment nous pouvons utiliser une géné- ralisation des 2-joints afin d’obtenir un résultat analogue. Les résulats 2.10, 2.11 et 2.12 montrent qu’en fait les trigraphes de Berge apprivoisés sont la clôture par 2-joints et complément de 2-joints des classes basiques (trigraphes biparti, line trigraphes, trigraphes doublés et leurs complémentaires). Ces classes basiques ont la propriété du grand biparti et le théorème 3.3 montre que prendre la clôture de cette classe préserve la propriété du grand biparti. Dans cette section nous allons voir comment à partir d’une classe de graphes héréditaire nous pouvons obtenir une classe de trigraphes, puis comment clore cette classe de trigraphes par des opérations similaires aux 2-joints et aux complémentaires de 2-joints. La clôture sera une classe de trigraphe. D’après le lemme 3.4 si la clôture a la propriété du grand biparti alors la classe de graphes des réalisations des trigraphes de la clôture aussi. En fait dans ce qui suit un k-joint avec k = 2 sera analogue à la fois à l’opération de 2-joint et à celle du complémentaire de 2-joint. Dans la section suivante nous verrons que si la classe de graphes basiques a la propriété du grand biparti, cette propriété est conservée dans la clôture par kjoints. Il est important de remarquer que prendre la clôture des graphes basiques du théorème de décomposition des graphes de Berge par k-joints avec k = 2 ne donne pas exactement la classe des trigraphes de Berge apprivoisés (en particulier les trigraphes de la clôture ne sont pas tous de Berge). De plus les constantes obtenues pour les k-joints sont moins bonnes que celles obtenue pour les trigraphes de Berge apprivoisés. Soit C une classe de graphes qui doit être vue comme une classe “basique” de graphes. Pour tout entier k ≥ 1, on construit la classe de trigraphes C ≤k de la manière suivante : un trigraphe T appartient à C ≤k si et seulement s’il existe une partition X1, . . . , Xr de V (T) telle que : — pour tout 1 ≤ i ≤ r, 1 ≤ |Xi | ≤ k. — pour tout 1 ≤ i ≤ r,  Xi 2  ⊆ E ∗ (T). — pour tout 1 ≤ i 6= j ≤ r, Xi × Xj ∩ E ∗ (T) = ∅. — il existe un graphe G dans C tel que G est une réalisation de T. En d’autre termes, on part du graphe G de C, on partitionne ses sommets en petites parties (de taille au plus k), et on change toutes les adjacences à l’intérieur de ces parties en arêtes optionnelles. On définit alors le k-joint généralisé entre deux trigraphes T1 et T2, qui géné- 443.3. GRAND BIPARTI DANS LES CLASSES CLOSES PAR K-JOINTS ralise le 2-joint et qui est similaire au H-joint [6]. Soit T1 et T2 deux trigraphes vérifiant les propriétés suivantes avec 1 ≤ r, s ≤ k : — V (T1) est partitionné en (A1, . . . , Ar, B = {b1, . . . , bs}) et Aj 6= ∅ pour tout 1 ≤ j ≤ r. — V (T2) est partitionné en (B1, . . . , Bs, A = {a1, . . . , ar}) et Bi 6= ∅ pour tout 1 ≤ i ≤ s. —  B 2  ⊆ E ∗ (T1) et  A 2  ⊆ E ∗ (T2), ce qui veut dire que A et B contiennent uniquement des arêtes optionnelles. — Pour tout 1 ≤ i ≤ s, 1 ≤ j ≤ r, bi et aj sont ou bien fortement complets, ou bien fortement anticomplets à respectivement Aj et Bi . En d’autre terme, il existe un graphe biparti qui décrit les adjacences entre B et (A1, . . . , Ar), et le même graphe biparti décrit les adjacences entre (B1, . . . , Bs) et A. Alors le k-joint généralisé de T1 et T2 est le trigraphe T ou V (T) = A1 ∪ . . . ∪ Ar ∪ B1 ∪ . . . ∪ Bs. Soit θ1 et θ2 les fonctions d’adjacences de respectivement T1 et T2. Autant que possible la fonction d’adjacence θ de T étend θ1 et θ2 (c’est à dire θ(uv) = θ1(uv) pour uv ∈  V (T1)∩V (T) 2  et θ(uv) = θ2(uv) pour uv ∈  V (T2)∩V (T) 2  ), et pour a ∈ Aj , b ∈ Bi , θ(ab) = 1 si bi et Aj sont fortement complets dans T1 (ou de manière équivalente, si aj et Bi) sont fortement complets dans T2), et −1 sinon. On définit finalement C ≤k comme la plus petite classe contenant C ≤k et close par k-joints généralisés. 3.3 Grand biparti dans les classes closes par kjoints En fait la méthode de contraction des 2-joints utilisée dans la section précédente peut être généralisée aux k-joints. Nous avons seulement besoin que la classe C des graphes basiques soit close par sous-graphes induits pour avoir le résultat sur C ≤k . Nous obtenons le résultat suivant : Théorème 3.10. Soit k ∈ N\{0}, 0 < c < 1/2 et C une classe de graphes telle que pour tout G ∈ C et pour toute fonction de poids w : V (G) → N \ {0} telle que w(v) < cn˙ pour tout v ∈ V (G), G a la c-propriété du grand biparti. Alors tout trigraphe T de C ≤k , avec au moins k/c sommets, a la (c/k)-propriété du grand biparti. Pour démontrer ce théorème, nous définissons la contraction d’un k-joint géné- ralisé. Paradoxalement cette contraction est plus simple que dans le cas du 2-joint 45CHAPITRE 3. PROPRIÉTÉ DU GRAND BIPARTI car il n’y a ni poids ni étiquette sur les arêtes optionnelles : soit T un trigraphe avec une fonction de poids w : V (T) → N\{0} et supposons que T est le k-joint généralisé de T1 et de T2. Nous suivons les notations introduites dans la définition des kjoints généralisés. En particulier, V (T) est partitionné en (A1, . . . , Ar, B1, . . . , Bs). Quitte à échanger T1 et T2, supposons que w(∪ r j=1Aj ) ≥ w(∪ s i=1Bi). Alors la contraction de T est le trigraphe T 0 = T1 avec les poids w 0 définis par w 0 (v) = w(v) si v ∈ ∪r j=1Aj , et w 0 (bi) = w(Bi) pour 1 ≤ i ≤ s. On note cette opération de contraction par (T, w) ❀ (T 0 , w0 ). Remarquons que le lemme 3.5 est toujours vrai dans ce contexte, et nous obtenons le lemme suivant : Lemme 3.11. Soit 0 < c < 1/(2k). Soit (T, w) un trigraphe pondéré de C ≤k tel que w(v) < cn˙ pour tout v ∈ V (T). Ou bien T a la c-propriété du grand biparti, ou bien il existe un trigraphe T 0 ∈ C≤k de poids w 0 tel que (T, w) ❀∗ (T 0 , w0 ) et pour tout v ∈ V (T 0 ), w(v) < cn˙ . Démonstration. La démonstration est similaire au lemme 3.6. On prouve le résultat par induction sur T. Avec les notations précédentes, T se partitionne en V (T) = A1 ∪ . . . ∪ Ar ∪ B1 ∪ . . . ∪ Bs Par symétrie, supposons que w(∪Aj ) ≥ w(∪Bi) et donc w(∪Aj ) ≥ n/2. Par définition de X1, max(w(Aj )) ≥ n/(2k) ≥ cn˙ . Donc si max(w(Bj )) ≥ cn˙ , on a la c-propriété du grand biparti. Sinon, (T, w) ❀ (T 0 , w0 ) avec w 0 (x) < cn˙ pour tout x ∈ V (T 0 )∪ E ∗ (T 0 ) et T 0 ∈ C ≤k par construction de la classe. On peut donc appliquer l’hypothèse d’induction et ; ou bien trouver un trigraphe basique T 00, tel que (T, w) ❀ (T 0 , w0 ) ❀∗ (T 00, w00) et w 00(x) < cn˙ pour tout x ∈ V (T 00) ∪ E ∗ (T 00); ou bien T 0 a la c-propriété du grand biparti, et donc T aussi d’après le lemme 3.5. Démonstration du Théorème 3.10. Soit T un trigraphe de C ≤k . On définit les poids w(v) = 1 pour tout v ∈ V (T). En appliquant le lemme 3.11 on a, ou bien la (c/k) propriété du grand biparti, ou bien il existe un trigraphe T 0 ∈ C≤k tel que (T, w) ❀∗ (T 0 , w0 ) et w 0 (v) < (c/k).n pour tout v ∈ V (T 0 ). Pour chaque composante optionnelle de T 0 , on choisit le sommet de plus grand poids et on supprime les autres. On obtient un graphe G ∈ C et on définit w 00(v) = w 0 (v) sur ses sommets. Remarquons que w 00(V (G)) ≥ w 0 (V (T 0 ))/k puisque toute composante optionnelle a taille au moins k, et pour tout v ∈ V (G), w 00(v) < (c/k).w0 (V (T 0 )) ≤ cw˙ 00(V (G)). Alors il existe V1, V2 ⊆ V (G) tels que w 00(V1), w00(V2) ≥ cw˙ 00(V (G)) et V1 est ou bien fortement complet ou bien fortement anticomplet à V2. Alors w 0 (V1), w0 (V2) ≥ (c/k).w0 (V (T 0 )) et V1 est ou bien fortement complet ou bien fortement anticomplet 463.3. GRAND BIPARTI DANS LES CLASSES CLOSES PAR K-JOINTS à V2 dans T 0 . Donc T 0 a la (c/k)-propriété du grand biparti. On conclut alors à l’existence d’une paire d’ensembles témoins de la propriété du grand biparti dans T avec le lemme 3.5. Les résultats de ce chapitre ne sont pas spécifiques aux trigraphes de Berge apprivoisés. En effet la partie la plus technique est la démonstration du cas basique (lemme 3.8). La partie induction, c’est à dire, la construction par joint est finalement assez simple. En fait, si le joint est équilibré, il est normal que l’on ait la propriété du grand biparti entre les deux côtés du joint. Cependant comme les graphes de Berge n’ont pas tous cette propriété, c’est une autre manière de voir que notre classe est une sous-classe stricte des graphes de Berge. 47CHAPITRE 3. PROPRIÉTÉ DU GRAND BIPARTI 48Chapitre 4 Clique-Stable séparateur Les résultats de ce chapitre ont été obtenus avec Aurélie Lagoutte, ils font l’objet d’un article [26] soumis à Discrete Mathematics. Une propriété très proche de la propriété du grand biparti est celle de la cliquestable séparation. Commençons par définir ce qu’est un clique-stable séparateur. Soit G un graphe, on dit qu’une partition en deux ensembles C = (U, V ) du graphe G est une coupe. Un ensemble de coupes est un clique-stable séparateur de G si pour toute clique K et tout stable S de G tels que K ∩ S = ∅ il existe une coupe C = (U, V ) du graphe G telle que K ⊆ U et S ⊆ V . Bien entendu, pour tout graphe G il existe toujours un clique-stable séparateur. La question intéressante est de savoir s’il existe un clique-stable séparateur contenant un nombre polynomial de coupes. On dit donc qu’une classe C graphes a la propriété de la clique-stable séparation s’il existe un polynôme P tel que pour tout graphe G ∈ C d’ordre n, G admette un clique-stable séparateur de taille P(n). Dans ce chapitre nous allons montrer que les graphes de Berge apprivoisés admettent un clique-stable séparateur de taille O(n 2 ). Nous généraliserons ce résultat aux classes de trigraphes construites par k-joints généralisés comme défini dans le chapitre 3. La propriété de la clique-stable séparation a été introduite par Yannakakis [38] dans les années 90 lorsqu’il étudiait le problème de l’existence d’une formulation étendue pour le polytope des stables (l’enveloppe convexe des fonctions caracté- ristiques de ses stables). C’est à dire un polytope plus simple en dimension plus grande mais tel que sa projection soit le polytope des stables. Il s’est intéressé à 49CHAPITRE 4. CLIQUE-STABLE SÉPARATEUR ce problème sur les graphes parfaits car ces graphes ont des propriétés permettant de définir plus simplement ce polytope. Cela l’a amené à définir un problème de communication qui est équivalent à celui de la clique-stable séparation. De fait l’existence d’un clique-stable séparateur de taille polynomial est une condition né- cessaire à l’existence d’une formulation étendue. Il a pu démontrer l’existence à la fois d’un clique-stable séparateur de taille polynomiale et d’une formulation étendue pour de nombreuses sous-classes de graphes parfaits comme par exemple, les graphes de comparabilité, les graphes triangulés (chordal graph c’est-à-dire les graphes sans C4 induit), et les compléments de ces classes. Lovász à également démontré ces propriétés pour les graphes t-parfaits [30]. Cependant ces deux problèmes restent ouverts pour les graphes parfaits en général. L’existence d’une formulation étendue n’étant pas toujours vraie pour les graphes [20], il est donc d’autant plus intéressant de voir si ces propriétés sont vérifiées pour les graphes parfaits. Remarquons bien que contrairement à la propriété du grand biparti qui n’est pas vérifiée pour les graphes de comparabilité, la propriété de la clique-stable séparation est vraie sur cette classe. Les graphes de comparabilité sont une classe de graphes parfaits assez bien comprise dans laquelle presque tous les graphes ont de nombreuses skew-partitions équilibrées, de ce point de vue c’est une classe bien étudiée de graphes de Berge non apprivoisés. Peut-être est-il donc possible d’utiliser la décomposition du théorème fort des graphes parfaits pour démontrer l’existence de clique-stable séparateur de taille polynomiale pour les graphes parfaits. Commençons par voir comment la propriété de la clique-stable séparation et la propriété du grand biparti sont liées. Dans le cas des classes de graphes héréditaires, la propriété du grand biparti implique celle de la clique-stable séparation. Comme le montre le théorème suivant (la démonstration est la même que celle de Bousquet, Lagoutte et Thomassé dans [4] qui à partir de la propriété du grand biparti prouvé dans [5] montre que les graphes sans chemin induit ni complémentaire de chemin induit de taille k ont la propriété de la clique-stable séparation) Lemme 4.1. Soit C une classe de graphes héréditaire ayant la c-propriété du grand biparti, alors C a la propriété de la clique-stable séparation. Démonstration. Le but est de démontrer que tout graphe G dans C admet un clique-stable séparateur de taille n cs avec cs = −1 log2(1−c) (pour rappel, c-est la constante de la propriété du grand biparti). Raisonnons par l’absurde et prenons G un contre-exemple minimal. Notons n = |V (G)|, comme G a la c-propriété du grand biparti, il existe deux sous-ensembles de sommets disjoints V1, V2 vérifiant, |V1| ≥ cn˙ , |V2| ≥ cn˙ et V1 est ou bien complet à V2 ou bien anticomplet à V2. 504.1. CLIQUE-STABLE SÉPARATEUR DANS LES TRIGRAPHES DE BERGE APPRIVOISÉS Notons V3 = V (G) \ (V1 ∪ V2). Par minimalité de G, G|(V1 ∪ V3) admet un cliquestable séparateur F1 de taille (|V1| + |V3|) cs et G|(V2 ∪ V3) admet un clique-stable séparateur F2 de taille (|V2| + |V3|) cs. Construisons F un clique stable séparateur de G. Nous devons distinguer deux cas suivant les adjacences entre V1 et V2. L’idée est de prendre chaque coupe de F1 et F2 et de la transformer en une coupe de G en ajoutant les sommets de V2 ou V1 du “bon” côté de la coupe suivant les adjacences entre V1 et V2. Formellement si V1 est complet à V2, F = {(U ∪ V2, W); (U, W) ∈ F1} ∪ {(U ∪ V1, W); (U, W) ∈ F2}. Si au contraire, V1 est anticomplet à V2, F = {(U, W ∪ V2); (U, W) ∈ F1} ∪ {(U, W ∪ V1); (U, W) ∈ F2}. Il est facile de voir que F est un clique-stable séparateur de G. En effet suivant les adjacences entre V1 et V2 une clique ou un stable de G ne peut pas intersecter à la fois V1 et V2. Pour toute clique K et stable S ne s’intersectant pas, il existe donc une coupe dans F qui les sépare. Enfin F a taille au plus 2((1 − c)n) cs ≤ n cn . Ce résultat ne règle pas vraiment le problème pour les graphes de Berge apprivoisés. En effet la classe des graphes de Berge apprivoisés n’est pas héréditaire (la suppression de sommet peut créer des skew-partitions). D’autre part, avec la constante obtenue dans le théorème 3.3 on obtiendrait un clique-stable séparateur de taille O(n 101) ce qui, étant donné que nous pouvons montrer qu’il existe un clique-stable séparateur de taille quadratique, est assez mauvais. 4.1 Clique-stable séparateur dans les trigraphes de Berge apprivoisés Comme dans le chapitre précédent, nous allons utiliser le théorème de décomposition et les blocs du chapitre 2. Nous devons donc étendre notre problème aux trigraphes. Le résultat principal sera le théorème 4.5 prouvant l’existence de cliquestable séparateur de taille quadratique pour les trigraphes de Berge apprivoisés. Commençons par définir les notions de clique-stable séparation dans les trigraphes. Soit T un trigraphe. Une coupe de T est une paire (U, W) ⊆ V (T) 2 , telle que U ∪W = V (T) et U ∩W = ∅. Elle sépare une clique K d’un stable S, si H ⊆ U et S ⊆ W. Parfois on dit que U est la partie clique de la coupe et W la partie stable de la coupe. Remarquons qu’une clique et un stable ne peuvent être séparés que s’ils ne s’intersectent pas. Remarquons également qu’ils ne peuvent s’intersecter que sur une composante optionnelle V (pour rappel pour tout u, v ∈ V , u = v ou uv ∈ E ∗ (T)). En particulier, si T est un trigraphe bigame, une clique et un 51CHAPITRE 4. CLIQUE-STABLE SÉPARATEUR stable s’intersectent sur au plus un sommet ou une arête optionnelle. On dit que la famille F de coupes est un clique-stable séparateur, si pour toute clique K et tout stable S qui ne s’intersectent pas, il existe une coupe dans F qui sépare K et S. Étant donnée une classe C de trigraphes, nous nous intéressons à la question suivante : existe-t-il une constante c, telle que pour tout trigraphe T de C, T admet un clique-stable séparateur de taille O(n c ) ? Supposons qu’il existe un clique-stable séparateur de taille m de T, alors on construit un clique-stable séparateur de taille m de T en construisant pour chaque coupe (U, W) la coupe (W, U). Le problème est donc bien auto-complémentaire. Montrons également qu’il est suffisant de considérer uniquement les cliques et les stables maximaux. Lemme 4.2. Si un trigraphe T bigame admet une famille F de coupes qui sépare toutes les cliques maximales (pour l’inclusion) de tous les stables maximaux, alors T admet un clique-stable séparateur de taille au plus |F| + O(n 2 ). Démonstration. Pour tout x ∈ V , prenons Cut1,x la coupe N[x], V \N[x] et Cut2,x la coupe (N(x), V \ N(x)). Pour toute arête optionnelle xy, prenons Cut1,xy (resp. Cut2,xy, Cut3,xy, Cut4,xy) la coupe (U = N[x] ∪ N[y], V \ U) (resp. (U = N[x] ∪ N(y), V \ U), (U = N(x) ∪ N[y], V \ U), (U = N(x) ∪ N(y), V \ U)). Soit F 0 l’union de F avec toutes les coupes que nous venons de définir pour tout x ∈ V , et xy ∈ E ∗ (T). Nous allons démontrer que F 0 est un clique-stable séparateur. Soit (K, S) une paire d’une clique et d’un stable qui ne s’intersectent pas. Étendons K et S en ajoutant des sommets jusqu’à avoir une clique maximale K0 et un stable maximal S 0 . Nous devons traiter trois cas. Ou bien K0 et S 0 ne s’intersectent pas, dans ce cas il y a une coupe de F qui sépare K0 de S 0 (et donc K et S). Ou bien K0 et S 0 s’intersectent sur un sommet x, dans ce cas si x ∈ K, alors Cut1,x sépare K de S, sinon Cut2,x les sépare. Ou bien K0 et S 0 s’intersectent sur une arête optionnelle xy (en effet une clique et un stable ne peuvent s’intersecter que sur au plus un sommet ou une arête optionnelle). Dans ce cas, par le même argument que pour le cas précédent, suivant l’intersection entre {x, y} et K0 une des coupes Cut1,xy,. . ., Cut4,xy sépare la clique K du stable S. En particulier, si T a au plus O(n c ) cliques maximales (ou stables maximaux) pour une constante c ≥ 2, alors il existe un clique-stable séparateur de taille O(n c ). (Il suffit de séparer toutes les cliques maximales puis d’appliquer le lemme précédent). 524.1. CLIQUE-STABLE SÉPARATEUR DANS LES TRIGRAPHES DE BERGE APPRIVOISÉS Nous prouvons maintenant que les trigraphes de Berge apprivoisés admettent un clique-stable séparateur de taille quadratique. Commençons par traiter le cas des trigraphes basiques. Lemme 4.3. Il existe une constante c, telle que tout trigraphe basique admet un clique-stable séparateur de taille cn˙ 2 . Démonstration. Puisque le problème est auto-complémentaire, nous traitons uniquement le cas des trigraphes bipartis, des line trigraphes et des trigraphes doublés. Une clique dans un trigraphe biparti est une arête forte, une arête optionnelle ou un sommet, il y a donc un nombre quadratique de cliques. Si T est un line trigraphe, alors sa réalisation complète est le line graphe d’un graphe biparti G et donc T a au plus un nombre linéaire de cliques car chaque clique correspond à un sommet de G. Grâce au lemme 4.2, les line trigraphes admettent un clique-stable séparateur de taille quadratique. Si T est un trigraphe doublé, alors soit (X, Y ) une bonne partition de T. Ajoutons à la coupe (Y, X) les coupes suivantes : pour tout Z = {x} avec x ∈ X ou Z = ∅, et pour tout Z 0 = {y} avec y ∈ Y ou Z 0 = ∅, prenons la coupe (Y ∪ Z \ Z 0 , X ∪ Z 0 \ Z) et pour toute paire x, y ∈ V , prenons la coupe ({x, y}, V \ {x, y}), et (V \ {x, y}, {x, y}). Ces coupes forment un clique-stable séparateur : soit K une clique et S un stable de T qui ne s’intersectent pas, alors |K ∩ X| ≤ 2 et |S ∩ Y | ≤ 2. Si |K ∩ X| = 2 (resp. |S ∩ Y |=2) alors K (resp. S) est seulement une arête (resp. une antiarête), car par définition, les sommets de K ∩ X n’ont pas de voisin commun avec Y . Donc la coupe (K, V \ K) (resp. V \ S, S) sépare K et S. Sinon, |K∩X| ≤ 1 et |S∩Y | ≤ 1 et alors (Y ∪(K∩X)\(S∩Y ), X∪(S∩Y )\(K∩X)) sépare K et S. Nous pouvons maintenant traiter le cas des 2-joints dans les trigraphes et montrer comment reconstruire un clique-stable séparateur à partir des clique-stable séparateurs des blocs de décompositions. Lemme 4.4. Soit T un trigraphe qui admet un 2-joint propre (X1, X2). Si les blocs de décomposition TX1 et TX2 admettent des clique-stable séparateurs de taille respectivement k1 et k2, alors T admet un clique-stable séparateur de taille k1 + k2. Démonstration. Soit (A1, B1, C1, A2, B2, C2) une affectation de (X1, X2), TXi (i = 1, 2) les blocs de décomposition avec les sommets marqués ai , bi et potentiellement 53CHAPITRE 4. CLIQUE-STABLE SÉPARATEUR ci suivant la parité du 2-joint. Remarquons que nous n’avons pas besoin de distinguer le cas du 2-joint pair de celui du 2-joint impair car ci ne joue aucun rôle. Soit F1 un clique-stable séparateur de TX1 de taille k1 et F2 un clique-stable séparateur de TX2 de taille k2. Construisons F un clique-stable séparateur de T. Pour chaque coupe (U, W) ∈ F1, construisons la coupe ((U ∩ X1) ∪ U 0 ,(W ∩ X1) ∪ W0 ∪ C2) avec U 0 ∪ W0 = A2 ∪ B2 et A2 ⊆ U 0 (resp. B2 ⊆ U 0 ) si a2 ∈ U (resp. b2 ∈ U), et A2 ⊆ W0 (resp. B2 ⊆ W0 ) sinon. En d’autres termes, A2 va du même côté de la coupe que a2, B2 va du même côté que b2 et C2 va toujours du côté du stable. Pour chaque coupe dans F2, nous faisons la même construction : A1 va du côté de a1, B1 va du côté de b1 et C1 va du côté du stable. Montrons maintenant que F est bien un clique-stable séparateur : soit K une clique et S un stable tels que K et S ne s’intersectent pas. Commençons par supposer que K ⊆ X1. Soit S 0 = (S ∩ X1) ∪ Sa2,b2 avec Sa1,b2 ⊆ {a2, b2} contient a2 (resp. b2) si et seulement si S intersecte A2 (resp. B2). S 0 est un stable de TX1 , donc il y a une coupe de F1 qui sépare K de S 0 . La coupe correspondante dans F sépare (K, S). Le cas K ⊆ X2 se traite de la même manière. Supposons alors que K intersecte à la fois X1 et X2. Alors K ∩ C1 = ∅ et K ⊆ A1 ∪ A2 ou K ⊆ B1 ∪ B2. Supposons sans perte de généralité que K ⊆ A1∪A2. Remarquons que S ne peut intersecter à la fois A1 et A2 qui sont fortement adjacent. Supposons donc que S n’intersecte pas A2. Soit K0 = (K ∩ A1) ∪ {a2} et S 0 = (S ∩ X1) ∪ Sb2 avec Sb2 = {b2}, si S intersecte B2, et Sb2 = ∅ sinon. K0 est une clique et S 0 est un stable de TX1 , donc il existe une coupe dans F1 qui les sépare. La coupe correspondante dans F sépare bien K de S, et donc F est bien un clique-stable séparateur. Nous pouvons maintenant démontrer le théorème principal de cette section : Théorème 4.5. Tout trigraphe de Berge apprivoisé admet un clique-stable séparateur de taille O(n 2 ). Démonstration. Soit c 0 la constante du lemme 4.3 et c = max(c 0 , 2 24). Nous allons démontrer par induction que tout trigraphe de T admet un clique-stable séparateur de taille cn˙ 2 . Nous avons deux cas de base, celui des trigraphes basiques, traités par le lemme 4.3 qui donne un clique-stable séparateur de taille c 0n 2 , et celui des petits trigraphes, c’est à dire celui des trigraphes d’ordre inférieur à 24. Pour ces trigraphes on peut simplement prendre tous les sous-ensembles de sommet U et prendre les coupes (U, V \ U) qui forment trivialement un clique-stable séparateur de taille au plus 2 24n 2 . 544.2. CLIQUE-STABLE SÉPARATEUR DANS LES CLASSES CLOSES PAR K-JOINTS Par conséquent, nous pouvons maintenant supposer que le trigraphe T n’est pas basique et a au moins 25 sommets. D’après le théorème 2.10, T admet un 2-joint propre (X1, X2) (ou le complément d’un 2-joint propre, mais dans ce cas comme le problème est auto-complémentaire, donc pouvons le résoudre sur T). Soit n1 = |X1|, d’après le lemme 2.9 nous pouvons supposer que 4 ≤ n1 ≤ n − 4. D’après le théorème 2.11, nous pouvons appliquer l’hypothèse d’induction sur les blocs de décomposition TX1 et TX2 afin d’obtenir un clique-stable séparateur de taille respectivement au plus k1 = c(n1 + 3)2 et k2 = c(n − n1 + 3)2 . D’après le lemme 4.4, T admet un clique-stable séparateur de taille k1 + k2. Prouvons maintenant que k1 + k2 ≤ cn˙ 2 . Soit P(n1) = c(n1 + 3)2 + c(n − n1 + 3)2 − cn˙ 2 . P est un polynôme de degré 2 de coefficient dominant 2c > 0. De plus P(4) = P(n − 4) = −2c(n − 25) ≤ 0 donc par convexité de P, P(n1) ≤ 0 pour tout 4 ≤ n1 ≤ n − 4, ce qui termine la démonstration. 4.2 Clique-stable séparateur dans les classes closes par k-joints Comme dans le chapitre 3 voyons maintenant comment étendre le résultat sur l’existence de clique-stable séparateurs de taille polynomial dans les classes de trigraphes closes par k-joints généralisés. Nous rappelons que nous partons d’une classe de graphes C héréditaire ayant la propriété de la clique stable séparation. Nous allons alors construire une classe de trigraphes C ≤k à partir de ces graphes, puis nous prenons la clôture C ≤k de cette classe par k-joints généralisés. Nous rappelons que toutes les définitions sont dans la section 3.2 du chapitre 3. Les remarques du chapitre précédent restent vraies : même si le théorème 2.10 montre que dans un certain sens les trigraphes de Berge apprivoisés sont la clô- ture par 2-joints et complémentaire de 2-joints des trigraphes basiques, prendre la clôture par k-joints généralisés des trigraphes basiques avec k = 2 ne donne pas la classe des trigraphes de Berge apprivoisés. En effet certains graphes de cette clôture ont des skew-partitions équilibrées. De plus les constantes obtenues dans le cas des k-joints généralisés sont moins bonnes que celles obtenues directement sur les trigraphes de Berge apprivoisés. Dans un premier temps montrons que la transformation des graphes en trigraphes (de la classe C à la classe C ≤k ), préserve la propriété de la clique-stable séparation. L’explosion de la taille du clique-stable séparateur est due au fait que 55CHAPITRE 4. CLIQUE-STABLE SÉPARATEUR dans un trigraphe T, une clique (et de même pour un stable) contenant k arêtes optionnelles devient une union d’au plus k cliques dans les réalisations de T. Lemme 4.6. Si chaque graphe G de C admet un clique-stable séparateur de taille m, alors chaque trigraphe T de C ≤k admet un clique-stable séparateur de taille mk 2 . Démonstration. Commençons par démontrer que s’il existe un clique-stable séparateur F de taille m alors F 0 = {(∩ k i=1Ui , ∪ k i=1Wi)|(U1, W1). . .(Uk, Wk) ∈ F} est une famille de coupes de taille mk qui sépare chaque clique de chaque union d’au plus k stables. En effet, si K est une clique et S1 . . . Sk sont k stables, tels qu’ils n’intersectent pas K, alors il existe dans F k partitions (U1, W1). . .(Uk, Wk) telles que (Ui , Wi) sépare K et Si . Maintenant (∩ k i=1Ui , ∪ k i=1Wi) est une partition qui sépare K de ∪ k i=1Si . Avec le même argument, on peut construire une famille F 00 de coupes de taille mk 2 qui sépare chaque union d’au plus k cliques d’union d’au plus k stables. Maintenant soit T un trigraphe de C ≤k et soit G ∈ C, tel que G est une réalisation de T. Remarquons qu’une clique K (resp. un stable S) dans T est une union d’au plus k cliques (resp. stables) dans G. Par exemple on peut voir que Σ(T) ∩ K (resp. Σ(T) ∩ S) est k-coloriable et chaque classe de couleur correspond à une clique (resp. un stable) dans G. Alors il existe un clique-stable séparateur de T de taille mk 2 . Nous pouvons maintenant montrer que le k-joint généralisé de deux trigraphes préserve la propriété de clique-stable séparation. En fait vu la structure assez forte du k-joint généralisé, les cliques traversantes (qui ont des sommets des deux côtés du k-joint généralisé) sont très contraintes. On peut donc presque prendre l’union des clique-stable séparateurs des deux trigraphes dont on est en train de prendre le k-joint généralisé. Lemme 4.7. Si T1 et T2 ∈ C ≤k admettent des clique-stable séparateurs de taille respectivement m1 et m2, alors le k-joint généralisé T de T1 et T2 admet un clique-stable séparateur de taille m1 + m2. Démonstration. La preuve est similaire à celle faite pour le lemme 4.4. On suit les notations introduites dans les définitions du k-joint généralisé. Soit F1 (resp, F2) un clique-stable séparateur de taille m1 (resp. m2) sur T1 (resp. T2). Construisons F un clique-stable séparateur de T. Pour chaque coupe (U, W) dans F1, construisons la coupe (U 0 , W0 ) suivant ces deux règles : pour tout a ∈ ∪r j=0Aj (resp. b ∈ Bi), 564.2. CLIQUE-STABLE SÉPARATEUR DANS LES CLASSES CLOSES PAR K-JOINTS a ∈ U 0 (resp. b ∈ U 0 ) si et seulement si a ∈ U (resp. bi ∈ U). En d’autres termes, on prend une coupe similaire à (U, W) en mettant Bi du même côté que bi . On fait l’opération symétrique pour chaque coupe (U, W) dans F2 en mettant Aj du même côté que aj . F est bien un clique-stable séparateur : soit K une clique et S un stable qui ne s’intersectent pas. Supposons pour commencer qu’un côté de la partition (A1, . . . , Ar, B1, . . . , Bs) intersecte à la fois K et S. Quitte à échanger T1 et T2 et à renuméroter les Aj , on peut supposer que A1 ∩ K 6= ∅ et A1 ∩ S 6= ∅. Puisque pour tout i, A1 est ou bien fortement complet ou bien fortement anticomplet à Bi , Bi ne peut intersecter à la fois K et S. Considérons dans T1 la paire (K0 = (K ∩ V (T)) ∪ Kb, S0 = (S ∩ V (T)) ∪ Sb) avec Kb = {bi |K ∩ Bi 6= ∅} et Sb = {bi |S ∩ Bi 6= ∅}. K0 est une clique dans T1, S 0 est un stable dans T1. Comme ils ne s’intersectent pas, il y a une coupe les séparant dans F1. La coupe correspondante dans F sépare K et S. L’autre cas est celui ou aucune partie de la partition n’intersecte à la fois K et S. Alors pour tout i, Bi n’intersectent pas non plus à la fois la clique K et le stable S : le même argument que ci-dessus s’applique encore. Nous pouvons maintenant démontrer le théorème principal de cette section. Théorème 4.8. Si tout graphe de C admet un clique-stable séparateur de taille O(n c ), alors tout trigraphe de C ≤k admet un clique-stable séparateur de taille O(n k 2 c ). En particulier, toute réalisation d’un trigraphe de C ≤k admet un clique-stable séparateur de taille O(n k 2 c ). Démonstration. On prouve par induction qu’il existe un clique-stable séparateur de taille pnk 2 c avec p = max(p 0 , 2 p0 ) où p 0 est la constante du O de la taille du clique-stable séparateur des graphes de C et p0 est une constante définie dans la suite. Le cas de base comporte deux cas : les trigraphes de C ≤k , pour lesquels la propriété est vérifiée d’après le lemme 4.6 et les trigraphes d’ordre au plus p0. Pour ces derniers, on peut considérer tous les sous-ensembles U de sommets et prendre les coupes (U, V \ U) qui forment un clique-stable séparateur trivial de taille au plus 2 p0 n k 2 c . Par conséquent, on peut supposer que T est le k-joint généralisé de T1 et T2 et qu’il a au moins p0 sommets. Soit n1 = |T1| et n2 = |T2| avec n1 + n2 = n + r + s et r + s + 1 ≤ n1, n2, ≤ n − 1. Par induction, il existe un clique-stable séparateur de taille pnk 2 c 1 sur T1 et un de taille pnk 2 c 2 sur T2. D’après le lemme 4.7, il existe 57CHAPITRE 4. CLIQUE-STABLE SÉPARATEUR un clique-stable séparateur sur T de taille pnk 2 c 1 + pnk 2 c 2 . On veut démontrer que pnk 2 c 1 + pnk 2 c 2 ≤ pnk 2 c . Remarquons que n1+n2 = n−1+r+s+1 donc par convexité de x 7→ x c sur R +, n k 2 c 1 +n k 2 c 2 ≤ (n−1)k 2 c+ (r+s+1)k 2 c . De plus, r+s+1 ≤ 2k+1. Définissons alors p0 suffisamment grand pour que pour tout n ≥ p0, n k 2 c − (n − 1)k 2 c ≥ (2k + 1)k 2 c . Alors n k 2 c 1 + n k 2 c 2 ≤ n k 2 c , ce qui conclut la démonstration. Dans ce chapitre également les résultats sortent du cadre des graphes de Berge apprivoisés pour s’étendre aux graphes clos par k-joint. Le point clé est de remarquer que les cliques ne peuvent pas vraiment traverser un k-joint. Le seul cas possible de traversée est entre deux ensembles complets du k-joint, mais dans ce cas comme les ensembles sont complets, le stable ne peut pas lui aussi intersecter ces deux ensembles. 58Chapitre 5 Calcul du stable maximum Les résultats de ce chapitre ont été obtenus avec Maria Chudnovsky, Nicolas Trotignon et Kristina Vušković, ils font l’objet d’un article [15] soumis à Journal of Combinatorial Theory, Series B. Nous allons dans ce chapitre montrer comment calculer en temps polynomial la taille du stable maximum dans les graphes de Berge apprivoisés. En toute rigueur ce problème est déjà résolu dans les graphes parfaits et donc a fortiori dans les graphes de Berge apprivoisés. Cependant la démonstration, due à Grötschel, Lovász et Schrijver [33] n’utilise pas du tout la structure (au sens du théorème de décomposition) des graphes parfaits (qui lui est postérieur) mais utilise principalement l’égalité entre les nombre chromatique χ et la taille d’une clique maximumω. En effet Lovász [29] introduit une quantité ϑ, résultat d’un problème d’optimisation convexe. Dans les graphes cette quantité vérifie l’inégalité α ≤ ϑ ≤ χ (χ est la taille d’une couverture par clique minimale). Dans les graphes parfaits, ϑ est donc égal à α la taille maximum d’un stable. Grâce à la méthode de l’ellipsoïde inventée par Grötschel, Lovász et Schrijver [23], il est alors possible de calculer α en temps polynomial. L’intérêt de notre résultat est qu’il est complétement combinatoire. À partir de ce résultat il est possible de colorier les graphes de Berge apprivoisés avec un surcout de O(n 2 ) en utilisant la démonstration classique de Grötschel, Lovász et Schrijver [33]. Comme dans les chapitres précédents nous allons décomposer le graphe grâce au théorème 2.10, et faire une induction. Malheureusement contrairement aux chapitres précédents notre méthode n’est pas générale vis à vis des 2-joints et donc ne se généralise pas aux classes closes par k-joints généralisées. 59CHAPITRE 5. CALCUL DU STABLE MAXIMUM En effet la structure des stables dépend de la parité du 2-joint (voir surtout le lemme 5.3 et le lemme 5.4). Afin de pouvoir faire l’induction nous avons besoin de travailler avec des trigraphes pondérés. Donc dans la suite de ce chapitre, le terme “trigraphe” signifie un trigraphe avec des poids sur ses sommets. Les poids sont des nombres de K avec K ou bien l’ensemble R+ des réels strictement positifs ou bien N+ l’ensemble des entiers strictement positifs. Les théorèmes sont vrais pour K = R+ mais les algorithmes sont implémentés avec K = N+. On voit un trigraphe sans poids sur ses sommets comme un trigraphe pondéré avec tous ses poids égaux à 1. Remarquons qu’un ensemble de sommets dans un trigraphe T est un stable fort, si et seulement si c’est un stable dans la réalisation complète de T. 5.1 Le cas des trigraphes basiques Commençons par montrer que nous pouvons reconnaître les classes basiques et calculer un stable pondéré maximum dans ces classes. Théorème 5.1. Il existe un algorithme en temps O(n 4 ) dont l’entrée est un trigraphe et dont la sortie est ou bien “T n’est pas basique”, ou bien le nom de la classe de base de T et le poids maximum d’un stable fort de T. Démonstration. Pour toute classe de trigraphe basique, nous fournissons un algorithme en temps O(n 4 ) qui décide si le trigraphe appartient à la classe et si c’est le cas, calcule le poids maximum d’un stable fort. Pour les trigraphes bipartis, on construit la réalisation complète G de T. Il est immédiat de voir que T est biparti si et seulement si G l’est. On peut donc reconnaitre un trigraphe biparti en temps linéaire en utilisant un parcours. Si T est biparti, un stable maximum de G est exactement un stable fort maximum de T, et on peut le calculer en temps O(n 3 ) voir [33]. Pour les compléments de trigraphes bipartis, nous procédons de manière analogue : nous commençons par prendre le complément T de notre trigraphe T, et nous reconnaissons si la réalisation complète de T est un graphe biparti. Nous calculons ensuite le poids maximum d’une clique de GT ∅ . Toutes ces opérations peuvent clairement se faire en temps O(n 2 ). Pour les line trigraphes, nous calculons la réalisation complète G et testons si G est un line graphe d’un graphe biparti par un algorithme classique comme [27] ou [32]. Notons que ces algorithmes fournissent également le graphe R tel que 605.1. LE CAS DES TRIGRAPHES BASIQUES G = L(R). En temps O(n 3 ) nous pouvons vérifier que les cliques de taille au moins 3 dans T sont bien des cliques fortes. On peut donc reconnaitre si T est un line trigraphe en temps O(n 3 ). Si c’est le cas, un stable maximum dans G peut être calculer en temps O(n 3 ) en calculant un couplage de poids maximum (voir [33]) dans le graphe biparti R tel que G = L(R). Pour les compléments de line trigraphes, nous procédons de manière similaire pour la reconnaissance en prenant la réalisation complète de T. Et le calcul du poids maximum d’un stable fort est simple : nous calculons la réalisation complète G de T, nous calculons ensuite le graphe biparti R tel que G = L(R) (il existe car d’après le lemme 2.1, les line trigraphes sont clos par réalisation) et nous calculons un stable de poids maximum de G (un tel stable est un ensemble maximal d’arête de R toutes deux à deux adjacentes, et il y a un nombre linéaire de tels ensembles). C’est alors un stable fort de poids maximum dans T. Pour les trigraphes doublés, nous ne pouvons pas utiliser de résultats classiques. Pour la reconnaissance, nous pourrions utiliser la liste des graphes non doublés minimaux décrite dans [2]. Cette liste de 44 graphes sur au plus 9 sommets donne un algorithme de reconnaissance en temps O(n 9 ). Plus récemment Maffray à donné un algorithme linéaire [31] pour la reconnaissance des graphes doublés. Malheureusement ce résultat ne semble pas se généraliser directement aux trigraphes. Nous proposons ici un algorithme en O(n 4 ) qui fonctionne également sur des trigraphes. Si une partition (X, Y ) des sommets d’un trigraphe est donné, on peut décider si c’est une bonne partition, par une génération exhaustive qui vérifie tous les points de la définition en temps O(n 2 ). Et si une arête ab de T|X est donnée, il est facile de reconstruire la bonne partition : tous les sommets fortement antiadjacents aux sommets a et b sont dans X et tous les sommets fortement adjacents à au moins a ou b sont dans Y . Donc en testant toutes les arêtes uv, on peut prédire laquelle est dans T|X, puis reconstruire (X, Y ) et donc décider en temps O(n 4 ) si le trigraphe T a une bonne partition (X, Y ), telle que X contient au moins une arête. De la même manière on peut tester si le trigraphe T a une bonne partition (X, Y ), telle que Y contient au moins une antiarête. Reste le cas de la reconnaissance des trigraphes doublés, tels que toute bonne partition est composée d’une clique forte et d’un stable fort. Dans ce cas le trigraphe est en fait un graphe, et ce type de graphe est connu comme un split graphe. Ils peuvent être reconnus en temps linéaire, voir [25] où il est prouvé qu’en regardant les degrés on peut facilement trouver une partition en clique et stable si une telle partition existe. Maintenant que nous savons reconnaitre si le trigraphe T est un trigraphe doublé, regardons comment calculer le poids maximum d’un stable fort de T. 61CHAPITRE 5. CALCUL DU STABLE MAXIMUM Calculons la réalisation complète G de T. D’après 2.2, G est un graphe doublé, et en fait (X, Y ) est une bonne partition pour G. Nous calculons alors un stable pondéré maximum dans G|X (qui est biparti), dans G|Y (dont le complément est biparti), et tous les stables formés d’un sommet de Y et de ses non-voisins dans X. Un de ces stables est de poids maximum dans G et donc est un stable fort de poids maximum dans T. 5.2 Stocker α dans les blocs Dans cette section, nous définissons plusieurs blocs de décomposition qui vont nous permettre de calculer le stable de poids maximum. Nous notons α(T) le poids maximum d’un stable fort de T. Dans la suite, T est un trigraphe de Berge apprivoisé, X est un fragment de T et Y = V (T) \ X (donc Y est aussi un fragment de T). Pour calculer α(T), il n’est pas suffisant de considérer les blocs TX et TY (comme défini dans le chapitre 2) séparément. Nous devons élargir les blocs afin d’encoder l’information de l’autre bloc. Dans cette section nous définissons quatre gadgets différents, TY,1, . . ., TY,4 et pour i = 1, . . . , 4, nous prouvons que α(T) peut être calculé à partir de α(TYi ). Nous définissons parfois plusieurs gadgets pour la même situation. En effet, dans la section 5.3 (notamment pour démontrer le lemme 5.9), nous avons besoin que nos gadgets préservent les classes de base, et suivant ces classes de base nous utilisons différents gadgets. Les gadgets que nous allons définir ne préservent pas la classe (certains introduisent des skew-partitions équilibrées). Ce n’est pas un problème dans cette section, mais il faudra y prendre garde dans la section suivante. Dans [37], un résultat de NP-complétude est prouvé, qui suggère que les 2- joints ne sont sans doute pas un outil utile pour calculer des stables maximum. En effet Trotignon et Vušković exhibent une classe de graphes C avec une théorème de décomposition du type : tout graphe de C est ou bien un line graphe, ou bien un graphe biparti ou bien admet un 2-joint. Cependant le calcul du stable maximum dans la classe C est NP=complet. Il semble donc que pour pouvoir utiliser les 2- joints, nous devons vraiment utiliser le fait que nos trigraphes sont de Berge. Ceci est fait en prouvant plusieurs inégalités. Si (X, Y ) est un 2-joint de T alors soit X1 = X, X2 = Y et soit (A1, B1, C1, A2, B2, C2) une affectation de (X1, X2). Nous définissons αAC = α(T|(A1 ∪ C1)), αBC = α(T|(B1 ∪ C1)), αC = α(T|C1) et αX = α(T|X1). Soit w la fonction de poids sur V (T), w(H) est la somme des poids sur les sommets de H. 625.2. STOCKER α DANS LES BLOCS Lemme 5.2. Soit S un stable fort de poids maximum de T. Alors exactement un des points suivants est vérifié : 1. S∩A1 6= ∅, S∩B1 = ∅, S∩X1 est un stable fort maximum de T|(A1∪C1) et w(S ∩ X1) = αAC ; 2. S∩A1 = ∅, S∩B1 6= ∅, S∩X1 est un stable fort maximum de T|(B1∪C1) et w(S ∩ X1) = αBC ; 3. S ∩ A1 = ∅, S ∩ B1 = ∅, S ∩ X1 est un stable fort maximum de T|C1 et w(S ∩ X1) = αC ; 4. S ∩ A1 6= ∅, S ∩ B1 6= ∅, S ∩ X1 est un stable fort maximum de T|X1 et w(S ∩ X1) = αX. Démonstration. Directe depuis la définition d’un 2-joint. Nous avons besoin de plusieurs inégalités à propos des intersections entre les stables forts et les 2-joints. Ces lemmes sont prouvés dans [37] pour les graphes. Les démonstrations sont similaires pour les trigraphes mais comme ce sont ces inégalités qui nous permettent d’utiliser le fait que les trigraphes sont de Berge nous les incluons ici. Lemme 5.3. 0 ≤ αC ≤ αAC, αBC ≤ αX ≤ αAC + αBC. Démonstration. Les inégalités 0 ≤ αC ≤ αAC, αBC ≤ αX sont trivialement vraies. Soit D un stable fort pondéré de poids maximum de T|X1. Nous avons : αX = w(D) = w(D ∩ A1) + w(D ∩ (C1 ∪ B1)) ≤ αAC + αBC. Lemme 5.4. Si (X1, X2) est un 2-joint impair de T, alors αC + αX ≤ αAC + αBC. Démonstration. Soit D un stable fort de T|X1 de poids αX et C un stable fort de T|C1 de poids αC. Dans le trigraphe biparti T|(C ∪ D), on note par YA (resp. YB) l’ensemble des sommets de C ∪ D pour lesquels il existe un chemin dans T|(C ∪ D) les reliant à des sommets de D ∩ A1 (resp. D ∩ B1). Remarquons que par définition, D ∩ A1 ⊆ YA, D ∩ B1 ⊆ YB et il n’y a pas d’arêtes entre YA ∪ YB et (C ∪ D) \ (YA ∪YB). Montrons que YA ∩YB = ∅, et YA est fortement complet à YB. 63CHAPITRE 5. CALCUL DU STABLE MAXIMUM Supposons le contraire, alors il existe un chemin P dans T|(C ∪ D) d’un sommet de D ∩ A1 à un sommet de D ∩ B1. On peut supposer que P est minimal vis à vis de cette propriété, et donc que l’intérieur de P est dans C1 ; Par conséquent, P est de longueur paire car T|(C ∪ D) est biparti. Ceci contredit l’hypothèse sur le fait que (X1, X2) était impair. Nous définissons alors : — ZA = (D ∩ YA) ∪ (C ∩ YB) ∪ (C \ (YA ∪ YB)); — ZB = (D ∩ YB) ∪ (C ∩ YA) ∪ (D \ (YA ∪ YB). Des définitions et des propriétés ci-dessus, ZA et ZB sont des stables forts et ZA ⊆ A1∪C1 et ZB ⊆ B1∪C1. Donc, αC +αX = w(ZA)+w(ZB) ≤ αAC +αBC. Lemme 5.5. Si (X1, X2) est un 2-joint pair de T, alors αAC +αBC ≤ αC +αX. Démonstration. Soit A un stable fort de T|(A1 ∪ C1) de poids αAC et B un stable fort de T|(B1 ∪ C1) de poids αBC. Dans le trigraphe biparti T|(A ∪ B), on note YA (resp. YB) l’ensemble des sommets de A ∪ B pour lesquels il existe un chemin P dans T|(A ∪ B) les reliant à un sommet de A ∩ A1 (resp. B ∩ B1). Remarquons que d’après les définitions, A ∩ A1 ⊆ YA, B ∩ B1 ⊆ YB, et YA ∪ YB est fortement anticomplet à (A ∪ B) \ (YA ∪ YB). Nous allons montrer que YA ∩ YB = ∅ et Y est fortement anticomplet à YB. Supposons que ce ne soit pas le cas, alors il existe un chemin P dans T|(A ∪ B) d’un sommet de A ∩ A1 à un sommet de B ∩ B1. On peut supposer que P est minimal vis à vis de cette propriété, et donc que son intérieur est dans C1 ; par conséquent, il est de longueur impaire car T|(A ∪ B) est biparti. Ceci contredit l’hypothèse sur le fait que (X1, X2) était pair. Nous définissons alors : — ZD = (A ∩ YA) ∪ (B ∩ YB) ∪ (A \ (YA ∪ YB)); — ZC = (A ∩ YB) ∪ (B ∩ YA) ∪ (B \ (YA ∪ YB)). À partir des définitions et des propriétés ci-dessus, ZD et ZC sont des stables forts et ZD ⊆ X1 et ZC ⊆ C1. Donc, αAC +αBC = w(ZC)+w(ZD) ≤ αC +αX. Nous pouvons maintenant construire nos gadgets. Si (X, Y ) est un complément de 2-joint propre de T, alors soit X1 = X, X2 = Y et (A1, B1, C1, A2, B2, C2) une affectation de(X1, X2). Nous construisons le gadget TY,1 comme suit. Nous partons de T|Y et nous ajoutons deux nouveaux sommets marqués a, b, tels que a est fortement complet à B2 ∪ C2, b est fortement complet à A2 ∪ C2 et ab est une arête forte. Nous donnons les poids αA = α(T|A1) et αB = α(T|B1) respectivement aux sommets a et b. Nous notons αX = α(T|X). 645.2. STOCKER α DANS LES BLOCS Lemme 5.6. Si (X, Y ) est un complément de 2-joint propre de T, alors TY,1 est de Berge et α(T) = max(α(TY,1), αX). Démonstration. Puisque TY,1 est une semiréalisation d’un sous-trigraphe induit du bloc TY , comme défini dans le chapitre 2, il est clairement de Berge d’après 2.11. Soit Z un stable fort pondéré de poids maximum dans T. Si Z ∩ X1 = ∅, alors Z est aussi un stable fort dans TY,1, donc α(T) ≤ α(TY,1) ≤ max(α(TY,1), αX). Si Z ∩ A1 6= ∅ et Z ∩ (B1 ∪ C1) = ∅, alors {a1} ∪ (Z ∩ X2) est un stable fort dans TY,1 de poids α(T), donc α(T) ≤ α(TY,1) ≤ max(α(TY,1), αX). Si Z ∩ B1 6= ∅ et Z ∩(A1 ∪ C1) = ∅, alors {b1} ∪(Z ∩ X2) est un stable fort dans TY,1 de poids α(T), donc α(T) ≤ α(TY,1) ≤ max(α(TY,1), αX). Si Z∩(A1∪C1) 6= ∅ et Z∩(B1∪C1) 6= ∅, alors α(T) = αX, donc α(T) ≤ max(α(TY,1), αX). Dans tous les cas nous avons prouvé que α(T) ≤ max(α(TY,1), αX). Réciproquement, soit α = max(α(TY,1), αX). Si α = αX, alors en considérant n’importe quel stable fort de T|X1, nous voyons que α = αX ≤ α(T). Nous pouvons donc supposer que α = α(TY,1) et soit Z un stable fort pondéré de poids maximum dans TY,1. Si a /∈ Z et b /∈ Z, alors Z est aussi un stable fort dans T, donc α ≤ α(T). Si a ∈ Z et b /∈ Z, alors Z 0 ∪ Z \ {a}, où Z 0 est un stable fort pondéré de poids maximum dans T|A1, est aussi un stable fort dans T de même poids que Z, donc α ≤ α(T). Si a /∈ Z et b ∈ Z, alors Z 0 ∪Z \ {b} quand Z 0 est un stable de poids maximum dans T|B1 est aussi un stable fort dans T de même poids que Z, donc α ≤ α(T). Dans tous les cas, nous avons prouvé que α ≤ α(T). Si (X1, X2) est un 2-joint propre impair de T, alors nous construisons le gadget TY,2 comme suit. Nous commençons avec T|Y . Nous ajoutons ensuite quatre nouveaux sommets marqués a, a 0 , b, b 0 , tels que a et a 0 soient fortement complets à A2, b et b 0 soient fortement complets à B2, et ab est une arête forte. Nous donnons les poids αAC + αBC − αC − αX, αX − αBC, αAC + αBC − αC − αX et αX − αAC à respectivement a, a 0 , b et b 0 . Remarquons que d’après 5.3 et 5.4, tous les poids sont positifs. Nous définissons un autre gadget de décomposition TY,3 pour la même situation, de la manière suivante. Nous commençons avec T|Y . Nous ajoutons ensuite trois nouveaux sommets marqués a, a 0 , b, tels que a et a 0 sont fortement complets à A2, b est fortement complets à B2, et a 0a et ab sont des arêtes fortes. Nous donnons les poids αAC − αC, αX − αBC et αBC − αC à respectivement a, a 0 et b. Remarquons que d’après 5.3, tous les poids sont positifs. 65CHAPITRE 5. CALCUL DU STABLE MAXIMUM Lemme 5.7. Si (X, Y ) est un 2-joint propre de T, alors TY,2 et TY,3 sont de Berge, et α(T) = α(TY,2) + αC = α(TY,3) + αC. Démonstration. Supposons que TY,2 contienne un trou impair H. Puisqu’un trou impair n’a pas de sommet fortement dominant, il contient au plus un sommet parmi a, a0 et au plus un sommet parmi b, b0 . Donc H est un trou impair d’une semiréalisation du bloc TY (comme défini dans le chapitre 2). Ceci contredit 2.11. De la même manière, TY,2 ne contient pas d’antitrou impair, et est donc de Berge. La démonstration que TY,3 est de Berge est similaire. Soit Z un stable fort dans T de poids α(T). Nous construisons un stable fort dans TY,2 en ajoutant à Z ∩ X2 un des ensembles suivants (en fonction de la conclusion du lemme 5.2) : {a, a0}, {b, b0}, ∅, ou {a, a0 , b0}. Dans chaque cas, nous obtenons un stable fort de TY,2 de poids α(T) − αC. Ce qui prouve que α(T) ≤ α(TY,2) + αC. Réciproquement, soit Z un stable dans TY,2 de poids α(TY,2). On peut supposer que Z ∩ {a, a0 , b, b0} est un des ensembles {a, a0}, {b, b0}, ∅, ou {a, a0 , b0}, et suivant chacun de ces cas, on construit un stable fort de T en ajoutant à Z ∩ X2 un stable fort pondéré de poids maximum d’un des trigraphes suivants : T|(A1∪C1), T|(B1∪ C1), T|C1, ou T|X1. Nous obtenons un stable fort dans T de poids α(TY,2) + αC, prouvant que α(TY,2) + αC ≤ α(T). Ceci complète la démonstration pour TY,2. Prouvons maintenant l’égalité pour TY,3. Soit Z un stable fort dans T de poids α(T). Nous construisons un stable fort dans TY,3 en ajoutant à Z ∩ X2 un des ensembles suivants (en fonction de la conclusion du lemme 5.2) : {a}, {b}, ∅, or {a 0 , b}. Dans chaque cas, nous obtenons un stable fort de TY,3 de poids α(T) − αC. Ceci prouve que α(T) ≤ α(TY,3) + αC. Réciproquement, soit Z un stable de TY,3 de poids α(TY,3). D’après 5.4, αAC − αC ≥ αX − αBC, on peut donc supposer que Z ∩ {a, a0 , b} est un des ensembles {a}, {b}, ∅, ou {a 0 , b}, et suivant chacun, nous construisons un stable fort de T en ajoutant à Z ∩ X2 un stable fort pondéré de poids maximum d’un des trigraphes suivants : T|(A1 ∪ C1), T|(B1 ∪ C1), T|C1, ou T|X1. Nous obtenons alors un stable fort dans T de poids α(TY,3) + αC, ce qui prouve que α(TY,3) + αC ≤ α(T). Ceci termine la démonstration pour TY,3. Si (X1, X2) est un 2-joint propre pair de T et X = X1, Y = X2, alors soit (A1, B1, C1, A2, B2, C2) une affectation de (X1, X2). Nous construisons le gadget TY,4 comme suit. Nous partons que T|Y . Nous ajoutons ensuite trois nouveaux sommets marqués a, b, c, tels que a est fortement complet à A2, b est fortement 665.3. CALCULER α complet à B2, et c est fortement adjacent aux sommets a et b et n’a aucun autre voisin. Nous donnons les poids αX − αBC, αX − αAC, et αX + αC − αAC − αBC à respectivement a, b et c. Remarquons que d’après 5.3 et 5.5, ces poids sont positifs. Lemme 5.8. Si (X, Y ) est un 2-joint propre pair de T, alors TY,4 est de Berge et α(T) = α(TY,4) + αAC + αBC − αX. Démonstration. Clairement, TY,4 est de Berge, car c’est la semiréalisation du bloc TY comme défini dans le chapitre 2, qui est de Berge d’après 2.11. Soit Z un stable fort dans T de poids α(T). Nous construisons un stable fort dans TY,4 en ajoutant à Z ∩ X2 un des ensembles suivant (suivant la conclusion de 5.2) : {a}, {b}, {c}, ou {a, b}. Dans chaque cas, nous obtenons un stable fort de TY,4 de poids α(T) − (αAC + αBC − αX). ce qui prouve que α(T) ≤ α(TY,4) + αAC + αBC − αX. Réciproquement, soit Z un stable fort dans TY,4 de poids α(TY,4). On peut supposer que Z ∩ {a, b, c} est un des ensembles {a}, {b}, {c}, ou {a, b}, et suivant ces cas, nous construisons un stable fort de T en ajoutant à Z ∩ X2 un stable fort pondéré de poids maximum d’un des trigraphes suivant : T|(A1∪C1), T|(B1∪C1), T|C1, ou T|X1. Nous obtenons un stable fort de T de poids α(TY,4) +αAC +αBC − αX, ce qui prouve que α(TY,4) + αAC + αBC − αX ≤ α(T). 5.3 Calculer α Nous sommes maintenant prêt à décrire notre algorithme de calcul d’un stable fort pondéré de poids maximal. La difficulté principale est que les blocs de décomposition définis dans le chapitre 2 doivent être utilisés pour rester dans la classe, alors que les gadgets définis dans la section 5.2 doivent être utilisés pour calculer α. Notre idée est de commencer par utiliser les blocs de décomposition dans un premier temps, puis de les remplacer par les gadgets lors d’une deuxième étape. Pour transformer un bloc en un gadget (ce que nous appelons réaliser une expansion), nous devons effacer une composante optionnelle, et la remplacer par un groupe de sommets de poids bien choisi. Pour cela nous avons besoin de deux informations ; la première est le type de décomposition utilisé originellement pour créer cette composante optionnelle, ainsi que les poids associés ; ces informations sont encodées dans ce que nous appelons un pré-label. La seconde information nécessaire est le type de la classe basique dans laquelle cette composante optionnelle va finir (car tous les gadgets ne préservent pas toutes les classes basiques) ; cette information 67CHAPITRE 5. CALCUL DU STABLE MAXIMUM est encodée dans ce que nous appelons un label. Remarquons que le pré-label est connu juste après la décomposition du trigraphe, alors que le label n’est connu qu’après, lorsque le trigraphe est complétement décomposé. Formalisons cela. Soit S une composante optionnelle d’un trigraphe bigame T. Un pré-label de S est défini par : — (“Complément de 2-joint impair”, αA, αB, αX) avec αA, αB et αX des entiers, si S est une arête optionnelle. — (“2-joint impair”, αAC, αBC, αC, αX) avec αAC, αBC, αC et αX des entiers, si S est une arête optionnelle et qu’aucun sommet de T n’est complet à S. — (“Complément de 2-joint pair”, αA, αB, αX) avec αA, αB et αX des entiers, si S est un composante lourde. — (“2-joint pair”, αAC, αBC, αC, αX) avec αAC, αBC, αC et αX des entiers, si S est une composante légère. Remarquons que certains types de composantes optionnelles sont “éligibles” à la fois au premier et au deuxième pré-label. Un pré-label doit être vu comme “la décomposition à partir de laquelle la composante optionnelle est construite”. Quand T est un trigraphe et S est un ensemble des composantes optionnelles de T, une fonction de pré-label pour (T, S) est une fonction qui associe à chaque S ∈ S un pré-label. Il est important de remarquer que S est seulement un ensemble de composantes optionnelles, donc certaines composantes optionnelles peuvent ne pas avoir de pré-label. Notons que la définition suivante des labels est un peu ambigüe. En effet, lorsqu’on parle de “la classe basique contenant le trigraphe” il est possible que certains trigraphes soient contenus dans plusieurs classes basiques. C’est typiquement le cas des petits trigraphes et des trigraphes complets par exemple. Il est important de voir que cela n’est pas un problème ; si un trigraphe appartient à plusieurs classes de base, notre algorithme choisi arbitrairement une de ces classes, et produit un résultat correct. Pour ne pas compliquer les notations c’est pas n’est pas complétement formalisé dans notre algorithme. Pour les trigraphes doublés, il y a une autre ambiguïté. Si T est un trigraphe doublé et (X, Y ) est une bonne partition de T, une arête optionnelle uv de T est une arête de couplage si u, v ∈ X et une antiarête de couplage si u, v ∈ Y . Dans certains cas dégénérés, une arête optionnelle d’un trigraphe doublé peut être à la fois une arête de couplage et une antiarête de couplage suivant la bonne partition choisie, cependant une fois la bonne partition choisie il n’y a plus d’ambiguïté. Là encore ce n’est pas un problème : lorsqu’une arête optionnelle est ambigüe, notre algorithme choisi arbitrairement une bonne partition. 685.3. CALCULER α Soit S une arête optionnelle d’un trigraphe bigame. Un label pour S est une paire L 0 = (L, N), tel que L est un pré-label et N est une des étiquettes suivantes : “biparti”, “complément de bipartite”, “line”, “complément de line”, “couplage doublé”, “anticouplage doublé”. On dit que L 0 étend L. l’étiquette ajoutée au pré-label d’une composante optionnelle S doit être pensée comme “la classe basique dans laquelle la composante S finit une fois que le trigraphe est complétement décomposé”. Quand T est un trigraphe et S est un ensemble de composantes optionnelles de T, une fonction de label pour (T, S) est une fonction qui associe à chaque S ∈ S un label. Dans ces conditions, on dit que T est étiqueté. Comme pour les pré-labels, les composantes optionnelles qui ne sont pas dans S ne reçoivent pas de label. Soit T un trigraphe étiqueté, S un ensemble de composantes optionnelles de T et L une fonction de label pour (T, S). L’expansion de (T, S,L), est le trigraphe obtenu à partir de T après avoir effectué pour chaque S ∈ S de label L l’opération suivante : 1. Si L = ((“Complément de 2-joint impair”, αA, αB, αX), N) pour une étiquette N (donc S est une arête optionnelle ab) : transformer ab en arête forte, donner le poids αA au sommet a et le poids αB au sommet b. 2. Si L = ((“2-joint impair”, αAC, αBC, αC, αX), N) pour une étiquette N (donc S est une arête optionnelle ab) : transformer ab en arête forte et : — Si N est une des étiquettes suivantes : “biparti”, “complément de line”, ou “couplage doublé”, alors ajouter un sommet a 0 , un sommet b 0 , rendre a 0 fortement complet à N(a) \ {b}, rendre b fortement complet à N(b) \ {a}, et donner les poids αAC +αBC −αC −αX, αX −αBC, αAC +αBC −αC −αX et αX − αAC à respectivement a, a 0 , b et b 0 — Si N est une des étiquettes suivantes : “complément de biparti”, “line” ou “anticouplage doublé”, alors ajouter un sommet a 0 , rendre a 0 fortement complet à {a} ∪ N(a) \ {b} et donner les poids αAC − αC, αX − αBC et αBC − αC à respectivement a, a 0 et b 3. Si L = ((“Complément de 2-joint pair”, αA, αB, αX), N) pour une étiquette N (donc S est composée de deux arêtes optionnelles ac et cb et c est lourd) : supprimer le sommet c, et donner les poids αA au sommet a et αB au sommet b. 4. Si L = ((“2-joint pair”, αAC, αBC, αC, αX), N) pour une étiquette N (donc S est composée de deux arêtes optionnelles ac et cb, et c est léger) : transformer ac et cb en arête forte, donner les poids αX − αBC, αX − αAC, et αX + αC − αAC − αBC à respectivement a, b et c. 69CHAPITRE 5. CALCUL DU STABLE MAXIMUM L’expansion doit être vue comme “ce qui est obtenu si on utilise les gadgets comme défini dans la section 5.2 au lieu des blocs de décomposition comme défini dans le chapitre 2”. Théorème 5.9. Supposons que T est un trigraphe qui est dans une classe basique d’étiquette N, S est l’ensemble des composantes optionnelles de T et L est une fonction de label pour T, tels que pour tout S ∈ S de label L, un des points suivants est vérifié : — L = (. . . , N) avec N une des étiquettes suivantes : “biparti”, “complé- ment de biparti”, “line” ou “complément de line” ; ou — N = “doublé”, S est une arête de couplage de T et L = (. . . , “couplage doublé”); ou — N = “doublé”, S est une antiarête de couplage de T et L = (. . . , “anticouplage doublé”). Alors l’expansion de (T, S,L) est un trigraphe basique. Démonstration. À partir de nos hypothèses, T est basique. Donc il suffit de dé- montrer que l’expansion d’une composante optionnelle S préserve le fait d’être basique, et le résultat suivra par induction sur S. Soit T 0 l’expansion. Dans plusieurs cas (c’est à dire dans les cas 1, 3 et 4) l’expansion consiste simplement à transformer des arêtes optionnelles en arêtes fortes et potentiellement supprimer des sommets. D’après 2.3, ces opérations préservent le fait d’être basique. Nous avons donc simplement à étudier le cas 2 de la définition des expansions. Nous pouvons donc supposer que S est une arête optionnelle ab. Il est facile de voir que l’expansion comme définie dans le cas 2 préserve les trigraphes bipartis et les compléments de trigraphes bipartis ; donc si N ∈ {“biparti”, “complément de biparti”} le résultat est prouvé. Supposons que N =“line”, et donc T est un line trigraphe. Soit G la réalisation complète de T, et R le graphe biparti, tel que G = L(R). Donc a est une arête xaya dans R, et b est un arête yaxb. Puisque T est un line trigraphe, toute clique de taille au moins 3 dans T est une clique forte, et donc a et b n’ont pas de voisin commun dans T. Donc tous les voisins de a, à l’exception de b, sont des arêtes incidentes à xa et pas à ya. Soit R0 le graphe obtenu à partir de R en ajoutant une arête pendante e à xa. Remarquons que L(R0 ) est isomorphe à la réalisation complète de T 0 (l’arête e correspond au nouveau sommet a 0 ), et donc T 0 est un line trigraphe. Supposons maintenant que N =“complément de line”, donc T est le complé- ment d’un line trigraphe. Puisque toute clique de taille au moins 3 dans T est une 705.3. CALCULER α clique forte, V (T) = N(a) ∪ N(b). Supposons qu’il existe u, v ∈ N(a) \ N(b), tels que u est adjacent à v. Puisque T est un line trigraphe, et que uv est une semiarête, alors {u, v, b} est une clique de taille 3 dans T. Soit R le graphe biparti, tel que la réalisation complète de T soit L(R). Alors dans R aucune arête de u, v, a ne partage d’extrémité, cependant b partage une extrémité avec ces trois arêtes, c’est une contradiction. Ceci prouve que N(a) \ N(b) (et par symétrie que N(b) \ N(a)) est un stable fort dans T. Comme N(a) ∩ N(b) = ∅, alors T est biparti, et donc comme précédemment, T 0 est basique. On peut donc supposer que T est un trigraphe doublé avec (X, Y ) une bonne partition. Si S = ab est une arête de couplage de T, alors ajouter les sommets a 0 , b0 à X produit une bonne partition de T 0 . Si S = ab est une antiarête de couplage de T, alors ajouter le sommet a 0 à Y produit une bonne partition de T 0 . Dans tous les cas T 0 est basique et le résultat est prouvé. Soit T un trigraphe, S un ensemble de composantes optionnelles de T, L une fonction de label de (T, S) et T 0 l’expansion de (T, S,L). Soit X ⊆ V (T). On définit l’expansion de X ⊆ V (T) en X0 comme suit. On part avec X0 = X et on effectue les opérations suivantes pour tout S ∈ S. 1. Si L = ((“Complément de 2-joint impair”, αA, αB, αX), N) pour une étiquette N (donc S est une arête optionnelle ab), ne pas modifier X0 . 2. Si L = ((“2-joint impair”, αAC, αBC, αC, αX), N) pour une étiquette N(donc S est une arête optionnelle ab) : — Si N est une des étiquettes suivantes : “biparti”, “complément de line”, ou “couplage doublé”, faire : si a ∈ X alors ajouter a 0 à X0 , et si b ∈ X alors ajouter b 0 à X0 . — Si N est une des étiquettes suivantes : “complément de biparti”, “line” ou “anticouplage doublé”, faire : si a ∈ X alors ajouter a 0 à X0 . 3. Si L = ((“Complément de 2-joint pair”, αA, αB, αX), N) pour une étiquette N (donc S est composée de deux arêtes optionnelles ac et cb et c est lourd), faire : si c ∈ X, alors supprimer c de X0 . 4. Si L = ((“2-joint pair”, αAC, αBC, αC, αX), N) pour une étiquette N (donc S est composée de deux arêtes optionnelles ac et cb et c est léger) ne pas modifier X0 . 71CHAPITRE 5. CALCUL DU STABLE MAXIMUM Théorème 5.10. Avec les notations ci-dessus, si (X1, X2) est un 2- joint propre (resp. le complément d’un 2-joint propre) de T avec (A1, B1, C1, A2, B2, C2) une affectation de (X1, X2), alors (X0 1 , X0 2 ) est un 725.3. CALCULER α 2-joint propre (resp. le complément d’un 2-joint propre) de T 0 avec (A0 1 , B0 1 , C0 1 , A0 2 , B0 2 , C0 2 ) une affectation de (X0 1 , X0 2 ), de même parité que (X1, X2). (Remarquons que la notion de parité fait sens pour T 0 , puisque T 0 est de Berge d’après 5.6, 5.7 et 5.8). Démonstration. Directe à partir des définitions. Théorème 5.11. Il existe un algorithme avec les spécifications suivantes : Entrée : Un triplet (T, S,L), tels que T est un trigraphe de Berge apprivoisé, S est un ensemble de composantes optionnelles de T et L est une fonction de pré-label pour (T, S). Sortie : Une fonction de label L 0 pour (T, S) qui étend L, et un stable fort pondéré de poids maximum de l’expansion de (T, S,L 0 ). Complexité en temps : O(n 5 ) Démonstration. Nous décrivons un algorithme récursif. La première étape de l’algorithme utilise 5.1 pour vérifier que T est basique. Remarquons que si T est un trigraphe doublé, l’algorithme de 5.1 calcule également quelles arêtes optionnelles sont des arêtes de couplage, et quelles arêtes optionnelles sont des antiarêtes de couplage. Commençons par supposer que T est dans une classe basique de nom N (c’est en particulier le cas lorsque |V (T)| = 1). Nous étendons la fonction de pré-label L en une fonction de label L 0 comme suit : si N 6=“doublé”, alors on ajoute N à tous les pré-labels et sinon, pour tout S ∈ S de label L, on ajoute “couplage doublé” (resp. “anticouplage doublé”) à L si S est une arête de couplage (resp. antiarête de couplage). La fonction de label obtenue vérifie les hypothèses de 5.9, donc l’expansion T 0 de (T, S,L 0 ) est basique, et en exécutant l’algorithme de 5.1 sur T 0 , nous obtenons un stable fort pondéré de poids maximum de T 0 en temps O(n 4 ). Donc, nous pouvons bien calculer une fonction de label L 0 pour T, S qui étend L, et un stable fort pondéré de poids maximum de l’expansion de (T, S,L 0 ). Supposons maintenant que T n’est pas basique. Puisque T est un trigraphe de Berge apprivoisé, d’après 2.10, nous savons que T se décompose par un 2-joint ou le complément d’un 2-joint. Dans [7], un algorithme fonctionnant en temps O(n 4 ) est donné pour calculer un 2-joint dans un graphe quelconque. En fait les 2-joints comme décrit dans [7] ne sont pas exactement ceux que nous utilisons : Le dernier point de notre définition n’a pas besoin d’être vérifié (celui qui assure 73CHAPITRE 5. CALCUL DU STABLE MAXIMUM qu’aucun côté du 2-joint n’est réduit à un chemin de longueur exactement 2). Cependant la méthode du Théorème 4.1 de [7] montre comment ajouter ce type de contraintes sans perte de temps. Il est facile d’adapter cette méthode pour la dé- tection de 2-joint dans un trigraphe (nous présentons d’ailleurs dans le chapitre 6 un algorithme similaire). Nous pouvons donc calculer la décomposition nécessaire en temps O(n 4 ). Nous calculons alors les blocs TX et TY comme défini dans le chapitre 2. Remarquons que tout membre de S est une arête optionnelle de seulement un des blocs TX ou TY . Nous appelons SX (resp. SY ) l’ensemble des éléments de S qui sont dans TX (resp. TY ). Soit S la composante optionnelle marquée utilisée pour créer le bloc TY . Observons que pour tout u ∈ S, il existe un sommet v ∈ X tel que NT (v)∩Y = NTY (u)∩Y . De même pour TX. Donc, la fonction de pré-label L pour (T, S) induit naturellement une fonction de pré-label LX pour (TX, SX) et une fonction de pré-label LY pour (TY , SY ) (chaque S ∈ SX reçoit le même pré-label que celui dans L, et de même pour SY . Dans la suite, la décomposition réfère à la décomposition qui a été utilisée pour construire TX et TY , (c’est une des étiquettes “complément de 2-joint pair”, “complément de 2-joint impair”, “2- joint pair” ou “2-joint impair”) et nous utilisons nos notations habituelles pour l’affectation de cette décomposition. Sans perte de généralité, on peut supposer que |V (TX)| ≤ |V (TY )|. D’après 2.11, TX, TY sont des trigraphes de Berge bigames, et d’après 2.12, ils sont apprivoisés. Soit S la composante optionnelle marquée qui est utilisée pour créer le bloc TY . On définit S 0 Y = SY ∪ {S}. On peut maintenant construire une fonction de pré-label LY pour S 0 Y comme suit. Toutes les composantes optionnelles dans SY conservent le pré-label qu’elles ont dans S. La composante marquée S reçoit le pré-label suivant : — Si la décomposition est un complément de 2-joint impair, alors calculer récursivement αA = α(TX|A1), αB = α(TX|B1) et αX = α(TX|X), et définir le pré-label de S comme (“Complément de 2-joint impair”, αA, αB, αX). Remarquons que dans ce cas |S| = 2. — Si la décomposition est un 2-joint impair, alors calculer récursivement αAC = α(TX|(A1 ∪ C1)), αBC = α(TX|(B1 ∪ C1)), αC = α(TX|C1) et αX = α(TX|X) et définir le pré-label de S comme (“2-joint impair”, αAC, αBC, αC, αX). Remarquons que dans ce cas |S| = 2 et aucun sommet de T 0 Y \ S n’est fortement complet à S. — Si la décomposition est un complément de 2-joint pair, alors calculer récursivement αA = α(TX|A1), αB = α(TX|B1) et αX = α(TX|X), et définir le 745.3. CALCULER α pré-label de S comme (“Complément de 2-joint pair”, αA, αB, αX). Remarquons que dans ce cas, |S| = 3 et S est léger. — Si la décomposition est un 2-joint pair, alors calculer récursivement αAC = α(TX|(A1 ∪ C1)), αBC = α(TX|(B1∪C1)), αC = α(TX|C1) et αX = α(TX|X) et définir le pré-label de S comme (“2-joint pair”, αAC, αBC, αC, αX). Remarquons que dans ce cas, |S| = 3 et S est lourd. Maintenant TY , S 0 Y a une fonction de pré-label LY . Nous exécutons récursivement notre algorithme pour (TY , S 0 Y ,LY ). Nous obtenons une extension L 0 Y de LY et un stable fort pondéré de poids maximum de l’expansion T 0 Y de (TY , S 0 Y ,L 0 Y ). Nous utilisons L 0 Y pour terminer la construction de L 0 , en utilisant pour tout S ∈ SY la même extension que nous avions dans L 0 Y pour étendre LY . Nous avons donc maintenant, une extension L 0 de L. Soit T 0 l’extension de (T, S,L 0 ). Remarquons maintenant que d’après 5.10, T 0 Y est exactement le gadget pour T 0 , comme défini dans la section 5.2. Donc, α(T 0 ) peut être calculé à partir de α(T 0 Y ), comme expliqué dans 5.6, 5.7, ou 5.8. Donc, l’algorithme fonctionne correctement lorsqu’il renvoie L 0 et le stable fort pondéré de poids maximum que nous venons de calculer. Analyse de complexité : Avec notre manière de construire nos blocs de dé- composition, nous avons |V (TX)| − 3 + |V (TY )| − 3 ≤ n et d’après 2.9(viii) nous avons 6 ≤ |V (TX)|, |V (TY )| ≤ n − 1. Rappelons que nous avons supposé que |V (TX)| ≤ |V (TY )|. Soit T(n) la complexité de notre algorithme. Pour chaque type de décomposition, nous effectuons au plus quatre appels récursifs sur le petit bloc, c’est à dire TX, et un appel récursif sur le grand bloc TY . Nous avons donc T(n) ≤ dn4 lorsque le trigraphe est basique et sinon T(n) ≤ 4T(|V (TX)|) + T(|V (TY )|) + dn4 , avec d la constante venant de la complexité de trouver un 2-joint ou un complément de 2-joint et de trouver α dans les trigraphes basiques. Nous pouvons maintenant démontrer qu’il existe une constante c, telle que T(n) ≤ c.n5 . Notre démonstration est par induction sur n. Nous montrons qu’il existe une constante N, telle que l’étape d’induction passe pour tout n ≥ N (cet argument et en particulier N ne dépend pas de c). Le cas de base de notre induction est alors sur les trigraphes basiques ou sur les trigraphes qui ont au plus N sommets. Pour ces trigraphes, il est clair que la constante c existe. Nous faisons la démonstration de l’induction uniquement dans le cas du 2- joint pair (potentiellement dans le complément). La démonstration pour le 2-joint impair est similaire. Nous définissons n1 = |V (TX)|. Nous avons T(n) ≤ 4T(n1) + 75CHAPITRE 5. CALCUL DU STABLE MAXIMUM T(n + 6 − n1) + dn4 pour tout n1 et n vérifiant b n 2 c + 3 ≥ n1 ≥ 7. Définissons f(n1) = n 5−4n 5 1−(n+6−n1) 5−dn4 . Nous montrons qu’il existe une constante N, telle que pour tout n ≥ N et pour tout n1 tel que 7 ≤ n1 ≤ bn 2 c + 3, f(n1) ≥ 0. Par hypothèse d’induction, ceci prouve notre résultat. Un simple calcul montre que : f 0 (n1) = −20n 4 1 + 5(n + 6 − n1) 4 f 00(n1) = −80n 3 1 − 20(n + 6 − n1) 3 Puisque n + 6 − n1 est positif, nous avons f 00 ≤ 0. Donc, f 0 est décroissante, et il est facile de voir que si n est suffisamment large, f 0 (n1) est positif pour n1 = 7 et négatif pour n1 = b n 2 c + 3. Maintenant f est minimum pour n1 = 7 ou n1 = b n 2 c + 3. Puisque f(7) = n 5 − (n − 1)5 − P(n) avec P un polynôme, tel que deg(P) ≤ 4, si n est suffisamment large, alors f(7) est positif. De même f(b n 2 c + 3) ≤ n 5 − 5(d n 2 e + 3)5 . Là encore, si n est suffisamment large, f(b n 2 c + 3) est positif. Donc, il existe une constante N, telle que pour tout n ≥ N, f(n1) ≥ 0. Cela montre que notre algorithme s’exécute en temps O(n 5 ). Théorème 5.12. On peut calculer un stable fort pondéré de poids maximum d’un trigraphe T de Berge apprivoisé en temps O(n 5 ). Démonstration. Exécuter l’algorithme de 5.11 pour (T, ∅, ∅). Théorème 5.13. On peut calculer un stable pondéré de poids maximum d’un graphe G de Berge apprivoisé en temps O(n 5 ). Démonstration. D’après 5.12 et le fait que les graphes de Berge peuvent être vu comme des trigraphes de Berge. Contrairement aux deux chapitres précédents, les résultats de ce chapitre ne peuvent s’étendre aux classes closes par k-joint. La raison principale est que les lemmes 5.3 et 5.4 qui sont nécessaires pour assurer que les poids dans les blocs sont tous positifs ou nuls ne sont vrais que dans le cas des graphes de Berge. Plus précisément nous avons besoin que tous les chemins entre les deux ensembles frontières du 2-joint (avec nos notations : Ai et Bi) soient de mêmes parités (ce qui est prouvé par le lemme 2.4 pour les graphes de Berge). 765.3. CALCULER α On peut voir notre preuve comme étant en deux temps. Nous commençons par construire l’arbre de décomposition. Lors de cette étape, nous devons n’utiliser que les blocs qui préservent la classe pour pouvoir continuer à décomposer. Puis une fois le trigraphe complètement décomposé nous modifions les blocs afin de pouvoir faire remonter l’information des blocs basiques au trigraphe complet. Un point important lors de la reconstruction est de bien choisir sur quel bloc poser le plus de questions, en effet si l’on ne fait pas attention l’algorithme devient exponentiel. Dans les algorithmes présentés nous nous sommes focalisé sur le calcul de la valeur du stable maximum. Il est facile et classique de convertir un tel algorithme en un algorithme qui explicite un stable maximum pour un surcout linéaire. Cependant comme il est possible pour les classes de base d’expliciter à chaque fois un stable maximum, il est possible en utilisant de bonnes structures de données de suivre les sommets du stable maximum à chaque étape de l’induction et ainsi d’expliciter un stable maximum sans surcout. Enfin il faut noter qu’en utilisant le théorème 1.1 nous obtenons un algorithme de coloration en temps O(n 7 ). 77CHAPITRE 5. CALCUL DU STABLE MAXIMUM 78Chapitre 6 Décompositions extrêmes Les résultats de ce chapitre ont été obtenus avec Maria Chudnovsky, Nicolas Trotignon et Kristina Vušković, ils font l’objet d’un article [15] soumis à Journal of Combinatorial Theory, Series B. 6.1 Décompositions extrêmes Dans cette section nous allons démontrer que les trigraphes de Berge apprivoisés qui ne sont pas basiques, admettent des décompositions extrêmes. C’est à dire des décompositions telles qu’un des blocs de décomposition est basique. Ce résultat n’est pas trivial, puisque qu’il existe dans [37] un exemple montrant que les graphes de Berge généraux n’admettent pas toujours de 2-joint extrême. Les décompositions extrêmes sont parfois très utiles pour faire des preuves par induction. En fait nous ne sommes pas capable de démontrer que tous les trigraphes de Berge apprivoisés admettent un 2-joint ou un complément de 2-joint extrême. Pour démontrer l’existence de décompositions extrêmes nous devons inclure un nouveau type de décomposition, la paire homogène à notre ensemble de décomposition. Il est intéressant de remarquer que cette nouvelle décomposition est déjà utilisée dans de nombreuses variantes du théorème 2.5. Il est intéressant de voir que nous avons besoin d’étendre notre ensemble de décompositions afin d’obtenir un théorème de structure extrême. Il est donc possible que les star-cutsets ou plus généralement les skew-partitions ne soient pas des décompositions assez générales mais qu’en 79CHAPITRE 6. DÉCOMPOSITIONS EXTRÊMES Figure 6.1 – Un exemple de graphe d’admettant pas de 2-joint extrême les étendant il soit possible d’obtenir un théorème de décomposition extrême. Par exemple dans [1], nous avons pu avec Aboulker, Radovanović Trotignon et Vuš- ković, en étendant la définition du star-cutset avoir une décomposition extrême d’une classe de graphes particulière. Grâce à cette décomposition extrême nous avons alors pu démontrer notre hypothèse d’induction. Une paire homogène propre d’un trigraphe T est une paire de sous-ensembles disjoints (A, B) de V (T), telle que si A1, A2 sont respectivement les ensembles de tous les sommets fortement complets à A et fortement anticomplets à A et que B1, B2 sont définis de manière similaire, alors : — |A| > 1 et |B| > 1 ; — A1 ∪ A2 = B1 ∪ B2 = V (T) \ (A ∪ B) (et en particulier tout sommet de A a un voisin et un antivoisin dans B et vice versa) ; et — les quatre ensembles A1∩B1, A1∩B2, A2∩B1, A2∩B2 sont tous non-vides. Dans ces circonstances, on dit que (A, B, A1 ∩ B2, A2 ∩ B1, A1 ∩ B1, A2 ∩ B2) est une affectation de la paire homogène. Une manière de démontrer l’existence d’une décomposition extrême est de considérer un “côté” de la décomposition et de le minimiser, pour obtenir ce que nous appelons une fin. Cependant pour les paires homogènes, les deux côtés (qui sont A ∪ B et V (T) \ (A ∪ B) avec nos notations habituelles) ne sont pas symé- triques comme le sont les deux côtés d’un 2-joint. Nous devons donc décider quel côté minimiser. Nous choisissons de minimiser le côté A ∪ B. Formellement nous devons faire la distinction entre un fragment, qui est n’importe quel côté d’une décomposition et un fragment propre qui est le côté qui va être minimisé et qui ne peut donc pas être le côté V (T) \ (A ∪ B) d’une paire homogène. Toutes les définitions sont données formellement ci-dessous. 806.1. DÉCOMPOSITIONS EXTRÊMES A B Figure 6.2 – Paire Homogène Nous commençons par modifier la définition des fragments pour inclure les paires homogènes. À partir de maintenant, un ensemble X ⊆ V (T) est un fragment d’un trigraphe T si une des propriétés suivantes est vérifiée : 1. (X, V (T) \ X) est un 2-joint propre de T ; 2. (X, V (T) \ X) est un complément de 2-joint propre de T ; 3. il existe une paire homogène propre (A, B) de T telle que X = A ∪ B ou X = V (T) \ (A ∪ B). Un ensemble X ⊆ V (T) est un fragment propre d’un trigraphe T si une des propriétés suivantes est vérifiée : 1. (X, V (T) \ X) est un 2-joint propre de T ; 2. (X, V (T) \ X) est un complément de 2-joint propre de T ; 3. il existe une paire homogène propre (A, B) de T telle que X = A ∪ B. Une fin de T est un fragment propre X de T tel qu’aucun sous-trigraphe induit propre de X est un fragment propre de T. Remarquons qu’un fragment propre de T est un fragment propre de T, et une fin de T est une fin de T. De plus un fragment dans T est encore un fragment dans T. Nous avons déjà défini les blocs de décomposition d’un 2-joint et d’un complément de 2-joint. Nous définissons maintenant les blocs de décomposition d’une paire homogène. Si X = A ∪ B avec (A, B, C, D, E, F) une affectation d’une paire homogène propre (A, B) de T, alors nous construisons le bloc de décomposition TX en rapport avec X de la manière suivante. Nous partons de T|(A ∪ B). Nous ajoutons ensuite 81CHAPITRE 6. DÉCOMPOSITIONS EXTRÊMES deux nouveaux sommets marqués c et d tels que c est fortement complet à A, d est fortement complet à B, cd est une arête optionnelle et il n’y a aucune autre arête entre {c, d} et A ∪ B. Ici encore, {c, d} est appelé la composante marquée de TX. Si X = C ∪ D ∪ E ∪ F avec (A, B, C, D, E, F) une affectation d’une paire homogène propre (A, B) de T, alors nous construisons le bloc de décomposition TX en rapport avec X de la manière suivante. Nous partons de T|X. Nous ajoutons alors deux nouveaux sommets marqués a et b tels que a est fortement complet à C ∪ E, b est fortement complet à D ∪ E, ab est une arête optionnelle et il n’y a aucune autre arête entre {a, b} et C ∪ D ∪ E ∪ F. Ici encore, {a, b} est appelé la composante marquée de TX. Théorème 6.1. Si X est un fragment d’un trigraphe T de Berge bigame, alors TX est un trigraphe de Berge bigame. Démonstration. D’après la définition de TX, il est clair que tous ses sommets sont dans au plus une arête optionnelle ou sont lourds ou sont légers. Il ne nous reste donc plus qu’à démontrer que TX est de Berge. Si le fragment vient d’un 2-joint ou d’un complément de 2-joint, alors nous avons le résultat d’après le lemme 2.11. Si X = A ∪ B et (A, B) est une paire homogène propre de T, alors soit H un trou ou un antitrou de TX. En passant si besoin au complémentaire, on peut supposer que H est un trou. S’il contient les deux sommets marqués c, d, alors c’est un trou sur quatre sommets ou il doit contenir deux voisins forts de d dans B, donc H a longueur 6. Par conséquent, on peut supposer que H contient au plus un sommet parmi c, d et donc un trou de longueur strictement identique peut être obtenu dans T en remplaçant c ou d par un sommet de C ou de D. Par conséquent, H a longueur paire. S’il existe une paire homogène propre (A, B) de T telle que X = V (T)\(A∪B), alors puisque pour tout sommet de A a un voisin et un antivoisin dans B, nous pouvons remarquer que toute réalisation de TX est un sous-trigraphe induit d’une réalisation de T. Il suit que TX reste de Berge. Théorème 6.2. Si X est un fragment d’un trigraphe T de Berge apprivoisé, alors le bloc de décomposition TX n’a pas de skew-partition équilibrée. Démonstration. Pour démontrer ce résultat, supposons que TX ait une skewpartition équilibrée (A0 , B0 ) avec une affectation (A0 1 , A0 2 , B0 1 , B0 2 ). À partir de cette 826.1. DÉCOMPOSITIONS EXTRÊMES skew-partition équilibrée, nous allons trouver une skew-partition dans T. Nous allons alors utiliser le lemme 2.8 afin de démontrer l’existence d’une skew-partition équilibrée dans T. Ceci nous fournira une contradiction, et démontrera le résultat. Si le fragment vient d’un 2-joint ou d’un complément de 2-joint, nous avons le résultat d’après le lemme 2.12. Si X = A ∪ B et (A, B) est une paire homogène de T, alors soit (A, B, C, D, E, F) une affectation de (A, B). Puisque cd est une arête optionnelle, les sommets marqués c et d n’ont pas de voisin commun et cd domine TX. Sans perte de généralité il n’y a qu’un cas à traiter : c ∈ A0 1 et d ∈ B0 1 . Puisque B0 2 est complet à d et A0 2 est anticomplet à c, il suit que A0 2 , B0 2 ⊆ B. Maintenant (A0 1 \ {c}∪C ∪F, A0 2 , B0 1 \ {d}∪D∪E, B0 2 ) est une affectation d’une skew-partition dans T. La paire (A0 2 , B0 2 ) est équilibrée dans T car elle l’est dans TX. Par conséquent, d’après le lemme 2.8, T admet une skew-partition équilibrée, c’est une contradiction. Si X = V (T)\(A∪B) et (A, B) est une paire homogène propre de T, alors soit (A, B, C, D, E, F) une affectation de (A, B). Puisque ab est une arête optionnelle, on peut à symétrie et complémentation près supposer que a ∈ A0 1 et b ∈ A0 1 ∪ B0 1 . Si b ∈ A0 1 alors (A ∪ B ∪ A0 1 \ {a, b}, A0 2 , B0 1 , B0 2 ) est une affectation d’une skewpartition dans T. Dans tous les cas, la paire (A0 2 , B0 2 ) est équilibrée dans T car elle l’est dans TX. Par conséquent, d’après le lemme 2.8, T admet une skew-partition équilibrée, c’est une contradiction. Théorème 6.3. Si X est une fin d’un trigraphe T de Berge apprivoisé, alors le bloc de décomposition TX est basique. Démonstration. Soit T un trigraphe de Berge apprivoisé et X une fin de T. D’après le lemme 6.1, TX est un trigraphe bigame de Berge et d’après le lemme 6.2, TX n’a pas de skew-partition équilibrée. D’après le théorème 2.10, il suffit de montrer que TX n’a ni 2-joint propre, ni complément de 2-joint propre. En passant au complémentaire de T si nécessaire, on peut supposer qu’une des propriétés suivantes est vraie : — X = A ∪ B et (A, B) est une paire homogène propre de T ; — (X, V (T) \ X) est un 2-joint pair propre de T ; ou — (X, V (T) \ X) est un 2-joint impair propre de T. Cas 1 : X = A ∪ B avec (A, B) une paire homogène propre de T. Soit (A, B, C, D, E, F) une affectation de (A, B). 83CHAPITRE 6. DÉCOMPOSITIONS EXTRÊMES Supposons que TX admette un 2-joint propre (X1, X2). Soit (A1, B1, C1, A2, B2, C2) une affectation de (X1, X2). Puisque cd est une arête optionnelle, nous pouvons supposer que les deux sommets c, d sont tous les deux dans X2. Comme {c, d} domine fortement TX, on peut supposer que c ∈ A2 et d ∈ B2, et donc C1 = ∅. Puisque c est fortement complet à A, A1 ⊆ A et de manière similaire, B1 ⊆ B. D’après le lemme 6.2 et le lemme 2.9, |A1| ≥ 2 et |B1| ≥ 2 et comme C1 = ∅, tous les sommets de A1 ont un voisin et un antivoisin dans B1 et vice versa. Maintenant (A1, B1, C ∪ A2 \ {c}, D ∪ B2 \ {d}, E, F ∪ C2) est une affectation d’une paire homogène propre de T. Comme |X2| ≥ 3, A1 ∪ B1 est strictement inclus dans A ∪ B, c’est une contradiction. Comme A∪B est aussi une paire homogène de T, en utilisant le même argument que ci-dessus, TX n’admet pas de complément de 2-joint propre. Cas 2 : (X, V (T) \ X) est un 2-joint pair propre (X1, X2) de T, avec X = X1. Soit (A1, B1, C1, A2, B2, C2) une affectation de (X, V (T) \ X). Supposons que TX admette un 2-joint propre (X0 1 , X0 2 ). Soit (A0 1 , B0 1 , C0 1 , A0 2 , B0 2 , C0 2 ) une affectation de (X0 1 , X0 2 ). Puisque ac et bc sont des arêtes optionnelles, on peut supposer que a, b, c ∈ X0 2 . Nous affirmons maintenant que (X0 1 , V (T) \ X0 1 ) est un 2-joint propre de T et que X0 1 est strictement inclus dans X, ce qui est une contradiction. Remarquons que d’après la définition d’un 2-joint et le fait que c n’ait pas de voisin fort, X0 2 ne peut pas être réduit à {a, b, c} et par conséquent, X0 1 est strictement inclus dans X. Puisque c n’a pas de voisin fort, c ∈ C 0 2 . Puisque a et b n’ont pas de voisin fort commun dans TX1 , il n’y a à symétrie près que trois cas : ou bien a ∈ A0 2 , b ∈ B0 2 , ou bien a ∈ A0 2 , b ∈ C 0 2 , ou bien a, b ∈ C 0 2 . Si a ∈ A0 2 et b ∈ B0 2 , alors (A0 1 , B0 1 , C0 1 , A2 ∪A0 2 \ {a}, B2 ∪B0 2 \ {b}, C2 ∪C 0 2 \ {c}) est une affectation d’un 2-joint de T. Si a ∈ A0 2 et b ∈ C 0 2 , alors (A0 1 , B0 1 , C0 1 , A2 ∪ A0 2 \ {a}, B0 2 , B2 ∪ C2 ∪ C 0 2 \ {b, c}) est une affectation d’un 2-joint de T. Si a ∈ C 0 2 et b ∈ C 0 2 , alors (A0 1 , B0 1 , C0 1 , A0 2 , B0 2 , X2 ∪ C 0 2 \ {a, b, c}) est une affectation d’un 2-joint de T. D’après le lemme 6.2 et le lemme 2.9 tous ces 2-joints sont propres, et nous avons donc une contradiction. Supposons que TX admette un complément de 2-joint propre (X0 1 , X0 2 ). Puisque c n’a pas de voisin fort nous avons une contradiction. Case 3 : (X, V (T) \ X) est un 2-joint propre (X1, X2) de T, avec X = X1. Soit (A1, B1, C1, A2, B2, C2) une affectation de (X, V (T) \ X). Supposons que TX admette un 2-joint propre (X0 1 , X0 2 ). Soit 846.2. CALCULER UNE FIN (A0 1 , B0 1 , C0 1 , A0 2 , B0 2 , C0 2 ) une affectation de (X0 1 , X0 2 ). Puisque ab est une arête optionnelle, on peut supposer que a, b ∈ X0 2 . Maintenant nous affirmons que (X0 1 , V (T) \ X0 1 ) est un 2-joint propre de T, ce qui est une contradiction, car X0 2 ne peut pas être réduit à seulement {a, b} (d’après la définition d’un 2-joint), donc X0 1 est strictement inclus dans X. Comme a et b n’ont pas de voisin fort commun dans TX1 , il y a à symétrie près seulement trois cas : ou bien a ∈ A0 2 , b ∈ B0 2 , ou bien a ∈ A0 2 , b ∈ C 0 2 , ou bien a, b ∈ C 0 2 . Si a ∈ A0 2 et b ∈ B0 2 , alors (A0 1 , B0 1 , C0 1 , A2 ∪ A0 2 \ {a}, B2 ∪ B0 2 \ {b}, C2 ∪ C 0 2 ) est une affectation d’un 2-joint de T. Si a ∈ A0 2 et b ∈ C 0 2 , alors (A0 1 , B0 1 , C0 1 , A2 ∪ A0 2 \ {a}, B0 2 , B2 ∪ C2 ∪ C 0 2 \ {b}) est une affectation d’un 2-joint de T. Si a ∈ C 0 2 et b ∈ C 0 2 , alors (A0 1 , B0 1 , C0 1 , A0 2 , B0 2 , X2∪C 0 2 \{a, b}) est une affectation d’un 2-joint de T. D’après le lemme 6.2 et le lemme 2.9 tous ces 2-joints sont propres, et nous avons donc une contradiction. Supposons que TX admette un complément de 2-joint propre (X0 1 , X0 2 ). Soit (A0 1 , B0 1 , C0 1 , A0 2 , B0 2 , C0 2 ) une affectation de (X0 1 , X0 2 ). Puisque ab est une arête optionnelle, on peut supposer que a, b ∈ X0 2 . Puisque a et b n’ont pas de voisin fort commun, on peut supposer que a ∈ A0 2 , b ∈ B0 2 et C 0 1 = ∅. Si C2 et C 0 2 sont nonvides, alors (A0 1 , B0 1 , B2 ∪ B0 2 \ {b}, A2 ∪ A0 2 \ {a}, C0 2 , C2) est une affectation d’une paire homogène propre de T et A0 1 ∪ B0 1 est strictement inclus dans X, c’est une contradiction (remarquons que d’après le lemme 6.2 et le lemme 2.9, |A0 1 | ≥ 2, |B0 1 | ≥ 2, et tout sommet de A0 1 a un voisin et un antivoisin dans B0 1 et vice versa). Si C2 est non-vide et que C 0 2 est vide, alors (A0 1 , B0 1 , ∅, B2∪B0 2\{b}, A2∪A0 2\{a}, C2) est une affectation d’un 2-joint propre de T (il est propre d’après le lemme 6.2 et le lemme 2.9). Si C2 est vide, alors (A0 1 , B0 1 , ∅, A2 ∪ A0 2 \ {a}, B2 ∪ B0 2 \ {b}, C0 2 ) est une affectation d’un complément de 2-join de T (ici encore il est propre d’après le lemme 6.2 et le lemme 2.9). 6.2 Calculer une fin Le but de cette section est de donner un algorithme polynomial qui étant donné un trigraphe, calcule une fin s’il en existe une. Pour résoudre ce problème nous pourrions utiliser les algorithmes existants de détection de 2-joint et de paire homogène. Le plus rapide est dans [7] pour les 2-joints et dans [24] pour les paires homogènes. Cependant cette approche pose plusieurs problèmes. Premièrement ces algorithmes fonctionnent pour les graphes et non pour les trigraphes. Il est 85CHAPITRE 6. DÉCOMPOSITIONS EXTRÊMES cependant possible de les adapter pour les faire fonctionner sur les trigraphes. Cependant il est difficile de démontrer que cette conversion des graphes aux trigraphes est correcte sans rentrer dans les détails des algorithmes. Le problème plus grave est que ces algorithmes calculent un fragment et non une fin. En fait pour les 2-joints l’algorithme de [7] calcule un ensemble X minimal pour l’inclusion tel que (X, V (G)\X) est un 2-joint, mais il peut toujours y avoir une paire homogène dans X. Pour régler ces deux problèmes nous donnons ici notre propre algorithme même si la plupart des idées de cet algorithme existaient déjà dans des travaux précédents. Notre algorithme cherche un fragment propre X. À cause de tous les points techniques des définitions des 2-joints et des paires homogènes, nous introduisons une nouvelle notion. Un fragment faible d’un trigraphe T est un ensemble X ⊆ V (T) tel qu’il existe des ensembles disjoints A1, B1, C1, D1, A2, B2, C2, D2 vérifiant : — X = A1 ∪ B1 ∪ C1 ∪ D1 ; — V (T) \ X = A2 ∪ B2 ∪ C2 ∪ D2 ; — A1 est fortement complet à A2 ∪ D2 et fortement anticomplet à B2 ∪ C2 ; — B1 est fortement complet à B2 ∪ D2 et fortement anticomplet à A2 ∪ C2 ; — C1 est fortement anticomplet à A2 ∪ B2 ∪ C2 ; — D1 est fortement anticomplet à A2 ∪ B2 ∪ D2 ; — |X| ≥ 4 et |V (T) \ X| ≥ 4 ; — |Ai | ≥ 1 et |Bi | ≥ 1, i = 1, 2 ; — et au moins une des propriétés suivantes est vérifiée : — C1 = D1 = ∅, C2 6= ∅, et D2 6= ∅, ou — D1 = D2 = ∅, ou — C1 = C2 = ∅. Dans ces circonstances, on dit que (A1, B1, C1, D1, A2, B2, C2, D2) est une affectation de X. Étant donné un fragment faible, on dit qu’il est de type paire homogène si C1 = D1 = ∅, C2 6= ∅, et D2 6= ∅, de type 2-joint si D1 = D2 = ∅ et de type complément de 2-joint si C1 = C2 = ∅. Remarquons qu’un fragment peut être à la fois de type 2-joint et de type complément de 2-joint (lorsque C1 = D1 = C2 = D2 = ∅). Théorème 6.4. Si T est un trigraphe de Berge apprivoisé, alors X est un fragment faible de T si et seulement si X est un fragment propre de T. Démonstration. Si X est un fragment propre, alors c’est clairement un fragment faible (les conditions |X| ≥ 4 et |V (T) \ X| ≥ 4 sont satisfaites lorsque X est un côté d’un 2-joint d’après le lemme 2.9). Prouvons l’autre sens de l’équivalence. Soit 866.2. CALCULER UNE FIN X un fragment faible et soit (A1, B1, C1, D1, A2, B2, C2, D2) une affectation de X. Si X est de type 2-joint ou complément de 2-joint, alors il est propre d’après le lemme 2.9. Par conséquent nous n’avons à traiter que le cas du fragment faible de type paire homogène et donc C1 = D1 = ∅, C2 6= ∅, et D2 6= ∅. Puisque les quatre ensembles A1, A2, B1, B2 sont tous non-vides, il suffit de vérifier que les conditions suivantes sont vérifiées : (i) Tout sommet de A1(B1) a un voisin et un antivoisin dans B1(A1). (ii) |A1| > 1 et |B1| > 1. Supposons que la condition (i) n’est pas vérifiée. En prenant le complémentaire de T si nécessaire, on peut supposer qu’il existe un sommet v ∈ A1 fortement complet à B1. Puisque {v} ∪ B1 ∪ A2 ∪ D2 n’est pas un star cutset dans T d’après le lemme 2.6, on a que A1 = {v}. Maintenant tout sommet de B1 est fortement complet à A1, et donc par le même argument, |B1| = 1. Ceci contredit l’hypothèse que |X| ≥ 4. Par conséquent la propriété (i) est vérifiée. Pour démontrer (ii) supposons que |A1| = 1. Puisque |X| ≥ 4, on a que |B1| ≥ 3. D’après (i), tout sommet de B1 est semi-adjacent à un unique sommet de A1, ce qui est impossible puisque |B1| ≥ 3 et que T est un trigraphe bigame. Par conséquent la propriété (ii) est vérifiée. Un quadruplet (a1, b1, a2, b2) de sommets d’un trigraphe T est propre s’il vérifie les propriétés suivantes : — a1, b1, a2, b2 sont deux à deux distincts ; — a1a2, b1b2 ∈ E(T); — a1b2, b1a2 ∈ E(T). Un quadruplet propre (a1, b1, a2, b2) est compatible avec un fragment faible X s’il existe une affectation (A1, B1, C1, D1, A2, B2, C2, D2) de X telle que a1 ∈ A1, b1 ∈ B1, a2 ∈ A2 et b2 ∈ B2. Nous utilisons les notations suivantes. Si x est un sommet d’un trigraphe T, N(x) désigne l’ensemble des voisins de x, N(x) l’ensemble des antivoisins de x, E(x) l’ensemble des voisins forts de x, et E ∗ (x) l’ensemble des sommets v tels que xv ∈ E ∗ (T). 87CHAPITRE 6. DÉCOMPOSITIONS EXTRÊMES Théorème 6.5. Soit T un trigraphe et Z = (a1, b1, a2, b2) un quadruplet propre de T. Il y a un algorithme en temps O(n 2 ) qui étant donné un ensemble R0 ⊆ V (T) de taille au moins 4 tel que Z ∩ R0 = {a1, b1}, trouve un fragment faible X compatible avec Z et tel que R0 ⊆ X, ou renvoie la propriété vraie suivante : “Il n’existe pas de fragment faible X compatible avec Z et tel que R0 ⊆ X” De plus le fragment trouvé X est minimal vis à vis de ces propriétés. C’est 886.2. CALCULER UNE FIN à dire que X ⊂ X0 pour tout fragment faible X0 vérifiant ces propriétés. Démonstration. Nous utilisons la procédure décrite dans la table 6.1. Elle essaie de construire un fragment faible R, en commençant avec R = R0 et S = V (T) \ R0, Ensuite plusieurs règles de forçage sont implémentées, disant que certains ensembles de sommets doivent être déplacés de S vers R. La variable “State” contient le type du fragment faible en train d’être considéré. Au début de la procédure le type n’est pas connu et la variable “State” contient “Unknown”. Il est facile de vérifier que les propriétés suivantes sont des invariants d’exécution (c’est à dire qu’elles sont vérifiées après chaque appel à Explore) : — R et S forment une partition de V (T), R0 ⊆ R et a2, b2 ∈ S. — Pour tout sommet v ∈ R non-marqué et tout sommet u ∈ S, uv n’est pas une arête optionnelle. — Tous les sommets non-marqués appartenant à R ∩ (E(a2) \ E(b2)) ont le même voisinage dans S, c’est à dire A (et A est un voisinage fort). — Tous les sommets non-marqués appartenant à R ∩ (E(b2) \ E(a2)) ont le même voisinage dans S, c’est à dire B (et B est un voisinage fort). — Tous les sommets non-marqués appartenant à R ∩ (E(b2) ∩ E(a2)) ont le même voisinage dans S, c’est à dire A ∪ B. — Tous les sommets non-marqués appartenant à R et non-adjacent ni à a2 ni à b2 sont fortement anticomplet à S. — Pour tout fragment faible X tel que R0 ⊆ X et a2, b2 ∈ V (T) \ X, on a que R ⊆ X et V (T) \ X ⊆ S. D’après le dernier point, tous les déplacements de sommets de S vers R sont nécessaires. Donc si un sommet de R est fortement adjacent à a2 et à b2, n’importe quel fragment faible compatible avec Z qui contient R doit être un fragment faible de type complément de 2-joint. C’est pourquoi la variable “State” est alors assignée avec la valeur 2-joint et que tous les sommets de S \ (A ∪ B) sont déplacés vers R. De la même manière, si un sommet de R est fortement antiadjacent à a2 et à b2, n’importe quel fragment faible compatible avec Z qui contient R doit être un fragment faible de type 2-joint. C’est pourquoi la variable “State” est alors assignée à la valeur 2-joint et que tous les sommets de A ∩ B sont déplacés vers R. Lorsque State = “2-joint” et qu’un sommet de R est à la fois fortement adjacent à a2 et à b2, il y a une contradiction avec la définition du complément de 2-joint, donc l’algorithme doit s’arrêter. Lorsque State = 2-joint et qu’un sommet de R est à la fois fortement adjacent à a2 et à b2, il y a une contradiction avec la définition du 2-joint donc l’algorithme doit s’arrêter. Lorsque la fonction Move essaie de déplacer a2 ou b2 dans R (ceci peut arriver si un sommet dans R est semiadjacent 89CHAPITRE 6. DÉCOMPOSITIONS EXTRÊMES Entrée : R0 un ensemble de sommets d’un trigraphe T et un quadruplet propre Z = (a1, b1, a2, b2) tel que a1, b1 ∈ R0 and a2, b2 ∈/ R0. Initialisation : R ← R0 ; S ← V (T) \ R0 ; A ← E(a1) ∩ S ; B ← E(b1) ∩ S ; State ← Unknown ; Les sommets a1, b1, a2, b2 sont laissés non-marqués. Pour les autres sommets de T : Mark(x) ← αβ pour tout sommet x ∈ E(a2) ∩ E(b2); Mark(x) ← α pour tout sommet x ∈ E(a2) \ E(b2); Mark(x) ← β pour tout sommet x ∈ E(b2) \ E(a2); tous les autres sommets de T sont marqués par ε ; Move(E ∗ (a1) ∩ S); Move(E ∗ (b1) ∩ S); Boucle principale : Tant que il existe un sommet x ∈ R marqué Faire Explore(x); Unmark(x); Fonction Explore(x) : Si Mark(x) = αβ et State = Unknown alors State ← 2-joint, Move(S \ (A ∪ B)); Si Mark(x) = αβ et State = 2-joint alors Move(N(x) ∩ S); Si Mark(x) = αβ et State = 2-joint alors Sortie Pas de fragment faible trouvé, Stop ; Si Mark(x) = α alors Move(A∆(E(x) ∩ S)), Move(E ∗ (x) ∩ S); Si Mark(x) = β alors Move(B∆(E(x) ∩ S)), Move(E ∗ (x) ∩ S); Si Mark(x) = ε et State = Unknown alors State ← 2-joint, Move(A ∩ B); Si Mark(x) = ε et State = 2-joint alors Move(N(x) ∩ S); Si Mark(x) = ε et State = 2-joint alors Sortie Pas de fragment faible trouvé, Stop ; Fonction Move(Y) : Cette fonction déplace simplement un sous-ensemble Y ⊂ S de S vers R. Si Y ∩ {a2, b2} 6= ∅ alors Sortie Pas de fragment faible trouvé, Stop ; R ← R ∪ Y ; A ← A \ Y ; B ← B \ Y ; S ← S \ Y ; Table 6.1 – La procédure utilisée dans le théorème 6.5 906.2. CALCULER UNE FIN à a2 et à b2), alors R ne peut pas être contenu dans un fragment compatible avec Z. Si le processus ne s’arrête pas pour une des raisons ci-dessus, alors tous les sommets de R ont été explorés et donc sont non-marqués. Donc, si |S| ≥ 4 à la fin, R est un fragment faible compatible avec Z. Plus spécifiquement, (R∩(E(a2)\ E(b2)), R ∩(E(b2) \ E(a2)), R \ (E(a2)∪ E(b2)), R ∩(E(a2)∩ E(b2)), A \ B, B \ A, S \ (A ∪ B), A ∩ B) est une affectation du fragment faible R. Puisque tous les déplacements de S vers R sont nécessaires, le fragment est minimal comme affirmé. Cela implique également que si |S| ≤ 3, alors il n’existe pas de fragment faible vérifiant les propriétés, dans ce cas l’algorithme renvoie qu’il n’existe pas de fragment vérifiant les propriétés requises. Complexité : Le voisinage et l’antivoisinage d’un sommet de R n’est considéré qu’au plus une fois. Donc, globalement l’algorithme utilise un temps O(n 2 ). Théorème 6.6. Il existe un algorithme fonctionnant en temps O(n 5 ), qui prend en entré un trigraphe T de Berge apprivoisé, et qui renvoie une fin X de T (si une fin existe) et le bloc de décomposition TX. Démonstration. Rappelons que d’après le lemme 6.4, les fragments faibles de T sont des fragments propres. Nous commençons par décrire un algorithme de complexité O(n 8 ), nous expliquerons ensuite comment l’accélérer. Nous supposons que |V (T)| ≥ 8 car sinon il n’existe pas de fragment propre. Pour tout quadruplet propre Z = (a1, a2, b1, b2) et pour toute paire de sommets u, v de V (T) \ {a1, a2, b1, b2}, nous appliquons le lemme 6.5 à R0 = {a1, b1, u, v}. Cette méthode détecte pour tout Z et tout u, v un fragment propre (s’il en existe) compatible avec Z, contenant u, v et minimal vis à vis de ces propriétés. Parmi tous ces fragments, nous choisissons celui de cardinalité minimum, c’est une fin. Une fois que la fin est donnée, il est facile de connaitre le type de décomposition utilisé et de construire le bloc correspondant (en utilisant en particulier, le lemme 2.4, on peut simplement tester avec un chemin si le 2-joint est pair ou impair). Voyons maintenant comment accélérer cet algorithme. Nous traitons séparément le cas du 2-joint et de la paire homogène. Nous allons décrire un algorithme en temps O(n 5 ) qui renvoie un fragment faible de type 2-joint, un algorithme en temps O(n 5 ) qui renvoie un fragment faible de type complément de 2-joint et un algorithme en temps O(n 5 ) qui renvoie un fragment faible 91CHAPITRE 6. DÉCOMPOSITIONS EXTRÊMES de type paire homogène. Chacun de ces fragments sera de cardinalité minimum parmi tous les fragments faibles du même type. Par conséquent, le fragment de cardinalité minimum parmi ces trois fragments sera une fin. Commençons par traiter le cas des 2-joints. Un ensemble Z de quadruplets propres est universel, si pour tout 2-joint propre d’affectation (A1, B1, C1, A2, B2, C2), il existe (a1, a2, b1, b2) ∈ Z tel que a1 ∈ A1, a2 ∈ A2, b1 ∈ B1, b2 ∈ B2. Au lieu de tester tous les quadruplets comme dans la version en O(n 8 ) de notre algorithme, il est clairement suffisant de restreindre notre recherche à un ensemble universel de quadruplet. Comme prouvé dans [7], il existe un algorithme qui génère en temps O(n 2 ) un ensemble universel de quadruplet de taille au plus O(n 2 ) pour n’importe quel graphe. Il est facile d’obtenir un algorithme similaire pour les trigraphes. L’idée suivante pour les 2-joints est d’appliquer la méthode de la Table 6.1 à R0 = {a1, b1, u} pour tout sommet u au lieu de l’appliquer pour R0 = {a1, b1, u, v} pour tout couple de sommets u, v. Comme nous allons le voir ceci trouve un 2- joint compatible avec Z = (a1, a2, b1, b2) s’il en existe un. Supposons que (X1, X2) soit un tel 2-joint. Si X1 contient un sommet u dont le voisinage (dans T) est différent de N(a1)∪N(b1), alors d’après le lemme 2.9, u a au moins un voisin dans X1 \{a1, b1}. Donc quand la boucle considère u, la méthode de la Table 6.1 déplace de nouveaux sommets dans R. Donc, à la fin, |R| ≥ 4 et le 2-joint est détecté. Par conséquent, l’algorithme échoue à détecter un 2-joint uniquement dans le cas où u a degré 2 et a1-v-b1 est un chemin alors qu’il existe un 2-joint compatible avec Z avec u du même côté que a1 et b1. En fait, puisque tous les sommets sont essayés, ce n’est un problème que s’il apparait pour tout choix possible de u. C’est à dire si le 2-joint cherché a un côté fait de a1, b1, et d’un ensemble de sommets u1, . . . , uk de degré 2 tous adjacents à la fois à a1 et à b1. Mais dans ce cas, ou bien un des ui est fortement complet à {a1, b1} et c’est le centre d’un star cutset, ou bien tous les ui sont adjacents à un des sommets a1 ou b1 par une arête optionnelle. Dans ce cas tous les ui sont déplacés vers R lorsque nous appliquons les règles décrites par la Table 6.1, et donc le 2-joint est en fait bien détecté. Les compléments de 2-joints sont traités de la même manière dans le complé- ment. Considérons maintenant les paires homogènes. Il est utile de définir une paire homogène faible exactement comme les paires homogènes propres, à l’exception que nous demandons que “|A| ≥ 1, |B| ≥ 1 et |A ∪ B| ≥ 3” au lieu de “|A| > 1 et |B| > 1”. Un lemme similaire au lemme 6.5 existe pour lequel l’entrée de l’algorithme est un graphe G, un triplet (a1, b1, a2) ∈ V (G) 3 et un ensemble R0 ⊆ 926.2. CALCULER UNE FIN V (G) qui contient a1, b1 mais pas a2, et dont la sortie est une paire homogène faible (A, B) telle que R0 ⊆ A ∪ B, a1 ∈ A, b1 ∈ B et a2 ∈/ A ∪ B, et telle que a2 est complet à A et anticomplet à B, si une telle paire homogène faible existe. Comme dans le lemme 6.5, le temps d’exécution est O(n 2 ) et la paire homogène faible est minimale parmi toutes les paires homogènes faibles possibles. Ce résultat est prouvé dans [17]. Comme pour les 2-joints, nous définissons la notion d’ensemble universel de triplets (a1, b1, a2). Comme prouvé dans [24], il existe un algorithme qui génère en temps O(n 2 ) un ensemble universel de triplet de taille au plus O(n 2 ) pour n’importe quel graphe. Ici encore il est facile d’adapter cet algorithme pour les trigraphes. Comme dans le cas du 2-joint, nous appliquons un lemme analogue au lemme 6.5 à tous les sommets u au lieu de tous les couples de sommets u, v. Le seul problème est qu’après l’appel au lemme similaire au lemme 6.5, nous avons une paire homogène faible et pas propre (donc |A ∪ B| = 3). Mais dans ce cas on peut vérifier qu’alors le trigraphe contient un star cutset ou un star cutset dans son complément. Nous avons vu dans ce chapitre comment étendre notre ensemble de décompositions afin d’assurer l’existence d’une décomposition extrême. Nous avons également donné un algorithme polynomial permettant d’exhiber une telle décomposition. Nous n’avons pas eu besoin de ce type de décomposition pour prouver le reste des résultats de cette thèse, mais savoir qu’elle existe donne une preuve conceptuellement plus simple des résultats concernant le calcul du stable maximum. En effet, si l’on sait qu’à chaque étape de décomposition un des côtés est basique on peut facilement calculer les valeurs qui nous intéressent dans ce coté sans craindre d’explosion combinatoire, de fait la récursion devient presque immé- diatement récursive terminale. Malheureusement, la preuve est techniquement plus compliquée puisqu’il faut également traiter les cas des paires homogènes. Il n’est pas possible de transformer automatique un théorème de décomposition en son équivalent extrême (cf la figure 6.1). Il serait intéressant de savoir s’il est toujours possible d’ajouter des décompositions (et comment les calculer) pour obtenir une décomposition extrême. 93CHAPITRE 6. DÉCOMPOSITIONS EXTRÊMES 94Chapitre 7 Conclusion Dans cette thèse, nous avons démontré un certain nombre de résultats sur les trigraphes de Berge apprivoisés et par conséquent sur les graphes de Berge sans skew-partition. En fait, le point important dans tous ces résultats est de pouvoir décomposer le graphe par 2-joint ou complémentaire de 2-joint. L’interdiction des skew-partitions permet simplement d’assurer que le graphe ou son complémentaire admet bien un 2-joint et que les blocs vont eux aussi être inductivement décomposables. La classe la plus générale pour laquelle ces résultats s’appliquent est donc celle des graphes de Berge décomposables par 2-joint ou complémentaire de 2-joint. Malheureusement cette classe est une sous-classe stricte des graphes de Berge, le graphe en figure 2.8 est un graphe de Berge qui (en utilisant les décompositions mentionnées dans cette thèse) n’est décomposable que par skew-partition. La reconnaissance des graphes de Berge apprivoisés est possible en temps polynomial, mais est compliquée. En toute généralité la détection de skew-partition équilibrée est un problème NP-complet heureusement ce problème devient polynomial sur les graphes de Berge [35]. On peut donc utiliser l’algorithme de Chudnovsky, Cornuéjols, Liu, Seymour et Vušković [12] pour s’assurer que le graphe est bien de Berge puis on peut utiliser les résultats de Trotignon [35] pour s’assurer que le graphe ne possède pas de skew-partition équilibrée. Avec ces résultats il est alors possible, étant donné un graphe quelconque de le colorier en temps polynomial ou d’assurer que ce n’est pas un graphe de Berge sans skew-partition. La reconnaissance de la classe plus large des graphes de Berge totalement décomposable par 2-joint et complémentaire de 2-joint est plus difficile. On peut chercher décomposer jusqu’à arriver sur des blocs basiques, mais en cas d’échec, a priori rien ne garantit qu’en ayant choisi un autre 2-joint nous n’aurions pas pu le décomposer totalement. 95CHAPITRE 7. CONCLUSION Notre classe est auto-complémentaire mais pas héréditaire, ce qui peut paraître surprenant pour les personnes familières avec les graphes de Berge. Il est assez difficile de trouver une classe proche qui soit héréditaire. De manière artifi- cielle, ce serait la classe des graphes de Berge sans sous-graphe induit uniquement décomposable par skew-partition (en utilisant comme ensemble de décompositions celles présentées dans cette thèse), en particulier il faut interdire le graphe de la figure 2.8. Il faudrait alors vérifier que les blocs de décompositions restent dans la classe. Dans ce cas cette classe serait alors totalement décomposable par 2-joint et par complémentaire de 2-joint et tous les résultats de cette thèse s’appliqueraient. Une manière d’étendre ces résultats serait de réussir pour un graphe de Berge donné à lui ajouter des sommets pour le rendre sans skew-partition. Dans ce cas en affectant des poids nuls à ces sommets ajoutés il est possible d’utiliser l’algorithme de stable maximum pondéré présenté ici pour calculer un stable maximum du graphe de départ. Pour que cet algorithme reste un algorithme en temps polynomial il faut que le nombre de sommets à ajouter soit polynomial en la taille du graphe de départ. Le risque d’une telle méthode est bien sûr que les sommets ajoutés créent de nouvelles skew-partition. Si ces résultats ne permettent pas de résoudre le problème pour les graphe de Berge en général, ils peuvent néanmoins fournir des outils utiles. En effet pour ces problèmes, on peut désormais voir notre classe comme une classe basique. De futurs algorithmes pourraient donc traiter les graphe de Berge tant qu’ils admettent des skew-partition puis utiliser nos algorithmes. Enfin le problème ouvert qui est sans doute le plus intéressant est celui de la reconnaissance des trigraphes de Berge. Ce problème est résolu pour les graphes [12] mais est toujours ouvert pour les trigraphes. Étant donné l’intérêt de l’utilisation des trigraphes pour l’étude des graphes de Berge, il serait très intéressant de savoir reconnaître les trigraphes de Berge. De manière plus générale, si l’on définit une classe de trigraphe C ∗ à partir de la classe de graphe C de la manière suivante : Un trigraphe T est dans la classe C ∗ si et seulement si toutes ses réalisations sont dans la classe C, quel est le lien entre la reconnaissance de la classe C et celle de la la classe C ∗ . 96Bibliographie [1] Pierre Aboulker, Marko Radovanović, Nicolas Trotignon, Théophile Trunck et Kristina Vušković : Linear balanceable and subcubic balanceable graphs. Journal of Graph Theory, 75(2):150–166, 2014. [2] Boris Alexeev, Alexandra Fradkin et Ilhee Kim : Forbidden induced subgraphs of double-split graphs. SIAM Journal on Discrete Mathematics, 26(1):1–14, 2012. [3] Noga Alon, János Pach, Rom Pinchasi, Radoš Radoičić et Micha Sharir : Crossing patterns of semi-algebraic sets. Journal of Combinatorial Theory, Series A, 111(2):310–326, 2005. [4] Nicolas Bousquet, Aurélie Lagoutte et Stéphan Thomassé : Clique versus independent set. arXiv preprint arXiv :1301.2474, 2013. [5] Nicolas Bousquet, Aurélie Lagoutte et Stéphan Thomassé : The ErdősHajnal conjecture for paths and antipaths. arXiv preprint arXiv :1303.5205, 2013. [6] Binh-Minh Bui-Xuan, Jan Arne Telle et Martin Vatshelle : H-join decomposable graphs and algorithms with runtime single exponential in rankwidth. Discrete Applied Mathematics, 158(7):809–819, 2010. [7] Pierre Charbit, Michel Habib, Nicolas Trotignon et Kristina Vušković : Detecting 2-joins faster. Journal of discrete algorithms, 17:60–66, 2012. [8] Maria Chudnovsky : Berge trigraphs and their applications. Thèse de doctorat, Princeton University, 2003. [9] Maria Chudnovsky : Berge trigraphs. Journal of Graph Theory, 53(1):1–55, 2006. [10] Maria Chudnovsky : The structure of bull-free graphs II and III—A summary. Journal of Combinatorial Theory, Series B, 102(1):252–282, 2012. 97BIBLIOGRAPHIE [11] Maria Chudnovsky : The structure of bull-free graphs I—Three-edge-paths with centers and anticenters. Journal of Combinatorial Theory, Series B, 102(1):233–251, 2012. [12] Maria Chudnovsky, Gérard Cornuéjols, Xinming Liu, Paul Seymour et Kristina Vušković : Recognizing berge graphs. Combinatorica, 25(2):143– 186, 2005. [13] Maria Chudnovsky, Neil Robertson, Paul Seymour et Robin Thomas : The strong perfect graph theorem. Annals of Mathematics, pages 51–229, 2006. [14] Maria Chudnovsky et Paul D Seymour : The structure of claw-free graphs. Surveys in combinatorics, 327:153–171, 2005. [15] Maria Chudnovsky, Nicolas Trotignon, Théophile Trunck et Kristina Vuskovic : Coloring perfect graphs with no balanced skew-partitions. arXiv preprint arXiv :1308.6444, 2013. [16] Vasek Chvátal : Star-cutsets and perfect graphs. Journal of Combinatorial Theory, Series B, 39(3):189–199, 1985. [17] Hazel Everett, Sulamita Klein et Bruce Reed : An algorithm for finding homogeneous pairs. Discrete Applied Mathematics, 72(3):209–218, 1997. [18] Tomás Feder, Pavol Hell, David G Schell et Juraj Stacho : Dichotomy for tree-structured trigraph list homomorphism problems. Discrete Applied Mathematics, 159(12):1217–1224, 2011. [19] Tomás Feder, Pavol Hell et Kim Tucker-Nally : Digraph matrix partitions and trigraph homomorphisms. Discrete Applied Mathematics, 154(17):2458–2469, 2006. [20] Samuel Fiorini, Serge Massar, Sebastian Pokutta, Hans Raj Tiwary et Ronald de Wolf : Linear vs. semidefinite extended formulations : exponential separation and strong lower bounds. In Proceedings of the 44th symposium on Theory of Computing, pages 95–106. ACM, 2012. [21] Jacob Fox : A bipartite analogue of Dilworth’s theorem. Order, 23(2-3):197– 209, 2006. [22] Jacob Fox et János Pach : Erdős-Hajnal-type results on intersection patterns of geometric objects. In Horizons of combinatorics, pages 79–103. Springer, 2008. [23] Martin Grötschel, László Lovász et Alexander Schrijver : Geometric algorithms and combinatorial optimization. 1988. 98BIBLIOGRAPHIE [24] Michel Habib, Antoine Mamcarz et Fabien de Montgolfier : Algorithms for some H-join decompositions. In LATIN 2012 : Theoretical Informatics, pages 446–457. Springer, 2012. [25] Peter L Hammer et Bruno Simeone : The splittance of a graph. Combinatorica, 1(3):275–284, 1981. [26] Aurélie Lagoutte et Théophile Trunck : Clique-stable set separation in perfect graphs with no balanced skew-partitions. arXiv preprint arXiv :1312.2730, 2013. [27] Philippe GH Lehot : An optimal algorithm to detect a line graph and output its root graph. Journal of the ACM (JACM), 21(4):569–575, 1974. [28] Lásló Lovász : A characterization of perfect graphs. Journal of Combinatorial Theory, Series B, 13(2):95–98, 1972. [29] László Lovász : On the shannon capacity of a graph. Information Theory, IEEE Transactions on, 25(1):1–7, 1979. [30] László Lovász : Stable sets and polynomials. Discrete mathematics, 124(1): 137–153, 1994. [31] Frédéric Maffray : Fast recognition of doubled graphs. Theoretical Computer Science, 516:96–100, 2014. [32] Nicholas D Roussopoulos : A max(n, m) algorithm for determining the graph H from its line graph G. Information Processing Letters, 2(4):108–112, 1973. [33] Alexander Schrijver : Combinatorial optimization : polyhedra and effi- ciency, volume 24. Springer, 2003. [34] Paul Seymour : How the proof of the strong perfect graph conjecture was found. Gazette des Mathematiciens, 109:69–83, 2006. [35] Nicolas Trotignon : Decomposing berge graphs and detecting balanced skew partitions. Journal of Combinatorial Theory, Series B, 98(1):173–225, 2008. [36] Nicolas Trotignon : Perfect graphs : a survey. arXiv preprint arXiv :1301.5149, 2013. [37] Nicolas Trotignon et Kristina Vušković : Combinatorial optimization with 2-joins. Journal of Combinatorial Theory, Series B, 102(1):153–185, 2012. 99BIBLIOGRAPHIE [38] Mihalis Yannakakis : Expressing combinatorial optimization problems by linear programs. In Proceedings of the twentieth annual ACM symposium on Theory of computing, pages 223–228. ACM, 1988. 100 Reconnaissance de comportements complexes par traitement en ligne de flux d’ev`enements Ariane Piel To cite this version: Ariane Piel. Reconnaissance de comportements complexes par traitement en ligne de flux d’ev`enements. Computer Science. Universit´e Paris Nord - Paris 13, 2014. French. HAL Id: tel-01093015 https://hal.archives-ouvertes.fr/tel-01093015 Submitted on 9 Dec 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.Université Paris 13 Thèse pour obtenir le grade de Docteur de l’Université Paris 13 Discipline : Informatique présentée et soutenue publiquement par Ariane PIEL le 27 octobre 2014 à l’Office National d’Études et de Recherches Aérospatiales Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements (Online Event Flow Processing for Complex Behaviour Recognition) Jury Présidente : Laure Petrucci Professeur, Université Paris 13 Rapporteurs : Serge Haddad Professeur, École Normale Supérieure de Cachan Audine Subias Maître de conférences, HDR, Institut National des Sciences Appliquées de Toulouse Examinateurs : Philippe Bidaud Professeur, Université Paris 6 – Pierre et Marie Curie Christine Choppy Professeur, Université Paris 13 Romain Kervarc Docteur ingénieur, Onera Invités : Jean Bourrely Docteur ingénieur, Onera Patrice Carle Docteur ingénieur, Onera Directrice de thèse : Christine Choppy Encadrants Onera : Romain Kervarc, avec Jean Bourrely et Patrice Carle Laboratoires : Office National d’Études et de Recherches Aérospatiales Laboratoire d’Informatique de Paris Nord N◦ d’ordre :Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements 2Remerciements Nombreux sont ceux qui ont contribué à l’aboutissement de cette thèse, et je souhaite à présent les remercier très sincèrement. Cette thèse s’est déroulée à l’Onera au sein du Département de Conception et évaluation des Performances des Systèmes (DCPS). Je tiens à remercier Thérèse Donath, directrice du département, de m’avoir accueillie et de m’avoir permis de réaliser ces travaux dans un environnement stimulant au sein de l’Onera. Je souhaite vivement remercier l’Unité de Techniques pour la Conception et la Simulation de systèmes (TCS) dans laquelle j’ai été chaleureusement intégrée. Je remercie Christine Choppy, Professeur à l’Université Paris 13, d’avoir dirigé ma thèse durant ces trois années avec tant d’implication et de disponibilité. Son sens de l’organisation et sa ténacité nous a permis d’entreprendre de nombreux projets. Je garde un excellent souvenir d’un workshop organisé à Singapour où nous avons pu allier les plaisirs de la recherche et ceux des voyages. Je suis très reconnaissante envers Romain Kervarc, ingénieur-chercheur à l’Onera, d’avoir coencadré cette thèse et de m’avoir toujours soutenue tant sur les idées que sur la forme où nous nous retrouvions entre logiciens. Je remercie aussi Romain de m’avoir offert de nombreuses opportunités pour rencontrer des chercheurs à travers le monde, et de m’avoir accordé sa confiance, laissant ainsi libre cours à la poursuite de mes idées. J’exprime toute ma gratitude à Patrice Carle, chef de l’unité TCS, pour m’avoir aidée sur tous les aspects de ce travail, avec des remarques toujours pertinentes. L’expérience et le recul sur le sujet qu’a apportés Patrice allaient de pair avec un enthousiasme débordant, ce qui a su avoir raison de mes doutes et de mon regard parfois trop critique. Sa certitude dans la qualité et l’intérêt de notre projet a été d’un grand soutien. Je tiens à remercier tout particulièrement Jean Bourrely, ancien directeur adjoint du DCPS, pour sa clairvoyance et son sens pratique dans tous les moments de questionnement, et pour son aide incommensurable dans l’implémentation de CRL. Les nombreuses heures de travail en commun m’ont donné l’énergie et la stimulation nécessaires à l’aboutissement de cette thèse et comptent dans les instants qui resteront parmi les meilleurs de ces trois ans. J’exprime toute ma gratitude à Serge Haddad, Professeur à l’École Normale Supérieure de Cachan, et à Audine Subias, Maître de Conférences habilité à l’Institut National des Sciences Appliquées de Toulouse, pour m’avoir honorée d’être les rapporteurs de cette thèse. Leurs remarques ont été précieuses pour l’amélioration de ce travail et ont ouvert quantité de nouvelles perspectives. 3Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements Je souhaite étendre cette gratitude à Laure Petrucci, Professeur à l’Université Paris 13, et à Philippe Bidaud, Professeur à l’Université Paris 6, pour m’avoir suivie durant ces trois années puis avoir accepté de participer au jury de cette thèse. Mes remerciements vont également à Thibault Lang qui m’a généreusement aidée dans le développement des cas d’application traités dans cette thèse, et à Nicolas Huynh pour sa contribution à leur mise en place. J’adresse aussi mes profonds remerciements à Stéphanie Prudhomme pour l’atmosphère chaleureuse qu’elle sait entretenir au sein de l’unité TCS, et pour ses conseils avisés. Je dois beaucoup à mes collègues et à la bonne ambiance qu’ils font régner au sein du département. J’ai eu la chance d’être particulièrement bien entourée ce qui est inestimable dans le travail de longue haleine que représente un doctorat, travail qui peut être emprunt de frustrations et de solitude. Je remercie tous ceux qui passaient de temps en temps dans mon bureau et j’adresse une pensée particulière à Mathieu et son Apple-attitude, Pierre avec son tweed et son bronzage uniques, Rata et sa bonne humeur, Damien et sa décontraction sudiste, Arthur lorsqu’il n’est pas en vacances, Evrard lorsqu’il est réveillé, Sarah avec sa force surhumaine et ses conseils esthé- tiques, Pawit et ses bons plats thaïs, Yohan avec son gâteau au chocolat et son fromage blanc à Saulx-les-Chartreux, Joseph avec le petit compartiment de sa machine à pain et son thé, Dalal et son rire, et tous les autres (même ceux du DTIM). Je souhaite remercier plus particulièrement Antoine notamment pour nos tours de ring et nos échanges autour de bons thés (exempts ou non de grand-mères) qui m’ont permis de surmonter l’étape douloureuse que peut être la rédaction ; Christelle, pour son amitié et son soutien, avec nos nombreuses et longues discussions qui m’ont portée au travers des moments les plus difficiles, aussi bien professionnels que personnels ; et Loïc, qui dès son arrivée en thèse, a su m’offrir une oreille attentive et des conseils éclairés tout en entretenant ma motivation dès qu’elle était trop fragile. Je ne pourrais oublier de remercier également mes amis Lucille, Ambre, Mathieu, Lise, Estelle, Laetitia, Julie, Anaïs, Charlotte, Yelena, Alice et les Glénanais qui m’ont encouragée jusqu’au jour de ma soutenance. Enfin, mais non des moindres, je remercie mes frères, David et Thomas, ainsi que ma mère, Sandra et Coline pour avoir toujours cru en moi et avoir fait preuve d’un encouragement sans faille. 4Table des matières Introduction 9 1 Systèmes de traitement formel d’évènements complexes 13 1.1 Principaux enjeux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.2 Event Calculus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.3 Le langage ETALIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.4 Le langage des chroniques de Dousson et al. . . . . . . . . . . . . . . . . . . . . . . 23 1.5 Le langage des chroniques Onera . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 1.5.1 Une première implémentation : CRS/Onera . . . . . . . . . . . . . . . . . . . 29 1.5.2 Définition d’une sémantique du langage des chroniques . . . . . . . . . . . . 30 1.5.3 Détail de la sémantique ensembliste du langage des chroniques de CRS/Onera 31 1.6 D’autres modes de représentation et de reconnaissance de comportements . . . . . 34 2 Construction d’un cadre théorique pour la reconnaissance de comportements : le langage des chroniques 41 2.1 Définitions générales préalables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 2.1.1 Évènements et leurs attributs . . . . . . . . . . . . . . . . . . . . . . . . . . 44 2.1.2 Opérations sur les attributs . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 2.2 Définition d’une syntaxe étendue du langage des chroniques : ajout de contraintes sur des attributs d’évènement et de constructions temporelles . . . . . . . . . . . . 46 2.3 Définition de la sémantique du langage à travers la notion de reconnaissance de chronique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 2.3.1 Passage à une représentation arborescente des reconnaissances . . . . . . . 53 2.3.2 Formalisation de la notion de reconnaissance de chronique . . . . . . . . . . 55 2.4 Propriétés du langage des chroniques . . . . . . . . . . . . . . . . . . . . . . . . . . 60 2.4.1 Définition d’une relation d’équivalence sur les chroniques . . . . . . . . . . 60 2.4.2 Relations entre ensembles de reconnaissances . . . . . . . . . . . . . . . . . 60 2.4.3 Associativité, commutativité, distributivité . . . . . . . . . . . . . . . . . . 62 2.5 Gestion du temps continu à l’aide d’une fonction Look-ahead . . . . . . . . . . . . 64 2.6 Tableau récapitulatif informel des propriétés du langage des chroniques . . . . . . . 66 2.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 5Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements 3 Un modèle de reconnaissance en réseaux de Petri colorés dit « à un seul jeton » 69 3.1 Définition du formalisme des réseaux de Petri colorés . . . . . . . . . . . . . . . . . 70 3.1.1 Types et expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 3.1.2 Réseaux de Petri colorés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 3.1.3 La fusion de places . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 3.1.4 Arcs inhibiteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 3.2 Construction formelle des réseaux dits « à un seul jeton » . . . . . . . . . . . . . . 77 3.2.1 Types et expressions utilisés dans le modèle . . . . . . . . . . . . . . . . . . 77 3.2.2 Structure générale des réseaux « à un seul jeton » . . . . . . . . . . . . . . 79 3.2.3 Briques de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 3.2.4 Construction par induction . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 3.3 Formalisation et description de l’exécution des réseaux . . . . . . . . . . . . . . . . 89 3.3.1 Reconnaissance d’un évènement simple . . . . . . . . . . . . . . . . . . . . . 89 3.3.2 Reconnaissance d’une séquence . . . . . . . . . . . . . . . . . . . . . . . . . 91 3.3.3 Reconnaissance d’une disjonction . . . . . . . . . . . . . . . . . . . . . . . . 94 3.3.4 Reconnaissance d’une conjonction . . . . . . . . . . . . . . . . . . . . . . . 95 3.3.5 Reconnaissance d’une absence . . . . . . . . . . . . . . . . . . . . . . . . . . 99 3.3.6 Définition formelle de la stratégie de tirage . . . . . . . . . . . . . . . . . . 106 3.4 Démonstration de la correction du modèle « à un seul jeton » . . . . . . . . . . . . 107 3.5 Étude de la taille des réseaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 3.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 4 Un modèle de reconnaissance contrôlé en réseaux de Petri colorés 117 4.1 Construction et fonctionnement des réseaux dits « multi-jetons » . . . . . . . . . . 118 4.1.1 Types et expressions utilisés dans les réseaux multi-jetons . . . . . . . . . . 119 4.1.2 Structure globale des réseaux multi-jetons . . . . . . . . . . . . . . . . . . . 119 4.1.3 Briques de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 4.1.4 Construction par induction . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 4.1.5 Bilan sur le degré de contrôle acquis et stratégie de tirage . . . . . . . . . . 133 4.2 Construction et fonctionnement des réseaux « contrôlés » . . . . . . . . . . . . . . 134 4.2.1 Types et expressions utilisés . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 4.2.2 Structure globale des réseaux . . . . . . . . . . . . . . . . . . . . . . . . . . 137 4.2.3 Briques de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 4.2.4 Un séparateur de jetons générique . . . . . . . . . . . . . . . . . . . . . . . 144 4.2.5 Construction par induction des réseaux contrôlés . . . . . . . . . . . . . . . 146 4.2.6 Graphes d’espace d’états des réseaux contrôlés . . . . . . . . . . . . . . . . 159 4.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 5 Bibliothèque C++ de reconnaissance de comportements et applications à la surveillance de la sécurité d’avions sans pilote 165 5.1 Développement d’une bibliothèque C++ implémentant la reconnaissance de chroniques : Chronicle Recognition Library (CRL) . . . . . . . . . . . . . . . . . . . . . 166 6TABLE DES MATIÈRES 5.2 Surveillance de cohérence au sein d’un UAS en cas de pannes . . . . . . . . . . . . 171 5.2.1 Description de l’architecture du système d’avion sans pilote étudié . . . . . 172 5.2.2 Modélisation du problème . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 5.2.3 Objectifs de la reconnaissance de comportements dans ce cas d’étude . . . . 180 5.2.4 Écriture et formalisation des situations incohérentes à détecter . . . . . . . 181 5.2.5 Utilisation de CRL pour reconnaître les situations incohérentes . . . . . . . 182 5.3 Surveillance du bon respect de procédures de sécurité à suivre par un drone . . . . 185 5.3.1 Cadre du problème . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 5.3.2 Mise en place du système de surveillance : écriture des chroniques critiques à reconnaître . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 5.3.3 Application à des scénarios de simulation avec CRL . . . . . . . . . . . . . . 189 5.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 Conclusion et perspectives 193 Bibliographie 197 A Démonstrations de propriétés du langage des chroniques 207 A.0.1 Associativité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 A.0.2 Commutativité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 A.0.3 Distributivité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 Table des figures et des tableaux 211 Table des symboles 213 Table des acronymes 215 7Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements 8Introduction Dans de nombreux domaines, notamment l’aérospatial, le médical, la finance ou le nucléaire, des quantités très importantes de données sont produites par des systèmes pouvant être réels ou simulés. Pour la manipulation de ces masses énormes de données, des outils d’aide à l’analyse sont nécessaires. Par exemple, l’industrie aérospatiale a recours de façon systématique à la simulation afin de pouvoir étudier l’ensemble des caractéristiques de systèmes de grande envergure ; et il est nécessaire de pouvoir exploiter les données produites. Par ailleurs, au vu de l’automatisation croissante des tâches, les systèmes mis en cause sont de plus en plus critiques et de plus en plus complexes. Ils mettent en interaction hommes, machines et environnements, rendant ainsi les risques humains et matériels de très grande envergure. Ceci rend nécessaire l’emploi de méthodes formelles pour s’assurer de la correction des outils d’aide à l’analyse utilisés. C’est dans ce contexte que s’inscrit la problématique de la reconnaissance formelle de comportements dans le cadre de problèmes complexes, domaine du Complex Event Processing (CEP). Il s’agit de développer des outils fiables d’aide à l’analyse de flux d’évènements permettant de reconnaître des activités pouvant être aussi bien normales qu’anormales dans des flux complexes d’évènements. Parmi les formalisations de description et de reconnaissance de comportements, on peut citer les suivantes : — L’Event Calculus (EC), dont les travaux récents sont menés principalement par A. Artikis, est fondé sur la programmation logique. Des séries de prédicats, qui peuvent être dérivés par apprentissage [ASPP12], définissent les comportements à reconnaître. Initialement, leur reconnaissance ne pouvait se faire en ligne, mais une solution est proposée dans [ASP12]. De plus, un raisonnement probabiliste peut être introduit dans l’EC [SPVA11]. — Les chroniques de Dousson et al. [DLM07] sont des ensembles de formules décrivant des associations d’évènements observables et sont représentées par des graphes de contraintes. — Les chroniques de [Ber09, CCK11] développées à l’Onera sont un langage temporel bien distinct des chroniques de Dousson et permettant la description formelle de comportements puis leur reconnaissance en ligne, et ce avec historisation des évènements (c’est-à-dire avec la possibilité de remonter précisément à la source des reconnaissances). Elles sont définies par induction à partir d’opérateurs exprimant la séquence, la conjonction, la disjonction et l’absence. Un modèle de reconnaissance est proposé en réseaux de Petri colorés, où un 9Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements réseau calculant les ensembles de reconnaissances peut être construit pour chaque chronique que l’on souhaite reconnaître. Les applications de ces travaux sont très variées et touchent notamment à la médecine (monitoring cardiaque par exemple), la gestion d’alarmes, la sécurité informatique, l’évaluation de la satisfaction de passagers dans des transports publics, la surveillance vidéo, etc. Cette thèse consiste à formaliser et étendre un langage de description de comportements, le langage des chroniques de [CCK11], tout en développant des modèles d’implémentation du processus de reconnaissance pour ensuite traiter des applications variées. La démarche consiste dans un premier temps à formaliser et étendre le langage des chroniques défini dans [CCK11] afin de répondre à un besoin d’expressivité plus important. On commence par définir inductivement la syntaxe du langage, puis, afin de lui donner un sens, on explicite la notion de reconnaissance de chronique par une fonction. Cette dernière est définie par induction pour chaque chronique : à un flux d’évènements, elle associe l’ensemble des reconnaissances de la chronique dans ce flux. Dans [CCK11], le formalisme de représentation des reconnaissances de chroniques est ensembliste (chaque reconnaissance est représentée par un ensemble d’évènements), mais cela ne permet pas de distinguer certaines reconnaissances car il n’est pas possible de savoir à partir de ces ensembles à quelle partie de la reconnaissance de la chronique correspond chaque évènement de l’ensemble de reconnaissance. Pour cela, on modifie ce formalisme en remplaçant la représentation ensembliste par une représentation arborescente des reconnaissances qui permet de conserver plus d’informations et de distinguer toutes les reconnaissances possibles. Après cette formalisation, on peut étendre l’expressivité du langage avec de nouvelles constructions temporelles et introduire la manipulation d’attributs d’évènements. Davantage de comportements peuvent ainsi être exprimés et une plus grande variété d’applications peut être traitée. Les constructions temporelles choisies sont de deux types : d’une part les constructions contraignant temporellement une chronique par rapport à une autre, et d’autre part celles contraignant une chronique par rapport à un délai. Ces constructions découlent classiquement des relations d’Allen [All81, All83] qui décrivent tous les agencements possibles d’intervalles et sont compatibles avec un modèle de temps continu adapté à des applications réelles. Parallèlement, la notion d’attribut d’évènement est formalisée de manière à pouvoir manipuler des données liées aux évènements du flux, puis, plus généralement, des données liées aux chroniques elles-mêmes. Ceci permet d’introduire plusieurs niveaux de complexité et de considérer des chroniques comme des évènements intermédiaires. La nécessité de pouvoir manipuler de telles données apparaît dès lors que l’on essaie de traiter des exemples d’application d’une légère complexité. En effet, il est primordial de pouvoir alors exprimer des corrélations entre des évènements différents, par exemple, de pouvoir spécifier qu’ils proviennent d’une même source. Pour cela, des chroniques exprimant des contraintes sur les attributs sont définies. De plus, afin de pouvoir considérer plusieurs niveaux d’évènements-chroniques, une fonction permettant de construire des attributs de chroniques est définie. L’ensemble de ces travaux est présenté dans le Chapitre 2. On obtient alors un langage des chroniques expressif formalisé. Afin de pouvoir utiliser ce formalisme pour effectuer la reconnaissance de comportements, il faut définir des modèles de ce processus qui permettent l’utilisation du langage dans des applications quelconques. On doit pouvoir montrer que l’exécution de ces modèles respecte la sémantique des chroniques. Pour ce faire, on choisit de 10Introduction développer deux modèles d’implémentations différentes. Un premier modèle, dans la continuité de celui présenté dans [CCK11], permet de reconnaître les chroniques initiales de [CCK11] à l’aide de réseaux de Petri colorés, un langage de spécification formelle adapté à la reconnaissance de comportements. Pour compléter la construction formelle du modèle de [CCK11], on définit par induction cinq places centrales formant une structure clé de chaque réseau, permettant ensuite de composer ensemble les réseaux et donc de définir une construction formelle par induction des réseaux de reconnaissance. Le marquage des réseaux de Petri colorés construits pour chaque chronique évolue au fur et à mesure du flux d’évènements. Pour répondre au problème de la vérification de la correction du système vis-à-vis de la sémantique, on démontre que ce marquage correspond exactement à la définition formelle de [PBC+]. Cette formalisation et cette preuve sont présentées dans [CCKP12a] et développés dans le Chapitre 3. Cependant, l’intégralité des transitions des réseaux de Petri de ce modèle sont toujours tirables. Le modèle de reconnaissance est ainsi non déterministe dans le sens où il est nécessaire de tirer à la main les transitions dans un certain ordre, en suivant une stratégie de tirage bien définie, pour obtenir le résultat souhaité, c’est-à-dire l’ensemble de reconnaissance défini par la sémantique. On souhaite donc modifier ce modèle pour obtenir un marquage final unique, tout en conservant la double contrainte d’avoir d’une part une construction modulaire des réseaux calquée sur le langage, et d’autre part de conserver de la concurrence dans l’exécution des réseaux. On procède en deux temps. Tout d’abord, contrairement au premier modèle proposé dont les jetons contiennent des listes d’instances de reconnaissance, on passe à un modèle de réseau multi-jetons : un jeton pour chaque instance de reconnaissance afin d’initier l’implémentation d’un contrôle du réseau via des gardes sur les transitions. Dans un second temps, une structure de contrôle du flux d’évènements est implémentée pour achever la déterminisation du modèle tout en préservant la structure modulaire. La concurrence présente dans l’exécution des réseaux et l’unicité du marquage final après le traitement de chaque évènement du flux sont ensuite mis en avant en développant le graphe des marquages accessibles à l’aide du logiciel CPN Tools. Ces travaux sont exposés dans [CCKP13a] et développés dans le Chapitre 4. Ce premier modèle de reconnaissance de chronique est cependant limité aux chroniques initiales de [CCK11] et ne permet donc pas de reconnaître des constructions temporelles ni de manipuler des attributs. Un second modèle de reconnaissance sur l’ensemble du langage étendu des chroniques est donc développé en C++ permettant ainsi une application directe. Ses algorithmes sont fidèlement calqués sur la sémantique du langage, justifiant ainsi le fonctionnement du modèle, CRL, qui est déposé sous la licence GNU LGPL. La bibliothèque CRL est utilisée dans des applications du domaine des drones. On considère d’abord un système de drone (pilote, drone, Air Traffic Control (ATC)). On souhaite évaluer les procédures d’urgence liées à des pannes de liaisons entre les différents acteurs du systèmes. Ces procédures sont en cours de développement et l’on souhaite mettre en avant les éventuelles failles corrigibles, et proposer un système d’alarmes pour les failles humaines dont il est impossible de s’affranchir. On modélise le système et ses procédures par un diagramme UML implémenté en C++ puis on le soumet à des pannes de liaisons éventuellement multiples pour reconnaître les situations incohérentes pouvant donner lieu à un danger. crl et cette application sont présentées dans [CCKP12b] et [CCKP13b], et développés dans le Chapitre 5. 11Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements On réalise également une seconde application dans le domaine des drones. On considère un drone partant de l’aéroport d’Ajaccio pour une mission d’observation d’un feu en dehors de l’espace aérien contrôlé. Il doit passer successivement dans des zones de l’espace aérien contrôlé puis en sortir, et à chacune de ces actions sont associées des procédures de sécurité (points de passage, clearances, . . . ). L’objectif est de proposer un moyen de surveillance du drone assurant le respect des procédures. Pour ce faire, on écrit plusieurs niveaux de chroniques, où interviennent des constructions temporelles et des contraintes sur des attributs d’évènements complexes. On utilise crl pour reconnaître ces chroniques dans des flux d’évènements tests comprenant un fi- chier de positions du drone produit par le battlelab blade de l’Onera [CBP10] ainsi qu’un fichier d’évènements élémentaires (clearances, changement de fréquence radio, . . . ). 12Chapitre 1 Systèmes de traitement formel d’évènements complexes Sommaire 2.1 Définitions générales préalables . . . . . . . . . . . . . . . . . . . . . . 43 2.1.1 Évènements et leurs attributs . . . . . . . . . . . . . . . . . . . . . . . . 44 2.1.2 Opérations sur les attributs . . . . . . . . . . . . . . . . . . . . . . . . . 45 2.2 Définition d’une syntaxe étendue du langage des chroniques : ajout de contraintes sur des attributs d’évènement et de constructions temporelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 2.3 Définition de la sémantique du langage à travers la notion de reconnaissance de chronique . . . . . . . . . . . . . . . . . . . . . . . . . 53 2.3.1 Passage à une représentation arborescente des reconnaissances . . . . . 53 2.3.2 Formalisation de la notion de reconnaissance de chronique . . . . . . . . 55 2.4 Propriétés du langage des chroniques . . . . . . . . . . . . . . . . . . 60 2.4.1 Définition d’une relation d’équivalence sur les chroniques . . . . . . . . 60 2.4.2 Relations entre ensembles de reconnaissances . . . . . . . . . . . . . . . 60 2.4.3 Associativité, commutativité, distributivité . . . . . . . . . . . . . . . . 62 2.5 Gestion du temps continu à l’aide d’une fonction Look-ahead . . . . 64 2.6 Tableau récapitulatif informel des propriétés du langage des chroniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 2.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 On va s’intéresser dans ce chapitre à exposer les principales méthodes de traitement formel d’évènements complexes – Complex Event Processing (CEP) et plus généralement de l’Information Flow Processing (IFP) 1 . Ces systèmes se présentent en deux parties principales : il y a 1. La distinction entre CEP et IFP est réalisée dans [CM12], le CEP est présenté comme étant une partie de l’IFP qui contient également d’autres domaines comme celui des bases de données actives. 13Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements d’une part le moyen employé pour la description formelle des comportements à reconnaître, et d’autre part le processus de reconnaissance de ces comportements dans un flux d’évènements. Pour une introduction globale au domaine du traitement d’évènements complexes, nous renvoyons aux livres [Luc02, EN10]. D’autre part, [LSA+11] présente un glossaire des termes employés dans le domaine. Nous allons commencer par dégager dans la Section 1.1 les principales problématiques de l’IFP. Dans les sections suivantes, nous présentons ensuite successivement quatre méthodes de reconnaissance d’évènements complexes qui sont représentatives de notre problématique : l’Event Calculus (EC) dans la Section 1.2, le langage ETALIS dans la Section 1.3, le langage des chroniques de Dousson et al. dans la Section 1.4, et le langage des chroniques Onera dans la Section 1.5. Dans une dernière section (1.6), nous présentons succinctement une sélection d’autres méthodes autour de l’IFP et donnons un aperçu des domaines d’application. 1.1 Principaux enjeux On s’attache dans cette section à mettre en avant les principaux enjeux permettant de distinguer les différentes approches formelles de l’IFP. Expressivité Il est nécessaire que le langage utilisé pour la description des comportements à reconnaître soit suffisamment expressif pour exprimer toutes les nuances désirées selon l’application envisagée. Cependant, il est clair qu’une grande expressivité ira inévitablement de pair avec une plus grande complexité du processus de reconnaissance. Il s’agit donc de trouver l’équilibre adéquat. La section 3.8 de [CM12] présente les principaux opérateurs et constructions que l’on rencontre dans la littérature. On retrouve notamment la conjonction, la disjonction, la séquence, la négation ou l’absence, l’itération, l’expression de contraintes temporelles, la manipulation de paramètres. . . La notion de négation ou d’absence est particulièrement épineuse : il est nécessaire de délimiter l’intervalle de temps précis sur lequel porte une négation ou une absence pour pouvoir déterminer si une telle construction est reconnue. Par ailleurs, la question d’avoir une syntaxe ouverte ou fermée se pose. Il s’agit d’autoriser, ou non, la possibilité d’écrire des formules n’ayant pas de sens. Praticité d’écriture & lisibilité Dans le contexte du dialogue avec des experts pour la réalisation d’une application, la praticité d’écriture du langage est importante. On s’intéresse à la concision et à la lisibilité du langage qui faciliteront la discussion avec les spécialistes du domaine et leur utilisation du système de reconnaissance. Il s’agit là encore de trouver un équilibre entre lisibilité et expressivité : une lisibilité excessive peut conduire à une simplifi- cation extrême du langage et donc à une expressivité réduite. Efficacité L’efficacité du processus de reconnaissance est cruciale. En effet, l’analyse des données se veut souvent être réalisée en ligne. Ceci implique la nécessité d’un temps de calcul réduit permettant de traiter les évènements du flux suffisamment rapidement par rapport à leur fréquence d’arrivée. Naturellement, la rapidité du processus est directement liée à la promptitude de la réponse au problème étudié qui peut être capitale par exemple s’il s’agit de produire une alarme lorsqu’une situation critique se produit. 14CHAPITRE 1. SYSTÈMES DE TRAITEMENT FORMEL D’ÉVÈNEMENTS COMPLEXES Multiplicité On peut s’intéresser à établir toutes les reconnaissances d’un comportement donné, et non uniquement l’information que le comportement a eu lieu au moins une fois. La multiplicité des reconnaissances est nécessaire dans la perspective de recherche de comportements dangereux où il peut être essentiel de savoir qu’un comportement s’est produit plusieurs fois. Par exemple, dans certains domaines d’application comme la supervision de réseaux de télécommunications [Dou02], certaines pannes ne sont identifiables qu’à travers la multiplicité d’un comportement donné qui n’est en revanche pas significatif individuellement. En revanche, la multiplicité peut aller à l’encontre de l’efficacité du processus qui doit reconnaître toutes les occurrences et n’a donc pas le droit à l’oubli de reconnaissances intermédiaires. Pour pouvoir s’adapter à toutes les situations, on peut définir différents degrés d’exhaustivité des reconnaissances. Par exemple, [CM12] pose les contextes suivants qui établissent différentes gestions de la multiplicité des reconnaissances : — dans le contexte « récent », seule l’occurrence la plus récente d’un événement qui débute une reconnaissance est considéré (ainsi, pour il y a toujours un évènement initiateur unique) ; — dans le contexte « chronique », les plus anciennes occurrences sont utilisées en premier, et sont supprimées dès leur utilisation (ainsi, les évènements initiateur et terminal sont uniques) ; — dans le contexte « continu », chaque évènement initiateur est considéré ; — dans le contexte « cumulatif », les occurrences d’évènements sont accumulées, puis supprimées à chaque reconnaissance (ainsi, un évènement ne peut pas participer à plusieurs reconnaissances). Historisation Il s’agit de pouvoir spécifier, pour chaque reconnaissance d’un comportement, quels sont les évènements du flux qui ont mené à cette reconnaissance. L’historisation permet alors de distinguer les différentes reconnaissances et donc d’y réagir plus finement. Il s’agit d’une forme de traçabilité qui apporte également la possibilité d’un retour d’expérience sur les causes du comportement détecté. Traitement des évènements Plusieurs caractéristiques peuvent être requises par le système sur le flux d’évènements à traiter. Un flux unique totalement et strictement ordonné et dont les évènements arrivent dans l’ordre sans retard constitue un flux idéal, et l’algorithme de reconnaissance associé en sera a priori simplifié. Cependant les domaines d’applications peuvent exiger d’avoir la possibilité de considérer notamment : — un ordre uniquement partiel entre les évènements à analyser ; — des sources distribuées d’évènements – il faut alors définir correctement l’ordre entre les évènements provenant de deux flux différents ; — un ordre non strict entre les évènements pour prendre en compte l’arrivée simultanée d’évènements ; — des évènements arrivant en retard ou étant corrigés a posteriori – il s’agit alors de pouvoir malgré tout les traiter correctement. La gestion d’événements révisés est utile par exemple dans les cas d’application où un événement a été envoyé puis reçu, mais ensuite révisé suite à l’échec d’une transaction. 15Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements Centralisation ou distribution Le flux d’évènements à analyser peut provenir d’une source centralisée ou distribuée. Dans le cas d’un système distribué se pose la question de l’ordonnancement des évènements provenant des différentes parties du système. Par exemple, l’hypothèse d’une horloge synchronisée peut être prise. Modèle de temps Le modèle de temps adopté est en général linéaire. Il peut être discret, avec une granularité adaptable, ou bien continu. Dans certains systèmes comme les Systèmes de Gestion de Flux de Données – Data Stream Management Systems (DSMSs), aucun modèle de temps particulier n’est utilisé et seul l’ordre entre les évènements est considéré mais cela a alors une incidence sur l’expressivité du langage de description de comportements utilisé. Actions Il peut être possible de déclencher des actions à différents instants dans le processus de reconnaissance. Parmi les actions, on peut considérer entre autres la production d’un évènement associé à la reconnaissance d’un comportement et son intégration au flux. Se pose alors la question de l’ordre de traitement de ces nouveaux évènements par rapport aux autres évènements du flux. On peut également imaginer des actions d’une complexité plus importante : par exemple, ajouter dynamiquement un nouveau comportement à reconnaître. Méthodes d’écriture L’écriture, dans le langage formel utilisé, des comportements à reconnaître présente une double difficulté qui dépend de l’expressivité et de la lisibilité du langage. D’une part, il faut exactement identifier toutes les situations à reconnaître pour répondre au problème étudié. D’autre part, il faut correctement transcrire ces comportements dans le langage utilisé. Des méthodes plus ou moins automatisées et principalement fondées sur des statistiques peuvent être proposées aux experts chargés d’écrire les comportements à reconnaître. Gestion d’incertitudes Lors de l’analyse d’activités réelles, de nombreuses indéterminations apparaissent naturellement : incertitudes sur les comportements à reconnaître, incertitudes sur la date d’occurrence ou même sur l’occurrence elle-même d’évènements. . . Des mécanismes de gestion d’incertitudes peuvent donc être établis au niveau du langage de description et/ou au niveau de l’algorithme de reconnaissance, selon les indéterminations considérées. 1.2 Event Calculus Le calcul d’évènements, ou EC, est une formalisation permettant la représentation et le raisonnement sur des évènements et des actions et pouvant s’exécuter sous la forme d’un programme logique. Il s’intéresse à établir la valeur de propositions logiques dans le temps. L’EC est introduit par Kowalski et Sergot dans [KS86] et tire son nom du calcul de situation (Situation Calculus) dont il se distingue par le fait qu’il traite d’évènements locaux plutôt que d’états globaux. Le but est de s’affranchir du problème du cadre dans un souci d’efficacité. L’EC se veut constituer une analyse formelle des concepts mis en jeu, à savoir les évènements et les actions. Il peut être exprimé à partir de clauses de Horn 2 auxquelles est ajoutée la négation par l’échec 3 , 2. On rappelle qu’une clause de Horn est une formule du calcul propositionnel de la forme (p1 ∧ . . . ∧ pn) ⇒ q où n ∈ N, p1, . . . , pn sont des littéraux positifs et q est un littéral quelconque. 3. La négation par l’échec se fonde sur le principe que la base de connaissances est complète et que donc, si tous 16CHAPITRE 1. SYSTÈMES DE TRAITEMENT FORMEL D’ÉVÈNEMENTS COMPLEXES se plaçant ainsi dans le cadre de la programmation logique. Les principes initiaux majeurs de l’EC sont les suivants : — les évènements peuvent être traités dans un ordre quelconque non nécessairement lié à leur ordre d’occurrence ce qui fait que le passé et le futur sont considérés symétriquement ; — en particulier, des évènements peuvent être concurrents et ne sont pas forcément considérés comme ponctuels ; — les mises à jour sont toujours additives dans le sens où elles ne peuvent pas retirer d’informations passées ; — ce n’est pas tant la date des évènements qui est importante que leur ordre relatif. Il existe de nombreux dialectes de l’EC fondés sur des axiomatiques proches et permettant de traiter diverses spécificités telles que la gestion d’actions différées ou de changements continus entre états. De telles axiomatiques sont recensées dans [MS99] et on peut également citer [PKB07, PB08]. Nous nous intéressons plus particulièrement à l’EC élaboré par Artikis et al. pour la reconnaissance de comportements. Ce dialecte, implémenté en programmation logique, est dédié à la reconnaissance de comportements complexes de haut niveau à partir d’évènements de bas niveau. Les comportements composites à reconnaître sont définis à l’aide de prédicats présentés Tableau 1.1 et permettant l’expression de contraintes temporelles sur un modèle de temps linéaire. Ces prédicats sont définis par des axiomes dont certains pouvant être indépendants du domaine d’application. Ce formalisme est expressif. Il permet d’exprimer des contraintes complexes aussi bien temporelles qu’atemporelles et de décrire des situations dans lesquelles un certain comportement ne doit pas avoir lieu dans un certain laps de temps [AP09]. Cette dernière caractéristique est liée au mécanisme de l’absence dans le formalisme des chroniques. Selon les demandes de l’utilisateur, un comportement de haut niveau à reconnaître peut être défini comme un évènement ponctuel simple ou complexe à l’aide du prédicat happensAt ou comme un fluent – i.e. une propriété non ponctuelle pouvant prendre différentes valeurs dans le temps – à l’aide de initially, initiatedAt, holdsFor. . . Pour les activités non ponctuelles, il s’agit de calculer les intervalles maximaux durant lesquels un fluent possède une certaine valeur. Pour ce faire, tous les instants de début d’intervalle puis chaque instant de fin correspondant sont évalués. En effet, intuitivement, un principe d’inertie (exprimant qu’une valeur n’a pas changé tant qu’elle n’a pas été modifiée) est respecté dans le sens où l’on considère qu’un fluent vérifie une certaine valeur si celle-ci a été fixée par un évènement et que, depuis, aucun autre évènement ne l’a modifiée. La question de l’écriture des comportements à reconnaître est étudiée dans [ASP10b, AEFF12]. En effet, l’écriture par des experts des activités à reconnaître est fastidieuse et fortement susceptible de donner lieu à des erreurs, donc il est intéressant de développer un procédé automatique pour engendrer des définitions à partir de données temporelles. Une telle méthode d’apprentissage fondée sur une combinaison d’abductions et d’inductions est utilisée dans [ASP10b, AEFF12] pour inférer les comportements à reconnaître. Une problématique majeure de la reconnaissance de comportements est la possibilité ou non d’exécuter le processus de reconnaissance en temps réel. L’algorithme de base de ce dialecte d’EC fonctionne avec une méthode d’interrogation du système : le raisonnement ne se fait pas au fur les moyens pour montrer une propriété échouent, c’est que sa négation est vérifiée (hypothèse du monde clos). 17Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements Tableau 1.1 – Principaux prédicats de l’EC Prédicat Correspondance intuitive happensAt(E, T) Occurrence de l’évènement E à l’instant T. initially(F = V ) Le fluent F vaut V à l’instant 0. holdsAt(F = V, T) Le fluent F vaut V à l’instant T. holdsFor(F = V, I) I est la liste des intervalles maximaux où F vaut V . initiatedAt(F = V, T) À l’instant T, un intervalle de temps où F vaut V débute. terminatedAt(F = V, T) À l’instant T, un intervalle de temps où F vaut V s’achève. union_all(L, I) I est la liste des intervalles maximaux correspondant à l’union des ensembles d’intervalles de la liste L. intersect_all(L, I) I est la liste des intervalles maximaux correspondant à l’intersection mutuelle des ensembles d’intervalles de la liste L. relative_complement _all(I 0 , L, I) I est la liste des intervalles maximaux correspondant à la différence ensembliste entre la liste d’intervalles I 0 et chaque ensemble d’intervalles de la liste L. et à mesure mais à la demande de reconnaissance d’une activité de haut niveau [APPS10]. Pour réaliser une analyse en ligne, il est nécessaire de constamment interroger le programme ; et sans système de mémoire-cache, il faut à chaque fois recommencer les calculs à zéro. De plus, l’un des principes de base de l’EC, à savoir le fait que la reconnaissance de comportements ne doit pas être affectée par l’ordre dans lequel arrivent les évènements à analyser, ne contribue pas à diminuer la complexité de calcul. Dans [CM96], Chittaro et al. présentent une version de l’EC dénommée Cached Event Calculus (CEC) et dont l’implémentation inclut la gestion de mémoire-cache, réduisant ainsi significativement la complexité du processus. Cependant, comme le CEC n’a pas de système d’oubli ni de péremption et qu’il accepte des évènements datés plus tôt que d’autres évènements ayant déjà été traités, les temps de reconnaissance augmentent au fur et à mesure de l’arrivée des évènements de bas niveau à traiter et, après un certain temps, peuvent finir par ne plus respecter les temps de 18CHAPITRE 1. SYSTÈMES DE TRAITEMENT FORMEL D’ÉVÈNEMENTS COMPLEXES calcul minimaux nécessaires pour une reconnaissance en ligne correcte. Pour résoudre ces problèmes, Artikis et al. proposent dans [ASP12] une implémentation efficace de leur processus de reconnaissance, nommée Event Calculus for Run-Time reasoning (RTEC) 4 et réalisée sous YAProlog 5 . Le programme fonctionne toujours par interrogations successives du système, et comme pour le CEC, un dispositif de mémoire-cache est mis en place pour stocker les intervalles maximaux calculés par les prédicats holdsFor pour chaque fluent F. Ceci permet de n’avoir pas à recalculer ces intervalles à chaque itération. La problématique du calcul vient ensuite du fait que des évènements peuvent ou bien arriver en retard, ou bien être corrigés a posteriori. L’algorithme est élaboré de façon à pouvoir traiter correctement ce genre de situation. Deux paramètres du programme sont à fixer : — d’une part, le pas Qi+1 − Qi entre deux interrogations Qi et Qi+1 du système ; — d’autre part, la taille WM (Working Memory) de la fenêtre des évènements à considérer. À chaque itération Qi les évènements datés dans l’intervalle ]Qi − WM, Qi ] sont analysés. Ainsi, dans le choix des paramètres, le signe de la différence WM − (Qi+1 − Qi) est significatif : — si WM < Qi+1 − Qi , alors les évènements de la fenêtre ]Qi , Qi+1 − WM] ne seront jamais analysés, et si un évènement arrive en retard ou est corrigé, il ne sera pas considéré ; — si WM = Qi+1 − Qi , alors exactement tous les évènements arrivés à temps seront analysés ; — si WM > Qi+1 − Qi , alors le système peut traiter des évènements arrivant ou bien avec un certain délai ou bien corrigés dans un certain délai. L’algorithme fonctionne alors comme suit. Les parties des intervalles maximaux calculés auparavant et s’intersectant avec la fenêtre ]Qi−WM, Qi ] sont tronqués. Ensuite, les évènements de la fenêtre ]Qi−WM, Qi ] sont analysés pour recalculer des intervalles maximaux sur cette fenêtre, éventuellement certains identiques à ceux ayant été tronqués. Enfin, les morceaux sont « recollés » afin de recréer des intervalles maximaux globaux. L’algorithme plus détaillé de RTEC est présenté dans [ASP12], avec une analyse des performances du système sur des données réelles et sur des données synthétisées. Dans [AMPP12, PAMP12], une architecture de système pour la reconnaissance de comportements, Event Processing for Intelligent Ressource Management (EP-IRM), est proposée. Elle peut être dotée de nombreux composants pouvant facilement être ajoutés ou supprimés. Certaines applications sont indépendantes du domaine et peuvent être utilisées quelle que soit l’étude, comme par exemple l’affichage de cartes MAP. Le système est également composé d’un moteur détectant les évènements de bas niveau qui sont ensuite envoyés au moteur de reconnaissance de comportements complexes. Par ailleurs, plusieurs approches probabilistes de l’EC sont développées. Tout d’abord, Artikis et al. étendent dans [SPVA11] le formalisme de l’EC au raisonnement probabiliste à l’aide de Réseaux Logiques de Markov [DL09] qui combinent l’expressivité de la logique du premier ordre avec la sémantique formelle probabiliste des réseaux de Markov. D’autre part, dans [SAFP14], Artikis et al. proposent une adaptation de l’EC au cadre de la programmation logique probabiliste en utilisant ProbLog [KDDR+11]. Ceci permet de répondre au problème de détections incorrectes des 4. RTEC est disponible en open-source sur le web : http://users.iit.demokritos.gr/~a.artikis/ RTEC-3examples.zip. 5. http://www.dcc.fc.up.pt/~vsc/Yap/ 19Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements évènements de bas niveau en travaillant sur un flux d’évènements où chaque évènement est doté d’un indice de confiance. En revanche, la reconnaissance en ligne n’est pas encore réalisable avec ce formalisme, et il ne permet pas de traiter le cas des définitions imprécises des comportements à reconnaitre. Une autre approche pour la gestion d’incertitude est présentée dans [AWG+13]. Elle est orthogonale à celle de [SAFP14] dans le sens où elles peuvent être combinées. Le principe consiste à utiliser la variété des sources d’évènements pour déterminer leur véracité. Un système d’« auto-adaptation » est implémenté en utilisant le processus de reconnaissance de comportements lui-même. En effet, des définitions de comportements complexes sont écrites pour identifier les domaines d’incertitude et y réagir : lorsque l’incertitude est significative, le système peut ignorer les évènements d’un certain laps de temps ou bien, momentanément, ne pas considérer certaines sources d’évènements. [AWS+14] répond à la même problématique en ayant en plus recours à du crowdsourcing pour trancher lorsque les désaccords entre les sources sont significatifs. 1.3 Le langage ETALIS Le langage de description de comportements Event-driven Transaction Logic Inference System (ETALIS) 6 [ARFS12, Ani11] est un langage de CEP muni d’une syntaxe et d’une sémantique formelles permettant simultanément de raisonner sur des connaissances temporelles (concernant des évènements) et sur des connaissances stables ou en évolution (règles, faits, ontologies, données encyclopédiques. . . ), et ce à l’aide d’un système réalisant l’analyse de comportements en ligne. ETALIS est un langage de programmation logique. Sa syntaxe est définie par des règles dont les principales constructions sont présentées dans le Tableau 1.2. Le modèle de temps adopté est linéaire et dense mais dénombrable (l’ensemble des rationnels Q) ; les évènements de base du flux à analyser peuvent être aussi bien des évènements instantanés que des évènements ayant une durée, ils sont datés par des intervalles de temps [T1, T2] où éventuellement T1 = T2. Le langage présente une expressivité forte : — l’ensemble des 13 relations d’Allen peut être décrit, — des contraintes peuvent être exprimées sur des propriétés d’évènements, — une notion d’absence est développée, mais limitée au cadre de la séquence, — une distinction précise est faite entre la conjonction en série et celle en parallèle, — il est possible de réaliser des définitions récursives de comportements ce qui permet, par exemple, d’accumuler à l’aide d’une fonction une valeur sur une suite d’évènements. Une première sémantique déclarative formelle est fournie [AFR+10, ARFS12] ; les interprétations de motifs (patterns) d’évènements (i.e. des comportements à reconnaître) est définie par induction à la manière de la théorie des modèles. Il s’agit d’ensembles de reconnaissances où une reconnaissance est représentée par un couple hq1, q2i, avec q1, q2 ∈ Q, délimitant l’intervalle de temps nécessaire et suffisant à la reconnaissance. Les informations relatives aux évènements ayant donné lieu à la reconnaissance ne sont pas conservées, il n’y a donc pas de possibilité d’historisation. Le système de reconnaissance ETALIS est implémenté en Prolog. Pour ce faire, une seconde sémantique, opérationnelle, est définie à l’aide de règles de programmation logique. Les compor- 6. ETALIS est disponible en open-source sur le web : http://code.google.com/p/etalis/. 20CHAPITRE 1. SYSTÈMES DE TRAITEMENT FORMEL D’ÉVÈNEMENTS COMPLEXES Tableau 1.2 – Principales constructions du langage ETALIS [AFR+10] Constructions Correspondance intuitive p where t Le comportement p est reconnu et le terme t prend la valeur vraie. q Pour tout q ∈ Q, correspond à l’instant absolu q. (p).q Le comportement p est reconnu et dure exactement q, avec q ∈ Q. p1 seq p2 Le comportement p1 est suivi, strictement (dans le temps), du comportement p2. p1 and p2 Les comportement p1 et p2 sont reconnus, sans aucune contrainte temporelle. p1 par p2 Les comportement p1 et p2 sont reconnus en parallèle, i.e. ils se chevauchent dans le temps. p1 or p2 L’un des deux comportements est reconnu. p1 equals p2 Les deux comportements sont reconnus sur exactement le même intervalle de temps. p1 meets p2 Le dernier instant de reconnaissance de p1 est exactement le premier instant de reconnaissance de p2. p1 during p2 Le comportement p1 est reconnu pendant le comportement p2. p1 starts p2 L’intervalle de reconnaissance de p1 est un segment initial de l’intervalle de reconnaissance de p2. p1 finishes p2 L’intervalle de reconnaissance de p1 est un segment final de l’intervalle de reconnaissance de p2. not(p1).[p2, p3] Les comportements p2 et p3 sont reconnus dans cet ordre, sans occurrence de p1 strictement entre les deux dans le temps. 21Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements tements complexes recherchés sont décomposés en des évènements intermédiaires appelés buts (goals). ETALIS compile les comportements complexes pour fournir un ensemble de règles permettant l’Event-Driven Backward Chaining (EDBC) – chaînage arrière piloté par les données. C’est le chaînage arrière piloté par les données qui rend possible un processus de reconnaissance en ligne. Deux types de règles résultent de la compilation [AFSS09] : — D’une part, des règles créant les buts à reconnaître pour avancer dans la reconnaissance du comportement complexe. Les buts créés représentent l’occurrence d’un évènement et l’attente d’un autre évènement pour reconnaître un évènement (complexe). Elles sont de la forme goal(b [−,−] , a[T1,T2] , ie[−,−] 1 ) qui exprime qu’à la reconnaissance d’un évènement (éventuellement complexe) a sur l’intervalle [T1, T2], le système est en attente d’un évènement b pour reconnaître l’évènement ie1. — D’autre part, des règles créant des évènements intermédiaires ou des patterns d’évènements. Celles-ci vérifient dans la base de données si un certain but existe déjà, et, s’il existe effectivement, déclenchent l’évènement qui a été reconnu par le but. Par exemple, si le but goal(b [T3,T4] , a[T1,T2] , ie[−,−] 1 ) figure dans la base de données, alors l’évènement ie[T1,T4] 1 est déclenché et ensuite propagé s’il s’agit d’un évènement intermédiaire ou utilisé pour déclencher une action s’il s’agit de l’un des comportements complexes recherchés. Les règles de ce type permettent également de supprimer de la base de données les buts qui ne sont plus nécessaires car obsolètes. En d’autres termes, chaque but correspond à un sous-comportement restreint à deux évènements (dans les exemples précédents il s’agit de a et b), et les buts sont chaînés pour aboutir à la reconnaissance du comportement complexe recherché. La structure de la décomposition d’un comportement complexe en buts correspond donc essentiellement à celle d’un arbre binaire. Il n’y a pas de démonstration d’équivalence entre les deux sémantiques. Les auteurs s’assurent en revanche que la sémantique opérationnelle est belle et bien déclarative [ARFS12], et que donc le comportement du système est à la fois prédictible et reproductible. En ce qui concerne la multiplicité des reconnaissances, ETALIS permet l’implémentation des politiques de consommation d’évènements suivantes (introduites dans la Section 1.1) : contexte récent, contexte chronique et contexte libre (i.e. sans restriction, multiplicité totale). Mais il faut noter que l’on perd l’aspect déclaratif si l’on utilise une autre politique que celle dite libre, et l’ordre d’évaluation des règles devient alors significatif. Une analyse des performances d’ETALIS est présentée dans [AFR+10] sur un cas d’étude analysant l’efficacité d’un système de livraison de fleurs (Fast Flower Delivery Use Case [EN10]). Par ailleurs, la nature logique de l’approche rend possible un raisonnement déductif en temps réel sur une base de connaissances fixe de données structurées de l’environnement. Celle-ci permet de définir une sémantique de l’information utilisable par un système. ETALIS permet la gestion d’évènements arrivant en retard dans un flux ordonné par rapport au temps [FAR11] grâce à l’ajout de deux types de règles : — Des règles de type goal_out(a [−,−] , b[T3,T4] , ie[−,−] 1 ) exprimant que l’évènement b a été reçu et que a est en attente, mais avant b, pour réaliser la reconnaissance de ie1. — Des règles de la forme if goal_out(. . . ) and T2 < T3, alors si un évènement a arrive avec effectivement T2 < T3, l’événement ie[T1,T4] 1 est déclenché. 22CHAPITRE 1. SYSTÈMES DE TRAITEMENT FORMEL D’ÉVÈNEMENTS COMPLEXES Un tel algorithme a la particularité de ne pas gérer les évènements en retard au détriment de l’ef- ficacité du processus de reconnaissance pour les évènements arrivant à temps : la reconnaissance est toujours quasi-immédiate si tous les évènements composant un comportement complexe sont arrivés à temps. En revanche, le système nécessite la mise en place d’une procédure de libération de mémoire assurant la suppression des règles de type goal_out après un certain laps de temps. [FAR11] précise que, pour « des raisons pratiques » (sûrement une question d’efficacité de reconnaissance par surcharge de règles), cette fonctionnalité n’a pas été implémentée pour la politique de consommation d’évènements dite libre ; on perd donc la multiplicité des reconnaissances. Pour mener les cas de retard d’un évènements interdit dans une absence, la gestion d’arrivée d’évènements en retard doit être couplée avec la gestion d’évènements révisés, présentée brièvement ci-dessous. En effet, si l’on considère une négation not(c).[a, b] et qu’une reconnaissance est invalidée par l’arrivée d’un c en retard, il faut alors réviser la reconnaissance erronée. ETALIS permet également la gestion d’évènements révisés [ARFS11]. Comme évoqué en 1.1, ceci peut s’avérer utile dans le cas d’un échec d’une procédure amenant ainsi la correction d’un évènement déjà envoyé. Des sortes de marqueurs sont ajoutés, permettant d’indiquer quels évè- nements (éventuellement intermédiaires) ont donné lieu à quels buts. Ceci permet d’identifier les instances d’évènements à réviser et de propager correctement la révision dans tout le système. Des règles rev sont ajoutées pour supprimer les buts (goal(. . . )) insérés mais révisés. 1.4 Le langage des chroniques de Dousson et al. Le langage des chroniques a été développé pour décrire formellement une signature évènementielle et offre un cadre pour le traitement d’évènements complexes – CEP. Le terme de « chronique » est un terme générique englobant plusieurs systèmes formels voués à la description et à la reconnaissance de comportements. On décrit, dans cette sous-section, un premier formalisme de la notion de chronique. Un langage des chroniques a été introduit notamment dans [Gha96] et développé principalement par Dousson et al. [DGG93, Dou02, DLM07]. Il permet de décrire formellement des agencements d’évènements. Une chronique est en quelque sorte un ordre partiel d’évènements observables dans un certain contexte. Le langage est doté d’un processus de reconnaissance en ligne efficace permettant d’analyser un flux d’évènements datés mais dont les évènements n’arrivent pas nécessairement dans leur ordre d’occurrence pour y reconnaître des situations et éventuellement déclencher des actions ou produire un évènement à une date définie relativement aux dates des évènements ayant donné lieu à la reconnaissance. On manipule des prédicats exprimant le fait qu’un attribut fixé ait une certaine valeur sur un intervalle de temps donné. Un motif d’évènement correspond à un changement de valeur d’un attribut, et un évènement est alors une instance datée ponctuelle de motif d’évènement [DGG93]. Le modèle de temps adopté est linéaire et discret, la résolution adoptée étant supposée suffisante pour le contexte étudié. Une distinction est opérée entre la date d’occurrence et la date de réception des évènements observés. Une borne sur le délai de réception d’un évènement est fournie par l’utilisateur pour chaque motif d’évènement. Ceci permet, comme dans l’Event Calculus, de considérer des 23Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements évènements arrivant avec un retard borné. Par ailleurs, de même que pour l’Event Calculus, on suppose la complétude du flux d’évènement, c’est-à-dire qu’entre deux activations d’une propriété il y a nécessairement un évènement de désactivation de cette propriété (par rapport aux dates d’occurrences). Un modèle de chronique à reconnaître [DGG93] est composé : — d’un ensemble de motifs d’évènements exprimés par les prédicats du Tableau 1.3, — de contraintes temporelles sur ces motifs d’évènements reliées par une conjonction implicite (pour des raisons de complexité, il n’est pas possible d’exprimer de disjonction), — d’un contexte général permettant d’exprimer des contraintes contextuelles, — d’éventuelles actions à réaliser à la reconnaissance (notamment la production d’évènements). Dans [Dou02], le prédicat occurs présenté dans le Tableau 1.3 est ajouté pour répondre à la question du comptage d’évènements qui est un problème typique du domaine de la gestion d’alarmes où certaines pannes ne sont identifiables que par comptage. occurs permet de faciliter l’écriture de ce genre de chroniques et d’optimiser le processus de reconnaissance associé. En effet, sinon, il faut écrire beaucoup de chroniques pour exprimer la même situation, or la complexité du processus de reconnaissance dépend du nombre de chroniques à étudier. Tableau 1.3 – Principaux prédicats et notations des chroniques [Dou96, Dou02] Prédicat Correspondance intuitive hold(P : v,(t1, t2)) Le nom d’attribut P a la valeur v sur l’intervalle [t1, t2], sans implication sur l’instant où il a pris cette valeur. event(P : (v1, v2), t) L’attribut P passe de la valeur v1 à la valeur v2 à l’instant t. noevent(P,(t, t0 )) P ne change pas de valeur sur l’intervalle [t, t0 [. occurs(n1, n2, a,(t1, t2)) L’évènement a a lieu exactement N fois, avec n1 ≤ N ≤ n2, dans l’intervalle de temps [t1, t2[. (permet l’unification du langage) Notation ? « ? » permet d’indiquer une valeur quelconque. Le processus de reconnaissance de chroniques est illustré par la Figure 1.4. Dans un premier temps, il s’agit de compiler hors ligne les modèles de chroniques fournis par l’utilisateur afin de transcrire les contraintes temporelles de chaque modèle en un graphe de contraintes minimal (la relation d’ordre pour laquelle ce graphe est minimal est définie dans [DD99]). Ce pré-traitement permet notamment de mettre en avant les incohérences éventuelles des modèles de chroniques (l’algorithme employé pour la compilation étant incrémental, il désigne même un sous-ensemble de contraintes incohérentes). L’algorithme de reconnaissance est fondé sur ces graphes. Le système doit ensuite être initialisé avec les états initiaux du monde considéré, datés à −∞, puis la reconnaissance de chroniques peut être lancée. Des instances partielles, i.e. des reconnaissances encore non complètes, sont manipulées. Elles sont chacune en attente d’évènements manquants pour compléter la reconnaissance. Ces évènements manquants doivent arriver dans un certain intervalle de temps, la fenêtre d’admissibilité, calculée grâce au graphe de contraintes et 24CHAPITRE 1. SYSTÈMES DE TRAITEMENT FORMEL D’ÉVÈNEMENTS COMPLEXES Figure 1.4 – Le système de reconnaissance de chroniques [Dou94] ce afin de vérifier les contraintes temporelles spécifiées dans la chronique correspondante. Si un évènement attendu n’arrive pas avant la fin de sa fenêtre d’admissibilité ou si l’une des conditions générales de la chronique n’est plus vérifiée, l’instance partielle est alors abandonnée et supprimée. Au contraire, lorsqu’une instance partielle s’apprête à être complétée par un évènement, elle est d’abord dupliquée afin de garantir la reconnaissance de toutes les situations : l’instance partielle complétée peut ainsi être de nouveau complétée par une autre occurrence d’un évènement similaire. La duplication d’instances est la principale source de complexité du processus de reconnaissance. Afin d’optimiser la manipulation des instances (partielles) de reconnaissance, celles-ci sont stockées dans un arbre. Au fur et à mesure de l’arrivée des évènements pertinents les contraintes temporelles exprimées par les fenêtres d’admissibilité du graphe de contraintes sont mises à jour et les modifications sont propagées dans le reste du graphe. Ceci permet de traiter directement l’arrivée de tout évènement. Une propagation des modifications est également effectuée lorsque le temps avance : le système calcule le prochain instant critique et une mise à jour est effectuée lorsque le temps courant atteint cet instant [DGG93]. Le processus de reconnaissance est donc exhaustif, et le plus efficace pour diminuer sa complexité est de limiter la durée de validité d’une instance de chronique [AD01]. Le système peut également prendre en entrée, en plus des évènements datés, l’assertion AssertNoMore(e, I) où e est un évènement et I est un intervalle étendu (i.e. une union disjointe d’intervalles) [DLM07]. Cette assertion indique qu’aucun évènement e n’aura lieu dans I. À la réception d’un tel message, les fenêtres d’admissibilité sont mises à jour en leur appliquant la différence ensembliste avec I et les modifications sont propagées dans le graphe. Cette assertion est introduite dans le but d’être utilisée à des fins d’optimisation, ce qui sera détaillé par la suite. 25Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements Pour le prédicat occurs(n1, n2, a,(t1, t2)), un compteur est associé au prédicat et tant que l’instant t2 n’est pas atteint, il n’est pas possible de déterminer si le prédicat est vérifié. À l’arrivée d’un évènement a à la date d, les instants t1 et t2 n’ont pas encore nécessairement de valeur mais sont contraints à des intervalles [I − t1 , I+ t1 ] et [I − t2 , I+ t2 ]. On étudie alors tous les cas d’ordonnancement de d, I − t1 , I + t1 , I − t2 , et I + t2 . Ce système de reconnaissance, appelé Chronicle Recognition System (CRS), est construit autour du gestionnaire de graphes temporels IxTeT [GL94]. Il permet ainsi de reconnaître en ligne et efficacement toutes les occurrences des chroniques spécifiées. De plus, ce système est prédictif. En effet, l’utilisateur peut savoir à tout moment quand une reconnaissance est attendue et quels évènements sont requis pour compléter chaque instance partielle. Une définition plus formelle de la notion de chronique et du système de reconnaissance associé est présentée dans [DG94]. Figure 1.5 – Architecture du système de reconnaissance avec focalisation temporelle [DLM07] Dans [DLM07], Dousson et al. proposent une technique d’optimisation de CRS. Il s’agit tout d’abord d’appliquer une méthode de focalisation temporelle qui permet d’optimiser les situations où certains évènements sont beaucoup plus fréquents que d’autres. Afin de limiter le nombre d’instances partielles créées suite à un évènement fréquent en attente d’un évènement rare, on définit un niveau pour chaque type d’évènement. Ceci permet d’établir un critère d’intégration au système de reconnaissance : un évènement de niveau n + 1 n’est pas intégré à une instance donnée 26CHAPITRE 1. SYSTÈMES DE TRAITEMENT FORMEL D’ÉVÈNEMENTS COMPLEXES tant que tous les évènements des niveaux 1 à n n’ont pas été intégrés. Lorsqu’un évènement est intégré à une instance, il est envoyé à toutes les autres instances même si la règle n’est pas vérifiée. Ceci permet de s’assurer que tout évènement est traité exactement une fois. La structure du système est présentée Figure 1.5. Un composant de gestion des évènements est introduit. Les évènements qui ne sont pas immédiatement intégrés sont envoyés au collectionneur qui les stocke dans des flux tampons (il y a un buffer par type d’évènement). Chaque flux tampon manipule trois fenêtres temporelles : la fenêtre assert no more où plus aucun évènement ne sera reçu, la fenêtre de filtrage qui contient les occurrences d’évènements ne convenant à aucune instance, et la fenêtre de focalisation qui contient les dates d’occurrence auxquelles un évènement est attendu et devrait donc être immédiatement envoyé à CRS. Ce mécanisme fournit exactement les mêmes reconnaissances qu’avec la version initiale de CRS et a uniquement un effet sur les performances. Celles-ci ne sont pas améliorées systématiquement ; cela dépend de la fréquence des évènements et de leur position dans le graphe de contraintes. La seconde partie de la méthode est d’introduire un principe de chroniques hiérarchiques qui permet de définir séparément des sous-chroniques et de les intégrer dans une chronique plus complexe. La méthode de focalisation temporelle peut ensuite être appliquée aux sous-chroniques elles-mêmes. Dans le formalisme des chroniques, le processus d’écriture des situations à reconnaître reste une difficulté centrale. Plusieurs réponses y sont apportées. Un système, Frequency Analyser for Chronicle Extraction (FACE) [DD99], permettant à un expert d’analyser des fichiers de logs d’alarmes pour identifier les phénomènes récurrents et ainsi définir des chroniques est développé. A partir d’une grandeur fqmin fournie par l’utilisateur, on définit une notion de chronique fréquente. On construit ensuite par induction sur la taille des chroniques les chroniques fréquentes dans le flux d’évènements étudié, puis les contraintes temporelles associées à l’aide d’un algorithme favorisant certaines contraintes. Partir d’une base de chroniques déjà posée par des experts permet de diminuer considérablement le temps de calcul. Il s’agit ensuite de filtrer l’ensemble des chroniques fréquentes obtenues : pour déterminer s’il est intéressant de chercher à reconnaître à la fois une chronique et l’une de ses sous-chroniques, une notion de dépendance est définie. [FCD04] propose une méthode de pré-traitement des fichiers pour en extraire des sous-fichiers appropriés et ainsi alléger la saturation de mémoire provoquée par FACE. Une seconde méthode d’aide à l’écriture de chroniques est fondée sur une simulation du système qui permet de faire apparaître des configurations caractéristiques d’évènements. Ceci permet de ré- colter les séquences d’évènements datés associés et ainsi de former, pour chaque configuration, une liste de séquences positives (i.e. liées à la configuration) et une liste de séquences négatives. Une mé- thode de programmation logique inductive (ILP) [MDR94] peut ensuite être appliquée sur ces deux listes pour en dériver des chroniques [CD00]. Les techniques d’Inductive Logic Programming (ILP) peuvent être également utilisées directement sur des flux d’évènements, combinées avec l’Inductive Constraint Logic (ICL) [DRVL95] qui permet l’expression de contraintes sur le type de chroniques à apprendre, assurant ainsi une caractérisation précise des situations à reconnaître [QCCW01]. Dans [DG94], Dousson et al. commencent à introduire une notion d’incertitude autour de la datation des évènements du flux en utilisant des ensemble flous pour exprimer les ensembles de dates possibles pour un évènement. 27Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements Subias et al. partent du formalisme des chroniques de Dousson et al. et l’adaptent aux systèmes distribués. En effet, il est difficile de développer des mécanismes capables de dater des évènements dans un système distribué, et, de plus, des délais de transmission sont à prendre en compte. Il est donc intéressant de subdiviser l’architecture de contrôle en sous-sites de contrôle pouvant se chevaucher par endroits pour faciliter le diagnostic. Pour ce faire, Subias et al. définissent dans [BSC02] une notion de sous-chronique comme extension de la notion de chronique. Une sous-chronique est composée d’un ensemble d’évènements E et d’un ensemble de contraintes sur les évènements de E mais aussi sur des évènements extérieurs. Une chronique peut alors se décomposer en souschroniques, avec une sous-chronique correspondant à chaque sous-site de contrôle et telles que l’ensemble des évènements E de chaque sous-chronique doit être inclus dans l’ensemble des évènements observables par le sous-site de contrôle concerné. Alors, une chronique est reconnue lorsque toutes les sous-chroniques sont reconnues. Une sous-chronique possède deux types de contraintes : les contraintes locales portant uniquement sur les évènements de E, et les contraintes globales faisant intervenir des évènements extérieurs. Le cadre des réseaux de Petri p- et t-temporels (réseaux de Petri classiques auxquels deux types de mécanismes, détaillés ci-dessous, ont été ajoutés [Kha97, BD91]) est choisi pour modéliser le processus de reconnaissance distribué car, d’après [BSC05] : — il offre une visualisation claire de l’état courant de la reconnaissance de la chronique/souschronique ; — il est approprié pour simuler l’évolution d’une chronique à l’aide d’outils, ou pour revenir en arrière ; — les occurrences multiples sont facilement représentables ; — ils pourraient permettre de démontrer la correction du modèle de contraintes temporelles. Les mécanismes t-temporels (contraintes temporelles de type intervalle sur les transitions) sont utilisés pour exprimer les contraintes de fenêtres d’admissibilité de la chronique (contraintes de type 1 ≤ minp(d(e1) − d(ep)) ≤ 3). Les mécanismes p-temporels (contraintes temporelles sur la durée de séjour admissible d’un jeton dans une place) permettent quant à eux l’expression des contraintes de type intervalle (i.e. du type 1 ≤ d(e1) − d(e2) ≤ 3). Chaque type de contrainte est transposé en une brique de réseau de Petri temporel. Un réseau correspondant à une chronique est réalisé en fusionnant les briques de réseau correspondant à chaque contrainte de la chronique. Dans le réseau obtenu, il n’y a pas de situation de conflit structurel (i.e. il n’y a pas de place précédant plusieurs transitions) car les vérifications de contraintes doivent être réalisées de manière indépendantes. Chaque jeton du réseau obtenu correspond à une instance (partielle ou non) de la chronique. Les occurrences d’évènements sont représentées par des transitions, et les jetons (instances partielles) sont dupliqués et complétés au tirage de ces transitions pour obtenir in fine toutes les reconnaissances complètes [BSC02]. Dans le cas des sous-chroniques, la problématique principale est la vérification des contraintes globales. Pour vérifier celles-ci, la sous-chronique doit recevoir les informations adaptées de l’extérieur. Les transitions et places correspondantes sont donc également ajoutées au réseau. La problématique du délai de transmission entre les sous-sites de contrôle est étudiée dans [BSC04]. Le centre de la question est que ce délai induit une incertitude sur la vérification des contraintes. La méthode employée est la suivante. Le délai ∆ de transmission est supposé borné. Les contraintes glo- 28CHAPITRE 1. SYSTÈMES DE TRAITEMENT FORMEL D’ÉVÈNEMENTS COMPLEXES bales du système sont réécrites sous forme d’expressions dépendant de mesures locales (comme les contraintes locales) et des bornes du délai ∆. La possibilité, entre 0 et 1, de vérifier la contrainte est ensuite quantifiée : on obtient des ensembles flous de valeurs permettant de vérifier les contraintes. Dans les cas où la valeur n’est ni 0 ni 1 mais dans ]0,1[, [BSC04] propose un système de coopération qui peut être lancé pour que la contrainte soit vérifiée par un autre sous-site de contrôle. Pour mieux manipuler ces délais temporels, [BSC05] passe aux réseaux de Petri p- et t-temporels flous. 1.5 Le langage des chroniques Onera 1.5.1 Une première implémentation : CRS/Onera Ornato et Carle présentent une première notion de chronique dans [OC94a, OC94b]. Il s’agit de répondre à la problématique de l’automatisation de la reconnaissance des intentions d’un agent considéré comme une boîte noire. Contrairement au domaine de la reconnaissance de plans, les auteurs ne font pas d’hypothèse forte sur le sujet observé : il n’est pas nécessaire d’avoir une base de connaissance exhaustive décrivant les différents plans pouvant être suivis par le sujet, et, en particulier, le sujet n’est pas supposé effectuer les plans sans erreur ni n’en suivre qu’un seul à la fois. De plus, les auteurs souhaitent pouvoir exprimer des notions telles que la suspension ou l’abandon d’un but. Dans cette optique, un système de reconnaissance de comportements, Chronicle Recognition System/Onera (CRS/Onera) est implémenté. Il est fondé sur un langage temporel, le langage des chroniques, qui permet la description de comportements complexes à l’aide d’évènements typés pouvant être dotés de propriétés et des opérateurs suivants : — la séquence, le non-ordre (conjonction) et la disjonction, — la non-occurrence d’une chronique sur un intervalle de temps délimité par une seconde chronique (notons qu’il n’y a pas de garantie d’ordre de traitement entre les deux chroniques à l’arrivée d’un évènement et qu’il y a donc des formes indéterminées), — une notion de délai, — un opérateur de coupure, le cut, permettant de réduire la combinatoire due à l’exhaustivité recherchée dans le processus de reconnaissance : le cut désigne uniquement la première reconnaissance dans le flux, — opérateur d’indexation d’évènements permettant d’identifier à une unique occurrence plusieurs évènements de même nom dans une chronique (les opérateurs de non occurrence et de disjonction sont cependant opaques pour l’indexation). Le système de reconnaissance CRS/Onera se voit imposer trois contraintes principales : 1. les reconnaissances doivent être exhaustives (i.e. toutes les reconnaissances possibles doivent être détectées) ; 2. il doit y avoir une historisation des évènements (i.e. il faut être capable de dire quels évènements sont à l’origine de chaque reconnaissance) ; 3. le processus de reconnaissance doit être suffisamment efficace pour être réalisé en ligne. Pour répondre à ces contraintes, l’algorithme de CRS/Onera a été conçu sur la base d’automates dupliqués représentant les instances éventuellement partielles des chroniques à reconnaître. Chaque 29Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements reconnaissance partielle de chronique est dupliquée et mise en attente des évènements attendus pour la complétion de la reconnaissance. Cette duplication permet à la fois d’assurer l’exhaustivité du processus et également de gérer les constructions de non-occurrence. CRS/Onera propose également la gestion d’actions et de tests à la reconnaissance. Il est possible d’exprimer des conditions à vérifier sur la reconnaissance : si l’expression précisée est fausse, alors l’instance de chronique est éliminée. D’autre part, un évènement peut être envoyé dans le flux à la suite d’une reconnaissance. Celui-ci peut ensuite être utilisé dans une autre chronique et ainsi définir des chroniques de niveau supérieur. Il y a également la possibilité d’exécuter du code C++ avant que le système n’engendre d’évènement, ou après. CRS/Onera se compose d’un compilateur engendrant du code C++. L’utilisateur décrit des fichiers de systèmes de chroniques et le compilateur CRS/Onera engendre le code C++ correspondant avec un facteur d’expansion d’environ 50. Celui-ci est ensuite compilé. Chaque chronique est alors une classe dont les méthodes gèrent les évolutions et les duplications d’instances. 1.5.2 Définition d’une sémantique du langage des chroniques Dans la lignée de CRS/Onera s’inscrivent les travaux de Bertrand et al. [Ber09] dont l’objectif est d’établir une sémantique du langage des chroniques de CRS/Onera. Une sémantique ensembliste est donnée dans [Ber09] puis aboutie dans [CCK11] pour quatre opérateurs de base (la séquence, la conjonction, la disjonction et l’absence). Un ensemble de reconnaissances est défini pour chaque chronique, explicitant formellement ce que cela signifie de reconnaître dans un flux d’évènements donné le comportement décrit par une chronique. Cette sémantique est détaillée dans la sous-section suivante (1.5.3). Une seconde sémantique opérationnelle est également développée. Une comparaison de différentes modélisations possibles du processus de reconnaissance de chroniques est réalisée dans [BCC07]. Les auteurs se concentrent sur deux principales difficultés : la multiplicité des reconnaissances et l’historisation des évènements donnant lieu aux reconnaissances. Les automates standards à états finis permettent la reconnaissance d’expressions régulières, mais une chronique, de par la multiplicité de la notion de reconnaissance, n’est pas une expression régulière. Un automate standard ne peut donc reconnaître qu’une seule fois une chronique ce qui ne répond pas à la problématique initiale. Si l’on introduit des automates à compteurs, les occurrences multiples d’une chronique peuvent alors être comptabilisées mais il n’est alors pas possible de distinguer les différentes reconnaissances comme il n’y a pas d’historisation des évènements. En revanche, les automates dupliqués, en créant une instance d’automate pour chaque reconnaissance partielle d’une chronique, permettent de reconnaître toutes les occurrences d’une chronique tout en préservant l’information de quels évènements ont donné lieu à chaque reconnaissance. Cependant, cette méthode ne permet pas d’avoir une approche modulaire dans le processus d’écriture de chroniques. Dans cette optique, les réseaux de Petri colorés qui permettent multiplicité et historisation, sont choisis car non seulement ils sont dotés de moyens de construction modulaire, mais encore des outils d’édition, de simulation et d’analyse sont disponibles pour mettre en avant les propriétés des réseaux. Une sémantique en réseaux de Petri colorés est donc établie [BCC08, BCC09, Ber09, CCK11]. 30CHAPITRE 1. SYSTÈMES DE TRAITEMENT FORMEL D’ÉVÈNEMENTS COMPLEXES Un réseau est construit pour chaque chronique. Les transition du réseau sont tirées en fonction du flot d’évènement et les reconnaissances (éventuellement partielles) sont produites et/ou complétées en conséquence. La construction de ces réseaux se fait par induction sur la structure du langage à partir de briques de base, mais celle-ci n’est pas formalisée entièrement. 1.5.3 Détail de la sémantique ensembliste du langage des chroniques de CRS/Onera Dans cette sous-section, nous détaillons précisément la sémantique du langage des chroniques telle que présentée dans [CCK11]. Nous présentons le langage des chroniques puis formalisons le concept d’évènement pour pouvoir ensuite définir la notion de reconnaissance d’une chronique. Une chronique décrit un certain agencement d’évènements. Le langage est construit à partir d’évènements simples et des opérateurs suivants, où C1 et C2 sont des chroniques : — la disjonction C1 | | C2 qui correspond à l’occurrence d’au moins l’une des deux chroniques C1 et C2. — la conjonction C1&C2 qui correspond à l’occurrence des deux chroniques C1 et C2, dans un ordre quelconque, éventuellement entrelacées. C1 C2 — la séquence C1 C2 qui correspond à l’occurrence de la chronique C1 suivie de l’occurrence de la chronique C2. C1 C2 — l’absence (C1) − [C2] qui correspond à l’occurrence de la chronique C1 sans occurrence de la chronique C2 pendant l’occurrence de C1. Formellement, on définit le langage des chroniques à partir d’un ensemble donné de noms d’évènement comme suit : Définition 1 (langage des chroniques). Soit N un ensemble dénombrable dont les éléments sont des noms d’évènement simple. On définit l’ensemble des chroniques sur N, noté X(N), par le schéma inductif suivant : A ∈ N A ∈ X(N) (nom) C1 ∈ X(N) C2 ∈ X(N) C1 | | C2 ∈ X(N) (disjonction) C1 ∈ X(N) C2 ∈ X(N) C1&C2 ∈ X(N) (conjonction) C1 ∈ X(N) C2 ∈ X(N) C1 C2 ∈ X(N) (séquence) C1 ∈ X(N) C2 ∈ X(N) (C1) − [C2] ∈ X(N) (absence) Considérons deux exemples illustrant informellement l’expressivité du langage. Exemple 1. Soit A, B et D des noms d’évènement simple de N. La chronique (A&B) | | D correspond à deux évènements de noms respectifs A et B dans un ordre quelconque ou à un évènement de nom D. 31Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements Exemple 2. Soit A, B, D et E des noms d’évènement simple de N. La chronique (A B)−[D | | E] correspond à un évènement de nom A suivi d’un évènement de nom B, sans occurrence ni d’un évènement de nom D ni d’un évènement de nom E entre les occurrences de A et B. Évènements Nous souhaitons définir la notion de reconnaissance de chronique afin de munir le langage d’une sémantique. Pour ce faire, il est nécessaire de formaliser au préalable le concept d’évènement et les notions qui lui sont associées. Définition 2 (évènements). Soit N un ensemble dénombrable de noms d’évènement. Soit E un ensemble dénombrable dont les éléments sont des évènements. Une fonction de nommage est une fonction totale ν : E 7→ N. Elle associe un nom à chaque évènement. Le triplet (E, N, ν) est alors appelé espace nommé d’évènements. Remarque 1. On distingue ainsi les noms des évènements (qui servent à construire les chroniques) que l’on notera par convention en majuscules (A, B, C, D, . . .) et les évènements (qui constituent les données observées à analyser) que l’on notera en minuscule (a, b, c, d, . . .). Pour faciliter la compréhension, on posera en général ν(a) = A, ν(b) = B, . . . Définition 3 (flux d’évènements). Soit (E, N, ν) un espace nommé d’évènements et soit I ⊆ N. Un flux d’évènements est une suite ϕ = (ui)i∈I d’éléments de E. On notera son domaine ◦ ϕ. On a ainsi I = ◦ ϕ. Il s’agit de l’ensemble des indices d’occurrence des évènements. Par convention, si rien n’est spécifié, on commencera la numérotation à 1 (car cela correspondra à celle engendrée par le modèle de reconnaissance en réseaux de Petri colorés qui sera présenté Chap. 3 et 4). Si ϕ = (ui)i∈I est un flux d’évènements et si J ⊆ I, on définit la restriction de ϕ à J, notée ϕ|J , par ϕ|J = (ui)i∈J . Pour un flux ϕ = (ui)i∈I , on définit les fonctions Eϕ(i) = ui et Nϕ(i) = ν(Eϕ(i)) = ν(ui). Eϕ(i) correspond au i e évènement du flux ϕ. Nϕ(i) correspond au nom du i e évènement du flux ϕ. Reconnaissance d’une chronique Il s’agit maintenant de s’appuyer sur les définitions précédentes pour doter le langage d’une sémantique ensembliste définissant la notion de reconnaissance de comportements. Une reconnaissance d’une chronique est représentée par l’ensemble exact des indices des évènements ayant donné lieu à la reconnaissance. Il est donc nécessaire de commencer par définir les notions suivantes liées aux indices. Définition 4 (instances). Soit (E, N, ν) un espace nommé d’évènements sur lequel est défini un flux d’évènements ϕ = (ui)i∈I . 32CHAPITRE 1. SYSTÈMES DE TRAITEMENT FORMEL D’ÉVÈNEMENTS COMPLEXES Une instance de ϕ est un sous-ensemble fini de I. Un support de ϕ est un sous-intervalle fini de I. (Ainsi, tout support de ϕ est une instance de ϕ.) Le support d’une instance r de ϕ est l’ensemble [r] = {i ∈ I : min r ≤ i ≤ max r}. On notera ]r] = [r] \ {min r} et [r[= [r] \ {max r}. On dit que deux instances r et r 0 de ϕ sont compatibles, noté r ./ r0 , si max r < min r 0 (c’est- à-dire si r « précède » r 0 ). On définit la relation ternaire « r est la réunion compatible de r1 et r2 » par r = r1 ./ ∪ r2 si, et seulement si, r1 ./ r2 ∧ r = r1 ∪ r2. Remarque 2. ./ est une relation d’ordre strict sur les instances de I. Pour chaque chronique, en fonction du flux ϕ étudié, on définit par induction l’ensemble des reconnaissances associées. Définition 5 (ensembles de reconnaissances). Soit (E, N, ν) un espace nommé d’évènements sur lequel est défini un flux d’évènements ϕ = (ui)i∈I . Soit C ∈ X(N). On définit par induction l’ensemble des reconnaissances de C sur le flux ϕ, noté RC (ϕ) : — si C = A ∈ N, alors RA(ϕ) = {{i} : i ∈ ◦ ϕ ∧ Nϕ(i) = A}. La chronique A est reconnue lorsqu’un évènement de nom A a lieu. — si C = C1 | | C2, alors RC (ϕ) = RC1 (ϕ) ∪ RC2 (ϕ). La chronique C1 | | C2 est reconnue si la chronique C1 est reconnue ou si la chronique C2 est reconnue. — si C = C1&C2, alors RC (ϕ) = {r1 ∪ r2 : r1 ∈ RC1 (ϕ) ∧ r2 ∈ RC2 (ϕ)}. La chronique C1&C2 est reconnue si la chronique C1 est reconnue et si la chronique C2 est également reconnue, sans autre contrainte. C1 C2 — si C = C1 C2, alors RC (ϕ) = {r1 ∪r2 : r1 ∈ RC1 (ϕ)∧r2 ∈ RC2 (ϕ)∧r1 ./ r2}. La chronique C1 C2 est reconnue si la chronique C1 est reconnue, si la chronique C2 est reconnue et si la reconnaissance de C1 précède le début de la reconnaissance de C2. C1 C2 — si C = (C1)−[C2], alors RC (ϕ) = {r1 : r1 ∈ RC1 (ϕ)∧(Pf([r1[)∩RC2 (ϕ) = ∅)} où, pour tout ensemble s, Pf(s) est l’ensemble des parties finies de s. La chronique C = (C1) − [C2] est reconnue si la chronique C1 est reconnue et s’il n’y a pas eu de reconnaissance de la chronique C2 pendant la reconnaissance de la chronique C1. Ainsi, pour une chronique C et un flux ϕ, chaque reconnaissance de C dans ϕ correspond à un ensemble d’indices (les indices des évènements donnant lieu à la reconnaissance), et RC (ϕ) est l’ensemble de tous ces ensembles. Exemple 3. Soit a, b, d et e des évènements de E tels que ν(a) = A, ν(b) = B, ν(d) = D et ν(e) = E. 33Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements Considérons la chronique C = (A&B) | | D et le flux ϕ = (a, e, b, d, a, b) avec ◦ ϕ = J1, 6K. On a alors RC (ϕ) = {{4}, {1, 3}, {1, 6}, {3, 5}, {5, 6}}. aebdab 1 23 456 Exemple 4. Soit a, b, d, e, f et g des évènements de E tels que ν(a) = A, ν(b) = B, ν(d) = D, ν(e) = E, ν(f) = F et ν(g) = G. Considérons la chronique C = (A B) − [F] et le flux ϕ = (d, a, e, a, b, g, a, f, b) avec ◦ ϕ = J1, 9K. On a alors RC (ϕ) = {{2, 5}, {4, 5}}. Notons que {2, 9}, {4, 9} et {7, 9}, bien qu’étant des reconnaissances de A B, ne sont pas des reconnaissances de C car Nϕ(8) = F. Exemple 5. Soit a, b, d et e des évènements de E tels que ν(a) = A, ν(b) = B, ν(d) = D et ν(e) = E. Considérons la chronique C = (A B) − [D E] et le flux ϕ = (a, d, a, e, b) avec ◦ ϕ = J1, 5K. On a alors RC (ϕ) = {{3, 5}}. {1, 5} n’est pas une reconnaissance de C car {2, 4} ∈ RD E(ϕ) et {2, 4} ⊂ J1, 5K. Exemple 6. Soit a, b, d, e, f et g des évènements de E tels que ν(a) = A, ν(b) = B, ν(d) = D, ν(e) = E, ν(f) = F et ν(g) = G. Considérons la chronique C = (A B) − [(D E) − [F G]] et le flux ϕ = (a, d, f, g, e, b) avec ◦ ϕ = J1, 6K. On a alors RC (ϕ) = {{1, 6}} car R(D E)−[F G](ϕ) = {}. Remarque 3. On peut montrer par induction directe sur les chroniques que, pour tout C ∈ X(N), RC ({}) = {}. 1.6 D’autres modes de représentation et de reconnaissance de comportements Dans les quatre sections précédentes, nous avons détaillé différentes approches du traitement d’évènements complexes. Dans cette section, nous présentons plus succinctement une dernière sélection de systèmes de reconnaissance de comportements moins proches de notre problématique. Nous renvoyons à [CM12] pour une collection plus complète de systèmes d’IFP. Dans [CM12], les problématiques et différentes options envisageables pour l’IFP sont détaillées, puis un grand nombre de systèmes sont présentés, répartis en quatre groupes : — le domaine des bases de données actives ; — les systèmes de gestion de flux de données ; — les systèmes de CEP ; — les systèmes disponibles dans le commerce. 34CHAPITRE 1. SYSTÈMES DE TRAITEMENT FORMEL D’ÉVÈNEMENTS COMPLEXES Nous renvoyons également à d’autres surveys pour une vision plus complète [dCRN13, FTR+10, ASPP12]. [FTR+10] présente le CEP conjointement avec le domaine de l’analyse prédictive à travers une selection d’articles, d’outils commerciaux puis d’outils académiques ou en libre accès. [ASPP12] compare les chroniques de Dousson (Section 1.4), l’EC (Section 1.2) et la logique de Markov qui permet la prise en compte d’incertitudes dans le domaine du CEP [BTF07, dSBAR08, HN03, TD08, KDRR06]. Les trois approches sont comparées sur trois axes : la description des comportements à reconnaître, le raisonnement à réaliser pour effectuer la reconnaissance, et les méthodes d’apprentissage existant pour mettre en œuvre l’écriture des comportements. MUSE [KM87] Kumar et Mukerjee établissent un système de reconnaissance incrémental appelé MUSE. Le modèle de temps adopté est linéaire et discret, avec une résolution suffisamment fine. Un évènement est un couple (ϕ, τ ) où ϕ correspond à un nom d’évènement et τ est un ensemble d’instants consécutifs, décrivant ainsi un certain intervalle de temps. Des assertions temporelles peuvent être utilisées : les 13 assertions de Allen ainsi que quatre autres relations permettant d’exprimer des relations entre des évènements encore « incomplets » (i.e. dont l’ensemble d’instants consécutifs où l’évènement est vérifié n’est pas encore complet). Ceci permet d’assurer que, pour chaque couple d’évènements donné, une unique des ces dix-sept assertions est toujours vérifiée. Le processus de reconnaissance peut ainsi être effectué au fur et à mesure, à l’aide d’automates à états finis qui résument les différentes règles. Des conjonctions et disjonctions d’assertions peuvent ensuite être spécifiées. Pour finir, une sémantique temporelle sur les évènements permet de définir l’ensemble d’instants α d’une reconnaissance et ainsi de s’adapter à différents cas : on peut avoir tout simplement α = τ , mais on peut aussi définir α = min(τ ) (sémantique instantanée) ou d’autres sémantiques plus complexes. SAMOS [GD94b, GD94a] Swiss Active Mechanism based Object-oriented database Systems (SAMOS) est un système de gestion de base de données actives qui offre notamment un langage de description de comportements qui permet de spécifier des évènements complexes à intégrer aux règles de gestion. Les évènements considérés sont ponctuels (pour les évè- nements complexes, une algèbre d’évènements permet de définir leur instant d’occurrence) et dotés de paramètres. Des opérateurs – disjonction, conjonction, séquence, n occurrences dans un intervalle donné, absence d’occurrence dans un intervalle donné, première occurrence uniquement sur un intervalle donné – permettent de composer les évènements. Le mot clé same peut être apposé à un évènement complexe pour préciser des contraintes d’égalité sur les paramètres des évènements mis en jeu. Le système est également doté d’un intervalle de suivi des évènements indiquant une fenêtre dans laquelle reconnaître un comportement donné (reconnaître E dans I). Cet intervalle peut aussi bien être délimité explicitement avec des instants absolus qu’implicitement, et il peut être défini pour réapparaître périodiquement. Pour certaines constructions comme l’absence d’un comportement, il est obligatoire de préciser un tel intervalle. [GD94a] propose un modèle de reconnaissance des évènements complexes ainsi définis à l’aide d’un formalisme proche des réseaux de Petri colorés, car celui-ci permet de faire circuler dans le réseau les informations relatives aux paramètres des évènements complexes ou non. La notion de SAMOS Petri nets (S-PN) est introduite. Il s’agit de réseaux de Petri colorés possédant trois types de places, les places en entrée correspon- 35Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements dant aux évènements composant un évènement complexe, les places en sortie correspondant aux évènements complexes, et des places auxiliaires. Les opérateurs sont représentés par des transitions, et le mot clé same par une garde éventuelle sur les transitions. Une contrainte « d’absence de conflit » est imposée, c’est-à-dire qu’un jeton ne peut pas activer deux places simultanément. Seules les constructions relatives à la conjonction et à la reconnaissance de n occurrences sur un intervalle sont présentées. Lorsqu’un évènement complexe fait partie de la composition d’un autre évènement complexe, les réseaux correspondants sont combinés. Inversement, lorsqu’un évènement simple participe à plus d’un événement complexe, le jeton correspondant à l’évènement simple est dupliqué ; ainsi, à l’occurrence d’un évènement, seule une place doit être marquée. Ce modèle de reconnaissance est implémenté au sein de SAMOS. GEM [MSS97, MSS96] Le langage Generalised Event Monitoring (GEM) est un langage déclaratif fondé sur un système de règles et s’attachant à la reconnaissance de comportements dans le cadre de systèmes distribués. La seule hypothèse réalisée est l’existence d’une horloge globale bien synchronisée. Les évènements considérés sont dotés d’attributs, dont par défaut, la classe d’évènement auquel l’évènement appartient, le composant du système dont il est issu et son instant d’occurrence. Des évènements complexes peuvent être construits à l’aide d’opérateurs de conjonction, de délai suivant une reconnaissance, d’absence d’un évènement complexe entre deux autres évènements, de disjonction, et de séquence. Une garde optionnelle peut exprimer des contraintes sur les attributs et sur les instants de début et de fin des reconnaissances, ce qui permet notamment de décrire l’ensemble des relations d’Allen, et un opérateur d’identification permet de se référer à une instance précise d’un évènement dans une règle. Les règles sont construites en quatre parties : — un identifiant unique de la règle ; — une fenêtre de détection déterminant la durée pendant laquelle doit être conservé l’historique des évènements liés à la règle ; — la description de l’évènement complexe à reconnaître ; — les actions à effectuer si l’évènement complexe est détecté (actions de notification explicite de l’évènement – interne ou externe à la règle –, transfert de certains évènements ayant donné lieu à la reconnaissance – dans une visée de filtrage par exemple –, activation ou désactivation de règles. Des commandes de contrôle globales similaires aux actions ci-dessus sont également disponibles. Le processus de détection des comportements est fondé sur une structure arborescente associée à chaque comportement à reconnaître et suivant la structure de l’expression du comportement. Chaque nœud possède un type identifiant l’opérateur dont il s’agit, la garde associée, et l’historique des évènements correspondants. À l’arrivée d’un évènement, celui-ci est inséré à sa place dans l’arbre, sans considération temporelle autre, ce qui permet d’autoriser un retard dans l’arrivée des évènements, dans la limite de la fenêtre temporelle de détection définie. La gestion du retard des évènements se fait donc au sein même de l’étape de détection. Au niveau de chaque nœud, l’historique des évènements concernés est conservé, dans le cadre de la fenêtre de détection, ce qui permet de diminuer les évènements à ordonner. Des pointeurs sont également utilisés pour éviter la duplication d’historiques. [MSS96] décrit l’intégration et l’implémentation de GEM en C++. 36CHAPITRE 1. SYSTÈMES DE TRAITEMENT FORMEL D’ÉVÈNEMENTS COMPLEXES Rete [For82, Ber02, WBG08, WGB08] Rete [For82] est un algorithme permettant de comparer une grande quantité de motifs (patterns) à une grande quantité d’objets. Il s’agit de déterminer l’intégralité des correspondances correctes et l’accent est porté en particulier sur l’efficacité du système. La version originale de Rete ne permet pas de considérations temporelles, et il existe de nombreuses extensions de ce système. [Ber02] introduit dans Rete une sémantique temporelle où tout évènement simple ou complexe est considéré comme ponctuel. Les règles définissant les comportements à reconnaître sont compilées pour obtenir des graphes composés de trois types de nœuds : les nœuds de classe qui filtrent les faits selon les classes, les nœuds de jonction qui combinent les faits, et les nœuds de discrimination qui filtrent les faits selon leurs attributs. Les faits sont alors stockés au niveau de chaque nœud et sont propagés en fonction des règles transcrites. Pour la gestion des contraintes temporelles, une horloge interne discrète est introduite conjointement avec une notion d’évènement qui s’oppose à la notion de fait. Les évènements sont datés et des contraintes temporelles peuvent être spécifiées sur les dates d’occurrence (on rappelle que chaque évènement même complexe est considéré comme ponctuel) avec les prédicats before et after bornant à un intervalle la différence entre les deux dates d’occurrence des évènements. Les contraintes peuvent être combinées avec des opérateurs de disjonction, de conjonction et de négation. L’accent est mis sur l’importance de la notion de changement d’état qui peut être exprimée à l’aide des évènements introduits. L’introduction de contraintes temporelles permet une gestion de la mémoire à l’intérieur même du système : les évènements rendus obsolètes sont oubliés. Une autre extension de Rete est développée dans [WBG08]. Elle s’oppose à [Ber02] dans la considération des évènements qui ne sont plus ponctuels mais dotés d’un instant de début et d’un instant de fin, ce qui est fondamental pour éviter des erreurs de reconnaissance dans le cas de séquences (problématique mise en avant dans [GA02]). Rete est donc étendu avec une sémantique temporelle d’intervalle qui permet l’expression des treize relations d’Allen étendues de deux manières : — possibilité de définir la valeur exacte ou une plage de valeurs sur la durée séparant l’instant de début et l’instant de fin de deux intervalles de temps dans le cas des opérateurs non restrictifs (during, finishes, starts, overlaps, before) ; — définition possible de limites de tolérance au niveau des opérateurs restrictifs (par exemple pour equals). Il faut noter que ces extensions suppriment le caractère exclusif des opérateurs d’Allen mais permettent de s’adapter aux situations réelles que l’on peut souhaiter exprimer. Un système de calcul de la durée de vie des évènements est implémenté, découlant des contraintes temporelles spécifiées. [WGB08] présente une extension de Rete complémentaire à [WBG08] pour la gestion de fenêtres temporelles de validité autour des évènements. Ces fenêtres temporelles rendent obsolètes les évènements dont l’instant de fin sort de la fenêtre – notons qu’un évènement peut donc commencer avant la fenêtre dans laquelle il est considéré. Snoop [CM94, CKAK94], SnoopIB [AC06] Le domaine des bases de données actives se consacre notamment à surveiller la séquence d’évènements affectant la base de donnée depuis l’extérieur. Le système reconnaît des comportements et peut y réagir suivant des règles EventCondition-Action (ECA) spécifiant les comportements à reconnaître et les actions à effectuer 37Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements lors de la détection. Snoop [CM94] est un tel système. Il est construit sur un modèle de temps linéaire discret et permet l’analyse d’évènements primitifs ne pouvant avoir d’occurrences simultanées et composés à la fois : — d’évènements explicites externes fournis au système avec leurs paramètres contenant au moins le type de l’évènement ainsi que sa date ; — d’évènements temporels pouvant être absolus (c’est-à-dire datés) ou relatifs (i.e. placés temporellement par rapport à un autre évènement de Snoop) ; — d’évènements de la base de donnée correspondant aux opérations de manipulation des données. Les évènements composites à reconnaître sont définis à partir de ces évènements primitifs et des opérateurs de disjonction, de séquence, de conjonction, n occurrences parmi . . . , l’opérateur apériodique A(E1, E2, E3) (E2 a lieu entre E1 et E3) et l’opérateur périodique P(E1, [t], E3) (E1 puis E3 dure exactement [t]. Notons qu’il n’y a pas alors d’expression de négation ou d’absence (la difficulté est évoquée dans la Section 5.4 de [CM94]). Les évènements sont tous considérés comme ponctuels et la notion de modificateur d’évènement est introduite pour définir l’instant d’occurrence d’un évènement initialement non ponctuel. Par défaut, il existe deux modificateurs d’évènements, à savoir begin_of et end_of. Le choix de multiplicité des reconnaissances dans le processus de reconnaissance de ces comportements complexes varie selon le contexte adopté parmi le contexte récent, le contexte chronique, le contexte continu et le contexte cumulatif présentés dans la Section 1.1. Le processus de reconnaissance est fondé sur des graphes associés à chaque évènement complexe à reconnaître et obtenus après compilation des expressions de ces évènements. Les arbres suivent la structure des expressions concernées, et, dans le cas de sous-expressions identiques, les parties associées de l’arbre sont amalgamées. Dans [CM94], un algorithme est détaillé pour le contexte récent qui permet l’utilisation d’un buffer de taille fixe au niveau de chaque nœud des arbres (contrairement aux contextes continu et cumulatif qui demandent beaucoup d’espace mémoire). Une notion d’équivalence d’expressions est définie et peut permettre de réécrire une description de comportement sous une autre forme pour optimiser le processus de reconnaissance par exemple en dévoilant des nouvelles sous-expressions communes. [CKAK94] présente la sémantique de Snoop à l’aide de formules logiques du premier ordre. Cependant, comme pour Rete, la considération d’évènements uniquement ponctuels pose problème dans le cas de composition avec une séquence par exemple car il faut pouvoir également comparer les instants d’initiation (et pas uniquement ceux de terminaison) des reconnaissances (problématique mise en avant dans [GA02]). Pour répondre à ce problème, [AC06] propose SnoopIB, une nouvelle sémantique fondée sur des intervalles et dont la définition formelle est en partie présentée dans [GA02]. Deux nouveaux opérateurs sont introduits, à savoir l’opérateur de non occurrence d’un évènement entre l’instant de terminaison d’un évènement et l’instant d’initiation d’un autre évènement, et l’opérateur plus exprimant l’occurrence d’un évènement suivi d’une durée. 38CHAPITRE 1. SYSTÈMES DE TRAITEMENT FORMEL D’ÉVÈNEMENTS COMPLEXES Domaines d’application Au travers de cette sélection de systèmes d’analyse d’évènements complexes, nous avons un aperçu général des différentes approches possibles, dans des domaines variés. La multiplicité de ces systèmes est due au large éventail d’applications possibles de la reconnaissance de comportements. Nous donnons ici un échantillon des différents domaines dans lesquels l’IFP s’est montrée utile : — supervision et l’analyse de situations dangereuses à l’aide d’un drone pour aider les services de police [Hei01, DKH09a, DKH09b, DGK+00], avec des chroniques ; — de nombreux domaines d’application en médecine comme le monitoring cardiaque où des méthodes d’apprentissage sont appliquées[CD00, CCQW03, QCC+10, Doj96, Por05, CD97], avec des chroniques ; — gestion d’alarmes pour la détection d’intrusions informatique [MD03], avec CRS et les chroniques de Dousson et al. ; — diagnostic de web-services [PS09, CGR+07, LGCR+08], avec des chroniques ; — évaluation de la qualité de transports publics (projet PRONTO) [KVNA11, VL10], avec l’EC ; — surveillance vidéo (projet CAVIAR) [SA11, ASP10b, ASP10a, AP09], avec l’EC ; — analyse des médias sociaux [SA11] ; — aide à la prise de décision dans le cadre de combats aériens [CV98], avec des chroniques ; — supervision et gestion de réseaux [SEC+10], avec des chroniques ; — dans l’industrie, supervision d’une turbine à gaz dans une usine pétrochimique [MNG+94] et supervision d’une usine de lait [MCCDB10], avec des chroniques ; — caractérisation d’activité humaine [CMM12], avec des chroniques. Après cette introduction et ce survol des systèmes existants, nous allons développer le système de reconnaissance de comportements des Chroniques/Onera afin de se rapprocher d’un système répondant aux enjeux évoqués dans la Section 1.1. 39Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements 40Chapitre 2 Construction d’un cadre théorique pour la reconnaissance de comportements : le langage des chroniques Sommaire 3.1 Définition du formalisme des réseaux de Petri colorés . . . . . . . . 70 3.1.1 Types et expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 3.1.2 Réseaux de Petri colorés . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 3.1.3 La fusion de places . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 3.1.4 Arcs inhibiteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 3.2 Construction formelle des réseaux dits « à un seul jeton » . . . . . 77 3.2.1 Types et expressions utilisés dans le modèle . . . . . . . . . . . . . . . . 77 3.2.2 Structure générale des réseaux « à un seul jeton » . . . . . . . . . . . . 79 3.2.3 Briques de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 3.2.4 Construction par induction . . . . . . . . . . . . . . . . . . . . . . . . . 82 3.3 Formalisation et description de l’exécution des réseaux . . . . . . . 89 3.3.1 Reconnaissance d’un évènement simple . . . . . . . . . . . . . . . . . . . 89 3.3.2 Reconnaissance d’une séquence . . . . . . . . . . . . . . . . . . . . . . . 91 3.3.3 Reconnaissance d’une disjonction . . . . . . . . . . . . . . . . . . . . . . 94 3.3.4 Reconnaissance d’une conjonction . . . . . . . . . . . . . . . . . . . . . 95 3.3.5 Reconnaissance d’une absence . . . . . . . . . . . . . . . . . . . . . . . . 99 3.3.6 Définition formelle de la stratégie de tirage . . . . . . . . . . . . . . . . 106 3.4 Démonstration de la correction du modèle « à un seul jeton » . . . 107 41Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements 3.5 Étude de la taille des réseaux . . . . . . . . . . . . . . . . . . . . . . . 115 3.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 De nombreuses applications concrètes de la reconnaissance de comportements nécessitent notamment des moyens à la fois de validation et de traçabilité, comme il sera illustré dans le Chapitre 5. Pour cela, il s’agit de fournir un cadre théorique solide pour la reconnaissance de comportements en adoptant une approche purement formelle qui assure une possibilité de vérification et d’analyse du processus de reconnaissance. Dans ce chapitre, nous posons ce cadre théorique en développant un langage de description de comportements, le langage des chroniques introduit dans la Section 1.5 1 , et en formalisant le processus de reconnaissance associé à l’aide d’une sémantique [PBC+] : — nous développons un formalisme autour de la notion d’évènement et de leurs attributs ; — nous étendons largement la syntaxe du langage des chroniques de [CCK11] avec des constructions permettant non seulement l’expression de contraintes temporelles variées mais aussi la spécification de contraintes complexes sur des attributs d’évènement ; — nous introduisons une nouvelle représentation de la notion de reconnaissance de chronique, en passant d’ensembles d’ensembles à des ensembles d’arbres ce qui donne une structure des reconnaissances plus précise et permet ainsi des opérations plus fines sur les reconnaissances ; — nous formalisons le processus de reconnaissance à travers une sémantique du langage que nous avons étendu ; — nous rendons possible l’implémentation du processus de reconnaissance avec un modèle de temps continu grâce à une fonction « Look-ahead » qui fournit le prochain instant où interroger le programme. Dans une première section (2.1), nous posons les définitions générales formalisant le contexte de notre travail d’analyse de comportements complexes, à savoir les notions d’évènement et d’attributs d’évènement. Nous définissons ensuite dans la Section 2.2 la syntaxe étendue du langage des chroniques, permettant notamment la spécification à la fois de contraintes sur des attributs d’évènement et de contraintes temporelles exprimant des exigences sur les délais. La Section 2.3 définit ensuite la sémantique du langage des chroniques, spécifiant ainsi la notion de reconnaissance, et ce après avoir défini une nouvelle représentation arborescente des reconnaissances. Pour nous familiariser avec le langage des chroniques et pour simplifier les démonstrations à venir, nous étudions dans la Section 2.4 les principales propriétés du langage. Dans la visée d’une implémentation du processus de reconnaissance et pour assurer la gestion d’un modèle de temps continu, nous définissons dans la Section 2.5 une fonction dite de « Look-ahead » qui permet par la suite le pilotage des appels au processus de reconnaissance. Le chapitre s’achève avec un tableau récapitulatif informel des propriétés du langage construit dans la Section 2.6. 1. Rappelons que les chroniques étudiées ici se réfèrent à celles introduites par P. Carle dans [CBDO98] qui diffèrent de celles introduites par C. Dousson dans [DGG93]. 42CHAPITRE 2. CONSTRUCTION D’UN CADRE THÉORIQUE POUR LA RECONNAISSANCE DE COMPORTEMENTS : LE LANGAGE DES CHRONIQUES 2.1 Définitions générales préalables L’objectif de cette section est de formaliser la notion d’évènement qui sera manipulée tout au long du chapitre. Nous reprenons le cadre formel posé dans la Section 1.5 [CCK11] en introduisant la notion d’attribut dans la formalisation du concept d’évènement. En effet, nous souhaitons maintenant considérer des évènements munis d’informations (par exemple un identifiant, une qualité, des coordonnées, une vitesse, . . .) sur lesquelles il sera ensuite possible de raisonner en effectuant des comparaisons ou des calculs, et de poser des contraintes. Cette extension primordiale est motivée par de nombreuses applications qui nécessitent de pouvoir raisonner sur des données liées aux évènements du flux que l’on souhaite analyser. Par exemple, supposons que nous surveillons un avion en vol dans le but de s’assurer que la fréquence radio sur laquelle il est réglé correspond bien à celle associée à sa zone de vol. Il faut identifier les évènements relatifs à l’avion au milieu de tous les autres évènements, puis accéder aux données relatives à la fréquence radio et à la position de l’appareil afin d’effectuer des comparaisons entre elles. Dans une autre situation, on peut également être amené à effectuer des calculs, pour évaluer la distance entre deux avions et garantir une distance minimale. Nous allons donc introduire la notion d’attribut d’évènement. Les évènements observés pourront être dotés d’une ou plusieurs caractéristiques, que nous appellerons attributs ou propriétés. Nous cherchons à reconnaître des agencements complexes de tels évènements, agencements décrits par des formules de chroniques que nous définirons par la suite. Dans ces chroniques, nous souhaitons exprimer des contraintes sur ces attributs d’évènement. Pour manipuler librement ces propriétés, nous construisons, à partir des attributs d’évènement, des attributs de reconnaissance de chronique qui auront un rôle similaire, à savoir représenter des informations liées au comportement plus global décrit par la chronique. Ainsi, si l’on souhaite écrire des chroniques pour réaliser de l’évitement de collision à partir de mesures radar, il peut être intéressant d’écrire une première chronique calculant la distance entre deux aéronefs à partir des données brutes du radar. Cette chronique correspond alors à la reconnaissance d’une distance avec comme propriétés les identifiants des deux appareils ainsi que la donnée numérique de la distance calculée. La chronique peut ensuite être utilisée au sein d’autres chroniques pour engendrer des alertes par exemple. La chronique, munie de ses nouveaux attributs, peut alors être considérée comme un évènement complexe de plus haut niveau, souvent non ponctuel, et formant une abstraction des évènements du flux. La chronique obtenue peut alors être utilisée pour former une autre chronique, au même titre qu’un simple évènement, et l’on peut disposer de ses attributs. Pour définir ces notions d’évènement et d’attribut, on considère les trois ensembles suivants : — N un ensemble dénombrable de noms d’évènement, contenant un élément τ utilisé pour nommer les instants temporels purs ; — P un ensemble dénombrable de noms de propriété ou aussi de noms d’attribut contenant un élément particulier ♦ dénommant les propriétés anonymes qui désignent les propriétés qui n’ont pas encore été nommées par l’utilisateur ; — V un ensemble de valeurs de propriété. 43Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements 2.1.1 Évènements et leurs attributs Commençons par définir la notion d’évènement. Contrairement à [CCK11], on souhaite considérer un modèle de temps continu. Les évènements sont donc datés par des réels et nous les identifions maintenant par un couple (nom, date) et non plus par leur indice d’occurrence dans le flux d’évènements étudié. Définition 6 (évènements). Un évènement est une paire (e, t) ∈ N × R composée d’un nom d’évènement et d’une date représentée par un réel. Le nom d’évènement τ ∈ N est réservé pour identifier les évènements temporels purs. Sur l’ensemble des évènements E ⊆ N × R, la projection sur la date est la fonction de datation, notée θ : E → R. Les informations spécifiques associées aux évènements sous la forme d’attributs sont regroupées dans un ensemble d’attributs comme suit : Définition 7 (attributs, ensembles d’attributs). Un attribut, aussi appelé une propriété, est une paire a = (p, v) ∈ P × V composée d’un nom de propriété et d’une valeur. Sur l’ensemble des attributs, la projection sur le nom de propriété est appelée la fonction de référence, notée ρ. Un ensemble d’attributs d’évènement est un ensemble X ⊆ P×V vérifiant la propriété fonctionnelle suivante, qui exprime que X est le graphe d’une fonction, c’est-à-dire que chaque propriété n’a qu’une seule valeur : ∀p∀v((p, v) ∈ X ⇒ ∀w((p, w) ∈ X ⇒ w = v)) (2.1) Par la suite on considère un ensemble Ae(P, V) d’ensembles d’attributs d’évènement sur P × V stable par union d’ensembles d’attributs d’évènement ayant des noms disjoints, c’est-à- dire vérifiant la contrainte suivante : ∀X1 ∈ Ae(P, V) ∀X2 ∈ Ae(P, V) {p ∈ P : ∃v ∈ V(p, v) ∈ X1} ∩ {p ∈ P : ∃v ∈ V(p, v) ∈ X2} = ∅ ⇒ X1 ∪ X2 ∈ Ae(P, V) Cette contrainte de stabilité est nécessaire pour la bonne définition des ensembles de reconnaissance donnée dans la Définition 16 (en effet, Ae(P, V) est le domaine de définition de la fonction D de la Définition 11). Ces évènements, dotés éventuellement de leurs attributs, sont regroupés sous la forme de flux d’évènements que l’on souhaite étudier et analyser avec notre système de reconnaissance de comportements. Définition 8 (flux d’évènements). Un flux d’évènements est défini comme une suite d’évènements ϕ = (ui)i∈N ∈ E N ordonnée par rapport au temps : ∀i∀j(i < j ⇒ θ(ui) < θ(uj )) et dotée d’une fonction d’extraction d’attributs α : {ϕ(i) : i ∈ N} → Ae(P, V) qui fournit l’ensemble d’attributs associé à chaque évènement permettant ainsi l’accès aux valeurs des attributs d’évènement simple dans le flux d’évènements. 44CHAPITRE 2. CONSTRUCTION D’UN CADRE THÉORIQUE POUR LA RECONNAISSANCE DE COMPORTEMENTS : LE LANGAGE DES CHRONIQUES 2.1.2 Opérations sur les attributs Lors du processus de reconnaissance qui analyse le flux d’évènements pour reconnaître les comportements décrits par des chroniques, des évènements sont rassemblés pour former des reconnaissances, comme ce sera formalisé dans la Section 2.3. Durant ce processus de reconnaissance, des attributs doivent être manipulés et peuvent être modifiés. Il peut être nécessaire de réaliser des opérations sur divers attributs de différents évènements. Si ces opérations sont imbriquées dans un comportement plus complexe à reconnaître, les résultats de ces opérations doivent être stockés sous forme d’attributs associés cette fois-ci aux reconnaissances et non plus aux évènements, afin de pouvoir être utilisés a posteriori. Comme évoqué précédemment, les reconnaissances de comportements sont donc elles aussi dotées d’attributs. Définition 9 (attribut de reconnaissance). Un ensemble d’attributs de reconnaissance de comportements est un ensemble X ⊆ P×Ae(P, V) vérifiant la propriété fonctionnelle (2.1). L’ensemble des ensembles d’attributs de reconnaissance est noté Ar(P, V). Comme défini au début de cette section, l’ensemble des noms de propriété contient un nom spécifique, ♦, utilisé comme nom anonyme. Lors de la progression du processus de reconnaissance, des attributs peuvent être calculés et enregistrés sous ce nom, en tant que nouveaux attributs temporaires, avant d’être éventuellement nommés pour être utilisés par la suite, comme il sera détaillé 2.3.2. Les fonctions suivantes permettent l’expression de telles opérations sur les attributs. Définition 10 (transformations d’attributs). Une transformation d’attributs est une fonction définie sur l’ensemble des ensembles d’attributs de reconnaissance Ar(P, V) dans l’ensemble des ensembles d’attributs d’évènement Ae(P, V) qui permet d’engendrer de nouvelles propriétés qui seront anonymes jusqu’à ce qu’elles soient oubliées ou nommées. Une fonction de transformation d’attributs f doit vérifier la contrainte suivante : ∀Xr ∈ Ar(P, V) {p ∈ P : ∃v ∈ V(p, v) ∈ f(Xr)} ∩ {p ∈ P : ∃Xe ∈ Ae(P, V) ∃pr ∈ P((pr, Xe) ∈ Xr ∧ ∃v ∈ V(p, v) ∈ Xe)} = ∅ qui exprime que les nouveaux attributs d’évènement créés par la fonction f ont des noms strictement différents de ceux déjà employés dans l’ensemble d’attributs de reconnaissance qui est en argument de f. Cette obligation participe à assurer l’unicité d’utilisation des noms de propriété dans une chronique. L’ensemble des fonctions de transformation d’attributs sur (P, V) est noté T(P, V). Les transformations d’attributs produisent ainsi de nouvelles données attachées aux reconnaissances. Pour pouvoir les employer par la suite dans des comparaisons ou des calculs, il est nécessaire de les identifier en les nommant. Les nouvelles propriétés qui sont soit issues d’une transformation d’attributs soit directement issues du flux d’évènements (i.e. des attributs d’évènement) ont d’abord un nom anonyme ♦ qui leur est donné par la fonction suivante : Définition 11 (fonction de dénomination anonyme). Une fonction de dénomination anonyme est définie sur l’ensemble des ensembles d’attributs d’évènement. Elle crée un ensemble d’attributs de reconnaissance, réduit à un singleton, en nommant ♦ l’ensemble d’attributs d’évènement 45Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements initial comme défini ci-dessous : D : Ae(P, V) → Ar(P, V) X 7→  {(♦, X)} si X 6= ∅ ∅ si X = ∅ Les propriétés anonymes ♦ peuvent ensuite être nommées par la fonction suivante : Définition 12 (fonction de renommage d’attributs). La fonction de renommage d’attributs est définie sur l’ensemble des ensembles d’attributs de reconnaissance et sur l’ensemble des noms de propriété. Elle nomme l’attribut anonyme ♦ de l’ensemble d’attributs comme défini ci-dessous 2 : R : Ar(P, V) × P → Ar(P, V) (X, p0 ) 7→ {(p 0 , v) : (♦, v) ∈ X} ∪ {(p, v) ∈ X : p 6= ♦} Ces fonctions permettent d’effectuer toutes les opérations nécessaires à la manipulation d’attributs et sont utilisées dans la Section 2.3.2 pour définir le processus de reconnaissance où l’on manipule des attributs qui doivent être nommés et parfois modifiés. 2.2 Définition d’une syntaxe étendue du langage des chroniques : ajout de contraintes sur des attributs d’évènement et de constructions temporelles Nous pouvons maintenant définir une syntaxe du langage des chroniques étendant largement celle de [CCK11]. De même que dans la Section 1.5, le langage des chroniques est construit par induction à partir d’évènements simples et de divers opérateurs permettant de spécifier des contraintes, temporelles ou non, sur les évènements étudiés. Commençons par détailler les diffé- rentes extensions et modifications envisagées. Expression de contraintes sur des attributs d’évènement Le langage des chroniques peut maintenant être étendu pour permettre de prendre en compte et de raisonner sur les attributs définis dans la Section 2.1.1 à l’aide des fonctions définies dans la Section 2.1.2. Toute chronique est dotée d’un prédicat P qui exprime les contraintes souhaitées sur les propriétés manipulées. Avant de pouvoir valider une reconnaissance, il faut que le prédicat P, évalué sur les valeurs des attributs de la reconnaissance, soit vérifié. Pour la manipulation des attributs, une chronique est également dotée d’une fonction de transformation d’attributs (Définition 10) introduisant de nouveaux attributs. 2. Il est immédiat de montrer que les images de la fonction R sont bien des éléments de Ar(P, V). 46CHAPITRE 2. CONSTRUCTION D’UN CADRE THÉORIQUE POUR LA RECONNAISSANCE DE COMPORTEMENTS : LE LANGAGE DES CHRONIQUES Une construction de nommage Nous ajoutons également une construction de nommage afin de pouvoir spécifier un nom pour nommer les nouvelles propriétés anonymes ♦, comme introduit précédemment dans 2.1. Une telle construction est nécessaire. En effet, un nom unique doit être donné aux nouveaux attributs, ils ne peuvent donc pas être nommés d’après le nom de l’évènement ou de la sous-chronique auquel ils correspondent car plusieurs évènements de même nom ou même plusieurs sous-chroniques peuvent prendre part à une description de comportement, mais il est nécessaire de pouvoir les distinguer. Donc, comme plusieurs évènements d’un même nom peuvent prendre part à la construction d’une chronique, il est nécessaire de pouvoir se référer précisément à l’un d’entre eux afin de savoir de quel évènement il faut récupérer dans le flux les valeurs des attributs pour évaluer le prédicat. Le nom spécifié par la construction de nommage remplit ce rôle mais pour cela il faut assurer qu’un nom donné n’est employé qu’une unique fois. Notion de contexte Pour assurer que les noms de propriété ne sont effectivement utilisés qu’une seule fois dans une chronique, il est nécessaire de faire apparaître des contraintes sur ces noms au niveau de la construction du langage. Pour ce faire, nous définissons la notion de contexte d’une chronique : il s’agit de l’ensemble des noms de propriété mis en jeu dans la chronique. Le contexte d’une chronique donnée, construit par induction en parallèle du langage, est intuitivement généralement l’union des contextes des sous-chroniques directes formant la chronique étudiée (c’est-à-dire l’union des noms de propriété des sous-chroniques). Cette gestion du contexte doit être particularisée pour quelques constructions, et nous détaillons les raisons de ces particularités après la définition suivante. Le contexte est également utilisé pour déterminer quels attributs sont disponibles pour l’évaluation du prédicat P et de la fonction de transformation f associés à la chronique. On devra ainsi distinguer deux types de contextes : un contexte d’évaluation pour le prédicat P et la fonction f, et un contexte résultant à transmettre dans l’induction pour la construction des contextes de chroniques plus complexes. Le contexte évolue donc en deux temps : une première fois avant la reconnaissance de la chronique et l’évaluation du prédicat, et une seconde fois après. Nous appelons contexte d’évaluation le contexte correspondant au domaine possible du prédicat et de la fonction, et contexte résultant, le contexte d’évaluation éventuellement modifié, après l’évaluation du pré- dicat, et qui sert à définir le prochain contexte d’évaluation dans l’induction. Des contraintes qui apparaissent dans la construction du langage pour assurer qu’un nom ne peut être utilisé qu’une seule fois portent sur le contexte d’évaluation. Les raisons précises derrière l’existence de ces deux notions de contexte seront développées après la Définition 13. Des opérateurs de contraintes sur les délais Afin de modéliser des contraintes temporelles, dix constructions sont ajoutées par rapport à [CCK11]. Ces constructions découlent de la logique d’intervalles d’Allen [All83] évoquée dans le Chapitre 1. Il s’agit de spécifier des contraintes sur des intervalles de reconnaissance de chroniques, c’est-à-dire, pour une reconnaissance donnée, sur l’intervalle de temps nécessaire et suffisant pour établir cette reconnaissance. Une première partie des opérateurs de contraintes temporelles permet d’exprimer toutes les relations temporelles entre deux intervalles de reconnaissance de deux chroniques (opérateurs equals, starts, finishes, meets, 47Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements overlaps, et during) à l’instar des treize relations d’Allen 3 . D’autres constructions décrivent trois différentes contraintes sur la durée de reconnaissance d’une chronique (opérateurs lasts δ, at least δ, at most δ) exprimant que le temps de reconnaissance de la chronique doit être respectivement exactement, au moins ou au plus une certaine durée δ. Elles correspondent à une transcription des opérateurs d’Allen equals, during et le symétrique de during. Seules ces trois constructions sont retenues car ce sont les seules ayant un sens dans notre contexte. En effet, si l’on considère par exemple la transposition de la relation starts, la contrainte qu’une certaine durée δ « débute » une reconnaissance n’apporte aucune spécification supplémentaire que celle qui impose que la reconnaissance dure au moins δ. La relation overlaps, quant à elle, lorsqu’elle est transcrite entre une reconnaissance et une durée, serait vérifiée dans tous les cas ; de même que la relation before. Il n’y a donc pas de sens à les introduire. La dernière construction spécifie l’écoulement d’un laps de temps directement après la reconnaissance d’une chronique (opérateur then δ) et correspond à une transposition de l’opérateur d’Allen meets. Les bornes de l’absence La notion d’absence est une notion cruciale dans le domaine de la reconnaissance de comportements, comme évoqué dans la Section 1.1. Dans la description d’une absence, il est nécessaire, pour pouvoir statuer d’une reconnaissance, de spécifier l’intervalle de temps pendant lequel le comportement non désiré ne doit pas se produire. Dans [CCK11], le langage des chroniques permet la description de l’absence d’un comportement pendant un autre comportement. C’est ce second comportement qui spécifie l’intervalle de temps à observer et pendant lequel le comportement interdit ne doit pas avoir lieu. Se pose alors la question de l’inclusion ou non des bornes dans l’intervalle considéré : le comportement interdit peut-il commencer en même temps ou se terminer au même instant que le comportement recherché ? Dans [CCK11], un seul cas de figure est formulable : le comportement interdit peut commencer en même temps mais doit terminer strictement avant la fin de la reconnaissance recherchée pour l’invalider. Nous introduisons dans la définition suivante (cf. [absence]) trois nouvelles notations qui permettent l’expression des trois possibilités. Notons que l’ancienne notation est utilisée parmi les trois, mais, afin de rendre la lecture du langage plus intuitive, elle ne désigne plus les même bornes que dans [CCK11] (cf. Définition 16). Le « cut » Nous ajoutons également plusieurs nouveaux opérateurs. Les deux premiers ajouts correspondent à des séquences dont nous souhaitons limiter la multiplicité des reconnaissances. Nous commençons par ajouter un opérateur que l’on appelle « cut », noté « ! ». Il exprime la reconnaissance consécutive de deux comportements A et B, comme dans le cadre d’un séquence, mais nous la restreignons à la première occurrence du comportement B après chaque comportement A. Nous limitons donc le nombre de reconnaissances par rapport à une séquence classique. 3. L’opérateur d’Allen before correspond à une version stricte de la séquence (la séquence est en fait une disjonction de meets et before) qui fait déjà partie du langage de [CCK11] et n’est donc pas ajouté. Notons également que l’opérateur de conjonction peut alors être exprimé comme une disjonction de tous les opérateurs d’Allen. 48CHAPITRE 2. CONSTRUCTION D’UN CADRE THÉORIQUE POUR LA RECONNAISSANCE DE COMPORTEMENTS : LE LANGAGE DES CHRONIQUES Le changement d’état ou « double cut » Nous ajoutons une seconde construction, correspondant à une séquence dont nous limitons la multiplicité des reconnaissances, avec une chronique exprimant le « changement d’état ». Il s’agit de décrire le passage d’un comportement caractérisant un état à un autre comportement caractérisant un autre état. Cette construction est représentée par l’opérateur noté « !! » et correspond, comme nous le verrons plus clairement par la suite, à un cut « dans les deux sens », donc nous l’appelons également « double cut ». Elle répond à une problématique fréquente lors du traitement de cas concrets. Considérons par exemple un drone à terre dont le décollage doit être détecté. Ses coordonnées de position permettent aisément d’identifier si le drone se trouve à terre (on_ground) ou bien s’il vole (above_ground). Le changement d’état de l’un à l’autre caractérise le décollage de l’appareil. Identifier ce changement d’état correspond à détecter « le dernier on_ground avant le premier above_ground », ce qui correspond à la sémantique de l’opérateur « !! ». Notons que ce changement d’état peut être exprimé à l’aide des autres opérateurs, mais lorsque l’on traite des applications réelles, il apparaît que l’opérateur de changement d’état est souvent nécessaire. Cette construction est donc ajoutée au langage afin de s’affranchir de définitions fastidieuses de chroniques. Une construction d’évènement de reconnaissance Lors de l’écriture des descriptions des comportements à reconnaître, il peut être intéressant de décomposer les comportements complexes pour les décrire en plusieurs étapes. Il y a alors deux possibilités pour imbriquer une chronique dans une autre. Soit la chronique est considérée comme un évènement ayant un instant de fin et un instant de début a priori disjoints, soit la chronique est réduite à son instant de reconnaissance. La construction par induction du langage des chroniques implique l’intégration naturelle du premier cas dans la syntaxe. En revanche, si l’on souhaite pouvoir exprimer le second cas, il faut rajouter une construction à apposer à une chronique pour se référer uniquement à son instant de reconnaissance. Pour ce faire, nous introduisons un opérateur, appelé « at » et noté « @ », qui correspond à la détection d’un évènement « abstrait d’une chronique », c’est-à-dire réduit à son instant de reconnaissance et donc nécessairement ponctuel. Donnons maintenant la syntaxe du langage muni des extensions décrites ci-dessus. Notons que la sémantique du langage est présentée Définition 16. Définition 13 (chroniques). Soit N, P, et V les ensembles introduits au début de la Section 2.1, p. 43. Soit S un ensemble de symboles de prédicats. L’ensemble des chroniques sur (N, P, V, S), noté X, est un ensemble de triplets (C, P, f), où : — C est une formule de chronique, comme définie dans la définition inductive de X qui suit ; — P ∈ S est un symbole de prédicat ; — f ∈ T(P, V) est une transformation d’attributs. X est défini inductivement avec deux notions de contextes, qui sont des fonctions de X dans P : — un contexte d’évaluation, noté Ce(·); — un contexte résultant, noté Cr(·). Pour tous C1 ∈ X et C2 ∈ X, on a : 49Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements [évènement simple] Si A ∈ N, alors (A, P, f) ∈ X, Ce(A, P, f) = {♦}, et Cr(A, P, f) = Ce(A, P, f); [séquence] Si Ce(C1) ∩ Ce(C2) = {♦}, alors (C1 C2, P, f) ∈ X, Ce(C1 C2, P, f) = Cr(C1)∪Cr(C2), et Cr(C1 C2, P, f) = Ce(C1 C2, P, f); [conjonction] Si Ce(C1) ∩ Ce(C2) = {♦}, alors (C1&C2, P, f) ∈ X, Ce(C1&C2, P, f) = Cr(C1) ∪ Cr(C2), Cr(C1&C2, P, f) = Ce(C1&C2, P, f); [disjonction] (C1 || C2, P, f) ∈ X, Ce(C1 || C2, P, f) = Cr(C1) ∩ Cr(C2), et Cr(C1 || C2, P, f) = Ce(C1 || C2, P, f); [absence] Si Ce(C1) ∩ Ce(C2) = {♦}, alors ((C1) − [C2], P, f) ∈ X, Ce((C1) − [C2], P, f) = Cr(C1)∪Cr(C2), et Cr((C1) − [C2], P, f) = Cr(C1); De même pour (C1)−]C2], (C1) − [C2[ 4 et (C1)−]C2[ ; [meets] Si Ce(C1) ∩ Ce(C2) = {♦}, alors (C1 meets C2, P, f) ∈ X, Ce(C1 meets C2, P, f) = Cr(C1) ∪ Cr(C2), et Cr(C1 meets C2, P, f) = Ce(C1 meets C2, P, f); [overlaps] Si Ce(C1) ∩ Ce(C2) = {♦}, alors (C1 overlaps C2, P, f) ∈ X, Ce(C1 overlaps C2, P, f) = Cr(C1)∪Cr(C2), et Cr(C1 overlaps C2, P, f) = Ce(C1 overlaps C2, P, f); [starts] Si Ce(C1) ∩ Ce(C2) = {♦}, alors (C1 starts C2, P, f) ∈ X, Ce(C1 starts C2, P, f) = Cr(C1) ∪ Cr(C2), et Cr(C1 starts C2, P, f) = Ce(C1 starts C2, P, f); [during] Si Ce(C1) ∩ Ce(C2) = {♦}, alors (C1 during C2, P, f) ∈ X, Ce(C1 during C2, P, f) = Cr(C1)∪Cr(C2), et Cr(C1 during C2, P, f = Ce(C1 during C2, P, f); [finishes] Si Ce(C1) ∩ Ce(C2) = {♦}, alors (C1 finishes C2, P, f) ∈ X, Ce(C1 finishes C2, P, f) = Cr(C1)∪Cr(C2), et Cr(C1 finishes C2, P, f) = Ce(C1 finishes C2, P, f); [equals] Si Ce(C1) ∩ Ce(C2) = {♦}, alors (C1 equals C2, P, f) ∈ X, Ce(C1 equals C2, P, f) = Cr(C1)∪Cr(C2), et Cr(C1 equals C2, P, f) = Ce(C1 equals C2, P, f); [lasts δ] Si δ ∈ R + ∗ , alors (C1 lasts δ, P, f) ∈ X, Ce(C1 lasts δ, P, f) = Cr(C1), et Cr(C1 lasts δ, P, f) = Ce(C1 lasts δ, P, f); [at least δ] Si δ ∈ R + ∗ , alors (C1 at least δ, P, f) ∈ X, Ce(C1 at least δ, P, f) = Cr(C1), et Cr(C1 at least δ, P, f) = Ce(C1 at least δ, P, f); [at most δ] Si δ ∈ R + ∗ , alors (C1 at most δ, P, f) ∈ X, Ce(C1 at most δ, P, f) = Cr(C1), et Cr(C1 at most δ, P, f) = Ce(C1 at most δ, P, f); [then δ] Si δ ∈ R + ∗ , alors (C1 then δ, P, f) ∈ X, Ce(C1 then δ, P, f) = Cr(C1), et Cr(C1 then δ, P, f) = Ce(C1 then δ, P, f); [nommage de propriété] Si x ∈ P \ {♦}, alors (C1→x, P, f) ∈ X, Ce(C1→x, P, f) = Cr(C1), Cr(C1→x, P, f) = {x, ♦} ; [cut] Si Ce(C1) ∩ Ce(C2) = {♦}, alors (C1!C2, P, f) ∈ X, Ce(C1!C2, P, f) = Cr(C1) ∪ Cr(C2), et Cr(C1!C2, P, f) = Ce(C1!C2, P, f); 4. C’est cette construction qui correspond à celle de l’absence dans [CCK11] présentée dans la Section 1.5.3 et notée (C1) − [C2]. 50CHAPITRE 2. CONSTRUCTION D’UN CADRE THÉORIQUE POUR LA RECONNAISSANCE DE COMPORTEMENTS : LE LANGAGE DES CHRONIQUES [changement d’état] Si Ce(C1) ∩ Ce(C2) = {♦}, alors (C1!!C2, P, f) ∈ X, Ce(C1!!C2, P, f) = Cr(C1) ∪ Cr(C2), et Cr(C1!!C2, P, f) = Ce(C1!!C2, P, f); [évènement de reconnaissance] (@C1, P, f) ∈ X, Ce(@C1, P, f) = Cr(C1), et Cr(@C1, P, f) = Cr(C1). Remarque 4. La grammaire du langage des chroniques, sans considération de contexte, s’exprime comme suit sous la forme de Backus-Naur, avec A ∈ N, δ ∈ R + ∗ et x ∈ P \ {♦} : C ::= A | C C | C&C | C || C | (C) − [C] | C meets C | C overlaps C | C starts C | C during C | C finishes C | C equals C | C lasts δ | C at least δ | C at most δ | C then δ | C→x | C!C | C!!C | @C Éclaircissements sur la double notion de contexte La contrainte récurrente Ce(C1) ∩ Ce(C2) = {♦} assure que tout nom de propriété ne peut être utilisé qu’une seule fois dans une chronique, ce qui est nécessaire pour pouvoir identifier correctement les propriétés. En effet, comme évoqué précédemment, un nom d’attribut se réfère à un évènement ou une chronique spécifique, et un même nom de propriété ne peut donc pas être donné à plusieurs structures au sein d’une même chronique. Quant à la construction des contextes, la définition générique intuitive évoquée précédemment est celle de la séquence et elle est partagée par la plupart des opérateurs. Le contexte d’évaluation est simplement l’union des contextes résultant des deux sous-chroniques, regroupant ainsi tous les noms de propriété mis en jeu dans l’ensemble de la chronique. Le contexte résultant est identique au contexte d’évaluation. Cependant, ceci ne peut pas être appliqué à l’ensemble des opérateurs, et c’est là qu’apparaît la nécessité de définir deux contextes. Présentons les trois exceptions. Le cas de la disjonction Tout d’abord, notons que la disjonction est la seule chronique construite à partir de deux sous-chroniques mais à laquelle n’est pas imposée la contrainte générique d’avoir l’intersection des contextes d’évaluation réduite au singleton {♦}. Au contraire, nous allons nous intéresser aux noms de propriété qui sont employés dans les deux branches de la disjonction. Cette particularité provient du fait que, dans une disjonction, seule l’une des deux sous-chroniques peut être reconnue. Pour qu’un nom d’attribut puisse avoir un sens dans une disjonction, c’est- à-dire pour qu’il soit toujours possible de lui attribuer une valeur en tout cas de figure, un nom d’attribut dans une disjonction doit se référer à un évènement dans chacune des deux branches. En effet, sinon, on ne peut pas assurer que, quelle que soit la branche reconnue, tout nom d’attribut se réfère effectivement à un évènement du flux ce qui est nécessaire pour évaluer le prédicat et la fonction de transformation. Considérons par exemple la chronique (A→x B→y) || (D→z A→x) qui est une disjonction reconnaissant soit la séquence de deux évènements A suivi de B soit la séquence de D suivi de A. Toute reconnaissance de cette chronique mettra en jeu un évènement de nom de propriété x, mais selon la branche de la disjonction reconnue, elle mettra en jeu un évènement de nom de propriété soit y soit z. Au niveau de la disjonction, on peut donc se référer à x pour lequel des valeurs seront toujours disponibles, mais on ne peut pas se référer à y ou z 51Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements comme cela dépend de la branche reconnue. Pour cette raison, le contexte d’évaluation associé à une disjonction est l’intersection des contextes de ses sous-chroniques. Le cas de l’absence Le cas de l’absence est similaire à celui de la disjonction. Nous souhaitons permettre l’expression de la contrainte suivante, sur les attributs des deux sous-chroniques d’une absence : « (C1)−[C2] vérifiant le prédicat P » correspond au comportement décrit par « C1 reconnue sans qu’il n’y ait aucune occurrence de C2 vérifiant le prédicat P durant la reconnaissance de C1, où P peut porter sur les attributs à la fois de C1 et de C2 ». Par exemple, le comportement suivant peut alors être décrit : « Un avion d’ID n a modifié sa fréquence radio à f 6= 118.075 (qui est en fait la fréquence recherchée) à l’instant t au plus 5 min après le décollage, et, après t mais avant cette échéance de 5 min, la fréquence radio n’a pas été corrigée par l’avion n ». Pour reconnaître ce comportement, les attributs des deux sous-chroniques C1 et C2 doivent être comparés pour identifier le même avion n et pour avoir accès à l’instant t. Notons que cet exemple sera développé dans l’application présentée dans la Section 5.3. Pour permettre au prédicat d’avoir accès aux attributs des deux sous-chroniques, le contexte d’évaluation de la chronique doit être l’union des deux contextes résultants des deux sous-chroniques, comme c’est le cas généralement. Cependant, la chronique (C1) − [C2] est reconnue s’il n’y a aucune reconnaissance de C2 pendant la reconnaissance de C1, donc les deux contextes ne doivent pas être passés dans l’induction à une chronique de plus haut niveau. En effet, comme dans le cas de la disjonction, il n’y a pas nécessairement de valeurs pour les attributs de C2 car il n’y a pas nécessairement de reconnaissance de C2. C’est pour cela que l’on introduit la notion de contexte résultant, qui permet de conserver dans le contexte d’évaluation l’union des deux contextes des sous-chroniques, mais de ne passer dans l’induction uniquement le contexte de C1 en réduisant le contexte résultant à celui-ci. Le cas du nommage de propriété La dernière exception à la définition générique des contextes est le cas du nommage de propriété. Le rôle de cette construction de nommer les attributs de la chronique. Afin que ce nom puisse être utilisé par la suite, ce nom doit donc être ajouté au contexte résultant de la chronique. Par ailleurs, il a été décidé que, lorsque les propriétés d’une chronique sont ainsi nommées, on ne conserve que les propriétés créées par la fonction de transformation f (qui sont stockées sous le nom anonyme ♦ avant d’être éventuellement nommées) et les anciennes propriétés sont « oubliées ». Ceci se traduit par le fait que le contexte résultant est donc réduit à l’ensemble {♦, x} où x est le nom de propriété choisi. Notons que si l’on souhaite conserver l’ensemble des propriétés présentes à l’intérieur de la chronique nommée, cela est possible à travers de la fonction f. Le choix d’oublier par défaut ces propriétés a été fait car cela permet d’abstraire la sous-chronique en une sorte d’évènement de plus haut niveau muni d’attributs plus complexes tout en se défaisant d’informations superflues. 52CHAPITRE 2. CONSTRUCTION D’UN CADRE THÉORIQUE POUR LA RECONNAISSANCE DE COMPORTEMENTS : LE LANGAGE DES CHRONIQUES 2.3 Définition de la sémantique du langage à travers la notion de reconnaissance de chronique Dans la section précédente, nous avons établi la syntaxe de notre langage des chroniques, en introduisant de nombreuses nouvelles constructions. Dans cette section, nous allons maintenant définir la sémantique de ce langage en définissant la notion de reconnaissance d’une chronique. Dans un premier temps (Section 2.3.1) nous étudierons le modèle de représentation des reconnaissances dans le formalisme. Dans [CCK11], une reconnaissance est représentée par un ensemble. Nous montrerons qu’une représentation arborescente est plus appropriée. Nous définirons dans un second temps (Section 2.3.2) la sémantique du langage des chroniques fondée sur ce formalisme de reconnaissance arborescente. 2.3.1 Passage à une représentation arborescente des reconnaissances Il s’agit d’étudier ici le formalisme employé pour représenter une reconnaissance de chronique. Rappelons que dans [CCK11], une reconnaissance d’une chronique est un ensemble contenant les indices d’occurrence des évènements ayant donné lieu à la reconnaissance (cf. Définition 1.5.3). Nous souhaitons mettre en avant un problème de multiplicité des reconnaissances lié à la structure ensembliste utilisée. Commençons par étudier l’exemple suivant qui illustre ce problème. Considérons la chronique C = (A B)&A sur le flux ϕ = ((a, 1),(a, 2),(b, 3)). Avec le formalisme de [CCK11] dans lequel une reconnaissance est un ensemble d’évènements, nous obtenons trois reconnaissances de la chronique C sur le flux ϕ : RC (ϕ) = {{1, 2, 3}, {1, 3}, {2, 3}} Remarquons que, dans la reconnaissance {1, 2, 3}, on ne peut pas identifier quel évènement a participe à la reconnaissance de la séquence A B et quel évènement a correspond à l’évènement simple A. Ceci est dû à l’impossibilité de distinguer les ensembles {1, 3, 2} et {2, 3, 1}, et donc à distinguer les deux a. Or, comme introduit dans la Section 1.1, l’historisation des évènements, à savoir l’identification exacte de quel évènement a participé à quel morceau de la reconnaissance, est une problématique omniprésente. D’autre part, l’introduction d’attributs rend primordial l’appariement exact des évènements à la chronique pour que les valeurs correctes des propriétés soient considérées. Nous voudrions donc pouvoir différencier les ensembles {1, 3, 2} et {2, 3, 1}, ce qui donnerait donc quatre reconnaissances pour la chronique C sur le flux ϕ. Ce problème a donc également une incidence sur la combinatoire du système. Pour résoudre cette question, nous proposons de manipuler des reconnaissances sous forme d’arbres binaires plutôt que sous forme de simples ensembles. Davantage d’informations peuvent ainsi être conservées : l’arbre d’une reconnaissance est calqué sur la structure arborescente de la chronique associée et l’on a donc la possibilité de connaître la correspondance exacte entre les noms d’évènements simples de la chronique et les évènements du flux prenant part à la reconnaissance. Pour l’exemple précédent, cela permet de différencier les appariements des a du flux et ainsi 53Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements obtenir quatre reconnaissances. Avec la représentation d’arbre binaire définie par la suite (Définition 14), l’ensemble de reconnaissances est alors : RC (ϕ) = {hh1, 3i, 2i,hh2, 3i, 1i,hh1, 3i, 1i,hh2, 3i, 2i} Par ailleurs, pour favoriser la lecture, nous adoptons un autre système de représentation des évènements, en indiquant les évènements et leur date d’occurrence en lieu et place de leur indice d’occurrence dans le flux, comme annoncé au début de la Section 2.1.1. Nous serons également amenés à ajouter un paramètre d à l’ensemble de reconnaissance, indiquant l’instant jusqu’auquel les évènements du flux ont été pris en compte. Ce paramètre est nécessaire pour l’écriture des ensemble de reconnaissances de certains opérateurs exprimant des contraintes temporelles. Avec ces nouvelles notations, l’ensemble de reconnaissances de l’exemple précédent sera noté : RC (ϕ, 3) = {hh(a, 1),(b, 3)i,(a, 2)i,hh(a, 2),(b, 3)i,(a, 1)i, hh(a, 1),(b, 3)i,(a, 1)i,hh(a, 2),(b, 3)i,(a, 2)i} Définissons maintenant formellement la représentation arborescente utilisée. Une reconnaissance r est l’arbre binaire des évènements (e, t) ayant donné lieu à la reconnaissance. La structure de l’arbre de reconnaissance reflète celle de la chronique associée, les feuilles de celui-ci correspondant aux évènements donnant lieu à la reconnaissance. Les informations qui sont pertinentes sont la structure de l’arbre ainsi que les étiquettes des feuilles 5 . Pour identifier sans ambiguïté les appariements d’évènements avec les sous-chroniques de la chronique étudiée, il n’est pas nécessaire de nommer d’autres nœuds que les feuilles. Nous utilisons donc le formalisme suivant. Définition 14 (arbres de reconnaissance). L’ensemble A(E) des arbres de reconnaissance sur l’ensemble d’évènements E se définit par induction comme suit, où X est un ensemble d’attributs : — si (e, t) ∈ E, alors ((e, t), X) ∈ A(E); — si r1 ∈ A(E) et r2 ∈ A(E), alors (hr1, r2i, X) ∈ A(E); — si r ∈ A(E), alors (hri, X) ∈ A(E), (hr, ⊥i, X) ∈ A(E) et (h⊥, ri, X) ∈ A(E). Nous définissons aussi l’ensemble F(r) des feuilles d’un arbre de reconnaissance r par induction : — si r = ((e, t), X) avec (e, t) ∈ E, alors F(r) = {(e, t)} ; — si r = (hr1, r2i, X) avec r1 ∈ A(E) et r2 ∈ A(E), alors F(r) = F(r1) ∪ F(r2); — si r ∈ {(hr1, ⊥i, X),(h⊥, r1i, X),(hr1i, X)} avec r1 ∈ A(E), alors F(r) = F(r1). Notons que, dans la définition précédente, nous avons introduit une notation pour distinguer deux types de paires : les feuilles qui sont des paires composées d’un nom d’évènement et d’une date, notées entre parenthèses (), et les ramifications des arbres, notées entre chevrons hi. Avant de définir la sémantique de notre langage à travers la notion de reconnaissance, nous définissons au préalable deux fonctions Tmin et Tmax retournant respectivement, en fonction d’une reconnaissance r, le premier et le dernier instants auxquels a lieu un évènement participant à r : 5. L’ensemble des feuilles d’un arbre de reconnaissance correspond à la reconnaissance dans le formalisme de [CCK11]. 54CHAPITRE 2. CONSTRUCTION D’UN CADRE THÉORIQUE POUR LA RECONNAISSANCE DE COMPORTEMENTS : LE LANGAGE DES CHRONIQUES Définition 15 (temps min et max). Tmin : A(E) → R, r 7→ min{t : (e, t) ∈ F(r)} Tmax : A(E) → R, r 7→ max{t : (e, t) ∈ F(r)} Ainsi, pour toute reconnaissance r, l’intervalle [Tmin(r), Tmax(r)] correspond à l’intervalle de temps nécessaire et suffisant pour établir la reconnaissance r. Ces deux fonctions permettront de poser des contraintes temporelles entre les intervalles d’occurrence de chroniques. 2.3.2 Formalisation de la notion de reconnaissance de chronique Nous pouvons maintenant poser la sémantique de notre langage des chroniques en définissant la notion de reconnaissance d’une chronique tout en intégrant la nouvelle représentation arborescente des reconnaissances. La définition de la sémantique est délicate pour deux raisons principales : — d’une part, le processus de reconnaissance doit permettre d’évaluer des prédicats sur des attributs d’évènement provenant de différentes parties de la chronique ; — d’autre part, les chroniques doivent être reconnues en ligne. Avec ces deux contraintes à l’esprit, nous définissons pour chaque chronique un ensemble de reconnaissances qui correspond à toutes les reconnaissances de la chronique représentées sous forme d’arbres et munies de leurs attributs de reconnaissance associés. Comme l’on souhaite que le processus de reconnaissance puisse être effectué au fur et à mesure tout en étant exhaustif, la construction des ensembles de reconnaissances est progressive, ce qui s’exprime par une définition inductive dépendant de l’instant d jusqu’auquel les évènements du flux sont considérés. La constitution de ces ensembles ne nécessite donc pas de connaître par avance l’intégralité du flux d’évènements. Nous définissons donc, par induction pour chaque chronique, l’ensemble de ses reconnaissances sur un flux d’évènements et jusqu’à une date donnés. Les évènements de cet ensemble sont des couples (r, X) où r est un arbre de reconnaissance et X est l’ensemble d’attributs de reconnaissance associé. Chaque définition peut se décomposer en trois parties : — l’expression des contraintes temporelles liées à l’opérateur; — la vérification du prédicat; — la définition de l’ensemble d’attributs de reconnaissance. Définition 16 (ensembles de reconnaissances). Soit C ∈ X une chronique. Considérons, pour tout prédicat P, un (P × V)-modèle M dans lequel il existe une interprétation Pˆ de P. L’ensemble des reconnaissances de C sur le flux d’évènements ϕ jusqu’à la date d est noté RC (ϕ, d) et est un sous-ensemble de A(E). L’ensemble d’attributs associé à une reconnaissance r est noté Xr. Nous utilisons les notations suivantes : X♦ r = {(♦, v) ∈ Xr : v ∈ Ae(P, V)}, qui est un singleton, et X∗ r = Xr \ X♦ r . Les ensembles de reconnaissances et les ensembles d’attributs associés aux reconnaissances sont définis par induction comme suit : — Un évènement simple A vérifiant le prédicat P est reconnu si un évènement de nom A a lieu dans le flux avant l’instant d et si ses attributs vérifient le prédicat P. Les attributs de reconnaissance sont réduits à une unique propriété anonyme contenant les éventuels attributs créés par la fonction f et les attributs de l’évènement du flux. 55Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements Si A∈N, alors : R(A,P,f)(ϕ, d) = {((e, t), X(e,t)) : e = A ∧ ∃i ϕ(i) = (e, t) ∧ t ≤ d ∧ Pˆ[D◦α((e, t))] ∧ X(e,t)={ (♦, X) : ∃Xe ∈ Ae(P, V) ( X = Xe∪α((e, t)) ∧ f◦D◦α((e, t)) = {(♦, Xe)} ) } } En d’autres termes, les reconnaissances d’un évènement simple suivent les règles suivantes : — le nom de l’évènement est correct ; — la date de l’évènement est inférieure à l’horizon (t ≤ d) ; — le prédicat, s’il existe, est vérifié sur les attributs de l’évènement (Pˆ[D◦α((e, t))]). Et en supplément, l’ensemble d’attributs associé à la reconnaissance est constitué de la manière suivante. Il contient : — les attributs de l’évènement dans le flux (α((e, t))) ; — les attributs créés par la fonction f (f◦D◦α((e, t))). — Une disjonction C1 || C2 vérifiant un prédicat P est reconnue lorsque l’une des deux souschroniques est reconnue et vérifie P. La structure de l’arbre indique quelle branche de la chronique a été reconnue. Les attributs de reconnaissance sont réduits aux attributs dont les noms sont utilisés à la fois dans C1 et C2, comme détaillé dans la Section 2.2 (p.51), avec les attributs anonymes créés par la fonction f. On rappelle que la fonction ρ permet d’accéder au nom d’une propriété. R(C1||C2,P,f)(ϕ, d) = {(hr, ⊥i, Xhr,⊥i) : r ∈ RC1 (ϕ, d) ∧ Pˆ[X∗ r ] ∧ Xhr,⊥i = {x ∈ X∗ r : ρ(x) ∈ Ce(C1||C2)} ∪ D◦f[X∗ r ]} ∪ {(h⊥, ri, Xh⊥,ri) : r ∈ RC2 (ϕ, d) ∧ Pˆ[X∗ r ] ∧Xh⊥,ri={x ∈ X∗ r : ρ(x) ∈ Ce(C1 || C2)} ∪ D◦f[X∗ r ]} — Une séquence C1C2 vérifiant P est reconnue lorsque C2 est reconnue après avoir reconnu C1 et que les deux reconnaissances vérifient P. Les attributs de reconnaissance sont ceux des reconnaissances de C1 et de C2 avec les attributs anonymes créés par la fonction f. C1 C2 R(C1 C2,P,f)(ϕ, d) = {(hr1, r2i, Xhr1,r2i) : r1 ∈ RC1 (ϕ, d) ∧ r2 ∈ RC2 (ϕ, d) ∧Tmax(r1) < Tmin(r2) ∧ Pˆ[X∗ r1 ∪ X∗ r2 ] ∧ Xhr1,r2i = X∗ r1 ∪ X∗ r2 ∪ D◦f[X∗ r1 ∪ X∗ r2 ]} — Une conjonction C1&C2 vérifiant P est reconnue lorsque à la fois C1 et C2 sont reconnues et vérifient P. Les attributs de reconnaissance sont construits comme pour la séquence. R(C1&C2,P,f)(ϕ, d)={(hr1, r2i, Xhr1,r2i) : r1∈RC1 (ϕ, d) ∧ r2 ∈ RC2 (ϕ, d) ∧ Pˆ[X∗ r1 ∪ X∗ r2 ] ∧ Xhr1,r2i = X∗ r1 ∪ X∗ r2 ∪ D◦f[X∗ r1 ∪ X∗ r2 ]} — Une absence (C1) − [C2] vérifiant un prédicat P est reconnue lorsque C1 est reconnue sans aucune occurrence de C2 vérifiant P durant la reconnaissance de C1. Attention, dans le cas d’une absence, la signification du prédicat est donc particulière. Les attributs de reconnaissance sont alors réduits à ceux de la reconnaissance de C1, comme détaillé dans 2.2, complétés des éventuels attributs anonymes créés par la fonction f. 56CHAPITRE 2. CONSTRUCTION D’UN CADRE THÉORIQUE POUR LA RECONNAISSANCE DE COMPORTEMENTS : LE LANGAGE DES CHRONIQUES C1 C2 R((C1)−[C2],P,f)(ϕ, d) = {(hr1i, Xhr1i) : r1∈RC1 (ϕ, d) ∧∀r2∈RC2 (ϕ, d) ( Tmin(r1)>Tmin(r2) ∨Tmax(r1)Tmin(r2) ∨ Tmax(r1)≤Tmax(r2); — pour (C1)−]C2], elle devient Tmin(r1)≥Tmin(r2) ∨ Tmax(r1)Tmin(r2)∧Tmax(r1)Tmin(r2)∧Tmax(r1)=Tmax(r2). — Une chronique C1 equals C2 est reconnue lorsque à la fois C1 et C2 sont reconnues sur exactement le même intervalle de temps, et P est vérifié. C1 C2 R(C1 equals C2,P,f)(ϕ, d) est défini comme la séquence mais avec la contrainte temporelle Tmin(r1)=Tmin(r2)∧Tmax(r1)=Tmax(r2). 6. C’est cette construction qui correspond à celle de l’absence dans [CCK11] présentée dans la Section 1.5.3 et notée (C1) − [C2]. 57Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements — Une chronique C1 lasts δ est reconnue lorsque C1 est reconnue, P est vérifié, et la taille de l’intervalle de reconnaissance est exactement δ. C1 δ R(C1 lasts δ,P,f)(ϕ, d) = {(hri, Xhri) : r ∈ RC1 (ϕ, d) ∧Tmax(r) − Tmin(r) = δ ∧ Pˆ[X∗ r ] ∧ Xhri = X∗ r ∪ D◦f[X∗ r ]} — Une chronique C1 at most δ est reconnue lorsque C1 est reconnue, P est vérifié, et la taille de l’intervalle de reconnaissance est au plus δ. C1 δ R(C1 at most δ,P,f)(ϕ, d) est défini comme la chronique « lasts » mais avec la contrainte temporelle Tmax(r) − Tmin(r) < δ. — Une chronique C1 at least δ est reconnue lorsque C1 est reconnue, P est vérifié, et la taille de l’intervalle de reconnaissance est au moins δ. C1 δ R(C1 at least δ,P,f)(ϕ, d) est défini comme la chronique « lasts » mais avec la contrainte temporelle Tmax(r) − Tmin(r) > δ. — Une chronique C1 then δ est reconnue lorsque exactement δ unités de temps s’écoulent après une reconnaissance de C1. L’arbre de reconnaissance conserve l’évènement d’instant temporel pur (τ, t) correspondant à l’instant de la reconnaissance. Ceci permet, entre autre, d’avoir une définition correcte de Tmax. C1 δ R(C1 then δ,P,f)(ϕ, d)={(hr,(τ, t)i, Xhr,(τ,t)i) : t ≤ d ∧ r ∈ RC1 (ϕ, t) ∧t = Tmax(r)+δ ∧ Pˆ[X∗ r ] ∧ Xhr,(τ,t)i = X∗ r ∪ D◦f[X∗ r ]} — Une chronique de nommage de propriété C1→x est reconnue lorsque C1 est reconnue. Les attributs de reconnaissance sont les attributs anonymes de la reconnaissance de C1 mais renommés x, avec les nouveaux attributs anonymes créés par la fonction f. R(C1→x,P,f)(ϕ, d) = {(hri, Xhri) : r∈RC1 (ϕ, d) ∧ Pˆ[X∗ r ] ∧ Xhri = R(X♦ r , x) ∪ D◦f[X∗ r ]} — Une chronique de cut C1!C2 est reconnue lorsque C1 et C2 sont reconnues successivement et lorsque la reconnaissance de C2 est la première après celle de C1 En d’autres termes, il n’y a pas d’autre reconnaissance de C2 entre les deux reconnaissances sélectionnées. R(C1!C2,P,f)(ϕ, d)={(hr1, r2i, Xhr1,r2i) : r1∈RC1 (ϕ, d) ∧ r2∈RC2 (ϕ, d) ∧ Tmax(r1) Tmin(r2) ∨ Tmax(r1) ≤ Tmax(r2) )}. Soit r1 ∈ RC (ϕ|I , d). Alors r1 ∈ RC1 (ϕ|I , d) et ∀r2 ∈ RC2 (ϕ|I , d) ( Tmin(r1) > Tmin(r2) ∨ Tmax(r1) ≤ Tmax(r2) ). Par hypothèse d’induction, RC1 (ϕ|I , d) ⊆ RC1 (ϕ|J , d), et donc r1 ∈ RC1 (ϕ|J , d). Montrons de plus par l’absurde que ∀r2 ∈ RC2 (ϕ|J , d) ( Tmin(r1) > Tmin(r2) ∨ Tmax(r1) ≤ Tmax(r2) ). Soit r2 ∈ RC2 (ϕ|J , d) tel que Tmin(r1) ≤ Tmin(r2) ∧ Tmax(r1) > Tmax(r2). En particulier, Tmax(r2) < Tmax(r1) ≤ max I et r2 ∈ RC2 (ϕ|J , d), donc, comme I est un segment initial de J, r2 ∈ RC2 (ϕ|I , d), donc ∃r2 ∈ RC2 (ϕ|I , d) ( Tmin(r1) ≤ Tmin(r2) ∧ Tmax(r1) > Tmax(r2) ). Absurde. Donc r1 ∈ RC (ϕ|J , d), et on a donc bien RC (ϕ|I , d) ⊆ RC (ϕ|J , d). — La démonstration pour les autres opérateurs est analogue à celle de la séquence. Remarque 10. En particulier, pour tout k ∈ N et tout d ∈ R, RC ((ui)i∈J1,kJ , d) ⊆ RC ((ui)i∈J1,k+1J , d) Remarque 11. En revanche, la propriété « pour tout I inclus dans le domaine de ϕ, RC (ϕ|I , d) ⊆ RC (ϕ, d) » n’est pas vérifiée pour toute chronique dans laquelle est utilisée l’opérateur d’absence. Le problème se pose si I n’est pas un segment initial du domaine de ϕ. Par exemple, prenons C = (A D)−[B[ et posons ϕ = ((a, 1),(b, 2),(d, 3)) avec I = {1, 3}. Alors, RC (ϕ|I , d) = {h(a, 1),(d, 3)i} mais RC (ϕ, d) = { }, donc RC (ϕ|I , d) * RC (ϕ, d). Il en est de même pour la propriété plus générale « pour tout I ⊆ J, RC (ϕ|I , d) ⊆ RC (ϕ|J , d) » s’il n’y a pas de condition supplémentaire sur I et J. 2.4.3 Associativité, commutativité, distributivité Les démonstrations des propriétés suivantes se trouvent dans l’Annexe A. Propriété 3 (associativité). La disjonction, la conjonction, la séquence, meets et equals sont associatifs. Remarque 12. 1. « overlaps » n’est pas associatif. En effet, considérons le flux ϕ = ((a, 1),(f, 2),(d, 3),(b, 4),(e, 5),(g, 6)), et les chroniques C1 = A B, C2 = D E et C3 = F G. On a alors FC1 overlaps C2 (ϕ, 6) = {{1, 3, 4, 5}} et FC2 overlaps C3 (ϕ, 6) = { }, Donc F(C1 overlaps C2) overlaps C3 (ϕ, 6) = {{1, 2, 3, 4, 5, 6}}, mais FC1 overlaps (C2 overlaps C3)(ϕ, 6) = { }. 2. « starts » n’est pas associatif. En effet, considérons le flux ϕ = ((a, 1),(b, 2),(d, 3),(e, 4)), et les chroniques C1 = A D, C2 = A B et C3 = A E. 62CHAPITRE 2. CONSTRUCTION D’UN CADRE THÉORIQUE POUR LA RECONNAISSANCE DE COMPORTEMENTS : LE LANGAGE DES CHRONIQUES On a alors FC1 starts C2 (ϕ, 4) = { } donc F(C1 starts C2) starts C3 (ϕ, 4) = { }, Mais FC2 starts C3 (ϕ, 4) = {{1, 2, 4}}, donc FC1 starts (C2 starts C3)(ϕ, 4) = {{1, 2, 3, 4}}. 3. « during » n’est pas associatif. En effet, considérons le flux ϕ = ((a, 1),(b, 2),(d, 3),(e, 4),(f, 5),(g, 6)), et les chroniques C1 = B E, C2 = D F et C3 = A G. On a alors FC1 during C2 (ϕ, 6) = { } donc FC1 during (C2 during C3)(ϕ, 6) = { }, Mais FC2 during C3 (ϕ, 6) = {{1, 3, 5, 6}}, donc FC1 during (C2 during C3)(ϕ, 6) = {{1, 2, 3, 4, 5, 6}}. 4. « finishes » n’est pas associatif. En effet, considérons le flux ϕ = ((a, 1),(b, 2),(d, 3),(e, 4)), et les chroniques C1 = B E, C2 = D E et C3 = A E. On a alors FC1 finishes C2 (ϕ, 4) = { } donc F(C1 finishes C2) finishes C3 (ϕ, 4) = { }, Mais FC2 finishes C3 (ϕ, 4) = {{1, 3, 4}}, donc FC1 finishes (C2 finishes C3)(ϕ, 4) = {{1, 2, 3, 4}}. 5. Le changement d’état n’est pas associatif. En effet, considérons le flux ϕ = ((a, 1),(b, 2),(b, 3),(d, 4)), et les chroniques C1 = A!!(B!!D) et C2 = (A!!B)!!D. On a alors FC1 (ϕ, 4) = {{1, 3, 4}} mais FC2 (ϕ, 4) = {{1, 2, 4}}. 6. Le cut n’est pas associatif, puisque le changement d’état est un cut particulier. Propriété 4 (commutativité). La disjonction, la conjonction et equals sont commutatifs. Remarque 13. 1. La séquence n’est pas commutative. En effet, considérons le flux ϕ = ((a, 1),(b, 2)), et les chroniques A B et B A. On a alors FA B(ϕ, 2) = {{1, 2}} mais FB A(ϕ, 2) = { }. 2. meets, overlaps, starts, during, finishes, le cut et le changement d’état ne sont pas commutatifs. En effet, comme pour la séquence, les propriétés temporelles qui caractérisent ces opérateurs sont exprimées par des inégalités et ne sont donc pas commutatives. Propriété 5 (distributivité). Tous les opérateurs sont distributifs sur la disjonction. Remarque 14. La distributivité de tout opérateur sur un opérateur autre que la disjonction n’est pas vérifiée. En effet, considérons deux opérateurs ~ et }. Si ~ est distributif sur }, alors, en particulier, l’égalité suivante est vérifiée, où A, B et D sont des évènements simples : A ~ (B } D) ≡ (A ~ B)}(A~D). Une reconnaissance de la chronique du membre de gauche ne peut correspondre qu’à un unique évènement a. En revanche, si } n’est pas une disjonction, deux évènements a distincts peuvent participer à une même reconnaissance de la chronique du membre de droite. L’équivalence n’est donc pas vérifiée si } n’est pas une disjonction, tout opérateur n’est ainsi pas distributif sur un opérateur autre que la disjonction. Considérons par exemple le cas de la distributivité de la séquence sur la conjonction, avec le flux ϕ = ((a, 1),(b, 2),(a, 3),(d, 4)), et les chroniques A (B&D) et (A B)&(A D). On a alors {1, 2, 3, 4} ∈ F(A B)&(A D)(ϕ, 4) mais {1, 2, 3, 4} ∈/ FA (B&D)(ϕ, 4). 63Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements Pour les opérateurs liés aux durées, et qui n’ont donc pas de sens sur des évènements simples, le même raisonnement s’applique sur les évènements simples qui constituent chaque sous-chronique. Par exemple, pour le cas de la distributivité de la séquence sur starts, considérons le flux ϕ = ((a, 1),(b, 2),(d, 3),(e, 4),(b, 5),(f, 6),(g, 7)), et les chroniques (A B) ((D E) starts (F G)) et (A B D E) starts (A B F G). Alors : {1, 2, 3, 4, 5, 6, 7} ∈ F(A B D E) starts (A B F G)(ϕ, 7) mais : {1, 2, 3, 4, 5, 6, 7} ∈/ F(A B) ((D E) starts (F G))(ϕ, 7) 2.5 Gestion du temps continu à l’aide d’une fonction Lookahead Cette section s’attache à la gestion du temps dans la mise en œuvre du processus de reconnaissance. Des opérations de contraintes temporelles ont été ajoutées au langage et la syntaxe comme la sémantique ont été adaptées pour considérer un modèle de temps continu. Dans une optique d’implémentation, la considération d’un temps continu soulève des problèmes et rend nécessaire la définition d’une fonction « Look-ahead » indiquant un prochain instant TC (ϕ, d) jusqu’auquel le système n’a pas besoin d’être réexaminé car on a l’assurance qu’aucune reconnaissance ne va se produire jusqu’à cet instant. En effet, les systèmes considérés sont asynchrones, et cette fonction fournit le prochain instant où les chroniques peuvent évoluer. En indiquant le moment où observer le système, cette fonction permet de ne pas avoir à le surveiller constamment pour une reconnaissance éventuelle, ce qui serait impossible du fait du modèle de temps continu (et ce qui serait de toute façon trop exigeant même si le modèle de temps pouvait être discrétisé). La fonction « Look-ahead » est inférée de la sémantique du langage présentée dans la Définition 16 et est définie comme suit : Définition 19 (fonction « Look-ahead »). Soit d ∈ R, C ∈ X et ϕ un flux d’évènements. Nous définissons TC (ϕ, d) par induction sur la chronique C : — si A ∈ N et C = (A, P, f), alors TC (ϕ, d) = min{t : ∃i ∈ N ∃e ∈ N ϕ(i) = (e, t) ∧ t > d} ; — pour tout ~ ∈ {||, &, “ ”,( ) − [ ],( ) − [ [,( )−] ],( )−] [, meets, overlaps, starts, during, finishes, equals, !, !!}, si C = (C1 ~ C2, P, f) avec C1 ∈ X et C2 ∈ X, alors TC (ϕ, d) = min{TC1 (ϕ, d), TC2 (ϕ, d)} ; — si C = (C1 lasts δ, P, f), alors TC (ϕ, d) = TC1 (ϕ, d); — si C = (C1 at most δ, P, f), alors TC (ϕ, d) = TC1 (ϕ, d); — si C = (C1 at least δ, P, f), alors TC (ϕ, d) = TC1 (ϕ, d); — si C = (C1 then δ, P, f), alors nous définissons tout d’abord l’instant τC1,δ(ϕ, d) correspondant au plus petit instant t + δ tel qu’il y a eu une nouvelle reconnaissance de C1 dans le flux ϕ à l’instant t et tel que t ≤ d < t + δ, comme suit : τC1,δ(ϕ, d) = min{Tmax(r1) + δ : r1 ∈ RC1 (ϕ, d) ∧ Tmax(r1) + δ > d} Alors TC (ϕ, d) = min{τC1,δ(ϕ, d), TC1 (ϕ, d)} ; 64CHAPITRE 2. CONSTRUCTION D’UN CADRE THÉORIQUE POUR LA RECONNAISSANCE DE COMPORTEMENTS : LE LANGAGE DES CHRONIQUES — si C = (C1→x, P, f), alors TC (ϕ, d) = TC1 (ϕ, d); — si C = (@C1, P, f), alors TC (ϕ, d) = TC1 (ϕ, d). Remarque 15. Notons que l’opérateur « then » se distingue des autres opérateurs du fait que la reconnaissance de la chronique découle du temps qui passe et non de l’occurrence d’un évènement dans le flux. C’est cette chronique qui rend nécessaire la définition de la fonction Look-ahead. Nous pouvons alors démontrer la propriété suivante, qui caractérise le comportement recherché de la fonction. Propriété 6 (Look-ahead). Après l’instant d, l’ensemble des reconnaissances de la chronique C n’évoluera pas avant au moins l’instant TC (ϕ, d). Plus formellement, pour toute chronique C ∈ X et pour tout instant d ∈ R : ∀t1 ∈ [d, TC (ϕ, d)[ RC (ϕ, d) = RC (ϕ, t1) Démonstration. Soit d ∈ R. Nous montrons cette propriété par induction sur la chronique C. Pour simplifier les notations, on s’affranchit ici des attributs, du prédicat P et de la fonction f. La démonstration complète est analogue. Soit t1 ∈ [d, TC (ϕ, d)[. Par la Propriété 1, il ne reste à montrer que l’inclusion RC (ϕ, d) ⊇ RC (ϕ, t1). — Si C = A ∈ N. Par définition, on a RA(ϕ, t1) = {(e, t) : ∃i ϕ(i) = (e, t) ∧ e = a ∧ t ≤ t1}, et RA(ϕ, d) = {(e, t) : ∃i ϕ(i) = (e, t) ∧ e = a ∧ t ≤ d}. Par l’absurde, soit (e0, t0) ∈ RA(ϕ, t1) \ RA(ϕ, d). On a donc t0 < t1 < TA(ϕ, d), i.e. t0 < min{t : ∃i ∈ N ∃e ∈ N ϕ(i) = (e, t) ∧ t > d}. Or t0 > d car (e0, t0) ∈/ RA(ϕ, d), donc t0 ∈ {t : ∃i ∈ N ∃e ∈ N ϕ(i) = (e, t) ∧ t > d} et, en particulier, t0 < t0. Absurde. D’où RA(ϕ, t1) \ RA(ϕ, d) = ∅, et donc RA(ϕ, d) ⊇ RA(ϕ, t1). — Si C = C1 | | C2. On note que t1 < TC (ϕ, d) = min{TC1 (ϕ, d), TC2 (ϕ, d)} et donc t1 < TC1 (ϕ, d) et t1 < TC2 (ϕ, d). RC (ϕ, t1) = {hr, ⊥i : r ∈ RC1 (ϕ, t1)} ∪ {h⊥, ri : r ∈ RC2 (ϕ, t1)} = {hr, ⊥i : r ∈ RC1 (ϕ, d)} ∪ {h⊥, ri : r ∈ RC2 (ϕ, d)} par hypothèse d’induction = RC (ϕ, d) — La démonstration relative aux opérateurs de conjonction, de séquence, d’absence, meets, overlaps, starts, during, finishes, equals, lasts δ, at most δ, at least δ, cut, et changement d’état est identique à celle du cas précédent (car la définition de TC (ϕ, d) est identique pour ces opérateurs). — Si C = C1 then δ. On a RC (ϕ, d) = {hr1,(τ, i)i : i ≤ d ∧ r1 ∈ RC1 (ϕ, i) ∧ i = Tmax(r1) + δ}, Et : RC (ϕ, t1) = {hr1,(τ, j)i : j ≤ t1 ∧ r1 ∈ RC1 (ϕ, j) ∧ j = Tmax(r1) + δ}. = RC (ϕ, d) ∪ {r1 : ∃j d < j ≤ t1 ⇒ (r1 ∈ RC1 (ϕ, j) ∧ j = Tmax(r1) + δ)} On souhaite montrer que {hr1,(τ, j)i : d < j ≤ t1 ∧ r1 ∈ RC1 (ϕ, j) ∧ j = Tmax(r1) + δ} est 65Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements vide. Par l’absurde supposons hr1,(τ, j)i un élément de cet ensemble. Alors d < j ≤ t1 et r1 ∈ RC1 (ϕ, j) ∧ j = Tmax(r1) + δ. Comme t1 < TC (ϕ, d) ≤ TC1 (ϕ, d), j ∈]d, t1] implique que j ∈ [d, TC1 (ϕ, d)[. On peut donc appliquer l’hypothèse d’induction qui nous donne que RC1 (ϕ, d) = RC1 (ϕ, j). On a donc que r1 ∈ RC1 (ϕ, d). De plus, on a bien que j = Tmax(r1) + δ > d, Donc j = Tmax(r1) + δ ∈ {Tmax(r1) + δ : r1 ∈ RC1 (ϕ, d) ∧ Tmax(r1) + δ > d}. Or j ≤ t1 < TC1 (ϕ, d) ≤ τC1,δ(ϕ, d) = min{Tmax(r1)+δ : r1 ∈ RC1 (ϕ, d)∧Tmax(r1)+δ > d}. Absurde. Donc RC (ϕ, t1) = RC (ϕ, d). — Si C = C1→x ou si C = @C1, la démonstration est immédiate car TC (ϕ, d) = TC1 (ϕ, d). 2.6 Tableau récapitulatif informel des propriétés du langage des chroniques Le Tableau 2.1 présente un récapitulatif informel de l’ensemble des constructions et propriétés du langage des chroniques qui ont été présentées dans ce chapitre. 66CHAPITRE 2. CONSTRUCTION D’UN CADRE THÉORIQUE POUR LA RECONNAISSANCE DE COMPORTEMENTS : LE LANGAGE DES CHRONIQUES Tableau 2.1 – Récapitulatif informel des constructions et propriétés du langage des chroniques Nom Chronique Pré-requis Ce(C1)∩Ce(C2) ={♦} Ce Cr Forme de l’arbre Condition temporelle Commut. Assoc. Look-ahead évènement simple A {♦} Ce (e, t) min{t:ϕ(i)=(e, t) ∧t > d} séquence C1 C2 • ∪ Ce hr1, r2i Tmax(r1) < Tmin(r2) • min{TC1 , TC2 } conjonction C1& C2 • ∪ Ce hr1, r2i • • min{TC1 , TC2 } disjonction C1 || C2 ∩ Ce hr1, ⊥i, h⊥, r2i • • min{TC1 , TC2 } absence (C1) − [C2[ • ∪ Cr(C1) hr1i ∀r2 ( Tmin(r1)>Tmin(r2) ∨ Tmax(r1) Tmin(r2) ∧ Tmax(r1) Tmin(r2) ∧ Tmax(r1)= Tmax(r2) min{TC1 , TC2 } equals C1 equals C2 • ∪ Ce hr1, r2i Tmin(r1) = Tmin(r2) ∧ Tmax(r1)= Tmax(r2) • • min{TC1 , TC2 } lasts C lasts δ Cr Ce hri Tmax(r)− Tmin(r)=δ TC at least C at least δ Cr Ce hri Tmax(r)− Tmin(r)>δ TC at most C at most δ Cr Ce hri Tmax(r)− Tmin(r)<δ TC then C then δ Cr Ce hr, (τ, i)i i = Tmax(r)+δ min{τC1,δ(ϕ, d), TC1 (ϕ, d)} nommage C →x Cr {x, ♦} hri TC cut C1!C2 • ∪ Ce hr1, r2i Tmax(r1) < Tmin(r2) . . . min{TC1 , TC2 } changement d’état C1!!C2 • ∪ Ce hr1, r2i Tmax(r1) < Tmin(r2) . . . min{TC1 , TC2 } évènement de reco. @ C Cr Ce (e, t) TC 67Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements 2.7 Conclusion Dans ce chapitre, nous avons largement étendu le langage des chroniques présenté dans [CCK11]. Nous avons ajouté de nombreux opérateurs, augmentant ainsi l’expressivité de notre langage. Notamment, nous avons ajouté dix constructions exprimant toutes les contraintes temporelles possibles en transposant dans notre formalisme la logique d’intervalles d’Allen. Nous avons également formalisé la notion de propriété liée à un évènement du flux à analyser. Ceci nous a ensuite permis de doter le langage des chroniques de la possibilité d’exprimer des contraintes sur ces attributs d’évènement. Pour l’ensemble de ces constructions, nous avons formellement défini la syntaxe et la sémantique associées. Pour ce faire, nous avons été amenés à raffiner la représentation des reconnaissances en passant d’un formalisme ensembliste à un formalisme arborescent conservant davantage d’informations sur la reconnaissance. Nous avons étudié les principales propriétés du langage étendu des chroniques. Nous avons également défini une fonction de Look-ahead qui permet de formaliser la gestion du temps continu dans le cadre d’une implémentation éventuelle du processus de reconnaissance, en indiquant à quels instants interroger le système. Nous possédons donc maintenant un cadre théorique formel complet pour effectuer de la reconnaissance de comportements. Il s’agit donc maintenant d’implémenter un processus de reconnaissance de chroniques fondé sur cette base théorique. Nous allons construire deux tels modèles : — dans les Chapitres 3 et 4, nous allons définir un modèle à l’aide de réseaux de Petri colorés permettant de valider les principes de reconnaissance en faisant notamment ressortir les problèmes de concurrence ; — dans le Chapitre 5, nous implémentons un modèle de reconnaissance sous la forme d’une bibliothèque C++ appelée Chronicle Recognition Library (CRL). 68Chapitre 3 Un modèle de reconnaissance en réseaux de Petri colorés dit « à un seul jeton » Sommaire 4.1 Construction et fonctionnement des réseaux dits « multi-jetons » . 118 4.1.1 Types et expressions utilisés dans les réseaux multi-jetons . . . . . . . . 119 4.1.2 Structure globale des réseaux multi-jetons . . . . . . . . . . . . . . . . . 119 4.1.3 Briques de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 4.1.4 Construction par induction . . . . . . . . . . . . . . . . . . . . . . . . . 126 4.1.5 Bilan sur le degré de contrôle acquis et stratégie de tirage . . . . . . . . 133 4.2 Construction et fonctionnement des réseaux « contrôlés » . . . . . . 134 4.2.1 Types et expressions utilisés . . . . . . . . . . . . . . . . . . . . . . . . . 135 4.2.2 Structure globale des réseaux . . . . . . . . . . . . . . . . . . . . . . . . 137 4.2.3 Briques de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 4.2.4 Un séparateur de jetons générique . . . . . . . . . . . . . . . . . . . . . 144 4.2.5 Construction par induction des réseaux contrôlés . . . . . . . . . . . . . 146 4.2.6 Graphes d’espace d’états des réseaux contrôlés . . . . . . . . . . . . . . 159 4.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 Dans le Chapitre 2, nous avons formalisé un langage de description de comportements, le langage des chroniques, et sa sémantique associée, définissant ainsi la notion de reconnaissance d’une chronique dans un flux d’évènements. Il s’agit maintenant de proposer une implémentation du processus de reconnaissance dont il est possible de montrer que l’exécution respecte la sémantique préalablement définie dans la Section 2.3.2. En effet, dans l’optique de traiter des applications critiques (par exemple s’assurer qu’un avion sans pilote respecte bien des procédures de sécurité 69Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements données, comme dans la Section 5.3), il faut que le processus de reconnaissance soit fiable et robuste car il n’y a pas de droit à l’erreur. Nous allons développer deux implémentations du système de reconnaissance de comportements permettant cette vérification. Dans ce chapitre et le suivant, nous commençons par définir, à l’aide de réseaux de Petri colorés, un premier modèle de reconnaissance d’un sous-langage des chroniques restreint aux opérateurs de séquence, de conjonction, de disjonction et d’absence, et qui ne permet donc pas l’expression de contraintes temporelles ni de contraintes sur des attributs d’évènement. Pour chaque chronique, un réseau, construit par induction, calcule l’ensemble des reconnaissances de la chronique sur un flux d’évènements donné. Une version initiale de ce modèle est présentée dans [CCK11], mais il n’est pas totalement formalisé car il faut réaliser la démonstration de son adéquation avec la sémantique des chroniques. Ce modèle, contrairement à ceux présentés dans le Chapitre 4, ne possède qu’un jeton par place. C’est pourquoi nous nous y référons comme le modèle « à un seul jeton ». Dans ce chapitre, nous complétons la formalisation des réseaux de Petri colorés présentés dans [CCK11] et nous nous attaquons à la vérification de son adéquation [CCKP12a] : — nous posons une nouvelle définition théorique de la notion de fusion de réseaux de Petri colorés ; — nous corrigeons les modèles de la conjonction et de l’absence pour qu’ils fonctionnent dans tous les cas de composition ; — nous proposons une formalisation de la construction des réseaux en faisant ressortir une structure commune à tous les réseaux afin de pouvoir les définir par induction ; — nous formalisons également les règles d’exécution des réseaux pour bien obtenir les ensembles de reconnaissances des chroniques concernées ; — nous démontrons la correction des réseaux vis-à-vis de la sémantique ensembliste de la Section 2.3.2 pour les chroniques incluant, au plus, une absence au plus haut niveau. Dans une première Section (3.1), nous commençons par rappeler la définition des réseaux de Petri colorés en introduisant la notion d’arcs inhibiteurs ainsi qu’une nouvelle définition de fusion. Nous construisons ensuite formellement dans la Section 3.2 les réseaux de Petri colorés modélisant la reconnaissance de chroniques ; puis, dans la Section 3.3, nous décrivons le comportement des réseaux lorsqu’ils suivent une certaine règle d’exécution définie en 3.3.6. Le modèle est alors complètement formalisé. Ceci nous permet de montrer dans la Section 3.4 que, pour des constructions faisant intervenir au plus une absence au plus haut niveau, les reconnaissances produites par les réseaux correspondent exactement à celles définies par la sémantique du langage. Nous achevons ce chapitre en étudiant dans la Section 3.5 la complexité des réseaux construits. 3.1 Définition du formalisme des réseaux de Petri colorés Commençons par définir le formalisme des réseaux de Petri colorés employé par la suite pour modéliser le processus de reconnaissance. Dans la Section 3.1.1, nous introduisons les notions de type et d’expression. Nous donnons ensuite dans la Section 3.1.2 une définition des réseaux de Petri colorés. Cette définition est complétée dans la Section 3.1.3 par une nouvelle notion de fusion de réseaux, et dans la Section 3.1.4 par des arcs inhibiteurs. 70CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS DIT « À UN SEUL JETON » 3.1.1 Types et expressions Il s’agit ici de fournir un cadre formel pour la description des types de données et des fonctions utilisés dans les réseaux (voir la Section 3.2.1 pour la description concrète des types et expressions de nos réseaux). À partir d’un ensemble de types de base, nous construisons l’ensemble des types de fonction possibles : Définition 20 (signature d’expression typée). Soit un ensemble B dont les éléments seront des types de base. On définit inductivement l’ensemble des types fonctionnels de B, noté TB, par : b ∈ B b ∈ TB (type de base) τ1, . . . , τn, τ ∈ TB τ1 × · · · × τn → τ ∈ TB (type fonctionnel) On définit l’arité d’un type χ ∈ TB, notée ari(χ), par : — si χ ∈ B, alors ari(χ) = 0 — si χ = τ1 × · · · × τn → τ , alors ari(χ) = n Si B est un ensemble de types de base, F, un ensemble de fonctions, et σ : F −→ TB une fonction de typage, on appelle Σ = (B, F, σ) une signature d’expression typée. À partir de cette signature, on peut définir l’ensemble des expressions qui sont employées dans les gardes et les étiquettes des arcs : Définition 21 (ensemble des expressions). Soit Σ = (B, F, σ) une signature d’expression typée. Un ensemble de variables B-typées est un couple (V, σ) où V est un ensemble de variables et σ : V → B est une fonction de typage. On définit par induction l’ensemble des V -expressions de Σ, noté ExprΣ(V ) , et on prolonge canoniquement la fonction σ à ExprΣ(V ) par : x ∈ V x ∈ ExprΣ(V ) (variable) c ∈ F ari(σ(c)) = 0 c ∈ ExprΣ(V ) (constante) f ∈ F e1, . . . , en ∈ ExprΣ(V ) σ(f) = σ(e1) × · · · × σ(en) → τ f(e1, . . . , en) ∈ ExprΣ(V ) σ(f(e1, . . . , en)) = τ (fonction) 3.1.2 Réseaux de Petri colorés Un réseau de Petri coloré est un graphe biparti composé de deux types de nœuds : des places représentées par des ellipses, et des transitions représentées par des rectangles. Des arcs orientés lient des places à des transitions. Ils sont étiquetés par des expressions. On les appelle arcs en entrée et, dans les réseaux que nous utilisons, ils sont étiquetés par des noms de variables. D’autres arcs orientés lient des transitions à des places. On les appelle arcs en sortie et ils sont étiquetés par des expressions de fonctions dans lesquelles des variables des arcs d’entrée de la transition, appelées variables d’entrée, peuvent apparaître. 71Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements Les places sont typées et stockent un ou plusieurs éléments de leur type, appelés jetons, qui constituent le marquage de la place. Dans les réseaux de Petri de ce chapitre, chaque place ne contiendra qu’un seul jeton. En revanche, dans le Chapitre 4, nous construisons un modèle tirant parti de la possibilité d’avoir plusieurs jetons par place. Les transitions peuvent être munies de gardes, c’est-à-dire de conditions booléennes, dans lesquelles peuvent apparaître les variables d’entrée de la transition. Une transition peut être tirée lorsque les deux conditions suivantes sont réunies : (i) si elle possède une garde, celle-ci est vérifiée ; (ii) toutes les places liées par un arc d’entrée à la transition possèdent un jeton (c’est-à-dire qu’une valeur peut être attribuée à chaque variable d’entrée de la transition). Tirer une transition revient à consommer les jetons indiqués sur les arcs d’entrée de la transition et à appliquer les fonctions étiquetant les arcs de sortie de la transition, c’est-à-dire à ajouter la valeur de ces fonctions au contenu des places liées par des arcs de sortie à la transition. Ainsi, au fur et à mesure que les transitions sont tirées, le marquage des places évolue. Remarque 16 (multiples tirages successifs possibles de transitions). On remarque donc que, pour un marquage donné d’un réseau, il peut y avoir plusieurs séquences possibles de transitions tirables. Ce comportement non déterministe – dans le sens où il ne mène pas nécessairement toujours au même marquage – peut être souhaité pour exprimer différentes possibilités d’évolution d’un système. Cependant, notre travail sur les réseaux de Petri nécessite d’obtenir systématiquement le même marquage à l’issue du traitement occasionné par un évènement du flux. En effet, on doit pouvoir lire dans celui-ci l’ensemble des reconnaissances de la chronique. Notons que cela n’implique pas qu’il n’existe qu’une seule stratégie de tirage de transitions adaptée, comme on le verra dans la Section 4.2. Il nous faudra donc soit accompagner chaque réseau d’une stratégie de tirage, soit montrer que toute séquence possible de transitions donne le même marquage final du réseau. Définissons maintenant plus formellement un réseau de Petri coloré, d’après la définition de [JK09]. Définition 22 (réseau de Petri coloré). Un réseau de Petri coloré N est un 9-uplet (P, T, A, B, V, C, G, EX, I) où : 1. P est un ensemble fini de places ; 2. T est un ensemble fini de transitions disjoint de P ; 3. A ⊆ P × T ] T × P est un ensemble d’arcs orientés ; 4. B est un ensemble fini de types ; 5. V est un ensemble fini de variables typées par une fonction σ telle que ∀v∈V σ(v)∈B ; 6. C : P → B est une fonction de coloriage qui à chaque place associe un type ; 7. G : T → ExprΣ(V ) est une fonction de garde qui à chaque transition associe une garde de type booléenne et dont les variables sont des éléments de V ; 72CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS DIT « À UN SEUL JETON » 8. EX : A → ExprΣ(V ) est une fonction d’expression d’arcs qui à chaque arc associe une expression telle que, pour tout arc a ∈ A, EX(a) est du même type que la place à laquelle est relié l’arc a ; 9. I : P → ExprΣ(V ) est une fonction d’initialisation qui à chaque place associe un marquage initial tel que, pour toute place p ∈ P, σ(I(p)) = C(p). Pour modéliser et exécuter les réseaux de Petri colorés, nous utilisons le logiciel CPN Tools 1 [RWL+03]. La Figure 3.1 présente l’apparence d’un réseau dans l’interface de CPN Tools. Pour simplifier la lecture et la conception de réseaux, CPN Tools dispose d’un système d’annotation de fusion (« fusion tags ») : deux places possédant la même annotation de fusion 2 doivent être assimilées à une unique place, et possèdent par conséquent le même marquage. Ce système sert notamment à la composition de réseaux, ce que nous exploitons pour la construction inductive de nos réseaux. Il offre également la possibilité d’effectuer des simulations et des analyses d’espace d’états. INT transition [garde cpt] cpt+1 0 place cpt 3 1`3++ 2`4 marquage initial marquage courant: 1 jeton de valeur 3 et 2 jetons de valeur 4 type nombre total de jetons annotation de fusion annotation de fusion Figure 3.1 – Un réseau sur CPN Tools 3.1.3 La fusion de places Nous modélisons le processus de reconnaissance de chroniques en élaborant des réseaux de Petri colorés associés aux chroniques, et ce de façon modulaire : cette construction se fait par induction sur la structure de la chronique, à l’aide de fusion de places. Il s’agit maintenant de définir formellement ce mécanisme de fusion. Il existe deux types de fusion pour les réseaux de Petri colorés : la fusion de places, et la fusion de transitions. Cette dernière consiste en l’unification de plusieurs transitions en une unique transition regroupant les arcs d’entrée et de sortie de ces transitions, et dont la garde est la conjonction de l’ensemble des gardes des transitions fusionnées. La transition résultante n’est donc tirable que lorsque l’ensemble des transitions fusionnées le sont. Cette caractéristique n’est pas désirable pour notre modèle et nous n’utilisons donc pas cette fonctionnalité. La fusion de places se comprend premièrement intuitivement comme une facilité d’écriture : les places fusionnées partagent systématiquement le même marquage initial, le même type, et le même 1. http://cpntools.org/ 2. Selon le formalisme défini par la suite en 3.1.3, ces deux places appartiennent donc à un même ensemble de fusion de places. 73Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements marquage courant, et il s’agit donc du dédoublement d’une unique place facilitant la représentation des arcs d’entrée et de sortie, évitant ainsi l’éventuel « plat de spaghetti ». Cependant, nous verrons que la fusion de places peut également poser des problèmes de sémantique. Une définition formelle de la fusion est proposée dans [CP92] (Definition 4.3) où sont définis des réseaux de Petri modulaires – Modular Coloured Petri Nets (MCPNs). Ce sont des triplets (S, P F, T F) où : (i) S est un ensemble fini de modules qui sont des réseaux de Petri disjoints ; (ii) P F est un ensemble fini d’ensembles de fusion de places vérifiant certaines conditions ; (iii) T F est un ensemble fini d’ensembles de fusion de transitions. Nous nous inspirons largement de cette définition, mais nous avons besoin d’y apporter quelques modifications. D’une part, dans cette définition, un réseau de Petri modulaire est construit à partir d’un ensemble de réseaux de Petri non modulaires S dont on souhaite fusionner certaines places et certaines transitions. Cette définition ne convient pas directement à notre construction. En effet, elle est définie par induction, et des fusions successives sont donc effectuées. La fusion doit donc se faire à partir d’un ensemble de réseaux de Petri eux-même modulaires. Dans [CP92] il est ensuite montré (Théorème 4.9) que, pour tout MCPN, on peut aisément construire un réseau de Petri coloré non modulaire équivalent, ce qui résout notre problème. Cependant, afin de nous affranchir de conversions incessantes, nous établissons dans cette section une définition directe de la fusion de places à partir de MCPN plutôt qu’à partir de réseaux de Petri colorés simples. D’autre part, un pré-requis sur l’ensemble P F est que toutes les places d’un de ses ensembles de fusions de places pf (c’est-à-dire toutes les places à fusionner ensemble) doivent avoir le même type et le même marquage initial. C’est une condition que l’on retrouve également dans un article de K. Jensen [HJS91]. Cependant, dans le logiciel que nous utilisons, CPN Tools, il est possible de fusionner deux places ayant des types et marquages initiaux différents : c’est la première place sélectionnée qui définit les caractéristiques de la seconde. Nous n’autoriserons pas la fusion de places de types différents car cela pourrait entraîner la construction d’un réseau mal formé, même si les réseaux de départ son bien formés. En revanche, la fusion de places de marquages initiaux différents offre des possibilités intéressantes en permettant d’adapter le marquage initial d’une place selon qu’elle soit fusionnée ou non. Nous aurons besoin d’exploiter cette possibilité, donc nous l’intégrons dans notre définition de la fusion. Enfin, comme nous ne mettons pas en œuvre de fusion de transitions, nous ne faisons pas apparaître l’ensemble T F. On obtient ainsi les définitions suivantes, en commençant par poser la notion de MCPN puis en formalisant la fusion. Définition 23 (réseau de Petri coloré modulaire). Un réseau de Petri coloré modulaire (MCPN) est un couple (S, P F) vérifiant les propriétés suivantes : (i) S est un ensemble fini de modules tel que : — Chaque module s ∈ S est un réseau de Petri coloré (Ps, Ts, As, Bs, Vs, Cs, Gs, EXs, Is). 74CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS DIT « À UN SEUL JETON » — Les ensembles des éléments des réseaux sont deux-à-deux disjoints : ∀s1 ∈ S ∀s2 ∈ S [s1 6= s2 ⇒ (Ps1 ∪Ts1 ) ∩ (Ps2 ∪Ts2 ) = ∅] Notons que l’on peut renommer les places et les transitions de manière unique en les préfixant par un identifiant de réseau. On pourra donc supposer que les réseaux ont des places et des transitions distinctes sans mettre en œuvre cette préfixation qui conduit à des notations excessivement lourdes. (ii) P F ⊆ P × P(P) est un ensemble fini de couples de fusion de places, dont on appellera place d’initialisation de la fusion le premier membre, ainsi qu’ensemble de fusion de places le second, où P = S s∈S Ps et P(P) désigne l’ensemble des parties de P, et tel que : — Toute place d’initialisation appartient à l’ensemble de fusion de places associé. ∀(p0, E) ∈ P F p0 ∈ E — Toutes les places d’un ensemble de fusion de places ont même type. ∀(p0, E) ∈ P F ∀p1 ∈ E ∀p2 ∈ E C(p1) = C(p2) — L’ensemble des ensembles de fusion de places forme une partition de P 3 . [ ∀p ∈ P ∃p0 ∈ P ∃E ∈ P(P) ((p0, E) ∈ P F ∧ p ∈ E) ] ∧ [ ∀p01 ∈ P ∀p02 ∈ P ∀E1 ⊆ P ∀E2 ⊆ P ( (p01 , E1)∈P F ∧(p02 , E2)∈P F ∧E16=E2 ) ⇒ E1∩E2 = ∅ ] Remarque 17. Notons qu’à tout réseau de Petri coloré N correspond trivialement un MCPN équivalent : il suffit de poser M = {S, P F} où S = {N} et P F = {(p, {p}) : p ∈ PN }. On définit maintenant une fonction de fusion entre réseaux de Petri modulaires. C’est celle-ci que nous appliquons lors de l’induction pour construire nos réseaux de Petri associés aux chroniques. Définition 24 (fusion de places). Soit M = {(S1, P F1), . . . ,(Sn, P Fn)} un ensemble fini de MCPN et soit P F0 un ensemble fini de couples de fusion de places tels que : — Les places d’initialisation de fusion des couples de P F0 sont des places d’initialisation de couples des P F1, . . . , P Fn : ∀p0∈P ∀E0⊆P [ (p0, E0)∈P F0 ⇒ ( ∃i∈J1, nK ∃Ei⊆P (p0, Ei)∈P Fi ) ] — Les ensembles de fusion de places des couples de P F0 sont formés de places des MCPN de M : ∀p0∈P ∀E0⊆P [ (p0, E0)∈P F0 ⇒ ( ∀p∈E0 ∃i∈J1, nK ∃Ei⊆P ((p0, Ei)∈P Fi ∧ p ∈ Ei) ) ] Alors on peut définir la fusion de ces MCPN relativement à l’ensemble P F0 : F usion(M, P F0) = (S, P F) où : — S = S 1≤i≤n Si — P F = {(p0, S p∈E E(p)) : (p0, E) ∈ P F0} où E(p) est l’unique Ei tel que (p, Ei) ∈ P Fi . 3. Notons que la contrainte que les ensembles de fusion de places soient deux à deux disjoints n’était pas requise dans [CP92] mais découle de notre construction qui autorise la fusion de places à marquages initiaux différents. En effet, si une place appartenait à deux ensembles de fusion de places distincts, deux marquages initiaux différents pourraient lui être associés, ce qui est absurde. 75Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements On peut montrer, à l’aide d’une démonstration analogue à celle exposée dans [CP92], que le réseau de Petri suivant ainsi que le MCPN à partir duquel il est construit sont équivalents du point de vue de leur comportement (évolution du marquage, transitions tirables, places atteignables. . . ). Définition 25 (réseau de Petri coloré équivalent). Pour toute place d’initialisation p0, E(p0) désigne l’ensemble de fusion de places associé, et pour toute place p et toute transition t, s(p) et s(t) désignent respectivement le réseau de Petri de S tel que p ∈ Ps(p) et celui tel que t ∈ Ts(t) . Soit M = (S, P F) un réseau de Petri coloré modulaire. On définit le réseau de Petri coloré équivalent par M∗ = (P ∗ , T ∗ , A∗ , B ∗ , V ∗ , C∗ , G∗ , EX∗ , I∗ ) où : (i) P ∗ = {p0 ∈ P : ∃E0 ∈ P(P) (p0, E0) ∈ P F} (on rappelle que P = S s∈S Ps) (ii) T ∗ = S s∈S Ts (iii) A∗ = {(p0, t) ∈ P ∗ × T ∗ : ∃p ∈ E(p0) (p, t) ∈ As(p)} ∪ {(t, p0) ∈ T ∗ × P ∗ : ∃p ∈ E(p0) (t, p) ∈ As(p)} (iv) B ∗ = S s∈S Bs (v) V ∗ = S s∈S Vs (vi) C ∗ : P ∗ → B∗ , p0 7→ Cs(p0)(p0) (vii) G∗ : T ∗ → ExprΣ(V ∗) , t 7→ Gs(t)(t) (viii) EX∗ : A∗ → ExprΣ(V ∗) est défini par : — pour tous (p0, t) tels que ∃p ∈ E(p0) (p, t) ∈ As(p) , (p0, t) 7→ EXs(p)((p, t)), — pour tous (t, p0) tels que ∃p ∈ E(p0) (t, p) ∈ As(p) , (t, p0) 7→ EXs(p)((t, p)). (ix) I ∗ : P ∗ → ExprΣ(V ∗) , p0 7→ Is(p0)(p0) 3.1.4 Arcs inhibiteurs Dans le Chapitre 4, nous construisons des réseaux de Petri plus complexes où il faut pouvoir spécifier qu’une transition n’est tirable que si une place donnée est vide. Cette contrainte ne peut pas s’exprimer par une simple garde sur la transition. On introduit un nouveau type d’arc, l’arc inhibiteur, qui permet l’implémentation d’algorithmes fondés sur l’absence ou non de jetons dans une place. Des réseaux équivalents peuvent être construits sans arcs inhibiteurs à l’aide de listes mais cela conduit à des réseaux trop complexes. On complète donc la Définition 22 des réseaux de Petri colorés comme suit : Définition 26 (arcs inhibiteurs). Un réseau de Petri coloré muni d’arcs inhibiteurs est un 10-uplet (P, T, A, B, V, C, G, EX, I, B) où (P, T, A, B, V, C, G, EX, I) est un réseau de Petri coloré et : 10. B ⊆ P × T est un ensemble d’arcs inhibiteurs orientés. Un arc inhibiteur n’a d’incidence que sur le tirage des transitions. Notons Inh(t) = {p ∈ P : (p, t) ∈ B} l’ensemble des places reliées par un arc inhibiteur à une transition t ∈ T. La contrainte suivante s’ajoute pour qu’une transition t ∈ T soit tirable : 76CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS DIT « À UN SEUL JETON » (iii) aucune place inhibitrice p ∈ Inh(t) ne contient de jeton. Dans le logiciel CPN Tools, les arcs inhibiteurs sont représentés comme sur la Figure 3.2. Lorsque la place est vide, la transition est tirable, ce qui est indiqué par le liseré vert. place 0 INT transition 1 1`3 arc inhibiteur place 0 INT transition Figure 3.2 – Arcs inhibiteurs sur CPN Tools 3.2 Construction formelle des réseaux dits « à un seul jeton » À l’aide du formalisme des réseaux de Petri colorés munis du mécanisme de fusion décrit dans 3.1, nous construisons par induction un modèle du processus de reconnaissance. Pour chaque chronique C, nous définissons un réseau de Petri coloré associé dont le marquage évolue en fonction du flux d’évènements. Une place du réseau contient l’ensemble des reconnaissances correspondant à la chronique étudiée. Nous commençons par établir dans la Section 3.2.1 les types des données et fonctions utilisés. Nous donnons ensuite un aperçu de la structure générale des réseaux que nous allons construire (Section 3.2.2). Nous posons dans la Section 3.2.3 un ensemble élémentaire de réseaux de Petri colorés, les briques de base, que nous utilisons pour construire nos réseaux lors d’une induction sur la structure de la chronique dans la Section 3.2.4. 3.2.1 Types et expressions utilisés dans le modèle Posons maintenant les types et fonctions que nous utilisons dans nos réseaux de Petri en défi- nissant Σ = (B, F, σ) (Définition 20). Posons B = {INT, Event, NCList}, et définissons le type NEvent = Event × INT. Le type INT correspond à un entier, Event, à un évènement, et NCList, à une liste de listes de couples NEvent. Un jeton de type NCList correspond à un ensemble de reconnaissances. Chaque élément de la liste NCList est une liste de NEvent, c’est-à-dire une liste d’évènements datés qui représente une reconnaissance. Posons F = {+, max, ANR, CPR, rem_obs, mixAnd, last_ini_recog} qui correspond à l’ensemble des fonctions employées dans nos réseaux. 77Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements Le Tableau 3.3 décrit brièvement le fonctionnement général de ces fonctions. Une explication axée sur notre utilisation de ces fonctions sera donnée lors de la description de l’exécution des réseaux dans la Section 3.3. À partir des fonctions de F, nous pouvons alors définir une dernière fonction qui permet de compléter des reconnaissances dans une liste avec une instance d’un évènement : complete : ((E(a), cpt), curr, inst) 7→ ANR(inst, CPR([[(E(a), cpt + 1)]], curr) Tableau 3.3 – Fonctions utilisées dans nos réseaux Fonction Type (image de la fonction σ) Description + INT × INT → INT Addition usuelle. max INT × INT → INT Entier maximum entre deux entiers. ANR NCList × NCList → NCList (Add New Recognition) Ajoute le contenu de la seconde liste à la première liste, s’il n’y est pas encore. CPR NEvent × NCList → NCList (Complete Partial Recognition) Renvoie la liste de listes de couples dont chaque liste de couples a été complétée par le couple supplé- mentaire (E(a), cpt + 1). rem_obs INT × NCList → NCList Renvoie la liste de laquelle on a d’abord supprimé toutes les listes de couples dont un des couples (E(a), cpt) a un indice cpt inférieur à l’entier n qui est en argument. mergeAndNew NCList × NCList × NCList × NCList → NCList Renvoie la dernière liste à laquelle a été ajoutée une combinaison explicitée par la suite des trois premières listes. startsub NCList → NCList Renvoie [ [ ] ] si l’argument est une liste non vide, [ ] sinon. chg_win INT × NCList → INT Renvoie le maximum entre l’entier en argument et le plus grand instant de reconnaissance des reconnaissances de la liste. concatabs NCList × NCList × NCList × INT → NCList Effectue les combinaisons séquentielles possibles entre les deux premières listes, puis les ajoute à la troisième liste si elles sont nouvelles (le critère de nouveauté étant déterminé par une comparaison avec l’entier). 78CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS DIT « À UN SEUL JETON » 3.2.2 Structure générale des réseaux « à un seul jeton » Nous construisons donc inductivement sur la structure du langage un réseau de Petri coloré pour chaque chronique. Il permet de calculer, en fonction d’un flux d’évènements, l’ensemble de reconnaissances associé. Pour pouvoir réaliser cette construction inductive, il faut que les réseaux soient modulaires. Cette caractéristique se traduit par le fait que tous les réseaux associés aux chroniques ont une structure générale identique permettant ainsi de les combiner. Cette structure est présentée dans la Figure 3.4. Figure 3.4 – Structure des réseaux Chaque réseau possède un compteur d’évènements (place Present et transition End) ainsi que quatre places principales : — la place Present, de type INT, est fusionnée avec le compteur d’évènements et contient un entier correspondant au nombre d’évènements déjà traités ; — la place Start est de type NCList, elle contient une liste de reconnaissances qui seront complétées par le réseau ; — la place Success est également de type NCList, elle contient les reconnaissances de la place Start complétées par le réseau ; — la place Wini, de type INT, contient un entier qui sert de repère dans le cas d’une absence, permettant de déterminer les reconnaissances qu’il faut alors supprimer de la place Start. Chaque place contient exactement un seul jeton d’où le nom de modèle « à un seul jeton ». Les places Start et Success sont marquées d’un jeton contenant une liste des reconnaissances. Les reconnaissances vont circuler dans les réseaux au fur et à mesure de l’évolution du flux d’évènements. Pour une chronique complexe, une reconnaissance est d’abord vide [ ] dans la place Start 79Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements du réseau général, puis elle va petit à petit être complétée par les évènements pertinents du flux. Au fur et à mesure qu’elle est complétée, elle va transiter de la place Start à la place Success des sous-réseaux, passant de sous-réseau en sous réseau pour arriver, lorsque la reconnaissance est complète, à la place Success du réseau général. Les réseaux « à un seul jeton » se lisent de gauche à droite, ce qui correspond au circuit des reconnaissances. Ce sont ces quatre places principales que l’on fusionne tour à tour entre plusieurs réseaux et avec les briques élémentaires que nous allons définir dans la Section 3.2.3. Pour la gestion correcte d’absences dans une séquence (ce qui est détaillé dans la Section 3.3.5), les places Wini sont en fait divisées en deux catégories : les places WiniIn et les places WiniOut qui permettent de fusionner correctement les places pour construire nos réseaux. Lors de la construction des réseaux, nous définissons donc cinq fonctions qui à chaque chronique C associent les cinq types de place principaux Present(C), Start(C), Success(C), WiniIn(C) et WiniOut(C) du réseau correspondant à la chronique C. 3.2.3 Briques de base Définissons maintenant les quelques réseaux élémentaires que nous utilisons comme briques de base dans la construction inductive de notre modèle de reconnaissance. cpt+1 cpt End Present 0 INT Figure 3.5 – Compteur d’évènements Compteur Ce réseau élémentaire, noté CPT et présenté dans la Figure 3.5, fait office de compteur d’évènements. Il est composé d’une place Present dans laquelle est stockée la valeur de ce compteur, et d’une transition End qui incrémente le compteur à chaque fois qu’elle est tirée. Opérateur AND Ce réseau élémentaire, noté OPAND et présenté dans la Figure 3.6, calcule l’ensemble des reconnaissances de la conjonction de deux chroniques C1 et C2. On donne ici une description très succincte du fonctionnement de cet opérateur. La Section 3.3.4 détaille davantage le déroulement d’une reconnaissance de conjonction. Le réseau est composé de six places. Dans deux places, Operand1 et Operand2, sont stockées les reconnaissances respectives de C1 et de C2. Lorsque la transition AND est tirée, les reconnaissances de C1 et celles de C2 sont combinées de façon à récupérer dans la place Success les reconnaissances de C1&C2. Si la conjonction forme la seconde partie d’une séquence, c’est-à-dire si la chronique étudiée est de la forme · · ·(C3 C1&C2)· · · , nous ne souhaitons pas que le réseau commence à reconnaitre C1 et C2 tant que la première partie de la séquence (à savoir C3) n’a pas été reconnue. La transition Sub 80CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS DIT « À UN SEUL JETON » rem_obs init inst2 inst2 mergeAndNew curr inst1 inst2 inst Forget AND [] NCList Operand2 [] NCList ~1 INT Success [] NCList [] [] Wini inst Sub startSub curr NCList curr rem_obs init curr inst2 inst1 rem_obs init inst1 Operand1 inst1 Start NCList startsub curr curr2 curr init Figure 3.6 – Opérateur AND sert à initialiser les places Start de C1 et de C2 afin de contrôler la mise en route du mécanisme de reconnaissance de C1 et de C2. La transition Forget sert dans le cas de l’absence. La place Success de ce réseau joue un rôle central car elle stocke les reconnaissances de C1&C2. Nous aurons donc besoin de nous y référer pour effectuer des fusions. Pour cela, nous utiliserons Success(AND) pour Success, de même que Start(AND) pour Start et Wini(AND) pour Wini. bck init inst Update Down ~1 INT WiniBe ~1 INT [] NCList [] NCList [] [[]] INT init Sub WiniAf Abs Forget Start rem_obs init curr StartSub curr Oper Present Success concatabs inst curr inst2 cpt inst2 curr2 0 curr cpt max bck init init chg_win init inst [] inst [] NCList startsub inst NCList NCList Figure 3.7 – Opérateur ABS Opérateur ABS Ce réseau élémentaire, noté OPABS et présenté dans la Figure 3.7, sert à composer deux réseaux de Petri correspondant aux chroniques C1 et C2 pour obtenir les reconnaissances de (C1) − [C2[. Le rôle de ce réseau est double : — La partie de gauche du réseau est chargée d’assurer la gestion de l’entier repère stocké dans les places Wini du reste du réseau. Rappelons que cet entier permet d’établir si certaines 81Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements reconnaissances doivent être supprimées car invalidées par une absence. La place WiniBe stocke l’indice suivant celui de la dernière reconnaissance de C2 et est mise à jour par le tirage de la transition Update. Cet indice sert à supprimer les reconnaissances partielles de C1 qui ne doivent pas être complétées car C2 a été reconnue. La place WiniAf sert dans le cas où (C1) − [C2[ est elle-même imbriquée dans une autre absence : elle propage grâce à la transition Down la valeur du Wini de la seconde absence, mais la valeur de Wini de la première absence (celle dans WiniBe) n’est en revanche pas propagée à l’extérieur de celle-ci. — La partie de droite doit son origine au caractère modulaire de nos réseaux. Elle est chargée de recombiner les reconnaissances de l’absence (qui sont stockées dans la place Oper) avec les reconnaissances pouvant les précéder (qui sont dans la place Start). Ce genre de combinaison est nécessaire lorsque la chronique étudiée contient une absence mais à un niveau de profondeur non nul, par exemple lorsqu’une absence est composée avec une sé- quence (comme D ((A B) − [C[)). Il s’agit d’une combinaison analogue à celle effectuée par la fonction mergeAndNew pour l’opérateur OPAND mais avec une contrainte temporelle supplémentaire : la combinaison doit être séquentielle. Il n’est pas possible de faire transiter les reconnaissances précédant l’absence à travers le réseau d’absence car la portée de l’absence doit être délimitée. La brique ABS permet donc de marquer les bornes de l’absence et d’isoler les reconnaissances jusqu’à ce qu’elles soient prêtes à être combinées. Comme dans l’opérateur AND, la place StartSub sert à activer le réseau de l’absence. En effet, lorsque l’on cherche à reconnaître D ((A B) − [C[) par exemple, on ne souhaite pas commencer à reconnaître (A B) − [C[ tant qu’il n’y a pas de reconnaissance de D à compléter. La transition Sub permet donc à la fois de mettre à jour la liste des reconnaissances globales de la place Success, et d’activer le réseau de l’absence si nécessaire. Une description plus élaborée du mécanisme de l’absence et des nombreuses problématiques qui lui sont associées est donnée dans la Section 3.3.5. 3.2.4 Construction par induction Avec les types et expressions définis dans la Section 3.2.1 et les réseaux élémentaires de la Section 3.2.3, nous pouvons maintenant construire notre modèle en réseau de Petri colorés du processus de reconnaissance. Pour chaque chronique C, nous définissons par induction un réseau de Petri coloré N(C) qui calcule les reconnaissances de C. Chaque réseau résulte de la fusion d’un compteur d’évènements et de sous-réseaux. La construction par induction se fait donc en deux étapes. Pour une chronique C, nous définissons d’abord une réseau N0 (C) qui correspond au mécanisme global de reconnaissance sans le compteur, puis nous réalisons une fusion de N0 (C) avec le compteur pour définir N(C). Ce sont les réseaux N0 (C) qui sont utilisés comme sous-réseaux dans l’induction comme nous le verrons par la suite. Comme évoqué dans la Section 3.2.2, dans la construction par induction, certaines des places Present, Start, Success et Wini jouent un rôle dans la composition des réseaux. En effet, quelle que soit la chronique C, chaque réseau N(C) a la même structure globale que nous avons présentée dans la Figure 3.4. Formellement, nous définissons en parallèle de N(C) les places Present(C), Start(C), Success(C), WiniIn(C) et WiniOut(C) qui délimitent cette structure et qui sont donc 82CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS DIT « À UN SEUL JETON » utilisées si l’on compose le réseau avec un autre réseau. Dans cette section, nous présentons la construction formelle de nos réseaux de reconnaissance de chroniques en expliquant les fusions effectuées et le mécanisme global de chaque réseau. Dans les Sections 3.3.1 à 3.3.5, nous donnons ensuite une explication plus détaillée du mécanisme de chaque réseau. Si C = A ∈ N Dans le cas d’un évènement simple, ce réseau élémentaire utilisé pour sa reconnaissance correspond exactement à N0 (C). cpt End Forget A Present 1_Num 0 INT Wini ~1 Success [] NCList Present 1_Num INT Start 1_Num curr NCList rem_obs init curr curr [[]] init INT complete (E(a),cpt) curr inst 0 1_Num cpt+1 cpt inst Figure 3.8 – Réseau correspondant à la chronique A La Figure 3.8 représente le réseau N(A) relatif à l’évènement simple A. Comme évoqué dans la description de la structure générale des réseaux (Section 3.2.2), la place Start contient les reconnaissances devant être complétées par le réseau. Dans l’exemple présenté ici, il s’agit uniquement de reconnaître A. Le marquage de la place Start est donc [ [ ] ] : la reconnaissance à compléter est la reconnaissance vide [ ] qui pourra évoluer en une reconnaissance de A en transitant dans le réseau. La place Wini et la transition Forget sont utilisées si le réseau est fusionné pour construire une chronique plus complexe incluant une absence. On définit la structure du réseau : Present(C) = Present Start(C) = Start Success(C) = Success WiniOut(C) = Wini WiniIn(C) = ∅ 4 83Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements Puis on pose 5 : N(C) = Fusion({N 0 (C), CPT}, {(Present(C), {Present(C), Present(CPT)})}) (3.1) Si C = C1 C2 rem_obs init curr init End A Forget B Forget Present Fusion 84 Present Fusion 84 INT Success Fusion 85 Start Wini Present Fusion 84 Success Start Fusion 85 Wini Fusion 85 Fusion 84 INT cpt cpt+1 0 Fusion 84 0 cpt complete (E(a),cpt) curr inst inst NCList[] curr curr NCList [[]] rem_obs init curr init INT Fusion 84 INT 0 complete (E(b),cpt) curr inst NCList [] inst cpt curr curr [] NCList INT ~1 ~1 Figure 3.9 – Réseau correspondant à la chronique A B Afin de modéliser une séquence C1 C2 (comme la séquence A B dont le réseau est représenté Figure 3.9), nous fusionnons la place Success du réseau N(C1) avec la place Start du réseau N(C2). Le marquage initial de la place Start(C2) change donc : il prend le marquage initial de la place Success(C1), c’est-à-dire [ ]. Ainsi, le réseau ne commence pas à reconnaître C2 tant que ce n’est pas pour compléter une reconnaissance de C1. Remarque 18 (marquages initiaux des places Start). Dans nos réseaux, il y a deux marquages initiaux possibles pour une place Start : — la liste qui contient la liste vide, [ [ ] ], indique que le réseau peut activer son mécanisme et compléter la reconnaissance partielle vide [ ] – on dit alors que le réseau est activé ; — la liste vide [ ] indique qu’il n’y a encore aucune reconnaissance partielle à compléter, et tant que le marquage n’est pas modifié, le mécanisme du réseau ne peut pas opérer et on dit qu’il n’est pas activé. Les marquages initiaux des places Start permettent donc de contrôler précisément l’activation des différentes parties d’un réseau, pour ne pas activer la reconnaissance d’un évènement tant que 4. Ceci signifie qu’il n’y a pas de place WiniIn dans les réseaux d’évènement simple. 5. Par la suite, nous effectuons des fusions de réseaux de Petri colorés et de MCPN. Du fait de la Remarque 17, nous ne prenons pas la peine de redéfinir un MCPN équivalent pour les quelques réseaux de Petri non modulaires mis en jeu. 84CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS DIT « À UN SEUL JETON » ce n’est pas nécessaire. Par exemple, dans le cas de la séquence C1 C2, nous avons vu qu’il n’est pas nécessaire de commencer à reconnaître les évènements relatifs à C2 tant qu’une reconnaissance complète de C1 n’est pas disponible pour être complétée. Les différents marquages initiaux sont rendus possibles par la fonctionnalité de fusion évoquée dans la Section 3.1.3 qui détermine le marquage initial des places fusionnées. On pose : N0 (C) = Fusion({N0 (C1), N0 (C2)}, { (Present(C1), {Present(C1), Present(C2)}), (Success(C1), {Success(C1), Start(C2)}), (WiniIn(C1), {WiniIn(C1), WiniIn(C2), WiniOut(C2)}) }) On définit la structure du réseau : Present(C) = Present(C1) Start(C) = Start(C1) Success(C) = Success(C2) WiniOut(C) = WiniOut(C1) WiniIn(C) = WiniOut(C2) Puis nous fusionnons avec le compteur d’évènements comme dans l’équation (3.1). Sur la Figure 3.9, on remarque que les places Present(A), Present(B), et Present(CPT) ont la même annotation de fusion, à savoir Fusion_84. De même pour Success(A) et Start(B) qui appartiennent à un même ensemble de fusion annoté Fusion_85. Si C = C1 || C2 Afin de modéliser la disjonction (comme A || B dont le réseau est représenté Figure 3.10), les deux réseaux N0 (C1) et N0 (C2) fonctionnent en parallèle. Nous fusionnons donc les places Start des deux réseaux et les places Success des deux réseaux. On pose : N0 (C) = Fusion({N0 (C1), N0 (C2)}, { (Start(C1), {Start(C1), Start(C2)}), (Present(C1), {Present(C1), Present(C2)}), (Success(C1), {Success(C1), Success(C2)}), (WiniOut(C1), {WiniOut(C1), WiniOut(C2)}), (WiniIn(C1), {WiniIn(C1), WiniIn(C2)}) }) 85Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements inst init cpt init A Forget B Forget End Success Fusion 89 Present Fusion 87 Start Fusion 88 Wini Fusion 90 Present Fusion 87 Success Fusion 89 Start Fusion 88 Wini Fusion 90 Present Fusion 87 Fusion 89 Fusion 87 Fusion 87 Fusion 89 complete (E(a),cpt) curr inst INT0 cpt NCList curr [] curr Fusion 88 NCList [[]] rem_obs init curr INT Fusion 90 ~1 INT 0 Fusion 87 cpt+1 cpt INT0 complete (E(b),cpt) curr inst [] NCList inst curr curr NCList[[]] Fusion 88 rem_obs init curr Fusion 90 INT ~1 Figure 3.10 – Réseau correspondant à la chronique A || B On définit la structure du réseau : Present(C) = Present(C1) Start(C) = Start(C1) Success(C) = Success(C1) WiniOut(C) = WiniOut(C1) WiniIn(C) =  WiniIn(C1) si WiniIn(C1) 6= ∅ WiniIn(C2) sinon Puis nous fusionnons avec le compteur d’évènements comme dans l’équation (3.1). 86CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS DIT « À UN SEUL JETON » rem_obs init curr init inst2 curr startsub curr curr2 cpt rem_obs init curr init cpt cpt+1 cpt Forget AND Sub Forget A Forget B End Operand1 4_SuccessA NCList Operand2 4_SuccessB NCList Wini 4 Init INT Success [] NCList Start [] NCList startSub 4 Start [[]] Success 4_SuccessA NCList Wini 4 Init Present 4_Num Start 4 Start NCList Wini ~1 4 Init Start 4 Start NCList Success 4_SuccessB NCList Present 4_Num 0 Present 4_Num 4_SuccessA 4_SuccessB INT 4_Num 0 0 4_Num INT complete (E(a),cpt) curr inst 4_SuccessA [] inst curr curr init 4 Init ~1 INT rem_obs init curr 4 Start [[]] INT 4_Num complete (E(b),cpt) curr inst [] 4_SuccessB inst curr [[]] curr 4 Start INT 4 Init inst1 mergeAndNew curr inst1 inst2 inst inst curr NCList ~1 4 Init 4 Start rem_obs init inst1 rem_obs init inst2 inst2 curr inst1 [] [] Figure 3.11 – Réseau correspondant à la chronique A&B Si C = C1&C2 Pour modéliser une conjonction C1&C2 (comme A&B dont le réseau est représenté Figure 3.11), les réseaux N0 (C1) et N0 (C2) fonctionnent aussi en parallèle, donc nous fusionnons les places Start des deux réseaux. Nous fusionnons les places Success des deux réseaux avec des places de l’opérateur OPAND afin de construire les reconnaissances de C1&C2. On pose : N0 (C) = Fusion({N0 (C1), N0 (C2), OPAND}, { (Start(C1), {Start(C1), Start(C2)}), (Present(C1), {Present(C1), Present(C2)}), (Success(C1), {Success(C1), Operand1}), (Operand2, {Operand2, Success(C2)}), (WiniOut(C1), {WiniOut(C1), WiniOut(C2), Wini(AND)}, (WiniIn(C1), {WiniIn(C1), WiniIn(C2)}) }) 87Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements On définit la structure du réseau : Present(C) = Present(C1) Start(C) = Start(C1) Success(C) = Success(AND) WiniOut(C) = WiniOut(C1) WiniIn(C) =  WiniIn(C1) si WiniIn(C1) 6= ∅ WiniIn(C2) sinon Puis nous fusionnons avec le compteur d’évènements comme dans l’équation (3.1). Si C = (C1) − [C2[ rem_obs init curr init init chg_win init inst init curr inst2 concatabs inst curr inst2 cpt cpt rem_obs init curr init curr complete (E(c),cpt) curr inst cpt curr curr init cpt init curr cpt cpt+1 cpt Forget Update Down Sub Forget C Forget B Forget A End WiniAf INT Abs Fusion 92 [] NCList WiniBe Fusion 95 ~1 INT StartSub Fusion 94 [] NCList Oper Fusion 98 [] NCList Success NCList Start [[]] NCList Present Fusion 91 0 INT Wini ~1 INT Start Fusion 94 [] NCList Success Fusion 92 [] NCList Present Fusion 91 0 INT Start Fusion 93 [] NCList Success Fusion 98 [] NCList Wini Fusion 95 ~1 INT Present Fusion 91 0 INT Success Fusion 93 [] NCList Wini ~1 INT Start Fusion 94 [] NCList Present Fusion 91 0 INT Present 0 Fusion 91 INT Fusion 91 Fusion 94 Fusion 93 Fusion 91 Fusion 95 Fusion 98 Fusion 93 Fusion 91 Fusion 92 Fusion 94 Fusion 95 Fusion 94 complete (E(a),cpt) curr inst inst complete (E(b),cpt) curr inst inst rem_obs init curr curr rem_obs init curr inst curr max bck init bck ~1 Fusion 98 Fusion 91 startsub inst [] curr2 curr inst Fusion 92 [] inst Figure 3.12 – Réseau correspondant à la chronique (A B) − [C[ Afin de modéliser l’absence (C1) − [C2[ (comme (A B) − [C[ dont le réseau est représenté Figure 3.12), nous fusionnons les places Wini du réseau N(C1) et Success du réseau N(C2) avec des places de l’opérateur OPABS afin de rendre la chronique C2 « interdite ». On pose : 88CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS DIT « À UN SEUL JETON » N0 (C) = Fusion({N0 (C1), N0 (C2), OPABS}, { (Start(C1), {Start(C1), Start(C2), StartSub}), (Present(C1), {Present(C1), Present(C2), Present(ABS)}), (Success(C1), {Success(C1), Oper}), (Success(C2), {Success(C2), Abs}), (WiniIn(C1), {WiniIn(C1), WiniBe}) }) On définit la structure du réseau : Present(C) = Present(C1) Start(C) = Start(ABS) Success(C) = Success(ABS) WiniOut(C) = WiniAf WiniIn(C) = ∅ Puis nous fusionnons avec le compteur d’évènements comme dans l’équation (3.1), ce qui complète la formalisation de la construction de nos réseaux. 3.3 Formalisation et description de l’exécution des réseaux Dans cette section, nous présentons le fonctionnement des réseaux que nous venons de définir en prenant appui sur des exemples d’exécution. Nous définissons ensuite une stratégie formelle pour le tirage des transitions car toutes les transitions de nos réseaux sont en permanence tirables mais toute séquence de transitions tirée ne mène pas au marquage recherché, à savoir celui où l’on peu correctement lire les ensembles de reconnaissance. Décrivons maintenant le fonctionnement de ces réseaux. Pour chacune des constructions précé- dentes, nous présentons l’ensemble de ses places, puis les effets de ses transitions. Nous expliquons ensuite la stratégie de tirage à adopter pour obtenir les ensembles de reconnaissance corrects. Cette stratégie de tirage est formalisée dans la Section 3.3.6. 3.3.1 Reconnaissance d’un évènement simple Étudions le comportement d’un réseau reconnaissant un évènement simple sur l’exemple de la Figure 3.13 qui correspond à la chronique A ∈ N. Il est composé de deux sous-réseaux : le réseau de compteur d’évènements de la Figure 3.5, et le réseau relatif à la transition A. Notons que l’annotation de fusion 1_Num indique que les deux places Present sont fusionnées. Places Les places Present des deux sous-réseaux sont fusionnées, et ont donc le même marquage. Elles sont de type INT et contiennent un entier qui correspond à la valeur du compteur d’évènement. 89Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements Figure 3.13 – Réseau correspondant à la chronique A Les places Start et Success sont de type NCList, c’est-à-dire qu’elles contiennent une liste d’instances de chroniques. La place Start a un rôle dans la composition des réseaux pour des chroniques complexes. Ici, son marquage est constant, égal à son marquage initial [ [ ] ]. La place Success contient la liste des reconnaissances de la chronique A. La partie du réseau composée de la place Wini et de la transition Forget est utilisée dans le cas de l’absence. Son fonctionnement est donc explicité dans la section de la reconnaissance de l’absence (3.3.5). Transitions Lorsque la transition End est tirée, l’entier de la place Present est incrémenté de 1. La valeur du compteur est apposée aux évènements pour les distinguer entre eux, comme il est détaillé par la suite. Il faut donc augmenter le compteur à chaque évènement du flux. Au tirage de la transition End, le marquage du réseau évolue comme suit : Start Success Present   curr inst cpt   End −→   curr inst cpt + 1   Lorsque la transition A est tirée, le contenu de la place Success est modifié : la liste des reconnaissances déjà présente dans la place Success est complétée par une nouvelle reconnaissance, notée (E(a), cpt+ 1) (que l’on notera aussi Ecpt+1 a ) où cpt est la valeur du compteur d’évènements. Ci-dessous, nous avons simplifié la définition de la fonction complete en intégrant le fait que, ici, curr = [ [ ] ]. La fonction ANR (Add New Recognition) ajoute la nouvelle reconnaissance [Ecpt+1 a ] à la liste inst. 90CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS DIT « À UN SEUL JETON » Start Success Present   curr inst cpt   A −→   curr ANR(inst, [ [Ecpt+1 a ] ]) cpt   Stratégie de tirage Considérons un flux ϕ. Ce sont les évènements du flux ϕ qui déterminent la suite de transitions à tirer. Si un évènement de nom différent de A a lieu, seule la transition End est tirée : seul le compteur d’évènement est incrémenté. Si un évènement de nom A a lieu, la transition A est tirée, de façon à ajouter l’évènement à la liste des reconnaissances, puis la transition End est tirée pour incrémenter le compteur. Exemple 8. Soit ϕ = ((b, 1),(a, 2),(d, 3),(a, 4)) avec a, b, d ∈ N où nous souhaitons reconnaître la chronique A. La liste des transitions à tirer correspondant au flux ϕ est [End, A, End, End, A, End]. Le marquage des places du réseau évolue comme suit : Start Success Present   [ [ ] ] [ ] 0   End −→   [ [ ] ] [ ] 1   A −→   [ [ ] ] [ [E2 a ] ] 1   End −→   [ [ ] ] [ [E2 a ] ] 2   End −→   [ [ ] ] [ [E2 a ] ] 3   A −→   [ [ ] ] [ [E2 a ], [E4 a ] ] 3   End −→   [ [ ] ] [ [E2 a ], [E4 a ] ] 4   On obtient bien deux reconnaissances, [E2 a ] et [E4 a ] dues à (a, 2) et (a, 4). 3.3.2 Reconnaissance d’une séquence Nous allons étudier le réseau de Petri de la Figure 3.14 qui correspond à la chronique A B où A, B ∈ N pour examiner le déroulement d’une séquence. Il est composé de trois sous-réseaux : le réseau de compteur d’évènements, le réseau relatif à la transition A et le réseau relatif à la transition B. Places Comme précédemment, les places Present des trois sous-réseaux sont fusionnées, de type INT, et contiennent un entier correspondant au compteur d’évènements. La place Start du réseau A a un marquage constant, égal à son marquage initial [ [ ] ]. La place Success du réseau A est fusionnée avec la place Start du réseau B. Les deux sousréseaux A et B fonctionnent donc en série. La place Start du réseau B n’a donc plus un marquage constant [ [ ] ]. Son marquage initial est la liste vide [ ] qui est le marquage initial de Success(A). Comme évoqué dans la Remarque 18, ceci implique que le mécanisme du réseau relatif à B ne peut pas être effectif tant que le marquage initial n’a pas été modifié car il n’y a pas de reconnaissance partielle à compléter. Au fur et à mesure de l’exécution du réseau, Start(B) pourra contenir une liste contenant une liste non vide : il s’agira des reconnaissances partielles de A B, c’est-à-dire des reconnaissances de A, qu’il faut compléter par des reconnaissances de B. 91Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements rem_obs init curr init End A Forget B Forget Present Fusion 84 Present Fusion 84 INT Success Fusion 85 Start Wini Present Fusion 84 Success Start Fusion 85 Wini Fusion 85 Fusion 84 INT cpt cpt+1 0 Fusion 84 0 cpt complete (E(a),cpt) curr inst inst NCList[] curr curr NCList [[]] rem_obs init curr init INT Fusion 84 INT 0 complete (E(b),cpt) curr inst NCList [] inst cpt curr curr [] NCList INT ~1 ~1 1 1`0 1 1`0 1 1`[] 1 1`[[]] 1 1`(~1) 1 1`0 1 1`[] 1 1`[] 1 1`(~1) Figure 3.14 – Réseau correspondant à la chronique A B La place Success du réseau B contient les reconnaissances de la chronique A B. Comme précédemment, on ignore pour le moment les parties des réseaux A et B composées de la place Wini et de la transition Forget et relatives à l’absence. Transitions Lorsque la transition End est tirée, le compteur d’évènements est incrémenté de 1. Lorsque la transition A est tirée, une nouvelle reconnaissance de A est ajoutée à la liste contenue dans la place Success, comme dans le réseau précédent. Lorsque la transition B est tirée, la reconnaissance de B complète les reconnaissances de A qui se trouvent dans la place Start(B) (à l’aide de la fonction CPR - Complete Partial Recognition) pour former des reconnaissances de A B qui sont ajoutées à la liste de la place Success(B). En effet, la fonction complete prend en argument la variable currB qui correspond au contenu de la place Start et complète les reconnaissances partielles qui s’y trouvent. C’est pour cela que le marquage initial de Success(A) et Start(B) est [ [ ] ] et non [ ] : la fonction complete va compléter la liste vide, il n’y a pas encore de reconnaissance de A. Start(A) Start(B) Success(B) Present     currA currB instB cpt     B −→     currA currB ANR(instB, CPR([ [E cpt+1 b ] ], currB)) cpt     Stratégie de tirage Si un évènement de nom différent de A et de B a lieu, seule la transition End est tirée, et donc seul le compteur d’évènements est incrémenté. Si un évènement de nom A a lieu, la transition A est tirée de façon à ajouter l’évènement à la liste des reconnaissances partielles, puis la transition End est tirée. De même, si un évènement de nom B a lieu, la transition B est tirée 92CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS DIT « À UN SEUL JETON » de façon à compléter les reconnaissances partielles et obtenir des reconnaissances de A B, puis la transition End est tirée. Exemple 9. Soit ϕ = ((b, 1),(a, 2),(d, 3),(a, 4),(b, 5)) avec a, b, d ∈ N où l’on souhaite reconnaître la chronique A B. La liste des transitions à tirer correspondant au flux ϕ est [B, End, A, End, End, A, End, B, End]. Le marquage des places du réseau évolue comme suit (on rappelle que les places Success(A) et Start(B) sont fusionnées et ont donc le même marquage) : Start(A) Success(A) Success(B) Present     [ [ ] ] [ ] [ ] 0     B −→     [ [ ] ] [ ] [ ] 0     End −→     [ [ ] ] [ ] [ ] 1     A −→     [ [ ] ] [ [E2 a ] ] [ ] 1     End −→     [ [ ] ] [ [E2 a ] ] [ ] 2     End −→     [ [ ] ] [ [E2 a ] ] [ ] 3     A −→     [ [ ] ] [ [E2 a ], [E4 a ] ] [ ] 3     End −→     [ [ ] ] [ [E2 a ], [E4 a ] ] [ ] 4     B −→     [ [ ] ] [ [E2 a ], [E4 a ] ] [ [E2 a , E5 b ], [E4 a , E5 b ] ] 4     End −→     [ [ ] ] [ [E2 a ], [E4 a ] ] [ [E2 a , E5 b ], [E4 a , E5 b ] ] 5     Remarquons que le premier tirage de la transition B ne modifie pas le marquage du réseau. Ceci est dû au fait que le marquage de la place Start(B) est [ ] et qu’il n’y a donc aucune liste, même vide, à compléter. Comme il s’agit d’une séquence, on ne commence pas à reconnaître B tant que l’on n’a pas reconnu A. Le cas particulier A A Il est important de vérifier que le cas particulier A A ne pose pas de problème dans la gestion des différentes combinaisons pour les reconnaissances et qu’il faut bien deux occurrences distinctes de A pour reconnaître la séquence. Ceci est garanti par la fonction complete qui ne complète que les reconnaissances datant d’un instant inférieur ou égal à l’instant courant cpt du compteur d’évènements. Étudions le mécanisme sur le flux ((a, 1),(a, 2)). On dénomme A1 et A2 les deux réseaux fusionnés pour former N(A A). À la suite du tirage de la transition A1 pour le traitement de l’évènement (a, 1), le marquage de Success(A1) (qui est aussi celui de Start(A2)) est [[E1 a ]]. Lorsque l’on tire A2, la fonction complete examine l’instant de chacune des reconnaissances à compléter. Il n’y a pour le moment que [E1 a ] à compléter et son instant de reconnaissance est 1. La compteur d’évènements est encore à 0 donc la contrainte n’est pas vérifiée (¬ 0 ≥ 1) et [E1 a ] ne peut être complétée par (a, 1). On tire alors la transition End et le compteur passe à 1. [E1 a ] peut donc maintenant être complétée. Pour traiter (a, 2), on tire A1 ce qui modifie le marquage de Success(A1) à [[E1 a ], [E2 a ]] et on tire A2 ce qui ne peut compléter que [E1 a ]. On obtient alors [[E1 a , E2 a ]] 93Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements comme marquage de Success(A2); on a bien une unique reconnaissance et le cas particulier A A est correctement traité. 3.3.3 Reconnaissance d’une disjonction cpt+1 cpt init remove_obsolete init curr curr inst complete (E(b),cpt) curr inst inst complete (E(a),cpt) curr inst init remove_obsolete init curr End Forget B A Forget Present 3_Num 0 INT Wini 3 Init ~1 INT Success 3_Success [] NCList Present 3_Num 0 INT Present 3_Num 0 INT Success 3_Success [] NCList Start 3_Start [[]] NCList Wini 3 Init ~1 INT Start 3_Start [[]] NCList 3_Start 3_Success 3_Num 3_Num 3_Success 3_Num 3 Init 3 Init cpt cpt curr curr curr 1 1`0 1 1`(~1) 1 1`[] 1`0 1 1`0 1 1 1`[] 1 1`[[]] 1 1`(~1) 1 1`[[]] Figure 3.15 – Réseau correspondant à la chronique A || B Étudions le comportement d’une disjonction à travers le réseau de Petri de la Figure 3.15 qui correspond à la chronique A || B où A, B ∈ N. Il est composé de trois sous-réseaux : le réseau de compteur d’évènements, le réseau relatif à la transition A et le réseau relatif à la transition B. Places Comme précédemment, les places Present des trois sous-réseaux sont fusionnées, de type INT, et contiennent un entier correspondant au compteur d’évènements. 94CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS DIT « À UN SEUL JETON » Les places Start des réseaux A et B sont fusionnées et ont ici un marquage constant, égal à [ [ ] ]. Les deux sous-réseaux fonctionnent donc en parallèle. Les places Success des réseaux A et B sont aussi fusionnées. Elles contiennent la liste des reconnaissances de A || B. Comme précédemment, on ignore pour le moment les parties des réseaux A et B composées de la place Wini et de la transition Forget. Transitions Lorsque la transition End est tirée, le compteur d’évènements est incrémenté de 1. Lorsque la transition A est tirée, une nouvelle reconnaissance de A est ajoutée à la liste contenue dans la place Success. Une reconnaissance de A est une reconnaissance de A || B. De même, lorsque la transition B est tirée, une nouvelle reconnaissance de B est ajoutée à la liste contenue dans la place Success. Ainsi, la place Success contient toutes les reconnaissances de A et toutes celles de B, ce qui correspond à toutes les reconnaissances de A || B. Stratégie de tirage Si un évènement de nom différent de A et de B a lieu, seule la transition End est tirée, et donc seul le compteur d’évènements est incrémenté. Si un évènement de nom A (respectivement B) a lieu, la transition A (respectivement B) est tirée de façon à ajouter l’évènement à la liste des reconnaissances de la place Success, puis la transition End est tirée. Exemple 10. Soit ϕ = ((b, 1),(a, 2),(d, 3),(a, 4)) avec a, b, d ∈ N où nous souhaitons reconnaître A || B. La liste des transitions à tirer correspondant au flux ϕ est [B, End, A, End, End, A, End]. Le marquage des places du réseau évolue comme suit : Start Success Present   [ [ ] ] [ ] 0   B −→   [ [ ] ] [ [E1 b ] ] 0   End −→   [ [ ] ] [ [E1 b ] ] 1   A −→   [ [ ] ] [ [E1 b ], [E2 a ] ] 1   End −→   [ [ ] ] [ [E1 b ], [E2 a ] ] 2   End −→   [ [ ] ] [ [E1 b ], [E2 a ] ] 3   A −→   [ [ ] ] [ [E1 b ], [E2 a ], [E4 a ] ] 3   End −→   [ [ ] ] [ [E1 b ], [E2 a ], [E4 a ] ] 4   3.3.4 Reconnaissance d’une conjonction Détaillons le processus de reconnaissance d’une conjonction à travers le réseau de Petri de la Figure 3.16 qui correspond à la chronique A&B où A, B ∈ N. Il est composé de quatre sous-réseaux : le réseau de compteur d’évènements, le réseau de l’opérateur de conjonction OPAND, le réseau relatif à la transition A et celui relatif à la transition B. Places Comme précédemment, les places Present sont fusionnées, de type INT, et contiennent un entier correspondant au compteur d’évènements. Les places Start des réseaux A et B sont fusionnées et ont ici un marquage constant, égal à [ [ ] ]. Nous souhaitons reconnaître A et B dans un ordre quelconque donc les deux réseaux fonctionnent en parallèle. 95Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements rem_obs init curr init inst2 curr startsub curr curr2 cpt rem_obs init curr init cpt cpt+1 cpt Forget AND Sub Forget A Forget B End Operand1 4_SuccessA NCList Operand2 4_SuccessB NCList Wini 4 Init INT Success [] NCList Start [] NCList startSub 4 Start [[]] Success 4_SuccessA NCList Wini 4 Init Present 4_Num Start 4 Start NCList Wini ~1 4 Init Start 4 Start NCList Success 4_SuccessB NCList Present 4_Num 0 Present 4_Num 4_SuccessA 4_SuccessB INT 4_Num 0 0 4_Num INT complete (E(a),cpt) curr inst 4_SuccessA [] inst curr curr init 4 Init ~1 INT rem_obs init curr 4 Start [[]] INT 4_Num complete (E(b),cpt) curr inst [] 4_SuccessB inst curr [[]] curr 4 Start INT 4 Init inst1 mergeAndNew curr inst1 inst2 inst inst curr NCList ~1 4 Init 4 Start rem_obs init inst1 rem_obs init inst2 inst2 curr inst1 [] 1 [] 1`[] 1 1`[] 1 1`(~1) 1 1`[] 1 1`[] 1 1`[[]] 1 1`[] 1 1`(~1) 1 1`0 1 1`[[]] 1 1`(~1) 1 1`[[]] 1 1`[] 1 1`0 1 1`0 Figure 3.16 – Réseau correspondant à la chronique A&B La place Success du réseau A (respectivement B) est fusionnée avec la place Operand1 (respectivement Operand2) du réseau de conjonction. Elle contient les reconnaissances de A (respectivement B) qui sont des reconnaissances partielles de A&B. Il reste alors à effectuer les combinaisons de ces reconnaissances partielles pour former les reconnaissances de A&B. C’est le rôle de l’opérateur OPAND. Ces combinaisons, c’est-à-dire les reconnaissances de A&B, sont stockées dans la place Success(AND). Le calcul de ces combinaisons n’est pas évident et présente plusieurs difficultés : — Nous souhaitons respecter la multiplicité des reconnaissances, donc réaliser toutes les combinaisons possibles sans créer de doublons injustifiés (i.e. sans engendrer deux témoins d’une unique reconnaissance). C’est un enjeu qui n’apparaît que peu dans le réseau présenté ici car nous manipulons des listes de reconnaissances donc la complexité de l’algorithme est dissimulée dans l’implémentation de la fonction mergeAndNew. La difficulté est plus apparente dans le Chapitre 4 où l’on manipule un jeton par reconnaissance ce qui conduit à un réseau beaucoup plus conséquent pour l’opérateur AND. — La détermination des bonnes combinaisons dans une conjonction lors de la composition avec une séquence – ici nous prenons l’exemple de la chronique Cdeb (A&B) – est complexe et soulève une double problématique : 96CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS DIT « À UN SEUL JETON » — D’une part, la première idée intuitive dans le cas d’une séquence consiste à fusionner la place Success(Cdeb) avec les places Start(A) et Start(B), c’est-à-dire définir que Start(A&B) = Start(A) 6 . C’est d’ailleurs ce qui est réalisé dans [CCK11]. Cependant, nous obtenons alors, dans les places Success(A) et Success(B), des reconnaissances de Cdeb A et de Cdeb B qu’il faut ensuite recombiner en reconnaissances de Cdeb (A&B). Ceci n’est pas réalisable si l’on n’a pas stocké par ailleurs la partie de la reconnaissance correspondant au préfixe commun Cdeb. Nous introduisons donc la place Start(AND) qui stocke les reconnaissances de Cdeb. L’opérateur d’absence, au travers de la transition AND et de la fonction mergeAndNew, combine alors les reconnaissances de Cdeb, A et B, qui arrivent séparément, pour former les reconnaissances de Cdeb (A&B). — D’autre part, nous ne souhaitons pas commencer à reconnaître A&B tant que Cdeb n’a pas été reconnue. Pour ce faire, nous introduisons la place StartSub que nous fusionnons avec les places Start(A) et Start(B). Lorsque Success(Cdeb) contient une liste vide (c’est-à-dire lorsque l’on n’a pas encore reconnu Cdeb), StartSub contient également une liste vide [ ]. A et B ne peuvent alors pas encore être reconnus car il n’y a rien à compléter dans les places Start correspondantes. Inversement, lorsque Success(Cdeb) contient une ou plusieurs reconnaissances, StartSub est marquée [ [ ] ]. Les réseaux N0 (A) et N0 (B) peuvent alors compléter la liste vide [ ] avec des reconnaissances respectivement de A et de B. Comme précédemment, on ignore pour le moment les parties des réseaux A et B composées de la place Wini et de la transition Forget. Transitions Lorsque la transition End est tirée, le compteur d’évènements est incrémenté de 1. Lorsque la transition A (respectivement B) est tirée, une nouvelle reconnaissance de A (respectivement B) est ajoutée à la liste contenue dans la place Operand1 (respectivement Operand2). Lorsque la transition AND est tirée, les reconnaissances de A dans Operand1, les reconnaissances de B dans Operand2, et les reconnaissances d’une éventuelle séquence à compléter dans Start(AND) sont combinées pour former des reconnaissances de A&B intégrées éventuellement dans une reconnaissance plus complexe. Ces nouvelles reconnaissances sont ajoutées à la liste de la place Success à l’aide de la fonction mergeAndNew. Cette fonction ajoute uniquement les nouvelles reconnaissances de A&B. En effet, dans Operand1 et dans Operand2 se trouvent toutes les reconnaissances de A et de B, et si l’on se contentait de faire tous les couples possibles de reconnaissances de A et de reconnaissances de B, nous obtiendrions, entre autre, des reconnaissances déjà ajoutées précédemment. Notons qu’il y existe un critère simple pour déterminer s’il faut ajouter une reconnaissance : une nouvelle reconnaissance de A&B est une reconnaissance où soit la reconnaissance de A, soit la reconnaissance de B vient d’apparaître, c’est-à-dire qui est de la forme Ecpt+1 a ou E cpt+1 b où cpt est la valeur actuelle du compteur d’évènements. La transition Sub actualise le contenu des places Operand1 et Operand2 selon le contenu de la place Start(AND) afin de ne pas activer les réseaux relatifs à A et B lorsque cela est inutile, comme évoqué précédemment. 6. Et donc Start(A&B) = Start(B) car Start(A) et Start(B) sont fusionnées. 97Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements Stratégie de tirage On commence par tirer la transition Sub pour mettre à jour l’activation des réseaux A et B. Ensuite, si un évènement de nom différent de A et de B a lieu, seule la transition End est tirée, et donc seul le compteur d’évènements est incrémenté. Au contraire, si un évènement de nom A (respectivement B) a lieu, la transition A (respectivement B) est tirée de façon à ajouter l’évènement à la liste des reconnaissances de la place Operand1 (respectivement Operand2). La transition AND est ensuite tirée pour créer les nouvelles reconnaissances éventuelles de A&B et les insérer dans la liste de la place Success, puis la transition End est tirée. Exemple 11. Soit ϕ = ((b, 1),(a, 2),(d, 3),(b, 4)) avec a, b, d ∈ N où l’on souhaite reconnaître A&B. La liste des transitions à tirer correspondant au flot ϕ est [Sub, B, AND, End, Sub, A, AND, End, Sub, End, Sub, B, AND, End]. Le marquage des places du réseau évolue comme suit : StartSub Operand1 Operand2 Success Present        [ [ ] ] [ ] [ ] [ ] 0        Sub,B −→        [ [ ] ] [ ] [ [E1 b ] ] [ ] 0        AND −→        [ [ ] ] [ ] [ [E1 b ] ] [ ] 0        End −→        [ [ ] ] [ ] [ [E1 b ] ] [ ] 1        Sub,A −→        [ [ ] ] [ [E2 a ] ] [ [E1 b ] ] [ ] 1        AND −→        [ [ ] ] [ [E2 a ] ] [ [E1 b ] ] [ [E1 b , E2 a ] ] 1        End,Sub,End −→        [ [ ] ] [ [E2 a ] ] [ [E1 b ] ] [ [E1 b , E2 a ] ] 3        Sub,B −→        [ [ ] ] [ [E2 a ] ] [ [E1 b ], [E4 b ] ] [ [E1 b , E2 a ] ] 3        AND,End −→        [ [ ] ] [ [E2 a ] ] [ [E1 b ], [E4 b ] ] [ [E1 b , E2 a ], [E2 a , E4 b ] ] 4        Le cas particulier de A&A De même que pour la séquence, il est intéressant de vérifier que le cas particulier A&A est correctement traité par ce modèle de la conjonction et que l’on obtient bien le bon nombre de reconnaissances. On considère le flux ϕ = ((a, 1),(a, 2)). D’après la sémantique du langage définie dans la Section 2.3.2, le flux ϕ doit donner lieu à quatre reconnaissances de A&A : h(a, 1),(a, 1)i, h(a, 2),(a, 2)i, h(a, 1),(a, 2)i, et h(a, 2),(a, 1)i. Si on appelle S(a) la liste des transitions à tirer pour traiter l’occurrence d’un évènement a dans le flux pour la chronique A&A, le marquage du réseau évolue comme suit : Start Success Operand1 Operand2 S(a) −→     [ [ ] ] [ [E1 a , E1 a ] ] [ [E1 a ] ] [ [E1 a ] ]     S(a) −→     [ [ ] ] [ [E1 a , E1 a ], [E1 a , E2 a ], [E2 a , E1 a ], [E2 a , E2 a ] ] [ [E1 a ], [E2 a ] ] [ [E1 a ], [E2 a ] ]     98CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS DIT « À UN SEUL JETON » On obtient donc bien les quatre reconnaissances. 3.3.5 Reconnaissance d’une absence rem_obs init curr init init chg_win init inst init curr inst2 concatabs inst curr inst2 cpt cpt rem_obs init curr init curr complete (E(c),cpt) curr inst cpt curr curr init cpt init curr cpt cpt+1 cpt Forget Update Down Sub Forget C Forget B Forget A End WiniAf INT Abs Fusion 92 [] NCList WiniBe Fusion 95 ~1 INT StartSub Fusion 94 [] NCList Oper Fusion 98 [] NCList Success NCList Start [[]] NCList Present Fusion 91 0 INT Wini ~1 INT Start Fusion 94 [] NCList Success Fusion 92 [] NCList Present Fusion 91 0 INT Start Fusion 93 [] NCList Success Fusion 98 [] NCList Wini Fusion 95 ~1 INT Present Fusion 91 0 INT Success Fusion 93 [] NCList Wini ~1 INT Start Fusion 94 [] NCList Present Fusion 91 0 INT Present 0 Fusion 91 INT Fusion 91 Fusion 94 Fusion 93 Fusion 91 Fusion 95 Fusion 98 Fusion 93 Fusion 91 Fusion 92 Fusion 94 Fusion 95 Fusion 94 complete (E(a),cpt) curr inst inst complete (E(b),cpt) curr inst inst rem_obs init curr curr rem_obs init curr inst curr max bck init bck ~1 Fusion 98 Fusion 91 startsub inst [] curr2 curr inst Fusion 92 [] inst 1 1`(~1) 1 1`[] 1 1`(~1) 1 1`[] 1 1`[] 1 1`[] 1 1`[[]] 1 1`0 1 1`(~1) 1 1`[] 1 1`[] 1 1`0 1 1`[] 1 1`[] 1 1`(~1) 1 1`0 1 1`[] 1 1`(~1) 1 1`[] 1 1`0 1 1`0 Figure 3.17 – Réseau correspondant à la chronique (A B) − [C[ Étudions maintenant le cas de l’absence à travers le réseau de Petri de la Figure 3.17 qui correspond à la chronique (A B) − [C[ où A, B, C ∈ N. Il est composé de quatre sous-réseaux : le réseau de compteur d’évènements, le réseau d’absence OPABS, le réseau relatif à la chronique A B (composé du réseau A et du réseau B) et le réseau relatif à la transition C. Places Comme précédemment, les places Present sont fusionnées, de type INT, et contiennent un entier correspondant au compteur d’évènements. La place Start du réseau A B (c’est-à-dire la place Start du réseau A) et celle du réseau C sont fusionnées et ont ici un marquage constant, égal à [ [ ] ]. Cela permet de synchroniser l’activation des réseaux A B et C. La place Success du réseau A B (c’est-à-dire la place Success du réseau B) contient les reconnaissances de (A B) − [C[ et est fusionnée avec la place Oper de l’opérateur ABS pour que 99Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements les reconnaissances de (A B) − [C[ puissent être recombinées si la chronique est insérée dans une séquence comme D (A B)−[C[ (nous détaillons ce cas particulier par la suite). S’il n’y a pas de sé- quence avant l’absence, les reconnaissances de Oper sont simplement transférées dans Success(ABS) (elles viennent en fait compléter une liste vide). La place Abs du réseau d’absence et Success(C) sont fusionnées et contiennent les reconnaissances de C, qui est dans notre exemple la chronique interdite. Pour la chronique (A B) − [C[, les reconnaissances de C vont invalider toutes les reconnaissances partielles de (A B) durant lesquelles un C a eu lieu. Pour implémenter ce processus, nous allons supprimer les reconnaissances de A ayant été suivies d’une occurrence de C afin qu’elles ne puissent être complétées par un B. Ainsi, nous n’obtenons que des reconnaissances de (A B) vérifiant la contrainte qu’aucun C n’a eu lieu entre A et B. La place Wini présente dans tous les réseaux définis jusqu’alors contient un entier qui sert de repère pour les suppressions des reconnaissances invalidées. Elle contient l’entier correspondant à la valeur, incrémentée de 1, du compteur d’évènements lors de la dernière reconnaissance de la chronique « interdite » (ici, C). Cette valeur correspond à l’indice du compteur à partir duquel les reconnaissances de (A B) peuvent à nouveau être considérées comme valides, c’est-à-dire sans occurrence de C, et peuvent être ajoutées à la liste des reconnaissances de (A B) − [C[. Dans l’opérateur ABS, il s’agit de mettre à jour le contenu de ces places Wini. Il faut tenir compte de deux choses : 1. non seulement de l’absence qui est considérée (ici, −[C[) ; 2. mais aussi de la possibilité que la chronique soit imbriquée dans une autre absence, comme par exemple dans la chronique ( ((A B)−[C[) E )−[D[ dont le réseau est représenté Figure 3.18. En d’autres termes, il faut faire attention aux bornes de l’absence. Comme nous le détaillerons par la suite, dans la chronique ( ((A B) − [C[) E ) − [D[, l’occurrence d’un D doit avoir une influence sur tout ((A B)−[C[) E mais l’occurrence d’un C ne doit avoir d’influence que sur (A B). Ainsi, une fois que la séquence (A B) est reconnue, l’occurrence d’un C ne doit pas supprimer les reconnaissances complètes de (A B) ni celles de E, mais seulement les reconnaissances de A non encore complétées par un B. L’opérateur ABS fonctionne donc comme une diode ne permettant à la valeur de Wini de se propager que dans un seul sens. Il possède deux places Wini : 1. la place WiniBe en charge de l’absence considérée à ce niveau (ici, −[C[) et qui est donc fusionnée avec Wini(A B) pour supprimer les reconnaissances obsolètes de A ; 2. la place WiniAf qui propage vers WiniBe les absences éventuelles de niveau supérieur mais qui bloque la propagation en sens inverse : — lorsqu’il n’y a pas d’autre absence, comme dans le cas de la Figure 3.17 avec (A B)−[C[, le marquage de WiniAf est constant égal à −1 et n’aura donc aucun effet sur le réseau, — lorsqu’il y a des absences de niveau supérieur (comme dans le cas de la Figure 3.18 avec la chronique ( ((A B)−[C[) E )−[D[), la place WiniAf est fusionnée avec les places Wini des niveaux supérieurs et permet ainsi de faire redescendre l’entier qui y est stocké, sans que l’entier de WiniBe ne puisse jamais remonter. Le fonctionnement des places WiniBe et WiniAf est illustré dans l’Exemple 13. 100CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS DIT « À UN SEUL JETON » Transitions Lorsque la transition End est tirée, le compteur d’évènements est incrémenté de 1. Lorsque la transition A (respectivement B et C) est tirée, une nouvelle reconnaissance de A (respectivement B et C) est ajoutée à la liste contenue dans la place Success du réseau A (respectivement B et C). Lorsque la transition Update est tirée, le contenu de la place WiniBe est mis à jour avec l’indice du compteur de la dernière reconnaissance de C si celui-ci est plus grand que la valeur actuelle init stockée dans la place WiniBe. Lorsque la transition Down est tirée, l’entier de repère, stocké dans WiniAf et provenant d’une absence de plus haut niveau, est transmis à WiniBe s’il est plus grand que la valeur actuelle qui y est stockée. L’existence de deux places distinctes WiniBe et WiniAf et de la transition Down est nécessaire pour contrôler la propagation des entiers repères des Wini, ce qui n’aurait pas été possible avec une simple fusion de WiniBe et WiniAf. Lorsque la transition Sub est tirée : — le réseau d’absence est activé selon le contenu de Start(ABS) ; — les combinaisons des reconnaissances de Start(ABS) (une liste vide ou des reconnaissances non vides dans la structure de la chronique globale étudiée) avec des reconnaissances de (C1) − [C2[ qui sont dans Oper sont effectuées séquentiellement et ajoutées à la liste de reconnaissances de Success(ABS). Lorsque la transition Forget du réseau B est tirée, les reconnaissances de A d’indice inférieur strictement à init sont supprimées de la place Start(B) et donc de Success(A). Ainsi, si une occurrence de A est suivie d’une occurrence de C, l’occurrence de A sera oubliée, de telle sorte qu’une reconnaissance de B ne puisse venir la compléter en une reconnaissance de (A B) − [C[. Stratégie de tirage Si un évènement de nom différent de A, B et C a lieu, seule la transition End est tirée, et donc seul le compteur d’évènements est incrémenté. Si un évènement de nom C a lieu, on tire alors la transition C. On tire ensuite Update puis Down pour mettre à jour le contenu des places Wini du réseau, et Sub pour éventuellement activer le réseau. Les transitions Forget du réseau sont ensuite tirées pour supprimer les éventuelles reconnaissances rendues obsolètes par les nouvelles valeurs de Wini. Si un évènement de nom A (respectivement B) a lieu, la transition A (respectivement B) est tirée. On tire ensuite de nouveau Sub pour effectuer les combinaisons appropriées puis on tire finalement la transition End pour incrémenter le compteur. Exemple 12. Soit ϕ = ((a, 1),(b, 2),(c, 3),(b, 4)) avec a, b, c ∈ N où l’on souhaite reconnaître la chronique (A B) − [C[ représentée dans la Figure 3.17. La liste des transitions à tirer correspondant au flot ϕ est [Update, Down, Sub, Forget∗ , A, Sub, End, Update, Down, Sub, Forget∗ , B, Sub, End, C, Update, Down, Sub, Forget∗ , Sub, End, Update, Down, Sub, Forget∗ , B, Sub, End]. Le marquage des places du réseau évolue comme suit : 101Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements Start(A), Start(C) Start(B) Success(B) Wini(A B) Success(C) Present          [ [ ] ] [ ] [ ] −1 [ ] 0          Update,Down,Sub,Forget∗ ,A −→          [ [ ] ] [ [E1 a ] ] [ ] −1 [ ] 0          End −→          [ [ ] ] [ [E1 a ] ] [ ] −1 [ ] 1          Update,Down,Sub,Forget∗ ,B,Sub −→          [ [ ] ] [ [E1 a ] ] [ [E1 a , E2 b ] ] −1 [ ] 1          End −→          [ [ ] ] [ [E1 a ] ] [ [E1 a , E2 b ] ] −1 [ ] 2          C −→          [ [ ] ] [ [E1 a ] ] [ [E1 a , E2 b ] ] −1 [ [E3 c ] ] 2          Update −→          [ [ ] ] [ [E1 a ] ] [ [E1 a , E2 b ] ] 3 [ [E3 c ] ] 2          Down,Sub,Forget∗ ,Sub −→          [ [ ] ] [ ] [ [E1 a , E2 b ] ] 3 [ [E3 c ] ] 2          End −→          [ [ ] ] [ ] [ [E1 a , E2 b ] ] 3 [ [E3 c ] ] 3          Update,Down,Sub,Forget∗ ,B,Sub,End −→          [ [ ] ] [ ] [ [E1 a , E2 b ] ] 3 [ [E3 c ] ] 4          Cas particulier de deux absences imbriquées Comme détaillé précédemment, c’est dans les chroniques contenant au moins deux absences imbriquées qu’apparaît l’utilité de la transition Down dans l’opérateur d’absence. Celle-ci assure un fonctionnement en « diode », ne permettant à la valeur de Wini de se propager que dans un seul sens. Sur l’exemple de la chronique ( ((A B) − [C[) E ) − [D[ présentée Figure 3.18, en l’absence de la transition Down, dès que la chronique C est reconnue la valeur de Wini peut se propager en dehors de la chronique (A B) − [C[. Des reconnaissances valides seraient alors supprimées. L’exemple suivant illustre le fonctionnement en diode de l’opérateur d’absence. Exemple 13. Considérons la chronique ( ((A B)−[C[) E )−[D[ et le flux ϕ = ((a, 1),(b, 2),(d, 3), (e, 4),(a, 5),(b, 6),(c, 7),(e, 8),(d, 9)) où a, b, c, d, e ∈ N. On ne détaille pas ici toute la suite des transitions à tirer mais on note S(e) les transitions à tirer pour notre chronique suite à l’évènement e. Le marquage des places du réseau évolue comme suit. Nous nous intéressons en particulier aux places WiniBe et WiniAf de la première absence −[C[. Ici, WiniBe est fusionnée avec Wini(A) et Wini(B), alors que WiniAf est fusionnée avec Wini(E). Rappelons qu’ici Success(B) = Success((A B) − [C[) et Success(E) = Success(( ((A B) − [C[) E ) − [D[). 102CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS DIT « À UN SEUL JETON » rem_obs init curr init [] init chg_win init inst init inst2 concatabs inst curr inst2 cpt inst init init chg_win init inst init inst2 concatabs inst curr inst2 cpt inst cpt complete (E(d),cpt) curr inst rem_obs init curr curr init complete (E(e),cpt) curr inst curr rem_obs init curr curr init inst init rem_obs init curr curr init rem_obs init curr complete (E(a),cpt) curr inst cpt cpt+1 cpt init curr rem_obs init curr curr inst cpt Forget Down Update Sub Forget Down Update Sub D Forget E Forget Forget C Forget A End Forget B WiniAf INT Abs Fusion 113 [] NCList WiniBe Fusion 112 ~1 INT NCList StartSub Fusion 141 Oper Fusion 142 [] Success [] Start [[]] NCList Present Fusion 99 INT 0 WiniAf Fusion 112 ~1 INT Abs Fusion 110 [] NCList WiniBe Fusion 104 StartSub Fusion 108 NCList Oper Fusion 109 Success Fusion 140 NCList Start Present Fusion 99 INT 0 Present Fusion 99 0 INT Success Fusion 113 [] NCList Start Fusion 141 [] NCList Wini ~1 Present Fusion 99 0 INT Success Fusion 142 [] Start Fusion 140 [] NCList Wini Fusion 112 ~1 INT Success Fusion 110 [] NCList Wini ~1 INT Start Fusion 108 [] NCList Present Fusion 99 0 INT Wini ~1 INT Start Fusion 108 [] NCList Present Fusion 99 INT 0 Success Fusion 107 [] Present Fusion 99 0 INT Wini Fusion 104 INT ~1 Start Fusion 107 [] NCList Present Fusion 99 0 INT Success Fusion 109 [] Fusion 99 Fusion 107 Fusion 104 Fusion 99 Fusion 99 Fusion 108 Fusion 99 Fusion 108 Fusion 110 Fusion 112 Fusion 140 Fusion 142 Fusion 99 Fusion 113 Fusion 99 Fusion 112 inst NCList Fusion 107 curr curr complete (E(b),cpt) curr inst complete (E(c),cpt) curr inst cpt curr NCList inst cpt bck Fusion 112 max bck init INT Fusion 104 ~1 rem_obs init curr curr [[]] NCList Fusion 109 [] Fusion 99 cpt curr curr2 Fusion 140 [] Fusion 108 startsub inst [] Fusion 110 [] inst inst curr Fusion 141 INT max bck init bck ~1 NCList Fusion 142 curr cpt Fusion 99 startsub inst Fusion 141 [] curr2 NCList curr Fusion 113 inst 1 1`(~1) 1 1`[] 1 1`(~1) 1 1`[] 1 1`[] 1 1`[] 1 1`[[]] 1 1`0 1 1`(~1) 1 1`[] 1 1`(~1) 1 1`[] 1 1`[] 1 1`[] 1 1`[[]] 1 1`0 1 1`0 1 1`[] 1 1`[] 1 1`(~1) 1 1`0 1 1`[] 1 1`[] 1 1`(~1) 1 1`[] 1 1`(~1) 1 1`[] 1 1`0 1 1`(~1) 1 1`[] 1 1`0 1 1`[] 1 1`0 1 1`(~1) 1 1`[] 1 1`0 1 1`[] Figure 3.18 – Réseau correspondant à la chronique ( ((A B) − [C[) E ) − [D[ 103Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements Success(A) Success(B) WiniBe WiniAf Success(C) Success(D) Success(E)            [ ] [ ] −1 −1 [ ] [ ] [ ]            S(a),S(b) −→            [ [E1 a ] ] [ [E1 a , E2 b ] ] −1 −1 [ ] [ ] [ ]            S(d) −→            [ ] [ ] 3 3 [ ] [ [E3 d ] ] [ ]            S(e) −→            [ ] [ ] 3 3 [ ] [ [E3 d ] ] [ ]            S(a),S(b) −→            [ [E5 a ] ] [ [E5 a , E6 b ] ] 3 3 [ ] [ [E3 d ] ] [ ]            S(c) −→            [ ] [ [E5 a , E6 b ] ] 7 3 [ [E7 c ] ] [ [E3 d ] ] [ ]            S(e) −→            [ ] [ [E5 a , E6 b ] ] 7 3 [ [E7 c ] ] [ [E3 d ] ] [ [E5 a , E6 b , E8 e ] ]            S(d) −→            [ ] [ ] 9 9 [ [E7 c ] ] [ [E3 d ], [E9 d ] ] [ [E5 a , E6 b , E8 e ] ]            Cas particulier d’une absence imbriquée dans une séquence Comme évoqué précédemment, la partie droite de l’opérateur d’absence, qui combine séquentiellement les reconnaissances de Start(ABS) avec les reconnaissances de l’absence qui sont dans Oper, est conçue pour traiter les cas d’imbrication d’une absence dans une autre chronique, en particulier dans une séquence. Considérons à titre d’exemple la chronique D ((A B)−[C[). Dans le modèle de [CCK11], les places Success(D) et Start(A) sont simplement fusionnées, donc, dans le réseau de l’absence, circulent des reconnaissances partielles de (D A B) en attente de complétion. Ceci pose problème du fait du mécanisme de l’absence et des transitions Forget. En effet, pour savoir si une reconnaissance doit être supprimée, l’instant de début de reconnaissance est comparé à la valeur de l’entier repère Wini, et s’il lui est inférieur, elle doit être supprimée car un comportement interdit s’est produit pendant la reconnaissance. Dans le cas d’une reconnaissance partielle de (D A B), l’instant de dé- but correspondant à l’instant de reconnaissance de D, mais effectuer le test sur cet instant ne mène pas au résultat recherché car D est en dehors de la portée de l’absence (ce ne serait pas le cas si la chronique étudiée était (D A B) − [C[). Or, dans une reconnaissance partielle, il n’est pas trivial de déterminer à quelles parties de la chronique étudiée correspondent les différents évènements mis en jeu, et il n’est donc pas évident de délimiter les bornes de l’absence. Pour résoudre ce problème, nous avons introduit la partie droite de l’opérateur d’absence qui permet de conserver séparément les reconnaissances de D et les reconnaissances de (A B) − [C[ jusqu’à ce qu’elles soient complètes et puissent être combinées par la transition Sub. Le réseau 104CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS DIT « À UN SEUL JETON » curr D Forget Forget C Forget B Forget A End Present Fusion 123 0 Success Fusion 150 Start Wini ~1 Wini Start Fusion 128 NCList Success Fusion 127 NCList Present Fusion 123 Start Fusion 124 NCList Success Fusion 125 NCList Wini Fusion 126 INT Present Fusion 123 Success Fusion 124 NCList Wini INT Start Fusion 128 NCList Present Fusion 123 Present Fusion 123 INT Fusion 123 complete (E(d),cpt) curr inst NCList Fusion 150 [] inst cpt curr [[]] NCList curr rem_obs init curr init INT INT Fusion 123 0 cpt+1 cpt INT Fusion 123 0 complete (E(a),cpt) curr inst cpt Fusion 124 [] inst curr curr rem_obs init curr Fusion 128 [] init ~1 complete (E(b),cpt) curr inst INT Fusion 123 0 cpt Fusion 125 [] inst Fusion 124 [] curr curr init rem_obs init curr Fusion 126 ~1 INT 0 Fusion 123 complete (E(c),cpt) curr inst cpt Fusion 127 [] inst curr Fusion 128 [] rem_obs init curr init INT ~1 max bck init ~1 bck init init chg_win init inst init inst2 concatabs inst curr inst2 cpt Forget Down Update Sub WiniAf ~1 INT Abs Fusion 127 NCList WiniBe Fusion 126 INT StartSub Fusion 128 NCList [] Oper Fusion 125 Success NCList Start NCList Fusion 150 Present Fusion 123 INT 0 Fusion 126 Fusion 125 [] NCList Fusion 123 cpt curr curr rem_obs init curr inst Fusion 150 [] curr2 [] Fusion 128 startsub inst Fusion 127 [] inst [] 1 1`(~1) 1 1`[] 1 1`(~1) 1 1`[] 1 1`[] 1 1`[] 1 1`[] 1 1`0 1 1`0 1 1`[] 1 1`[[]] 1 1`(~1) 1 1`(~1) 1`[] 1 1 1`[] 1 1`0 1 1`[] 1 1`[] 1 1`(~1) 1 1`0 1 1`[] 1 1`(~1) 1 1`[] 1 1`0 1 1`0 Figure 3.19 – Réseau correspondant à la chronique D ((A B) − [C[) 105Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements reconnaissant la chronique D ((A B) − [C[) est présenté Figure 3.19 et l’exemple suivant illustre l’évolution du marquage du réseau dans ce cas. Exemple 14. Considérons la chronique D ((A B) − [C[) et le flux ϕ = ((d, 1),(a, 2),(c, 3),(a, 4), (b, 5)) où a, b, c, d ∈ N. On ne détaille pas ici toute la suite des transitions à tirer mais on note S(e) les transitions à tirer pour notre chronique suite à l’évènement e. Le marquage des places du réseau évolue comme suit. Success(D), Start(ABS) Success(B), Oper Success(A) Success(C) Success(ABS) WiniBe          [ ] [ ] [ ] [ ] [ ] −1          S(d) −→          [ [E1 d ] ] [ ] [ ] [ ] [ ] −1          S(a) −→          [ [E1 d ] ] [ ] [ [E2 a ] ] [ ] [ ] −1          S(c) −→          [ [E1 d ] ] [ ] [ ] [ [E3 c ] ] [ ] 3          S(a) −→          [ [E1 d ] ] [ ] [ [E4 a ] ] [ [E3 c ] ] [ ] 3          S(b) −→          [ [E1 d ] ] [ [E4 a , E5 b ] ] [ [E4 a ] ] [ [E3 c ] ] [ [E1 d , E4 a , E5 b ] ] 3          3.3.6 Définition formelle de la stratégie de tirage Dans les réseaux de Petri modélisant le processus de reconnaissance de chroniques que nous venons de définir, toutes les transitions sont systématiquement tirables. Comme évoqué dans la Remarque 16 (Section 3.1.2), nous souhaitons obtenir un marquage précis pour un réseau à l’issue du traitement d’un évènement du flux. C’est dans ce marquage que l’on peut lire l’ensemble des reconnaissances de la chronique. Dans nos réseaux, toutes les transitions sont toujours tirables mais toute séquence de tirages ne mène pas toujours au marquage recherché. Nous allons donc définir formellement une stratégie de tirage des transitions, associée à chaque réseau, et donnant, pour chaque évènement du flux, la suite des transitions à tirer pour obtenir le marquage recherché à l’issue du traitement de chaque évènement. Notons que cette stratégie n’est pas unique et qu’elle ne permet pas de tirer parti de la concurrence des réseaux de Petri que nous évoquerons dans le chapitre suivant. Définissons donc formellement la stratégie de tirage dont un aperçu a été donné dans la description précédente du fonctionnement des réseaux. Pour ce faire, nous devons tout d’abord définir une fonction auxiliaire F orgetC qui correspond à la liste des transitions Forget de N(C), convenablement ordonnée, que l’on tirera lors d’une absence. Définition 27 (stratégie de tirage des transitions Forget). On définit par induction sur la chronique C la fonction auxiliaire F orgetC : — Si C = A ∈ N, alors F orgetC = [Forget] 106CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS DIT « À UN SEUL JETON » — Si C = C1 C2, alors F orgetC = F orgetC2 :: F orgetC1 — Si C = C1 | | C2, alors F orgetC = F orgetC2 :: F orgetC1 — Si C = C1&C2, alors F orgetC = [ForgetAnd] :: F orgetC2 :: F orgetC1 — Si C = (C1) − [C2], alors F orgetC = F orgetC2 :: [Down] :: F orgetC1 À l’aide de cette stratégie de tirage des transitions Forget, on peut maintenant définir la stratégie de tirage générale pour tous nos réseaux. Définition 28 (stratégie de tirage). On définit par induction sur la chronique C la stratégie de tirage SC où, pour tout évènement e ∈ N, SC (e) correspond à la suite des transitions à tirer dans le réseau N(C) pour traiter l’occurrence d’un évènement e. Pour ce faire, nous définissons une fonction auxiliaire S 0 C qui donne toutes les transitions à tirer, exceptée la transition End. Celle-ci doit être tirée à la fin et une seule fois par évènement. Elle ne peut donc être intégrée à l’induction et il faut l’ajouter a posteriori. Pour tout e ∈ N : — Si C = A ∈ N, alors S 0 C (e) =  [A] si e = A [ ] sinon — Si C = C1 C2, alors S 0 C (e) = S 0 C1 (e) :: S 0 C2 (e) — Si C = C1 | | C2, alors S 0 C (e) = S 0 C1 (e) :: S 0 C2 (e) 7 — Si C = C1&C2, alors S 0 C (e) = [Sub] :: S 0 C1 (e) :: S 0 C2 (e) :: [AND] — Si C = (C1) − [C2], alors S 0 C (e) = S 0 C2 (e) :: [Update, Down, Sub] :: F orgetC1 :: S 0 C1 (e) :: [Sub] Pour incrémenter finalement le compteur d’évènements, on pose maintenant, pour tout e ∈ N, SC (e) = S 0 C (e) :: [End]. 3.4 Démonstration de la correction du modèle « à un seul jeton » Dans le Chapitre 2, nous avons défini, pour chaque chronique C, une fonction qui à un flux d’évènements ϕ et instant d associe l’ensemble RC (ϕ, d) des reconnaissances de la chronique dans ce flux (reconnaissance dans le diagramme ci-dessous). Dans les sections précédentes, nous avons modélisé la reconnaissance de chroniques en construisant formellement, pour chaque chronique C, un réseau de Petri N(C) lui correspondant (traduction). En fonction du flux d’évènements ϕ, le marquage (Md) de ce réseau évolue (marquage), et il est alors possible de lire dans celui-ci les reconnaissances de la chronique C dans le flux ϕ (interprétation). Ce système est représenté par le diagramme suivant : C reconnaissance / traduction  ϕ 7→ RC (ϕ, d) N(C) marquage /ϕ 7→ (Md) interpretation ´ OO 7. Contrairement au cas de la séquence, l’ordre entre C1 et C2 est ici sans importance. 107Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements L’objectif est de démontrer que ce diagramme commute, c’est-à-dire que les reconnaissances obtenues par les réseaux de Petri correspondent effectivement exactement aux reconnaissances théoriques RC (ϕ, d). On se propose de montrer ce résultat d’adéquation dans le cas restreint de l’ensemble des chroniques composées d’au plus une absence au plus haut niveau. Nous allons commencer par rappeler la sémantique ensembliste avec laquelle nous souhaitons montrer l’adéquation des réseaux. Nous devons adapter la sémantique de la Définition 16 (p.55) car la sémantique opérationnelle fournie par les réseaux est plus limitée sur les trois aspects suivants : (i) le processus de reconnaissance modélisé par nos chroniques s’applique à un langage restreint réduit aux opérateurs de séquence, disjonction, conjonction et absence, sans possibilité d’exprimer de contrainte sur des attributs d’évènements ; (ii) dans le modèle en réseaux de Petri colorés, il n’y a pas de notion de temps continu comme les évènements sont ordonnés par le compteur d’évènement qui est discret ; (iii) dans les deux formalismes, les reconnaissances ne sont pas modélisées de la même manière : — dans la sémantique ensembliste arborescente du Chapitre 2, une reconnaissance est repré- sentée par un arbre, — dans le modèle en réseaux de Petri colorés, une reconnaissance est une liste d’évènements. Nous allons donc adapter la sémantique du Chapitre 2 à ses trois points de la manière suivante : (i) nous restreignons le contenu des ensembles de reconnaissances aux reconnaissances ellesmêmes, il n’est plus nécessaire de définir l’ensemble d’attributs Xr associé à une reconnaissance r, et nous nous limitons aux opérateurs modélisés ; (ii) nous nous plaçons dans le modèle de temps discret des entiers N ; (iii) nous adoptons une modélisation de reconnaissances sous la forme de multi-ensembles qui sont directement en correspondance avec les listes des réseaux. Nous obtenons ainsi la sémantique suivante : Définition 29 (ensembles de reconnaissances des chroniques modélisés en réseaux de Petri). Soit C ∈ X une chronique. L’ensemble des reconnaissances de C sur le flux d’évènements ϕ jusqu’à la date d est noté RC (ϕ, d) et est défini par induction comme suit, où d ∈ N, A ∈ N et C1, C2 ∈ X : — RA(ϕ, d) = {{(e, t)} : e = A ∧ ∃i ϕ(i) = (e, t) ∧ t ≤ d} — RC1||C2 (ϕ, d) = RC1 (ϕ, d) ∪ RC2 (ϕ, d) — RC1 C2 (ϕ, d) = {r1 ] r2 : r1 ∈ RC1 (ϕ, d) ∧ r2 ∈ RC2 (ϕ, d) ∧ Tmax(r1) < Tmin(r2)} — RC1&C2 (ϕ, d) = {r1 ] r2 : r1 ∈ RC1 (ϕ, d) ∧ r2 ∈ RC2 (ϕ, d)} — R(C1)−[C2[(ϕ, d) = {r1 : r1 ∈ RC1 (ϕ, d) ∧ ∀r2 ∈ RC2 (ϕ, d) ( Tmin(r1) > Tmin(r2) ∨ Tmax(r1) ≤ Tmax(r2) )} Nous allons d’abord montrer un petit lemme reformulant l’expression de l’ensemble des reconnaissances de la séquence, ce qui permet de simplifier les démonstrations qui suivent. 108CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS DIT « À UN SEUL JETON » Lemme 1. Soit C1 et C2 deux chroniques. Soit i ∈ R et ϕ un flux d’évènements. Alors : RC1 C2 (ϕ, i) = {r1 ] r2 : 0 < d < j ∧ r1 ∈ RC1 (ϕ, j) ∧ Tmin(r2) = j ∧ r2 ∈ RC2 (ϕ, i)} Démonstration. Par définition : RC1 C2 (ϕ, i) = {r1 ] r2 : r1 ∈ RC1 (ϕ, i) ∧ r2 ∈ RC2 (ϕ, i) ∧ Tmax(r1) < Tmin(r2)}. On pose j = Tmin(r2) + 1. Le résultat découle de l’équivalence : (r1 ∈ RC1 (ϕ, i) ∧ Tmax(r1) < Tmin(r2)) ⇔ (0 < j < i ∧ r1 ∈ RC1 (ϕ, j − 1) ∧ Tmin(r2) = j) Pour démontrer le résultat d’adéquation nous aurons besoin de nous référer à la notion intuitive de sous-chronique que nous formalisons ci-dessous. Définition 30 (ensemble des sous-chroniques d’une chronique). L’ensemble des souschroniques d’une chronique C est le plus petit ensemble E tel que : — C ∈ E. — si (C1 C2) ∈ E, alors C1 ∈ E et C2 ∈ E. — si (C1 | | C2) ∈ E, alors C1 ∈ E et C2 ∈ E. — si (C1&C2) ∈ E, alors C1 ∈ E et C2 ∈ E. — si ((C1) − [C2]) ∈ E, alors C1 ∈ E et C2 ∈ E. Nous introduisons maintenant une notation qui nous permettra de nous référer formellement au marquage de nos réseaux. Définition 31 (notation de marquage). Soit C1 une chronique et soit C2 une sous-chronique de C1. Soit ϕ = (ui)i∈I un flux d’évènements. Pour tout i ∈ I, on définit M p(C2) i (C1) comme le marquage, dans le réseau N(C1), de la place p(C2) avant le tirage des transitions correspondant au i e évènement. Lorsque C1 = C2, on notera M p i (C1) pour M p(C1) i (C1). Remarque 19. M p(C2) i (C1) ne correspond pas forcément à M p(C2) i (C2). En effet, dans M p(C2) i (C1), on considère une place dénotée p(C2) du sous-réseau associé à C2 dans le réseau N(C1), il peut donc y avoir des transitions dans N(C1) non relatives à C2 qui modifient le contenu des places de C2. C’est typiquement le cas des places Start dans le cadre d’une séquence dès le marquage initial (c’est-à-dire pour i = 1) : on a M Start(C2) 1 (C1 C2) = 1‘[ ] alors que M Start(C2) 1 (C2) = 1‘[ [ ] ]. Commençons par montrer le lemme suivant qui nous permettra ensuite de déduire le théorème d’adéquation recherché. Lemme 2. Soit C une chronique sans absence. Soit k ∈ N. Soit ϕ = (ui)i∈J1,kK un flux d’évènements. On suppose que les marquages successifs des places Start(C) et Wini(C) sont respectivement MStart i (C) et MWini i (C) pour i ∈ J1, k + 1K. 109Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements Alors les marquages de la place Success(C) sont, pour tout i ∈ J1, k + 1K : MSuccess i (C) = [ 0 MWini h (A)). On a donc bien le résultat, pour tout i ∈ J1, k + 1K. 110CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS DIT « À UN SEUL JETON » Cas 2 : C = C1 | | C2 Soit i ∈ J1, k + 1J. Par construction des réseaux, on prend MStart i (C) = MStart i (C1) = MStart i (C2), donc MSuccess i (C) = MSuccess i (C1) ∪ MSuccess i (C2). De plus, MWini i (C) = max{MWini i (C1), MWini i (C2)}. On peut alors appliquer l’hypothèse de récurrence à C1 et C2, ce qui nous donne : MSuccess i (C) = S 0 j2 (car j1 et j2 sont consécutifs), donc ∀l ∈ Jj1, j0 2 J MWini l (C1) < j1 ; — si j1 = Tmax(r 0 1 ) et j2 6= Tmin(r 0 2 ), comme j1 et j2 sont consécutifs, Tmin(r 0 2 ) < j1, donc ∀l ∈ JTmin(r 0 2 ), j2J MWini l (C1) < j1 et Jj1, j2J⊆ JTmin(r 0 2 ), j2J. De plus, de même que dans le Cas 1, la fonction rem_obs assure que, dès que la transition Forget est tirée, ∀r ∈ MStart h (A) (r = ∅ ∨ max r > MWini h (A)). On a donc le résultat en posant r 0 = r 0 1 ] r 0 2 . Nous allons maintenant étendre ce lemme aux chroniques ayant au plus une absence au plus haut niveau, à l’aide du concept suivant : Définition 32 (partie positive d’une chronique). On définit par induction sur la chronique C l’ensemble Pos(C) : - Si C = A ∈ N ou C = C1 C2 ou C = C1||C2 ou C = C1&C2, alors Pos(C) = C. - Si C = (C1) − [C2[, alors Pos(C) = C1. Pour toute chronique sans absence, Pos(C) = C, donc on peut transcrire le Lemme 2 en se plaçant dans les mêmes conditions comme suit : MSuccess i (C) = S 0 Tmin(r2) ∨ Tmax(r1) ≤ Tmax(r2)) (3.6) (⇒) Par l’absurde, on suppose que ∃r2∈RC2 (ϕ, i) (Tmin(r1)≤Tmin(r2)∧Tmax(r1)>Tmax(r2)), alors, comme Tmin(r1) ≤ Tmin(r2) ≤ Tmax(r2) < Tmax(r1), on peut trouver j1 et j2 consécutifs dans r1 et tels que Tmax(r2) ∈ Jj1, j2J, donc, si on applique (3.5), MWini Tmax(r2)+1(C1) < j1, donc Tmax(r2) < j1, absurde. (⇐) Par contraposée, on suppose que ∃j1 ∃j2 (Jj1, j2K∩r1 = {j1, j2}∧∃l∈Jj1, j2J MWini l+1 (C1)≥j1, or MWini l+1 (C1) ≥ j1 ⇐⇒ ∃r2 ∈ RC2 (ϕ, l) Tmin(r2) ≥ j1, donc ∃r2 ∈ RC2 (ϕ, i) (Tmin(r2) ≥ j1 ≥ Tmin(r1) ∧ Tmax(r2) < j2 ≤ Tmax(r1)) On a donc bien montré que (3.5) ⇐⇒ (3.6), donc MSuccess i+1 (C) = RC (ϕ, i). Nous avons donc bien montré l’adéquation entre la sémantique dénotationnelle du Chapitre 2 et la sémantique opérationnelle en réseaux de Petri colorés pour les constructions faisant intervenir au plus une absence au plus haut niveau. 114CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS DIT « À UN SEUL JETON » 3.5 Étude de la taille des réseaux Nous allons achever ce chapitre par une étude de la taille des réseaux que nous avons construits. Pour ce faire, il nous faut d’abord introduire la notion de complexité d’une chronique et celle de la taille d’un réseau comme suit : Définition 33 (mesure de complexité d’une chronique). La mesure de complexité d’une chronique est un entier défini par induction : — C = A ∈ N est de mesure de complexité 1. — C = C1 C2, C = C1 | | C2, C = C1&C2, et C = (C1) − [C2[ sont de mesure de complexité n1 + n2 où n1 et n2 sont respectivement les mesures de complexité de C1 et C2. Définition 34 (taille d’un réseau). On définit la taille d’un réseau de Petri par un triplet (p, t, a) dont les éléments correspondent respectivement au nombre de places, nombre de transitions, et nombre d’arcs du réseau. Soit C une chronique. On notera par le triplet (p(C), t(C), a(C)) la taille du réseau N(C) associé. Propriété 7. La taille des réseaux associés aux chroniques s’exprime comme suit par induction : — Si C = A ∈ N, alors (p(A), t(A), a(A)) = (4, 3, 9). — Si C = C1 C2, alors (p(C), t(C), a(C)) = (p(C1) + p(C2) − 3, t(C1) + t(C2) − 1, a(C1) + a(C2) − 2). — Si C = C1 || C2, alors (p(C), t(C), a(C)) = (p(C1) + p(C2) − 5, t(C1) + t(C2) − 1, a(C1) + a(C2) − 2). — Si C = C1&C2, alors (p(C), t(C), a(C)) = (p(C1) + p(C2) − 4 + 2, t(C1) + t(C2) − 1 + 3, a(C1) + a(C2) − 2 + 15) = (p(C1) + p(C2) − 2, t(C1) + t(C2) + 2, a(C1) + a(C2) + 13). — Si C = (C1) − [C2[, alors (p(C), t(C), a(C)) = (p(C1) + p(C2) − 2 + 3, t(C1) + t(C2) − 1 + 4, a(C1) + a(C2) − 2 + 17) = (p(C1) + p(C2) + 1, t(C1) + t(C2) + 3, a(C1) + a(C2) + 15). La taille des réseaux est donc linéaire en fonction de la complexité de la chronique. Formellement, pour toute C ∈ X, (p(C), t(C), a(C)) = (θ(n), θ(n), θ(n)) où n est la mesure de complexité de la chronique C. 3.6 Conclusion Dans ce chapitre, nous avons développé un modèle de reconnaissance de chroniques en réseaux de Petri colorés, dit « à un seul jeton » car les ensembles de reconnaissances sont représentés par un unique jeton contenant la liste des reconnaissances. Pour chaque chronique, nous avons construit un réseau associé par induction en composant les réseaux correspondant aux sous-chroniques. Le marquage de ce réseau évolue en fonction du flux d’évènements à analyser et, après le traitement de chaque évènement, on peut lire l’ensemble des reconnaissances de la chronique dans l’une des places du réseau. Un tel modèle avait déjà été présenté dans [CCK11], mais la construction des réseaux 115Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements n’y était pas complètement formalisée et des problèmes subsistaient pour certaines compositions des réseaux de conjonction et d’absence. Nous avons donc complété la formalisation de la construction de ces réseaux, et nous les avons fait évoluer de façon à ce que toutes les compositions de réseaux produisent les bonnes reconnaissances. Pour ce faire, nous avons introduit la notion de structure générale du réseau, qui fournit les places principales que nous fusionnons lors du processus de construction, et nous avons enrichi les opérateurs de conjonction et d’absence afin de pouvoir traiter tous les cas de composition possibles. Nous avons également formalisé le fonctionnement de nos réseaux. En effet, dans ce modèle, l’ensemble des transitions des réseaux sont en permanence tirables mais toute séquence de transitions ne mène pas au résultat voulu, à savoir l’ensemble correct des reconnaissances de la chronique étudiée. Nous avons donc défini par induction une stratégie de tirage que nous avons illustrée, et qui définit les suites de transitions à tirer en fonction de l’évènement du flux à traiter. Pour finir, nous avons démontré la correction de nos réseaux, lorsque la stratégie de tirage est suivie, pour les constructions faisant intervenir au plus une absence au plus haut niveau, c’est-à- dire que nous avons montré que les reconnaissances fournies par nos réseaux correspondent bien à la sémantique dénotationnelle que nous avons posée dans le Chapitre 2. Nous disposons donc maintenant d’un modèle de reconnaissance de chroniques en réseaux de Petri colorés entièrement formalisé mais non autonome dans le sens où il faut manuellement tirer les transitions pour suivre la stratégie de tirage définie et obtenir les ensembles de reconnaissances corrects. Dans le Chapitre 4, nous allons faire évoluer ce modèle afin d’y intégrer la stratégie de tirage et la gestion du flux d’évènements, et obtenir ainsi un modèle qui peut fonctionner en autonomie et sur lequel nous pouvons utiliser des outils d’analyse de réseaux de Petri afin de mettre en avant certaines caractéristiques. 116Chapitre 4 Un modèle de reconnaissance contrôlé en réseaux de Petri colorés Sommaire 5.1 Développement d’une bibliothèque C++ implémentant la reconnaissance de chroniques : Chronicle Recognition Library (CRL) . . 166 5.2 Surveillance de cohérence au sein d’un UAS en cas de pannes . . . 171 5.2.1 Description de l’architecture du système d’avion sans pilote étudié . . . 172 5.2.2 Modélisation du problème . . . . . . . . . . . . . . . . . . . . . . . . . . 173 5.2.3 Objectifs de la reconnaissance de comportements dans ce cas d’étude . . 180 5.2.4 Écriture et formalisation des situations incohérentes à détecter . . . . . 181 5.2.5 Utilisation de CRL pour reconnaître les situations incohérentes . . . . . 182 5.3 Surveillance du bon respect de procédures de sécurité à suivre par un drone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 5.3.1 Cadre du problème . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 5.3.2 Mise en place du système de surveillance : écriture des chroniques critiques à reconnaître . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 5.3.3 Application à des scénarios de simulation avec CRL . . . . . . . . . . . . 189 5.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 Dans le Chapitre 3, nous avons construit formellement des réseaux de Petri colorés modélisant le processus de reconnaissance de chroniques. Un réseau est associé à chaque chronique et une stratégie de tirage formelle est définie. Elle indique la suite adaptée des transitions à tirer pour obtenir le marquage dans lequel l’ensemble des reconnaissances de la chronique peut être lu. Une telle stratégie de tirage est nécessaire car l’ensemble des transitions de nos réseaux est toujours tirable mais toute séquence de transitions ne mène pas au résultat voulu. L’objectif de ce chapitre est de faire évoluer notre modèle de reconnaissance pour intégrer dans nos réseaux un système de contrôle sur le tirage des transitions et les rendre ainsi autonomes. Celui-ci doit permettre 117Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements de s’affranchir de la stratégie de tirage, et ce en gérant directement le flux d’évènements et en n’activant que certaines transitions au fur et à mesure. Pour l’élaboration de ces évolutions, nous nous fixons trois contraintes importantes : — conserver un système de réseaux modulaire pour pouvoir maintenir une construction inductive du modèle calquée sur la structure du langage ; — pour remplir notre objectif, garantir la « confluence » vers un unique marquage à l’issue du traitement autonome de chaque évènement du flux et donc assurer l’obtention de l’ensemble de reconnaissance correct à chaque étape ; — en même temps, préserver un maximum de concurrence dans le tirage des transitions associées à chaque évènement. En d’autres termes, nous établissons une méthode pour obtenir un marquage unique qui corresponde à chaque évènement traité, tout en maintenant un maximum de concurrence quant à la séquence des transitions à tirer pour arriver à ce marquage. Pour obtenir un tel modèle « auto-contrôlé », nous nous y prenons en deux temps : 1. Dans le modèle du Chapitre 3, les ensembles de reconnaissances sont représentés par un unique jeton contenant la liste des reconnaissances. Dans un premier temps, nous éclatons cette liste pour obtenir un jeton par reconnaissance, ce qui permet d’introduire des premiers mécanismes de contrôle avec des gardes sur certaines transitions. Nous appelons donc ce second modèle « modèle multi-jetons » 2. Nous ajoutons ensuite, dans un second temps, une structure de gestion du flux d’évènements qui permet d’achever l’auto-contrôle des réseaux. Nous appelons donc ce dernier modèle « modèle contrôlé ». Dans la Section 4.1, nous commençons donc par construire formellement le modèle dit « multijetons » puis nous analysons le degré de contrôle acquis pas l’éclatement des jetons de listes de reconnaissances en plusieurs jetons. Ensuite, dans la Section 4.2, nous construisons formellement l’évolution suivante de notre modèle, à savoir le modèle « contrôlé » qui représente la réalisation des objectifs que nous nous sommes fixés (modularité, confluence, concurrence) et nous achevons ce chapitre en les illustrant avec l’analyse des graphes d’espace d’états. 4.1 Construction et fonctionnement des réseaux dits « multijetons » Reprenons donc les réseaux de Petri présentés dans le Chapitre 3. Ceux-ci fonctionnent avec un unique jeton par place, les multiples reconnaissances étant stockées dans une liste. Dans l’objectif d’implémenter une première forme de contrôle du tirage des transitions, nous construisons, à partir de ces anciens réseaux, des réseaux « multi-jetons » où chaque jeton correspond à une reconnaissance. Cela revient donc à « éclater » le jeton de notre modèle précédent, qui contient une liste de reconnaissances, en autant de jetons représentant chacun une unique reconnaissance. Ceci permet de tirer meilleur parti des fonctionnalités des réseaux de Petri colorés en introduisant ensuite des gardes sur les transitions pour que celles-ci n’aient d’effet que sur certains jetons. 118CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE PETRI COLORÉS Dans cette section, nous reprenons la construction des réseaux présentés dans le Chapitre 3 en l’adaptant au changement de représentation des reconnaissances. Nous commençons par poser les nouveaux types et expressions nécessaires (Section 4.1.1). Nous décrivons la nouvelle structure globale de nos réseaux (Section 4.1.2), puis nous définissons les nouvelles briques de base (Section 4.1.3) nécessaires pour ensuite construire formellement notre nouveau modèle (Section 4.1.4). Nous évaluons ensuite le degré de contrôle atteint sur le tirage des transitions et donnons une stratégie de tirage adaptée (Section 4.1.5). 4.1.1 Types et expressions utilisés dans les réseaux multi-jetons Posons maintenant les nouveaux types et fonctions que nous utilisons dans nos réseaux de Petri « multi-jetons ». Nous reprenons les types de base définis en 3.1.1 mais en remplaçant le type NCList qui correspondait à une liste de reconnaissances par le type IndChronInst qui désigne une unique reconnaissance. Nous ajoutons également le type MkdChronInst qui est le type IndChronInst marqué d’informations supplémentaires nécessaires dans le cas de la conjonction. On pose B = {INT, Event, IndChronInst, MkdChronInst}, toujours avec NEvent = Event×INT. IndChronInst est une instance de chronique, il s’agit d’un couple (l, n) où l est une liste de NEvent et n est un entier que nous appelons indice de la reconnaissance et qui stocke une information de marquage permettant entre autres de ne faire subir qu’une seule opération à chaque jeton. MkdChronInst est une instance de chronique couplée d’une liste de couples de listes d’entiers, que l’on appellera marquage de l’instance. Un entier permet d’identifier un unique évènement, donc une liste d’entiers identifie une reconnaissance. Le marquage de l’instance est donc une liste de couples de reconnaissances. Il permet de conserver en mémoire les couples de reconnaissances avec lesquels une certaine opération a déjà été effectuée. Ce marquage spécifique d’instances de chroniques est utilisé pour un besoin particulier de la conjonction où il est nécessaire de conserver un historique des opérations ayant été effectuées. Un certain nombre de fonctions sont également utilisées : F = {+, max, checked, mark, markABS, complete, merge, mergeABS, chg_win, test_older, test_olderMkd, compatible, compatibleABS, usable, equalt} Ces fonctions sont décrites dans le Tableau 4.1. 4.1.2 Structure globale des réseaux multi-jetons Comme évoqué précédemment, nous souhaitons conserver le système de construction modulaire de nos réseaux. Pour pouvoir être combinés entre eux, ceux-ci ont donc toujours une structure commune, présentée Figure 4.2, qui reste très proche de celle de notre modèle précédent (Figure 3.4). Lors de l’étape de construction des réseaux, nous définissons donc toujours les fonctions Present(C), Start(C), Success(C), WiniIn(C), et WiniOut(C). Dans notre nouvelle structure, le type des places est modifié pour s’adapter à la nouvelle représentation des reconnaissances. Les places Start et Success sont de type IndChronInst et 119Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements Tableau 4.1 – Description des fonctions utilisées dans nos réseaux Fonction Type (image de la fonction σ : F → B) Description + INT × INT → INT Addition usuelle. max INT × INT → INT Donne l’entier maximum entre deux entiers. checked IndChronInst × INT → IndChronInst Met à jour l’indice de la reconnaissance avec l’entier en argument. mark MkdChronInst × IndChronInst ×IndChronInst → MkdChronInst Met à jour le marquage de l’instance marquée en y ajoutant le couple des indices des deux reconnaissances. markABS MkdChronInst × IndChronInst → MkdChronInst Met à jour le marquage de l’instance marquée en y ajoutant les indices de la reconnaissance. complete Event × INT × IndChronInst → IndChronInst Complète l’instance de reconnaissance partielle avec l’évènement indicé de l’entier. merge MkdChronInst × IndChronInst ×IndChronInst → IndChronInst Récupère la première instance de reconnaissance et lui ajoute la seconde instance. mergeABS MkdChronInst × IndChronInst → IndChronInst Récupère la première instance de reconnaissance et lui ajoute la combinaison des deux dernières instances. chg_win INT × IndChronInst → INT Met à jour l’entier avec l’indice de la reconnaissance si celui-ci est plus grand. test_older INT × IndChronInst → Bool Vérifie si l’entier est supérieur ou égal à l’indice de début de la reconnaissance. test_olderMkd INT × MkdChronInst → Bool Vérifie si l’entier est supérieur ou égal à l’indice de début de la reconnaissance. compatible MkdChronInst × IndChronInst ×IndChronInst → Bool Vérifie, sur le marquage de la reconnaissance marquée, si la combinaison avec les deux autres reconnaissances n’a pas encore été faite. compatibleABS MkdChronInst×IndChronInst → Bool Vérifie, sur le marquage de la reconnaissance marquée, si la combinaison avec l’autre reconnaissance n’a pas encore été faite. usable IndChronInst × INT → Bool Vérifie si l’indice de la reconnaissance est strictement inférieur à l’entier. equalt IndChronInst × INT → Bool Vérifie si l’indice de la reconnaissance est égal à l’entier. 120CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE PETRI COLORÉS cpt+1 cpt curr Step Forget [test_older init curr] A [usable curr cpt] Present 1_num Wini ~1 Success Present 1_num Start complete (E(a)) cpt curr cpt 0 INT IndChronInst curr checked curr cpt ([],0) INT init 0 1_num INT IndChronInst 1 1`0 1 1`(~1) 1 1`0 1 1`([],0) Figure 4.2 – Structure des réseaux multi-jetons contiennent un jeton par reconnaissance. Le compteur d’évènements est également légèrement modifié, comme on le verra dans la Section 4.1.3. Le sens de lecture des réseaux est modifié : ceux-ci doivent maintenant être lus de haut en bas et non plus de gauche à droite. Comme dans le modèle du Chapitre 3, les jetons des reconnaissances circulent dans le réseau pour être complétés au fur et à mesure. En revanche, comme il y a maintenant un jeton par reconnaissance, il faut tirer les transitions complétant les reconnaissances autant de fois qu’il y a de jetons à compléter. Remarque 20 (marquage initial des places Start). Nous évoquions dans la Remarque 18 (p.84) les différents marquages initiaux des places Start contrôlant l’activation ou non des réseaux. Le marquage [ [ ] ] activait un réseau en offrant une liste vide [ ] à compléter alors que le marquage [ ] bloquait provisoirement le réseau. Les places contiennent maintenant un jeton par reconnaissance donc les marquages initiaux possibles deviennent les suivants : — ([ ], n), avec l’indice de reconnaissance n ∈ N, ce qui correspond à une reconnaissance partielle vide en attente de complétion et qui active donc le réseau qui suit 1 ; — le marquage vide (i.e. aucun jeton dans la place) qui indique qu’il n’y a aucune reconnaissance à compléter pour le moment et qui bloque donc le réseau qui suit. 4.1.3 Briques de base Avant de pouvoir effectuer la nouvelle construction par induction, nous reprenons les briques de base définies dans la Section 3.2.3 pour les adapter à notre nouvelle représentation des recon- 1. Attention, dans le modèle précédent, [ ] désignait une liste vide de reconnaissances donc l’absence de reconnaissances à compléter. Dans le modèle présenté dans cette section, chaque jeton représente une reconnaissance, donc [ ] représente l’existence d’une reconnaissance vide dans l’attente d’être complétée. 121Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements naissances. Compteur Ce sous-réseau noté CPT fait toujours office de compteur d’évènements. Il est composé d’une place Present dans laquelle est stockée la valeur du compteur, et d’une transition Step qui incrémente le compteur à chaque fois qu’elle est tirée. Il s’agit de tirer la transition Step avant de traiter un évènement et non après, contrairement au fonctionnement des anciens réseaux. Ceci permet de faciliter la manipulation des indices. À tout évènement est associée une valeur du compteur ce qui permet de distinguer, dans une reconnaissance, deux évènements de même nom étant survenus à des instants différents. cpt+1 cpt Step Present 0 INT Figure 4.3 – Compteur Opérateur OR Contrairement à la première modélisation et comme on le détaillera dans la Section 4.1.4, un opérateur de disjonction est nécessaire : il faut dupliquer à l’aide de la transition startOR les jetons de la place Start (qui correspondent aux reconnaissances partielles à être complétées par la disjonction) de façon à ce qu’ils puissent être utilisés pareillement par les réseaux correspondants à chacune des deux chroniques de la disjonction. On notera cet opérateur OPOR. Start StartL startOR curr IndChronInst ([],0) StartR IndChronInst IndChronInst curr curr Figure 4.4 – Opérateur OR La place Start de cette brique joue un rôle central en déclenchant la possibilité de reconnaître chacun des membres de la disjonction. Pour pouvoir s’y référer plus clairement par la suite, on la nomme Start(OR). Opérateur AND De même que dans notre précédente construction, ce sous-réseau noté OPAND sert à calculer la reconnaissance de la conjonction de deux chroniques C1 et C2. Il s’agit donc de réaliser toutes les combinaisons possibles d’une reconnaissance de C1 avec une reconnaissance de C2 et de les utiliser pour compléter une reconnaissance partielle éventuellement vide selon la nature de la chronique globale considérée. Réaliser ces combinaisons est un problème complexe, et le passage à un modèle multi-jeton ne permet plus d’intégrer cette complexité dans les fonctions en ML. En effet, le problème est le suivant : on dispose de deux places contenant chacune respectivement les reconnaissances de C1 et celles de C2 (rappelons qu’à chaque reconnaissance correspond un unique jeton), ainsi que d’une place contenant les reconnaissances partielles à compléter par la 122CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE PETRI COLORÉS conjonction (ces reconnaissances partielles peuvent être vides selon la chronique globale considérée). Pour plusieurs raisons, il n’est pas correct de combiner aveuglément les éléments des deux places contenant les reconnaissances de C1 et de C2. Une difficulté réside dans le fait que les combinaisons créées sont ensuite utilisées pour compléter les reconnaissances partielles (éventuellement vides). Il est donc nécessaire d’intégrer une structure assurant que toutes les possibilités de complétion sont réalisées (a priori chaque reconnaissance de C1, par exemple, participe à plusieurs reconnaissances globales de la chronique considérée). Rappelons que, lorsqu’un jeton est utilisé par une transition, il est ôté de la place, à moins qu’un arc en sortie de la transition ne l’y remette. Si l’on consomme les jetons de reconnaissance de C1 et de C2 au fur et à mesure que l’on fait des combinaisons, il faut au préalable les avoir dupliqués un nombre exactement suffisant de fois pour pouvoir effectuer toutes les combinaisons possibles, et il faut ensuite s’assurer que toutes ces combinaisons sont effectivement réalisées (i.e. que les jetons dupliqués ne sont pas utilisés pour engendrer plusieurs fois une même combinaison). Ce problème est complexe entre autres car il n’est pas trivialement possible de savoir à combien de reconnaissances chaque jeton va participer, et donc combien de fois il faut le dupliquer. Si, au contraire, on choisit de remettre dans leur place les jetons utilisés, ceci permet de s’affranchir du problème d’avoir suffisamment de jetons par rapport au nombre de combinaisons possibles à réaliser. La situation reste cependant complexe : — il faut s’assurer de ne pas produire plusieurs fois une même reconnaissance avec les mêmes jetons ; — il faut également veiller à ce que l’ensemble des combinaisons possibles soient intégralement parcouru ; — si la conjonction est le second membre d’une séquence (et donc que les reconnaissances partielles à compléter ne sont pas vides), il faut combiner chaque couple de reconnaissances de C1 et de C2 avec les bonnes reconnaissances du premier membre de la séquence (celles qui les précèdent). Pour remplir l’ensemble de ces conditions, il est donc nécessaire de conserver deux informations : quelles reconnaissances ont été complétées (dans le cadre d’une séquence), et quelles combinaisons de reconnaissances de C1 et de C2 ont été créées. Notre réseau fonctionne donc comme suit. Les places Operand1 et Operand2 contiennent respectivement les reconnaissances de C1 et de C2, et la place Start, initialement marquée ([ ], 0) peut contenir des reconnaissances à compléter dans le cas d’une séquence. Ce sont les jetons de reconnaissance éventuellement vide de cette place Start qui portent les informations que l’on souhaite conserver : le contenu de la place Start est d’abord marqué d’une liste vide à l’aide de la transition Mark0 (on passe donc d’un jeton de type IndChronInst à un jeton de type MarkedChronInst), cette liste vide est ensuite mise à jour pour contenir des couples de listes d’entiers : chaque liste d’entiers correspond à une reconnaissance (de C1 ou de C2 selon s’il s’agit du premier ou du second membre du couple), et donc chaque couple correspond à un couple de deux reconnaissances, l’une de C1 et l’autre de C2. On conserve ainsi non seulement la liste des combinaisons de C1 et de C2 ayant déjà été créées, mais aussi quelles reconnaissances partielles de la place Start elles ont complété. La garde compatible sur la transition Combine permet d’engendrer exactement les combinaisons recherchées, en vérifiant dans la liste les combinaisons ayant déjà été engendrées. 123Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements Ainsi, lorsque toutes les combinaisons possibles ont été réalisées, la transition Combine n’est plus tirable. Les places StartSub1, et StartSub2 sont fusionnées avec les places Start des réseaux correspondant à C1 et C2, et la transition Activate permet d’activer ces places lorsque la place StartBis contient au moins un jeton. En effet, dans le cas où la conjonction est la seconde partie d’une séquence, on ne souhaite pas que le réseau commence à reconnaitre la conjonction tant que le premier membre de la séquence n’a pas été reconnu, et ceci se traduit par l’arrivée d’un jeton dans la place Start puis dans la place StartBis. Les places Wini (qui en fait ne sont qu’une place car elles sont fusionnées — ce qui n’est ici qu’une représentation graphique facilitant la lecture) ainsi que les transitions Forget, Forget1 et Forget2 servent dans le cas d’une combinaison avec une absence. ([],0) merge mkinst inst1 inst2 init curr inst1 inst2 mark mkinst inst1 inst2 mkinst curr init (inst,[]) inst inst init mkinst Forget1 [test_older init curr] Combine [compatible mkinst inst1 inst2] Forget2 [test_older init curr] Mark0 Activate Forget [test_olderAND init mkinst] Success IndChronInst Wini Fusion 177 ~1 INT Operand1 IndChronInst Wini Fusion 177 ~1 INT Operand2 IndChronInst Start ([],0) IndChronInst AToken 1`([],0) IndChronInst Wini Fusion 177 ~1 INT StartBis MarkedChronInst StartSub2 IndChronInst StartSub1 IndChronInst Fusion 177 Fusion 177 Fusion 177 mkinst inst curr2 inst curr1 Figure 4.5 – Opérateur AND Les places Start et Success de ce réseau jouent un rôle central car la première, comme pour la brique du OR, déclenche la possibilité de reconnaitre la chronique, et la seconde regroupe les reconnaissances de C1&C2. D’autre part, la place Wini ne pourra fonctionner que si elle est fusionnée avec les places correspondantes situées à l’extérieur du réseau et que son contenu est donc mis à jour. On aura donc besoin de se référer à ces places. Pour plus de clarté, on note Success(AND) 124CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE PETRI COLORÉS pour Success, Wini(AND) pour Wini et Start(AND) pour Start. Opérateur ABS Comme dans notre précédente construction, ce sous-réseau noté OPABS sert à composer deux réseaux de Petri correspondant aux chroniques C1 et C2 pour obtenir les reconnaissances de (C1) − [C2[ qui seront conservées dans la place Success(C1). Cet opérateur fonctionne autour du même principe que l’opérateur ABS du modèle à un seul jeton, à savoir qu’il faut gérer les bornes de l’absence : — d’une part, dans le cas de plusieurs absences imbriquées, à travers la distinction entre les places WiniBe et WiniAf (cf. p.100) ; — d’autre part, dans le cas de l’imbrication dans une séquence, il faut isoler les reconnaissances de l’absence pour les recombiner correctement (il s’agit donc de recombiner séquentiellement les reconnaissances éventuelles de la premiere partie de la séquence sui sont dans la place Start avec les reconnaissances de l’absence qui sont dans la place Oper). L’introduction de plusieurs jetons n’influe pas sur le fonctionnement des places WiniBe et WiniAf mais complique la combinaison des reconnaissances des places Start et Oper. En effet, on retrouve la même problématique que dans l’opérateur de conjonction. Il faut effectuer toutes les combinaisons séquentielles possibles et, pour ce faire, nous ajoutons une structure qui marque les jetons de la place Start afin de garder la trace des combinaisons ayant été réalisées. Cette situation est analogue aux problèmes rencontrés autour de l’opérateur de conjonction. curr inst (inst,[]) mkdinst inst bck inst Forget [test_olderMkd init mkdinst] Combine [compatibleABS mkdinst inst] Activate Mark0 ForgetAf Oper IndChronInst StartBis MkdChronInst Start IndChronInst AToken StartSub 1`([],0) IndChronInst WiniAf Down Update Abs WiniBe max bck init init chg_win init inst init ~1 INT IndChronInst IndChronInst ([],0) inst inst mkdinst mkdinst markABS mkdinst inst init ~1 INT init [test_older init curr] [] IndChronInst mergeABS mkdinst inst Success Figure 4.6 – Opérateur ABS 125Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements 4.1.4 Construction par induction Nous pouvons maintenant construire notre nouveau modèle. Définissons par induction sur la chronique C le nouveau réseau de Petri coloré N(C) lui correspondant. cpt+1 cpt curr Step Forget [test_older init curr] A [usable curr cpt] Present 1_num Wini ~1 Success Present 1_num Start complete (E(a)) cpt curr cpt 0 INT IndChronInst curr checked curr cpt ([],0) INT init 0 1_num INT IndChronInst Figure 4.7 – Réseau correspondant à la chronique A Si C = A ∈ N Le fonctionnement global du réseau reconnaissant un évènement simple est sensiblement le même que celui de l’ancien modèle présenté dans la Section 3.2.4 (p.82). Le passage à un jeton par reconnaissance permet cependant de simplifier le réseau, qui est présenté Figure 4.7 : — Une garde est apposée à la transition Forget qui permet de sélectionner les reconnaissances à supprimer dans le cas d’une absence. Cette suppression se fait alors simplement par le tirage de la transition qui les consomme. La transition Forget n’est donc tirable que lorsqu’elle doit supprimer des reconnaissances, ce qui constitue un début de « contrôle » des transitions. — Une garde sur la transition A permet également d’instaurer un début de contrôle. L’indice marquant les reconnaissances 2 est utilisé ici pour garder une trace des jetons de reconnaissance ayant été complétés par l’occurrence de A en cours de traitement. L’indice n d’une reconnaissance l correspond à la valeur du compteur la dernière fois que l a été complétée par la transition A. Il suffit donc de comparer l’indice à la valeur courante du compteur : si le compteur a un indice supérieur, il faut tirer la transition. Un premier niveau de contrôle est implémenté : lors de l’occurrence d’un évènement A, la transition A est tirable exactement le bon nombre de fois, ce qui est intéressant car on ne peut donc pas la tirer une infinité de fois. En revanche, la gestion du flux n’est pas encore implémentée et la transition peut être tirée à l’occasion de l’occurrence d’un évènement autre que A. 2. On rappelle que les jetons de reconnaissance sont de type IndChronInst, à savoir des couples (l, n) où l est une reconnaissance et n est un entier. 126CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE PETRI COLORÉS Nous définissons : Present(C) = Present Start(C) = Start Success(C) = Success WiniOut(C) = Wini WiniIn(C) = ∅ Puis nous fusionnons avec le compteur d’évènements comme dans le modèle précédent dans (3.1) p.84. cpt+1 curr complete (E(b)) cpt curr curr Step A [usable curr cpt] Forget Forget B [usable curr cpt] Present 0 2_Num INT Present 2_Num Start IndChronInst Wini Wini INT Success Start 2_A IndChronInst Success 2_A Present 2_Num 2_A complete (E(a)) cpt curr cpt 2_Num [test_older init curr] init INT ~1 [test_older init curr] curr curr init ~1 ([],0) checked curr cpt cpt 2_Num INT 0 INT 2_Num 0 cpt checked curr cpt IndChronInst IndChronInst Figure 4.8 – Réseau correspondant à la chronique A B Si C = C1 C2 Afin de modéliser la séquence C1 C2, nous fusionnons, comme dans le modèle précédent du Chapitre 3, la place Success du réseau N(C1) avec la place Start du réseau N(C2). La Figure 4.8 présente un exemple de séquence sur la chronique A B. Cette fusion fait fonctionner les deux réseaux en série et modifie le marquage initial de Start(C2). Comme évoqué dans la Remarque 20, pour désactiver le réseau relatif à C2 tant qu’aucune reconnaissance de C1 n’est formée, Start(C2) est vide. Nous posons : N0 (C) = F usion({N(C1), N(C2)}, {(Present(C1), {Present(C1), Present(C2)}), 127Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements (Success(C1), {Success(C1), Start(C2)}) 3 , (WiniIn(C1), {WiniIn(C1), WiniIn(C2), WiniOut(C2)}) }) Nous définissons : Present(C) = Present(C1) Start(C) = Start(C1) Success(C) = Success(C2) WiniOut(C) = WiniOut(C1) WiniIn(C) = WiniOut(C2) Puis nous fusionnons avec le compteur d’évènements comme dans (3.1). curr init curr init checked curr cpt curr startOR Step A [usable curr cpt] Forget [test_older init curr] Forget [test_older init curr] B [usable curr cpt] StartL Fusion 161 Start Present 3_num Present 3_num Start Fusion 161 IndChronInst Wini Fusion 123 Wini Fusion 123 Success 3_success IndChronInst Start Fusion 162 Success 3_success Present 3_num Fusion 162 3_success Fusion 161 Fusion 161 curr ([],0) IndChronInst cpt+1 cpt 3_num 0 INT IndChronInst curr curr IndChronInst Fusion 123 2 INT checked curr cpt curr cpt 3_num INT 0 IndChronInst cpt 3_num 0 INT 2 Fusion 123 IndChronInst complete (E(a)) cpt curr complete (E(b)) cpt curr INT StartR Fusion 162 Fusion 162 Figure 4.9 – Réseau correspondant à la chronique A || B Si C = C1 | | C2 Afin de modéliser la disjonction, comme dans le modèle précédent, les deux réseaux N(C1) et N(C2) fonctionnent en parallèle. Contrairement au réseau de disjonction de la première modélisation, le passage à un modèle multi-jeton nous empêche de simplement fusionner les places Start des réseaux N(C1) et N(C2). En effet, lorsque l’on tire une transition relative à un évènement celle-ci modifie le contenu de la place Start associée en changeant l’indice des reconnaissances y figurant, donc, si l’on tire une transition relative au membre de gauche de la 3. Le marquage initial de Start(C2) devient donc vide. 128CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE PETRI COLORÉS disjonction, les jetons de la place Start sont marqués et ne sont plus utilisables tant que l’on ne tire pas la transition Step du compteur d’évènements (c’est-à-dire tant qu’on ne passe pas à l’évènement suivant dans le flux). Ceci pose problème par exemple pour la chronique A || (A B) car l’on souhaite pouvoir tirer les transitions A des membres de gauche et de droite pour chaque évènement de nom A. La transition StartOr duplique donc les jetons de reconnaissances de la place Start(C1 || C2) pour en mettre l’un dans Start(C1), l’autre dans Start(C2). Ces deux jetons identiques peuvent alors être complétés par chacune des deux parties du réseau. Notons que, pour la chronique A || A, on obtient donc deux reconnaissances de la chronique à chaque occurrence d’un évènement de nom A, ce qui correspond effectivement à la sémantique ensembliste. Nous posons : N0 (C) = F usion({N(C1), N(C2), OPOR}, {(Present(C1), {Present(C1), Present(C2)}), (Success(C1), {Success(C1), Success(C2)}), (WiniOut(C1), {WiniOut(C1), WiniOut(C2)}), (WiniIn(C1), {WiniIn(C1), WiniIn(C2)}), (StartL, {StartL, Start(C1)}), (StartR, {StartR, Start(C2)}) 4 }) Nous définissons : Present(C) = Present(C1) Start(C) = Start(OR) Success(C) = Success(C1) WiniOut(C) = WiniOut(C1) WiniIn(C) =  WiniIn(C1) si WiniIn(C1) 6= ∅ WiniIn(C2) sinon Puis nous fusionnons avec le compteur d’évènements comme dans (3.1). Si C = C1&C2 Pour modéliser la conjonction C1&C2, les réseaux N(C1) et N(C2) doivent également fonctionner en parallèle. La brique OPAND, dont le fonctionnement a été détaillé dans la Section 4.1.3, duplique les jetons de la place Start et active la possibilité de reconnaître les membres de la chronique, et ce en fusionnant les places Start de N(C1) et N(C2) avec les places StartSub1 et StartSub2. Les reconnaissances de C1 et C2 sont récupérées par l’opérateur AND grâce à la fusion des places Success(C1) et Success(C2) avec les places Operand1 et Operand2. Nous posons : N0 (C) = F usion({N(C1), N(C2), OPAND}, {(Present(C1), {Present(C1), Present(C2)}), (Startsub1, {Startsub1, Start(C1)}), 4. Les marquages initiaux des places Start(C1) et Start(C2) deviennent donc vides. 129Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements complete (E(b)) cpt curr ([],0) curr1 curr2 init curr merge mkinst inst1 inst2 inst2 inst1 mark mkinst inst1 inst2 mkinst curr init mkinst mkinst (inst,[]) init inst inst inst inst cpt+1 cpt cpt complete (E(a)) cpt curr checked curr cpt curr curr init curr init checked curr cpt curr cpt Forget1 [test_older init curr] Combine [compatible mkinst inst1 inst2] Forget2 [test_older init curr] Forget [test_olderAND init mkinst] Mark0 Activate Step A [usable curr cpt] Forget [test_older init curr] Forget [test_older init curr] B [usable curr cpt] Wini Fusion 124 ~1 INT Success IndChronInst Wini Fusion 124 ~1 INT Operand2 Fusion 118 IndChronInst StartBis MarkedChronInst Start([],0) IndChronInst Wini Fusion 124 ~1 INT AToken 1`([],0) IndChronInst StartSub2 Fusion 120 IndChronInst StartSub1 Fusion 119 IndChronInst Operand1 Fusion 117 IndChronInst Present 0 4_num INT Present 0 4_num INT Start Fusion 119 IndChronInst Wini ~1 Fusion 124 INT Wini Fusion 124 ~1 INT Success Fusion 118 IndChronInst Start Fusion 120 IndChronInst Success Fusion 117 IndChronInst Present 4_num 0 INT Fusion 117 Fusion 120 Fusion 118 Fusion 124 Fusion 124 Fusion 119 4_num 4_num Fusion 117 Fusion 119 Fusion 120 Fusion 124 Fusion 118 Fusion 124 Fusion 124 Figure 4.10 – Réseau correspondant à la chronique A&B (Startsub2, {Startsub2, Start(C2)}), (Success(C1), {Success(C1), Operand1}), (Success(C2), {Success(C2), Operand2}), (WiniOut(C1), {WiniOut(C1), WiniOut(C2), Wini(AND)}), (WiniIn(C1), {WiniIn(C1), WiniIn(C2)}) }) 130CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE PETRI COLORÉS Nous définissons : Present(C) = Present(C1) Start(C) = Start(AND) Success(C) = Success(AND) WiniOut(C) = WiniOut(C1) WiniIn(C) =  WiniIn(C1) si WiniIn(C1) 6= ∅ WiniIn(C2) sinon Puis nous fusionnons avec le compteur d’évènements comme dans (3.1). Si C = (C1) − [C2[ Afin de modéliser l’absence (C1) − [C2[, il faut détruire les reconnaissances partielles de C1 qui sont invalidées par une reconnaissance de C2. Pour ce faire, comme dans le modèle précédent, nous fusionnons la place Success(C2) avec la place Abs de l’opérateur OPABS pour mettre à jour le contenu de la place WiniBe qui est fusionnée avec Wini(C1). Le marquage de cette dernière, permet, à l’aide des transitions Forget, de supprimer les reconnaissances invalidées de C1 en les consommant. D’autre part, les places Present(C1) et Present(C2) sont toujours fusionnées pour propager la valeur du compteur. Et l’on fusionne la place Wini(C2) avec la place WiniAf qui va devenir la place Wini du réseau. Ainsi, si une seconde absence vient s’imbriquer sur le réseau de (C1) − [C2[, les reconnaissances de la nouvelle chronique interdite viendront également nettoyer le réseau N(C2). La place Start du réseau est la place Start(ABS) ce qui permet, dans le cas d’une imbrication de l’absence dans une séquence, d’isoler les reconnaissances de l’absence pour ensuite les combiner correctement avec les reconnaissances de la place Start. Nous posons : N0 (C) = F usion({N(C1), N(C2), OPABS}, {(Present(C1), {Present(C1), Present(C2), Present(ABS)}), (Start(C1), {Start(C1), Start(C2), StartSub}), (Success(C1), {Success(C1), Oper}), (Success(C2), {Success(C2), Abs}), (WiniIn(C1), {WiniIn(C1), WiniBe}) }) Nous définissons : Present(C) = Present(C1) Start(C) = Start(ABS) Success(C) = Success(ABS) WiniOut(C) = WiniAf WiniIn(C) = ∅ Puis nous fusionnons avec le compteur d’évènements comme dans (3.1), ce qui achève la construction formelle de nos premiers réseaux multi-jetons. 131Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements mkdinst inst markABS mkdinst inst inst mkdinst bck init inst init complete (E(a)) cpt curr cpt complete (E(d)) cpt curr cpt+1 cpt init complete (E(b)) cpt curr cpt ForgetBe ForgetAf Combine [compatibleABS mkdinst inst] Mark0 Activate D [usable curr cpt] Forget [test_older init curr] Step A [usable curr cpt] Forget [test_older init curr] Forget [test_older init curr] B [usable curr cpt] Success IndChronInst Oper Fusion 129 Start IndChronInst AToken 1`([],0) StartBis MkdChronInst StartSub Fusion 130 IndChronInst ~1 Present 5_num 0 INT Success Fusion 128 IndChronInst Wini Fusion 192 INT Start Fusion 130 IndChronInst Present 5_num INT 0 Present 5_num INT 0 Start Fusion 130 IndChronInst Wini INT Wini Fusion 126 INT Success Fusion 129 IndChronInst Start Fusion 127 IndChronInst Success Fusion 127 IndChronInst Present 5_num INT 0 Fusion 130 Fusion 127 5_num Fusion 130 Fusion 128 Fusion 130 WiniAf Fusion 192 Down checked curr cpt curr curr init ~1 cpt 5_num curr curr checked curr cpt Fusion 127 Fusion 129 5_num Fusion 126 ~1 WiniBe Fusion 126 max bck init Update Abs Fusion 128 IndChronInst Fusion 126 INT INT chg_win init inst init [test_olderMkd init mkdinst] Fusion 192 ~1 [test_older init curr] init Fusion 129 curr IndChronInst mkdinst mergeABS mkdinst inst (inst,[]) ([],0) inst inst IndChronInst curr init Fusion 192 ~1 curr checked curr cpt 5_num Figure 4.11 – Réseau correspondant à la chronique (A B) − [D[ 132CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE PETRI COLORÉS 4.1.5 Bilan sur le degré de contrôle acquis et stratégie de tirage Le passage à un modèle multi-jeton où un jeton est associé à chaque reconnaissance partielle a permis d’implémenter un début de structure de contrôle sur le tirage des transitions. En effet, mis à part les transitions Step et Down qui sont en permanence tirables, les transitions ne sont tirables qu’un nombre limité de fois à la suite. Ainsi, à l’occurrence d’un évènement A, les transitions A sont tirables exactement le bon nombre fois, puis ne sont plus tirables jusqu’au tirage de la transition Step pour le traitement d’un nouvel évènement. Il en est de même pour les autres transitions. En revanche, il n’y a pas encore d’implémentation de la gestion du flux dans les réseaux donc certaines transitions sont tirables, certes un nombre limité de fois, mais alors qu’elles ne devraient pas être tirées pour la gestion de l’évènement en cours de traitement. Par exemple, à l’occurrence d’un évènement B, une transition A peut être tirée mais ne doit pas l’être. Les réseaux que nous avons construits ne sont donc pas encore indépendants pour atteindre les marquages correspondant au traitement correct de chaque évènement, marquages où l’on peut lire les ensembles de reconnaissances correspondants. Il faut donc de nouveau définir une stratégie de tirage. En d’autres termes, les deux problèmes majeurs rendant la définition d’une stratégie de tirage nécessaire sont les suivants : — deux transitions sont en permanence tirables : — la transition Step, dont le tirage au mauvais moment a un effet critique sur le réseau puisqu’il agit sur le compteur d’évènements qui est directement lié à la gestion du flux d’évènements, — la transition Down, dont le tirage intempestif n’a aucun effet sur le réseau, mais qui pourrait boucler indéfiniment ; — les transitions liées aux évènements (A, B, . . . ) sont tirables dès que la place Start qui leur est associée est activée, et cela sans considération de l’évènement qui est en cours de traitement, ceci est donc directement lié à la gestion du flux. Définition formelle d’une stratégie de tirage Il nous faut donc de nouveau définir formellement une stratégie de tirage qui, associée aux réseaux précédents, permet de lire dans leur marquage, après le traitement d’un évènement, les reconnaissances correctes de la chronique concernée. Pour ce faire, nous devons tout d’abord définir, comme pour le modèle précédent, une fonction auxiliaire F orgetC qui correspond à la liste des transitions Forget de N(C) convenablement ordonnée qui sont tirées lors d’une absence. Nous serons amenés à plusieurs reprises à vouloir tirer une transition jusqu’à ce que celle-ci ne soit plus tirable. Nous notons donc Trans∗ le tirage de la transition Trans jusqu’à ce qu’elle ne soit plus tirable. Définition 35 (stratégie de tirage des transitions Forget pour les réseaux multi-jetons). On définit par induction sur la chronique C la fonction auxiliaire F orgetC : — Si C = A ∈ N, alors F orgetC = [Forget∗ ] — Si C = C1 C2, alors F orgetC = F orgetC2 :: F orgetC1 133Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements — Si C = C1 | | C2, alors F orgetC = F orgetC2 :: F orgetC1 — Si C = C1&C2, alors F orgetC = [Forget∗ , Forget1∗ , Forget2∗ ] :: F orgetC2 :: F orgetC1 — Si C = (C1) − [C2[, alors F orgetC = F orgetC2 :: [Down] :: F orgetC1 :: [ForgetBe, ForgetAf] À partir de cette définition, nous pouvons maintenant définir la stratégie de tirage générale : Définition 36 (stratégie de tirage pour les réseaux multi-jetons). On définit par induction sur la chronique C la stratégie de tirage SC où, pour tout évènement e ∈ N, SC (e) correspond à la suite des transitions à tirer dans le réseau N(C) pour le traitement de l’évènement e. Pour ce faire, nous définissons une fonction auxiliaire S 0 C qui donne toutes les transitions à tirer, exceptée la transition Step. En effet, comme dans le modèle précédent, celle-ci doit être tirée une seule fois par évènement, au début, et est donc ajoutée a posteriori. Pour tout e ∈ N : — Si C = A ∈ N, alors S 0 C (e) =  [A ∗ ] si e = A [ ] sinon — Si C = C1 C2, alors S 0 C (e) = S 0 C1 (e) :: S 0 C2 (e) — Si C = C1 | | C2, alors S 0 C (e) = [Start(OR) ∗ ] :: S 0 C1 (e) :: S 0 C2 (e) — Si C = C1&C2, alors S 0 C (e) = [Mark0∗ , Activate∗ ] :: S 0 C1 (e) :: S 0 C2 (e) :: [Combine∗ ] — Si C = (C1)−[C2[, alors S 0 C (e) = [Mark0∗ , Activate∗ ] :: S 0 C1 (e) :: S 0 C2 (e) :: [Update, Down] :: F orget(C1)−[C2[ :: [Combine∗ ] On pose maintenant, pour tout e ∈ N, SC (e) = [Step] :: S 0 C (e). Ceci achève la construction du modèle dit « multi-jetons » qui intègre un début de structure de contrôle du tirage des transitions grâce à l’éclatement des jetons de listes de reconnaissances. 4.2 Construction et fonctionnement des réseaux « contrôlés » Rappelons que l’objectif de ce chapitre est de construire un modèle de reconnaissance qui soit à la fois : — modulaire ; — concurrent ; — autonome dans le sens où tout tirage de transitions correspondant au traitement d’un évè- nement du flux doit mener au marquage dans lequel les reconnaissances correctes associées peuvent être lues. Dans la Section 4.1, une première étape de contrôle a été implémentée grâce au passage à une représentation multi-jeton des ensembles de reconnaissances, avec un jeton par reconnaissance. Cependant, les réseaux obtenus ne sont pas encore autonomes et il reste à implémenter une structure de gestion du flux d’évènements. Dans cette section, nous achevons donc d’implémenter l’autonomie de nos réseaux en introduisant une telle structure [CCKP13a]. Le problème est double, il s’agit de : 1. gérer les transitions relatives aux évènements (A, B. . . ) pour qu’elles ne soient tirables que lorsque l’évènement du flux en cours de traitement possède le bon nom ; 134CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE PETRI COLORÉS 2. gérer la transition Step qui est pour le moment en permanence tirable : c’est un problème non trivial car il faut la tirer une fois que toutes les autres transitions du réseau ont été tirées, donc une fois qu’aucune autre transition du réseau n’est plus tirable. Pour répondre à ces deux problèmes, nous procédons de la façon suivante, en implémentant la structure de gestion du flux : 1. Nous ajoutons aux réseaux une place contenant les événements du flux. La valeur du compteur permet d’identifier l’évènement qui est en cours de traitement et il est alors possible de mettre une garde sur les transitions relatives aux évènements pour qu’elles ne soient tirables que lorsqu’elles sont concernées. 2. Nous introduisons des jetons d’activation de transitions. Ces jetons parcourent les réseaux, en activant successivement diverses transitions dans un certain ordre, pour ensuite se retrouver autour de la transition Step. Lorsque tous les jetons de contrôle sont de nouveau parvenus à la transition Step, c’est que l’ensemble des autres transitions du réseau ont été correctement tirées et l’on peut donc tirer Step qui réinjecte les jetons de contrôle dans le réseau tout en incrémentant le compteur. Dans cette section, nous allons faire évoluer notre modèle multi-jetons pour répondre aux objectifs que nous nous sommes fixés en début de chapitre, et construire un modèle dit « contrôlé ». Nous présentons en 4.2.1 les types et expressions utilisés puis en 4.2.2 la structure globale des réseaux contrôlés. Dans la Section 4.2.3, nous définissons les briques de bases jouant le rôle des opérateurs pour les réseaux contrôlés et, dans la Section 4.2.4 nous introduisons une structure en réseaux de Petri colorés que nous appelons « séparateur de jetons » et qui est utilisée pour la gestion des jetons de contrôle. La Section 4.2.5 est consacrée à la construction par induction des réseaux contrôlés. L’aspect « contrôlé » des réseaux nous permet ensuite d’utiliser les outils d’analyse de CPN Tools et de développer dans la Section 4.2.6 les graphes d’espace d’états des réseaux qui mettent en avant les caractéristiques recherchées des réseaux, à savoir la modularité, la concurrence, et l’autonomie. 4.2.1 Types et expressions utilisés Dans nos réseaux « contrôlés » nous utilisons la même représentation des reconnaissances que dans la Section 4.1, à savoir que chaque reconnaissance partielle est représentée par un jeton. Nous conservons donc sensiblement les même types que ceux définis dans la Section 4.1.1. Nous ajoutons : — le type JETON qui est utilisé pour la structure d’activation des transitions ; — le type MkdINT qui correspond à un entier marqué d’un autre entier et qui est utilisé pour le marquage des places Wini ; — le type IndChronInstList qui permet de stocker des listes de reconnaissances. On pose B = {JETON, INT, MkdINT, Event, IndChronInst, IndChronInstList}, toujours avec NEvent = Event × INT, et F = {+, maxi, addChecked, complete, mergeAll, chgWin, test_old, test_oldAND, remobs, rightTime, decr2, unfold, Guard, negGuard }. Ces fonctions sont décrites dans le Tableau 4.12. 135Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements Tableau 4.12 – Description des fonctions utilisées dans nos réseaux Fonction Type (image de la fonction σ : F → B) Description + INT × INT → INT Addition usuelle. maxi MkdINT × MkdINT → MkdINT Donne l’entier maximum entre les deux premières composantes des deux couples. addChecked IndChronInstList × IndChronInst × INT → IndChronInstList Met à jour l’indice de la reconnaissance avec l’entier et ajoute la reconnaissance à la liste. complete Event × INT × IndChronInst → IndChronInst Complète l’instance de reconnaissance partielle avec l’évènement indicé de l’entier. mergeAll IndChronInstList × IndChronInstList ×IndChronInstList × INT → IndChronInst Réalise toutes les combinaisons possibles de reconnaissances des trois listes, telles que la reconnaissances de la troisième liste s’enchaine séquentiellement avec les reconnaissances des deux premières listes. La fonction renvoie autant de jetons que de reconnaissances créées. chgWin MkdINT × IndChronInst → INT Met à jour l’entier marqué avec l’indice de la reconnaissance si celui-ci est plus grand. test_old MkdINT × IndChronInst → Bool Vérifie si l’entier marqué est supérieur ou égal à l’indice de début de la reconnaissance. test_oldAND MkdINT × IndChronInstList → Bool Vérifie si l’entier marqué est supérieur ou égal à l’indice de début de l’une des reconnaissances. remobs MkdINT × IndChronInstList → IndChronInstList Supprime de la liste des reconnaissances les reconnaissances dont l’indice de début est strictement inférieur à l’entier marqué. rightTime IndChronInst × INT → Bool Vérifie si l’indice de la reconnaissance est égal à l’entier en argument. decr2 MKdINT × INT → MkdINT Modifie le marquage de l’entier marqué en le marquant de l’entier en argument décrémenté de 1. unfold IndChronInstList → IndChronInst Éclate la liste de reconnaissances en autant de jetons que de reconnaissances. Guard IndChronInst × INT × Event × NEvent → Bool Vérifie que l’évènement indicé porte le nom recherché et que son indice est égal à l’entier en argument, et vérifie également que l’indice de la reconnaissance est strictement inférieur à l’entier en argument. negGuard IndChronInst × INT × Event × NEvent → Bool Vérifie que soit l’évènement indicé porte le nom recherché et son indice est égal à l’entier en argument et également l’indice de la reconnaissance est supérieur ou égal à l’entier en argument, soit l’évènement ne porte par le bon nom mais son indice est égal à l’entier en argument. 136CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE PETRI COLORÉS 4.2.2 Structure globale des réseaux Figure 4.13 – Structure globale des réseaux contrôlés Nous conservons toujours une structure modulaire pour pouvoir définir nos réseaux par induction. La structure globale des réseaux contrôlés que nous allons construire dans cette section est présentée dans la Figure 4.13. Elle est fondée sur celle de la Section 4.1.2 à laquelle nous avons ajouté les places suivantes : — la place Events est de type IndexedEvent, elle contient le flux d’évènements à traiter, avec un jeton par évènement ; — les places Go et End contiennent des jetons de contrôle qui sont de type INT, ils sont en charge de l’activation et de la désactivation des transitions associées au traitement des évènements ; — les places GoFor et EndFor, également de type INT, ont le même rôle que Go et End mais pour la transition Forget. Notons que, dans nos réseaux, la place Events contient directement l’ensemble des évènements du flux à traiter, mais qu’il est tout à fait envisageable de relier la place Events à une structure extérieure fournissant au fur et à mesure les évènements à traiter. Il est ainsi possible de connecter nos réseaux de reconnaissance de chronique contrôlés à des simulations réalisées également en réseaux de Petri colorés, par exemple. Le compteur d’évènements est également modifié pour prendre en compte les jetons de contrôle, ce qui est détaillé dans la Section 4.2.3. Comme dans le précédent modèle, des jetons représentant des reconnaissances partielles évoluent dans le réseau, depuis la place Start jusqu’à la place Success, étant peu à peu complétés par des évènements du flux. Les transitions sont contrôlées par les jetons de contrôle qui parcourent le réseau intégralement au traitement de chaque évènement du flux. Le jeton de contrôle parcourt la partie du réseau liée à la reconnaissance en profondeur (places Go à End), puis remonte en sens inverse en passant par les zones liées à l’absence (places GoFor à EndFor). 137Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements 4.2.3 Briques de base Notre construction par induction est toujours fondée sur un ensemble de briques de base que nous allons présenter ici. Ces briques sont celles de la Section 4.1.3 que nous avons modifiées pour intégrer les jetons de contrôle. cpt cpt Next INT Present 1 cpt+1 [cpt<8] INT End Go INT bck Figure 4.14 – Compteur Compteur Notre modèle possède toujours un compteur d’évènements qui est présenté dans la Figure 4.14 et noté CPT. La transition Step s’est transformée en transition Next. Son tirage incrémente non seulement la valeur du compteur d’évènements qui est stockée dans la place Present pour passer à l’évènement suivant du flux, mais il transfère également le jeton de contrôle de la place End à la place Go. Ainsi, la transition Next n’est tirable que lorsqu’il y a un jeton de contrôle dans la place End. Comme évoqué précédemment, ce jeton de contrôle parcourt l’ensemble du réseau, en étant parfois dupliqué puis ensuite unifié, et en activant ainsi successivement les différentes transitions à tirer dans le réseau. Lorsque toutes les transitions ont été correctement tirées, le jeton se trouve à nouveau dans la place End, ce qui permet de tirer Next et de passer au traitement de l’évènement suivant par le biais de la place Go. Une garde [cpt< d], avec d ∈ N est apposée à la transition Next. Le réseau doit traiter tous les évènements du flux d’indice d’occurrence strictement inférieur à d. L’entier d de la garde correspond donc à l’entier d figurant dans l’ensemble de reconnaissances RC (ϕ, d) de la Définition 16. Du point de vue de nos réseaux, une fois la valeur de cet entier atteint par le compteur d’évènements, la transition Next n’est plus tirable et plus aucun autre évènement ne peut donc être traité. La garde contribue donc à assurer que toute séquence de transitions tirable est finie. Si l’on souhaite faire évoluer cette valeur dans le temps, on peut imaginer l’ajout d’une place de type INT en entrée de la transition Next et fournissant la valeur de d. Opérateur OR La brique correspondant à l’opérateur de disjonction est présentée Figure 4.15 et notée OPOR. Elle se compose maintenant de deux parties. Comme nous souhaitons maintenir un maximum de concurrence au sein de nos réseaux, et comme les traitements des branches de droite et de gauche d’une conjonction sont indépendants, le jeton de contrôle est dupliqué par l’opérateur de disjonction. Chaque jeton peut alors parcourir indépendamment sa branche de la disjonction. Lorsque les deux jetons ont achevé leurs parcours, cela signifie que l’ensemble des transitions liées 138CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE PETRI COLORÉS InitOR StartOR GoOR 1 StartL StartR Start ([],0) IndChronInst IndChronInst curr cpt [rightTime curr cpt] PresentOR INT IndChronInst init 1 INT GoR init INT INT GoL curr curr init TEndOR INT EndL EndOR init INT init INT init EndR Figure 4.15 – Opérateur OR à la disjonction ont été correctement tirées. On peut alors réunir les deux jetons de contrôle en un seul et procéder au traitement de la suite du réseau, selon la chronique étudiée. Ce comportement est dirigé par les transitions StartOR et TEndOR. Pour activer le réseau de la disjonction, il faut que : — toutes les reconnaissances partielles de la place Start aient été dupliquées pour traitement dans les places StartL et StartR, ce qui se matérialise par l’arc inhibiteur reliant la place Start à la transition StartOR ; — un jeton de contrôle soit parvenu à la place GoOR. Alors, le tirage de la transition StartOR duplique le jeton de contrôle dans les places GoL et GoR qui vont activer chacune des deux branches de la disjonction. Lorsque les transitions d’une des branches ont toutes été correctement tirées, le jeton de contrôle parvient à la place EndL ou EndR selon la branche qu’il a explorée. Une fois que les deux jetons sont réunis dans les places EndL ou EndR, cela signifie que toute la disjonction a été correctement traitée, et la transition TEndOR est activée. Son tirage permet de procéder au traitement de la suite du réseau. La transition InitOR fonctionne comme dans le modèle précédent (cf. 4.1.3), à savoir qu’elle duplique les reconnaissances partielles en attente de complétion dans Start pour qu’elles puissent être complétées par chacune des deux branches de la disjonction, à partir des places StartL et StartR. Une garde est ajoutée à la transition InitOR pour assurer que les reconnaissances dupliquées le soient au bon moment. Opérateur AND L’opérateur de conjonction OPAND qui est représenté dans la Figure 4.16 fonctionne sur le même principe que celui du modèle multi-jetons (Figure 4.4, p.122) : les reconnais- 139Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements remobs ini lcurr2 lcurr1 cpt cpt init (inst2::lcurr2) lcurr2 inst1 inst2 init init init mergeAll lcurr1 lcurr2 lcurr cpt lcurr ini (inst::lcurr) lcurr ini Accu2 Accu1 ActOK InitOK Forget1 Combine Forget2 [test_oldAND ini lcurr2] Accu Activate Forget Present3 Fusion 122 1 Present1 Fusion 122 Present2 Fusion 122 1 INT AccuOp2[] IndChronInstList AccuOp1 [] EndAnd GoAct Fusion 145 INT INT INT GoComb1 INT INT Success IndChronInst Wini1 Fusion 142 (~1,~1) MkdINT Operand1 IndChronInst Wini2 Fusion 142 (~1,~1) MkdINT Operand2 [] IndChronInst Start IndChronInst AToken 1`([],0) Wini Fusion 142 (~1,~1) MkdINT StartBis [] IndChronInstList Fusion 142 Fusion 142 Fusion 142 Fusion 145 Fusion 122 Fusion 122 IndChronInst init GoL init init GoR INT inst ([],0) StartSub1 StartSub2 curr1 IndChronInst IndChronInst inst inst curr2 remobs ini lcurr [test_oldAND ini lcurr] ([],0) inst GoInit 1 init EndInit Fusion 145 lcurr1 lcurr2 lcurr2 cpt INT init INT INT init [] Fusion 122 INT 1 lcurr lcurr IndChronInstList lcurr1 (inst1::lcurr1) remobs ini lcurr1 ini [test_oldAND ini lcurr1] GoComb2 Figure 4.16 – Opérateur AND 140CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE PETRI COLORÉS sances des deux membres de la conjonction (places Operand1 et Operand2) et de l’éventuel premier membre de la séquence (place Start), dans le cas d’une imbrication dans une séquence, sont réalisées séparément puis combinées (transition Combine). Comme dans les modèles précédents, on se référera à Start(AND) et Success(AND) pour les places Start et Success. Il s’agit ici de contrôler, à l’aide des jetons de contrôle, le tirage des transitions. L’opérateur doit effectuer quatre tâches principales qui doivent être réalisées successivement dans cet ordre : (i) pour répondre au problème soulevé dans la section précédente (p.122) pour la construction du modèle multi-jetons, les reconnaissances de la place Start doivent être accumulées dans la place StartBis ; (ii) les places Start des deux membres de la conjonction doivent être activées avec les places StartSub1 et StartSub2 ; (iii) les réseaux relatifs aux deux membres de la conjonction doivent être parcourus ; (iv) les reconnaissances de Start, et des deux membres de la conjonction (places Operand1 et Operand2) doivent être combinées. Pour ce faire, le jeton de contrôle parcourt l’opérateur de conjonction comme suit : (i) Le jeton de contrôle intègre le réseau par la place GoInit. Lorsque toutes les reconnaissances de la place Start ont été accumulées dans StartBis (et donc lorsque Start est vide), la transition InitOK peut être tirée (ce qui est assuré par un arc inhibiteur). Ceci indique que la première tâche est accomplie. (ii) Le jeton de contrôle est alors transféré à la place GoAct. Alors : — si la place AToken est vide (i.e. si les places Start des réseaux relatifs aux deux membres de la conjonction sont déjà activées), la transition ActOK, indiquant que l’activation est bien effectuée, est tirable ; — sinon, il faut tirer la transition Activate pour activer les réseaux relatifs aux deux membres de la conjonction et vider la place AToken, rendant ainsi ActOK tirable. Ceci assure que l’on ne procède pas à la suite des tâches (i.e. qu’on ne tire pas ActOK) tant que les réseaux des deux membres de la conjonction n’ont pas été activés. (iii) Au tirage de ActOK, le jeton de contrôle est dédoublé pour aller parcourir les deux réseaux relatifs aux membres de la conjonction. (iv) Il reste alors à combiner les reconnaissances des places Start, Operand1 et Operand2. Comme dans le modèle précédent, les reconnaissances de Start ont été accumulées dans StartBis sous la forme d’une liste de reconnaissances marquées, ce qui permet de garder la trace des combinaisons ayant déjà été effectuées. Cependant, ceci ne suffit pas dans cette situation où nous avons besoin de savoir quand toutes les combinaisons ont été effectuées, c’est-à-dire quand la transition Combine n’est plus tirable. Pour répondre à ce problème, on accumule également sous forme de listes les reconnaissances de Operand1 et Operand2 dans AccuOp1 et AccuOp2 à l’aide de Accu1 et Accu2. Ainsi, la combinaison des reconnaissances peut se faire avec un unique tirage de Combine 5 , ce qui permet de transférer en même temps le jeton de 5. Notons que l’on retrouve ici le mécanisme des réseaux à un seul jeton. 141Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements contrôle dans la place EndAnd, indiquant que toutes les tâches ont été effectuées. La transition Combine n’est tirable que lorsque : — les places GoComb1 et GoComb2 contiennent chacune un jeton de contrôle, i.e. les deux réseaux relatifs aux membres de la conjonction ont été parcourus ; — les places Operand1 et Operand2 sont vides, i.e. l’intégralité de leur contenu a bien été accumulé dans les places AccuOp1 et AccuOp2. On obtient ainsi un opérateur fonctionnant sur le même principe que l’opérateur du modèle multijetons mais dans lequel le contrôle du tirage des transitions est implémenté. Figure 4.17 – Opérateur ABS de l’absence 142CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE PETRI COLORÉS Opérateur ABS De même que pour OPAND, l’opérateur ABS noté OPABS et représenté dans la Figure 4.17 fonctionne sur le même principe que l’opérateur ABS du modèle multi-jetons (Figure 4.6, p.125) mais implémente en prime le contrôle du tirage des transitions. Comme pour les modèles précédents, on se référera à Start(ABS) et Success(ABS) pour Start et Success. La problématique est quadruple, il faut : (i) mettre à jour le contenu de la place WiniBe qui correspond à la valeur de Wini liée à l’absence en cours (comme détaillé dans les modèles précédents) ; (ii) combiner les reconnaissances du premier membre de l’absence avec les reconnaissances du premier membre d’une séquence dans le cas d’une imbrication dans une séquence ; (iii) dans le cas d’une imbrication dans une autre absence, mettre à jour le contenu de la places WiniAf qui correspond à la valeur de Wini liée à un absence à un niveau supérieur ; (iv) gérer, selon les bornes de l’absence, le tirage des transitions Forget du réseau autant de fois que nécessaire. Dans le cas d’une simple absence, le jeton de contrôle effectue le parcours suivant : — il intègre le réseau dans la place toAbs1, ce qui engendre le tirage de la transition Abs1 et alors : — la place CurrAbs1 contient un jeton qui indique que c’est cette absence qui est en cours de traitement (cette place est utile dans le cas de plusieurs absences imbriquées, cas que l’on étudiera par la suite), — le jeton de contrôle est transféré dans la place InAbs11 ; — le jeton de contrôle parcourt alors successivement les réseaux relatifs aux deux membres de l’absence ; — à la suite de ce parcours, le jeton se retrouve dans la place GoUp, et deux cas se présentent alors : 1. s’il y a eu une nouvelle reconnaissance de la chronique interdite, alors la transition Update est tirable ce qui permet la mise à jour de la place WiniBe, et, par la place EndUp, le jeton de contrôle va remonter dans le premier membre de l’absence, par les places EndFor et GoFor, activant les transitions Forget correspondantes, puis le jeton atterri dans la place InAbs12, 2. sinon, le jeton de contrôle est directement transféré par NoUp dans la place InAbs12, Notons que ces deux cas sont exclusifs : la transition Update est tirable si la place Abs contient une reconnaissance, alors que la transition NoUp n’est tirable que si la place Abs est vide ; — la transition EndAbs1 est ensuite tirable, ce qui achève le traitement de l’absence en activant la zone rouge ABS qui réalise les combinaisons des reconnaissances du premier membre de l’absence avec les reconnaissances du premier membre d’une séquence dans le cas d’une imbrication dans une séquence 6 . 6. Le mécanisme de cette zone n’est pas détaillé ici pour rendre le réseau plus aisément compréhensible. Il répond cependant à la même problématique que celle rencontrée dans le cas des combinaisons à effectuer pour une conjonction, et a donc la même structure. 143Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements Explicitons maintenant le cas de deux absences imbriquées. On considère une absence numé- rotée 1 imbriquée dans une absence numérotée 2 pour distinguer les places des deux opérateurs OPUP. Alors la place GoDown1 (i.e. la place GoDown de l’absence « interne ») est fusionnée avec la place EndFor2 (i.e. la place EndFor de l’absence externe). Le traitement de la première absence n’est pas influencé par la présence de la seconde absence. Le traitement de l’absence 2 s’effectue comme suit : — le jeton de contrôle suit le parcours lié à une absence quelconque indiqué ci-dessus ; — comme EndFor2 est fusionné avec GoDown1, au lieu d’achever le traitement de l’absence, le jeton de contrôle, en remontant dans le réseau à travers les places EndFor et GoFor de l’absence externe, va activer la transition Down1 de l’absence interne, qui met à jour la place WiniBe avec la valeur de WiniAf ; — la transition Down transfère en même temps que cette mise à jour le jeton de contrôle dans la place EndUp, ce qui permet de parcourir les places GoFor et EndFor de l’absence interne, et ainsi propager le tirage des transitions Forget à l’absence interne ; — le jeton de contrôle arrive alors dans la place InAbs12 qui est également fusionnée avec la place InAbs22, mais comme la seconde absence est en cours de traitement il y a un jeton de marquage dans la place CurrAbs2 mais pas dans la place CurrAbs1, donc seule la transition EndAbs2 est tirable ce qui achève le traitement de l’absence en activant la zone rouge ABS2. 4.2.4 Un séparateur de jetons générique Avant de pouvoir finalement construire notre modèle contrôlé de reconnaissance de chroniques, nous allons définir une dernière structure qui fait partie du réseau chargé de la reconnaissance d’un évènement simple. La problématique est centrée autour du contrôle de la transition relative à l’évènement simple à reconnaître, par exemple A. Il s’agit de trouver un moyen de détecter qu’une transition A n’est plus tirable pour faire évoluer le jeton de contrôle dans la suite du réseau. Or, la transition A a effet sur une place Start pouvant contenir plusieurs reconnaissances partielles en attente de complétion. Certaines de ces reconnaissances doivent être traitées par la transition A et d’autres, non (typiquement parce qu’elles viennent d’être produites et qu’il faut donc attendre l’exécution suivante). Il faut élaborer un moyen de savoir quand toutes les instances devant être traitées l’ont bien été, et ce afin de déclencher la suite du parcours du jeton de contrôle. Lorsque toutes les instances ont été traitées, la transition A n’est plus tirable. Le comportement recherché ressemble donc à celui d’un arc inhibiteur. Cependant, la transition n’est plus tirable non pas parce que l’une des places en entrée est dénuée de tout jeton, mais parce qu’il n’y a plus aucun jeton qui vérifie la garde apposée à la transition. Il s’agit donc de construire une structure qui remplit cette fonction, avec la contrainte supplémentaire qu’elle ne doit, à terme, pas avoir modifié le contenu de la place Start car les reconnaissances partielles en attente de complétion peuvent avoir à être utilisées ultérieurement lors du traitement d’un autre évènement. Nous appelons cette structure un séparateur de jetons. Elle est présentée dans la Figure 4.18 et repose notamment sur les arcs inhibiteurs. En d’autres termes, la situation est la suivante. Nous disposons de deux places de contrôle Go et End, ainsi que d’une place Start contenant des jetons et reliée à une transition possédant une 144CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE PETRI COLORÉS init cpt init 1 INT INT Go cpt evt lcurr lcurr curr cpt evt curr curr INT No Accu Events Yes Present toBeTreated IndChronInst ([],0) IndexedEvent [] [] curr lcurr PutBack Start IndChronInstList cpt Treatment addChecked lcurr curr cpt [Guard curr evt cpt] unfold lcurr IndChronInst [notGuard curr evt cpt] addChecked lcurr curr cpt End Figure 4.18 – Le réseau séparateur de jetons garde. Nous souhaitons effectuer le contrôle suivant : 1. rien ne doit être effectué tant qu’aucun jeton de contrôle n’est arrivé dans la place Go ; 2. la transition doit être tirée pour chaque jeton de Start vérifiant la garde ; 3. une fois que ces tirages sont effectués, le jeton de contrôle doit être transféré de la place Go à la place End ; 4. lorsque le jeton de contrôle arrive à la place End, l’ensemble des jetons initialement présents dans la place Start doit toujours y être (mais ils peuvent avoir été manipulés entre temps). Pour résoudre ce problème, nous introduisons donc le réseau séparateur de jetons présenté dans la Figure 4.18 et construit comme suit : — la transition concernée est divisée en trois transitions : deux d’entre elles (Yes et No) repré- sentent la garde, et la troisième (Treatment) correspond au traitement administré initialement par la transition divisée (il peut y avoir d’autres arcs en sortie de Treatment) ; — la transition Yes conserve la garde initiale, alors qu’une garde complémentaire est apposée à la transition No – ceci permet de séparer les jetons de la place initiale Start en deux ensembles ; — les deux transitions vident donc la place Start, et remplissent deux places : Yes transfère les jetons de Start vérifiant la garde dans la place toBeTreated pour qu’ils soient traités ultérieurement, alors que No accumule les jetons vérifiant la garde complémentaire dans une liste dans la place Accu ; — un arc inhibiteur reliant la place Start à la transition Treatment empêche tout traitement tant que l’intégralité des jetons n’a pas été répartie entre les places toBeTreated et Accu ; 145Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements — lorsque cette séparation est terminée, le traitement peut donc être effectué, et les jetons traités sont ajoutés à la liste présente dans Accu ; — le rôle de la transition putBack est de transférer le jeton de contrôle de la place Go à la place End tout en restaurant le contenu de la place Start : comme nous avons accumulé tous les jetons dans la liste de la place Accu (aussi bien ceux ayant transité par No que ceux qui sont passés par Yes), il suffit de déployer la liste ; — deux arcs inhibiteurs reliant la transition putBack respectivement aux places Start et toBeTreated assurent que putBack est tirée en dernier. Notons qu’il est important d’accumuler les jetons sous forme d’une unique liste dans la place Accu. En effet, ceci permet de restaurer le contenu de la place Start avec un seul tirage de la transition PutBack. Ceci est nécessaire pour savoir à quel moment le processus est terminé et donc quand il faut transférer le jeton de contrôle vers la place End. 4.2.5 Construction par induction des réseaux contrôlés Avec les briques de base définies dans la Section 4.2.3 et la structure de séparation de jetons introduite dans la Section 4.2.4, nous pouvons maintenant procéder à la construction d’un modèle de reconnaissance de chronique que nous appelons « contrôlé ». Comme pour les modèles précédents, la construction se fait par induction autour d’une structure commune que nous avons détaillée dans la Section 4.2.2. Pour chaque chronique C nous construisons un réseau contrôlé N(C) associé dans lequel circulent des jetons représentant des reconnaissances partielles qui sont progressivement complétées en transitant dans le réseau, selon le flux d’évènements étudiés. Reconnaissance d’un évènement simple : C = A avec A ∈ N Commençons par construire le réseau charnière reconnaissant un évènement simple, comme par exemple A dont le réseau N(A) est présenté dans la Figure 4.19, et dont la structure globale est représentée dans la Figure 4.20. En haut à gauche, on reconnaît le compteur d’évènements défini Section 4.2.3. Comme dans les modèles précédents, on fusionne la brique reconnaissant A, notée N0 (A), au compteur d’évènements. Celui-ci est piloté par les places Go et End qui activent ou désactivent la transition Next. Dans le cas restreint de la reconnaissance d’un évènement simple, le jeton de contrôle de la place Go doit parcourir le réseau N(A) pour activer diverses transitions appropriées puis achever son parcours dans la place End ce qui active de nouveau la transition Next. Le reste du réseau, N0 (A), peut être divisé en deux parties qui sont identifiées dans la Figure 4.20 : 1. On reconnaît la structure de séparation de jetons présentée dans la section précédente dans la partie inférieure du réseau. En effet, N0 (A) est construit autour cette structure qui est appliquée une première fois à la transition relative à l’évènement simple recherché, ici A. Elle permet de contrôler son tirage, comme annoncé dans la Section 4.2.4. La place toBeTreated du séparateur de jeton est appelée dans N0 (A) toComplete car elle contient les reconnaissances à compléter par un évènement a. À cette structure, nous ajoutons la place EventsA qui 146CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE PETRI COLORÉS init unfold lcurr init curr [] ini init init lcurr (curr::lcurr) init [] addChecked lcurr curr cpt init cpt unfold lcurr cpt cpt lcurr lcurr addChecked lcurr curr cpt curr cpt curr curr curr cpt ini complete (E(a)) cpt curr curr bck cpt cpt+1 EndFA NotForA [neg(test_old ini curr)] PutBack NoA [negGuard curr cpt (E a) currevt] YesA [Guard curr cpt (E a) currevt] A ForgetA [test_old ini curr] Next [cpt<6] GoForA INT EndForA INT AccuForA [] IndChronInstList GoA Fusion 141 1 INT EndA Fusion 143 INT AccuA [] IndChronInstList EventsA 1`(E(a),2)++ 1`(E(a),1)++ 1`(E(c),3)++ 1`(E(c),4)++ 1`(E(a),5) IndexedEvent PresentA Fusion 122 1 INT toComplete IndChronInst 1 Go INT WiniA Fusion 142 (~1,~1) MkdINT SuccessA [] IndChronInst StartA ([],0) IndChronInst End Fusion 143 INT Present Fusion 122 1 INT Fusion 122 Fusion 141 Fusion 143 Fusion 142 Fusion 141 Fusion 122 Fusion 143 lcurr cpt currevt lcurr currevt Figure 4.19 – Réseau reconnaissant la chronique A Figure 4.20 – Structure globale du réseau reconnaissant la chronique A 147Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements est reliée aux transitions NoA et YesA et qui contient le flux d’évènements à traiter. Dans le cas restreint de la reconnaissance d’un évènement simple, la place StartA contient la liste vide [ ] qui va être complétée par des évènements a du flux pour former des nouvelles reconnaissances de A qui sont regroupées dans la place SuccessA. Lors de l’occurrence d’évènements de noms différents de a, seule la transition NoA est activée, et le jeton parcourt la structure de séparation pour revenir dans la place StartA sans avoir été complété, donc sans qu’il se soit produit aucune modification du marquage du réseau. 2. La partie supérieure restante du réseau N0 (A) est une structure de séparation simplifiée appliquée à la transition Forget de nos anciens réseaux. Elle est chargée de supprimer certains jetons dans le cas d’une absence, et son fonctionnement sera détaillé par la suite lors de la construction du réseau reconnaissant une absence. Nous définissons inductivement les places principales du réseau définissant sa structure globale : Present(C) = PresentA Start(C) = StartA Success(C) = SuccessA WiniOut(C) = WiniA WiniIn(C) = ∅ Events(C) = EventsA Go(C) = GoA End(C) = EndA GoFor(C) = GoForA EndFor(C) = EndForA Formellement, le réseau est construit par la fusion du compteur d’évènements avec la brique de base reconnaissant l’évènement simple comme suit : N(C) = F usion({N 0 (C), CPT}, {(Present(CPT), {Present(CPT), Present(C)}), (Go(CPT), {Go(CPT), Go(C)}), (4.1) (End(CPT), {End(CPT), End(C)})}) Exemple 15. Lorsque le processus de reconnaissance du réseau N(A) est mis en route sur le flux ϕ = ((a, 1),(a, 2),(c, 3),(c, 4),(a, 5)), c’est-à-dire lorsque le marquage de la place EventsA est : 1‘(E(a), 1) + +1‘(E(a), 2) + +1‘(E(c), 3) + +1‘(E(c), 4) + +1‘(E(a), 5) alors le marquage final de la place Success(A) est le suivant : 1‘([(E(a), 1)], 1) + +1‘([(E(a), 2)], 2) + +1‘([(E(a), 5)], 5) 148CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE PETRI COLORÉS ce qui indique trois reconnaissances de A. Cela correspond bien à la sémantique ensembliste qui donne l’ensemble de reconnaissances suivant : RA(ϕ, 5) = {(a, 1),(a, 2),(a, 5)}. Reconnaissance d’une séquence : C = C1 C2 Figure 4.21 – Structure générale du réseau reconnaissant la chronique A B La Figure 4.21 présente une exemple de réseau reconnaissant une séquence, sur la chronique A B. Comme dans les modèles précédents, pour reconnaître une séquence, les réseaux fonctionnent en série donc nous fusionnons la place Success(C1) avec Start(C2). Comme précédemment, cette fusion modifie le marquage initial de la place Start(C2) qui devient vide. Nous ne commençons donc pas à reconnaître C2 tant que C1 n’est pas reconnue. Dans le cadre de l’implémentation du processus de contrôle du tirage des transitions, il faut aussi assurer la transmission du jeton de contrôle. Rappelons que le jeton de contrôle parcourt 149Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements la partie liée à la reconnaissance en profondeur puis remonte par les structures liées à l’absence. Comme les deux réseaux fonctionnent en série, le jeton de contrôle va parcourir le premier réseau puis le second : nous fusionnons donc simplement les places End(C1) et Go(C2) pour transmettre le jeton d’un réseau à l’autre. Il s’agit là du parcours en profondeur réalisant la reconnaissance. Le retour du jeton se fait en sens inverse par les structures liées à l’absence : il va parcourir d’abord la structure du réseau N(C2) puis celle de N(C1). Nous fusionnons donc les places EndFor(C2) et GoFor(C1). Formellement, nous définissons le réseau comme suit : N0 (C1 C2) = F usion({N0 (C1), N0 (C2)}, {(End(C1), {End(C1), Go(C2)}), (EndFor(C2), {EndFor(C2), GoFor(C1)}), (Present(C1), {Present(C1), Present(C2)}), (Events(C1), {Events(C1), Events(C2)}), (Success(C1), {Success(C1), Start(C2)}), (WiniIn(C1), {WiniIn(C1), WiniIn(C2), WiniOut(C2)})}) Nous définissons également inductivement les places principales du réseau : Present(C) = Present(C1) Start(C) = Start(C1) Success(C) = Success(C2) WiniOut(C) = WiniOut(C2) WiniIn(C) = WiniIn(C2) Events(C) = Events(C1) Go(C) = Go(C1) End(C) = End(C2) GoFor(C) = GoFor(C2) EndFor(C) = EndFor(C1) Puis nous fusionnons le réseau N0 (C1 C2) avec le compteur d’évènements pour définir N(C1 C2) comme dans (4.1). Reconnaissance d’une disjonction : C = C1 || C2 La Figure 4.22 présente une exemple de réseau reconnaissant une disjonction, sur la chronique A || (B A). Comme dans notre modèle précédent, et contrairement à la séquence, les réseaux d’une disjonction fonctionnent en parallèle à l’aide de l’opérateur de disjonction défini dans la Section 4.2.3. Ceci se traduit par la duplication, réalisée par l’opérateur de disjonction, des reconnaissances partielles en attente de complétion et du jeton de contrôle. Nous fusionnons donc StartL et StartR de l’opérateur avec respectivement Start(C1) et Start(C2) pour dupliquer les reconnaissances partielles en attente et les insérer dans chacune des branches de la disjonction. Nous fusionnons 150CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE PETRI COLORÉS Figure 4.22 – Structure générale du réseau reconnaissant A || (B A). 151Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements également GoL et GoR de l’opérateur avec respectivement Go(C1) et Go(C2), ce qui duplique le jeton de contrôle et permet d’activer les deux branches de la disjonction en parallèle. Lorsque chacun des deux jetons de contrôle a parcouru l’ensemble de sa branche, tout le réseau a correctement été parcouru. Nous fusionnons donc EndL et EndR de l’opérateur avec respectivement End(C1) et End(C2) pour réunir les deux jetons en un seul avec TEndOR. Les reconnaissances de la disjonction sont regroupées dans Success(C1) et Success(C2) qui sont fusionnées. Formellement, nous définissons le réseau comme suit : N0 (C1 || C2) = F usion({N0 (C1), N0 (C2), OPOR}, {(GoL, {GoL, Go(C1)}),(GoR, {GoR, Go(C2)}), (EndFor(C2), {EndFor(C2), GoFor(C1)}), (Present(C1), {Present(C1), Present(C2), Present(OR)}), (StartL, {StartL, Start(C1)}),(StartR, {StartR, Start(C2)}), (Events(C1), {Events(C1), Events(C2)}), (Success(C1), {Success(C1), Success(C2)}), (WiniOut(C1), {WiniOut(C1), WiniOut(C2)}), (WiniIn(C1), {WiniIn(C1), WiniIn(C2)}), (EndL, {EndL, End(C1)}),(EndR, {EndR, End(C2)}) }) Nous définissons également inductivement les places principales du réseau : Present(C) = Present(C1) Start(C) = Start(OR) Success(C) = Success(C1) WiniOut(C) = WiniOut(C1) WiniIn(C) =  WiniIn(C1) si WiniIn(C1) 6= ∅ WiniIn(C2) sinon Events(C) = Events(C1) Go(C) = Go(OR) End(C) = End(OR) GoFor(C) = GoFor(C2) EndFor(C) = EndFor(C1) Puis nous fusionnons le réseau N0 (C1 || C2) avec le compteur d’évènements pour définir le réseau N(C1 || C2) comme dans (4.1). Exemple 16. Lorsque le processus de reconnaissance du réseau N(A || (B A)) présenté Figure 4.22 est mis en route sur le flux ϕ = ((b, 1),(b, 2),(a, 3)) alors le marquage final de la place Success(A || (B A)) est le suivant : 1‘([(E(a), 3)], 3) + +1‘([(E(a), 3),(E(b), 1)], 3) + +1‘([(E(a), 3),(E(b), 2)], 3) ce qui indique trois reconnaissances de A || (B A), une provenant de la branche de gauche et les 152CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE PETRI COLORÉS deux autres, de la branche de droite de la disjonction. Cela correspond bien à la sémantique ensembliste qui donne l’ensemble de reconnaissances suivant : RA||(B A)(ϕ, 3) = {h⊥,h(b, 1),(a, 3)ii,h⊥,h(b, 2),(a, 3)ii,h(a, 3), ⊥i}. Reconnaissance d’une conjonction : C = C1&C2 Le réseau reconnaissant une conjonction C1&C2 est construit à partir de la brique OPAND, des deux sous-réseaux relatifs à C1 et C2, et d’un compteur d’évènements. À titre d’exemple, la Figure 4.23 présente le réseau reconnaissant la chronique A&B. La place Start du réseau est la place Start(AND), dont le contenu est combiné par la transition Combine avec les reconnaissances de C1 et de C2. Pour ce faire, les places Success(C1) et Success(C2) sont fusionnées avec Operand1 et Operand2, récupérant ainsi les reconnaissances de C1 et de C2 pour réaliser des reconnaissances de la conjonction. Les réseaux relatifs à C1 et C2 sont activés par la transition Activate : les places Start(C1) et Start(C2) sont fusionnées respectivement avec StartSub1 et StartSub2 pour réaliser cette activation. Ainsi, dans le cas de l’imbrication dans une séquence, le réseau ne commence pas à reconnaître la conjonction tant qu’il n’y a pas de reconnaissance du premier membre de la séquence, dans la place Start, à compléter. Les places Present et Wini sont fusionnées pour propager correctement les entiers stockés. Le jeton de contrôle commence par activer l’initialisation du réseau qui se fait par la transition Accu, donc la place Go du réseau est la place GoInit. Il active ensuite l’activation (par la transition Activate) des places Start des réseaux relatifs à C1 et C2, donc EndInit est fusionnée avec GoAct. Lorsque l’activation est réalisée, le jeton de contrôle est dédoublé par la transition ActOK pour parcourir en parallèle les réseaux relatifs à C1 et C2 : pour ce faire, GoL et GoR sont fusionnées respectivement avec Go(C1) et Go(C2). Une fois que les deux réseaux ont été entièrement parcourus, les deux jetons de contrôle sont regroupés dans GoComb1 et GoComb2 car ces places sont fusionnées avec End(C1) et End(C2). Ceci permet de tirer la transition Combine qui achève le traitement de la conjonction, ce qui se traduit par le fait que le jeton de contrôle arrive dans la place EndAnd qui constitue la place End du réseau. Les reconnaissances de la chronique se trouvent alors dans la place Success(AND) qui représente donc la place Success du réseau. Formellement, nous définissons le réseau comme suit : N0 (C1&C2) = F usion({N0 (C1), N0 (C2), OPAND}, {(GoL, {GoL, Go(C1)}),(GoR, {GoR, Go(C2)}), (EndFor(C2), {EndFor(C2), GoFor(C1)}), (Present(C1), {Present(C1), Present(C2), Present(AND)}), (StartSub1, {StartSub1, Start(C1)}), (StartSub2, {StartSub2, Start(C2)}), (Events(C1), {Events(C1), Events(C2)}), (WiniIn(C1), {WiniIn(C1), WiniIn(C2)}), (WiniOut(C1), {WiniOut(C1), WiniOut(C2), Wini(AND)}), (Success(C1), {Success(C1), Operand1}), (Success(C2), {Success(C2), Operand2}), 153Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements Figure 4.23 – Structure générale du réseau reconnaissant A&B 154CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE PETRI COLORÉS (GoComb1, {GoComb1, End(C1)}),(GoComb2, {GoComb2, End(C2)}) }) Nous définissons également inductivement les places principales du réseau : Present(C) = Present(C1) Start(C) = Start(AND) Success(C) = Success(AND) WiniOut(C) = WiniOut(C1) WiniIn(C) =  WiniIn(C1) si WiniIn(C1) 6= ∅ WiniIn(C2) sinon Events(C) = Events(C1) Go(C) = GoInit End(C) = EndAnd GoFor(C) = GoFor(C2) EndFor(C) = EndFor(C1) Puis nous fusionnons le réseau N0 (C1&C2) avec le compteur d’évènements pour définir le réseau N(C1&C2) comme dans (4.1). Reconnaissance d’une absence : C = (C1) − [C2[ La structure générale du réseau reconnaissant (A B)−[D[ est présentée dans la Figure 4.24. La problématique de la combinaison des reconnaissances (d’une part les reconnaissances de l’absence et d’autre part les reconnaissances de la première partie de la séquence dans le cas d’une combinaison avec une séquence) dans le cas d’une absence est similaire à celle rencontrée dans une conjonction. La place Start et la place Success du réseau sont donc les places Start(ABS) et Success(ABS). La place Go du réseau est la place toAbs1 qui débute donc le traitement de l’absence. Le jeton de contrôle est alors transféré à la place InAbs11 qui est fusionnée avec Start(C1), le jeton va donc parcourir le réseau relatif à C1. Les places End(C1) et Start(C2) sont fusionnées, donc le jeton parcourt ensuite le réseau relatif à C2. Ceci établit les reconnaissances de C1 et de C2, il s’agit maintenant de mettre à jour la valeur de l’entier de repère Wini et pour cela le jeton rentre dans le mécanisme de l’opérateur OPABS : les places End(C2) et GoUp sont fusionnées. Il y a alors deux cas de figure : — soit la valeur de WiniBe doit être mise à jour car il y a eu une nouvelle reconnaissance de C2, et alors le jeton est transféré dans la place EndUp qui est fusionnée avec GoFor(C1) : le jeton de contrôle va parcourir le mécanisme de Forget du réseau relatif à C1 pour supprimer les reconnaissances rendues inadéquates par la nouvelle reconnaissance de C2, puis, comme EndFor(C1) est fusionnée avec InAbs12, le jeton de contrôle se retrouve dans InAbs12 ; — soit il n’y a aucune mise à jour à effectuer, et alors le jeton de contrôle est directement transféré dans la place InAbs12 car celle-ci est fusionnée à Leave. Alors, il ne reste plus qu’à combiner les reconnaissances de l’absence avec d’éventuelles reconnaissances d’une première partie d’une séquence imbriquant l’absence, et le jeton parcourt donc la 155Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements Figure 4.24 – Structure générale du réseau reconnaissant (A B) − [D[ 156CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE PETRI COLORÉS structure rouge ABS, comme OutAbs1 est fusionnée avec GoAbs. Á la fin de ce parcours, le jeton de contrôle se trouve dans la place EndAbs qui est la place End du réseau. Figure 4.25 – Structure générale du réseau reconnaissant ((A B) − [D[ E) − [F[ Dans le cas d’une double absence, dont un exemple de réseau est présenté dans la Figure 4.25 avec la chronique ((A B) − [D[ E) − [F[, EndFor(E) est fusionnée avec GoDown1. Ceci permet de transférer le jeton de contrôle, avec la transition Down, dans la place EndUp tout en mettant à jour la valeur de WiniBe avec celle de WiniAf. Le jeton parcourt alors de nouveau le mécanisme Forget de l’absence interne (ici (A B) − [D[) puis est transféré dans la structure rouge ABS de l’absence externe (ici −[F[) pour achever le traitement de la chronique. Formellement, nous définissons le réseau comme suit : 157Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements N0 ((C1) − [C2[) = F usion({N0 (C1), N0 (C2), OPABS}, {(Events(C1), {Events(C1), Events(C2)}), (Present(C1), {Present(C1), Present(C2), Present(ABS)}), (Go(C1), {Go(C1), InAbs1}),(EndUp, {EndUp, GoFor(C1)}), (End(C1), {End(C1), Go(C2)}),(End(C2), {End(C2), GoUp}), (InAbs2, {InAbs2, Leave, EndFor(C1)}), (WiniIn(C1), {WiniIn(C1), WiniBe}), (Success(C1), {Success(C1), Oper}), (Success(C2), {Success(C2), Abs}), (Start(C1), {Start(C1), Start(C2), StartSub})}) Nous définissons également inductivement les places principales du réseau : Present(C) = Present(C1) Start(C) = Start(ABS) Success(C) = Success(ABS) WiniOut(C) = WiniAf WiniIn(C) = ∅ Events(C) = Events(C1) Go(C) = toAbs End(C) = OutAbs GoFor(C) = EndUp EndFor(C) = Leave Puis nous fusionnons le réseau N0 ((C1) − [C2[) avec le compteur d’évènements pour définir le réseau N((C1) − [C2[) comme dans (4.1). Exemple 17. Lorsque le processus de reconnaissance du réseau N((A B) − [D[) présenté Figure 4.24 est mis en route sur le flux ϕ = ((c, 1),(b, 2),(a, 3),(b, 4),(d, 5),(a, 6),(b, 7)) alors le marquage final de la place Success((A B) − [D[) indique deux reconnaissances de (A B) − [D[ avec les deux jetons suivants : 1‘([(E(b), 4),(E(a), 3)], 4) + +1‘([(E(b), 7),(E(a), 6)], 7) Cela correspond bien à la sémantique ensembliste qui donne l’ensemble de reconnaissances suivant : R(A B)−[D[(ϕ, 7) = {hh(a, 3),(b, 4)ii,hh(a, 6),(b, 7)ii}. Ceci achève la construction de notre modèle dit « contrôlé ». 158CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE PETRI COLORÉS 4.2.6 Graphes d’espace d’états des réseaux contrôlés Nous disposons maintenant d’un modèle de reconnaissance de chroniques « contrôlé » dans le sens où, pour un marquage initial lié à un flux d’évènements donné, toute séquence suffisamment longue de transitions tirées mène au marquage dans lequel peut être correctement lu l’ensemble des reconnaissances recherchées. Nous nous étions fixés trois contraintes en début de section, à savoir : 1. avoir un modèle modulaire ; 2. maintenir de la concurrence dans les réseaux ; 3. tout en ayant un modèle « convergent » vers un même marquage à la suite du traitement d’un évènement du flux. La construction de nos réseaux a bien respecté la première contrainte et, pour illustrer les deux autres contraintes, nous allons maintenant tirer parti des fonctionnalités du logiciel CPN Tools que nous utilisons pour modéliser nos réseaux. CPN Tools offre des outils d’analyse et notamment la génération du graphe d’espace d’états pour un réseau donné avec un marquage initial donné. Un graphe d’espace d’états présente l’ensemble des marquages atteignables du réseau, ainsi que les suites de transitions à tirer pour les atteindre. Ceci permet d’illustrer les contraintes que nous nous étions fixées car : 3. la confluence de nos réseaux se traduit par le fait que, périodiquement (à la suite du traitement complet de chaque évènement du flux), le graphe d’espace d’états converge vers un unique marquage qui correspond au marquage dans lequel peut être lu l’ensemble des reconnaissances courant associé à la chronique ; 2. la concurrence de nos réseaux se traduit par le fait qu’il y a plusieurs chemins possibles pour relier chaque paire successive de ces points de confluence. La Figure 4.26 présente le graphe d’espace d’état du réseau reconnaissant la chronique A || (B A) sur le flux ((b, 1),(a, 2),(a, 3)). Dans CPN Tools, les différents états du marquage possibles du réseau sont représentés par des boîtes dans lesquelles apparaissent : — un numéro identifiant l’état ; — un couple n : m indiquant le nombre n d’arcs en entrée et la quantité m d’arcs en sortie de l’état. Le détail du marquage correspondant à chaque état peut être obtenu en cliquant sur la boîte. Dans la Figure 4.26, il est clair que, après le traitement complet de chaque évènement, il y a un unique marquage atteint. En effet, on considère un flux de trois évènements, et les trois marquages correspondants sont les états 17, 37 et 63, ce qui montre l’aspect « convergent » de nos réseaux. Par ailleurs, il existe de nombreux chemins différents pour passer de l’un de ces états convergents au suivant, c’est-à-dire plusieurs suites des transitions, et ce, malgré la simplicité du flux d’évènements étudié à titre d’exemple. Notons que lorsque des chroniques plus complexes sont étudiées et lorsque des flux d’évènements plus longs sont considérés, la concurrence des réseaux est d’autant plus accrue. À travers le graphe d’espace d’états, nous avons donc pu mettre en avant que les réseaux, quel que soit l’ordre des transitions tirées, produisent toujours les mêmes reconnaissances à la suite du 159Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements traitement d’un évènement, et que nous avons par ailleurs su conserver de la concurrence dans les réseaux malgré la structure de contrôle que nous avons implémentée. 160CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE PETRI COLORÉS 46 1:1 42 1:2 54 1:1 50 1:2 45 1:2 57 2:1 53 2:2 49 2:2 59 2:1 56 2:2 52 2:2 63 1:0 62 1:1 61 1:1 60 2:1 58 2:1 55 2:1 51 2:1 47 2:1 48 2:2 43 2:2 44 2:2 40 2:2 41 1:2 38 1:2 39 1:2 37 1:2 36 1:1 22 1:1 31 1:1 28 1:2 25 1:2 33 2:1 30 2:2 27 2:2 35 1:1 34 2:1 32 2:1 29 2:1 26 2:1 23 2:1 24 2:2 20 2:2 21 1:2 18 1:2 19 1:2 17 1:2 16 1:1 15 1:1 8 1:1 11 1:1 13 2:1 14 2:1 12 2:1 9 2:1 10 2:2 6 2:2 7 1:2 4 1:2 5 1:2 3 1:2 2 1:1 1 0:1 Figure 4.26 – Graphe d’espace d’états du réseau N(A || (B A)) sur le flux ((b, 1),(a, 2),(a, 3)) 161Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements 4.3 Conclusion Dans ce chapitre, nous avons fait évoluer en deux étapes principales le modèle de reconnaissance de chroniques dit « à un seul jeton » que nous avons construit dans le Chapitre 3. L’objectif était d’obtenir un modèle qui soit à la fois modulaire et convergent – dans le sens où quel que soit l’ordre des transitions tirées, il fournisse toujours le même ensemble de reconnaissances – tout en conservant un fort degré de concurrence dans le choix du tirage des transitions. Tableau 4.27 – Récapitulatif des caractéristiques des trois modèles de reconnaissance construits Modèle à un seul jeton multi-jeton contrôlé (Chapitre 3) (Section 4.1) (Section 4.2) Modularité oui oui oui Modélisation des reconnaissances un jeton contenant la liste des reconnaissances un jeton pour chaque reconnaissance un jeton pour chaque reconnaissance « confluence » non, nécessité de suivre une stratégie de tirage précise non, nécessité de suivre une stratégie de tirage précise oui Concurrence non début de concurrence oui Gestion du flux d’évènements non non oui La première étape a consisté à construire un modèle « multi-jetons » en éclatant les jetons de listes de reconnaissances des réseaux à un seul jeton en plusieurs jetons, un par reconnaissance. Cette démarche nous a permis d’approcher le contrôle intégré du tirage des transitions. Ceci constitue donc une première étape vers ce que nous appelons la confluence autonome des réseaux. Cependant, ces évolutions ne sont pas suffisantes pour que la définition d’une stratégie de tirage des transitions ne soit plus nécessaire. Notre seconde étape a donc été de faire évoluer le modèle multi-jetons vers un modèle dit « contrôlé » en implémentant une structure de gestion des évènements et en introduisant la notion 162CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE PETRI COLORÉS de jeton de contrôle. Ces jetons permettent successivement l’activation de différentes parties du réseau, le tirage des transitions est alors obligatoirement correct. Nous avons porté attention à préserver le plus de concurrence possible dans les réseaux, en évitant toute sérialisation inutile de transitions. Nous avons bien entendu préservé la modularité des réseaux. Avec le visualisateur d’espace d’états de CPN Tools, nous avons vérifié que des réseaux représentatifs exhibaient bien de la concurrence, et que la « confluence » était assurée. Le Tableau 4.27 récapitule les différentes caractéristiques de nos trois modèles. Nous avons confronté le modèle obtenu en réseaux de Petri colorés avec les besoins d’expression en termes de chroniques dans le cadre des deux applications aux drones que nous présentons dans le chapitre suivant. Il est rapidement apparu que, comme évoqué dans le Chapitre 2, la possibilité d’exprimer des contraintes sur des attributs d’évènements est primordiale. Or notre modèle en réseaux de Petri colorés a été développé en même temps que diverses extensions syntaxiques et sémantiques du langage des chroniques étaient en cours, et, de ce fait, possède deux limitations majeures : — D’une part, il n’implémente qu’une partie du langage des chroniques (à savoir le langage restreint aux opérateurs de séquence, de conjonction, de disjonction et d’absence) et il ne permet donc pas de reconnaître des comportements dont la description nécessite l’expression de contraintes temporelles ou de contraintes sur des attributs d’évènements. L’élaboration de ce modèle est très complexe principalement du fait de la contrainte de modularité. — D’autre part, le modèle construit est très éloigné de la sémantique ensembliste arborescente du langage définie dans le Chapitre 2. Il faut donc démontrer l’adéquation de cette sémantique avec la sémantique opérationnelle fournie par les réseaux si l’on souhaite s’appuyer sur celle-ci, comme nous l’avons fait dans la Section 3.4. Ces deux extensions du modèle en réseaux de Petri colorés n’ont pu être réalisées dans le temps imparti. Pour répondre aux besoins des applications, nous devons de plus disposer d’un modèle intégrable facilement dans des programmes de simulation et homogène aux outils de développement de ces simulations. Il faut que le modèle soit utilisable aisément par des ingénieurs pouvant être peu formés aux réseaux de Petri. Dans le Chapitre 5, nous allons donc développer un nouveau modèle du processus de reconnaissance répondant à ces problématiques. 163Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements 164Chapitre 5 Bibliothèque C++ de reconnaissance de comportements et applications à la surveillance de la sécurité d’avions sans pilote Dans les Chapitres 3 et 4, nous avons construit un modèle en réseaux de Petri colorés implé- mentant le processus de reconnaissance de chroniques. Ce modèle permet de mettre en avant des caractéristiques du langage, mais il possède des limitations majeures. Nous souhaitons disposer d’un programme implémentant le processus complet de reconnaissance de chroniques et qui soit justifié par la sémantique ensembliste arborescente du Chapitre 2 tout en étant utilisable par des ingénieurs. Du fait des difficultés apparaissant avec les réseaux de Petri colorés, nous développons dans ce chapitre une bibliothèque en C++ dont l’algorithmique est directement calquée sur la sémantique du Chapitre 2. La structure ensembliste inductive de cette sémantique se prête parfaitement à une telle implémentation, et ceci nous permet de bénéficier de l’expressivité et de l’efficacité de C++. Notons que, comme évoqué dans la Section 1.5.1, une implémentation du processus de reconnaissance de chronique, Chronicle Recognition System/Onera (CRS/Onera), existe déjà, mais celle-ci n’a pas été élaborée à partir de la sémantique du Chapitre 2 : le langage étudié est différent et l’algorithmique repose sur une structure d’automates dupliqués radicalement différente de la structure ensembliste de notre sémantique. Le langage Chronicle Recognition System (CRS) est traduit en classes d’automates dont l’instantiation permet la reconnaissance. Dans ce chapitre, nous allons donc implémenter dans la Section 5.1 une bibliothèque C++ fondée sur le modèle théorique de la reconnaissance de comportements présenté dans le Chapitre 2. Nous avons mis à disposition cette bibliothèque sous la licence GNU LGPL 1 . Nous utilisons ensuite cette bibliothèque pour traiter deux cas d’étude illustrant la portée de notre travail : 1. https://code.google.com/p/crl/ 165Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements — dans la Section 5.2, nous utilisons Chronicle Recognition Library (CRL) pour surveiller, en cas de pannes, la cohérence interne entre les différents agents mis en jeu au sein d’un système d’avion sans pilote où chaque agent a sa propre vision de l’état du système [CCKP12b, CCKP13b] ; — dans la Section 5.3, CRL nous permet d’assurer qu’un avion sans pilote respecte les procé- dures de sécurité associées à son évolution dans l’espace aérien, qu’il soit contrôlé ou non contrôlé [PBC+]. 5.1 Développement d’une bibliothèque C++ implémentant la reconnaissance de chroniques : Chronicle Recognition Library (CRL) Nous allons donc développer dans ce chapitre une bibliothèque C++, CRL, implémentant le processus de reconnaissance de comportements et directement calquée sur le modèle théorique du Chapitre 2. Cette bibliothèque a été déposée auprès de l’Agence de Protection des Programmes 2 et est disponible sous la licence GNU LGPL. Nous allons maintenant décrire les différentes facettes du fonctionnement et de l’implémentation de CRL. Pour ce faire, nous allons commencer par présenter de quelle manière sont représentées les chroniques à reconnaître par le système et comment sont gérés les évènements du flux à analyser. Nous rentrons ensuite plus profondément dans le processus de reconnaissance puis détaillons quelques algorithmes pour mettre en avant la similarité avec les définitions ensemblistes du Chapitre 2 (Définition 16). Nous indiquons ensuite comment le problème de la gestion du temps continu a été traité, puis nous introduisons la notion de fenêtre de validité qui permet d’optimiser les performances du système mais qui ne fait pas partie du cadre théorique défini dans le Chapitre 2. Définition des chroniques à reconnaître La bibliothèque CRL manipule des moteurs de reconnaissance auxquels doivent être fournies la ou les chroniques à reconnaître. Comme dans le cadre théorique présenté dans le Chapitre 2, une chronique est représentée par un arbre binaire dont les nœuds et les feuilles sont respectivement des opérateurs et des évènements simples. Lorsque l’utilisateur définit les chroniques à reconnaître par le système, il peut doter chaque niveau d’une chronique (nous entendons par là, chaque nœud de l’arbre représentant la chronique) des éléments suivants, comme dans la définition théorique du langage : — un prédicat à vérifier exprimant des contraintes sur des attributs associés aux évènements du flux ; — une fonction de transformation d’attributs, qui permet de calculer de nouveaux attributs à partir des propriétés des évènements du flux. Ces prédicats et ces fonctions n’ont aucune restriction si ce n’est leur signature. Ce sont des fonctions C++ fournies par l’utilisateur, permettant ainsi d’exploiter pleinement le langage de 2. Inter Deposit Digital Number : IDDN.FR.001.440022.000.R.P.2013.000.20900 166CHAPITRE 5. BIBLIOTHÈQUE C++ DE RECONNAISSANCE DE COMPORTEMENTS ET APPLICATIONS À LA SURVEILLANCE DE LA SÉCURITÉ D’AVIONS SANS PILOTE programmation. Ceci offre une forte expressivité et une grande flexibilité tout en restant strictement dans le cadre théorique posé dans le Chapitre 2. À chaque opérateur du langage des chroniques est associée une classe C++ dans la bibliothèque. Ceci permet à l’utilisateur de ne définir qu’une seule fois des sous-classes de chroniques spécifiques et ainsi de construire facilement plusieurs chroniques similaires. Ces sous-classes peuvent posséder des prédicats et des fonctions de transformation d’attributs dépendant de variables de la sous-classe. Cette facilité d’écriture sera largement employée et donc illustrée dans le cadre de l’application présentée dans la Section 5.3. Gestion du flux d’évènements Un moteur de reconnaissance donné est doté d’un flux tampon. Il traite les évènements au fur et à mesure, et calcule l’ensemble de toutes les reconnaissances de chaque chronique, en indiquant, pour chaque reconnaissance, quels sont les évènements qui en sont à l’origine. Dans cette implémentation les évènements sont représentés par des triplets (nom, date, ordre) et non plus seulement par un couple formé d’un nom et d’une date : — le nom est associé à un identifiant numérique unique qui a une correspondance dans un dictionnaire de noms d’évènements – en effet, le processus de reconnaissance est fondé sur la comparaison de noms d’évènements, donc pour limiter le temps de calcul nous comparons des identifiants numériques ; — la date correspond à la date d’occurrence de l’évènement, plusieurs évènements peuvent être datés au même instant ; — l’ordre est distinct pour chaque évènement, ce qui fournit un ordre total sur les évènements et permet de trier le flux tampon à traiter. Deux évènements peuvent avoir lieu à la même date mais leurs ordres doivent être différents ce qui assure le déterminisme du système 3 . Un évènement peut également être intégré au flux tampon sans être muni de date ou d’ordre. Dans ce cas, l’évènement est daté au temps courant et/ou un ordre lui est donné selon les dates et ordres du reste des évènements du flux tampon. Processus général de reconnaissance d’une chronique Le processus de reconnaissance est défini par induction pour chaque classe d’opérateur. Il calcule deux ensembles pour chaque nœud de l’arbre – et donc pour chaque sous-chronique des chroniques étudiées – après chaque évènement : — l’ensemble des reconnaissances général de la sous-chronique ; — l’ensemble des nouvelles reconnaissances apparues suite à l’évènement traité. Cet ensemble de nouvelles reconnaissances est donc vidé après le traitement de chaque évènement. Il permet d’assurer que seules des nouvelles reconnaissances sont ajoutées à l’ensemble de reconnaissance général – évitant ainsi des doublons éventuels – et, pour des raisons d’optimisation, il offre un critère pour déterminer s’il y a des nouvelles reconnaissances au niveau des ancêtres du nœud. 3. Notons que dans le formalisme théorique, l’ordre total est assuré par le fait que deux évènements ne peuvent se produire à la même date (cf. p. 8). 167Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements Ce processus de reconnaissance est illustré sur la chronique peu complexe (E || F)&G avec le flux d’évènements {(e, de, 1),(h, dh, 2), (g, dg, 3),(f, df , 4)}. Il s’agit ici d’expliciter l’évolution des ensembles de reconnaissances donc, pour plus de clarté, on ne considère ni prédicat ni fonction de transformation d’attributs. Le Tableau 5.1 présente les ensembles de reconnaissances généraux ainsi que les ensembles de nouvelles reconnaissances en vert pour chaque sous-chronique et après chaque évènement du flux tampon. Ces ensembles sont organisés selon la structure arborescente de la chronique et l’ensemble des reconnaissances de la chronique recherchée est l’ensemble des reconnaissances de la racine de l’arbre. Dans notre exemple, après avoir traité les quatre évènements, il y a deux reconnaissances et l’ensemble final des reconnaissances est {h(e, de, 1),(g, dg, 3)i, h(g, dg, 3),(f, df , 4)i}. Notons que l’évènement (g, dg, 3) participe aux deux reconnaissances. Tableau 5.1 – Évolution des ensembles de reconnaissance pour la chronique (E || F)&G sur le flux d’évènements ϕ = (e, h, g, f). (e, de, 1) (h, dh, 2) (g, dg, 3) (f, df , 4) E {(e, de, 1)} {(e, de, 1)} {(e, de, 1)} {} {(e, de, 1)} {} {(e, de, 1)} {} F {} {} {} {} {} {} {(f, df , 4)} {(f, df , 4)} E || F {(e, de, 1)} {(e, de, 1)} {(e, de, 1)} {} {(e, de, 1)} {} {(e, de, 1),(f, df , 4)} {(f, df , 4)} G {} {} {} {} {(g, dg, 3)} {(g, dg, 3)} {(g, dg, 3)} {} (E || F)&G {} {} {} {} {h(e, de, 1),(g, dg, 3)i} {h(e, de, 1),(g, dg, 3)i} {h(e, de, 1),(g, dg, 3)i, h(g, dg, 3),(f, df , 4)i} {h(g, dg, 3),(f, df , 4)i} Écriture des chroniques avec CRL L’écriture de chroniques est facilitée par l’utilisation du C++. Ce langage permet en effet de redéfinir des opérateurs ou de définir ce que l’on appelle des macros (via le préprocesseur). Il est alors aisé de créer des chroniques et la lisibilité est correcte : par exemple l’opérateur « && » du C++ a été utilisé pour représenter la chronique conjonction, le « + » pour la séquence, etc. Sur l’exemple précédent avec la chronique (E || F)&G, on peut définir en quelques lignes un moteur de reconnaissance, y insérer la chronique recherchée et la tester en envoyant un flux d’évènements : R e cog ni tio nE ngi n e e ngi n e ; e ngi n e . addCh ronicle ( ( $ (E ) | | $ (F ) ) && $ (G) ) ; e ngi n e << "E" << "H" << "G" << "F" << f l u s h ; 168CHAPITRE 5. BIBLIOTHÈQUE C++ DE RECONNAISSANCE DE COMPORTEMENTS ET APPLICATIONS À LA SURVEILLANCE DE LA SÉCURITÉ D’AVIONS SANS PILOTE Dans cet exemple, les symboles « && » et « || » sont des opérateurs C++ correspondant aux chroniques de conjonction et de disjonction, et « $ » est un symbole de macro du préprocesseur C/C++ qui crée une chronique pour la reconnaissance d’un évènement simple dont le nom est passé en argument de la macro. On le voit, l’écriture dans la bibliothèque CRL a été facilitée au maximum, dans l’optique de permettre à des non-spécialistes du langage C++ de parvenir à l’utiliser. Bien sûr, l’utilisation des prédicats et des fonctions de création d’attributs nécessite plus d’investissement de la part de l’utilisateur, mais de nombreux exemples sont à sa disposition en guise d’inspiration. Algorithmes spécifiques à chaque opérateur et calqués sur la sémantique Une fonction process, définie pour chaque classe d’opérateur, est chargée du traitement des évènements : elle met à jour inductivement les ensembles de reconnaissances et renvoie un booléen (hasNewRecognitions) qui indique si la chronique possède de nouvelles reconnaissances. Elle correspond directement à l’implémentation des ensembles de reconnaissances de la Définition 16 (p.55). Pour illustrer le lien direct avec la sémantique ensembliste dont découlent les algorithmes de traitement des évènements, nous donnons dans l’Algorithme 1 celui relatif à la séquence. Notons que nous disposons dans CRL d’une date et d’un ordre pour chaque évènement, alors que, dans la définition théorique du langage, un évènement était seulement daté. Dans l’implémentation des différents opérateurs, nous utilisons, selon les opérateurs, parfois l’ordre et parfois la date pour spécifier les contraintes temporelles. Ainsi, les opérateurs de disjonction, de séquence (comme on le voit dans l’Algorithme 1), de conjonction, d’absence, de cut, et de changement d’état reposent sur l’ordre, alors que les opérateurs meets, overlaps, starts, during, finishes, equals, lasts, at most, at least, et then sont fondés sur les dates des évènements. Ceci permet une distinction plus fine des différents opérateurs. Gestion du temps continu La gestion d’un modèle de temps continu et la prise en compte de contraintes sur des délais soulèvent des problèmes d’implémentation : il faut pouvoir déterminer à quels instants le système de reconnaissance doit être interrogé pour toujours obtenir les reconnaissances dès que possible et ne pas instaurer de délai de traitement supplémentaire au calcul des reconnaissances. Il est clair que le système doit être observé à chaque occurrence d’évènement, tout évènement pouvant faire évoluer un ensemble de reconnaissances. Cependant, ceci n’est pas suffisant pour les chroniques incluant un délai comme C then δ où il y a une évolution des reconnaissances indépendamment de l’occurrence d’un évènement. Le système ne pouvant être surveillé constamment, on implémente une fonction « Look-ahead » telle que définie dans la Section 2.5 (p.64). Cette fonction renvoie le prochain instant où re-examiner le système. La Propriété 6 assure qu’il n’y a pas d’évolution du système entre deux instants fournis par la fonction, ce qui valide l’implémentation. 169Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements Algorithme 1 Fonction process pour la séquence C1 C2 Entrée : date courante Entrée : évènement evnmt à traiter Sortie : booléen indiquant si la chronique possède des nouvelles reconnaissances si la chronique a déjà été traitée alors renvoie objet.hasNewRecognitions fin si objet.hasNewRecognitions ← faux objet.C1.process(date,evnmt) si objet.C2.process(date,evnmt) alors pour tout r2 ∈ objet.C2.newRecognitionSet faire pour tout r1 ∈ objet.C1.recognitionSet faire si Omax(r1) < Omin(r2) 4 alors si le prédicat est vérifié sur r1 et r2 alors r ← hr1, r2i X∗ r ← X∗ r1 ∪ X∗ r2 si il y a une fonction de transformation d’attributs alors Xr ← Xr ∪ D◦f[X∗ r1 ∪ X∗ r2 ] fin si objet.newRecognitionSet ← objet.newRecognitionSet ∪ r objet.recognitionSet ← objet.recognitionSet ∪ r hasNewRecognitions ← vrai fin si fin si fin pour fin pour fin si alreadyProcessed ← vrai renvoie objet.hasNewRecognitions Fenêtre de validité Du fait de notre volonté d’établir la liste exhaustive et détaillée des reconnaissances de chaque chronique (notions de multiplicité et d’historisation évoquées dans la Section 1.1), les ensembles de reconnaissances manipulés peuvent vite devenir d’une taille conséquente et le temps de calcul ne peut aller qu’en s’allongeant. En effet, si l’on prend l’exemple trivial de la conjonction A&B, lorsqu’un évènement A a eu lieu, il sera apparié avec tout évènement B futur ou passé. Même sur cet exemple simpliste, la taille des ensembles de reconnaissance peut exploser si les évènements A et B sont fréquents. Comme nous souhaitons, en plus de l’historisation et de l’exhaustivité, avoir un processus de reconnaissance utilisable en temps réel, il est important de pouvoir limiter au maximum le temps de calcul. Nous avons donc mis en place la notion de fenêtre de validité d’une reconnaissance qui ne fait pas 4. Les fonctions Omax(·) et Omin(·) sont les fonctions analogues à Tmax(·) et Tmin(·) mais relatives à l’ordre et non à la date. 170CHAPITRE 5. BIBLIOTHÈQUE C++ DE RECONNAISSANCE DE COMPORTEMENTS ET APPLICATIONS À LA SURVEILLANCE DE LA SÉCURITÉ D’AVIONS SANS PILOTE partie du cadre théorique du Chapitre 2. L’utilisateur peut définir une fenêtre de validité représentée par une durée de péremption qui s’applique sur les reconnaissances. Celles-ci sont supprimées du moteur lorsque la différence entre leur date de reconnaissance et le temps courant est supérieure ou égale à la durée de péremption. Ceci permet d’élaguer les ensembles de reconnaissances en supprimant les reconnaissances les plus anciennes, et donc de limiter les agencements possibles de nouvelles reconnaissances. L’utilisateur peut appliquer le principe de fenêtre de validité aux chroniques de son choix et à la profondeur qu’il souhaite. Il peut définir une durée de péremption juste à un niveau de profondeur d’une chronique donnée (c’est-à-dire à une sous-chronique particulière), ou bien sur l’ensemble des sous-chroniques d’une chronique (ce qui signifie que l’on élague tous les ensembles de reconnaissances partielles liées à la chronique), ou sur l’intégralité d’un moteur de reconnaissance. Plusieurs valeurs différentes peuvent être attribuées à la durée de péremption selon la chronique et le contexte étudié, ce qui permet à l’utilisateur d’adapter le processus notamment selon les fréquences d’occurrence des évènements observés. En effet, comme évoqué précédemment, un tel procédé n’a d’intérêt que si les évènements constituant la chronique sont très fréquents. Dans d’autres cas où les évènements concernés sont rares, il peut être au contraire plus intéressant de conserver l’intégralité de l’historisation. Nous avons donc décrit dans cette section (5.1) l’implémentation de la bibliothèque CRL permettant d’effectuer de la reconnaissance de chroniques. Nous allons maintenant traiter deux cas d’étude illustrant les capacités de la bibliothèque et du langage des chroniques. 5.2 Surveillance de cohérence au sein d’un UAS en cas de pannes Comme évoqué dans la Section 1.6 (p.39), dans le cadre de l’industrie aérospatiale par exemple, les méthodes formelles, et, plus spécifiquement, les systèmes d’analyse d’évènements complexes sont des outils significatifs pour l’étude de systèmes critiques. L’insertion d’avions sans pilotes, Unmanned Aircrafts (UAs), dans l’espace aérien (contrôlé ou non) rendrait possible de nombreuses applications civiles. Il y a donc une forte volonté générale pour avancer dans cette voie. L’un des problèmes de sécurité principaux à résoudre est d’arriver à assurer la cohérence globale du système, ce qui est nécessaire pour piloter en sécurité un UA. Nous nous attaquons à ce problème dans le cadre de l’analyse de sécurité de missions, en offrant la possibilité de détecter des états d’incohérence entre les différentes entités composant le système. Nous formalisons ces situations incohérentes à l’aide de chroniques pour ensuite pouvoir les détecter automatiquement à l’aide de CRL. Ceci permet d’offrir à la fois les deux opportunités suivantes : — en situation réelle, surveiller de manière autonome le système en déclenchant automatiquement une alarme en cas de situation incohérente ; — dans le cadre d’une simulation, avoir un outil d’assistance pour l’amélioration de la conception du système. Notre travail repose sur une partie du projet d’Insertion des Drones dans l’Espace Aérien et Sécurité (IDEAS) et touche aux problèmes de cohérence dans un système d’avion sans pilote, Unmanned 171Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements Aircraft System (UAS), en cas de pannes éventuellement multiples. 5.2.1 Description de l’architecture du système d’avion sans pilote étudié Cette application s’inscrit donc dans la lignée de certains travaux réalisés pour le projet IDEAS centré sur la certification des drones pour leur insertion dans l’espace aérien. Commençons par décrire le système que nous étudions. Officiellement, un drone, ou Unmanned Aircraft (UA), est défini par la Federal Aviation Administration (FAA) et l’Organisation de l’Aviation Civile Internationale (OACI) [Hou11] comme « an aircraft that is operated without the possibility of direct human intervention from within or on the aircraft ». Le système étudié est l’Unmanned Aircraft System (UAS) défini comme « an unmanned aircraft and associated elements [...] required for the pilot in command to operate safely and efficiently in the national airspace system ». Air Traffic Control (ATC) Pilot UA Voice Voice Telecommand & Voice Telemetry & Voice Figure 5.2 – Exemple des modes de communication entre l’ATC, l’UA et la RPS (Pilot) Il existe plusieurs types d’architecture d’UAS qui correspondent à différents éléments associés à l’UA et à diverses liaisons de communication entre ces éléments et l’UA. Nous utilisons l’architecture correspondant à la Figure 5.2. Le système est alors composé de l’UA, d’une station de contrôle Remote Pilot Station (RPS), où exerce le pilote, et de l’Air Traffic Control (ATC), selon les liaisons de communication représentées. L’UA est sous la responsabilité et le contrôle du pilote. L’ATC assure la sécurité de la zone de l’espace aérien dont il est chargé. Il y a quatre types de liaisons entre ces éléments. Le pilote et l’ATC échangent par communications orales via ondes radio (Voice) relayées par le drone. Le pilote manœuvre l’UA à distance via la télécommande (Telecommand (TC)). Par ailleurs, le drone envoie à la station de contrôle un certain nombre de paramètres de vol via la télémesure (Telemetry (TM)). La fonction d’anti-collision « sense and avoid » (S&A) informe le pilote de routes de collision. Nous la regroupons avec la télémesure. La caractéristique principale de cette architecture est que l’UA en vol sert de nœud de communication entre les deux éléments au sol qui sont le pilote et l’ATC. 172CHAPITRE 5. BIBLIOTHÈQUE C++ DE RECONNAISSANCE DE COMPORTEMENTS ET APPLICATIONS À LA SURVEILLANCE DE LA SÉCURITÉ D’AVIONS SANS PILOTE Le flux dynamique des données entre les différents agents du système est donc très élaboré, et il l’est d’autant plus entre les différents systèmes mis en jeu lorsque l’on considère plusieurs UASs. De plus, chaque agent déduit de ses propres observations l’état des autres agents. Dans le cas d’une panne, la situation peut donc être très complexe, ce qui est encore intensifié dans le cas de pannes multiples. Par conséquent, ces systèmes hautement automatisés sont très critiques, ce qui nécessite de fortes garanties certifiant l’absence de risque. Les méthodes formelles comme notre système de reconnaissance de comportements s’offrent donc comme une solution de choix pour ce problème. Nous utilisons notre système de reconnaissance de chroniques pour surveiller la cohérence entre les différents agents au sein d’un UAS en cas de pannes. Dans le cadre du projet IDEAS, les pannes pouvant survenir au sein de l’UAS ont été étudiées [Lan09]. Des scénarios, comme celui de la Figure 5.3 pour le cas d’une panne de TC, ont été établis pour codifier le comportement à suivre et ainsi assurer la sécurité du système et de son environnement même en cas critique. Considérons par exemple la situation suivante d’un UA dont la TC a eu des problèmes de fonctionnement pour être ensuite complètement hors d’usage. La procédure adéquate a été correctement suivie et l’ATC a activé le mode d’urgence correspondant au déroutement de l’UA. Cependant, la TC est soudainement récupérée. Le pilote est alors occupé à rediriger son UA sur sa route initiale et il oublie de prévenir l’ATC pour annuler la procédure d’urgence. Dans cette situation, l’ATC considère que l’UA est en mode de déroutement vers un aéroport proche alors qu’il est en fait sur une autre route. Il est important de pouvoir détecter ce genre de situation critique car l’ATC ne possède alors pas les informations appropriées pour correctement organiser la circulation du trafic aérien et la séparation entre les différents appareils. Nous nous sommes donc proposés d’effectuer un procédé de certification permettant de vérifier la synchronisation des différents agents d’un UAS en cas de pannes éventuellement multiples. 5.2.2 Modélisation du problème La première étape de notre travail consiste à mettre en place formellement le problème. Nous étudions les diagrammes de [Lan09]. Celui relatif à la panne de TC est présenté dans la Figure 5.3. Afin d’exploiter les scénarios de panne proposés dans le projet IDEAS, nous avons normalisé ces diagrammes. Pour ce faire, nous avons fait appel aux diagrammes de classes et aux diagrammes états-transitions du langage Unified Modeling Language (UML) [UML11]. Nous commençons par rappeler brièvement le formalisme des deux types de diagrammes UML que nous employons. Nous établissons ensuite un modèle UML de l’UAS, puis nous traitons d’abord le cas d’une simple panne de TC et ajoutons ensuite la gestion d’une double panne avec la panne radio. Le langage UML : le diagramme de classes et le diagramme états-transitions Le langage UML (Unified Modeling Language, communément traduit par « langage de modé- lisation unifié ») est un langage de modélisation graphique orientée objet. Dans ce formalisme, il existe différents types de diagrammes. Nous en utilisons deux : — le diagramme de classes : diagramme structurel représentant une vue statique des différentes classes composant le système ; 173Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements                                                                                                                             Figure 5.3 – Scénario de panne de télécommande [Lan09] 174CHAPITRE 5. BIBLIOTHÈQUE C++ DE RECONNAISSANCE DE COMPORTEMENTS ET APPLICATIONS À LA SURVEILLANCE DE LA SÉCURITÉ D’AVIONS SANS PILOTE — le diagramme états-transitions : diagramme comportemental offrant une vue dynamique du système en permettant de décrire sous forme de machine à états son évolution. Un diagramme de classes est composé de classes reliées par des liens d’association et d’agrégation. Une classe correspond à un ensemble d’objets vérifiant des attributs. Elle est représentée par un rectangle dont la partie supérieure (qui est la seule détaillée dans nos diagrammes) contient le nom de la classe. Dans la Figure 5.4 qui présente le système que nous étudions, il y a douze classes. Les relations d’association, représentées par un simple trait, sont des connexions sémantiques (liens logiques) entre au moins deux classes, comme entre les classes RPS, UA, et ATC-UA dans la Figure 5.4 qui sont ainsi associées car elles représentent les différentes entités de notre système. Les relations d’agrégation sont des relations d’association exprimant une subordination entre deux classes. Elles sont représentées par un trait sur l’une des extrémités duquel figure un losange. Ceci traduit que la classe à cette extrémité contient l’autre classe. Par exemple, dans la Figure 5.4, la classe RPS contient trois sous-classes qui correspondent à la TC, la TM et la connexion avec l’ATC. Aux bouts des liens peuvent figurer des indices de multiplicité indiquant le nombre exact d’instances de chaque classe. Un entier n correspond à exactement n instances, et * correspond à un nombre quelconque d’instances. Un diagramme états-transitions est, comme son nom l’indique, composé d’états reliés par des transitions (cf. Figure 5.5). Un état modélise une situation durant laquelle une certaine condition invariante est maintenue. Il est représenté par un rectangle aux coins arrondis contenant son nom : par exemple, dans la Figure 5.5, l’état nominal de la TC pour le pilote, RPS_TC_Nominal. Plusieurs états munis des transitions qui les relient peuvent être regroupés dans un seul et même super-état qui permet de structurer le diagramme. Ainsi, dans la Figure 5.5, nous avons pu distinguer les états relatifs à chacune de trois entités, dans UA, RPS, et ATC. Un super-état peut être divisé par des traits pointillés pour former plusieurs zones concurrentes. Il s’agit alors d’un état composite. Les diagrammes de chaque zone sont exécutés en parallèle, mais, au sein de chaque secteur, les états ne sont pas concurrents. Ceci nous permet d’étudier en parallèle, par exemple, du point de vue de l’UA, les états des la TC, du Code et du Pilot. Chaque région d’un état composite doit nécessairement contenir un et un seul état initial représenté par un cercle plein et relié à l’état qui sera actif par défaut dans cette zone. Il y a donc trois états initiaux dans l’état composite UA. Les transitions permettent de passer d’un état à un autre sous certaines conditions. Elles sont représentées par des flèches et sont étiquetées éventuellement d’un évènement, d’une garde et d’une action sous le formalisme : ´ev`enement [garde]/action. Une transition donnée est déclenchée si son évènement a lieu et si sa garde, à valeur booléenne, est vérifiée. Le diagramme change alors d’état actif et l’action de la transition est effectuée. Par exemple, dans l’UA, pour passer de l’état Nominal_Code à l’état Code_7600, il faut que l’évènement Code to 7600 ait lieu, que la garde [in UA TC Nominal] soit vérifiée (c’est-à-dire que l’UA soit dans l’état UA_TC_Nominal), et, lors du changement d’état, le message ATC change code to 7600 est envoyé. Les transitions liant un état initial à l’état par défaut ont un statut particulier et ne peuvent être étiquetées que par une seule action. 175Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements UA(X ) UA(X) TC UA(X) TM UA(X) pilot UA(X ) relay UA(X ) Code RPS(X ) RPS(X) TC RPS(X) TM RPS(X)-ATC connection ATC ATC - UA(X) 1 1 * 1 1 1 1 1 1 1 1 1 1 Figure 5.4 – Diagramme de classes du système Positionnement du problème : diagramme de classe du système Afin de positionner le problème et de définir clairement le système, nous modélisons tout d’abord l’UAS avec un diagramme de classes présenté Figure 5.4. Sur ce diagramme, il apparait qu’à un drone (UA(X)) est associé un unique pilote (RPS(X)) et une unique partie de l’ATC (ATC − UA(X)). Le drone est composé de plusieurs éléments : la télécommande (UA(X) TC), la télémesure (UA(X) TM), l’autopilote (UA(X) Pilot), le relai de radio (UA(X) Relay), et le code qu’il envoie à l’ATC (UA(X) Code). De même, la RPS est constituée d’une télécommande (RPS(X) TC), d’une télémesure (RPS(X) TM) et d’une connexion à l’ATC (RPS(X) − ATC connection). Pour une liaison donnée, nous distinguons donc son fonctionnement aux deux extrémités : par exemple, pour la télécommande, l’émission d’instructions de la part du pilote, RPS(X) TC, et la réception de ces instructions par le drone, UA(X) TC, ce qui permet de modéliser plus finement une panne. Perte de télécommande La première panne à laquelle nous nous sommes intéressés est la panne de télécommande : le pilote reçoit des informations du drone via la télémesure mais il ne peut pas émettre d’ordre au drone. Nous avons commencé par la construction d’un diagramme états-transitions associé à la procédure à suivre en cas de panne de TC. Dans la section suivante, nous traitons le cas de la panne radio que nous intégrons dans le diagramme états-transitions initial afin de pouvoir traiter la situation des deux pannes simultanées. La Figure 5.5 présente le diagramme résultant de ces deux études. Ses états ainsi que leur signification sont regroupés dans le Tableau 5.6 ; les états en vert correspondent aux états ajoutés lors de la seconde étude pour traiter le cas de la panne radio. 176CHAPITRE 5. BIBLIOTHÈQUE C++ DE RECONNAISSANCE DE COMPORTEMENTS ET APPLICATIONS À LA SURVEILLANCE DE LA SÉCURITÉ D’AVIONS SANS PILOTE UAS in controlled airspace UAS ATC [ATC Service] [ATC code] [ATC Voice] RPS [RPS Voice] [RPS-ATC connection] [RPS TC] UA [UA TC] [UA Code] [UA Pilot] UA_TC_Nominal Nominal_Code Code_ZZ00 UA_Nominal_Flight UA_Transitory_Mode UA_Rerouting_Mode RPS_TC_Nominal Need_Contact_ATC_End_Urgency Need_Contact_ATC_Urgency ATC_Contacted_Urgency Checking_TC ATC_Nominal_For_RPS RPS Lost V oice Code_7600 UA TC lost UA_TC_Quick_Recovery_Procedure UA_TC_Unrecovered RPS_Voice_Recovery_Procedure RPS_V oice_Unrecovered RPS_Nominal_V oice RPS TC Lost RPS_TC_Quick_Recovery_Procedure RPS_TC_Long_Recovery_Procedure Urgency Service Need_Contact_ATC_Invalidation_Urgency ATC_Rerouting_Mode_Not_Selected ATC_Rerouting_Mode_Inferred ATC_Rerouting_Mode_Confirmed ATC_Nominal_Service ATC_Urgency_To_Be_Confirmed ATC_Nominal_Code ATC_ZZ00_Code ATC_7600_Code ATC_Nominal_V oice ATC_Lost_Voice [in RPS Nominal TC & in Code ZZ00] /Code to 7600 [in TC unrecovered] /ATC change code to ZZ00 ATC change code to ZZ00 XX minutes /TM confirms rerouting [in UA Nominal TC] RPS decides end rerouting [in UA Nominal TC & in RPS Nominal TC] TC failure for RPS [in TC unrecovered] ATC to RPS: confirm ZZ00 code ? [in RPS Nominal Voice] UU minutes [in RPS TC lost] UU minutes [in RPS Nominal TC] RPS to ATC: nominal mode [in RPS Nominal Voice] XX minutes YY minutes RPS to ATC: urgency mode [in ATC Nominal Voice] RPS to ATC: nominal mode [in ATC Nominal Voice] RPS to ATC: select rerouting mode [in ATC Nominal Voice] TT minutes TC failure for UA TC back for UA TC back for RPS RPS to ATC: select rerout ing mode [in ATC Nominal Voice] ATC back to nominal code Voice failure for ATC Voice back for ATC Code to 7600 [i n UA TC Nominal] /ATC change code to 7600 Code to nominal [in UA TC Nominal] /ATC back to nominal code NN minutes Voice failure for RPS ATC back to nominal code [in RPS TC Nominal] /Code to 7600 [in UA Nominal TC & in RPS Nominal Voice] /ATC back to nominal code Code to 7600 [in UA Nominal TC] /ATC change code to 7600 ATC change code to 7600 ATC change code to ZZ00 ATC change code to 7600 [in RPS Nominal TC] [in RPS TC lost] ZZ minutes [in RPS Nominal TC] [in TC unrecovered] /ATC change code to ZZ00 [in RPS long TC recovery procedure] RPS to ATC: nominal mode [in RPS Nominal Voice] TM confirms rerouting [in RPS Nominal Voice] /RPS to ATC: select rerouting mode RPS to ATC: urgency mode [in ATC Nominal Voice] RPS to ATC: nominal mode [in ATC Nominal code & in ATC Nominal Voice] Voice back for RPS [in RPS TC lost ] RPS to ATC: urgency mode [in RPS Nominal Voice] [in RPS TC Nominal] /Code to nominal [in ATC lost voice] [in ATC Nominal Voice] /ATC to RPS: confirm ZZ00 code [in ATC ZZ00 code] Figure 5.5 – Diagramme états-transitions de la perte de télécommande et de radio 177Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements Décrivons maintenant le comportement souhaité du système en cas de panne de télécommande. En l’absence de panne, le drone est en état nominal (TC nominale, code nominal envoyé à l’ATC, vol nominal) et il a un plan de vol pré-programmé qui est connu du pilote et de l’ATC. La RPS et l’ATC sont alors aussi en état nominal (TC nominale ainsi qu’ATC nominal pour la RPS, et service nominal et code nominal pour l’ATC). Lorsque le drone perçoit la perte de liaison TC, il commence par suivre une procédure automatique rapide visant à rétablir le lien perdu. En cas d’échec au bout de Y Y minutes, il abandonne cette procédure, envoie le code ZZ00 à l’ATC, et bascule alors en mode de vol transitoire. Ce mode varie selon le drone. Cela consiste en un comportement fixe durant une durée déterminée (comme, par exemple, maintenir la dernière vitesse et le dernier niveau de vol assignés). Si la télécommande recommence à fonctionner pendant ce mode, le drone repasse en état nominal, que ce soit au niveau de la TC, du code envoyé à l’ATC ou du vol. Après XX minutes, si la liaison n’est toujours pas rétablie, le drone quitte le mode de vol transitoire et passe alors en procédure de déroutement. Il s’agit d’atterrir dans l’aéroport de déroutement le plus proche défini dans son plan de vol. Si la liaison TC est restaurée alors que le drone est en procédure de déroutement, c’est au pilote de décider s’il souhaite que le drone retourne en état nominal ou s’il juge qu’il est plus prudent de continuer la procédure de déroutement. Parallèlement, lorsque la RPS perçoit la perte de liaison TC, le pilote commence par suivre une procédure rapide pour tenter de rétablir le lien. Si cette procédure est toujours infructueuse au bout de ZZ minutes, le pilote passe alors dans une procédure longue où il va tenter de rétablir la liaison jusqu’à ce qu’elle soit effectivement restaurée ou bien que le drone atterrisse. Lorsque le pilote passe dans cet état, il doit contacter l’ATC et l’informer que le mode d’urgence est activé. De plus, lorsque la télémesure lui indique que l’UA est en déroutement, le pilote doit également en avertir l’ATC. Si la liaison est rétablie durant cette procédure, la télécommande, du point de vue du pilote, retourne en état nominal et le pilote doit le signaler à l’ATC. Lorsque l’ATC réceptionne le message de la RPS indiquant l’activation du mode d’urgence, l’ATC passe alors en service d’urgence, tout d’abord dans un premier mode où le déroutement n’est pas encore activé. C’est après que la RPS ait informé l’ATC du déroutement que celui-ci se met en mode de déroutement confirmé. Si l’ATC est dans le premier mode et qu’il ne reçoit aucun message au bout de XX minutes, il passe alors en mode de déroutement inféré, pour passer ensuite en mode de déroutement confirmé dès qu’il reçoit le message correspondant de la RPS. De plus, à la réception d’un message de la RPS informant d’un retour en mode nominal, l’ATC revient aussi en service nominal. Il reste une situation qui n’a pas été décrite : celle où l’ATC, suite à un changement de code à ZZ00 réalise qu’il y a un problème de télécommande avant le pilote (c’est-à-dire que celui-ci n’a pas encore envoyé de message à l’ATC l’informant du mode d’urgence). L’ATC envoie alors un message à la RPS pour lui demander confirmation du code ZZ00. La RPS vérifie alors l’état de la TC. Au bout de UU minutes, il envoie alors le message adapté à l’ATC : ou bien il active le mode d’urgence, ou bien il infirme le code ZZ00. 178CHAPITRE 5. BIBLIOTHÈQUE C++ DE RECONNAISSANCE DE COMPORTEMENTS ET APPLICATIONS À LA SURVEILLANCE DE LA SÉCURITÉ D’AVIONS SANS PILOTE Tableau 5.6 – Récapitulatif des états du diagramme UML de la Figure 5.5 État Signification UA Nominal TC Pour le drone, la télécommande est en état nominal. Quick TC recovery procedure Le drone suit une procédure rapide visant à rétablir la liaison TC. TC unrecovered Le drone arrête d’essayer de rétablir la liaison TC. Nominal code Le code envoyé à ATC par le drone est nominal. ZZ00 code Le code envoyé à l’ATC par le drone est le code d’urgence ZZ00. 7600 code Le code envoyé à l’ATC par le drone est le code d’urgence 7600. UA Nominal flight Le drone est en vol nominal. UA Transitory mode Le drone est en mode transitoire de vol (mode automatique). UA Rerouting mode Le drone est en déroutement (atterrissage sur l’aéroport de déroutement le plus proche). RPS Nominal TC Pour le pilote, la télécommande est en état nominal. RPS quick TC recovery procedure Le pilote suit une procédure rapide visant à rétablir la liaison TC. RPS long TC recovery procedure Le pilote suit une procédure longue visant à rétablir la liaison TC. ATC nominal for RPS Pour le pilote, l’ATC est en mode nominal. Need to contact ATC (urgency procedure) Le pilote doit contacter l’ATC pour l’avertir de l’état d’urgence. ATC contacted (urgency mode) Pour le pilote, l’ATC est en état d’urgence. Need to contact ATC (end of urgency procedure) Le pilote doit contacter l’ATC pour clore l’état d’urgence. Checking TC Le pilote vérifie l’état de la TC. Need to contact ATC (invalidation of urgency) Le pilote doit contacter l’ATC pour invalider le mode d’urgence de ce dernier. RPS Nominal Voice Pour le pilote, la liaison radio est nominale. RPS Voice Recovery Procedure Le pilote suit une procédure visant à rétablir la liaison radio. RPS Voice Unrecovered Pour le pilote, la liaison radio est perdue. Nominal service L’ATC est en service nominal. Urgency to be confirmed L’ATC a diagnostiqué un état d’urgence et en attend la confirmation de la part du pilote. ATC Rerouting mode not selected L’ATC est en mode d’urgence et pense que le drone n’est pas en déroutement. ATC Rerouting mode inferred L’ATC est en mode d’urgence et suppose que le drone est en déroutement. ATC Rerouting mode confirmed L’ATC est en mode d’urgence et sait que le drone est en déroutement. ATC Nominal Code Le code reçu par l’ATC est le code nominal. ATC ZZ00 code Le code reçu par l’ATC est le code ZZ00. ATC 7600 code Le code reçu par l’ATC est le code 7600. ATC Nominal Voice Pour l’ATC, la liaison radio est nominale. ATC Lost Voice Pour l’ATC, la liaison radio est perdue. 179Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements Perte de liaison radio Nous allons maintenant considérer la perte de liaison radio. Dans le projet IDEAS, les diagrammes décrivant les procédures à suivre en cas de pannes sont disjoints. Or, nous souhaitons pouvoir considérer des pannes multiples simultanées, donc en normalisant ces diagrammes sous forme UML nous les regroupons en un seul. Ceci nous amène à réfléchir aux priorités à donner à des procédures concurrentes, ce qui n’était pas nécessaire lorsque les procédures étaient considé- rées indépendamment. Par exemple, la perte de TC doit être accompagnée de l’affichage du code transpondeur ZZ00 alors que la perte de communication radio est associée au code 7600. Il n’est pas possible de transmettre simultanément les deux codes, donc nous choisissons de privilégier l’affichage annonçant la panne de TC car celle-ci est jugée plus dangereuse que la panne radio. Nous ajoutons donc un état correspondant au code du transpondeur réglé à 7600, du côté de l’UA et du côté de l’ATC, en concurrence avec le code ZZ00 mais c’est ce dernier qui prime. La procédure à suivre en cas de panne radio est sensiblement la même qu’en panne de TC. Les différentes entités cherchent à rétablir la liaison puis au bout d’un délai imparti renoncent et considèrent la liaison comme perdue. Comme annoncé avec les différentes priorités des codes de transpondeur, si une panne de TC se produit alors que la procédure associée à une panne radio est déjà amorcée, la procédure associée à la panne de TC prend le dessus pour les actions étant en concurrence les unes avec les autres. Implémentation en C++ des diagrammes Avec les diagrammes des Figures 5.4 et 5.5, nous avons donc entièrement modélisé le système et les procédures qu’il doit suivre en cas de panne radio et/ou de panne de TC. Le cycle de vie du système se reflète dans les états actifs du diagramme. Afin de pouvoir effectuer des simulations, nous avons codé ce diagramme états-transitions en C++ à l’aide de la bibliothèque Meta State Machine (MSM) [Hen11] fournie dans les bibliothèques boost (Version 1.48.0) qui permet l’implémentation directe de machines à états. Le programme décrit le fonctionnement du diagramme UML. Il prend en entrée un flux d’évènements qui correspondent aux évènements étiquetant les transitions du diagramme et indiqués en rouge – les évènements en noir résultent d’actions internes à la simulation et sont donc engendrés automatiquement selon l’évolution du système. Le flux fait évoluer les états actifs du diagramme. La succession de ces états actifs pour un flux d’évènements donnés fournit alors un scénario de simulation que l’on peut examiner. 5.2.3 Objectifs de la reconnaissance de comportements dans ce cas d’étude Il s’agit donc d’analyser les scénarios découlant des simulations de la section précédente pour y détecter des comportements normaux ou anormaux spécifiés par des chroniques. La simulation produite respecte exactement les directives spécifiées et requises par le projet IDEAS. Cependant, il n’est de nos jours pas encore autorisé de faire voler un UA dans l’espace aérien, qu’il soit contrôlé ou non. En effet, les réglementations comme comme celles étudiées dans ce chapitre n’ont pas encore été finalisées. Nous proposons d’étudier si certaines situations incohé- rentes se produisent dans les simulations, et ce afin de remplir deux objectifs. La reconnaissance 180CHAPITRE 5. BIBLIOTHÈQUE C++ DE RECONNAISSANCE DE COMPORTEMENTS ET APPLICATIONS À LA SURVEILLANCE DE LA SÉCURITÉ D’AVIONS SANS PILOTE de comportements au cours de la simulation permet de confirmer ou d’infirmer certains choix de réglementation en faisant ressortir les différentes manières d’atteindre un état incohérent repré- sentant un danger. Notre premier objectif est donc d’offrir un outil d’assistance durant l’étape de développement des réglementations. En effet, comme l’on considère des pannes multiples, le système devient très complexe et il est difficile de se le représenter entièrement correctement, ce qui rend utile une telle assistance. À terme, les dernières causes possibles de brèches dans la sécurité du système devraient être humaines, c’est-à-dire dues au pilote ou au contrôleur du trafic aérien. La possibilité d’atteindre ce genre de situation incohérente doit rester dans le modèle car elle représente une réalité qui ne peut être évitée. Cependant, ces situations peuvent être détectées à l’aide d’un outil de reconnaissance de comportements. Ainsi, notre second objectif est d’offrir une méthode de détection des dernières situations incohérentes atteignables ne pouvant être empêchées, permettant d’activer des alarmes et donc de réduire les risques potentiels. Par ailleurs, il y aurait une troisième utilisation possible de la reconnaissance de comportements, corollaire de la deuxième : l’analyse d’un incident a posteriori par dépouillement des enregistrements. Cette application ne nécessite pas de disposer d’un moyen de reconnaissance en ligne. Elle a été largement étudiée précédemment dans le cas d’analyses de simulations HLA [Ber09]. 5.2.4 Écriture et formalisation des situations incohérentes à détecter Identification des situations dangereuses La première étape pour mettre en place un tel système est d’identifier avec l’aide d’un expert les états incohérents qui doivent être évités afin de pouvoir ensuite les spécifier au système et lancer le processus de reconnaissance. Par exemple, les comportements suivants sont considérés comme dangereux : 1. Incoherent ATC Voice : le code du transpondeur de l’UA indique le code 7600 à l’ATC, ce qui signifie qu’il y a une perte de liaison radio, mais le contrôleur aérien ne s’en rend pas compte, ce qui s’exprime par le fait que, dans le diagramme, l’état ATC Lost Voice ne devient pas actif ; 2. Incoherent flight mode UA/ATC : après une panne ayant été résolue, l’UA revient en mode de vol nominal mais l’ATC reste en mode d’urgence ; 3. RPS rushed decision : l’ATC pense que le drone est en déroutement mais ce n’est pas le cas ; 4. ATC late : la TC est perdue, et, depuis, δ minutes se sont écoulées sans que l’ATC passe en mode d’urgence ; 5. ATC incoherent : l’UA est passé en mode de déroutement, suite à quoi l’ATC a inféré par lui-même que le drone était en déroutement, mais cela n’a pas été confirmé par le pilote, même après le délai de latence imparti de δ minutes. L’objectif est donc de mettre en place un système de reconnaissance de ces comportements. Lorsque l’un d’entre eux est détecté, il faut alors examiner quelles sont ses origines : — si l’état incohérent est dû à un trou dans la réglementation, il faut la compléter ; 181Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements — sinon, c’est que la source est une erreur humaine, et il faut alors prévoir d’activer une alarme pour prévenir le pilote et/ou le contrôleur du trafic aérien de la situation potentiellement dangereuse. Écriture des chroniques associées Pour implémenter ce système, la seconde étape est de transcrire formellement ces comportements sous forme de chroniques qu’il sera ensuite possible de fournir à la bibliothèque CRL pour être reconnues. Ces chroniques permettront donc de surveiller le système. Il s’agit d’abord de spécifier quels évènements de base sont choisis pour construire les chroniques. Dans notre formalisme, les évènements de base sont ponctuels, et nous choisissons donc les évènements d’entrée et de sortie des différents états actifs du diagramme de la Figure 5.5, ce qui permet de décrire intégralement l’evolution du système. L’entrée et la sortie d’un état xxxx sont dénotés respectivement to_xxxx et from_xxxx. Les situations incohérentes décrites précédemment s’expriment alors formellement avec les chroniques suivantes : 1. Incoherent ATC Voice (to_ATC_Nominal_Code to_ATC_7600_Code then 5) − [to_ATC_Lost_Voice] 2. Incoherent flight mode UA/ATC (from_UA_Nominal_Flight ((to_UA_Nominal_Flight then 10) − [from_UA_Nominal_Flight])) −[to_ATC_Nominal_Service] 3. RPS rushed decision ( ((to_UA_Nominal_Flight | | to_UA_Transitory_Mode) then δ) −[to_UA_Rerouting_Mode] ) & to_ATC_Rerouting_Mode_Confirmed 4. ATC late (to_UA_TC_Unrecovered then δ) −[to_Urgency_Service || to_UA_TC_Nominal] 5. ATC incoherent to_UA_Rerouting_Mode ((to_ATC_Rerouting_Mode_Inferred then δ) −[to_ATC_Rerouting_Mode_Confirmed || to_UA_Nominal_Flight]) Nous avons donc, d’une part modélisé entièrement le système, et d’autre part écrit des chroniques pour le superviser. Il s’agit maintenant d’intégrer cela avec la bibliothèque CRL pour compléter la mise en place du système et remplir les objectifs fixés. 5.2.5 Utilisation de CRL pour reconnaître les situations incohérentes Nous allons donc utiliser CRL pour reconnaître les chroniques définies dans la section précédente dans des simulations produites par le programme issu du diagramme états-transitions modélisant le système. Plus précisément, le mode opératoire est le suivant : 182CHAPITRE 5. BIBLIOTHÈQUE C++ DE RECONNAISSANCE DE COMPORTEMENTS ET APPLICATIONS À LA SURVEILLANCE DE LA SÉCURITÉ D’AVIONS SANS PILOTE — nous lançons un scénario constitué d’une séquence d’évènements (qui sont des évènements marqués en rouge et étiquetant des transitions du diagramme) en fournissant au programme boost modélisant le diagramme un fichier d’entrée contenant cette séquence d’évènements ; — ce scénario fait évoluer les état actifs du système ; — ceci produit un fichier de sortie contenant la séquence des évènements d’entrée et de sortie des états actifs du diagramme, ce qui constitue le flux à analyser car ce sont ces évènements que nous avons choisis pour construire nos chroniques ; — nous analysons ce flux d’évènements avec CRL pour chercher à reconnaître les chroniques définies dans la section précédente. Un premier scénario : une erreur humaine Étudions un premier scénario très simple qui est à considérer comme un exemple instructif : une perte de la liaison radio se produit, et celle-ci n’est reconnue que par le pilote (évènement Voice failure for RPS). Nous faisons donc tourner la simulation avec ce simple évènement. L’évolution des états actifs du diagramme modélisant le système est fourni à la bibliothèque CRL sous la forme de la séquence des entrées et sorties des états concernés, ce qui donne le résultat suivant : t = 0 Engine created t = 0 Added chronicle : ([(to_ATC_Nominal_Code to_ATC_7600_Code) + 5] − to_ATC_Lost_Voice) t = 0 Added Event : to_ATC_Nominal_Code t = 0 Added Event : Voice_failure_for_RPS t = 0 Added Event : from_RPS_Nominal_Voice t = 0 Added Event : to_RPS_Voice_Recovery_Procedure t = 4 Added Event : from_RPS_Voice_Recovery_Procedure t = 4 Added Event : to_RPS_Voice_Unrecovered t = 4 Added Event : from_Nominal_Code t = 4 Added Event : to_Code_7600 t = 4 Added Event : from_ATC_Nominal_Code t = 4 Added Event : to_ATC_7600_Code t = 9 Chronicle recognition : ([(to_ATC_Nominal_Code to_ATC_7600_Code) + 5] − to_ATC_Lost_Voice) Reco Set = {hh(to_ATC_Nominal_Code, 0),(to_ATC_7600_Code, 4)i,(t, 9)i} La chronique Incoherent ATC Voice est donc reconnue : to_ATC_Nominal_Code à l’instant t = 0 a été suivi de to_ATC_7600_Code à l’instant t = 4, puis, jusqu’à l’instant t = 9, l’évènement pouvant annuler la reconnaissance (à savoir que l’ATC reconnaisse la panne radio) n’a pas eu lieu. Grâce à l’historisation des évènements, on peut voir dans l’ensemble de reconnaissances indiqué que la cause de l’incohérence est une inattention de la part du contrôleur du trafic aérien qui n’a pas réagi à la panne. Nous sommes donc dans le second cas où la source d’erreur est humaine, et une alarme doit être activée par la chronique pour prévenir l’ATC de la situation et tenter de rétablir une situation correcte. 183Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements Un deuxième scénario : un trou dans la réglementation Considérons maintenant un deuxième scénario, plus complexe, impliquant plusieurs pannes : la perte de la liaison radio est reconnue à la fois par le pilote et l’ATC (évènements Voice failure for RPS et Voice failure for ATC), peu après, une panne de TC, également reconnue à la fois par le pilote et l’ATC, se produit (évènements TC failure for UA et TC failure for RPS). Cependant, la TC est rétablie 15 min plus tard (évènements TC back for UA et TC back for RPS). À ce moment là, le pilote décide que la situation n’est pas trop inquiétante (une simple panne radio peut effectivement être considérée comme peu alarmante, elle peut être provisoire et due à un simple obstacle) et il règle l’UA de nouveau sur son mode de vol nominal (évènement RPS decides end rerouting). Lorsque l’on fait tourner la simulation sur ce scénario, on obtient le résultat suivant sur CRL (où l’on ne rapporte pas cette fois-ci tous les évènements du flux) : . . . t = 65 Chronicle recognition : ([from_UA_Nominal_Flight ([to_UA_Nominal_Flight + 10] − from_UA_Nominal_Flight)] − to_ATC_Nominal_Service) Reco Set = {h(from_UA_Nominal_Flight, 35), h(to_UA_Nominal_Flight, 55),(t, 65)ii} La chronique Incoherent flight mode UA/ATC est donc reconnue. Cette fois-ci, l’état d’incohé- rence n’est pas dû à une erreur humaine, ce qui signifie que la règlementation, représentée par le diagramme UML états-transitions, doit être corrigée. Nous avons mis en évidence le fait qu’il manque une transition dans la modélisation de l’ATC, entre Urgency service et ATC_Nominal_Service. En effet, l’ATC devrait pouvoir retourner en mode de service nominal même s’il n’y a pas de communication radio établie avec le pilote. Une transition activée par la sortie de l’état ATC_ZZ00_Code (qui indique la fin de la panne de TC) doit donc être ajoutée au diagramme. Une fois que cette amélioration a été effectuée, et que l’on a donc modifié le système et la procédure à suivre, le scé- nario précédent ne produit plus de reconnaissance de la chronique Incoherent flight mode UA/ATC ce qui montre que le comportement a été correctement corrigé. Un dernier exemple Les autres chroniques que nous avons définies dans la Section 5.2.4 sont utilisées de la même façon que les deux précédentes. Donnons un dernier scénario dangereux qui provoque cette fois-ci la reconnaissance de la chronique ATC late. On considère un UA dont la TC est périodiquement hors service, par exemple à cause d’un environnement perturbateur, et le code d’urgence du transpondeur associé à la perte de TC ne cesse donc de s’activer et de se désactiver. Suite à cette situation répétitive, le pilote comme l’ATC sont fatigués et moins réactifs, alors, lorsque la TC est tout d’un coup définitivement perdue, personne ne réagit. Après un délai prédéfini dans son plan de vol, l’UA commence à se dérouter vers un aéroport proche. Si ni le pilote, ni l’ATC ne réalisent le changement de situation, d’autres appareils pourraient ne pas être correctement séparés de l’UA qui, lui, ne peut plus recevoir d’instructions ce qui constitue donc un danger potentiel. La chronique ATC late est alors reconnue, ce qui permet de déclencher une alarme et d’éviter une issue possiblement 184CHAPITRE 5. BIBLIOTHÈQUE C++ DE RECONNAISSANCE DE COMPORTEMENTS ET APPLICATIONS À LA SURVEILLANCE DE LA SÉCURITÉ D’AVIONS SANS PILOTE dangereuse. Notons que le scénario évoqué comme exemple dans la Section 5.2.1 provoque une reconnaissance de la chronique RPS rushed decision. 5.3 Surveillance du bon respect de procédures de sécurité à suivre par un drone Dans la lignée du cas d’application précédent, nous allons dans cette section utiliser notre méthode de reconnaissance de comportements autour d’un second cas lié au système critique que représente un drone, à savoir la surveillance de procédures de sécurité à suivre par un UA lorsqu’il circule dans l’espace aérien. Nous commençons par décrire brièvement le cadre du problème (5.3.1). Nous établissons ensuite les chroniques critiques à reconnaître pour mettre en place le système de surveillance (5.3.3), puis nous appliquons ce système à des scénarios de simulation dans lesquels nous cherchons à reconnaître les comportements critiques (5.3.2). 5.3.1 Cadre du problème On considère ici un UA, intégré dans un système analogue à celui présenté dans la Section 5.2.1. Il circule successivement au travers de l’espace aérien contrôlé et non contrôlé. L’espace aérien est divisé en plusieurs zones (des boîtes tri-dimensionnelles d’une certaine classe nommée d’une lettre de A à G) et le type de zone détermine la réglementation à suivre. C’est le rôle de l’ATC de diriger les avions volant dans les zones contrôlées (classes A à E), et son objectif principal est d’éviter toute collision tout en organisant le flux de la circulation. À l’entrée et à la sortie d’une zone, un avion doit suivre des règles spécifiques, à savoir notamment régler sa fréquence radio pour communiquer avec l’ATC, respecter des points de passage (waypoints), et attendre d’avoir reçu une autorisation (clearance) avant de pouvoir entrer dans une nouvelle zone. La Figure 5.8 représente la trajectoire d’un drone traversant plusieurs zones aux alentours de l’aéroport d’Ajaccio, ainsi que les fréquences radio associées à chacune des zones. Comme évoqué dans le cas d’étude précédent, l’insertion des UAs dans la circulation aérienne générale est un problème d’actualité. Les avancées technologiques disponibles permettent maintenant aux UAs de réaliser de nombreuses missions très intéressantes, mais les règles strictes qui régissent le trafic aérien rendent difficile la circulation libre d’UAs, principalement pour des raisons de sûreté et de sécurité. Il est donc intéressant de fournir des mécanismes de surveillance assurant que toutes les procédures pertinentes sont correctement suivies par tout UA. Nous nous proposons de fournir un tel outil à l’aide de notre bibliothèque de reconnaissance de comportements CRL. On considère un UA décollant de l’aéroport d’Ajaccio en Corse (France). Dans cette région, les feux de maquis sont très fréquents et la mission de l’UA est d’aller surveiller une certaine zone située en dehors de l’espace aérien contrôlé. Pour ce faire, l’UA doit traverser successivement des zones contrôlées pour ensuite quitter l’espace aérien contrôlé et atteindre son but. Nous allons exposer notre système de surveillance sur une simulation de ce drone. La trajectoire de l’UA est calculée par le battlelab de l’Onera, Battle Lab for Aerospace and Defence Experimentations (BLADE) [CBP10], 185Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements Figure 5.7 – Vue d’ensemble aérienne de la trajectoire de l’UAS étudié fire Ajaccio LFKJ Gnd 121.7 Class D: CTR 118.075 Class D: TMA1 121.050 Class C Class G 133.875 FL 195 FL 115 Key frequencies trajectory Figure 5.8 – Représentation schématique des différentes zones traversées par l’UAS 186CHAPITRE 5. BIBLIOTHÈQUE C++ DE RECONNAISSANCE DE COMPORTEMENTS ET APPLICATIONS À LA SURVEILLANCE DE LA SÉCURITÉ D’AVIONS SANS PILOTE qui fournit un fichier détaillant les positions successives de l’avion chaque seconde, ainsi qu’une vue d’ensemble aérienne de la trajectoire dont on a un aperçu dans la Figure 5.7. Une seconde vision (simplifiée) de la trajectoire est décrite par la Figure 5.8, mettant en avant les différentes zones de l’espace aérien à traverser par l’UA. À partir de cet ensemble de positions, différents scénarios peuvent avoir lieu, pouvant mettre en scène aussi bien un comportement nominal de l’UA que des infractions à la réglementation. Les comportements dangereux possibles peuvent être décrits par le langage des chroniques, puis être ajoutés à un moteur de reconnaissance de CRL pour être reconnus. 5.3.2 Mise en place du système de surveillance : écriture des chroniques critiques à reconnaître Nous allons maintenant utiliser la bibliothèque CRL pour traiter le cas d’étude présenté dans la section précédente. On considère donc un UA décollant d’Ajaccio et traversant successivement diverses zones de l’espace aérien. Il doit respecter une réglementation particulière et l’objectif est d’identifier si et quand il s’éloigne de ces procédures. Une première étape est d’identifier les évènements qui doivent être considérés en entrée pour composer la base du flux à analyser. Dans la mise en place de cette étude, nous nous attachons à réduire la quantité de données nécessaires en entrée du processus de reconnaissance. Certains évènements n’ont pas besoin d’être fournis en entrée car ils peuvent être déduits des autres évènements. Par exemple, le décollage de l’appareil peut être inféré des coordonnées de position. Ainsi, nous réduisons la taille des données d’entrée et nous écrivons différents niveaux de chroniques où les chroniques d’un niveau sont définies à partir des chroniques des niveaux inférieurs. Ceci permet de réduire la complexité du processus de reconnaissance. Les finales du plus haut niveau sont celles qui correspondent à la reconnaissance des comportements dangereux recherchés, alors que les chroniques des niveaux inférieurs complètent et enrichissent le flux d’évènements en entrée. Le flux d’évènements à analyser est composé des coordonnées de position ainsi que d’événements basiques liés principalement au réglage de la fréquence radio et à des échanges entre les différentes entités du système étudié (envoyer l’ordre d’un changement de fréquence, demander ou donner une clearance pour une action spécifique, informer qu’un waypoint donné est atteint. . . ). Ces évènements sont enrichis d’attributs qui identifient par exemple l’appareil (ID), la fréquence (F REQ) ou le waypoint (WP) concernés. Nous utilisons ensuite ces évènements de bas niveau pour écrire une première strate de chroniques correspondant à la reconnaissance d’évènements simples avec des contraintes sur leurs attributs, comme présenté dans le Tableau 5.9 avec les chroniques de Niveau 1. Par exemple, OnGround correspond à un UA donné (identifié par ID) dont le niveau de vol est inférieur à une altitude donnée (précisée par H). Un second exemple est FreqDiffFrom qui est reconnue lorsqu’un UA donné a une fréquence radio réglée différemment de la fréquence attendue, et qui enregistre l’instant t de la reconnaissance sous un paramètre dans une propriété pour le moment anonyme. Comme mentionné dans la Section 5.1, la définition de ces chroniques est effectuée grâce à des classes C++ qui permettent d’écrire une définition générique pour tous les UAs et toutes les fréquences, par exemple. 187Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements Tableau 5.9 – Quelques chroniques écrites pour surveiller les procédures de sécurité Nom Formule de la chronique et éventuels prédicat et/ou fonction de transformation d’attributs ou description Niv. 1 OnGround(ID, H) FreqDiffFrom(ID, F REQ) ClearanceTakeOff(ID) InsideBox(ID, BOX) . . . position ♦.id = ID ∧ ♦.fle < H set_frequency ♦.id = ID ∧ ♦.freq 6= F REQ fonction de transformation d’attributs enregistrant l’instant de reconnaissance sous le nom time clear_takeoff ♦.id = ID position ♦.id = ID ∧insideBOX(♦.lat, ♦.lon, ♦.fle) . . . Niv. 2 TakeOff(ID, H) WaypointReached(ID, W P) QuitZone(ID, ZONE) . . . @(OnGround(ID, H) !! AboveGround(ID, H)) @(OutsideBox(ID, W P)! ! InsideBox(ID, W P)) @(InZone(ID, ZONE)! ! OutZone(ID, ZONE)) . . . Niv. 3 NoClearanceToTakeOff(ID) NoFrequencyToTakeOff(ID) NoRightToTakeOff(ID) IncoherentFrequency(ID) IncoherentAutoMode(ID) . . . (ClearanceTakeOff(ID)! ! TakeOff(ID, 15)) at least 60 || ((τ, 0) TakeOff(ID, 15)) -[ClearanceTakeOff(ID)] (FreqDiffFrom(ID, 118.075) TakeOff(ID, 15) then 5) -[FreqDiffFrom(ID, −1)] || ( (FreqDiffFrom(ID, 118.075)→x during (TakeOff(ID,15) then 5) ) -[FreqDiffFrom(ID, −1)→y], x.time < y.time ) || ((τ, 0) TakeOff(ID, 15) then 5) -[FreqDiffFrom(ID, −1)] Interdiction de décoller sans avoir reçu de clearance au moins 1 min avant, et sans avoir réglé la fré- quence radio à celle de la tour (118.075) avant ou au plus 5 s plus tard. Interdiction de changer de zone sans avoir réglé la fréquence radio correctement, au plus 5 s plus tard. Interdiction d’entrer en mode de vol automatique sans être dans l’espace non contrôlé (classe G). . . . 188CHAPITRE 5. BIBLIOTHÈQUE C++ DE RECONNAISSANCE DE COMPORTEMENTS ET APPLICATIONS À LA SURVEILLANCE DE LA SÉCURITÉ D’AVIONS SANS PILOTE Nous définissons ensuite des chroniques légèrement plus complexes, formant une seconde strate, et utilisant les chroniques de Niveau 1, comme exposé dans le Tableau 5.9. Nous allons détailler ici la structure de la chronique WaypointReached. Pour des raisons pratiques, un waypoint n’est pas représenté par un point unique dans l’espace, mais par une (petite) boîte centrée autour d’un point, ce qui permet d’avoir une certaine tolérance vis-à-vis de petites imprécisions. Le waypoint donné est atteint lorsque l’UA identifié change d’état et passe d’une position à l’extérieur de la boîte à une position dedans. La chronique est ensuite rendue ponctuelle par l’opérateur @. Ceci permet ensuite d’utiliser la chronique dans des chroniques de niveau supérieur comme s’il s’agissait d’un évènement du flux analysé, c’est-à-dire une activité datée à un instant ponctuel t correspondant à la fin de sa reconnaissance. Contrairement aux chroniques de niveaux 1 et 2 qui pouvaient faire partie du flux d’évènements, les chroniques de Niveau 3 sont complexes et chargées de détecter des comportements dangereux anormaux. Ainsi, lors d’un vol nominal, les chroniques de Niveau 3 ne devraient pas être reconnues, contrairement à certaines chroniques de niveaux inférieurs. Nous allons étudier plus en détail l’une des chroniques de Niveau 3 présentées dans le Tableau 5.9, à savoir NoFrequencyToTakeOff. Cette chronique correspond à une situation où un UA décolle sans avoir activé la fréquence radio correcte. Le comportement dont il s’agit peut être reconnu dans trois situations différentes : — « Le pilote passe à une fréquence incorrecte, puis décolle après quoi 5 s s’écoulent. Cependant, durant tout ce temps, la fréquence radio n’a pas été corrigée. » Notons que, dans l’absence, FreqDiffFrom(ID, −1) désigne l’UA ID qui modifie sa fréquence radio à une fréquence différente de -1, c’est-à-dire à toute fréquence. — « Le pilote règle la mauvaise fréquence radio dans les 5 s après le décollage, et elle n’est pas corrigée d’ici la fin de ces 5 s. » Il est nécessaire de préciser ici grâce à un prédicat que l’absence s’applique à partir de l’instant t du dernier changement incorrect de fréquence. Nous utilisons donc ici un prédicat ayant une portée sur les deux chroniques construisant une absence. Ce type de construction est très fréquent et justifie le cadre théorique mis en place dans le Chapitre 2. — « Aucune fréquence n’est réglée avant au moins 5 s après le décollage. » Rappelons que (τ, 0) désigne un instant de temps pur de date 0 qui correspond à l’origine du temps choisie, c’est-à-dire ici au début du scénario. Les définitions formelles des autres chroniques ne sont pas toutes précisées dans le Tableau 5.9 mais leurs structures sont comparables à celle de la chronique NoFrequencyToTakeOff. Ces trois niveaux de chroniques offrent ainsi une mise en place complète pour la détection de comportements dangereux liés à des procédures de sécurité négligées. 5.3.3 Application à des scénarios de simulation avec CRL Nous pouvons maintenant surveiller le système de drone à l’aide des chroniques définies dans la section précédente. Nous allons appliquer notre mise en place à plusieurs simulations de situations dangereuses ou non, mais cela illustre que notre cadre de travail peut s’appliquer aussi bien en temps réel car la quantité et la précision des données utilisées sont adéquates. Comme annoncé dans la Section 5.3.1, les données simulées sont obtenues en ajoutant divers 189Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements évènements procéduraux à un fichier contenant les positions successives de l’appareil étudié. Ce fichier est généré par le battlelab BLADE de l’Onera qui fournit une trajectoire réelle au départ de l’aéroport d’Ajaccio en passant par un ensemble donné de waypoints. Les données produites sont précises et abondantes : la latitude, la longitude et l’altitude (ou niveau de vol) sont procurées toutes les secondes à la précision du millionième de degré, accompagnées de la vitesse de l’appareil. Divers scénarios ont été testés avec la mise en place précisée dans la section précédente, dont notamment des scénarios nominaux où les chroniques de Niveaux 1 et 2 sont correctement reconnues mais les chroniques de Niveau 3 ne sont pas détectées, comme attendu. Nous allons maintenant observer plus en détail l’étude d’un scénario potentiellement dangereux. Considérons un UA identifié par l’ID 153 qui commence par régler sa fréquence radio à 121.7, ce qui correspond à la fréquence correcte pour un appareil au sol (cf. Figure 5.8). Le même avion quitte alors le parking avec pour objectif un décollage proche. Une fois qu’il atteint le waypoint précédant le décollage, il informe l’ATC, qui, en retour, ordonne le passage à la fréquence radio 118.075, c’est-à-dire la fréquence associée à la zone de l’espace aérien où se déroule le décollage. Suite aux instructions, l’UA change correctement de fréquence, puis, après l’avoir réclamée, reçoit une clearance pour un décollage. 5 s plus tard, il commence à rouler et décolle ensuite 23 s après. Jusqu’à ce moment là, les procédures de sécurité ont été correctement suivies. Cependant, quelques secondes après, l’UA règle sa fréquence radio à la fréquence 121.050 qui correspond à la fréquence de la zone aérienne suivante, mais ce changement est effectué trop tôt dans la procédure. L’appareil se trouve donc dans une situation potentiellement dangereuse, puisqu’il n’est plus en contact avec le bon représentant de l’ATC. Dans ce scénario, la fréquence requise pour le décollage est correctement réglée avant le décollage mais changée à tort peu après. Cette situation est dangereuse puisque l’ATC ne peut plus communiquer avec l’appareil, ce qui peut porter atteinte à sa mission d’éviter toute collision. Comme voulu, cette situation est correctement détectée par CRL ce qui est rapporté ci-dessous. Pour des raisons de clarté, seuls les évènements liés à l’UA 153 sont indiqués mais des évènements entrelacés concernant d’autres appareils étaient considérés et cela n’affecte pas le résultat du processus de reconnaissance. De plus, du fait de leur forte périodicité, seul un évènement de position est précisé, à titre d’exemple. t = 0 Engine created t = 0 Added chronicle : NoFrequencyToTakeOff ID=153 t = 0 Added Event : set_frequency ID=153 FREQ=121.7 t = 7 Added Event : quit_parking ID=153 t = 32 Added Event : inform_WP_reached ID=153 WP=GRD t = 35 Added Event : order_frequency ID=153 FREQ=118.075 t = 37 Added Event : set_frequency ID=153 FREQ=118.075 t = 37 Added Event : ask_clearance_takeoff ID=153 t = 45 Added Event : clearance_takeoff ID=153 t = 50 Added Event : position LAT=41.9288 LON=8.80548 FLE=14.9821 t = 75 Added Event : set_frequency ID=153 FREQ=121.05 t = 78 Chronicle recognition : NoFrequencyToTakeOff ID=153 Reco Set = {hh⊥,h(set_frequency, 75),h(position, 73),(τ, 78)iii, ⊥i} 190CHAPITRE 5. BIBLIOTHÈQUE C++ DE RECONNAISSANCE DE COMPORTEMENTS ET APPLICATIONS À LA SURVEILLANCE DE LA SÉCURITÉ D’AVIONS SANS PILOTE Notons que l’ensemble des reconnaissances permet non seulement d’identifier quels sont les évènements qui ont mené à la situation dangereuse (ici, l’évènement clé est set_frequency à t = 75) mais il expose également quelle branche de la disjonction a été reconnue. Un certain nombre de tels scénarios ont été testés avec notre cadre de reconnaissance de chroniques, de façon à couvrir une grande variété d’arrangements d’évènements possibles ; et les comportements dangereux des chroniques de Niveau 3 ont été fidèlement reconnus. 5.4 Conclusion Dans ce chapitre, nous avons décrit le fonctionnement de la bibliothèque CRL que nous avons conçue. Nous disposons, au travers de CRL, d’une implémentation efficace d’un processus de reconnaissance de comportements à l’aide de formalisme des chroniques. Cette mise en place est fondée sur la base théorique solide présentée dans le Chapitre 2 ce qui rend CRL adaptée à être employée pour les systèmes critiques nécessitant de fortes garanties, comme les UA. En tant que bibliothèque C++, CRL est dès à présent utilisable dans un contexte industriel au travers d’une API dédiée. Nous avons déposé la bibliothèque auprès de l’Agence pour la Protection des Programmes, et elle est disponible sous la licence libre GNU LGPL 5 . Nous avons utilisé CRL pour traiter deux cas d’étude critiques liés à la sécurité d’un UA. Dans le premier cas, nous avons surveillé la cohérence entre les différents agents mis en jeu au sein d’un système de drone (UAS) dans le cadre de la procédure à suivre lors d’une ou plusieurs pannes de liaisons de communication. Dans ce contexte, le processus de reconnaissance de comportements permet non seulement d’activer des alarmes dans le cas de situations dangereuses, mais il offre aussi un outil d’assistance lors de l’élaboration des procédures à suivre en cas de panne. Dans le second cas, nous avons surveillé un UA circulant dans l’espace aérien et devant suivre des procédures de sécurité variées et précises, dépendant des zones aériennes qu’il traverse. CRL nous permet de détecter les situations dangereuses où l’UA ne respecte pas scrupuleusement ces procédures. Des alarmes peuvent alors être déclenchées ce qui peut permettre d’éviter les dangers susceptibles de découler de la situation. Ces deux cas d’études mettent en avant les fonctionnalités de CRL et illustrent notamment l’utilité des différents opérateurs du langage des chroniques. Notons que, dans ces deux cas, l’analyse de comportements a uniquement été effectuée sur des simulations mais cela est dû à la difficulté d’obtenir des données réelles. CRL peut aussi bien être utilisée pour l’analyse de cas réels. 5. https://code.google.com/p/crl/ 191Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements 192Conclusion et perspectives Dans le cadre de cette thèse, nous nous sommes concentrés sur la formalisation et l’extension d’un langage de description de comportements, le langage des chroniques. Nous avons également développé deux modèles d’implémentation d’un processus de reconnaissance de ces comportements pour ensuite utiliser l’un de ces deux modèles pour traiter deux cas d’application. Nous nous sommes donc attelés à la problématique de l’analyse de flux importants d’évènements afin d’y détecter des situations complexes pouvant être aussi bien dangereuses que souhaitées, domaine du Complex Event Processing (CEP). Cette technique est applicable en ligne et procède à une historisation des évènements impliqués, ce qui permet, d’une part, de diagnostiquer dès leur occurrence les situations recherchées, et, d’autre part, de pouvoir remonter aux évènements étant à l’origine de ces situations. Les domaines d’application de cette technique sont très variés, et nous nous sommes restreints au domaine de l’aéronautique, et plus particulièrement à l’insertion de drones civils dans l’espace aérien. Dans ce cadre, nous avons traité deux cas d’application. Tout d’abord, nous nous sommes attachés à l’analyse des réglementations à suivre par un système d’avion sans pilote en cas de pannes. Des études détaillées ont été menées à l’Onera afin d’établir des réglementations visant à introduire les avions sans pilotes dans l’espace aérien. Il s’agissait notamment d’imposer et de codifier un comportement à suivre en cas de pannes. Ces systèmes étant très critiques, il est impératif d’obtenir des garanties fortes sur ces réglementations, et ce niveau de garantie ne peut être obtenu que par des méthodes formelles, i.e. une analyse logique du système. Nous avons donc mis à profit notre processus de reconnaissance de comportements pour faire ressortir les situations incohérentes pouvant apparaître entre les différentes entités du système qui est composé du drone, du pilote et du contrôleur de trafic aérien, et où les échanges de données sont très complexes. Nous avons pu mettre en avant à la fois des situations incohérentes dues à une erreur humaine (de la part du pilote ou du contrôleur aérien) et des situations incohérentes dues à un trou dans la réglementation. Cette mise en place a donc permis d’exposer des points précis de la réglementation à compléter, tout en fournissant un outil pouvant activer des alarmes dans le cas de situations dangereuses dues à l’homme [CCKP13b, CCKP12b]. Une seconde application concernant l’insertion de drones civils dans l’espace aérien a également été réalisée dans le cadre de la surveillance de procédures de sécurité liées à la traversée de différents types de zones de l’espace aérien. Le processus de reconnaissance de comportements a été affecté à la reconnaissance de situations dangereuses provenant du non respect de procédures de sécurité [PBC+]. 193Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements La mise en place de ces applications repose sur un langage logique, le langage des chroniques, permettant de décrire formellement des agencements complexes d’évènements à l’aide de différents opérateurs temporels. Nous avons construit une formalisation mathématique complète autour de ce langage, définissant entre autres la notion d’événement et surtout celle de la reconnaissance d’une chronique, notion qui est exprimée par une sémantique ensembliste arborescente construite dans une induction structurelle. La problématique double de disposer de reconnaissances en ligne (c’est- à-dire au fur et à mesure du flux d’évènements) et avec historisation est centrale. Tout en continuant à respecter ces contraintes, nous avons étendu l’expressivité du langage en ajoutant la possibilité d’exprimer de nouvelles contraintes temporelles plus précises, et en raffinant la notion d’événement, leur donnant la possibilité d’avoir des attributs de toutes sortes sur lesquels il est ensuite possible d’exprimer des contraintes à l’aide de prédicats [PBC+]. Ces extensions sont cruciales car de nombreuses applications industrielles nécessitent de pouvoir exprimer des contraintes de corrélation entre certains attributs liés aux évènements d’une même reconnaissance. Afin de pouvoir appliquer ce cadre théorique à la reconnaissance de comportements, nous avons réalisé deux modèles du processus de reconnaissance de chroniques. Nous avons proposé une première modélisation conçue à l’aide de réseaux de Petri colorés, un outil d’informatique théorique offrant un langage de spécification formelle bien adapté ainsi qu’une représentation graphique simple. Les outils disponibles autour des réseaux de Petri nous ont permis de simuler et de visualiser les étapes de la reconnaissance de chroniques, et aussi de tester la correction des réseaux. En outre, nous avons prouvé un résultat d’adéquation des constructions de réseaux de Petri avec la sémantique ensembliste du langage des chroniques [CCKP12a]. Nous avons également fait évoluer ce modèle de reconnaissance de chroniques en y incorporant une structure de contrôle permettant de déterminiser ce modèle initialement non-déterministe et assurant la gestion du flux d’évènements qui n’était pas encore implémentée. Nous avons réalisé ces extensions tout en conservant bien entendu à la fois une construction modulaire et de la concurrence [CCKP13a]. Parallèlement, un outil de reconnaissance de chroniques, Chronicle Recognition Library (CRL) dont les algorithmes sont directement calqués sur la sémantique ensembliste a également été élaboré en C++. Cet outil est davantage adapté à nos utilisations applicatives pour l’industrie aéronautique car il est homogène avec les outils utilisés et il permet de tirer parti de l’intégralité du cadre théorique. C’est donc CRL que nous avons utilisé pour réaliser les applications évoquées ci-dessus. La bibliothèque CRL est disponible librement sous la licence GNU LGPL 6 [PBC+, CCKP13b, CCKP12b]. De nombreuses perspectives tant théoriques qu’applicatives s’offrent dans la poursuite de ce travail. Les différents axes principaux sont les suivants : Réseaux de Petri Une première extension du modèle en réseaux de Petri colorés serait de modifier le formalisme de représentation des reconnaissances dans les réseaux en passant des listes d’évènements à des arbres d’évènements. Ceci permettrait d’uniformiser les modes de représentation avec le cadre théorique formel et fournirait ensuite une voie pour achever la dé- monstration de la correction du modèle en réseaux de Petri colorés vis à vis de la sémantique ensembliste arborescente. 6. https://code.google.com/p/crl/ 194Conclusion et perspectives Par ailleurs, il faudrait compléter le modèle en réseaux de Petri colorés pour pouvoir prendre en compte l’ensemble des constructions du langage disponibles dans le cadre théorique. Ceci implique également de prolonger en parallèle la preuve d’adéquation. Ce modèle étendu en réseaux de Petri pourra ensuite être utilisé dans le cadre d’une application mettant en jeu un système modélisé lui-même en réseaux de Petri colorés. Pour ce faire, il faudrait mettre en place un mécanisme de collecte des évènements à analyser et provenant du modèle. Il suffirait ensuite de connecter ce mécanisme à la place Events des réseaux qui doit contenir le flux des évènements à traiter. Pour pouvoir utiliser le modèle en réseaux de Petri colorés pour traiter d’autres types d’applications, il faudra également élaborer un programme qui réponde au problème de la génération automatique de réseaux, ce qui est envisageable grâce à leur construction modulaire inductive formelle. Il s’agit alors de construire automatiquement les réseaux associés aux chroniques recherchées et le programme correspondant à ces réseaux. Cadre théorique formel Au sein du cadre théorique formel, il serait intéressant de chercher à étendre l’expressivité du langage en ajoutant par exemple la possibilité d’exprimer des quantifications sur les attributs d’évènements, ou bien en ajoutant de nouvelles constructions permettant réaliser plus simplement la reconnaissance de répétitions. Ceci permettrait de décrire précisément des situations plus complexes et donc de traiter davantage d’applications. Pour chercher à optimiser les formules de chroniques à reconnaître, il faudrait mettre en avant des règles de transformation pouvant mener à une formulation plus efficace de la même chronique. Un système d’analyse de satisfiabilité de chroniques pourrait également être utile à l’utilisateur. Il serait aussi intéressant d’étudier les différents formalismes de modélisation d’incertitudes afin de définir lesquels sont adaptés à l’introduction d’incertitudes à différents niveaux du formalisme, que ce soit sur les comportements à reconnaître, les dates d’occurrence ou les autres attributs des évènements, ou même au niveau de l’occurrence elle-même des évènements. Bibliothèque CRL et applications En parallèle de ces extensions théoriques, il faudrait faire évoluer la bibliothèque CRL pour pouvoir tirer parti de ces extensions. L’élargissement du champ d’application de la reconnaissance de chroniques, aussi bien dans le cadre de simulations qu’en temps réel, permettrait de faire avancer CRL et de mettre en avant d’éventuelles autres évolutions nécessaires. Pour améliorer l’efficacité en temps du programme, il serait intéressant de mettre à profit la concurrence, mise en avant notamment par le modèle en réseaux de Petri colorés, pour paralléliser le processus. Pour finir, l’écriture de chroniques, qui représente actuellement l’une des difficultés principales dans le domaine du CEP, doit pour le moment être réalisée « à la main » par des experts. Il faudrait étudier différentes méthodes (apprentissage, statistique,. . . ) pour mettre en place un outil d’aide à l’écriture de chroniques permettant de se rapprocher d’une couverture exhaustive des comportements à reconnaître dans le cadre d’une application donnée. 195Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements 196Bibliographie [AC06] Raman Adaikkalavan and Sharma Chakravarthy. SnoopIB: Interval-based event specification and detection for active databases. Data & Knowledge Engineering, 59(1):139–165, 2006. (2 citations pp. 37 et 38) [AD01] Armen Aghasaryan and Christophe Dousson. Mixing chronicle and Petri net approaches in evolution monitoring problems. In Proceedings of the Eleventh International Workshop on Principles of Diagnosis (DX2001), 2001. (cité p. 25) [AEFF12] Alexander Artikis, Opher Etzion, Zohar Feldman, and Fabiana Fournier. Event processing under uncertainty. In Proceedings of the 6th ACM International Conference on Distributed Event-Based Systems, pages 32–43. ACM, 2012. (cité p. 17) [AFR+10] Darko Anicic, Paul Fodor, Sebastian Rudolph, Roland Stühmer, Nenad Stojanovic, and Rudi Studer. A rule-based language for complex event processing and reasoning. In Proceedings of the Fourth International Conference on Web Reasoning and Rule Systems (RR), pages 42–57. Springer, 2010. (4 citations pp. 20, 21, 22, et 211) [AFSS09] Darko Anicic, Paul Fodor, Roland Stuhmer, and Nenad Stojanovic. Event-driven approach for logic-based complex event processing. In International Conference on Computational Science and Engineering (CSE), volume 1, pages 56–63. IEEE, 2009. (cité p. 22) [All81] James F. Allen. An interval-based representation of temporal knowledge. In Proceedings of the Seventh International Joint Conference on Artificial Intelligence (IJCAI), pages 221–226, 1981. (cité p. 10) [All83] James F. Allen. Maintaining knowledge about temporal intervals. Communications of the ACM, pages 832–843, 1983. (2 citations pp. 10 et 47) [AMPP12] Alexander Artikis, Robin Marterer, Jens Pottebaum, and Georgios Paliouras. Event processing for intelligent resource management. In Proceedings of European Conference on Artificial Intelligence (ECAI). IOS Press, pages 943–948, 2012. (cité p. 19) [Ani11] Darko Anicic. Event Processing and Stream Reasoning with ETALIS. PhD thesis, Karlsruhe Institute of Technology, 2011. (cité p. 20) [AP09] Alexander Artikis and George Paliouras. Behaviour recognition using the event calculus. In Artificial Intelligence Applications and Innovations III, pages 469–478. Springer, 2009. (2 citations pp. 17 et 39) 197Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements [APPS10] Alexander Artikis, Georgios Paliouras, François Portet, and Anastasios Skarlatidis. Logic-based representation, reasoning and machine learning for event recognition. In Proceedings of the Fourth ACM International Conference on Distributed Event-Based Systems. ACM, 2010. (cité p. 18) [ARFS11] Darko Anicic, Sebastian Rudolph, Paul Fodor, and Nenad Stojanovic. Retractable complex event processing and stream reasoning. In Proceedings of the 5th international conference on Rule-based reasoning, programming, and applications, pages 122–137. Springer, 2011. (cité p. 23) [ARFS12] Darko Anicic, Sebastian Rudolph, Paul Fodor, and Nenad Stojanovic. Real-time complex event recognition and reasoning–a logic programming approach. Applied Artificial Intelligence, 26(1-2):6–57, 2012. (2 citations pp. 20 et 22) [ASP10a] Alexander Artikis, Marek Sergot, and Georgios Paliouras. A logic programming approach to activity recognition. In Proceedings of the 2nd ACM international workshop on Events in multimedia, pages 3–8. ACM, 2010. (cité p. 39) [ASP10b] Alexander Artikis, Anastasios Skarlatidis, and Georgios Paliouras. Behaviour recognition from video content: a logic programming approach. International Journal on Artificial Intelligence Tools, 19(02):193–209, 2010. (2 citations pp. 17 et 39) [ASP12] Alexander Artikis, Marek Sergot, and Georgios Paliouras. Run-time composite event recognition. In Proceedings of the 6th ACM International Conference on Distributed Event-Based Systems, pages 69–80. ACM, 2012. (2 citations pp. 9 et 19) [ASPP12] Alexander Artikis, Anastasios Skarlatidis, François Portet, and Georgios Paliouras. Logic-based event recognition. Knowledge Engineering Review, 27(4):469–506, 2012. (2 citations pp. 9 et 35) [AWG+13] Alexander Artikis, Matthias Weidlich, Avigdor Gal, Vana Kalogeraki, and Dimitrios Gunopulos. Self-adaptive event recognition for intelligent transport management. In Big Data, 2013 IEEE International Conference on, pages 319–325. IEEE, 2013. (cité p. 20) [AWS+14] Alexander Artikis, Matthias Weidlich, Francois Schnitzler, Ioannis Boutsis, Thomas Liebig, Nico Piatkowski, Christian Bockermann, Katharina Morik, Vana Kalogeraki, Jakub Marecek, et al. Heterogeneous stream processing and crowdsourcing for urban traffic management. In Proceedings of the 17th International Conference onExtending Database Technology (EDBT 2014). Athens, Greece, 2014. (cité p. 20) [BCC07] Olivier Bertrand, Patrice Carle, and Christine Choppy. Chronicle modelling using automata and coloured Petri nets. In The 18th International Workshop on Principles of Diagnosis (DX-07), pages 229–234, 2007. (cité p. 30) [BCC08] Olivier Bertrand, Patrice Carle, and Christine Choppy. Towards a coloured Petri nets semantics of a chronicle language for distributed simulation processing. In CHINA 2008 Workshop (Concurrency metHods: Issues aNd Applications), pages 105–119, June 2008. (cité p. 30) 198BIBLIOGRAPHIE [BCC09] Olivier Bertrand, Patrice Carle, and Christine Choppy. Coloured Petri nets for chronicle recognition. In Proceedings of the fourteenth International Conference on Reliable Software Technologies, Ada-Europe, June 2009. (cité p. 30) [BD91] Bernard Berthomieu and Michel Diaz. Modeling and verification of time dependent systems using time Petri nets. IEEE Transactions on Software Engineering, 17(3):259–273, 1991. (cité p. 28) [Ber02] Bruno Berstel. Extending the Rete algorithm for event management. In Proceedings of the Ninth International Symposium on Temporal Representation and Reasoning (TIME), pages 49–51. IEEE, 2002. (cité p. 37) [Ber09] Olivier Bertrand. Détection d’activités par un système de reconnaissance de chroniques et application au cas des simulations distribuées HLA. PhD thesis, Université Paris 13 and ONERA, 2009. (3 citations pp. 9, 30, et 181) [Bor85] Gary C. Borchardt. Event calculus. In Proceedings of the Ninth International Joint Conference on Artificial Intelligence (IJCAI), pages 524–527, 1985. (pas de citation) [BSC02] Amine Boufaied, Aaudine Subias, and Michel Combacau. Chronicle modeling by Petri nets for distributed detection of process failures. In Proceedings of the Second IEEE International Conference on Systems, Man and Cybernetics (SMC’02). IEEE Computer Society Press, 2002. (cité p. 28) [BSC04] Amine Boufaied, Audine Subias, and Michel Combacau. Distributed fault detection with delays consideration. In 15th International Workshop on Principles of Diagnosis, Carcassonne, 2004. (2 citations pp. 28 et 29) [BSC05] Amine Boufaied, Audine Subias, and Michel Combacau. Distributed time constraints verification modelled with time Petri nets. In Proceedings of the 17th IMACS World Congress, Paris, France, 2005. (2 citations pp. 28 et 29) [BTF07] Rahul Biswas, Sebastian Thrun, and Kikuo Fujimura. Recognizing activities with multiple cues. In Human Motion — Understanding, Modeling, Capture and Animation, pages 255–270. Springer, 2007. (cité p. 35) [CBDO98] Patrice Carle, Philippe Benhamou, François-Xavier Dolbeau, and Manuel Ornato. La reconnaissance d’intentions comme dynamique des organisations. In 6es Journées Francophones pour l’Intelligence Artificielle Distribuée et les Systèmes Multi-Agents (JFIADSMA’98), 1998. (cité p. 42) [CBP10] Raphael Cuisinier, Michael Brunel, and Stéphanie Prudhomme. Using open source to build comprehensive battlespace simulations. In Simulation Technology and Training Conference (SimTecT), 2010. (2 citations pp. 12 et 185) [CCK11] Patrice Carle, Christine Choppy, and Romain Kervarc. Behaviour recognition using chronicles. In Proceedings of the 5th IEEE International Symposium on Theoretical Aspects of Software Engineering, pages 100–107, 2011. (21 citations pp. 9, 10, 11, 30, 31, 42, 43, 44, 46, 47, 48, 50, 53, 54, 57, 60, 68, 70, 97, 104, et 115) 199Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements [CCKP12a] Patrice Carle, Christine Choppy, Romain Kervarc, and Ariane Piel. Behavioural analysis for distributed simulations. In Proceedings of the Nineteenth Asia-Pacific Software Engineering Conference (APSEC), 2012. (3 citations pp. 11, 70, et 194) [CCKP12b] Patrice Carle, Christine Choppy, Romain Kervarc, and Ariane Piel. Handling Breakdowns in Unmanned Aircraft Systems. In Proceedings of the Eighteenth International Symposium on Formal Methods (FM) - Doctoral Symposium, 2012. (4 citations pp. 11, 166, 193, et 194) [CCKP13a] Patrice Carle, Christine Choppy, Romain Kervarc, and Ariane Piel. A formal coloured Petri net model for hazard detection in large event flows. In Proceedings of the twentieth Asia-Pacific Software Engineering Conference (APSEC), 2013. (3 citations pp. 11, 134, et 194) [CCKP13b] Patrice Carle, Christine Choppy, Romain Kervarc, and Ariane Piel. Safety of unmanned aircraft systems facing multiple breakdowns. In Proceedings of the First French-Singaporean Workshop on Formal Methods and Applications (FSFMA), 2013. (4 citations pp. 11, 166, 193, et 194) [CCQW03] Guy Carrault, Marie-Odile Cordier, Rene Quiniou, and Feng Wang. Temporal abstraction and inductive logic programming for arrhythmia recognition from electrocardiograms. Artificial Intelligence in Medicine, 28(3):231–263, 2003. (cité p. 39) [CD97] Luca Chittaro and Michel Dojat. Using a general theory of time and change in patient monitoring: experiment and evaluation. Computers in Biology and Medicine, 27(5):435–452, 1997. (cité p. 39) [CD00] Marie-Odile Cordier and Christophe Dousson. Alarm driven monitoring based on chronicles. In 4th SafeProcess, pages 286–291, 2000. (2 citations pp. 27 et 39) [CGR+07] Marie-Odile Cordier, Xavier Le Guillou, Sophie Robin, Laurence Rozé, and Thierry Vidal. Distributed Chronicles for On-line Diagnosis of Web Services. In The 18th International Workshop on Principles of Diagnosis (DX-07), pages 37–44, 2007. (cité p. 39) [CKAK94] Sharma Chakravarthy, Vidhya Krishnaprasad, Eman Anwar, and Seung-Kyum Kim. Composite events for active databases: Semantics, contexts and detection. In 20th International Conference on Very Large Data Bases (VLDB), volume 94, pages 606– 617, 1994. (2 citations pp. 37 et 38) [CM94] Sharma Chakravarthy and Deepak Mishra. Snoop: An expressive event specification language for active databases. Data & Knowledge Engineering, 14(1):1–26, 1994. (2 citations pp. 37 et 38) [CM96] Luca Chittaro and Angelo Montanari. Efficient temporal reasoning in the cached event calculus. Computational Intelligence, 12(3):359–382, 1996. (cité p. 18) [CM10] Gianpaolo Cugola and Alessandro Margara. TESLA: a formally defined event specification language. In Proceedings of the Fourth ACM International Conference on Distributed Event-Based Systems, pages 50–61. ACM, 2010. (pas de citation) 200BIBLIOGRAPHIE [CM12] Gianpaolo Cugola and Alessandro Margara. Processing flows of information: From data stream to complex event processing. ACM Computing Surveys (CSUR), 44(3):15, 2012. (4 citations pp. 13, 14, 15, et 34) [CMM12] Damien Cram, Benoît Mathern, and Alain Mille. A complete chronicle discovery approach: application to activity analysis. Expert Systems, 29(4):321–346, 2012. (cité p. 39) [CMZ09] Antonio Cau, Ben Moszkowski, and Hussein Zedan. Interval temporal logic. URL: http://www.cms.dmu.ac.uk/˜cau/itlhomepage/itlhomepage.html, 2009. (pas de citation) [CP92] Søren Christensen and Laure Petrucci. Towards a modular analysis of coloured Petri nets. Application and Theory of Petri Nets 1992, pages 113–133, 1992. (3 citations pp. 74, 75, et 76) [CV98] Silvia Coradeschi and Thierry Vidal. Accounting for temporal evolutions in highly reactive decision-making. In Proceedings of the Fifth IEEE International Workshop on Temporal Representation and Reasoning, pages 3–10, 1998. (cité p. 39) [dCRN13] Otávio M. de Carvalho, Eduardo Roloff, and Philippe O. A. Navaux. A survey of the state-of-the-art in event processing. In Proceedings of the 11th Workshop on Parallel and Distributed Processing (WSPPD), 2013. (cité p. 35) [DD99] Christophe Dousson and Thang Vu Du’ong. Discovering chronicles with numerical time constraints from alarm logs for monitoring dynamic systems. In Proceedings of the Sixteenth International Joint Conference on Artificial Intelligence (IJCAI), volume 16, pages 620–626, 1999. (2 citations pp. 24 et 27) [DG94] Christophe Dousson and Malik Ghallab. Suivi et reconnaissance de chroniques. Revue d’intelligence artificielle, 8(1):29–61, 1994. (2 citations pp. 26 et 27) [DGG93] Christophe Dousson, Paul Gaborit, and Malik Ghallab. Situation recognition: Representation and algorithms. In Proceedings of the Thirteenth International Joint Conference on Artificial Intelligence (IJCAI), pages 166–172, Chambéry, France, 1993. (4 citations pp. 23, 24, 25, et 42) [DGK+00] Patrick Doherty, Gösta Granlund, Krzystof Kuchcinski, Erik Sandewall, Klas Nordberg, Erik Skarman, and Johan Wiklund. The WITAS unmanned aerial vehicle project. In ECAI, pages 747–755, 2000. (cité p. 39) [DKH09a] Patrick Doherty, Jonas Kvarnström, and Fredrik Heintz. A temporal logic-based planning and execution monitoring framework for unmanned aircraft systems. In 6th International Conference on Recent Advances in Intrusion Detection (RAID’03), 2009. (cité p. 39) [DKH09b] Patrick Doherty, Jonas Kvarnström, and Fredrik Heintz. A temporal logic-based planning and execution monitoring framework for unmanned aircraft systems. Autonomous Agents and Multi-Agent Systems, pages 332–377, 2009. (cité p. 39) 201Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements [DL09] Pedro Domingos and Daniel Lowd. Markov logic: An interface layer for artificial intelligence. Synthesis Lectures on Artificial Intelligence and Machine Learning, 3(1):1– 155, 2009. (cité p. 19) [DLM07] Christophe Dousson and Pierre Le Maigat. Chronicle recognition improvement using temporal focusing and hierarchization. In Proceedings of International Joint Conference on Artificial Intelligence (IJCAI), pages 324–329, 2007. (5 citations pp. 9, 23, 25, 26, et 211) [Doj96] Michel Dojat. Realistic model for temporal reasoning in real-time patient monitoring. Applied Artificial Intelligence, 10(2):121–144, 1996. (cité p. 39) [Dou94] Christophe Dousson. Suivi d’évolution et reconnaissance de chroniques. PhD thesis, Université Paul Sabatier de Toulouse, 1994. (2 citations pp. 25 et 211) [Dou96] Christophe Dousson. Alarm driven supervision for telecommunication network: IIOn-line chronicle recognition. Annales des Télécommunications, 9/10(51):493–500, septembre/octobre 1996. (2 citations pp. 24 et 211) [Dou02] Christophe Dousson. Extending and unifying chronicle representation with event counters. In Proceedings of the Fifteenth Eureopean Conference on Artificial Intelligence (ECAI), pages 257–261, 2002. (4 citations pp. 15, 23, 24, et 211) [DRVL95] Luc De Raedt and Wim Van Laer. Inductive constraint logic. In Algorithmic Learning Theory, pages 80–94. Springer, 1995. (cité p. 27) [dSBAR08] Rodrigo de Salvo Braz, Eyal Amir, and Dan Roth. A survey of first-order probabilistic models. In Innovations in Bayesian Networks, pages 289–317. Springer, 2008. (cité p. 35) [EN10] Opher Etzion and Peter Niblett. Event processing in action. Manning Publications Co., 2010. (2 citations pp. 14 et 22) [FAR11] Paul Fodor, Darko Anicic, and Sebastian Rudolph. Results on out-of-order event processing. In Proceedings of the Thirteenth international conference on Practical aspects of declarative languages, pages 220–234. Springer, 2011. (2 citations pp. 22 et 23) [FCD04] Françoise Fessant, Fabrice Clérot, and Christophe Dousson. Mining of an alarm log to improve the discovery of frequent patterns. In Advances in Data Mining, pages 144–152. Springer, 2004. (cité p. 27) [For82] Charles L. Forgy. Rete: A fast algorithm for the many pattern/many object pattern match problem. Artificial intelligence, 19(1):17–37, 1982. (cité p. 37) [FTR+10] Lajos Jenő Fülöp, Gabriella Tóth, Róbert Rácz, János Pánczél, Tamás Gergely, Árpád Beszédes, and Lóránt Farkas. Survey on complex event processing and predictive analytics. Technical report, Université de Szeged, 2010. (cité p. 35) [GA02] Antony Galton and Juan Carlos Augusto. Two approaches to event definition. In Database and Expert Systems Applications, pages 547–556. Springer, 2002. (2 citations pp. 37 et 38) 202BIBLIOGRAPHIE [GD94a] Stella Gatziu and Klaus R. Dittrich. Detecting composite events in active database systems using Petri nets. In Proceedings of the 4th IEEE International Workshop on Research Issues in Data Engineering, 1994. (cité p. 35) [GD94b] Stella Gatziu and Klaus R. Dittrich. Events in an active object-oriented database system. Springer, 1994. (cité p. 35) [Gha96] Malik Ghallab. On chronicles: Representation, on-line recognition and learning. In KR, pages 597–606, 1996. (cité p. 23) [GL94] Malik Ghallab and Hervé Laruelle. Representation and control in IxTeT, a temporal planner. In AIPS, volume 1994, pages 61–67, 1994. (cité p. 26) [Hei01] Fredrik Heintz. Chronicle recognition in the WITAS UAV project, a preliminary report. In Swedish AI Society Workshop (SAIS2001), 2001. (cité p. 39) [Hen11] Christophe Henry. "MSM library of boost". www.boost.org/doc/libs/1_48_0/ libs/msm/doc/HTML/index.html, 2011. (cité p. 180) [HJS91] Peter Huber, Kurt Jensen, and Robert Shapiro. Hierarchies in coloured Petri nets. Advances in Petri Nets 1990, pages 313–341, 1991. (cité p. 74) [HN03] Somboon Hongeng and Ramakant Nevatia. Large-scale event detection using semihidden Markov models. In Proceedings of the Ninth IEEE International Conference on Computer Vision, pages 1455–1462, 2003. (cité p. 35) [Hou11] House of Representatives, 12th Congress, 1st Session. FAA reauthorization and reform act of 2011, 11 février 2011. (cité p. 172) [JK09] Kurt Jensen and Lars M. Kristensen. Coloured Petri Nets: Modelling and Validation of Concurrent Systems. Springer Verlag Monograph, 2009. (cité p. 72) [KDDR+11] Angelika Kimmig, Bart Demoen, Luc De Raedt, Vitor Santos Costa, and Ricardo Rocha. On the implementation of the probabilistic logic programming language problog. Theory and Practice of Logic Programming, 11(2-3):235–262, 2011. (cité p. 19) [KDRR06] Kristian Kersting, Luc De Raedt, and Tapani Raiko. Logical hidden Markov models. Journal of Artificial Intelligence Research, 25(1):425–456, 2006. (cité p. 35) [Kha97] Wael Khansa. Réseaux de Petri p-temporels: contribution à l’étude des systèmes à évènements discrets. PhD thesis, Université de Savoie, 1997. (cité p. 28) [KM87] Krishna Kumar and Amitabha Mukerjee. Temporal event conceptualization. In Proceedings of the Tenth International Joint Conference on Artificial Intelligence (IJCAI), 1987. (cité p. 35) [KS86] Robert Kowalski and Marek Sergot. A logic-based calculus of events. New Generation Computing, 4(1):67–95, 1986. (cité p. 16) [KVNA11] Pekka Kaarela, Mika Varjola, Lucas PJJ Noldus, and Alexander Artikis. Pronto: support for real-time decision making. In Proceedings of the Fifth ACM International Conference on Distributed Event-Based System, pages 11–14. ACM, 2011. (cité p. 39) [Lan09] Thibault Lang. IDEAS–T1.1: Architecture de système de drone et scénarios de missions. Technical report, ONERA, 2009. (3 citations pp. 173, 174, et 212) 203Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements [LGCR+08] Xavier Le Guillou, Marie-Odile Cordier, Sophie Robin, Laurence Rozé, et al. Chronicles for on-line diagnosis of distributed systems. In Proceedings of European Conference on Artificial Intelligence (ECAI), pages 194–198, 2008. (cité p. 39) [LSA+11] David Luckham, Roy Schulte, Jeff Adkins, Pedro Bizarro, H-Arno Jacobsen, Albert Mavashev, Brenda M Michelson, and Peter Niblett. Event processing glossary-version 2.0. Event Processing Technical Society, 2011. (cité p. 14) [Luc02] David Luckham. The Power of Events, volume 204. Addison-Wesley Reading, 2002. (cité p. 14) [MCCDB10] Anis M’halla, Étienne Craye, Simon Collart Dutilleul, and Mohamed Benrejeb. Monitoring of a milk manufacturing workshop using chronicle and fault tree approaches. Studies in Informatics and Control, 19(4):377–390, 2010. (cité p. 39) [McD82] Drew McDermott. A temporal logic for reasoning about processes and plans. Cognitive science, 6(2):101–155, 1982. (pas de citation) [MD03] Benjamin Morin and Hervé Debar. Correlation on intrusion: an application of chronicles. In 6th International Conference on Recent Advances in Intrusion Detection (RAID’03), pages 94–112. Springer, 2003. (cité p. 39) [MDR94] Stephen Muggleton and Luc De Raedt. Inductive logic programming: Theory and methods. The Journal of Logic Programming, 19:629–679, 1994. (cité p. 27) [MH68] John McCarthy and Patrick Hayes. Some philosophical problems from the standpoint of artificial intelligence. Stanford University, 1968. (pas de citation) [MNG+94] Robert Milne, Charles Jarvis Nicol, Malik Ghallab, Louise Travé-Massuyès, Kouamana Bousson, Christophe Dousson, Joseba Quevedo, Jose Aguilar, and Antoni Guasch. TIGER: real-time situation assessment of dynamic systems. Intelligent Systems Engineering, 3(3):103–124, 1994. (cité p. 39) [MS99] Rob Miller and Murray Shanahan. The event calculus in classical logic–alternative axiomatizations. Electronic Transactions on Artificial Intelligence (http://www. etaij. org), 4, 1999. (cité p. 17) [MSS96] Masoud Mansouri-Samani and Morris Sloman. A configurable event service for distributed systems. In Proceedings of the 3rd IEEE International Conference on Confi- gurable Distributed Systems, pages 210–217, 1996. (cité p. 36) [MSS97] Masoud Mansouri-Samani and Morris Sloman. Gem: A generalized event monitoring language for distributed systems. Distributed Systems Engineering, 4(2):96, 1997. (cité p. 36) [OC94a] Manuel Ornato and Patrice Carle. Reconnaissance d’intentions sans reconnaissance de plan. In 2es Journées Francophones d’Intelligence Artificielle Distribuée et Systèmes Multi-Agents, 1994. (cité p. 29) [OC94b] Manuel Ornato and Patrice Carle. Une alternative à l’abduction pour la reconnaissance de plan. In Secondes Rencontres des Jeunes Chercheurs en Intelligence Artificielle, 1994. (cité p. 29) 204BIBLIOGRAPHIE [PAMP12] Jens Pottebaum, Alexander Artikis, Robin Marterer, and George Paliouras. Useroriented evaluation of event-based decision support systems. In IEEE 24th International Conference on Tools with Artificial Intelligence (ICTAI), volume 1, pages 162–169. IEEE, 2012. (cité p. 19) [PB08] Adrian Paschke and Martin Bichler. Knowledge representation concepts for automated sla management. Decision Support Systems, 46(1):187–205, 2008. (cité p. 17) [PBC+] Ariane Piel, Jean Bourrely, Patrice Carle, Christine Choppy, and Romain Kervarc. Complex behaviour recognition by online analysis of rich event flows (to be submitted). (5 citations pp. 11, 42, 166, 193, et 194) [PKB07] Adrian Paschke, Alexander Kozlenkov, and Harold Boley. A homogeneous reaction rule language for complex event processing. In Workshop on Event driven Architecture, Processing and Systems, 2007. (cité p. 17) [Por05] François Portet. Pilotage d’algorithmes pour la reconnaissance en ligne d’arythmies cardiaques. PhD thesis, Université Rennes 1, 2005. (cité p. 39) [PS09] Yannick Pencolé and Audine Subias. A chronicle-based diagnosability approach for discrete timed-event systems: application to web-services. Journal of Universal Computer Science, 15(17):3246–3272, 2009. (cité p. 39) [QCC+10] René Quiniou, Lucie Callens, Guy Carrault, Marie-Odile Cordier, Elisa Fromont, Philippe Mabo, and François Portet. Intelligent adaptive monitoring for cardiac surveillance. In Computational Intelligence in Healthcare 4, pages 329–346. Springer, 2010. (cité p. 39) [QCCW01] René Quiniou, Marie-Odile Cordier, Guy Carrault, and Feng Wang. Application of ILP to cardiac arrhythmia characterization for chronicle recognition. In Proceedings of the Eleventh International Conference on Inductive Logic Programming, pages 220–227. Springer, 2001. (cité p. 27) [RWL+03] Anne Vinter Ratzer, Lisa Wells, Henry Michael Lassen, Mads Laursen, Jacob Frank Qvortrup, Martin Stig Stissing, Michael Westergaard, Søren Christensen, and Kurt Jensen. CPN tools for editing, simulating, and analysing coloured Petri nets. In Applications and Theory of Petri Nets 2003, pages 450–462. Springer, 2003. (cité p. 73) [SA11] Nenad Stojanovic and Alexander Artikis. On complex event processing for real-time situational awareness. In 5th International Conference on Rule-Based Reasoning, Programming, and Applications, pages 114–121. Springer, 2011. (cité p. 39) [SAFP14] Anastasios Skarlatidis, Alexander Artikis, Jason Filippou, and Georgios Paliouras. A probabilistic logic programming event calculus. Journal of Theory and Practice of Logic Programming (TPLP), 2014. (2 citations pp. 19 et 20) [SEC+10] Audine Subias, Ernesto Exposito, Christophe Chassot, Louise Travé-Massuyès, and Khalil Drira. Self-adapting strategies guided by diagnosis and situation assessment in collaborative communicating systems. In 21st International Workshop on Principles of Diagnosis (DX 10), pages 329–336, 2010. (cité p. 39) 205Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements [SPVA11] Anastasios Skarlatidis, Georgios Paliouras, George A Vouros, and Alexander Artikis. Probabilistic event calculus based on Markov logic networks. In 5th International Conference on Rule-Based Modeling and Computing on the Semantic Web, pages 155–170. Springer, 2011. (2 citations pp. 9 et 19) [TD08] Son D. Tran and Larry S. Davis. Event modeling and recognition using Markov logic networks. In Computer Vision–ECCV 2008, pages 610–623. Springer, 2008. (cité p. 35) [UML11] OMG Unified Modeling LanguageTM (OMG UML), Superstructure, version 2.4.1, 2011. (cité p. 173) [VL10] Mika Varjola and Jobst Loffler. Pronto: Event recognition for public transport. In Proceedings of the Seventeenth ITS World Congress, 2010. (cité p. 39) [WBG08] Karen Walzer, Tino Breddin, and Matthias Groch. Relative temporal constraints in the Rete algorithm for complex event detection. In Proceedings of the Second International Conference on Distributed Event-Based Systems (DEBS), pages 147– 155. ACM, 2008. (cité p. 37) [WGB08] Karen Walzer, Matthias Groch, and Tino Breddin. Time to the rescue - supporting temporal reasoning in the Rete algorithm for complex event processing. In Database and Expert Systems Applications, pages 635–642. Springer, 2008. (cité p. 37) 206Annexe A Démonstrations de propriétés du langage des chroniques A.0.1 Associativité Propriété 8. La disjonction, la conjonction, la séquence, meets et equals sont associatifs. Démonstration. Soit C1, C2, C3 ∈ X(N). Soit ϕ un flot d’évènements et d un réel. FC1| |(C2| |C3)(ϕ, d) = FC1 (ϕ, d) ∪ FC2| |C3 (ϕ, d) = FC1 (ϕ, d) ∪ (FC2 (ϕ, d) ∪ FC3 (ϕ, d)) = (FC1 (ϕ, d) ∪ FC2 (ϕ, d)) ∪ FC3 (ϕ, d) = F(C1| |C2)| |C3 (ϕ, d) L’associativité de la disjonction découle donc de l’associativité de l’union ensembliste. FC1&(C2&C3)(ϕ, d) = {F(r1) ∪ F(r2) : r1 ∈ RC1 (ϕ, d) ∧ r2 ∈ RC2&C3 (ϕ, d)} = {F(r1) ∪ (F(r2a) ∪ F(r2b )) : r1 ∈ RC1 (ϕ, d) ∧ r2a ∈ RC2 (ϕ, d) ∧ r2b ∈ RC3 (ϕ, d)} = {(F(r1) ∪ F(r2a)) ∪ F(r2b ) : r1 ∈ RC1 (ϕ, d) ∧ r2a ∈ RC2 (ϕ, d) ∧ r2b ∈ RC3 (ϕ, d)} = {F(r) ∪ F(r2b ) : r ∈ RC1&C2 (ϕ, d) ∧ r2b ∈ RC3 (ϕ, d)} = F(C1&C2)&C3 (ϕ, d) L’associativité de la conjonction découle donc aussi de l’associativité de l’union ensembliste. 207Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements FC1 (C2 C3)(ϕ, d) = {F(r1) ∪ F(r2) : r1 ∈ RC1 (ϕ, d) ∧ r2 ∈ RC2 C3 (ϕ, d) ∧ Tmax(r1) < Tmin(r2)} = {F(r1) ∪ (F(r2a) ∪ F(r2b )) : r1 ∈ RC1 (ϕ, d) ∧ r2a ∈ RC2 (ϕ, d) ∧ r2b ∈ RC3 (ϕ, d) ∧ Tmax(r1) < Tmin(r2a) ∧ Tmax(r2a) < Tmin(r2b )} = {(F(r1) ∪ F(r2a)) ∪ F(r2b ) : r1 ∈ RC1 (ϕ, d) ∧ r2a ∈ RC2 (ϕ, d) ∧ r2b ∈ RC3 (ϕ, d) ∧ Tmax(r1) < Tmin(r2a) ∧ Tmax(r2a) < Tmin(r2b )} = {F(r) ∪ F(r2b ) : r ∈ RC1 C2 (ϕ, d) ∧ r2b ∈ RC3 (ϕ, d) ∧ Tmax(r) < Tmin(r2b )} = F(C1 C2) C3 (ϕ, d) L’associativité de la séquence découle donc de l’associativité de l’union ensembliste. FC1 meets (C2 meets C3)(ϕ, d) = {F(r1) ∪ F(r 0 2 ) : r1 ∈ RC1 (ϕ, d) ∧ r 0 2 ∈ RC2 meets C3 (ϕ, d) ∧ Tmax(r1) = Tmin(r 0 2 )} = {F(r1) ∪ F(r2) ∪ F(r3) : r1 ∈ RC1 (ϕ, d) ∧ r2 ∈ RC2 (ϕ, d) ∧ r3 ∈ RC3 (ϕ, d) ∧ Tmax(r1) = Tmin(r2 ∪ r3) ∧ Tmax(r2) = Tmin(r3)} = {F(r1) ∪ F(r2) ∪ F(r3) : r1 ∈ RC1 (ϕ, d) ∧ r2 ∈ RC2 (ϕ, d) ∧ r3 ∈ RC3 (ϕ, d) ∧ Tmax(r1) = Tmin(r2) ∧ Tmax(r2) = Tmin(r3)} = {F(r 0 1 ) ∪ F(r3) : r 0 1 ∈ RC1 meets C2 (ϕ, d) ∧ r3 ∈ RC3 (ϕ, d) ∧ Tmax(r 0 1 ) = Tmin(r3)} = F(C1 meets C2) meets C3 (ϕ, d) « meets » est donc associatif. FC1 equals (C2 equals C3)(ϕ, d) = {F(r1) ∪ F(r 0 2 ) : r1 ∈ RC1 (ϕ, d) ∧ r 0 2 ∈ RC2 equals C3 (ϕ, d) ∧ Tmin(r1) = Tmin(r 0 2 ) ∧ Tmax(r1) = Tmax(r 0 2 )} = {F(r1) ∪ F(r2) ∪ F(r3) : r1 ∈ RC1 (ϕ, d) ∧ r2 ∈ RC2 (ϕ, d) ∧ r3 ∈ RC3 (ϕ, d) ∧ Tmin(r1) = Tmin(r2 ∪ r3) ∧ Tmax(r1) = Tmax(r1 ∪ r3) ∧ Tmin(r2) = Tmin(r3) ∧ Tmax(r2) = Tmax(r3)} = {F(r1) ∪ F(r2) ∪ F(r3) : r1 ∈ RC1 (ϕ, d) ∧ r2 ∈ RC2 (ϕ, d) ∧ r3 ∈ RC3 (ϕ, d) ∧ Tmin(r1) = Tmin(r2) = Tmin(r3) ∧ Tmax(r1) = Tmax(r2) = Tmax(r3)} = {F(r 0 1 ) ∪ F(r3) : r 0 1 ∈ RC1 equals C2 (ϕ, d) ∧ r3 ∈ RC3 (ϕ, d) ∧ Tmin(r 0 1 ) = Tmin(r3) ∧ Tmax(r 0 1 ) = Tmax(r3)} = F(C1 equals C2) equals C3 (ϕ, d) « equals » est donc associatif. 208ANNEXE A. DÉMONSTRATIONS DE PROPRIÉTÉS DU LANGAGE DES CHRONIQUES A.0.2 Commutativité Propriété 9. La disjonction, la conjonction et equals sont commutatifs. Démonstration. Soit C1, C2 ∈ X(N). Soit ϕ un flot d’évènements et d un réel. FC1| |C2 (ϕ, d) = FC1 (ϕ, d) ∪ FC2 (ϕ, d) = FC2 (ϕ, d) ∪ FC1 (ϕ, d) = FC2| |C1 (ϕ, d) FC1&C2 (ϕ, d) = {F(r1) ∪ F(r2) : r1 ∈ RC1 (ϕ, d) ∧ r2 ∈ RC2 (ϕ, d)} = {F(r2) ∪ F(r1) : r1 ∈ RC1 (ϕ, d) ∧ r2 ∈ RC2 (ϕ, d)} = FC2&C1 (ϕ, d) La commutativité de la disjonction et de la conjonction découle donc de la commutativité de l’union ensembliste. FC1 equals C2 (ϕ, d) = {F(r1) ∪ F(r2) : r1 ∈ RC1 (ϕ, d) ∧ r2 ∈ RC2 (ϕ, d) ∧ Tmin(r1) = Tmin(r2) ∧ Tmax(r1) = Tmax(r2)} = {F(r2) ∪ F(r1) : r2 ∈ RC2 (ϕ, d) ∧ r1 ∈ RC1 (ϕ, d) ∧ Tmin(r2) = Tmin(r1) ∧ Tmax(r2) = Tmax(r1)}} = FC2 equals C1 (ϕ, d) A.0.3 Distributivité Propriété 10. Tous les opérateurs sont distributifs sur la disjonction. Démonstration. Soit C0, C1, C2 ∈ X(N). Soit ϕ un flot d’évènements et d un réel. — La conjonction est distributive sur la disjonction : FC0&(C1| |C2)(ϕ, d) = {F(r0) ∪ F(r1) : r0 ∈ RC0 (ϕ, d) ∧ r1 ∈ RC1| |C2 (ϕ, d)} = {F(r0) ∪ F(r1) : r0 ∈ RC0 (ϕ, d) ∧ r1 ∈ RC1 (ϕ, d) ∪ RC2 (ϕ, d)} = {F(r0) ∪ F(r1) : r0 ∈ RC0 (ϕ, d) ∧ r1 ∈ RC1 (ϕ, d)} ∪{F(r0) ∪ F(r1) : r0 ∈ RC0 (ϕ, d) ∧ r1 ∈ RC2 (ϕ, d)} = FC0&C1 (ϕ, d) ∪ FC0&C2 (ϕ, d) = F(C0&C1)| |(C0&C2)(ϕ, d) — La séquence est distributive sur la disjonction : FC0 (C1| |C2)(ϕ, d) = {F(r0) ∪ F(r1) : r0 ∈ RC0 (ϕ, d) ∧ r1 ∈ RC1| |C2 (ϕ, d) ∧ Tmax(r0) < Tmin(r1)} = {F(r0) ∪ F(r1) : r0 ∈ RC0 (ϕ, d) ∧ r1 ∈ RC1 (ϕ, d) ∪ RC2 (ϕ, d) ∧ Tmax(r0) < Tmin(r1)} = {F(r0) ∪ F(r1) : r0 ∈ RC0 (ϕ, d) ∧ r1 ∈ RC1 (ϕ, d) ∧ Tmax(r0) < Tmin(r1)} ∪{F(r0) ∪ F(r1) : r0 ∈ RC0 (ϕ, d) ∧ r1 ∈ RC2 (ϕ, d) ∧ Tmax(r0) < Tmin(r1)} = FC0 C1 (ϕ, d) ∪ FC0 C2 (ϕ, d) = F(C0 C1)| |(C0 C2)(ϕ, d) 209Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements — Notons ~ un opérateur quelconque des opérateurs meets, overlaps, starts, during, finishes et equals. Remarquons que l’on a alors : FC1~C2 (ϕ, d) = {F(r1) ∪ F(r2) : r1 ∈ RC1 (ϕ, d) ∧ r2 ∈ RC2 (ϕ, d) ∧ P~(r1, r2, ϕ, d)}, où P~ est une propriété dépendant de ~ et exprimant des contraintes temporelles. Alors, si C2 = C3 || C4 : FC1~(C3||C4)(ϕ, d) = {F(r1) ∪ F(r2) : r1 ∈ RC1 (ϕ, d) ∧ r2 ∈ RC3 (ϕ, d) ∪ RC4 (ϕ, d) ∧ P~(r1, r2, ϕ, d)} = {F(r1) ∪ F(r2) : r1 ∈ RC1 (ϕ, d) ∧ r2 ∈ RC3 (ϕ, d) ∧ P~(r1, r2, ϕ, d)} ∪{F(r1) ∪ F(r2) : r1 ∈ RC1 (ϕ, d) ∧ r2 ∈ RC4 (ϕ, d) ∧ P~(r1, r2, ϕ, d)} = FC1~C3 (ϕ, d) ∪ FC1~C4 (ϕ, d) = F(C1~C3)||(C1~C4)(ϕ, d) ~ est donc distributif sur la disjonction. 210Table des figures et des tableaux 1.1 Principaux prédicats de l’Event Calculus (EC) . . . . . . . . . . . . . . . . . . . . . 18 1.2 Principales constructions du langage Event-driven Transaction Logic Inference System (ETALIS) [AFR+10] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 1.3 Principaux prédicats et notations des chroniques [Dou96, Dou02] . . . . . . . . . . 24 1.4 Le système de reconnaissance de chroniques [Dou94] . . . . . . . . . . . . . . . . . 25 1.5 Architecture du système de reconnaissance avec focalisation temporelle [DLM07] . 26 2.1 Récapitulatif informel des constructions et propriétés du langage des chroniques . . 67 3.1 Un réseau sur CPN Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 3.2 Arcs inhibiteurs sur CPN Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 3.3 Fonctions utilisées dans nos réseaux . . . . . . . . . . . . . . . . . . . . . . . . . . 78 3.4 Structure des réseaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 3.5 Compteur d’évènements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 3.6 Opérateur AND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 3.7 Opérateur ABS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 3.8 Réseau correspondant à la chronique A . . . . . . . . . . . . . . . . . . . . . . . . . 83 3.9 Réseau correspondant à la chronique A B . . . . . . . . . . . . . . . . . . . . . . . 84 3.10 Réseau correspondant à la chronique A || B . . . . . . . . . . . . . . . . . . . . . . 86 3.11 Réseau correspondant à la chronique A&B . . . . . . . . . . . . . . . . . . . . . . 87 3.12 Réseau correspondant à la chronique (A B) − [C[ . . . . . . . . . . . . . . . . . . . 88 3.13 Réseau correspondant à la chronique A . . . . . . . . . . . . . . . . . . . . . . . . . 90 3.14 Réseau correspondant à la chronique A B . . . . . . . . . . . . . . . . . . . . . . . 92 3.15 Réseau correspondant à la chronique A || B . . . . . . . . . . . . . . . . . . . . . . 94 3.16 Réseau correspondant à la chronique A&B . . . . . . . . . . . . . . . . . . . . . . 96 3.17 Réseau correspondant à la chronique (A B) − [C[ . . . . . . . . . . . . . . . . . . . 99 3.18 Réseau correspondant à la chronique ( ((A B) − [C[) E ) − [D[ . . . . . . . . . . . . 103 3.19 Réseau correspondant à la chronique D ((A B) − [C[) . . . . . . . . . . . . . . . . 105 4.1 Description des fonctions utilisées dans nos réseaux . . . . . . . . . . . . . . . . . . 120 4.2 Structure des réseaux multi-jetons . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 4.3 Compteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 211Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements 4.4 Opérateur OR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 4.5 Opérateur AND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 4.6 Opérateur ABS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 4.7 Réseau correspondant à la chronique A . . . . . . . . . . . . . . . . . . . . . . . . . 126 4.8 Réseau correspondant à la chronique A B . . . . . . . . . . . . . . . . . . . . . . . 127 4.9 Réseau correspondant à la chronique A || B . . . . . . . . . . . . . . . . . . . . . . 128 4.10 Réseau correspondant à la chronique A&B . . . . . . . . . . . . . . . . . . . . . . 130 4.11 Réseau correspondant à la chronique (A B) − [D[ . . . . . . . . . . . . . . . . . . . 132 4.12 Description des fonctions utilisées dans nos réseaux . . . . . . . . . . . . . . . . . . 136 4.13 Structure globale des réseaux contrôlés . . . . . . . . . . . . . . . . . . . . . . . . . 137 4.14 Compteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 4.15 Opérateur OR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 4.16 Opérateur AND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 4.17 Opérateur ABS de l’absence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 4.18 Le réseau séparateur de jetons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 4.19 Réseau reconnaissant la chronique A . . . . . . . . . . . . . . . . . . . . . . . . . . 147 4.20 Structure globale du réseau reconnaissant la chronique A . . . . . . . . . . . . . . . 147 4.21 Structure générale du réseau reconnaissant la chronique A B . . . . . . . . . . . . 149 4.22 Structure générale du réseau reconnaissant A || (B A). . . . . . . . . . . . . . . . . 151 4.23 Structure générale du réseau reconnaissant A&B . . . . . . . . . . . . . . . . . . . 154 4.24 Structure générale du réseau reconnaissant (A B) − [D[ . . . . . . . . . . . . . . . 156 4.25 Structure générale du réseau reconnaissant ((A B) − [D[ E) − [F[ . . . . . . . . . . 157 4.26 Graphe d’espace d’états du réseau N(A || (B A)) sur le flux ((b, 1),(a, 2),(a, 3)) . . 161 4.27 Récapitulatif des caractéristiques des trois modèles de reconnaissance construits . . 162 5.1 Évolution des ensembles de reconnaissance pour la chronique (E || F)&G sur le flux d’évènements ϕ = (e, h, g, f). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 5.2 Exemple des modes de communication entre l’ATC, l’UA et la RPS (Pilot) . . . . . 172 5.3 Scénario de panne de télécommande [Lan09] . . . . . . . . . . . . . . . . . . . . . . 174 5.4 Diagramme de classes du système . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 5.5 Diagramme états-transitions de la perte de télécommande et de radio . . . . . . . 177 5.6 Récapitulatif des états du diagramme UML de la Figure 5.5 . . . . . . . . . . . . . 179 5.7 Vue d’ensemble aérienne de la trajectoire de l’UAS étudié . . . . . . . . . . . . . . . 186 5.8 Représentation schématique des différentes zones traversées par l’UAS . . . . . . . . 186 5.9 Quelques chroniques écrites pour surveiller les procédures de sécurité . . . . . . . . 188 212Table des symboles α Fonction d’extraction d’attributs d’un flux d’évènements . . . . . . . . . . . . . . . 42 ♦ Nom des propriétés anonymes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 ≡ Relation d’équivalence entre les chroniques . . . . . . . . . . . . . . . . . . . . . . . 57 Pˆ Interprétation du prédicat P dans le P × V-modèle M . . . . . . . . . . . . . . . . 53 A(E) Ensemble des arbres de reconnaissance sur l’ensemble d’évènements E . . . . . . . . 52 Ce(·) Contexte d’évaluation (Ce : X → P) . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Cr(·) Contexte résultant (Ce : X → P) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 D Fonction de nommage anonyme (D : Ae(P, V) → Ar(P, V)) . . . . . . . . . . . . . . 43 F(r) Ensemble des feuilles d’un arbre de reconnaissance r . . . . . . . . . . . . . . . . . . 52 R Fonction de renommage d’attributs (R : Ar(P, V) × P → Ar(P, V)) . . . . . . . . . 44 V Ensemble de valeurs de propriétés . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Ae(P, V) Ensemble d’ensembles d’attributs d’évènement sur P × V . . . . . . . . . . . . . . . 42 Ar(P, V) Ensemble des ensembles d’attributs de reconnaissance . . . . . . . . . . . . . . . . . 43 E Ensemble des évènements (datés) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 FC (ϕ, d) Ensemble des ensembles de feuilles de reconnaissance de la chronique C sur le flux ϕ et jusqu’à l’instante d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 N Ensemble dénombrable de noms d’évènement . . . . . . . . . . . . . . . . . . . . . . 41 P Ensemble dénombrable de noms de propriété . . . . . . . . . . . . . . . . . . . . . . 41 S Ensemble de symboles de prédicats . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 T(P, V) Ensemble des fonctions de transformation d’attributs sur (P, V) . . . . . . . . . . . 43 X Ensemble des chroniques sur (N, P, V, S) . . . . . . . . . . . . . . . . . . . . . . . . 47 ρ Fonction de référence donnant le nom d’une propriété . . . . . . . . . . . . . . . . . 42 τ Nom consacré aux évènements d’instants temporels purs . . . . . . . . . . . . . . . 41 213Reconnaissance de comportements complexes par traitement en ligne de flux d’évènements θ Fonction de datation donnant la date d’occurrence d’un évènement de E . . . . . . 42 ϕ Flux d’évènements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 f Transformation d’attributs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 P Symbole de prédicat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 RC (ϕ, d) Ensemble des reconnaissances de C sur le flux d’évènements ϕ et jusqu’à la date d . 53 TC (ϕ, d) Instant après d jusqu’auquel l’ensemble des reconnaissances de la chronique C sur le flux ϕ n’évoluera pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Tmax(r) Dernier instant auquel se produit un évènement participant à la reconnaissance r . 52 Tmin(r) Premier instant auquel se produit un évènement participant à la reconnaissance r . 52 Xr Ensemble d’attributs associé à la reconnaissance r. . . . . . . . . . . . . . . . . . . . 53 X∗ r Xr \ X♦ r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 X♦ r {(♦, v) ∈ Xr : v ∈ Ae(P, V)} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 214Acronymes ATC Air Traffic Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 BLADE Battle Lab for Aerospace and Defence Experimentations. . . . . . . . . . . . . . . . . . . . . . . .185 CEC Cached Event Calculus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 CEP Complex Event Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 CRL Chronicle Recognition Library. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166 CRS Chronicle Recognition System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 CRS/Onera Chronicle Recognition System/Onera. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165 DSMS Système de Gestion de Flux de Données – Data Stream Management System . . . . 16 EC Event Calculus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 ECA Event-Condition-Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 EDBC Event-Driven Backward Chaining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 EP-IRM Event Processing for Intelligent Ressource Management. . . . . . . . . . . . . . . . . . . . . . . . . .19 ETALIS Event-driven Transaction Logic Inference System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 FACE Frequency Analyser for Chronicle Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 GEM Generalised Event Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 IDEAS Insertion des Drones dans l’Espace Aérien et Sécurité. . . . . . . . . . . . . . . . . . . . . . . . . . .171 ICL Inductive Constraint Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 IFP Information Flow Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 ILP Inductive Logic Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 MCPN Modular Coloured Petri Net. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 RPS Remote Pilot Station. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .172 RTEC Event Calculus for Run-Time reasoning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 SAMOS Swiss Active Mechanism based Object-oriented database Systems. . . . . . . . . . . . . . . . 35 S-PN SAMOS Petri nets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35 TC Telecommand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 TM Telemetry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 UA Unmanned Aircraft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 UAS Unmanned Aircraft System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 UML Unified Modeling Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 215Résumé en français L’analyse de flux d’évènements pour reconnaître des comportements complexes prédéfinis (Complex Event Processing – CEP) permet d’interpréter et de réagir à des quantités importantes de données ne pouvant être appréhendées telles quelles. Dans cette thèse, nous fournissons le cadre théorique général d’un CEP en adoptant une approche purement formelle qui assure une possibilité de vérification et d’analyse du processus de reconnaissance. Nous définissons un langage, le langage des chroniques, permettant de décrire les comportements complexes à reconnaître. Nous formalisons la notion de reconnaissance de chronique à l’aide d’une sémantique ensembliste fondée sur une représentation arborescente des reconnaissances. Dans une visée applicative, nous développons ensuite deux modèles du processus de reconnaissance. Le premier est réalisé avec le formalisme des réseaux de Petri colorés et permet de valider les principes de reconnaissance en faisant notamment ressortir les problèmes de concurrence et de modularité. Le second implémente directement le formalisme mathématique sous la forme d’une bibliothèque C++ appelée Chronicle Recognition Library (CRL) et disponible en open source. Nous tirons parti de cette implémentation pour traiter deux cas d’applications liés à l’insertion des drones dans l’espace aérien. La première vise à surveiller la cohérence d’un système de drones insérés dans le trafic aérien, en cas de pannes de liens de communication. Notre application permet d’une part de vérifier la cohérence des procédures actuellement mises en place en cas de pannes ; et d’autre part de compléter ces procédures par des alarmes dans les situations inévitables causées par des erreurs humaines. La seconde application surveille le bon respect des procédures de sécurité d’un drone partant en mission et traversant diverses zones, contrôlées ou non, de l’espace aérien. Titre en anglais Online Event Flow Processing for Complex Behaviour Recognition Résumé en anglais Recognising complex predefined behaviours by the analysis of event flows (Complex Event Processing – CEP) allows to interpret and react to large quantities of data which one would not be able to apprehend alone. In this Ph.D. thesis, we provide a general theoretical framework for CEP through a purely formal approach ensuring the possibility to check and analyse the recognition process. We define a language, the chronicle language, allowing the description of the complex behaviours to be recognised. We formalise the notion of chronicle recognition through a set semantics based on an arborescent representation of recognitions. In order to use this framework, we then develop two models of the recognition process. The first relies on coloured Petri nets and allows the validation of recognition principles including concurrency and modularity issues. The second model directly implements the mathematical formalism in a C++ library, Chronicle Recognition Library (CRL), which is available in open source. We use this implementation to fulfil two applications linked to the insertion of unmanned aircrafts in controlled airspace. The first application oversees the consistency of an unmanned aircraft system inside air traffic in case of communication link breakdowns. This application allows, on the one hand, to check the consistency of the procedures currently followed in case of failures ; and, on the other hand, to complete these procedures with alarms in case of unavoidable situations caused by human errors. The second application oversees that the security procedures of an unmanned aircraft flying through controlled or uncontrolled airspace are correctly followed. Discipline Informatique Mots-clés traitement d’évènements complexes ; reconnaissance de comportements ; logique temporelle ; modèle modulaire en réseaux de Petri colorés ; bibliothèque de reconnaissance de chroniques ; application aérospatiale ; drones. Université de POITIERS Faculté de Médecine et de Pharmacie ANNÉE 2014 Thèse n° THÈSE POUR LE DIPLOME D’ÉTAT DE DOCTEUR EN PHARMACIE (arrêté du 17 juillet 1987) présentée et soutenue publiquement le 20 Octobre 2014 à POITIERS par Monsieur Charles BRISSET (né le 22 Octobre 1984) Composition du jury : Président : Monsieur le Professeur François SEGUIN Directrice de thèse : Madame Delphine BON, Maître de Conférences Membres : Monsieur Lydwin HOUNKANLIN, Pharmacien d'officine ; Monsieur Pierre ORLIAC, Pharmacien d'officine ; Monsieur François ELIE, agrégé de Philosophie Les logiciels de gestion d'officine: fonctionnalités et acteursI) Sommaire Sommaire I) Sommaire.................................................................................................................................2 I.A.1. Index des tableaux...................................................................................................4 II) Introduction............................................................................................................................9 III) Les composants des logiciels de gestion d'officine ...........................................................10 III.A \Fonctionnalités obligatoires........................................................................................10 III.A.1. Par convention : SESAM-Vitale, ADELI, NOEMIE, Tiers-payant....................10 III.A.1.a. La Carte Vitale et la Carte de Professionnel de Santé................................10 III.A.1.a.1. Les lecteurs.........................................................................................11 III.A.1.a.2. Les flux...............................................................................................12 III.A.1.a.3. SCOR..................................................................................................13 III.A.2. Le Dossier Pharmaceutique : obligatoire par la loi.............................................13 III.A.3. L'ordonnancier....................................................................................................14 III.A.4. La base de données des médicaments et des produits de santé..........................15 III.B \Fonctionnalités indispensables...................................................................................17 III.B.1. La gestion de stock..............................................................................................17 III.B.1.a. PharmaML..................................................................................................17 III.B.1.b. Les codes barres : CIP 13, ACL, EAN, vignette et Datamatrix.................18 III.B.2. Gestion des fiches des patients et des praticiens.................................................19 III.B.3. Comptabilité........................................................................................................19 III.B.4. Gestion des droits de l'équipe officinale.............................................................19 III.B.5. Questionnement de validité de l'ayant-droit.......................................................20 III.C \Fonctionnalités optionnelles.......................................................................................21 III.C.1. Opinion pharmaceutique.....................................................................................21 III.C.2. Achat par groupement.........................................................................................21 III.C.3. Gestion des collectivités......................................................................................21 III.C.4. Télétravail...........................................................................................................21 III.C.5. SMS.....................................................................................................................22 III.C.6. Gestion du robot/automate de stockage .............................................................22 III.C.7. Fidélisation..........................................................................................................22 III.C.8. Gestion du matériel de location..........................................................................22 III.C.9. Gestion des emplois du temps de l'équipe officinale..........................................22 III.C.10. Gestion de la caisse...........................................................................................23 III.C.11. Préparation des doses à administrer..................................................................23 III.C.12. Comparateur de prix..........................................................................................23 III.C.13. Gestion des sauvegardes sur un serveur distant................................................23 III.C.14. Étiquettes électroniques....................................................................................24 III.C.15. Gestion des terminaux de paiement électronique (TPE)...................................24 III.C.16. Fiche conseil ....................................................................................................25 III.C.17. Suggestion de vente ou suggestion de conseils.................................................25 III.C.18. Pharmacovigilance............................................................................................25 III.C.19. Messagerie sécurisée de santé...........................................................................25 III.C.20. Écran Tactile......................................................................................................26 III.C.21. Entretien pharmaceutique.................................................................................26 III.C.22. Management de l'équipe...................................................................................26 III.C.23. Étiquette de posologie.......................................................................................26 Page 2/112III.C.24. Contrôle de la température du frigo via une sonde...........................................26 III.D \Services complémentaires externes aux LGO............................................................27 III.D.1. Formation in situ ou par e-learning du logiciel...................................................27 III.D.2. Prise en main à distance pour la maintenance et l'assistance téléphonique........27 III.D.3. Site web .............................................................................................................27 III.D.4. Box ADSL, Fax IP..............................................................................................28 III.D.5. Croix LED..........................................................................................................28 III.D.6. Externalisation du tiers payant............................................................................28 III.D.7. Création de campagne de communication (papier ou multimédia)....................28 III.D.8. Vidéo-surveillance..............................................................................................29 III.D.9. Antivol sur les produits.......................................................................................29 III.D.10. Distributeur automatique 24/24........................................................................29 III.D.11. Forum d'assistance et de développement..........................................................29 III.D.12. Applications pour téléphones mobiles..............................................................29 III.D.13. Pilulier électronique..........................................................................................29 IV) Les acteurs de l'informatique officinale..............................................................................31 IV.A \Les sociétés de logiciels..............................................................................................31 IV.A.1. Le groupe CEGEDIM ........................................................................................31 IV.A.2. Le groupe Welcoop.............................................................................................31 IV.A.3. Les autres sociétés...............................................................................................32 IV.B \Les autorités................................................................................................................34 IV.B.1. CNDA, GIE SESAM-Vitale, …..........................................................................34 IV.B.2. Conseil National de d’Ordre des Pharmaciens (CNOP).....................................34 IV.C \Les coopératives..........................................................................................................35 IV.D \Les groupements.........................................................................................................36 IV.E \Des initiatives syndicales............................................................................................36 IV.E.1. Un concentrateur : Résopharma..........................................................................36 IV.E.2. Un collecteur de données économiques : Pharmastat..........................................37 IV.F \L’association AURA....................................................................................................37 IV.G \La Chambre Syndicale de la Répartition Pharmaceutique (CSRP)............................37 V) Taux d'informatisation des officines....................................................................................39 VI) Logiciels libres et open source (FLOSS – Free and libre open source software)..............42 VI.A \Définitions..................................................................................................................43 VI.A.1. Code source et code binaire................................................................................43 VI.A.2. Logiciel libre et Open-Source.............................................................................43 VI.A.3. « Libre de droits »...............................................................................................44 VI.A.4. Freeware alias gratuiciel.....................................................................................44 VI.A.5. Le droit des marques...........................................................................................45 VI.B \Exemples de logiciels.................................................................................................45 VI.B.1. Le noyau Linux...................................................................................................45 VI.B.2. Mozilla Firefox...................................................................................................45 VI.B.3. LibreOffice..........................................................................................................46 VI.B.4. PostgreSQL.........................................................................................................46 VII) Tableaux comparatifs........................................................................................................47 VII.A \Méthodologie............................................................................................................47 VII.B \Système d'exploitations requis et système de gestion des bases de données............48 VII.C \Liste des fonctionnalités obligatoires et indispensables...........................................50 VII.D \Liste des fonctionnalités optionnelles.......................................................................51 VII.E \Liste des services complémentaires proposés par les éditeurs en dehors du LGO...54 Page 3/112VIII) Discussion........................................................................................................................57 VIII.A \Critique de la méthode.............................................................................................57 VIII.B \Les pharmaciens sont des acteurs de l'informatisation de l'officine........................58 VIII.C \Évolution de l'informatique officinale.....................................................................58 VIII.D \Sécurité....................................................................................................................59 VIII.E \Le système SESAM-Vitale......................................................................................62 VIII.F \Les FLOSS...............................................................................................................62 IX) Conclusion..........................................................................................................................65 X) Annexe ................................................................................................................................66 X.A \Annexe 1 : Liste des éditeurs de LGO et de leurs logiciels.........................................66 X.B \Annexe 2 : Liste des fonctionnalités de SESAM-Vitale 1.40 dans les différents logiciels................................................................................................................................69 X.C \Annexe 3 : Part de marché des différents LGO durant les 12 derniers mois...............84 X.D \Annexe 4 : Licence Creative Common – Attribution – Partage dans les mêmes conditions (CC -By SA 4.0).................................................................................................85 X.E \Fiche de pharmacovigilance........................................................................................90 XI) Acronymes..........................................................................................................................92 XII) Bibliographie.....................................................................................................................97 XIII) Serment de Galien..........................................................................................................110 I.A.1. Index des tableaux Index des tableaux Tableau 1: Descriptif des éditeurs de LGO-----------------------------------------------------------33 Tableau 2: Coopérative et informatique – d'après de la Thèse d'Arnaud ANTOINE-----------35 Tableau 3: Système d'exploitations requis et système de gestion des bases de données--------48 Tableau 4: Liste des fonctionnalités obligatoires et indispensables dans les différents LGO--50 Tableau 5: Liste des fonctionnalités optionnelles dans les différents LGO----------------------51 Tableau 6: Liste des services complémentaires proposés par les éditeurs en dehors du LGO- 54 Tableau 7: Liste des fonctionnalités de SESAM-Vitale 1.40 pour les LGO du groupe CEGEDIM et de la société Pharmavision-------------------------------------------------------------69 Tableau 8: Liste des fonctionnalités de SESAM-Vitale 1.40 pour les LGO du groupe Welcoop et Vindilis--------------------------------------------------------------------------------------------------73 Tableau 9: Liste des fonctionnalités de SESAM-Vitale 1.40 pour les autres LGO de C à P---76 Tableau 10: Liste des fonctionnalités de SESAM-Vitale 1.40 pour les LGO de P à X---------80 Tableau 11: Part de marché des éditeurs durant les 12 derniers mois - Août 2014--------------84 Page 4/112Année universitaire 2014-2015 Liste des enseignants PHARMACIE Université de Poitiers Faculté de Médecine et de Pharmacie Professeurs  CARATO Pascal, Chimie Thérapeutique  COUET William, Pharmacie Clinique  FAUCONNEAU Bernard, Toxicologie  GUILLARD Jérôme, Pharmaco chimie  IMBERT Christine, Parasitologie  LEVESQUE Joël, Pharmacognosie  MARCHAND Sandrine, Pharmacocinétique  OLIVIER Jean Christophe, Galénique  PAGE Guylène, Biologie Cellulaire  RABOUAN Sylvie, Chimie Physique, Chimie Analytique  SARROUILHE Denis, Physiologie  SEGUIN François, Biophysique, Biomathématiques Maîtres de Conférences  BARRA Anne, Immunologie-Hématologie  BARRIER Laurence, Biochimie  BODET Charles, Bactériologie  BON Delphine, Biophysique  BRILLAULT Julien, Pharmacologie  CHARVET Caroline, Physiologie  DEBORDE Marie, Sciences Physico-Chimiques  DEJEAN Catherine, Pharmacologie  DELAGE Jacques, Biomathématiques, Biophysique  DUPUIS Antoine, Pharmacie Clinique  FAVOT Laure, Biologie Cellulaire et Moléculaire  GIRARDOT Marion, Pharmacognosie, Botanique, Biodiversité végétale  GREGOIRE Nicolas, Pharmacologie  HUSSAIN Didja, Pharmacie Galénique  INGRAND Sabrina, Toxicologie  MARIVINGT-MOUNIR Cécile, Pharmaco chimie  PAIN Stéphanie, Toxicologie  RAGOT Stéphanie, Santé Publique  RIOUX BILAN Agnès, Biochimie  TEWES Frédéric, Chimie et Pharmaco chimie  THEVENOT Sarah, Hygiène et Santé publique  THOREAU Vincent, Biologie Cellulaire  WAHL Anne, Chimie Analytique PAST - Maître de Conférences Associé  DELOFFRE Clément, Pharmacien  HOUNKANLIN Lydwin, Pharmacien Professeur 2nd degré  DEBAIL Didier Maître de Langue - Anglais  PERKINS Marguerite, Je souhaiterais dédié cette thèse : À mes parents pour leur amour et leur patience ; À mes sœurs pour leur affection qui m'entoure ; À mon frère, toujours présent dans mon cœur ; À mon parrain qui aurait souhaité être présent pour ma soutenance ; À mes amis et à ma famille élargie. Remerciements À monsieur le Professeur François SEGUIN d'avoir accepter la présidence de cette thèse et de m'avoir guidé dans sa réalisation. Je profite de cette opportunité pour vous remercier encore d'avoir accepter mon stage d'initiation à la recherche au sein de votre laboratoire. À madame Delphine BON d'avoir accepter de superviser et guider mon travail, votre aide me fut bien utile pour les dernières retouches. À monsieur Lydwin HOUNKANLIN qui me fait l'honneur de juger mon travail, qu'il trouve ici l'expression de ma sincère reconnaissance. J'espère que le corps enseignant pourra s'appuyer sur mon travail dans la réalisation de ses cours. À monsieur Pierre ORLIAC dont j'ai beaucoup apprécié la thèse. Vous éclairez l'usage de l'informatique officinal en le plaçant dans une autre dimension : la dématérialisation. Je suis très honoré que vous jugiez mon travail. À monsieur François ELIE : votre livre sur l'économie des logiciels libres nous rappelle que l'informatique ne doit pas rester aux seuls mains des informaticiens et que le cadre juridique des licences libres est une occasion unique pour ne pas subir cet outil. Je suis très honoré que vous jugiez mon travail. Page 6/112Je remercie les nombreuses personnes qui ont bien voulu répondre à mes questions et m'expliquer leur métier, sans vous cette thèse n'aurait pas vu le jour : J. WITTEVRONGEL du FSPF, T.HERTZOG du CRSP, C.HAZA du CIP, N.BOND, S.PORTE et L.DUPUIS d'Alliadis, C.ZARELLA et B.CAUSSEL d'ASP Line, K.BASSAND et D.SELLIER de Caduciel Informatique, F.LAUGERE de CEPI Soft, J.SAINT-JALMES de CIAM, C.BARANES de La Source Informatique, I.PATAT et C.CHANFORT de Pharmagest Interactive, T.MARTENOT de PG Informatique, P.MICHELOT de Pharmavision, M.MOREAUX d'Everys, M.BOIGUES d'ARX. Un remerciement particulier pour les heures qu'ils ont passé au téléphone à nous parler de leur travail : R.MARTINEZ d'Infosoft, D.DERISBOURG d'Isipharm, F.DOC de RESIP/BCB, V.JOLIVET de Vindilis, S.TEBESSI de Visiopharm. Je remercie Éric et Nicolas pour leur relecture attentive et leur avis sur les FLOSS. Merci à ma maman et à Francis d'avoir corrigé mes fautes d'orthographe jusque tard dans la nuit. Je remercie le personnel bibliothécaire pour son aide dans la réalisation de cette thèse. Je profite de cette thèse pour remercier les pharmaciens et leur équipe auprès de qui je me suis formé : monsieur et madame DUMORTIER, madame AMAHCORDEAU, monsieur LEFORT, madame BENAITEAU, madame GOURDEAUGUYONNET, madame HUGAULT, monsieur et madame LAPLACE-CLAVERIE. Merci à madame BARRERE pour m'avoir permis de travailler dans l'oxygène médical. Page 7/112À Xavier pour ton amitié sans faille À Francis, pour ton amitié et ton soutien. À Guillaume pour ton accueil toujours chaleureux. À Louis, Guillaume, Adrien et Ophélie pour ces soirées santé inoubliables. Aux membres de l'APP3L qui m'ont appris que l'informatique est un vrai métier et que cela ne résume pas à la touche F1 et au tutoriel trouvé sur la toile. ^^ À Thierry STOEHR, pour son excellente conférence sur les formats ouverts. À l'association Framasoft pour ses nombreux billets et traductions du Framablog et pour sa Framakey fier exemple des 4 libertés du Logiciel Libre. Aux nombreux contributeurs des Logiciels Libres, de Wikipédia, d'OSM et à votre volonté de rendre la connaissance humaine en accès libre. Un remerciement particulier sera pour les logiciels qui m'ont permis de réaliser cette thèse : GNU/Linux, Ubuntu, LibreOffice, Bibus, Firefox, Thunderbird et Evince. Page 8/112 Déclaration d'intérêts L'auteur déclare n'avoir aucun lien d'intérêts financiers avec les éditeurs de logiciels de gestion d'officine ou avec leur maison mère. L'auteur se doit de signaler au lecteur qu'il est un contributeur régulier aux logiciels libres suivants : • Ubuntu (au sein du forum francophone et du gestionnaire de bogues) ; • Firefox et Thunderbird (au sein du forum francophone et du gestionnaire de bogues) ; • LibreOffice/Apache OpenOffice (au sein des forums francophones et des gestionnaires de bogues). De plus, il est un membre actif de l'Association Poitevine pour la Promotion de GNU/Linux et du Logiciel Libre (APP3L). Son avis sur le sujet des logiciels libres et de l’open source peut donc souffrir de partialités. Licence Le présent document est placé sous licence Creative Common – Attribution – Partage dans les mêmes conditions (CC -By SA 4.0), le choix de cette licence étant de diffuser cette thèse avec le moins d'entraves possibles. En cas de réutilisation, il faudra permettre un accès à la thèse originale, en citer l'auteur, et préciser que c'est une œuvre dérivée (qui devra être placée sous une licence similaire et compatible à CC - BY SA). Le texte juridique (en anglais) est consultable en Annexe 4 : Licence Creative Common – Attribution – Partage dans les mêmes conditions (CC -By SA 4.0) La partie annexe et les citations sont toutefois exclues du champ de la licence Creative Commons, l'auteur y a en effet placé des œuvres qui sont, ou qui pourraient être soumises au droit d'auteur classique. La licence CC - BY SA s’applique donc de la page 10 à la page 67 non incluse. Les citations sont signalées par une typographie différente du reste du texte sur un fond gris. Les noms de sociétés, les logiciels et marques cités sont la propriété de leur ayants droit respectifs. Page 9/112 Illustration 1: Logo Creative Common By SA auteur : Organisation Creative Common ; CC0II) Introduction L'informatique a été très tôt présente au sein de l'officine : dès 1977, une thèse aborde ce sujet[1]. C'est l'arrivée du programme SESAM-Vitale en 1998 qui va lancer sa généralisation au sein de l'officine. Ces logiciels métiers sont appelés logiciels de gestion d'officine (LGO). D'outils pour la gestion du stock, des commandes et de la vente, les LGO deviennent alors une aide pour le pharmacien dans sa gestion administrative. Fin 2008, l'arrivée du Dossier Pharmaceutique ajouta une nouvelle corde à l'arc du pharmacien : celui-ci peut avoir connaissance de l'historique des médicaments délivrés dans d'autres pharmacies. Ainsi, l'outil étend petit à petit sa place dans l'univers officinal, devenant progressivement incontournable et nécessaire. Devant ce fait, il nous a semblé judicieux de mieux connaître ces logiciels métiers tant concernant les fonctionnalités proposées, que les acteurs qui façonnent ces logiciels de gestion d'officine. Seuls les logiciels commercialisés par les éditeurs seront abordés. Nous espérons que cette thèse permettra aux pharmaciens d'officine d'avoir une meilleur vision de leur outil. L'objet de cette thèse n'est pas de détailler la technique informatique. Ces détails techniques, lorsqu'ils nécessiteront des éclaircissements, seront uniquement abordés dans des notes. Ainsi, nous n'expliquerons pas le fonctionnement propre d'un ordinateur, la notion de système d’exploitation ou le modèle de couches au sein des réseaux de communication. De même nous ne développerons pas les mécanismes administratifs de l'assurance maladie comme le ticket modérateur, cette thèse s'adressant en premier lieu à des officinaux, ils sont donc familiers avec ces notions. Dans la mesure du possible, nous renverrons le lecteur curieux à notre bibliographie. Il y trouvera des informations plus précises sur certaines fonctionnalités qui ne seront décrites que brièvement ou citées au sein de cette thèse. Dans la première partie, nous détaillerons une liste des fonctionnalités et services que l'on peut retrouver au sein des différents logiciels présents sur le marché. Dans la seconde partie, nous ferons état des différents acteurs influençant les fonctionnalités des logiciels d'officine. Pour la troisième partie nous analyserons les chiffres de télétransmissions des professionnels de santé fournis par le GIE SESAM-Vitale. La notion de logiciel libre et à code ouvert (Free and Libre Open Source Software – FLOSS) sera abordée puisque certains composants des LGO sont placés sous ce régime juridique. Enfin, nous présenterons le résultat de notre recherche sur les fonctionnalités au sein des logiciels de gestion d'officine et terminerons par une discussion sur les informations récoltées pour la rédaction de cette thèse. Page 10/112III) Les composants des logiciels de gestion d'officine III.A \ Fonctionnalités obligatoires Ce chapitre comprend les fonctionnalités obligatoires d'un logiciel de gestion d'officine. Les éditeur sont dans l'obligation de les proposer à leurs clients, ces derniers étant contraints de les utiliser au quotidien. Le Tableau 4 présente les informations en les triant par logiciels. III.A.1. Par convention : SESAM-Vitale, ADELI, NOEMIE, Tiers-payant Ce sont deux décrets de 1998[2][3] qui vont transformer les expérimentations débutées en 1996 et créer la carte d'assurance maladie ou Carte Vitale (CV). L'article L162-16-1[4] du Code de la Sécurité Sociale (CSS) précise toutefois que c'est par convention entre les caisses et les représentants de la profession que sont réglés les modalités : Les rapports entre les organismes d'assurance maladie et l'ensemble des pharmaciens titulaires d'officine sont définis par une convention nationale conclue pour une durée au plus égale à cinq ans entre une (ou plusieurs) organisation(s) syndicales(s) représentative(s) des pharmaciens titulaires d'officine, d'une part, et l'Union nationale des caisses d'assurance maladie, d'autre part. La convention détermine notamment : […] 4° Les mesures tendant à favoriser le développement de la dispense d'avance des frais Tout un ensemble de protocoles et de technologies ont été mis en place pour automatiser tout le processus administratif entre les caisses et les officines. Cette communication se fait au sein d'un réseau appelé SESAM pour « Système électronique de Saisie de l'Assurance Maladie ». L'accès à ce réseau se fait à l'aide de deux cartes : la carte Vitale1 et la Carte de Professionnel de Santé. III.A.1.a. La Carte Vitale et la Carte de Professionnel de Santé La norme ISO 7816 définit le fonctionnement des cartes à puces[5] dont fait partie la carte Vitale 2[6][7] ainsi que la Carte de Professionnel de Santé[8] (CPS). Notons que la version 3 de la CPS contient un dispositif sans contact[9] (définit dans la norme ISO 14443) et un 1 Appelée juridiquement : carte d'assurance maladie Page 11/112dispositif IAS-ECC[10] (Identification-Authentification-Signature European-Citizen-Card2 ). La CV 2 apporte par rapport à la CV 1 un coprocesseur cryptographique et la possibilité de gérer un certificat permettant l'identification du patient[11]. La CV ne contient que les informations nécessaires à l'identification de l'assuré et de ses ayants droits au près des caisses obligatoires. La remise de la CV à un professionnel de santé équivaut à un accord tacite[12] autorisant ce dernier à transmettre les facturations par voie électronique. Enfin, l'utilisation de CV donne la garantie[13] au pharmacien de se faire payer par l'assurance maladie obligatoire. Pour limiter les fraudes, les caisses fournissent quotidiennement une liste3 des CV que le pharmacien devra refuser[14]. La CPS sert, quant à elle, à authentifier le professionnel de santé comme le demande l'article R161-52 du CSS[15]. En effet, elle devient un sésame pour accéder à des informations administratives, mais surtout à des informations médicales[16], sensibles par définition. Le Groupement d’Intérêt Public Agence des Systèmes d'Informations Partagés de santé (ou GIP ASIP-Santé) est le gestionnaire des droits et autorisations professionnelles. Le professionnel de santé doit utiliser un code PIN4 pour activer la lecture de sa CPS. III.A.1.a.1. Les lecteurs Deux types de lecteurs se trouvent dans les officines : • ceux en accès libre : ils sont mis à la disposition par les caisses d'assurance maladie obligatoire. Ils servent à la mise à jour des cartes vitales et à la consultation de certaines informations présentes. Puisque les officines ont des horaires plus larges que les caisses et surtout ont un maillage plus étendu. et à. Les frais de fonctionnement restent à la charge des caisses[17]. • ceux rattachés au comptoir. Ces lecteurs fixes ont la possibilité de lire 2 à 3 cartes à puces en même temps (CV + CPS + carte DUO5 ). Ils ont souvent été fabriqués par les sociétés Xiring, SAGEM santé, ou Wynid[18][19]. Cette dernière a été rachetée par le groupe Thales en 2005[20]. De même, la société Xiring appartient au groupe Ingenico depuis 2011[21]. Ingenico est le seul fournisseur de lecteur en 2014 présent sur le marché. Le GIE - SESAM-Vitale travaille à l'homologation d'un type de lecteur : Personal Computer/Smart Card [22] (PC/SC). PC/SC est une spécification entre les industries de la carte à puce (ou SIM) et celles des logiciels[24]. Les lecteurs se connectent à un port USB (d'anciens modèles utilisent encore les ports séries), ce qui permet de déporter une partie des fonctionnalités et des analyses du lecteur à l'ordinateur auquel il est connecté. Les lecteurs PC/SC6 sont ainsi utilisés pour authentifier les agents de l'administration française[10]. Ces nouveaux lecteurs sont bien moins cher que les lecteurs bi ou tri-fentes (en 2014 : souvent moins de 60 € contre plus de 300 € pour les derniers). De plus, ce type de lecteur permettrait de faciliter l'authentification du patient, point important dans le cadre du Dossier Médical 2 Qui doit permettre une interopérabilité du système avec les pays européens 3 Cette liste sera utilisée par la suite par tous les professionnels de santé. 4 PIN : Personal Identification Number ou code confidentiel nécessaire pour accéder à la puce. 5 Carte DUO est une carte à puce contenant les informations nécessaires aux remboursement par les caisses complémentaires (alias mutuelles). 6 Nous n'avons pu savoir si l'utilisation de ces lecteurs requièrent la norme IAS-ECC et donc que la CV 1 ne pourra être utilisé avec ces lecteurs PC/SC Page 12/112Personnel7 (DMP). Cette fonctionnalité existe dans la carte Vitale 2 mais n'a jamais été activée[5]. III.A.1.a.2. Les flux Une des missions des Caisses Primaires d'Assurance Maladie (CPAM) est de « Garantir et faciliter la prise en charge des dépenses de santé »[25]. C'est dans cet objectif que les caisses poursuivent leur démarche de dématérialiser toute la procédure administrative. Le projet SESAM n'est que l'expression de cette démarche administrative et économique. Il articule différents flux de données entre les caisses et les professionnels de santé. L'officine est concernée par les protocoles de flux suivants[11][26] : • La norme B2 type PH intégrant les Feuilles de Soin Électronique (FSE) pour la caisse obligatoire et les Demandes de Remboursement Électronique (DRE) pour la caisse facultative. Il est intéressant de noter que ces informations s'appuient désormais sur le protocole SMTP8 avec S/MIME9 . Ce sont des flux qui partent de l'officine. • La norme NOÉMIE avec les accusés de réception logiques (ARL) et les rejet/signalement/paiement (RSP). Ce sont des flux qui arrivent à l'officine. 7 Dossier Médical Personnel ou Dossier Médical Partagé l’appellation variant au cours du temps (voir Thèse d'Isabelle ADENOT à ce sujet [23]) 8 Pour Simple Mail Transfer Protocol, pour protocole simple de transfert de courriel. Pour en savoir plus : http://www.iletaitunefoisinternet.fr/lemail-par-benjamin-sonntag/ 9 Pour Secure / Multipurpose Internet Mail Extensions Page 13/112 Illustration 2: Schéma des flux d'information au sein de SESAM-Vitale [auteur : C.BRISSET - 2014] Officine DRE FSE SCOR Norme B2 NOÉMIE AMC AMO ARL AMC AMO RSP III.A.1.a.3. SCOR L'officine continue son chemin vers la dématérialisation : après une mise en place en 2011 qui nécessitait alors l'envoi des ordonnances numérisées par CD-ROM, l'année 2013 est marquée par l'envoi, via internet, des ordonnances scannées aux caisses. C'est au sein des conventions régulières entre l'assurance maladie et les représentants des pharmaciens qu'a été mise en place cette fonctionnalité[27], appelée SCOR pour SCannérisation des ORdonnances. Cet envoi s'intègre au sein du flux des feuilles de soins électronique (FSE) à travers le protocole SMTP couplé avec S/MIME. L'image de l'ordonnance scannée est insérée au sein d'un document PDF, indexé à la norme SEH[11] (système d’échanges harmonisés des organismes d’assurance maladie obligatoire) . Le PDF est intégré en pièces-jointes à la facture qu'envoie le pharmacien via le système SESAM-Vitale. Il permet ainsi des économies substantielles de papier : la sécurité sociale estime à 550 millions[28], le nombre d’ordonnances prescrites chaque année. À Paris, six tonnes d'ordonnances étaient acheminées, en 2011, chaque semaine à la sécurité sociale ![29] III.A.2. Le Dossier Pharmaceutique : obligatoire par la loi Créé par le Conseil National de l'Ordre des Pharmaciens (CNOP), après la promulgation dans l'article L161-36-4-2[30] en janvier 2007 : Article L161-36-4-2 Créé par Loi n°2007-127 du 30 janvier 2007 - art. 25 (V) JORF 1er février 2007 Afin de favoriser la coordination, la qualité, la continuité des soins et la sécurité de la dispensation des médicaments, produits et objets définis à l'article L. 4211-1 du code de la santé publique, il est créé, pour chaque bénéficiaire de l'assurance maladie, avec son consentement, un dossier pharmaceutique dont les informations alimentent le dossier médical personnel mentionné à l'article L. 161-36-1 du présent code, dans des conditions précisées par le décret prévu à l'article L. 161-36-4. Sauf opposition du patient quant à l'accès du pharmacien à son dossier pharmaceutique et à l'alimentation de celui-ci, tout pharmacien d'officine est tenu d'alimenter le dossier pharmaceutique à l'occasion de la dispensation. La mise en œuvre du dossier pharmaceutique est assurée par le Conseil national de l'ordre des pharmaciens mentionné à l'article L. 4231-2 du code de la santé publique . En premier lieu, le Dossier Pharmaceutique (DP) se veut comme un outil professionnel à destination des pharmaciens, ne servant qu'indirectement les patients[31]. Ces derniers doivent donner leur accord avant toute ouverture de leur DP. Initialement, il est prévu pour coordonner l'historique des médicaments délivrés au patients (avec ou sans ordonnance) dans l'officine. Le DP ne comporte aucune information sur les prix des médicaments, le lieux de délivrance, l'éventuel prescripteur. Par la suite, Le dispositif a été étendu : • à la diffusion des alertes sanitaires et aux retraits de lots de médicaments[32] ou d'autres produits vendus en officine[33]. • aux pharmacies à usage intérieur (hôpital) par le Décret n° 2012-1131[34]. • aux ruptures de stock (expérimentation en cours depuis mars 2013)[35]. • au suivi sanitaire par l'article 23 de la loi n°2011-2012[36] du 29 décembre 2011. Page 14/112Le DP possède donc tout un ensemble de règlements au sein du Code de la Santé Publique : Article R1111-20-1 à R1111-20-11. Le CNOP réfléchit[33] à l'étendre aux vaccins - les données sur les vaccins seraient conservés 25 ans - et à utiliser le DP pour lutter contre les médicaments falsifiés. Le DP utilise une technologie basée sur du code XML (sur HTTP) ou SOAP[37]. Les échanges entre l'officine et le serveur se font de manière chiffrée (connexion SSL[37]). La codification des informations suit la norme HL7[11]. L'accès au DP est conditionné à l'utilisation simultanée de la carte Vitale et de la carte du Professionnel de Santé. III.A.3. L'ordonnancier Dans l'article R5132-9 du CSP[38], le législateur demande au pharmacien de tenir un historique de toutes les délivrances de médicaments : Les personnes habilitées à exécuter les ordonnances ou les commandes comportant des médicaments autres que les préparations relevant de la présente section les transcrivent aussitôt à la suite, à l'encre, sans blanc ni surcharge, sur un registre ou les enregistrent immédiatement par tout système approprié ne permettant aucune modification des données qu'il contient après validation de leur enregistrement. Les systèmes d'enregistrement permettent une édition immédiate à la demande de toute autorité de contrôle des mentions prévues à l'article R. 5132-10, chaque page éditée devant comporter le nom et l'adresse de l'officine. Les données qu'ils contiennent doivent figurer sur un support garantissant leur pérennité et leur intégrité. Elles doivent en outre être dupliquées sur deux supports distincts, le premier servant à la consultation habituelle, le second étant gardé en réserve. Les données archivées doivent pouvoir être accessibles, consultées et exploitées pendant la durée de leur conservation. Pour les stupéfiants ou assimilés, les articles R5132-35 et R5132-36 du CSP[39] un registre est tenu sur le stock permettant de suivre ses entrées et ses sorties : Toute entrée et toute sortie de substances et de médicaments classés comme stupéfiants sont inscrites par les personnes mentionnées à l'article R. 5132-76 sur un registre ou enregistrées par un système informatique spécifique […] Le registre, les enregistrements informatiques et les éditions de ces enregistrements par période maximale d'un mois ainsi que les documents attestant la destruction sont conservés dix ans à compter de leur dernière mention, pour être présentés à toute réquisition des autorités de contrôle. Ainsi, le législateur exige du système informatique de l'officine une pérennité (dix ans) et une intégrité (pas de modification des registres). Si, pour les ordonnances liées aux stupéfiants, les officinaux ont toujours préféré conserver le duplicata papier, l'arrivée des scanners fait rentrer ces doubles dans les archives du LGO[40]. Ce point n'est pas précisé dans le tableau récapitulatif : en effet l'ordonnancier n'est que l'expression de la base de données que possède tout LGO, le développeur paramétrant celleci pour qu'elle respecte la loi. Page 15/112III.A.4. La base de données des médicaments et des produits de santé L'article L161-38 du CSS[41] exige que dès le 1er janvier 2015, tous les LGO devront posséder une base de données de médicaments et de produits de santé possédant un agrément auprès de l'HAS[42]. Les décrets ne sont toutefois pas encore publiés. Les industriels du secteur du médicament et des produits de santé fournissent les informations nécessaire à la base de données lors de la demande d'AMM au sein du fameux RCP (Résumé des Caractéristiques des Produits). La validation des RCP fait partie des prérogatives de l'ANSM et confère sa légalité au RCP. C'est ensuite à partir du travail de l'ANSM que sont construites les bases de données de médicaments. Le groupe d'experts de l'ANSM ou Groupe de Travail sur les Inter-Actions Médicamenteuses (GTIAM) se réunit tous les six mois pour actualiser la liste d'interactions médicamenteuses10 appelés « Thésaurus des interactions médicamenteuses »[43]. Le Thésaurus est juridiquement opposable dans le domaine des interactions médicamenteuses. Les informations concernant l'aspect économique des médicaments remboursables sont quant à elle fournies par le Comité Économique des Produits de Santé (CEPS). Le travail des éditeurs de base de données de médicaments est de : • structurer l'information issue de l'ANSM au sein de la base de donnée ; • classifier les interactions médicamenteuses en accord avec l'ANSM ; • ajouter le prix des médicaments non remboursables et celui des produits hors AMM ; • contrôler la commercialisation effective d'un médicament (toute demande d'AMM ne débouche pas forcément sur une commercialisation) ; • surveiller les retraits du marché (les annonces de la part de l'ANSM ayant parfois un certain délai) ; • ajouter des données posologiques (permettant par exemple le calcul des doses maximales journalières) ; • effectuer une veille sur les AMM européennes issues de l'Agence Européenne des Médicaments (EMA), le médicament arrivant sur le marché français sans que l'ANSM ne se soit occupé de l'AMM. Dans ce cas, l'ANSM donnera un avis provisoire avant la prochaine réunion d'experts. De plus, les éditeurs peuvent agrémenter leur base de données d'informations complémentaires comme celles du Centre de Référence sur les Agents Tératogènes (CRAT) ou celles des protocoles de chimiothérapie. Il existe à ce jour quatre bases de données médicamenteuses agréées par l'HAS : • la Banque Claude Bernard est la propriété de RESIP/ Cegedim ; • le VIDAL fait par l'éditeur du même nom ; • le Thesorimed fait par le GIE - Système d'Information sur les Produits de Santé (GIE - SIPS). Ce GIE est composé, entre autres, de représentants des 3 caisses 10 qui n'est donc pas issue des RCP Page 16/112fondatrices (CNAMTS, MSA et RSI) qui fournissent la majeure partie de son financement, d'un représentant du Ministère de la Santé et d'un autre de l'ANSM[44]. • le Thériaque créé par l'association de 3 syndicats de pharmaciens hospitaliers (CNHIM)[45]. Initialement membre du GIE - SIPS, le CNHIM s'en est séparé, gardant la base Thériaque avec lui[46]. L'OCP a demandé un agrément pour sa base de données ClickaDoc, au moment de la rédaction de cette thèse, cet agrément n'était toujours pas délivré. Thériaque est la seule base qui ne soit pas utilisée à l'officine (voir le Tableau 4), ClickaDoc serait utilisé au sein de LGPI. Nous signalons le site web http://www.meddispar.fr/, créé et financé par l'Ordre National de Pharmaciens. Son absence d’exhaustivité l'empêche d'être utilisé au sein des LGO. Toutefois, sa clarté et sa simplicité permet de servir son objectif d'aide aux pharmaciens pour les médicaments ayant une dispensation particulière liée à la législation. Depuis le 1er Octobre 2013, le Ministère de la Santé propose au public la consultation des RCP sur le site www.medicaments.gouv.fr. L'ANSM édite aussi une application pour smartphones pour donner les prix des médicaments au public. De même, des projets communautaires comme Drugref11 ou FreeMedForms12 s'emploient à créer des bases de données sur les médicaments. Là aussi, l'absence d'agrément de l'HAS interdit leur utilisation au sein des LGO. 11 http://freecode.com/projects/drugref 12 http://freemedforms.com Page 17/112III.B \ Fonctionnalités indispensables Ce chapitre concerne les fonctionnalités consacrées par l'usage. Elles s'avèrent indispensables par l'essence même du logiciel de gestion d'officine : accompagner le pharmacien dans son travail quotidien et l'épauler lors des tâches répétitives souvent liées aux contraintes administratives et législatives. Un LGO est un ensemble de bases données (listes d'informations structurées et pouvant être extraites selon plusieurs items ou filtres). Il répond à la définition de progiciel de gestion intégré (ou ERP) car il gère plusieurs domaines de l'officine : fiche clients, stock, … Les informations sont présentes au sein d'une même interface logicielle. Le Tableau 4 du quatrième chapitre présente les informations en les triant par logiciels. III.B.1. La gestion de stock La gestion de stock désigne la capacité du logiciel à gérer les entrées de tous les produits présents à l'officine et leur sortie lors de la vente. Par conséquence, les LGO analysent les stocks : • lors de la commande avec les grossistes-répartiteurs ou les laboratoires : même si elle n'est pas encore reçue, le système en possède déjà la connaissance évitant ainsi des achats inutiles. Au moment de la réception, une saisie à l'aide d'un terminal scannant les produits reçus permet de détecter des erreurs de livraisons de manière semiautomatique. • lors de la vente, l'ordinateur retranche de sa base de données les produits vendus. Ainsi, la gestion de stock assistée par ordinateur permet au pharmacien d'avoir une représentation virtuelle de ce qu'il possède au sein de son officine. Cette représentation se doit d'être la plus proche possible de la réalité physique. Les différences peuvent s'expliquer par des erreurs lors de la manipulation du système informatique, des erreurs dans l'emplacement du lieu de stockage, des destructions involontaires non répercutées dans le système informatique ou encore des vols. III.B.1.a. PharmaML PharmaML a été créé en 2003-2004 pour remplacer la norme précédente de transmission de commande entre les officinaux ou les pharmacie d'hôpitaux et les grossistes. Cette ancienne norme s'appelait « 170-171 »[47] et présentait de nombreuses limitations. La création de PharmaML a été décidée et financée par les grossistes afin d'améliorer leur service client. Elle est basée sur un flux de données structurées en XML. Son accès est gratuit aux SSII (Sociétés de Services en Ingénierie Informatique ) à la condition de signer un contrat de nondivulgation. Depuis 2006, son usage n'est plus restreint aux échanges avec les grossistes : les officines et les pharmacies hospitalières peuvent l'utiliser pour émettre des commandes directement aux laboratoires. PharmaML n'est pas prévu pour réaliser des commandes directes inter-officine ce qui serait illégal. Ce protocole permet d'interroger directement le stock des grossistes-répartiteurs et donc de connaître la disponibilité d'un produit, sa quantité et son prix. Le bénéfice pour le grossisterépartiteur est de diminuer ses besoins en personnel tenant le standard téléphonique. Pour le Page 18/112personnel officinal, le bénéfice en est la rapidité d'accès à l'information : au comptoir, il peut confirmer la disponibilité d'un produit et le commander directement. Enfin, le processus informatique évite les erreurs de la communication orale. Toutefois, ceci demande une base de données la plus complète possible pour les grossistes et aussi que le personnel officinal sache correctement orthographier le produit. PharmaML permet, depuis sa version 1, aux grossistes de réaliser des bons de livraison valorisés. Ceux-ci sont la dématérialisation des bons de livraison papier. C'est une possibilité peu utilisée actuellement. Depuis sa version 3.0, PharmaML inclut aussi la traçabilité13 avec le numéro de lot et la date de péremption. Elle propose aussi la géolocalisation de l'article commandé au sein de l'officine : le pharmacien sait tout de suite qu'une caisse livrée est destinée à son automate. III.B.1.b. Les codes barres : CIP 13, ACL, EAN, vignette et Datamatrix Le système de code-barre consiste en l'affichage d'une information alpha-numérique en utilisant un fort contraste entre une série de marques et la couleur de l'emballage d'un produit. Il peut être disposé : • de manière linéaire, le code étant alors une série de traits plus ou moins épais parallèle entre eux. C'est l'épaisseur du trait qui donne la valeur du nombre. • ou simultanément sur la largeur et la longueur soit sur 2 dimensions. Les informations étant alors un nuage de points qui sont la représentation picturale des bits (noir =1 et blanc =0). Le code CIP (Club Inter-Pharmaceutique ) a été créé par une association loi de 1901[48] composée de fabricants, dépositaires, répartiteurs, pharmaciens hospitaliers, pharmaciens officinaux et organisations représentatives. Afin de faciliter le travail de chacun, cette association a proposé une codification des médicaments pour l'humain. Le Ministère de la Santé utilise ce code comme référence des AMM. Les produits sans AMM ne sont pas concernés et sont regroupés sous le code ACL[49] (Association de Codification Logistique). Chacun de ces codes était encodé dans un code barre EAN 13[50], disposé sur une seule dimension, selon les normes établies par l'organisme de normalisation Global Standards (GS1). Mais pour permettre une meilleure traçabilité des médicaments et faciliter la gestion de leur péremption dans le système informatique, un code barre disposé sur 2 dimensions a été proposé. Il est appelé le code Datamatrix (ISO/IEC 16022). En plus du code CIP sur 13 chiffres14, il comprend obligatoirement la date de péremption (AAMMJJ) et le numéro de lot qui peut prendre jusqu'à 20 caractères alphanumériques - les bits encodant des caractères du code ASCII (ensemble de chiffres et de lettres sans accentuation). Il est possible de rajouter le numéro de série et la date de fabrication[51]. Dans le but de limiter les erreurs, l'ensemble de chiffres que constitue le EAN15 13 ou le Datamatrix (dans ses 13 premiers chiffres) sont contrôlés par une clé qui est le résultat d'une formule mathématique dépendant de ces 13 chiffres. De plus, pour limiter les erreurs de 13 Devenu obligatoire pour les grossistes-répartiteurs et pour les médicaments entrant à l'officine (voir le chapitre III.B.1.b. ) 14 GS1 recommande de l'inscrire sur 14 chiffres soit 13 précédés d'un zéro pour une intégration au sein de ses autres normes. 15 European Article Numbering Page 19/112lecture du code Datamatrix, les informations sont redondantes[52] au sein du damier que forme le code-barre 2D (Error Correction Codewords). L'article R5124-58[53] du Code de la Santé impose aux laboratoires (mais pas aux officines) la traçabilité par lots et par date de péremption. Ces informations peuvent être stockées en une seule fois dans le code Datamatrix à la différence du code EAN 13 qui oblige à écrire ces informations à coté. Le GS1 recommande que les informations contenues[54] dans le code Datamatrix soient affichées en clair à proximité, pour éviter les cas où le code serait illisible (ou le lecteur défaillant). Pour finir, les informations concernant le remboursement de l'article sont présentées dans un format non standardisé, appelé code 128[54]. Dans le jargon officinal, ces informations constituent la « vignette ». La présence de la vignette était encore obligatoire jusqu'au 1er juillet 2014 car elle était le moyen de fournir le taux de prise en charge et le prix[55] fixé par les caisses. Le code barre de la vignette contenait le code CIP encadré en préfixe par un chiffre reflétant le taux de remboursement, et en suffixe par le prix de vente en centimes d'euros. Ces informations sont maintenant transmises par les bases de données de médicaments. III.B.2. Gestion des fiches des patients et des praticiens L'acte de délivrance exige d'identifier, selon plusieurs critères, le praticien et le patient sur l'ordonnance[56]. Ces informations seront nécessaires pour la facturation aux organismes d'assurance maladie[57]. Le LGO doit donc gérer ces informations et permettre de les transmettre. III.B.3. Comptabilité Cette fonctionnalité est arrivée conjointement avec la gestion de SESAM-Vitale. Après avoir été une aide à la gestion logistique, l'outil informatique est devenu une aide à la compatibilité ainsi que dans les procédures administratives. Toutefois, les LGO ne constituent pas de véritables logiciels comptables : ils n'ont le plus souvent que des fonctionnalités d'export d'informations vers un logiciel comptable. Ainsi, les LGO permettent de gérer les flux financiers liés à SESAM-Vitale, certains logiciels vérifiant même auprès de la banque que les virements promis par les caisses ont bien été effectués. Lors des commandes, la partie comptable du logiciel associée à sa partie gestion de stock donne au pharmacien une aide supplémentaire à la décision. III.B.4. Gestion des droits de l'équipe officinale Les alertes sanitaires diffusées par la voie du dossier pharmaceutique doivent être validées par le pharmacien présent à l'officine. Ainsi les LGO doivent différencier les membres de l'équipe officinale, notamment en fonction de leur profession (pharmacien, préparateurs, magasiniers). Les magasiniers, par exemple, ne peuvent pas délivrer de médicaments aux comptoirs[58]. En pratique, les titulaires peuvent choisir de confier la responsabilité de certains postes à certains membres : par exemple le responsable du stock pourra être le seul (en plus du titulaire) à pouvoir modifier le stock dans le LGO. Page 20/112III.B.5. Questionnement de validité de l'ayant-droit Si la présence de la CV assure le remboursement au pharmacien des frais liés à la partie obligatoire du ticket modérateur[13], la situation est bien différente pour les organismes complémentaires. Même si l'assurée présente son attestation de rattachement à une mutuelle, il arrive que le paiement ne soit pas garanti pour les officinaux. En effet, le rattachement à une caisse obligatoire est lié au métier du patient et à son département d'habitation. Pour la majorité des assurés, ces situations évoluent peu au cours de leur vie professionnelle sauf déménagement. Par contre, le rattachement à une mutuelle, caisse facultative, relève du choix du patient ou de son employeur. À ce titre, cette donnée est amenée à varier plus souvent et ainsi à entraîner des problèmes administratifs de suivi de dossier. Certains éditeurs proposent aux officines de contrôler l'inscription du patient et de ses ayants droit auprès des mutuelles. Comme système nous pouvons citer un système de carte à puce Cleyris d'Esculape ; Visiodroit de Résopharma ; le système Almérys d'Orange ; SPSanté et iSanté de Cegedim ; Viamedis ou les carte à puce DUO. Cette dernière a été abandonnée. Page 21/112III.C \ Fonctionnalités optionnelles. Les fonctionnalités optionnelles apportent des services supplémentaires aux officinaux. Si elles ne semblent pas essentielles, elles apportent un service à ceux qui les utilisent au quotidien. Le Tableau 5 du quatrième chapitre reprend l'ensemble des informations par logiciels. III.C.1. Opinion pharmaceutique Promu par le CNOP à partir des années 2000, ce concept vient du Canada où le pharmacien est rémunéré pour son analyse de la prescription médicale[59]. Le CNOP en a fait une marque déposée[60]. Lorsqu'il reçoit une ordonnance, le pharmacien se doit d'en faire une analyse (obligation légale selon l'article R.4235-48 du CSP). Le pharmacien peut ainsi signaler un problème sur une ordonnance (interactions médicamenteuses, dosages erronés, …). En demandant aux éditeurs d'intégrer cette fonctionnalité, le CNOP a cherché à tracer cet acte au sein du LGO. En cas de litige, le pharmacien pourra justifier son action qui a été inscrite lors de la rédaction de l'opinion pharmaceutique (aval du médecin ou opposition du pharmacien à la délivrance). Cet outil reste peu usité[61] : une étude des ARS montre que seules 11,3 % des officines avaient rédigé des fiches d’Opinion Pharmaceutique au cours du second semestre 2010. III.C.2. Achat par groupement L'achat par groupement permet à plusieurs officines d'acheter en commum auprès d'un laboratoire, sans être dépendant d'un groupement avec centrale d'achat (comme Giphar, Pharmavie,…). Son but est de rassembler le plus d'officines pour atteindre la masse critique où le laboratoire fera une meilleure proposition commerciale. Le plus souvent, une officine centralise la réception et répartit ensuite les produits entre les autres officines. Les éditeurs essayent de rassurer leur utilisateurs sur l'interopérabilité de leur solutions : plusieurs officines ne sont pas obligées d'avoir le même logiciel pour réaliser des achats groupés. Les échanges sont intégrés dans le LGO de l'éditeur. Mais pour le confrère qui ne possède pas le même logiciel, il devra se contenter d'une interface web et palier ainsi l'absence d'intégration par une manipulation chronophage de saisie au sein d'un LGO différent. III.C.3. Gestion des collectivités Les officines sont amenées à travailler avec des collectivités (foyers logements, maison de retraites, EHPAD, personnes sous tutelles, … ), chacune ayant des habitudes de facturation liées à leur organisation propre (facturation mensuelle globale ou par patients, double facture pour les tutelles, séparation de la part obligatoire et de la part complémentaire, … ). III.C.4. Télétravail Le télétravail désigne la possibilité de travailler en dehors des lieux physiques habituels (dans notre cas, l'officine). Ainsi la présence physique du titulaire n'est pas requise pour certaines opérations (préparations de commande, compatibilité, …). Les éditeurs proposent Page 22/112donc un accès à distance au LGO. Cette fonctionnalité exige une sécurisation du flux de connexion puisqu'elle est une porte sur l'extérieur et une possibilité de fuite d'informations confidentielles sur l'entreprise ou sur les données des patients. III.C.5. SMS Il arrive couramment que les pharmaciens ne puissent fournir tous les produits au comptoir. Cette fonctionnalité, couplée à une fiche client comprenant le numéro de mobile, permet d'alerter les personnes de la réception des produits. La gestion des articles promis est alors plus harmonieuse. III.C.6. Gestion du robot/automate de stockage La communication du LGO avec un robot ou un automate se fait par un protocole appelé CD API[62] (pour Consis Dispenser Application Programming Interface [64][65]) par certains, ou protocole AURA par d'autres. En effet, ce protocole16 est né sous l'impulsion de l'Association des Utilisateurs des Robots et des Automates (AURA). Les éditeurs français et les constructeurs ont repris un protocole créé par les éditeurs allemands de LGO[67] (plusieurs entreprises d'automates sont allemandes). Le lecteur curieux pourra en apprendre davantage au sujet des robots et des automates en consultant la thèse de Guillaume AUBERT[49]. III.C.7. Fidélisation Si cela est interdit pour les médicaments (Articles R. 4235-21[68] et R. 4235-22[69] du CSP), pour les autres produits vendus à l'officine, la pharmacie peut proposer des programmes de fidélité à ses clients. III.C.8. Gestion du matériel de location Le patient peut se voir prescrire du matériel médical (lit, potence, béquilles, canne, nébuliseur, … ), délivrable en pharmacie. Le plus souvent, l'officine ne possède pas ce matériel et passe par un tiers. Toutefois, c'est elle qui s'occupe de la facturation à la Sécurité Sociale. Le LGO aide donc le pharmacien à bien remplir cet acte et lui facilite sa comptabilité avec son loueur de matériel. III.C.9. Gestion des emplois du temps de l'équipe officinale Cette fonctionnalité permet de gérer, de manière centralisée, les rendez-vous pris avec les représentants commerciaux des laboratoires, les formations ponctuelles proposées par les laboratoires, les journées obligatoires prévues par la formation continue, les gardes et bien sûr 16 Au niveau matériel, la communication bidirectionnelle est établie par un port série COM (RS-232) au moyen du protocole de couche basse 3964R,[63] créé par SIEMENS. Une évolution de cette couche vers celle du réseau IP est en cours[66]. Ce point se concrétisera par le remplacement des ports série COM par des ports Ethernet RJ45. Au dessus de cette couche, les machines établissent un dialogue normé. Page 23/112les plannings de chaque employé17. Couplée aux informations sur la fréquentation de l'officine, elle peut être une aide intéressante dans la gestion de son équipe. III.C.10. Gestion de la caisse À la fin de chaque journée, le pharmacien réalise le bilan journalier comptable. Le logiciel ayant enregistré le moyen de paiement de chaque achat, affiche les montants ayant transités par le TPE (Terminal de Paiement Électronique), le nombre de chèques encaissés et le montant des recettes en espèces. Le pharmacien contrôle la réalité de ces informations et peut procéder à la correction des erreurs éventuelles. Cette fonctionnalité est fortement liée à celle de la comptabilité présentée au chapitre III.B.3. . III.C.11. Préparation des doses à administrer Dans la loi Hôpital Patient Santé Territoire[70], un pharmacien peut devenir le pharmacien référent d'un EHPAD (établissement d'hébergement pour personnes âgées dépendantes) dépourvu de pharmacie à usage intérieur (PUI). Souvent nécessaire pour l'obtention du marché des EHPAD, la préparation des doses à administrer (PDA) peut être effectuée manuellement ou à l'aide d'un automate. Le pharmacien devra rester vigilant sur la traçabilité et le circuit du médicament. En effet, la PDA s'effectue actuellement malgré un flou juridique qui l'entoure : la loi n'autorise pas le déconditionnement c'est-à-dire le fait de sortir un médicament du blister18. Dans sa thèse, Marine GRENIER[71] effectue une analyse législative et réglementaire sur cet aspect et conclue que le déconditionnement et la PDA manquent d'accord cadre sur le sujet. III.C.12. Comparateur de prix La pharmacie est un établissement de santé, mais aussi un établissement à vocation commerciale. À ce titre, les prix des spécialités accessibles sans ordonnance ou ceux des produits cosmétiques présentent un certain attrait pour les personnes fréquentant l'officine. Certaines sociétés collectent auprès des pharmacies leurs prix de vente et fournissent à chacune la moyenne calculée chez les pharmacies géographiquement proches et également adhérentes au dispositif. Les sociétés proposant ce services sont listées au chapitre IV.E.2. III.C.13. Gestion des sauvegardes sur un serveur distant La loi exige du pharmacien la possibilité de consulter son ordonnancier, même plusieurs dizaine d'années après l'acte pharmaceutique (voir chapitre III.A.3. ). Un système de redondance19 au sein du système informatique est un moyen de se prémunir des pertes de données dues à un défaut du disque dur. Habituellement, un ordinateur ne possède qu'un seul disque dur. Toutefois, de part l'importance de sa fonction, les serveurs 17 Dans sa thèse de 2011[49], Guillaume AUBERT regrette l'absence de partage en ligne via CalDAV (protocole d'édition de calendriers et d'événements en ligne) ce qui le rend inutilisable sur un smartphone. 18 Pour les stupéfiants, le fractionnement de la spécialité en unité est autorisé. 19 via le système RAID - Redundant Array of Independent Disk. Plus d'information dans la Thèse de Nicolas NEGRO[72] Page 24/112peuvent avoir deux ou plusieurs disques. C'est la redondance : pour simplifier, chaque disque est la copie exacte d'un autre. Le défaut d'un disque n'empêchera pas alors l'ordinateur de fonctionner. L'obligation légale de présenter l'ordonnancier nécessite, par précaution, un processus de sauvegardes externes : les disques durs externes sont à préférer aux clefs USB et aux DVD qui sont plus lents à l'écriture. Encore mieux, le pharmacien peut utiliser un NAS (Network Attached Storage pour serveur de stockage en réseau) qui est un mini ordinateur stockant exclusivement des données. La qualité de support influence sur la durée de vie de la sauvegarde, l'informatique étant encore loin d'égaler la conservation du papier20 ! Il faut donc un minimum de deux supports différents pour éviter qu'un défaut matériel sur l'un d'entre eux rende la sauvegarde inutilisable. Cependant les sauvegardes locales sont le plus souvent stockées sur le lieu même de l’officine quand ce n'est pas dans la même pièce que l'ordinateur. Un désastre (dégât des eaux, incendie, vol, …) sur l'officine risque d'affecter aussi bien les ordinateurs, que la sauvegarde locale. Mais avec l'augmentation des débits apportée par l'amélioration des terminaisons ADSL, voir l'arrivée de la fibre optique, les pharmaciens peuvent désormais effectuer des sauvegardes sur un serveur distant (alias « cloud ») qui présentera une assurance lors de vols ou de dégâts majeurs à l'officine. L'hébergeur de ces données devra garantir une sécurité accrue puisqu'elles contiennent des informations personnelles médicales. De même, le chiffrement est obligatoire avant le transport des données vers le serveur et sur le support de stockage distant. La loi a ainsi créé le statut d' « Hébergeur de données de Santé »[73][74], l'ASIPSanté fournissant une liste[75]. III.C.14. Étiquettes électroniques La loi impose à tout commerce à ce qu'un client connaisse le prix d'un produit avant l'achat. C'est pourquoi les prix sont affichés distinctement près du produit. Les étiquettes électroniques sont des écrans à cristaux liquides qui affichent le prix, voire d'autres informations. Leur affichage peut être modifié à distance via un signal infra-rouge[72]. Leur intérêt est la rapidité de déploiement d'un changement de prix. III.C.15. Gestion des terminaux de paiement électronique (TPE) Le terminal de paiement électronique (TPE) est souvent fourni par les banques par un contrat de location. Toutefois, certains éditeurs fournissent le TPE à leur clients et permettent une intégration de ce dernier au sein du logiciel, évitant une erreur de saisie entre le LGO et le terminal bancaire. Le pharmacien devra s'assurer de la qualité de connexion qui constitue un goulot d'étranglement pour les TPE : une ligne téléphonique de mauvaise qualité provoque une augmentation du temps de réponse du TPE. 20 On estime la durée de vie d'un CD-Rom à quelques dizaines d'années contre plusieurs centaine pour le papier. Page 25/112III.C.16. Fiche conseil Lors de la vente de médicaments, certains patients préfèrent une documentation papier à des explications orales. Certains éditeurs ont réalisé un lot de fiches expliquant certains points essentiels du traitement (manipulation, précaution d'emploi,…). III.C.17. Suggestion de vente ou suggestion de conseils Lors de la vente, le LGO offre la possibilité de rappeler à l'opérateur une vente associée ou un conseil à préciser. III.C.18. Pharmacovigilance Tous les professionnels de santé sont tenus[76] de déclarer aux autorités sanitaires les cas d’effets indésirables dus à un médicament. Le pharmacien a cette mission à cœur, de part son statut de spécialiste du médicament. Dans les faits, les pharmaciens rapportent beaucoup moins de cas de pharmacovigilance que les médecins[61] (19% des déclarations[77] serait le fait des pharmaciens, dans la cosmétovigilance le taux est de 11 %[78]). III.C.19. Messagerie sécurisée de santé Il s'agit d'une fonctionnalité encore en développement au sein de l'ASIP-Santé, la messagerie de santé sécurisée (MSS) devrait offrir aux professionnels de la santé un moyen de communication électronique sécurisé et chiffré. Actuellement, les professionnels utilisent des services plus moins gratuit destiné à des particuliers et dont la confidentialité des échanges n'est pas garanti. L'absence de MSS a été fortement critiquée par la cour des comptes en 2002, en 2008 (recommandation 34)[79] et en 2013[9]. Ce système s'appuiera sur la carte CPS pour l'authentification[80]. Chaque professionnel de santé possédera une adresse avec un nom de domaine lié à sa profession[81] (du type @pharmacien.mssante.fr) ou de son établissement. Un système d'annuaire permettra de retrouver tout professionnel ayant activé son adresse. Cet annuaire s'appuiera sur le Répertoire Partagé des Professionnels de Santé (RPPS) qui remplace progressivement les numéros ADELI (Automatisation DEs LIstes). Les pharmaciens inscrits à l'Ordre possèdent un numéro RPPS depuis 2010[82]. Le système fonctionnera sur les protocoles classiques du courriel (SMTP21, IMAP22 couplés à TLS23) et utilisera DKMI24 pour effectuer le filtrage des noms de domaine présents dans une liste blanche[83]. Une partie de ces technologies sont déjà utilisé au sein du protocole SESAM-Vitale (voir à ce sujet le chapitre III.A.1.a.2. ). Pour la phase de tests, le logiciel libre Thunderbird (un logiciel de messagerie électronique) fut proposé au téléchargement[84], l'ASIP-Santé ayant ajouté une extension proposant un assistant de configuration de compte et un annuaire. 21 Simple Mail Transfer Protocol chargé de l'envoi du courrier électronique 22 Internet Message Access Protocol chargé de l'accès au courrier électronique 23 Transport Layer Security chargé de chiffré la communication. Pour en savoir plus : http://www.iletaitunefoisinternet.fr/ssltls-benjamin-sonntag/ 24 DomainKeys Mail Identified permettant d'identifier l'origine du courrier électronique Page 26/112III.C.20. Écran Tactile Ce type d'interface s'est popularisé avec l'usage des « smartphones », on le retrouve aussi dans les caisses des grandes surfaces. L'écran tactile est adapté pour les ventes sans ordonnance où une saisie doit être rapide et simple. III.C.21. Entretien pharmaceutique Depuis le 26 juin 2013[85][86], les pharmaciens peuvent proposer deux entretiens pharmaceutiques par an aux patients sous traitement anti-Vitamine K25. Ces entretiens sont l’occasion de revenir sur la compréhension, qu'à le patient, de son traitement et des contraintes que le traitement lui impose. Les LGO peuvent proposer de gérer la prise de rendez-vous, voir d'assister le pharmacien en réalisant des animations pour l'entretien. III.C.22. Management de l'équipe En tant que patron d'une entreprise, le pharmacien peut proposer des concours (meilleur ventes réaliser en parapharmacie, …) pour motiver l'équipe officinal. III.C.23. Étiquette de posologie Parce que certains patient ont un traitement avec de nombreux médicament ou dont la prise est compliquée, le pharmacien peut proposer l'impression d'étiquettes de posologie à coller sur les boites délivrées. En effet, certains emballage sont de mauvais support pour l'encre des stylos à bille et l'écriture manuscrite n'est pas toujours lisible par le patient. III.C.24. Contrôle de la température du frigo via une sonde Certains médicaments comme les insulines ou les vaccins nécessitent d'être conservés entre 2°C et 8°C. Le pharmacien doit assurer un suivi régulier des températures[87]. Certains LGO proposent de réaliser le suivi au sein même du logiciel si une sonde est présente dans l'enceinte du réfrigérateur. Ils peuvent ainsi alerter, l'équipe officinale d'un dysfonctionnement. Toutefois, le plus souvent, les éditeurs ne proposent pas ce service, c'est le vendeur de la sonde qui offre un programme de suivi avec son matériel. Le programme n'interagit pas avec le LGO. 25 On estime que chaque année les accidents iatrogéniques liés à la consommation d'AVK sont responsables de 17 300 hospitalisations et de 4 000 décès. Ce sont de loin les premiers médicaments responsables d'accidents iatrogèniques. Diminuer leur incident est donc un enjeux de santé publique. Page 27/112III.D \ Services complémentaires externes aux LGO Ces services sont proposés par l'éditeur de LGO à ses clients. Ils sont plus ou moins liés à l'univers de l'officine et à l'informatique. Le plus souvent, ces services ne sont pas obligatoires pour utiliser le LGO et ne s'imposent donc pas au pharmacien. Cela peut comprendre un programme installé à côté du LGO, ou un matériel, ou encore un service à proprement dit. Le Tableau 6 du quatrième chapitre reprend l'ensemble des informations par éditeurs de LGO. III.D.1. Formation in situ ou par e-learning du logiciel La maîtrise d'un outil ne se réalisant pas en un jour, tous les éditeurs proposent une formation sur leurs produits. Celle-ci peut être réalisée avec un formateur au sein de l'officine ou dans les locaux de l'éditeur, ou bien à distance via « e-learning ». Le service après-vente fait souvent de la formation en répondant aux demandes ponctuelles sur les fonctionnalités du LGO. fonctionnalités. III.D.2. Prise en main à distance pour la maintenance et l'assistance téléphonique La maintenance et le service après-vente des LGO rendent ce service obligatoire. Certains LGO permettent de contacter directement l'éditeur au sein même du logiciel (dans les autres cas, le pharmacien appelle un numéro dédié). La prise en main s'effectue le plus souvent avec un logiciel tiers pour les postes tournant sous Windows. Concrètement, le technicien de l'éditeur demandera de lancer le logiciel et de lui fournir un code aléatoire qui terminera de sécuriser la connexion. Ensuite, le technicien prend le contrôle du poste comme si il était physiquement à votre place dans l'officine, évitant un déplacement. III.D.3. Site web Deux types de site web peuvent maintenant être utilisés par les officinaux : • les sites dit « vitrine » qui se veulent informatifs ; • les sites de vente (autorisés par le décret n° 2012-1562[88]) où l'officine ne peut vendre que les médicaments sans ordonnance26 . Les sites de vente exigent un niveau technique plus étendu que le premier : en plus de l'affichage, le site web se doit de gérer les commandes passées, de sécuriser l'acte d'achat, de fournir une interface de gestion plus poussée pour le pharmacien qui doit remplir « virtuellement » l'acte pharmaceutique de la vente (analyse de la demande, conseils associés). Le CNOP reste vigilant sur la légalité des sites web et participe régulièrement à des condamnations des sites web illégaux.[90][91] 26 Le Conseil d'État s'étant opposé à ce que la liste soit restreinte aux seuls médicaments en libre accès[89] Page 28/112III.D.4. Box ADSL, Fax IP Ce service permet ainsi au pharmacien de n'avoir qu'un seul interlocuteur pour les problèmes d'informatique. Certaines offres ADSL incluent la possibilité de dématérialiser l'envoi et la réception de fax, évitant les impressions inutiles des fax publicitaires. Jusqu'en 2004[92] ,la connexion au réseau SESAM nécessitait[93] un accès à un réseau spécifique : le Réseau Sécurisé de Santé (RSS). Cette condition n'a plus cours aujourd'hui. III.D.5. Croix LED Symbole de la profession et marque déposée par le CNOP[94][95], la croix verte est située à l'extérieur, à la vue du plus grand nombre, marquant la localisation de l'officine. Elle est aujourd'hui souvent constituée de LED, est souvent utilisée comme vecteur d'informations pratiques : • affichage des horaires, date du jour ; • températures extérieures ; • affichage des spécialisations de la pharmacie (appareillage médical, naturopathie, ….) • annonce d’événements au sein de la pharmacie. Ces informations sont modifiés informatiquement au sein du LGO ou par un logiciel dédié. III.D.6. Externalisation du tiers payant Même si SESAM-Vitale a facilité une partie de la charge administrative du tiers payant, elle ne l'a pas fait disparaître pour autant. Le pharmacien doit contrôler le paiement des ordonnances ou répondre aux demandes sur la validité des pièces justificatives. Et pour certains dossiers, cela devient vite chronophage ! Les pharmaciens peuvent alors sous-traiter la gestion des tiers payants à des sociétés externes. Ce sont le plus souvent des entreprises dédiées, les éditeurs de logiciels servant alors d’intermédiaires. III.D.7. Création de campagne de communication (papier ou multimédia) Comme tous commerces, la pharmacie possèdent une vitrine où elle peut diffuser des messages selon certaines règles[96]. Le pharmacien n'ayant pas toujours les compétences d'un graphiste, les éditeurs lui proposent avec ce service des modèles prêts à être imprimés. Une variante de ce service utilise des écrans pour afficher les messages promotionnels. Un logiciel dédié sur un poste dédié permet de diffuser des informations, des messages promotionnels. Souvent le logiciel dédié possède des campagnes prêtes à l'emploi avec des thèmes (vétérinaires, saisonnier, … ). Si l'officine travaille avec certains laboratoires, il pourra être pertinent d'utiliser les campagnes que le laboratoire aura créés. Dans tous les cas, le pharmacien devra rester vigilant sur le contenu : il ne faut pas promouvoir des produits absents de ses stocks. Page 29/112III.D.8. Vidéo-surveillance Ce service permet de surveiller les différents recoins d'une pharmacie et peut avoir un effet dissuasif. Toutefois, ce système doit respecter certaines règles[97] et l'enregistrement des images devra faire l'objet d'une déclaration à la Commission Nationale de l'Informatique et des Libertés (CNIL). Le pharmacien devra rester vigilant sur la qualité des images et retenir que même avec ce système, il ne possède aucune autorité pour retenir un suspect au sein de la pharmacie. Si le dispositif d'enregistrement propose un accès distant, le pharmacien devra s'assurer de la sécurisation de ce flux (un journaliste a pu accéder aux vidéos d'une pharmacie via internet[98]). III.D.9. Antivol sur les produits C'est un autre mode de dissuasion contre le vol. Il nécessite un marqueur sur les produits et un détecteur de ces marqueurs aux sorties de l'officine. III.D.10. Distributeur automatique 24/24 Il se présente comme un distributeur de canettes et autres friandises, remplacés toutefois pas des produits de parapharmacie. Son intérêt est son accès à l'extérieur de la pharmacie à toutes heures. Il doit être fixé directement sur un des murs de la pharmacie[99], comme pour les distributeurs de préservatifs. III.D.11. Forum d'assistance et de développement En complément de l'assistance téléphonique, certains éditeurs proposent une assistance via un forum27 permettant l'entraide entre les utilisateurs. Cette entraide comporte des avantages par rapport à l'assistance technique : n'étant pas des techniciens informatiques, les pharmaciens s'expriment avec leurs mots propres, ce qui rend certaines notions ou résolution de problèmes plus accessibles à leur pairs. III.D.12. Applications pour téléphones mobiles Des applications mobiles pour les usagers de l'officine sont disponibles. Les patients peuvent envoyer une ordonnance à leur pharmacie, chercher la pharmacie la plus proche, avoir des rappels d'horaires pour la prise des traitements, communiquer avec le pharmacien. D'autres éditeurs proposent juste un contrôle à distance via applications mobiles pour le télétravail. III.D.13. Pilulier électronique Ce pilulier signale, de manière électronique, au pharmacien toutes les prises de médicaments effectués par le patient. Ce produit est indiqué pour les personnes dépendantes dont le pharmacien se charge du pilulier. Le pharmaciens et la famille du patient ont alors une meilleur garantie du suivi. 27 Sur Internet, espace de discussion publique permettant une communication asynchrone et un archivage de cette discussion. Page 30/112Illustration 3: Schéma des interconnexions interagissant avec l'officine [auteur : C.BRISSET - 2014] Concentrateur Officine A DP Caisses de régime obligatoire d'Assurance maladie Caisses de régime complémentaires Grossistes Fabricant Officine B DMP MSS Collecteur de données économiques Légende : Noir = flux sécurisé via CPS Bleu = données commerciales Violet = échange de donnéeIV) Les acteurs de l'informatique officinale Le lecteur pourra se rapporter à l'Annexe 1 : Liste des éditeurs de LGO et de leurs logiciels s'il souhaite plus d'informations sur les éditeurs, ainsi qu'à l'Annexe 3 : Part de marché des différents LGO durant les 12 derniers mois. IV.A \ Les sociétés de logiciels En 2001, on comptait 25 sociétés commercialisant 36 LGO[100] agréés SESAM-Vitale. En 2014, il n'en reste plus que 15 sociétés qui commercialisent 14 LGO. Par le jeux des filiales et des contrats entre éditeurs, 2 groupes représentaient en septembre 2014 plus de 74 % des parts du marchés[101]. Ces deux groupes (Cegedim, Welcoop) ne limitent pas leurs activités au seul domaine de l'informatique officinale. IV.A.1. Le groupe CEGEDIM Le groupe CEGEDIM possède des activités dans la conception de logiciels pour les médecins, pour les EHPAD, pour les para-médicaux, pour les mutuelles. Certains de ses logiciels ont des déclinaisons à l'international[102] (présence sur le marché des USA, anglais, belge, espagnol, roumain, tunisien, …). Le groupe fournit des services aux laboratoires pharmaceutiques. Cegedim est une société côtée en bourse. Le groupe possède la base de données Dexther-Banque Claude Bernard qui a été la première à recevoir l'agrément de l'HAS. Ce groupe possède un concentrateur (voir le chapitre IV.E.1. ) : Qualitrans-Télépharma et un collecteur de données économique (voir le chapitre IV.E.2. ) : Santestat. Le groupe CEGEDIM possède trois filiales : Alliance Software, PG Informatique et ASP Line. Toutes ces filiales ont acquis un certains nombres de LGO dont la commercialisation a été suspendue : Alliance FES, Premium FES, Servilog, Alliance Plus, Pharmatic, Data Premium et Data Conseil. Le groupe CEGEDIM est donc un acteur de premier plan dans l'informatique médical et para-médical en France. IV.A.2. Le groupe Welcoop Avant 2008, Welcoop était la CERP Lorraine coopérative (voir le chapitre IV.C \). Il propose des activités de maintien à domicile et une centrale d'achat. Sa filiale Pharmagest Interactive a acquis plusieurs sociétés informatiques[103] dont la société belge SABCO (qui commercialise Page 32/112un LGO belge) et la société Malta (qui commercialise un logiciel pour les EHPAD). Cette filiale possède en outre les logiciels suivants qui ne sont plus commercialisés : CIP Global Service et Primoris. IV.A.3. Les autres sociétés Nous avons questionné les sociétés afin de mieux cerner le métier d'éditeur de LGO et les conditions d'utilisation de leur produit. Nous voulions savoir si le LGO était proposé avec toutes ses fonctionnalités ou si certaines étaient en options (par exemple le PDA, ou l'achat par groupement). De même, nous avons cherché à savoir si le pharmacien pouvait s'équiper lui-même matériellement. Page 33/112Société Nombre d'employés Durée d'engagement Fonctionnalités optionnelles Matériel imposé Secteur d'activité Pharmagest Interactive + 700 3 ans Oui Pour le serveur Officine Alliance Software 450 4 ans Oui Oui Officine Everys Inconnu Inconnu Oui Inconnu Inconnu Isipharm 102 3 ans Oui Oui Officine ASP Line 80 3 ans Oui Pour le serveur Officine Caduciel Informatique 45-50 Inconnu Inconnu Oui Officine et propharmaciens PG Informatique 16 + services techniques de Cegedim 1 an Oui Non Officine CIAM 6 1 an Non Non 99 % officine. Cleyris, propharmacien C.E.P.I Soft Office 6 1 an Oui Non 90 % Officine, 10 % conseil aux PME Infosoft ≈ 10 1 an Non Non Officine Laboratoires, Automates La Source Informatique Inconnu Inconnu Oui Non Inconnu Vindilis ≈ 10 1-3 ans Non Non Officine, OSPharm, Novomundis pour CPO Visiosoft 6 1 an Non Non Officine Tableau 1: Descriptif des éditeurs de LGO Deux grandes stratégies commerciales semblent se retrouver dans ce marché : celle de sociétés ayant plus de 2 % de parts de marché (voir Erreur : source de la référence non trouvée présent en annexe) et celle des sociétés ayant une part de marché inférieure à 2 %. Les premières proposent le logiciel et le matériel de façon indissociés (au moins pour le serveur), les fonctionnalité du logiciel sont à la carte et l'officine est leur seul secteur d'activité. Ces sociétés sont souvent adossées à des groupes, à des coopératives ou à des groupement, l'exception étant ici Everys. Les sociétés de la seconde stratégie commerciale n'impose jamais le matériel et ont souvent des durées d'engagement d'un an. Ces sociétés ont des effectifs très faibles, elles ont rarement l'officine comme seuls secteur d'activités économique et sont indépendantes. Page 34/112IV.B \ Les autorités Nous regroupons sous le terme « autorités », les organismes garants de la mise en œuvre des fonctionnalités obligatoires détaillées au sein du chapitre III.A \. IV.B.1. CNDA, GIE SESAM-Vitale, … Le législateur a décidé de confier la gestion du système informatique du système de santé à des groupements d’intérêts économique (GIE) ou des groupement d’intérêts public (GIP). Ce type de structure rassemble plusieurs entités ayant des objectifs économiques communs (GIE) ou dans un but d’intérêt général en passant une convention avec l'État (GIP). Ainsi la création du système SESAM-Vitale, qui comprend l’infrastructure informatique collectant les données (SESAM) et les cartes Vitales, est sous la responsabilité du GIE SESAM-Vitale. Ce GIE regroupe en son sein les régimes maladies obligatoires et les mutuelles[104]. Par contre, le contrôle de la conformité (voir à ce sujet les tableaux 7, 8, 9 et 10 de l'annexe 2) d'un logiciel métier avec le système SESAM-Vitale est de la responsabilité du Centre National de Dépôt et d'Agrément (CNDA) qui est lui sous la responsabilité[6] de la Caisse Nationale de l'Assurance Maladie des Travailleurs Salariés (CNAMTS). Tout logiciel agréé par le CNDA doit avoir déposé son code auprès de cette instance et s'être engagé à ne pas le modifier. La HAS se charge de l'agrément des bases de données et de la définition des référentiels de certification des logiciels de soins. La carte de professionnel de Santé (CPS) était sous la responsabilité GIE CPS qui a été fondu dans l'Agence des Systèmes d'Informations Partagés-Santé (ASIP-Santé). La fusion a été effectuée car la carte CPS est un socle technique pour l'annuaire RPPS, la messagerie sécurisée de santé et le DMP. IV.B.2. Conseil National de d’Ordre des Pharmaciens (CNOP) Le Conseil National de d’Ordre des Pharmaciens a été crée par l'ordonnance du 5 mai 1945. Tout pharmacien souhaitant exercer en France doit s'y inscrire. C'est l'Article L4231-1[105] qui en définit ses missions : L'ordre national des pharmaciens a pour objet : 1°. D'assurer le respect des devoirs professionnels ; 2°. D'assurer la défense de l'honneur et de l'indépendance de la profession ; 3°. De veiller à la compétence des pharmaciens ; 4°. De contribuer à promouvoir la santé publique et la qualité des soins, notamment la sécurité des actes professionnels. L'ordre national des pharmaciens groupe les pharmaciens exerçant leur art en France. C'est lui qui est responsable de la mise en œuvre du Dossier Pharmaceutique (voir chapitre III.A.2. ). Il en a défini le cahier des charges, et en supervise la gestion par le prestataire. Page 35/112IV.C \ Les coopératives Le système coopératif apparaît au cours du dix-neuvième siècle. Citons, la Pharmacie Centrale de France créée par François DORVAULT28 en 1852. Elle est tout à fait une coopérative[106] par ses statuts, mais a l'esprit d'un syndicat ou d'un ordre pour ses objectifs de défense de la profession pharmaceutique29 . Dans sa thèse, Arnaud ANTOINE[107] décrit le système des Coopérative d'Exploitation et de Répartition Pharmaceutiques (CERP) qui appartiennent un groupe de partenaires important de l'officine : les grossistes-répartiteurs. C'est grâce aux obligations légales de ces derniers (décrit dans l'article R5124-59 du CSP[108]) que les officines peuvent fournir en 24 heures maximum, un médicament au patient. Une coopérative est régie par 4 principes : • La règle d'égalité : un homme, une voix. ; • La règle de liberté : chacun peut adhérer ou s'en aller. ; • La règle de justice : la répartition des bénéfices se fait au prorata des activités de chaque membre ; • La règle d'équité : la rémunération des apports en argent est limitée . Les CERP sont apparues en réaction vis à vis des grossistes-répartiteurs dits « capitalistes30 » dont l'OCP et Alliance Santé sont les successeurs. Les officinaux, craignant pour leur indépendance, se sont regroupés au sein de coopératives locales[109] qui, au fil du temps, se sont réunies entre elles pour aboutir aux trois CERP que l'on connaît aujourd'hui. Contrôlés par des pharmaciens, souhaitant répondre à leurs propres désirs de service, les CERP se sont diversifiées, entre autre, dans l'informatique officinale, comme le signale dans sa thèse Arnaud ANTOINE[107] : Coopérative Filiale informatique Logiciel CERP Bretagne Nord Sofirep Aucun LGO proposé CERP Lorraine coopérative31 Pharmagest Inter@ctive LGPI (ex Pharmagest) CERP Rhin Rhône Méditerranée Caduciel informatique Caduciel v6 CERP Rouen32 Isipharm Léo 2.0 Tableau 2: Coopérative et informatique – d'après de la Thèse d'Arnaud ANTOINE 28 Auteur du célèbre ouvrage « L’Officine ou Répertoire général de la pharmacie pratique ». 29 Les syndicats seront autorisés en 1884 par la loi Waldeck-Rousseau, le CNOP a été créé en 1945. 30 Terme impropre puisque tous les grossistes, comme toutes les entreprises doivent produire du capital 31 Devenue le groupe Weelcoop en 2008 et qui a vendu son activité de répartition. 32 Devenue la coopérative Astera en 2008 Page 36/112La répartition n'est pas la seule à utiliser le statut des coopératives pour ses missions, des concentrateurs (voir le chapitre IV.E.1. ) le font aussi (Société des Pharmaciens du Centre[110], OSPHARM ex Coopérative Informatique Pharmacie[111]) ainsi que des groupements (voir le chapitre IV.D \). IV.D \ Les groupements Les groupements sont apparus plus récemment, le plus ancien Giphar, est apparu en 1968[112], mais c'est dans les années 1990 que ce type de structures prennent leur essor, en réaction à la création de la marge dégressive lissée[113]. Les groupements peuvent être des sociétés anonymes (Alphega Pharmacie33, Giropharm, Pharmavie, Pharmactiv34), des association type loi de 1901 (Giphar35), des sociétés à responsabilité limitée (PharmaRéférence), des groupements d’intérêt économique, des coopératives (IFMO)[113]. Toutefois, le terme de « groupements » ne semble pas recouvrir une organisation unique, certaines étant proches de la notion d'enseignes (PharmaRéférence, Univers Pharmacie par exemple). Dans sa thèse Guillaume ANDRE[112] voit quatre périodes historique de création de groupements. À chaque période les groupements sont créés dans un but36 : partage de connaissance, pour acheter auprès des fournisseurs, pour utiliser des services mis en commun et pour appendre à mieux vendre dans l'officine. Dans l'informatique officinale, le groupement Giphar se distingue avec sa coopérative Sogiphar qui possède la filiale informatique Pharmavision. En 1998, Giphar a pu négocier l'accès au code source du logiciel Alliadis après un appel d'offre, pour créer le logiciel Logiphar[113]. C'est pourquoi nous ne différencions pas les 2 logiciels dans notre thèse : Logiphar possède des options qui ne sont pas proposées par défaut dans Alliadis et il est pré- configuré pour les échanges avec les structures du groupement Giphar. IV.E \ Des initiatives syndicales Les syndicats ont aussi joué un rôle dans les outils informatiques utilisés par les pharmaciens. Ce chapitre en liste deux initiatives. IV.E.1. Un concentrateur : Résopharma Créé par un syndicat de pharmaciens - la Fédération des Syndicats Pharmaceutiques de France (FSPF)[114] - Résopharma proposa initialement un service de concentrateur. Grâce à lui, une officine n'avait pas l'obligation de se connecter individuellement à chaque caisse de régime obligatoire pour communiquer les FSE. Le concentrateur s'occupe de collecter les FSE venant des officines et de les envoyer aux différentes caisses. De même, c'est lui qui s'occupe de délivrer à chaque officine les retours NOÉMIE. Le concentrateur peut aussi servir de relais aux listes d'opposition incrémentale de CV. Résopharma commercialise le système Visiodroit qui permet de garantir le paiement de la part complémentaire du ticket modérateur. 33 Filiale du grossiste Alliance Healthcare 34 Filiale du grossiste OCP 35 Giphar est une association, adossé à Sogiphar qui est lui un groupement. 36 que les groupements, précédemment créé, peuvent reprendre à leur tour Page 37/112Résopharma a donc été créée pour éviter un désagrément du système SESAM-Vitale du à l'organisation régionale des caisses. Résopharma est possédé par un groupe de plusieurs syndicats de pharmaciens, FSPF ayant le plus de parts (50%). Il existe d'autres concentrateurs sur le marché[115], citons : Concentrateur des Professionnels de santé de l'Ouest (CPO), Qualitrans-Télépharma de Cegedim ; Tercian regroupement pour la MACIF et l'AG2R LA MONDIALE ; Euro-Information du Crédit Mutuel et du CIC ; Santeffi du Crédit Agricole, Société Informatique des Pharmaciens, Société des Pharmaciens du Centre, Codelis d'Almerys, Caisse d'Avance Pharmaceutique du Nord, Concentrateur du Soleil, Concentrateur Global Nepenthes37 (CGN), … IV.E.2. Un collecteur de données économiques : Pharmastat Là aussi, c'est une création du syndicat FSPF[116] en coopération avec le groupe Groupe IMS Health. Pharmastat collecte les données économiques des ventes (de médicaments ou non) auprès des officines. Celles-ci obtiennent donc un résumé mensuel sur cet aspect avec une comparaison locale de l'officine par rapport aux autres officines ou au niveau national. Le syndicat obtient ainsi des chiffres nationaux sur les médicaments remboursables. Ces chiffres seront utilisés lors des sollicitations auprès de l'État ou lors des négociations avec l'Assurance Maladie qui possède elle-même ses propres chiffres obtenus par le Groupement d’Études et de Recherche sur la Santé (GERS). Il existe d'autres collecteurs de données sur le marché : Celtipharm38, Santestat de Cegedim, Datastat d'Ospharea, Nepenstat de Nepenthes. IV.F \ L’association AURA L’Association des Utilisateurs des Robots et Automates a été créée par Monsieur COMTE. C'est sous son impulsion que va s'établir et se diffuser la norme CD API (voir chapitre III.C.6) aussi appelé par le nom de cette association. Nous n'avons pas pu déterminer si cette association existait toujours, ni rentrer en contact avec Monsieur COMTE. IV.G \La Chambre Syndicale de la Répartition Pharmaceutique (CSRP) Les grossistes-répartiteurs sont des partenaires de premier plan pour l'officine : ils livrent une à deux fois par jour les pharmacies et permettent à la profession de tenir son obligation légale de fournir au patient un médicament en 24 heures (article R5124-59 du CSP[108]). 37 Nepenthès est un groupement de pharmaciens voir chapitre IV.D \ 38 Cette société s'est occupée pour le compte du CNOP des déclarations auprès de la CNIL des officines reliées au DP Page 38/112C'est par l’intermédiaire de la CSRP qu'a été lancée la norme PharmaML (voir chapitre III.B.1.a. ). Elle regroupe l'ensemble des grossistes[117] présents en métropole ou dans les DOM-TOM. Page 39/112V) Taux d'informatisation des officines À partir de l'« Historique des Professionnels de santé en télétransmission » consultable sur le site web de SESAM-Vitale [118], il est possible de suivre l'évolution, depuis 2008, du taux de pénétration des outils de télé-transmission au sein des professionnels de santé. Ces chiffres sont intéressants car ils sont souvent utilisés dans les analyses pour décrire le taux d'équipements informatiques des professionnels de santé. Toutefois, il ne faut pas confondre d'une part l'utilisation de l'informatique par le professionnel de santé dans le seul but de répondre aux besoins administratifs des caisses et d'autre part l'ensemble des autres usages (par exemple : communication aux médecins des résultats de biologie par courriel, rédaction d'une lettre d’hospitalisation à l'aide d'un traitement de texte, etc …), orientés plus ou moins, vers le cœur de métier du professionnel. (voir Illustration 4) Nous constatons ainsi que la progression du nombre de professionnels télé-transmettants est croissante. Les officines se distinguent par un taux de pénétration très important : toujours supérieur de 98 % depuis mai 2008. Mais une série de six creux décroissants attirent notre attention. Ces creux se produisent lors du mois d'août et touchent en particulier les professionnels en exercice individuel : • les orthophonistes ; • les médecins - qu'ils soient spécialistes en médecine générale ou pas ; • les chirurgiens-dentistes ; • les infirmiers ; • les sages-femmes ; • les pédicures ; • les masseurs-kinésithérapeutes ; Les seules exceptions à cette baisse annuelle sont les officines et les laboratoires d'analyses médicales. Pour ces derniers, la variation apparaît toutefois lors des années 2010, 2011, 2012. Nous pouvons poser l'hypothèse que ces creux sont en relation avec les vacances estivales puisqu'ils n'apparaissent qu'au mois d'août, chaque année. Les orthophonistes qui travaillent souvent avec les enfants, sont d'ailleurs la profession qui présente les creux les plus importants (presque 50 % de baisse). Partant de cette hypothèse, nous extrapolons que les chiffres du GIE SESAM-Vitale s'appuient sur le nombre de télétransmissions journalières rapporté aux nombres de professionnels multipliés par le nombre de jours dans le mois. Cette méthode de collecte nous semble expliquer la baisse du mois d'Août : cette baisse ne serait donc pas due à l'arrêt de Page 40/112l'équipement mais à une pause dans l'exercice professionnel. Présenté autrement, le GIE SESAM-Vitale mesure la télétransmission, mais une réponse négative peut être due à : • un professionnel non équipé en dispositif SESAM-Vitale (tout en ayant ou pas une utilisation professionnelle d'un outil informatique) ; • un professionnel ne pouvant télé-transmettre pour des difficultés techniques (panne d'ordinateur, du lecteur, …) ; • un professionnel absent ; • un professionnel qui ne télé-transmet pas tous les jours. Il ne faut pas oublier le statut des « pro-pharmaciens » défini par l'article L4211-3 [119]du code de la santé publique : Les médecins établis dans une commune dépourvue d'officine de pharmacie peuvent être autorisés par le directeur général de l'agence régionale de santé, qui en informe le représentant de l’État dans le département, à avoir chez eux un dépôt de médicaments, et à délivrer aux personnes auxquelles ils donnent leurs soins, les médicaments remboursables et non remboursables, ainsi que les dispositifs médicaux nécessaires à la poursuite du traitement qu'ils ont prescrit, selon une liste établie par le ministre chargé de la santé, après avis du Conseil national de l'ordre des médecins, et du Conseil national de l'ordre des pharmaciens. Cette autorisation ne doit être accordée que lorsque l'intérêt de la santé publique l'exige. Toutefois, leur faible nombre et le fait que seule la norme SESAM-Vitale 1.40 prend en compte leur statut[120] (Esculape, par exemple, propose son logiciel pour les propharmaciens) n'en fait pas une hypothèse valable. Fort de ce constat et du fait que le taux des officines est relativement constant depuis plus de six ans, nous déclarons que le taux d'informatisation des officines est de 100 % sur la base de cette analyse. Page 41/112Illustration 4: Taux de Télétransmission des Professionnels de Santé 2008-2014VI) Logiciels libres et open source (FLOSS – Free and libre open source software) Ce chapitre abordera les notions de logiciels libres et open source aussi dénommés FLOSS. En effet, plusieurs LGO s'appuient sur des programmes appartenant à ce mouvement pour le système d'exploitation et surtout pour le moteur de base de données (voir Tableau 3). De part leur importance dans l'architecture logicielle, les FLOSS sont loin d'être des composants subalternes. Ils sont au contraire des éléments de premier plan, mais souvent méconnus de l'utilisateur final. De plus, il faut rajouter qu'Internet regroupe les normes de communication qu'utilisent SESAM-Vitale39 (SMTP) et le DP (HTTP) pour leurs missions. Internet est composé de FLOSS (le serveur Apache ; les navigateurs web NCSA Mosaic, Konqueror et Firefox ; le courriel avec Thunderbird, Postfix, Sendmail, Zimbra, Cyrus Server, Dovecot, SpamAssasin ; le logiciel de routage BIND). Certains observateurs estiment[121] que le développement d'Internet ne peut pas se faire sans logiciels libres et que les logiciels libres ne peuvent pas se faire sans Internet, ce dernier leur donnant leur dimension collaborative. Enfin, il faut signaler que la France est le pays le plus actif au niveau des logiciels libres[122][123][124] et que cela a incité le cabinet du Premier Ministre à publier, en 2012, la circulaire « Ayrault »[125] incitant les administrations à utiliser ce type de logiciels. Nous ne rentrerons pas en détails dans le système économique des FLOSS, le lecteur curieux pourra se reporter au livre de François ELIE « Économie du Logiciel Libre »[126], au livre Blanc[127] de l'APRIL40 ou bien à celui sur « Les modèles économiques » de Systematic Paris-Région[128]. 39 Cela n'a pas toujours été le cas. Lors de sa création (avant 1998) SESAM-Vitale utilisait des nomes de communication propriétaires : X-MODEM et le réseau Ramage[5] 40 Association nationale cherchant à promouvoir l'utilisation des FLOSS. Page 43/112VI.A \Définitions VI.A.1. Code source et code binaire C'est un pré-requis fondamental pour aborder les notions de FLOSS. Le code source et le code binaire sont les deux faces d'une même pièce que représente le programme. Le code source est la suite d'instructions qui seront exécutées par la machine. Il est écrit dans un langage de programmation en générale lisible par un humain (le développeur). Ce code sera transformé lors de l'étape de compilation en langage compréhensible par la machine : le code binaire ou code compilé. Ce code binaire peut être directement exécuté sur la machine au contraire du code source. L'analogie la plus courante pour faire comprendre ces notions est celle de la recette et du gâteau. La recette est le code source, le gâteau est le code binaire. Seuls de très bons goûteurs pourront retrouver la recette à partir du gâteau et cela ne garantit pas qu'ils puissent reproduire le savoir-faire du chef cuisinier. Alors que le chef peut à loisir jouer sur les ingrédients ou le temps de cuisson pour changer l'aspect et le goût du plat, puisqu'il connaît la recette. VI.A.2. Logiciel libre et Open-Source C'est historiquement la Free Software Fondation41 (FSF) qui a défini le Logiciel Libre dans la licence GNU42 Public Licence, alias GPL. Les versions les plus connues sont la version 2 et la version 3[131][132]43. La FSF résume ce contrat juridique en 4 points qu'elle nomme les 4 libertés : • liberté d'utiliser le logiciel ; • liberté de l'étudier en accédant au code source ; • liberté de modifier ce code source ; • liberté de distribuer les modifications apportées aux codes sources. Ainsi, le but de la FSF est de redonner à celui qui acquiert un logiciel libre, les mêmes droits que celui qui l'a édité. Par la même, la GPL offre une souveraineté de l'utilisateur sur son logiciel. Toutefois, ces droits s'accompagnent de devoirs : l'utilisation doit concéder, aux utilisateurs, les mêmes droits aux modifications qu'il aura apportées au code source (partie 4 de la GPLv2). Ce dernier point, fondamental, donne son aspect héréditaire à la licence GPL : tous les logiciels-fils devront posséder une licence similaire au logiciel-père. Cette hérédité est une des principales différences entre les logiciels libres et les logiciels Open-Source, ces derniers ne la rendant pas obligatoire. 41 Fondé par Richard Matthieu STALLMAN 42 Le projet GNU est un projet ayant pour but de réaliser tous les logiciels nécessaire à un ordinateur sous GPL. 43 Des traductions francophones non officielles sont aussi disponibles :[129][130] Page 44/112L'Open Source met plutôt en avant son mode de fonctionnement collaboratif44 ouvert à tous. Ce n'est pas une obligation[133] pour le logiciel libre, mais le fonctionnement collaboratif y aussi est le plus couramment rencontré. Parmi les licences open source et/ou libres, les licences GPL, MIT, BSD et Apache sont les plus utilisées[134]. Au lieu de s'opposer au droit d'auteurs, les licences libres l'utilisent pour décrire ce que l'utilisateur peut faire sans demander l'autorisation de l'auteur du logiciel. Alors qu'en général, les contrats d'utilisation des logiciels expliquent le plus souvent ce que l'utilisateur ne peut pas faire, les licences libres décrivent d'abord ce qu'il peut faire grâce à la cession irrévocable des droits (« les quatres libertés »). Enfin, le contrat juridique ne parle pas de vente, ainsi le raccourci « logiciel libre égale gratuit » n'a aucun fondement légal (mais l’ambiguïté du terme anglais free joue ici une forte responsabilité). Il est autorisé de vendre un logiciel libre, mais la GPL explique que l'on ne peut pas empêcher l'acheteur de le céder gratuitement à un tiers : l'acheteur par son achat acquiert le statut d'éditeur et peut à ce titre choisir le prix du logiciel, même s'il n'a pas modifié le code (préambule de la GPL et son chapitre 6). Ainsi la société états-unienne RedHat, leader sur le marché des logiciels libres et Open Source, a réalisé plus d'un milliard de dollars de chiffres d'affaires en 2013[135]. VI.A.3. « Libre de droits » Nous profitons de ce chapitre pour dissiper un abus de langage : souvent en parlant de logiciel libre ou d'Open Source, certaines personnes parlent de logiciel « libre de droit ». Sans développer les différences45 juridiques entre le copyright anglo-saxon et le droit d'auteur français, il nous semble important de rappeler ce point : en France, toute œuvre qui arrive dans la sphère publique (photographies, livres, logiciel, etc …) se doit de posséder un auteur. L'œuvre est rattachée ainsi aux droits dits « moraux » 46 de l'auteur qui se doit d'assumer sa paternité avec l'œuvre. Ainsi, dans le droit français47, une œuvre ne peut pas être « libre de droit ». VI.A.4. Freeware alias gratuiciel C'est un logiciel cédé gratuitement par l'éditeur qui ne publie pas le code source et in fine conserve son logiciel sur un mode propriétaire (le code est reste sa propriété). Cette session est souvent promotionnelle, l'éditeur limitant dans le temps l'utilisation du logiciel ou bien la version payante possédant une grande offre de fonctionnalités. 44 Le lecteur pourra lire à ce sujet le livre « La Cathédrale et le Bazar » de Éric S. Raymond qui parle de l'organisation de ce travail communautaire : http://www.linux-france.org/article/these/cathedrale-bazar/ 45 Nous pouvons proposer au lecteur curieux de lire le contenus de ces liens qui nous semblent couvrir le sujet, sous toute réserve, puisque nous n'avons pas de formation juridique : http://lioneldavoust.com/2012/il-faut-cesser-damalgamer-droit-dauteur-et-copyright/ http://blogs.rue89.nouvelobs.com/en-pleine-culture/2009/12/26/du-copyright-anglo-saxon-et-du-droitdauteur-a-la-francaise-130388 https://www.dgdr.cnrs.fr/daj/propriete/droits/Docs/comparatif-auteur-copyright.pdf 46 À la différence des droits dits « patrimoniaux » qui sont cessibles. 47 Par contre dans la logique anglo-saxons du copyright, le domaine public est « libre de droit » puisque le droit moral n'est pas mis en avant. Page 45/112VI.A.5. Le droit des marques Le droit des marques existe aussi pour les logiciels libres. Les logiciels libres Linux[136], Firefox[137][138], Apache OpenOffice[139], LibreOffice[140] sont des marques déposées. Les fondations les utilisent[141][136] pour demander à la justice de condamner les acteurs malveillants qui ne respectent pas les aspects légaux. Ils nuisent à l'image de ces fondations et à la réputation des logiciels libres. VI.B \Exemples de logiciels Ce chapitre va montrer des exemples de logiciels et de leur éditeur. VI.B.1. Le noyau Linux Sûrement un des logiciels libres les plus connus, ce noyau (la tour de contrôle d'un système d'exploitation) est parti du travail universitaire de Linus Torvald qui l'a diffusé sur l'Internet naissant. C'est, en partie, de l'observation de son organisation du travail entre les développeurs qu'a été théorisé le mouvement Open Source. Ce noyau, qui est accessible gratuitement sur l'Internet, est rencontré dans nombre de produits électroniques : des systèmes embarqués de voitures ou d'avions, des smartphones (avec Android) en passant par les supercalculateurs de la météo des « box » internet des fournisseurs d'accès à internet. Le seul domaine de l'informatique qui lui résiste encore - et toujours ! - est celui des ordinateurs pour la bureautique. On le rencontre au sein des serveurs de quatre LGO (Alliance Premium, LGPI, Periphar, Vindilis). Linux représente le socle de plus de la moitié des serveurs de la planète[142][143]. Actuellement, le noyau est supervisé par la Linux Foundation qui emploie Linus Torvald. Cette fondation regroupe toutes les grandes entreprises de l'informatique ou d'autres domaines comme Oracle, Samsung, Intel, HP, IBM, Jaguar Land Rover, NEC, Cisco, Google, Suse, Toyota, Adobe, Amazon, le français Bull48, Dell, Red Hat, DreamWork, Canonical (liste non exhaustive, cf [145]). Ces sociétés emploient des développeurs dont le travail est essentiellement centré sur le noyau Linux. Sur une période de 15 mois, 1100 développeurs de 255 sociétés ont collaboré sur Linux[146]. Récemment, Microsoft, l'éditeur de Windows (présenté comme le grand rival des distributions basées sur Linux), a fourni des développeurs pour travailler sur le noyau Linux[146][147]. 48 Qui a fournit le SE Prologue utilisé en Officine jusqu'au début des années 2000[144] Page 46/112VI.B.2. Mozilla Firefox C'est un programme chargé de naviguer parmi les pages HTML du web. À la différence de ces concurrents, il est le seul navigateur sous licence GPL (Chrome de Google est en partie sous licence Open Source) et surtout le seul soutenu par une fondation (la Mozilla Foundation49[148]) qui contrôle une entreprise : la Mozilla Corporation[149]. C'est de celle-ci que provient la majorité du travail de développement, puisqu'elle emploie plus de mille employés. Le code est écrit en majorité par l'entreprise, mais des développeurs bénévoles y participent également (la lecture de SVG et de MathML a été réalisé en partie par des développeurs tiers). De Firefox, sont sortis plusieurs logiciels libres fils : Iceweasel50 ; une version de Firefox qui s'installe et se lance depuis une clé USB51 ; le lecteur multimédia SongBird et le dernier né : Firefox OS qui sert de système d'exploitation (SE) pour téléphones mobiles. VI.B.3. LibreOffice Il est né de la rupture au sein des développeurs de OpenOffice.org. Cette dernière était une suite bureautique multiplate-forme. Elle a créé le premier format bureautique normalisé par l'ISO : l'Open Document Format (ODF). LibreOffice est supervisé par une fondation allemande : The Document Foundation qui regroupe un ensemble d'entreprises qui vivent de leurs connaissances de ce logiciel. Elles vendent notamment du support étendu aux entreprises et aux administrations : LibreOffice possède un cycle de vie de six mois environ, ces entreprises prennent en charge la résolution des problèmes rencontrés pendant et au-delà de cette période. VI.B.4. PostgreSQL PostgreSQL est un moteur de base de données qui est distribué sous licence Open Source[150]. Il a été initialement développé à l'université Berkeley52 de Californie. Ce moteur est multiplate-formes et fonctionne aussi bien sur Windows, Mac OS, Linux, *BSD et une dizaine d'autres SE ainsi que sur autant d'architectures matérielles différentes. Beaucoup de bases de données d'officine s'appuient sur le langage SQL53, cinq LGO (Caduciel, Esculape, Periphar, Pharmaland, Vindilis, Visioft, Winpharma) utilisent un moteur de base de données Open Source ou sous licence Libre. Parmi elles, un LGO (Vindilis) utilise PostgreSQL (voir le Tableau 3). 49 Mozilla a aussi créé le logiciel de messagerie électronique Thunderbird, utilisé par l'ASIP-Santé pour tester la messagerie de santé sécurisée[84]. 50 version débarrassée de certains de ses composants – notamment la marque Firefox - pour la rendre compatible avec la distribution distribution Debian 51 Retrouvé au sein de la framée :http://www.framakey.org/ 52 Berkeley est le B de la licence BSD 53 Structured Query Language Page 47/112VII) Tableaux comparatifs Ce chapitre présente le résultat des fonctionnalités et les services listés dans les chapitres précédents en les rangeant par logiciel. VII.A \ Méthodologie Sachant que le dossier pharmaceutique et les fonctionnalités de SESAM-Vitale sont obligatoires, nous sommes partis du postulat que tout logiciel qui ne proposerait pas ces fonctionnalités ne serait absolument pas utilisable pour les officines françaises et ne constituent donc pas des LGO. Nous avons exclus de nos recherches, les logiciels non commercialisés, même si ils sont encore utilisés. L'accès au réseau SESAM-Vitale nécessite un agrément de la part des autorités. Ces dernières fournissent une liste, actualisée régulièrement, sur les logiciels agréés à la norme SESAM-Vitale 1.40[151] ou au SCOR[152]. Le CNOP a, lors de la promotion du DP en 2011, publié une liste de sociétés et de leurs logiciels[153]. Au cours du premier trimestre 2014, nous avons recherché le site web de chaque logiciel et listé à partir de ces derniers, les fonctionnalités déclarées par les éditeurs. Dans ces listes, seuls deux logiciels n'ont pu être trouvés : • IBSM Sort qui produisait PharmaSoft[154]. Le greffe du tribunal de commerce de Bordeaux nous a confirmé son dépôt de bilan. • IP3 (Informatique Pour et Par les Pharmaciens) qui produisait Magic Vente. La chambre de commerce de la Rochelle nous a expliqué qu'elle était en « sommeil » et donc n'avait pas d'activité pour l'instant. Le logiciel Logiphar de la société Pharmavision présente une particularité : c'est une version personnalisée pour le groupement Giphar54 du logiciel d'Alliadis. Nous ne ferons pas de distinction dans les tableaux entre ces 2 logiciels. Pour l'anecdote, le CNDA diffuse aussi la liste des logiciels qui sont en cours d'agrément et un nouveau LGO y apparaît. Après contact, celui-ci est encore en développement et son nom n'est pas encore trouvé. La liste des fonctionnalités affichées sur les sites Internet des sociétés éditrices ont été vérifiées par téléphone auprès de ces mêmes sociétés. Chacune des fonctionnalités ont été détaillées dans le chapitre III). L'appellation de ces fonctionnalités a été unifiée pour permettre une comparaison entre LGO. Les fonctionnalités répertoriées par LGO n'ont pas été testées. Il n'existe aucun niveau de preuve de leur complétude autre que la déclaration de la société éditrice. Ceci peut constituer un biais. 54 Giphar fournit pour quelques pharmacies le logiciel Esculape à la place d'Alliadis. Page 48/112Le système d'exploitation requis pour faire fonctionner le LGO ainsi que les logiciels gestionnaires de base de données sont les premiers éléments analysés. VII.B \ Système d'exploitations requis et système de gestion des bases de données Logiciel Éditeur Linux [source : éditeurs] Mac OS [source : CNDA ] Windows [source : CNDA ou éditeurs] Moteur de Base de Données [source : éditeurs] Alliance Premium Alliadis Linux Use-IT Open Criteria & PostgreSQL Logiphar55 Pharmavision Linux Use-IT Open Criteria & PostgreSQL OPUS PG Informatique XP, Seven, 8, et serveur ODBC Hyperfile Périphar ASP Line Linux Use-IT Open Criteria & MySQL Winpharma Everys XP MySQL LGPI Pharmagest Interactive CentOS (Client) Oracle Pharmaland La Source Informatique XP, Seven MySQL et HyperfileSQL Léo 2.0 Isipharm XP, Seven, 8 Microsoft SQL Server 2012 Caduciel 6 Caduciel Informatique XP Firebird PharmaVitale C.E.P.I Soft Office XP, Seven Microsoft SQL Server Esculape CIAM XP, Seven SQLite Crystal Infosoft XP, Seven Développement interne Vindilis Vindilis Ubuntu serveur X XP PostgreSQL Visiosoft Visiopharm XP, Seven, 8 MySQL Logiciel X Société X XP Non communiqué Tableau 3: Système d'exploitations requis et système de gestion des bases de données Les sociétés marquées d'une couleur appartiennent à un même groupe. Les moteurs de bases de données soulignés sont des FLOSS. 55 Logiphar est une version personnalisée d'Alliance Premium vendu à Pharmavision. Page 49/112Les LGO utilisent le système client/serveur : un poste centralise les données, c'est le serveur. Un ou plusieurs postes la consultent et l'affichent à l'utilisateur : ce sont les clients. Ce principe est retrouvé sur le web : vous accédez au site www.monexemple.fr dont l'ordinateur, le serveur, est situé en un point géographique (une salle technique d’un hébergeur) et votre ordinateur via votre navigateur web (le client) vous affiche la page d'accueil. Les LGO qui utilisent le système Linux, le font majoritairement sur la partie serveur du système. Ce dernier est placé dans l'arrière-boutique. Les clients, c'est-à-dire les postes au comptoir, sont couramment sous Windows. Toutefois, l'éditeur peut proposer une session déportée appelée aussi « platine56 » : un poste de travail est créé en utilisant simplement un écran, une souris, un clavier, un lecteur de carte, un lecteur de code barre. Une « platine » n'utilise pas d'unité centrale, les périphériques sont reliés au serveur qui fait fonctionner en parallèle un autre poste que celui dévolu au serveur. Ce système de multiposte a souvent été utilisé au début de l'informatique officinale avec les système UNIX, Prologue et OS/2[155]. D'ailleurs, le fait de faire tourner le LGO directement sous Windows a été un argument commercial[156][157] : les systèmes d'exploitation UNIX/Linux avait, avant les années 2000, une interface utilisateur austère, orienté vers l'usage d'un technicien en informatique. L'interface utilisateur du système d'exploitation Windows étant devenue populaire, elle mettait en confiance les pharmaciens qui utilisaient des LGO exploitant cet environnement. De plus, ils pouvaient utiliser leur outil informatique pour d'autres usages (comme de la bureautique) que celui du LGO. Enfin par effet réseau, les laboratoires proposent des petits programmes (catalogue d'homéopathie, de phytothérapie, d'huiles essentielles, de génériques, …) qui ne fonctionnent que sous Windows. Bien que la prise en charge de Windows XP ne soit plus prise en charge par Microsoft depuis avril 2014[158], les éditeurs de LGO estiment que les clients qui sont encore sous XP auront migré vers Windows 7 avant la fin de l'année 2014. 56 Appeler aussi terminal par les informaticiens. À notre connaissance, seul Allaidis propose ce type de dispositif. Page 50/112VII.C \ Liste des fonctionnalités obligatoires et indispensables Tableau 4: Liste des fonctionnalités obligatoires et indispensables dans les différents LGO Logiciel Alliance Premium OPUS Periphar WinPharma LGPI Pharmaland Léo 2.0 Caduciel 6 PharmaVitale Esculape Crystal Visiosoft Vindilis Logiciel x Obligatoires SESAM-Vitale ✆ ✆ ✆ ✆ ✆ ✆ ✆ ✆  ✆  ✆ ✆  SCOR V 2.+ GEDscan 140.8 ✆ 8.2 2.00 9.50 2.3 6.04 1.404 ✆ ✆ 3.40 2.3 1.10 DP (2011)             ✆ 57  BdD médicaments BCBDexther BCBDexther BCBDexther Thesorimed VIDAL 58 VIDAL VIDAL VIDAL VIDAL VIDAL VIDAL VIDAL VIDAL VIDAL Indispensables Gestion de stock     ✆  ✆ ✆      PharmaML   *     ✆  *     Fiches patients, praticiens ✆  ✆  ✆  ✆ ✆ ✆  ✆   Comptabilité ✆ ✆ ✆  ✆ ✆ ✆ ✆   ✆ ✆ Gestion des droits ✆ ✆  ✆ ✆ ✆ ✆ ✆ ✆  ✆ ✆ ✆ Garantie de paiement ✆ ✆  VisioDroit  VisioDroit prochainement ✆ Cleyris, VisioDroit VisioDroit ✆ OSPharm Légende :  : informations obtenues sur le site web de l'éditeur ; * : informations obtenues via un site web tiers ; ✆ : informations obtenues en questionnant l'éditeur ; nombre : numéro de version du logiciel. 57 À la demande du CNOP, ils sont passés sur la V2. L'agrément devrait arriver sous peu. 58 LGPI utiliserait aussi ClickaDoc, mais lors de nos questions l'éditeur nous a parlé seulement de VIDAL.VII.D \ Liste des fonctionnalités optionnelles Tableau 5: Liste des fonctionnalités optionnelles dans les différents LGO Logiciel Alliance Premium Logiphar OPUS Peri-phar WinPharma LGPI Pharmaland Léo 2.0 Caduciel 6 PharmaVitale Esculape Crystal Visiosoft Vindilis Logiciel x Opinion pharmac eutique ✆ ✆ ✆ ✆  ✆ ✆ ✆ Achats groupés  OPUS Plateforme  Officentral   ✆ interface web VisioGroupe  Gestion des collectivités ✆  ✆  ✆ ✆ ✆  ✆ ✆ ✆ Télé- travail ✆   Domisecure  SMS  ✆     Robots/ automates    ✆   ✆   ✆  ✆  Carte de fidélité  Couponing  Dynamic  Matériel de location LMN         Emploi du temps Pharma RH Logiciel Alliance Premium Logiphar OPUS Peri-phar WinPharma LGPI Pharmaland Léo 2.0 Caduciel 6 PharmaVitale Esculape Crystal Visiosoft Vindilis Logiciel x Gestion de la caisse   ✆ ✆ ✆  ✆   ✆ ✆ ✆ PDA ✆  ✆  ✆ ✆    ✆ ✆ ✆ Comparateur de prix Santestat/ Atout Prix IMSHealth/ Pharmastat    Sauvegardes sur un serveur distant DataProtect   Agré- ment HDS   Étiquettes électroniques Sin Etiq Sin Etiq       ✆ TPE  Offizy Fiche conseil  ✆     Suggestion de vente/ conseil  ✆   Pharmaco vigilance ✆ ✆ ✆ MSSanté ✆ test Écran Tactile ✆   Logiciel Alliance Premium Logiphar OPUS Peri-phar WinPharma LGPI Pharmaland Léo 2.0 Caduciel 6 PharmaVitale Esculape Crystal Visiosoft Vindilis Logiciel x Entretien pharmaceutique SuiviPat ient MonSui viPatient ✆  Managem ent/ challenge  Étiquettes de posologie Pilul Etiq ✆ Poso'Net   Températures : contrôle et suivi ✆ ✆ Légende :  : informations obtenues sur le site web de l'éditeur ; ✆ : informations obtenues en questionnant l'éditeur ; nom : nom commercial de la fonctionnalité.VII.E \ Liste des services complémentaires proposés par les éditeurs en dehors du LGO Tableau 6: Liste des services complémentaires proposés par les éditeurs en dehors du LGO Logiciel Alliadis PG Informatique ASP Line Everys Pharmagest Interactive La Source Informatique Isipharm Caduciel Informatique C.E.P.I Soft Office CIAM Infosoft Visiopharm Vindilis Logiciel x Formation du logiciel ✆       Prise en main à distance ✆ ✆ Contrat fidélité ✆ ✆ ✆ ✆ ✆  ✆  ✆ Site web (vitrine ou de vente) ✆ Vente Interpharma (Vente) Vitrine + gestion dossier patient Pharmattitude + Vente E- presence / Epharma Box ADSL, Fax IP PharmaDSL   Croix LED Signal LED Signal LED Externalisation du tiers payant Extern@ TP Extern @TP Cleyris ™ Emis Santé® Logiciel Alliadis PG Informatique ASP Line Everys Pharmagest Interactive La Source Informatique Isipharm Caduciel Informatique C.E.P.I Soft Office CIAM Infosoft Visiopharm Vindilis Logiciel x Création de campagne de communic ation PharmaCom /Light Clip /Clip Santé /Clip Frimousse Clip Santé  Offimédia Vidéosurveillan ce Visio Protect Visio Protect  winSécurité Offiseen  Antivol sur les produits Paraprotect Paraprotect Distribut eur automati que Pharma 24 Pharm a 24 Forum d'assistance et de développement  Réseaux sociaux d'achats  messagerie intégrée (Officentral)Logiciel Alliadis PG Informatique ASP Line Everys Pharmagest Interactive La Source Informatique Isipharm Caduciel Informatique C.E.P.I Soft Office CIAM Infosoft Visiopharm Vindilis Logiciel x Application smartphone  (télé- travail)  (télé- travail)  Ma Pharmacie Mobile  (télé- travail) ✆ Pilulier électronique ✆ DO-Pill Secure™ Légende :  : informations obtenues sur le site web de l'éditeur ; ✆ : informations obtenues en questionnant l'éditeur ; nombre : numéro de version du logiciel ; nom : nom commercial de la fonctionnalité.VIII) Discussion VIII.A \ Critique de la méthode Notre méthode a constitué en recueil d'informations sur les sites web des éditeurs et des autorités, associé à une recherche bibliographique au sein des différentes thèses pouvant nous éclairer sur les sujets traités. Ce recueil a été complété par des questions aux éditeurs pour compléter les informations obtenues et par une lecture des rapports institutionnels. Il nous est vite apparu que certaines fonctionnalités étaient nommées différemment selon notre interlocuteur. Ainsi, il n'a pas toujours été facile de se faire préciser la présence ou non de certaines fonctionnalités. Par exemple, les fonctionnalités de pharmacovigilance ou d'opinion pharmaceutique ont dû parfois être explicitées pour éviter une confusion avec la gestion de l'historique des interactions pour le premier ou avec le dossier pharmaceutique pour le second. Notre méthode de collecte est fortement liée à la déclaration des éditeurs puisque nous n'avons pas contrôlé les déclarations des éditeurs en testant leur logiciel en situation réelle. Certaines fonctionnalités nécessitent un automate, ce qui rendrait une méthode de test en situation réelle plus difficile à réaliser. De plus, les interfaces utilisateur étant différentes entre les LGO, un contrôle en situation réelle aurait sollicité beaucoup de temps pour prendre en main ces interfaces avant de pouvoir contrôler la présence ou non d'une fonctionnalité. Afin d'obtenir un tableau clair, il nous a fallu effectuer des choix. Par exemple, certains éditeurs mettaient en avant sur leur site web la possibilité de gérer les litiges, les avances, les dettes et les relances. Cette fonctionnalité nous a semblé relever de celle de la comptabilité couplée avec la gestion des fiches de patients, voire être couverte par la fonctionnalité de gestion des collectivités. Au final, nous avons choisi de ne pas afficher cette fonctionnalité. De même, la qualification d'indispensable ou d'optionnelle est un choix partial. Ces choix sont dépendants de notre expérience officinale : un titulaire aurait, sûrement, donné une autre sélection de fonctionnalités et les aurait qualifiés différemment. Les fonctionnalités de pharmacovigilance et de messagerie sécurisée de santé n'étaient pas présentes sur les sites web des éditeurs. C'est pour satisfaire notre curiosité que nous les avons rajoutées à la liste. Au début de nos études, l'opinion pharmaceutique nous avait été présenté. Mais nous ne l'avons jamais utilisé lors des stages en officine. C'est pourquoi, nous avons voulu déterminer sa présence dans les LGO. Ainsi, si nous pensons que la liste des LGO est exhaustive, nous ne prétendons pas que l'énumération des fonctionnalités l'est. De plus, certains éditeurs travaillent « à la demande » : si un client exprime le besoin d'une fonctionnalité, celle-ci peut être développée et proposée à l'ensemble des clients sans surcoût. Nos tableaux comparatifs sont donc des photographies d'un instant donné. Page 58/112VIII.B \ Les pharmaciens sont des acteurs de l'informatisation de l'officine Le lecteur pourra remarquer dans le chapitre IV que les éditeurs sont souvent affiliés à un pharmacien : soit parce que ce sont eux qui ont créé la société (exemple des CERP ou du groupement Giphar), soit parce que l’éditeur s'est rapproché d'un pharmacien pour obtenir des conseils sur la conception du logiciel et mieux cerner les besoins de ses clients. Mais cette implication dans le secteur informatique ne se limite pas aux éditeurs. Les pharmaciens ont su se fédérer pour obtenir des outils influençant l'ensemble de la profession et plus largement le monde de la santé. Le syndicat FSPF a créé un concentrateur pour faciliter l'exercice de l'officine vis à vis de l'administration mettant en place SESAM-Vitale. Mais Resopharma propose maintenant ses services à tous les professionnels de santé. De même, le CNOP a créé le DP dans un but politique : affirmer l'importance du réseau officinal alors que les pharmaciens n'étaient jamais cités dans l'utilisation du DMP[23] et rappeler à tous l'indépendance des pharmaciens. On peut voir la mise en place du DP comme un projet pilote avant le lancement du DMP. Huit ans après, le projet pilote est déployé dans 98,8 % des officines -22 272 officines- et il est proposé dans 5,2 % pharmacies hospitalières -140- (chiffres du 29 septembre 2014). Les médecins hospitaliers des urgences, de gériatrie et anesthésie vont pouvoir consulter les informations contenues dans le DP : l'outil ne bénéficie donc pas aux seuls pharmaciens, mais peu à peu à l'ensemble des professionnels de santé et indirectement aux malades. De plus, ce sont les pharmaciens qui payent aujourd'hui la maintenance et l'évolution à travers leur cotisation ordinale[33] et non la collectivité. Cela garantit au CNOP une certaine marge de manœuvre dans l'évolution de l'outil. Le DMP est, lui, à son troisième plan de relance financé par l'argent public ! À l'heure où le monopole pharmaceutique est remis en cause, nous ne doutons pas que le CNOP saura faire remarquer aux législateurs la bonne implication de la profession dans les économies de la sécurité sociale : tous les pharmaciens télé-transmettent leur factures par voie électronique, ils génèrent des économies substantielles aux caisses avec le SCOR. Ces avancées sont intimement liées à l'implication des pharmaciens dans l'informatique. VIII.C \ Évolution de l'informatique officinale L'informatique devient peu à peu un élément incontournable de la société, l'officine ne fait pas exception : de 1 % des officines informatisées en 1982[159], elles atteignent les 100 % en 2008. Toutefois, le marché de l'informatique officinale est saturé : en 13 ans, dix sociétés ont déposé le bilan ou bien on été rachetées. De plus, la répartition des parts de marché est concentrée sur deux acteurs qui représentent plus de 70 % des LGO utilisés en officine. Cela n'empêche pas l'arrivée de nouveaux acteurs récemment (arrivée de Vindilis en 2011, un autre en cours d'agrément en 2014). Page 59/112Les communications et les formats de stockage de l'informatique en général, deviennent de plus en plus standardisés59, voire normalisés. Ce mouvement facilite l'interopérabilité60 des systèmes informatique, assainissant le marché en favorisant la concurrence. De même, l'informatique officinale normalise ses communications (SESAM-Vitale, PharmaML, CD API, DP) et ses formats de stockage de l'information (utilisation du langage de SQL pour les bases de données, Datamatrix pour les étiquettes, HL7 dans le DP). Notons que les normes viennent, le plus souvent, d’organismes « classiques » comme l'ISO (Datamatrix, cartes à puces) ou d'organismes façonnant Internet (utilisation de SMTP et S/MIME dans SESAMVitale, XML est utilisé dans le DP et dans PharmaML, IP dans le CDAPI). Une standardisation prochaine semble être l'arrivée des lecteurs PC/SC qui vont permettre de s'affranchir du monopole d'Ingenico sur le marché des lecteurs de CV. Cette standardisation permet à l'officine d'être à la pointe de la dématérialisation de son activité : en format papier, il ne lui reste plus que les ordonnances61 et les bons de livraisons. La standardisation permet aussi de fournir une traçabilité, participant au processus qualité. Si le CNOP et les syndicats ont élaboré une charte qualité[160] sur les LGO en 2008, ce document n'a pas reçu de mise à jour depuis et n'est plus accessible sur les sites web des rédacteurs. Malheureusement, toutes les communications ne sont pas encore standardisées. Les achats par groupements (voir chapitre III.C.2) ne fonctionnent qu'entre logiciels du même éditeur. Cette absence de standardisation est un frein à la concurrence : une officine hésitera à changer de LGO s'il lui faut un LGO particulier pour réaliser ses actes d'achat avec d'autres officines. La solution de passer par un site web n'est que palliatif. Elle ne remplacera pas le LGO qui garde en mémoire la commande passée et évite à l'officine de commander auprès du grossistes un produit qu'elle va recevoir par l'achat groupé. De même, les communications entre les PDA ou avec les étiquettes électroniques ne sont pas standardisées. Il y a un risque possible que certaines solutions ne fonctionnent qu'avec certains LGO et pas avec d'autres. Peut-être faudra t-il des associations comme AURA pour y aboutir ? L'absence de MSS et le retard pris par le RPPS limite la facilité d'utilisation de l'opinion pharmaceutique : le pharmacien doit imprimer la feuille, puis la transmettre au prescripteur. 59 par exemple la norme HTML5 normalise la manière de recevoir un flux vidéo ou audio remplaçant la technologie Flash propriété exclusive d'Adobe et ne fonctionnant pas sur l'iPhone, l'ODF normalise le stockage bureautique. 60 Le gouvernement a publié, en juin 2009, un Référentiel Général d'Interopérabilité où l'on retrouve des standards et des normes utilisées par les LGO. http://references.modernisation.gouv.fr/rgi-interoperabilite 61 Ordonnances qu'elle se charge de dématérialiser pour les caisses via SCOR. Page 60/112VIII.D \ Sécurité Le 8 avril 2014, Microsoft arrêtait de garantir la sécurité de la version XP de Windows. Les ordinateurs utilisant ce système d'exploitation se trouvent alors plus exposés aux intrusions et aux vols de données et cela malgré la présence d'un antivirus ou d'un pare-feu. Cet arrêt avait été annoncé plusieurs années auparavant par la firme de Redmond[158]. Il nous parait étonnant que le CNDA valide, en juin et en août 2014, des LGO pour SESAM-Vitale 1.40.9 sans demander de le faire aussi pour son successeur Windows 7 (voir Annexe 2 : Liste des fonctionnalités de SESAM-Vitale 1.40 dans les différents logiciels). Si la CNDA ne s'occupe que de la sécurité de la transmission des données au sein de SESAM-Vitale, elle ne peut occulter le fait que la sécurité n'existe plus si le poste émetteur est compromis. Au cours de nos entretiens, nous avons essayé de savoir quelle sécurité était appliquée à la base de donnée des LGO, notamment parce qu'elle manipule les données médicales des patients et se doit d'être précieusement protégée. Notre approche était la suivante : d'après notre expérience, rares sont les serveurs qui sont mis dans un local sous clé. Un cambrioleur peut aisément voler l'unité centrale et avoir ensuite tout le temps de s'attaquer à la sécurité de la base de données. Il peut obtenir ainsi des informations médicales que le pharmacien se devait de protéger. Les réponses de nos interlocuteurs ont été le plus souvent confuses, ne nous permettant pas d'avoir un avis clair sur la question, certains nous assurant que la sécurité était garantie par un mot de passe, mais peinant à nous en expliquer le mécanisme (utilisation ou non de salage62 pour éviter les attaques par force brute). D'autres nous ont répondu que l'organisation de la base de données était tellement complexe qu'il serait difficile d'en extraire les données. Un autre enfin, a répliqué que lors des migrations vers son LGO, rien ne l'empêchait d'accéder aux bases de données. Nous avons toutefois oublié de demander à ce dernier s'il avait connaissance du mot de passe lors de la migration. Pour mieux cerner l'aspect sécurité, nous avons demandé aux éditeurs si le disque dur du serveur était chiffré intégralement. En effet, il arrive que les professionnels de santé ne procèdent pas à un formatage dans les règles du disque dur quand ils se débarrassent de leur vielle machine. Un chiffrement intégral palliera à cet oubli. Cette solution semble n'être utilisée chez aucun éditeur, la raison pouvant être une perte de performance du serveur, point critique qui impactera l'utilisation du LGO. Ces faits tranchent avec les serveurs des Hébergeurs de données63 de Santé qui sont contrôlés par l'ASIP-Santé, cette dernière leur donnant un agrément avant toute utilisation. Il y a donc une différence de traitement par les autorités entre un serveur local qui stocke des données médicales mais relié plus ou moins directement à Internet, et un serveur stockant lui aussi des données médicales mais dont le principe même est de fonctionner à travers Internet. En effet, le GIE SESAM-Vitale ne s'occupe que de la télétransmission, pas du fonctionnement des LGO au niveau du poste de travail. Nous pourrions aussi interroger les éditeurs sur la séparation du compte administrateur de celui du compte utilisateur. Cette méthode est un excellent moyen pour se prémunir des programmes malveillants : le programme malveillant ne peut s’exécuter s'il ne possède l'autorisation du compte administrateur. Formulé autrement, un compte utilisateur ne peut pas installer de logiciels ou toucher aux paramètres avancés de l'ordinateur, il a juste le droit 62 Technique préconisée pour sécuriser les bases de données stockées sur les serveurs web. Elle rend l'attaque par dictionnaire beaucoup plus longue et donc augmente la probabilité que le malfaiteur abandonne. 63 Docapost est le prestataire agréé[75] du CNOP[161] pour le DP Page 61/112d'utiliser l'outil informatique. Le compte administrateur est alors réservé aux techniciens informatiques pour ses interventions. Les professionnels de santé doivent aussi préserver le secret médical (Article L161-36-1 A du CSS[162]). Ce secret doit être maintenu lors des échanges électroniques entre le médecin et les caisses, ce que garantit le système SESAM-Vitale. Mais le secret doit l'être aussi entre professionnels de santé. Le DP le permet sur les échanges au niveau de l'historique médicamenteux. Mais cela ne représente qu'une portion des échanges électroniques entre pharmaciens ou entre professionnels de santé. La majorité des échanges entre professionnels de santé se réalise sur des web-mails grand publics64 soumis le plus souvent à la juridiction états-unienne. Les révélations d'Edward SNOWDEN ont clairement démontré que la vie privée des utilisateurs non issus des États-Unis n'était pas leur préoccupation principale. Nous espérons que la mise en place du RPPS65 permettra au monde officinal de communiquer plus facilement avec les professionnels de santé tout en les identifiant de manière sûre lors de la délivrance. Nous espérons aussi que la messagerie sécurisée de santé aura une adoption large auprès des professionnels de santé permettant de préserver le secret médical. Le RPPS et la MSS nous semblent des pré-requis indispensables avant le lancement du DMP. Gardons à l'esprit que la sécurité de l'outil informatique n'est pas liée à l'utilisation de telle ou telle technologie. Comme le processus qualité, elle repose sur une vigilance régulière et une remise en question de ses habitudes : une technologie peut être adaptée à un instant « T » et se révéler inefficace 5 ans après. Signalons que le CNOP fournit un recueil de recommandations sur la sécurité[163]. L'ASIP-Santé propose, lui, tout un corpus documentaire à ce sujet sur la page http://esante.gouv.fr/pgssi-s/espace-publication avec notamment un mémento66 à destination des professionnels de santé. Mais le pharmacien doit être aussi garant de la sécurité des médicaments. La fin de la vignette impose l'usage du Datamatrix et permet un meilleur suivi des périmés. Pour le patient, c'est la garantie d'un meilleur suivi des alertes sanitaires. Indirectement, le Datamatrix va faciliter les actions des autorités contre la contrefaçon. De même, le projet de déconditionner les antibiotiques[164] et la part grandissante de l'utilisation des PDA (entraîné par le vieillissement de la population) nécessiteront une traçabilité au niveau du comprimé et non à celui des lots de boites comme c'est le cas actuellement. Comme le rappelle Marie GRENIER[71] dans sa thèse, un conditionnement unitaire marqué (et donc traçable) améliorerait la situation (l'hôpital propose déjà un codage à l'unité : l'Unité Commune de Dispensation ou UCD[165]). Nous nous réjouissons que le CNOP s'occupe des ruptures de stocks des médicaments et cherche à fournir le plus d'informations possibles aux autorités pour en trouver les causes. Là aussi, l'outil informatique (le DP) est au cœur du processus. Les ruptures de stocks sont un risque pour l'observance du patient, donc pour sa sécurité sanitaire. Nous espérons que dans un futur proche, le pharmacien pourra renseigner les allergies médicamenteuses dans le DP ou bien dans le DMP. Enfin, pour améliorer la sécurité des médicaments, le pharmacien se doit de rapporter les effets indésirables qui sont portés à sa connaissance[76], c'est la pharmacovigilance. De notre expérience, nous pouvons dire que c'est une démarche longue et compliquée (voir Fiche de pharmacovigilance en annexe). De plus, le fait de demander des informations cliniques, voire 64 Rappelons que ce fait a été dénoncé par la cour des comptes en 2002, 2008 et 2013. 65 Les pharmaciens ont été parmi les premiers[82] professionnels à passer sur le RPPS. 66 Ce mémento préconise le chiffrement des disques durs et la séparation des comptes administrateurs et utilisateurs. Page 62/112biologiques, peut constituer un frein pour le pharmacien. Une partie de la fiche de pharmacovigilance comprend des renseignements administratifs que connaît déjà le LGO à travers la fiche du patient, une autre partie demande les médicaments pris, c'est-à-dire l'historique médicamenteuse. Là aussi, le LGO connaît déjà cette information grâce au DP. Donc, le LGO peut être une aide précieuse dans la saisie de cette fiche de pharmacovigilance. Forts de ce constat, nous nous sommes alors demandés si des LGO proposaient cela. Nous espérons que cette fonctionnalité sera amenée à se généraliser. De plus, le gain de temps qu’offrirait une pré-saisie par le LGO permettrait de répondre à une des critiques de l'IGAS[166] sur le système de pharmacovigilance français. VIII.E \ Le système SESAM-Vitale Il est indéniable que ce système a profondément marqué l'informatique médicale française. Le législateur voyait dans la technologie un moyen de réduire les coûts de fonctionnement de la sécurité sociale. Seize ans après, les pharmaciens sont à la pointe de la maîtrise des coûts administratifs de la sécurité sociale, SCOR étant la prochaine étape. Le pharmacien ne fait que suivre le souhait de son principal client… la sécurité sociale : 80 % du chiffre d'affaires des officines concerne les médicaments remboursés[79]. Toutefois, le système est encore partiel pour la partie complémentaire[9]. Il n'existe pas de moyen électronique simple et unique de connaître les droits des caisses maladies complémentaires : la carte DUO a été abandonnée et il existe une multitude de solutions concurrentes alors que la carte vitale peut tout à fait accueillir ces informations[167]. Une des causes de ce retard semble être la méfiance que possèdent les caisses complémentaires vis à vis de la CNAMTS[6]. Une autre explication est que les mutuelles souhaitent offrir leurs services au-delà des seuls médicaments remboursés : produits vétérinaires, phytothérapie, substituts nicotiniques, contraceptifs non remboursées, etc … La Carte Vitale 2 a été lancée en 2007. En 2011, le GIE SESAM-Vitale annonçait 20 Millions de CV 2 (sur plus de 60 millions de bénéficiaires), depuis elle ne donne plus de nouvelles évaluations de ce nombre67, se limitant à donner le nombre de renouvellement (environ 4 millions par an). Le renouvellement englobe aussi bien celui des anciennes CV 1 que les CV 2 perdues ou volées. En 2013, le tiers des CV seraient des CV 2[171]68. À titre de comparaison, en 2002, soit 6 ans après le lancement de SESAM-Vitale, 44,5 millions de CV 1 avaient été distribués[93]. Une des raisons qui peut expliquer ce retard est le délai que provoque l'ajout de la photographie. La présence de la photographie a été une demande forte du législateur. Toutefois, aussi bien les professionnels de santé[172] que le rapporteur[173] se sont clairement opposés à cette mesure jugée inefficace contre la fraude. Fraude qui était d'ailleurs marginale à ce moment-là[174][9]. De plus, le processus d'envoyer la photographie par la poste rend illusoire la garantie d'authenticité. Une autre raison de ce retard est que la CV 2 apportait entre autres des fonctionnalités requises par les premières versions du DMP[175][176]. Ces fonctionnalités n'étant plus requises depuis[9], l'intérêt de la CV 2 en est diminué. 67 Le législateur a interrogé de nombreuses fois le gouvernement à ce sujet[169][170] 68 même chiffre qu'en 2012[168] Page 63/112VIII.F \ Les FLOSS Les termes « libre », « open » ou « ouvert » sont différents selon la personne qui l'emploie. Dans NOÉMIE, il semble signifier une ouverture unidirectionnelle de l'administration aux autres (les professionnels de santé), ouverture rendue nécessaire si les autres doivent lui réaliser une partie de son travail administratif. Dans le LGO OPUS, « Open » revendique une ouverture des données, c'est-à-dire un accès complet de la base de données avec des outils tiers. Vindilis revendique un « développement Open Source », désignant ainsi l'utilisation de logiciels Open Source dans leur solution logicielle. Pharmaland se décrit comme un « logiciel libre »[177] qui signifie pour lui l'indépendance économique de l'éditeur69. D'ailleurs, ni le logiciel (qui peut être téléchargé pour une période d'évaluation de 30 jours), ni le site web ne précise le régime juridique du logiciel. Et il n'est pas possible d'accéder au code source de Pharmaland. Pourtant, nous avons vu que la définition de logiciel libre et open source est parfaitement clarifiée, basé sur des cadres juridiques reconnus et éprouvés. L'arrivée de Linux dans les LGO est une commodité économique : alors que les UNIX étaient souvent payants, la gratuité et la maturité de Linux ont été des arguments en sa faveur[178]. Néanmoins, les FLOSS ne se résument pas à leurs gains économiques. Pour perdurer, ils nécessitent une contribution régulière de leurs utilisateurs. Sinon, ces derniers scient la branche sur laquelle ils se sont assis. La circulaire AYRAULT, dont nous conseillons fortement la lecture, recommande d'ailleurs de prévoir un budget pour ré-investir dans les logiciels libres utilisés[125]. Elle dresse un excellent état des lieux, listant les avantages et les inconvénients des FLOSS et expliquant l'intérêt qu'ils représentent pour l'administration. Mais l'importance des FLOSS se situe au-delà : par l'ouverture de leur code à tous, ils renforcent la confiance dans le système aussi bien des utilisateurs (le personnel officinal) que des personnes dont sont issues les données (les patients). Les adeptes du logiciel libre rappellent volontiers que le code fait la loi (« Code is law »[179]) et qu'ainsi les créateurs de logiciel ont une influence considérable sur les utilisateurs, leurs habitudes, leurs usages. En donnant la propriété du code aux utilisateurs, les logiciels libres rendent l'informatique « démocratique » (de dêmos, « peuple » et krátos « pouvoir »), c'est-à-dire qu'ils rendent le pouvoir de l'informatique au peuple des utilisateurs. Là aussi, nous renvoyons à la lecture de la thèse de Nicolas FLOQUET[180] qui aborde largement les impacts politique et philosophique du « Libre » (logiciels, travaux et œuvres) pour le monde de la santé. Nous avons été frappés par la forte volonté d'indépendance qui anime aussi bien les acteurs du FLOSS que les officinaux. Alors que l'accès au code source implique pour Richard STALLMAN70 une garantie sur la manière d’exercer son métier et de disposer de ses connaissances, de même les créations des CERP ou du DP apportent une garantie pour les pharmaciens sur l’exercice leur métier de façon indépendante, notamment au niveau économique. Aucun LGO commercialisé actuellement n'est sous licence libre. Nous pensons qu'un LGO placé sous un tel régime juridique pourrait séduire des confrères. En effet, plus que la licence qui délivre une autorisation d'utiliser un logiciel, le pharmacien recherche un LGO efficace, 69 Alors que l'indépendance des Logiciels Libres est d'abord dans le statut juridique qu'il offre à son utilisateur 70 Lire à son sujet le livre « Richard STALLMAN et la révolution du logiciel libre. Une biographie autorisée »[181] Page 64/112répondant à ses besoins dans une gamme de prix adaptés à son budget. Il ne paye pas pour une utilisation, il paye pour une assisatncet71. Pour cela, il a besoin à ses côtés d'un professionnel de l'informatique qui connaisse le LGO. Cette connaissance ne peut être que le fruit d'une participation active à l'élaboration, la conception et la maintenance du LGO. Tous les éditeurs que nous avons interrogés à ce sujet, nous ont expliqué que le secteur officinal était trop concurrentiel pour permettre à un LGO sous licence libre de survivre. Notre avis est qu'un tel LGO ne pourra surgir que s'il est le souhait d'un groupe d'utilisateurs. Si nous faisions une comparaison entre les logiciels libres et le monde officinal, nous les comparerions à une CERP : tous les pharmaciens peuvent y adhérer, ils doivent s'investir (dans les logiciels libres, ils peuvent employer un informaticien pour cela) et la mise en commun bénéficie à tous les membres. La différence s'arrête à ce que les coopératives sont dans le monde matériel et que les logiciels sont dans le monde immatériel. Le pharmacien ne peut quitter une CERP en emportant tous les centres de dépôts avec lui, l'immatériel lui permet de partir avec une copie du logiciel libre et de son code source sans léser la communauté qu'il quitte. En 2002, l'IGAS[93] ne voyait que deux modes de développement des logiciels métiers pour les professionnels de santé : des logiciels créés par le GIE-SESAM-Vitale ou bien une sélection périodique des meilleurs logiciels métiers après un appel d'offre. Nous pensons qu'un développement collaboratif, au moins des couches bases d'un logiciel, pourrait être une voie à explorer, les éditeurs s'entendant pour créer une brique logicielle commune à tous, assurant de facto une standardisation des échanges entre les LGO ou vers des systèmes informatiques partenaires comme SESAM-Vitale. Les autorités comme le CNDA garderait leur rôle de garant de la conformité de fonctionnement : le logiciel serait ouvert mais sa version utilisable sera verrouillé par l'agrément obtenu par le CNDA. Les éditeurs pourraient se différencier sur l'interface et surtout l'assistance apporté à leur client. Il existe un autre obstacle de taille à l'apparition d'un LGO placé sous un tel cadre juridique : la publication des sources entraînerait une divulgation de portions de normes secrètes. Le CNDA nous a répondu que le système SESAM-Vitale n'autorisait pas la divulgation de son fonctionnement. Les organismes d'Assurances Maladie fournissent gratuitement d'ailleurs des « modules SESAM-Vitale » aux progiciels bénéficiant de l'agrément par l'Assurance Maladie[167][26]. Le protocole PharmaML est soumis à un accord de non divulgation. Ainsi un LGO sous licence libre devra-t-il fonctionner avec des extensions qui comporteront des protocoles secrets. Ces extensions du LGO seront alors non couvertes par la licence libre. 71 Une utilisation professionnelle d'un logiciel métier sans assistance informatique nous semble une folie. Page 65/112IX) Conclusion L'informatique officinale arrive à maturité, elle est désormais présente dans toutes les officines qui ne peuvent désormais travailler sans elle : les LGO et leur éditeurs proposent aux pharmaciens un large de spectre de fonctionnalités et de services qui couvrent tous ce qu'il peut faire dans le cadre de son travail quotidien. Nous avons pu lever légèrement le voile sur la profession d'éditeur de LGO et présenter les FLOSS : un mouvement juridique et philosophique d'informaticiens cherchant un moyen de garder l'indépendance de leur outil et ainsi, de garantir la souveraineté de l'utilisateur. L'infomatique peut être utilisée comme prisme de lecture d'une profession. C'est ainsi que nous avons découvert des partenaires de l'officine (comme les CERP ou les groupements) dont nous ne connaissions que le nom. Apprendre l'histoire de ces partenaires nous révéle l'évolution de l'officine et de la pharmacie en France. À la fin du dix-neuvième siècle, l'officine s'interroge sur l'industrialisation naissante qu'elle retrouve en son sein. Industrialisation pharmaceutique qui s'oppose à l'artisanat du préparatoire. À la fin de la première guerre mondiale, les grossistes permettent aux officinaux de mieux gérer l'augmentation des produits de parapharmacie. Cette position sera renforcé à la sortie de la seconde guerre mondiale qui voit la généralisation des spécialités. Au même moment, l'État rentre fortement dans le domaine de la santé avec la création de la Sécurité Sociale. La maitrise des coûts de cette dernière, au début des années 90, forcera les pharmaciens à chercher à s'améliorer sur la parapharmacie à l'aide des groupements. Les années 2000 sont assurément celles de l'informatique officinale poussé par le système SESAM-Vitale. Les syndicats et l'Ordre, loin de négliger ce fait, se sont investis dans cet outil. L'informatique infiltre graduellement toutes les couches de la société, rendant son apprentissage et sa maitrise de plus en plus cruciaux. Ainsi, tout au long de son histoire, le pharmacien a dû justifier sa place dans le monde de la santé, jongler entre la casquette de commerçant et celle de professionnel médical. Cela a permis à la profession d'acquérir une connaissance de la vie économique comme le montre la variété des structures juridiques que la profession a utilisé pour réunir plusieurs de ses membres: SARL, SEL, coopérative, association, GIE, etc … Les officinaux ont le sentiment que sans indépendance économique, il n'y a pas d'indépendance professionelle. Page 66/112X) Annexe X.A \ Annexe 1 : Liste des éditeurs de LGO et de leurs logiciels Tous les noms de sociétés et de logiciels, les logos et marques sont la propriété de leurs ayants droit respectifs. Groupe Cegedim Ni Périphar, ni OPUS ne sont référencés sur le site de la maison mère : http://www.cegedim.fr/contact/Pages/France.aspx Ces informations sont tirées des sites web des filiales. Alliadis ► Alliance Premium Crystal Palace 369/371 Promenade des anglais 06000 Nice ☎ : 04 93 21 89 89  : http://www.alliadis.com Application Service Providing Line Ou A.S.P Line ► Periphar 76 avenue Paul Kruger 69100 Villeurbanne ☎ : 04 72 91 23 99  : http://www.periphar.fr/ Pharmacie Gestion Informatique Ou PG Informatique ► OPUS alias OPen Useful Software (OPUS) ZA de Kerangueven 69100 Villeurbanne ☎ : 0 820 201 277  : http://www.opusoftware.fr Page 67/112Construction Étude Projet Informatique Soft Office Ou C.E.P.I Soft Office ► PharmaVitale 1 bis, rue Gaspard Monge 37270 Montlouis sur Loire ☎ : 02 47 05 13 58  : http://www.pharmavitale.fr/ CERP Rhin Rhône Méditerranée Caduciel Informatique ► Caduciel v6 Zone Artisanale 70190 Voray sur l'Ognon ☎ : 03 81 56 86 83  : http://web.caduciel.fr CERP Rouen alias Astera Isipharm ► Logiciel Économie Officine ou Léo 2.0 (successeur de WinPresto) 9, rue des augustins 76000 Rouen ☎ : 02 35 12 19 19  : http://www.isipharm.fr/ CIAM ► Esculape 1, rue Francis Meilland 49000 Angers ☎ : 02 41 47 46 46  : http://www.esculapev5.net/Index.htm Everys ► WinPharma Espace Atlantica ZA du Redo 56640 Arzon ☎ : 08 25 07 03 03  : http://www.winpharma.com Giphar (coopérative) Pharmavision ► Logiphar qui est un dérivé d'Alliadis 14 rue du Four à chaux 59000 LILLE ☎ : 03 20 18 11 90  : http://www.pharmavision.fr/doc_logiphar/html/index.php Page 68/112Infosoft ► Crystal 9, Grande Rue de Vaux 51300 Vitry-Le-François ☎ : 03 26 62 11 50  : http://infosoft-online.com/ La Source Informatique ► Pharmaland 56, Boulevard Davout 75020 Paris ☎ : 01 43 56 07 10  : http://www.pharmaland.fr/ Vindilis ► Vindilis 40, rue du Bignon Immeuble Delta 35510 Cesson-Sévigné ☎ : 02 99 86 05 06  :http://www.vindilis.fr/ Visiopharm ► Visiosoft 15bis, rue Blanchard 33110 Le Bouscat ☎ : 05 56 08 91 91  :http://www.visiopharm.fr/logiciel/ Groupe Welcoop (Ex CERP Lorraine/ Coopérative des Pharmaciens de Nancy) Pharmagest Interactive Le groupe possède aussi les logiciels CIP Global Service, Pharmagest, Primoris Evolution et Primoris, mais tous ont été regroupés sur le même logiciel : LGPI. Les clients des anciens logiciels y sont progressivement migrés. ► Pharmagest 5, Allée de Saint-Cloud BP 117 54601 Villers-Les-Nancy Cedex ☎ : 08 20 90 82 00  :http://www.pharmagest.com/ Société X ►Logiciel X La société a demandé à ne pas être citée et refuse l'utilisation de son nom et de celui de son logiciel dans cette thèse. Page 69/112X.B \ Annexe 2 : Liste des fonctionnalités de SESAM-Vitale 1.40 dans les différents logiciels D'après le site web du CNDA : http://www.cnda-vitale.fr/php/agrement-1.40.php?page=les logiciels agrees consulté le 14 mars 2014. Tableau 7: Liste des fonctionnalités de SESAM-Vitale 1.40 pour les LGO du groupe CEGEDIM et de la société Pharmavision NOM DU LOGICIEL Alliance FES PREMIUM FES PREMIUM FES Logiphar FES OPen Useful Software (OPUS) Periphar ÉDITEUR Alliance Software Alliadis Alliadis Alliance Software72 PG Informatique ASP Line VERSION 2.05 3.02 3.02 puis 3.04A et 3.05 2.05 puis 2.06 140.8 1.90 DATE D'AGRÉMENT 07/10/2013 16/05/2011 07/10/2013 16/10/2013 19/12/2013 13/03/2012 VERSION DU CAHIER DES CHARGES 1.40.7.4 1.40.7.1CS 1.40.7.2 1.40.7.4 1.40.7.1CS 1.40.7.2 CARACTÉRISTIQUES TECHNIQUES SYSTÈME (PLATE-FORME DE TEST) Linux UNIX SCO Linux Linux Windows XP Linux UTILISATION DU MODULE SIS (GIE) Oui non Oui Oui Oui Oui VERSION API SSV SSVOSX V5.21 SSVOSX V5.20 LIBSSVLUX V5.20 puis LIBSSVLUX V5.21 SSVOSX V5.21 SSVOSX V5.20 LIBSSVLUX V5.21 VERSION DES TABLES EXTERNES SSV V 5.21 V 5.20 V 5.20 puis 5.21 V 5.21 V 5.20 V 5.21 VERSION LECTEUR EI96 V3.00 EI96 V3.00 EI96 V3.00 EI96 V3.00 EI96 V3.00 EI96 V3.00 KIT DE CONNEXION INTERNET RSS RSS INTERNET WANADOO-SANTE INTERNET GESTION MULTI-PS Non Non Non Non Non Non CONFIGURATION TESTÉE Monoposte / Mono-PS Monoposte / Mono-PS Monoposte / Mono-PS Monoposte / Mono-PS Monoposte / Mono-PS Monoposte / Mono-PS 72 Qui le vend à PharmavisionNOM DU LOGICIEL Alliance FES PREMIUM FES PREMIUM FES Logiphar FES OPen Useful Software (OPUS) Periphar INTÉGRATION MODULE DÉJÀ AGRÉÉ Aucun Aucun Aucun Aucun Aucun Aucun GESTION TLA (TERMINAL LECTEUR APPLICATIF ) Non Non Non Non Non Non GESTION OCT (ORGANISME CONCENTRATEUR TECHNIQUE ) Oui Oui Oui Oui Oui Oui COMPATIBILITÉ APPLICATIVE GALSS (GESTIONNAIRE D’ACCÈS AU LECTEUR SANTÉ/SOCIAL) Oui (vide) (vide) (vide) (vide) (vide) GESTION RÉSEAU DISTANT Non Non Non Non Non Non CARACTÉRISTIQUES FONCTIONNELLES 13 VERSION 2 - CODES LPP ✔ ✔ ✔ ✔ ✔ ✔ 17 - RÉFORME MATERNITÉ ✔ ✔ ✔ ✔ ✔ ✔ 19 - FACTURETTES PHARMACIENS ✔ ✔ ✔ ✔ ✔ ✔ 21 VERSION 2 - MÉDICAMENTS HOMÉOPATHIQUES UNITAIRES ✔ ✔ ✔ ✔ ✔ ✔ 27 VERSION 2 - CODE PII ✔ ✔ ✔ ✔ ✔ ✔ 30 VERSION 2 - MÉDICAMENTS À VIGNETTE ORANGE ✔ ✔ ✔ ✔ ✔ ✔ 38BIS VERSION 2 - PH4 ET ALSACE-MOSELLE ✔ ✔ ✔ ✔ ✔ ✔ 46BIS - SUBSTITUTS NICOTINIQUES ✔ ✔ ✔ ✔ ✔ ✔ 49 VERSION 3 - PRÉPARATIONS MAGISTRALES ✔ ✔ ✔ ✔ ✔ ✔ 55 VERSION 2 - PRESTATION PDM ✔ ✔ ✔ ✔ 56 VERSION 3 - PRESTATION DVO ✔ ✔ ✔ ✔NOM DU LOGICIEL Alliance FES PREMIUM FES PREMIUM FES Logiphar FES OPen Useful Software (OPUS) Periphar 64 - FACTURATION DES ALLERGÈNES ✔ ✔ ✔ ✔ ✔ ✔ 72 - INTÉGRATION COMPLÉMENT AT SUR LPP ET PROTHÈSES DENTAIRES ✔ ✔ ✔ ✔ ✔ ✔ 74 - INTÉGRATION DU KIT ANTI-GRIPPE A ✔ ✔ ✔ ✔ ✔ ✔ 76 - INTÉGRATION DES MÉDICAMENTS À VIGNETTE ORANGE ✔ ✔ ✔ ✔ ✔ ✔ 83 VERSION 3 - BAISSE DU TAUX DE PEC DES MÉDICAMENTS À VIGNETTES BLEUES 3.04A ✔ 84 VERSION 2 - BAISSE DU TAUX DE PEC DES DISPOSITIFS MÉDICAUX ✔ 3.04A ✔ FICHE RÉGLEMENTAIRE N° 87 VERSION 2 - ACTUALISATION DES TABLES 8.3 ET 21.14 ✔ FICHE RÉGLEMENTAIRE N° 97 - ACTUALISATION DE LA TABLE11.2 DE L'ANNEXE ÉVOLUTIONS INCLUSES PRISE EN COMPTE FI 04 DU GIE (2008) VACCINATION CONTRE LA GRIPPE FI 63 DU GIE REJETS FACTURES BÉNÉFICIAIRES DE L’AME DE BASE FI 71 DU GIE FACTURATION SOUS LA NATURE D'ASSURANCE MATERNITÉNOM DU LOGICIEL Alliance FES PREMIUM FES PREMIUM FES Logiphar FES OPen Useful Software (OPUS) Periphar FI 128 DU GIE INTERDICTION DE RÉALISATION DE FACTURES POSTDATÉES ✔ EXPÉRIMENTATION DUOFFSA 2.06 ✔ ✔ ✔ SCOR V 2.+ 2.06 3.04A- > v1.12 3.05 ->2.11 2.05 →v2.12 2.06 →v2.11 140.8Tableau 8: Liste des fonctionnalités de SESAM-Vitale 1.40 pour les LGO du groupe Welcoop et Vindilis NOM DU LOGICIEL CIP Global Service LGPI Primoris VINDILIS VINDILIS VINDILIS ÉDITEUR Pharmagest Interactive Pharmagest Interactive Pharmagest Interactive VINDILIS VINDILIS VINDILIS VERSION 2.0 2.01 7.01 puis 7.03 2.1 puis 2.3 2.1 1.0 puis 2.1 et 2.3 DATE D'AGRÉMENT Inconnu 22/01/2013 07/02/2013 20/08/2013 01/08/2012 13/08/2013 VERSION DU CAHIER DES CHARGES Inconnu 1.40.7.1CS 1.40.7.1CS 1.40.8.5 1.40.8.5 1.40.8.5 CARACTÉRISTIQUES TECHNIQUES SYSTÈME (PLATE-FORME DE TEST) Linux Linux Linux Linux Mac OS-X Windows XP UTILISATION DU MODULE SIS (GIE) Non Non Non Non Non 2.1 : Oui 2.3 : Non VERSION API SSV LIBSSVLUX V5.20 LIBSSVLUX V5.20 puis 5.21 pour 2.06 LIBSSVLUX V5.20 LIBSSVLUX V5.34 SSVOSX V5.34 SSVW32 V4.31 puis SSVW32 V5.34 VERSION DES TABLES EXTERNES SSV V 5.20 V 5.20 puis 5.21 pour 2.06 V 5.20 V 5.34 V 5.34 V 4.05 puis V 5.34 VERSION LECTEUR EI96 V3.00 EI96 V3.00 EI96 V3.00 EI96 V3.00 EI96 V3.00 EI96 V3.00 KIT DE CONNEXION - RSS puis INTERNET INTERNET INTERNET INTERNET INTERNET GESTION MULTI-PS Non Non Non Non Non Non CONFIGURATION TESTÉE Monoposte / Mono-PS Monoposte / Mono-PS Monoposte / Mono-PS Monoposte / Multi-PS Monoposte / Multi-PS Monoposte / Multi-PS INTÉGRATION MODULE DÉJÀ AGRÉÉ Aucun Aucun Aucun Aucun Aucun Aucun GESTION TLA (TERMINAL LECTEUR APPLICATIF ) Non Non Non Non Non Non GESTION OCT (ORGANISME CONCENTRATEUR TECHNIQUE ) Oui Oui Oui Oui Oui Oui mais 2.3 : non COMPATIBILITÉ APPLICATIVE GALSS (GESTIONNAIRE D’ACCÈS AU LECTEUR SANTÉ/SOCIAL) (vide) (vide) (vide) Oui Oui (vide) puis 2.1:oui GESTION RÉSEAU DISTANT Non Non Non Non Non NonNOM DU LOGICIEL CIP Global Service LGPI Primoris VINDILIS VINDILIS VINDILIS CARACTÉRISTIQUES FONCTIONNELLES 13 VERSION 2 - CODES LPP ✔ ✔ ✔ ✔ ✔ ✔ 17 - RÉFORME MATERNITÉ ✔ ✔ ✔ ✔ ✔ ✔ 19 - FACTURETTES PHARMACIENS ✔ ✔ ✔ ✔ ✔ ✔ 21 VERSION 2 - MÉDICAMENTS HOMÉOPATHIQUES UNITAIRES ✔ ✔ ✔ ✔ ✔ ✔ 27 VERSION 2 - CODE PII ✔ ✔ ✔ ✔ ✔ ✔ 30 VERSION 2 - MÉDICAMENTS À VIGNETTE ORANGE ✔ ✔ ✔ ✔ ✔ ✔ 38BIS VERSION 2 - PH4 ET ALSACE-MOSELLE ✔ ✔ ✔ ✔ ✔ ✔ 46BIS - SUBSTITUTS NICOTINIQUES ✔ ✔ ✔ ✔ ✔ ✔ 49 VERSION 3 - PRÉPARATIONS MAGISTRALES ✔ ✔ ✔ ✔ ✔ ✔ 55 VERSION 2 - PRESTATION PDM ✔ 2.05 ✔ ✔ ✔ ✔ 56 VERSION 3 - PRESTATION DVO ✔ ✔ ✔ ✔ ✔ ✔ 64 - FACTURATION DES ALLERGÈNES ✔ ✔ ✔ ✔ ✔ ✔ 72 - INTÉGRATION COMPLÉMENT AT SUR LPP ET PROTHÈSES DENTAIRES ✔ ✔ ✔ ✔ ✔ ✔ 74 - INTÉGRATION DU KIT ANTI-GRIPPE A ✔ ✔ ✔ ✔ 2.1 76 - INTÉGRATION DES MÉDICAMENTS À VIGNETTE ORANGE ✔ ✔ ✔ ✔ ✔ 2.1NOM DU LOGICIEL CIP Global Service LGPI Primoris VINDILIS VINDILIS VINDILIS 83 VERSION 3 - BAISSE DU TAUX DE PEC DES MÉDICAMENTS À VIGNETTES BLEUES ✔ ✔ ✔ 2.1 84 VERSION 2 - BAISSE DU TAUX DE PEC DES DISPOSITIFS MÉDICAUX ✔ ✔ 2.1 FICHE RÉGLEMENTAIRE N° 87 VERSION 2 - ACTUALISATION DES TABLES 8.3 ET 21.14 ✔ ✔ 2.1 FICHE RÉGLEMENTAIRE N° 97 - ACTUALISATION DE LA TABLE11.2 DE L'ANNEXE ÉVOLUTIONS INCLUSES PRISE EN COMPTE FI 04 DU GIE (2008) VACCINATION CONTRE LA GRIPPE FI 63 DU GIE REJETS FACTURES BÉNÉFICIAIRES DE L’AME DE BASE 2.3 FI 71 DU GIE FACTURATION SOUS LA NATURE D'ASSURANCE MATERNITÉ 2.3 FI 128 DU GIE INTERDICTION DE RÉALISATION DE FACTURES POSTDATÉES 2.3 EXPÉRIMENTATION DUOFFSA 2.01 SCOR V 2.+ ✔ ✔ 2.3 2.3Tableau 9: Liste des fonctionnalités de SESAM-Vitale 1.40 pour les autres LGO de C à P NOM DU LOGICIEL Caduciel 6 Crystal Esculape Léo Magic Vente Pharmaland ÉDITEUR Caduciel Informatique Infosoft CIAM Isipharm/ Astera (CERP Rouen) IP3 (Informatique pour et par les Pharmaciens) La Source Informatique VERSION 6.04 2.40 6.2 2.3 01.60 8.70 DATE D'AGRÉMENT 16/12/2013 Inconnu 22/10/2013 23/05/2013 19/04/2011 Inconnu VERSION DU CAHIER DES CHARGES 1.40.7.1CS Inconnu 1.40.9.1 1.40.7.1CS 1.40.7.1CS Inconnu CARACTÉRISTIQUES TECHNIQUES SYSTÈME (PLATE-FORME DE TEST) Windows XP Windows Seven Windows Seven Windows XP Windows XP Windows Seven UTILISATION DU MODULE SIS (GIE) Non Non Oui Oui Non Oui VERSION API SSV SSVW32 V4.04 SSVW32 V5.40 SSVW32 V5.40 SSVW32 V5.20 SSVW32 V5.20 SSVW32 V5.40 VERSION DES TABLES EXTERNES SSV V 4.00 V 5.40 V 5.40 V 5.20 V 5.20 V 5.40 VERSION LECTEUR EI96 V3.00 EI96 V3.00 EI96 V3.00 EI96 V3.00 EI96 V3.00 EI96 V3.00 KIT DE CONNEXION RSS INTERNET WANADOO-SANTE INTERNET INTERNET INTERNET INTERNET GESTION MULTI-PS Non Non Non Non Non Non CONFIGURATION TESTÉE Monoposte / Mono-PS Monoposte / Mono-PS Monoposte / Mono-PS Monoposte / Mono-PS Monoposte / Mono-PS Monoposte / Mono-PS INTÉGRATION MODULE DÉJÀ AGRÉÉ Aucun Aucun Aucun Aucun Aucun Aucun GESTION TLA (TERMINAL LECTEUR APPLICATIF ) Non Non Non Non Non Non GESTION OCT (ORGANISME CONCENTRATEUR TECHNIQUE ) Oui Oui Oui Oui Oui OuiNOM DU LOGICIEL Caduciel 6 Crystal Esculape Léo Magic Vente Pharmaland COMPATIBILITÉ APPLICATIVE GALSS (GESTIONNAIRE D’ACCÈS AU LECTEUR SANTÉ/SOCIAL) (vide) Oui (vide) (vide) (vide) (vide) GESTION RÉSEAU DISTANT Non Non Non Non Non Non CARACTÉRISTIQUES FONCTIONNELLES 13 VERSION 2 - CODES LPP ✔ ✔ ✔ ✔ ✔ ✔ 17 - RÉFORME MATERNITÉ ✔ ✔ ✔ ✔ ✔ ✔ 19 - FACTURETTES PHARMACIENS ✔ ✔ ✔ ✔ ✔ 21 VERSION 2 - MÉDICAMENTS HOMÉOPATHIQUES UNITAIRES ✔ ✔ ✔ ✔ ✔ ✔ 27 VERSION 2 - CODE PII ✔ ✔ ✔ ✔ ✔ ✔ 30 VERSION 2 - MÉDICAMENTS À VIGNETTE ORANGE ✔ ✔ ✔ ✔ ✔ ✔ 38BIS VERSION 2 - PH4 ET ALSACEMOSELLE ✔ ✔ ✔ ✔ 46BIS - SUBSTITUTS NICOTINIQUES ✔ ✔ ✔ ✔ 49 VERSION 3 - PRÉPARATIONS MAGISTRALES ✔ ✔ ✔ ✔ 55 VERSION 2 - PRESTATION PDM ✔ ✔ ✔ ✔ 56 VERSION 3 - PRESTATION DVO ✔ ✔ ✔ ✔NOM DU LOGICIEL Caduciel 6 Crystal Esculape Léo Magic Vente Pharmaland 64 - FACTURATION DES ALLERGÈNES ✔ ✔ 72 - INTÉGRATION COMPLÉMENT AT SUR LPP ET PROTHÈSES DENTAIRES ✔ ✔ ✔ ✔ ✔ 74 - INTÉGRATION DU KIT ANTI-GRIPPE A ✔ ✔ ✔ ✔ ✔ ✔ 76 - INTÉGRATION DES MÉDICAMENTS À VIGNETTE ORANGE ✔ ✔ ✔ ✔ ✔ ✔ 83 VERSION 3 - BAISSE DU TAUX DE PEC DES MÉDICAMENTS À VIGNETTES BLEUES ✔ ✔ ✔ ✔ 84 VERSION 2 - BAISSE DU TAUX DE PEC DES DISPOSITIFS MÉDICAUX ✔ ✔ ✔ FICHE RÉGLEMENTAIRE N ° 87 VERSION 2 - ACTUALISATION DES TABLES 8.3 ET 21.14 ✔ ✔ FICHE RÉGLEMENTAIRE N ° 97 - ACTUALISATION DE LA TABLE11.2 DE L'ANNEXE ✔ ÉVOLUTIONS INCLUSESNOM DU LOGICIEL Caduciel 6 Crystal Esculape Léo Magic Vente Pharmaland PRISE EN COMPTE FI 04 DU GIE (2008) VACCINATION CONTRE LA GRIPPE ✔ FI 63 DU GIE REJETS FACTURES BÉNÉFICIAIRES DE L’AME DE BASE ✔ ✔ FI 71 DU GIE FACTURATION SOUS LA NATURE D'ASSURANCE MATERNITÉ ✔ ✔ FI 128 DU GIE INTERDICTION DE RÉALISATION DE FACTURES POSTDATÉES ✔ ✔ EXPÉRIMENTATION DUO-FFSA ✔ SCOR V 2.+ ✔ ✔Tableau 10: Liste des fonctionnalités de SESAM-Vitale 1.40 pour les LGO de P à X NOM DU LOGICIEL Pharmavitale Visiosoft WinPharma Logiciel X ÉDITEUR C.E.P.I Soft Office Visiopharm Everys Société X VERSION 1.404 puis 1.409 et 1.491 3.0 puis 3.30 et 3.40 8.2 1.05 DATE D'AGRÉMENT 31/01/2014 15/11/2013 07/10/2013 09/07/2013 VERSION DU CAHIER DES CHARGES 1.40.9.1 1.40.9.1 1.40.8.5CS 1.40.9.1 CARACTÉRISTIQUES TECHNIQUES SYSTÈME (PLATE-FORME DE TEST) Windows XP (puis Seven) Windows XP puis Seven et XP Windows XP Windows XP UTILISATION DU MODULE SIS (GIE) Oui Non Oui Oui VERSION API SSV SSVW32 V3.16 (puis SSVW32 V5.40) SSVW32 V4.30 puis SSVW32 V5.40 SSVW32 V5.34 SSVW32 V4.31 puis V5.40 VERSION DES TABLES EXTERNES SSV V 3.15 puis V 5.40 V 4.05 puis V 5.40 V 5.32 V 4.05 puis V5.40 VERSION LECTEUR EI96 V3.00 EI96 V3.00 EI96 V3.00 EI96 V3.00 KIT DE CONNEXION RSS puis INTERNET RSS puis INTERNET WANADOO-SANTE RSS GESTION MULTI-PS Non Non puis 3.40 Sans Objet Non CONFIGURATION TESTÉE Monoposte / Mono-PS Monoposte / Mono-PS puis 3.40 : Monoposte/Multi-PS Monoposte / Mono-PS Monoposte / Mono-PS INTÉGRATION MODULE DÉJÀ AGRÉÉ Aucun Aucun Aucun Aucun GESTION TLA (TERMINAL LECTEUR APPLICATIF ) Non Non puis 3.40 : sans objet Sans Objet Non GESTION OCT (ORGANISME CONCENTRATEUR TECHNIQUE ) Oui Oui Oui OuiNOM DU LOGICIEL Pharmavitale Visiosoft WinPharma Logiciel X COMPATIBILITÉ APPLICATIVE GALSS (GESTIONNAIRE D’ACCÈS AU LECTEUR SANTÉ/SOCIAL) 1.409 (vide) (vide) (vide) GESTION RÉSEAU DISTANT Non Non Non Non CARACTÉRISTIQUES FONCTIONNELLES 13 VERSION 2 - CODES LPP ✔ ✔ ✔ ✔ 17 - RÉFORME MATERNITÉ ✔ ✔ ✔ ✔ 19 - FACTURETTES PHARMACIENS ✔ ✔ ✔ ✔ 21 VERSION 2 - MÉDICAMENTS HOMÉOPATHIQUES UNITAIRES ✔ ✔ ✔ ✔ 27 VERSION 2 - CODE PII ✔ ✔ ✔ ✔ 30 VERSION 2 - MÉDICAMENTS À VIGNETTE ORANGE ✔ ✔ ✔ ✔ 38BIS VERSION 2 - PH4 ET ALSACEMOSELLE ✔ ✔ ✔ ✔ 46BIS - SUBSTITUTS NICOTINIQUES ✔ ✔ ✔ ✔ 49 VERSION 3 - PRÉPARATIONS MAGISTRALES ✔ ✔ ✔ ✔ 55 VERSION 2 - PRESTATION PDM ✔ ✔ ✔ 56 VERSION 3 - PRESTATION DVO 1.409 3.30 ✔ ✔NOM DU LOGICIEL Pharmavitale Visiosoft WinPharma Logiciel X 64 - FACTURATION DES ALLERGÈNES ✔ 3.30 ✔ ✔ 72 - INTÉGRATION COMPLÉMENT AT SUR LPP ET PROTHÈSES DENTAIRES 1.409 3.30 ✔ ✔ 74 - INTÉGRATION DU KIT ANTI-GRIPPE A 1.409 3.30 ✔ ✔ 76 - INTÉGRATION DES MÉDICAMENTS À VIGNETTE ORANGE 1.409 3.30 ✔ ✔ 83 VERSION 3 - BAISSE DU TAUX DE PEC DES MÉDICAMENTS À VIGNETTES BLEUES 1.409 3.30 ✔ ✔ 84 VERSION 2 - BAISSE DU TAUX DE PEC DES DISPOSITIFS MÉDICAUX 1.409 3.30 ✔ ✔ FICHE RÉGLEMENTAIRE N° 87 VERSION 2 - ACTUALISATION DES TABLES 8.3 ET 21.14 1.409 3.30 ✔ FICHE RÉGLEMENTAIRE N° 97 - ACTUALISATION DE LA TABLE11.2 DE L'ANNEXE 1.409 3.30 ÉVOLUTIONS INCLUSESNOM DU LOGICIEL Pharmavitale Visiosoft WinPharma Logiciel X PRISE EN COMPTE FI 04 DU GIE (2008) VACCINATION CONTRE LA GRIPPE ✔ FI 63 DU GIE REJETS FACTURES BÉNÉFICIAIRES DE L’AME DE BASE 1.409 3.30 1.09 FI 71 DU GIE FACTURATION SOUS LA NATURE D'ASSURANCE MATERNITÉ 1.409 3.30 1.09 FI 128 DU GIE INTERDICTION DE RÉALISATION DE FACTURES POSTDATÉES 1.409 3.30 1.09 EXPÉRIMENTATION DUO-FFSA SCOR V 2.+ ✔ 3.40 ✔ 1.10X.C \ Annexe 3 : Part de marché des différents LGO durant les 12 derniers mois Éditeur Logiciel Nombre Pourcentage Pharmagest interactive Evolution ; LGPI ; Pharmagest ; Primoris 8 943 39,62% Alliance software Alliance FES ; Alliance Plus ; Logiphar FES 6 107 27,06% Everys Winpharma 3 410 15,11% CERP Rouen/ Isipharm Léo, Winpresto 1 055 4,67% ASP line Periphar ; Periphar 2 1 038 4,60% Caduciel informatique Caduciel 6 571 2,53% PG informatique OPUS Pharmacie gestion informatique 2 457 2,02% Alliadis Pharmatic Premium Premium-FES 274 1,21% Autres 0 717 3,18% Groupe CEGEDIM 7 876 34,89% Total du GIE SESAM-Vitale 22 572 100,00% Tableau 11: Part de marché des éditeurs durant les 12 derniers mois - Août 2014 D'après http://www.sesam-vitale.fr/divers/chiffres/histo-pdm.asp données de Août 2014 - mise à jour le 10/09/2014[101] Page 85/112X.D \ Annexe 4 : Licence Creative Common – Attribution – Partage dans les mêmes conditions (CC -By SA 4.0) D'après le site officiel, consulté en septembre 2014 : https://creativecommons.org/licenses/by-sa/4.0/legalcode Creative Commons Corporation (“Creative Commons”) is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an “as-is” basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. Using Creative Commons Public Licenses Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. Considerations for licensors: Our public licenses are intended for use by those authorized to give the public permission to use material in ways otherwise restricted by copyright and certain other rights. Our licenses are irrevocable. Licensors should read and understand the terms and conditions of the license they choose before applying it. Licensors should also secure all rights necessary before applying our licenses so that the public can reuse the material as expected. Licensors should clearly mark any material not subject to the license. This includes other CC-licensed material, or material used under an exception or limitation to copyright. More considerations for licensors. Considerations for the public: By using one of our public licenses, a licensor grants the public permission to use the licensed material under specified terms and conditions. If the licensor’s permission is not necessary for any reason–for example, because of any applicable exception or limitation to copyright–then that use is not regulated by the license. Our licenses grant only permissions under copyright and certain other rights that a licensor has authority to grant. Use of the licensed material may still be restricted for other reasons, including because others have copyright or other rights in the material. A licensor may make special requests, such as asking that all changes be marked or described. Although not required by our licenses, you are encouraged to respect those requests where reasonable. More considerations for the public. Creative Commons Attribution-ShareAlike 4.0 International Public License By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution-ShareAlike 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. Page 86/112 Illustration 5: Logo Creative Common By SA auteur : Organisation Creative Common ; CC0Section 1 – Definitions. a. Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image. b. Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License. c. BY-SA Compatible License means a license listed at creativecommons.org/compatiblelicenses, approved by Creative Commons as essentially the equivalent of this Public License. d. Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights. e. Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements. f. Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material. g. License Elements means the license attributes listed in the name of a Creative Commons Public License. The License Elements of this Public License are Attribution and ShareAlike. h. Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License. i. Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license. j. Licensor means the individual(s) or entity(ies) granting rights under this Public License. k. Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them. l. Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world. m. You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning. Section 2 – Scope. a. License grant. 1. Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to: A. reproduce and Share the Licensed Material, in whole or in part; and B. produce, reproduce, and Share Adapted Material. 2. Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions. 3. Term. The term of this Public License is specified in Section 6(a). Page 87/1124. Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material. 5. Downstream recipients. A. Offer from the Licensor – Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License. B. Additional offer from the Licensor – Adapted Material. Every recipient of Adapted Material from You automatically receives an offer from the Licensor to exercise the Licensed Rights in the Adapted Material under the conditions of the Adapter’s License You apply. C. No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material. 6. No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i). b. Other rights. 1. Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise. 2. Patent and trademark rights are not licensed under this Public License. 3. To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties. Section 3 – License Conditions. Your exercise of the Licensed Rights is expressly made subject to the following conditions. a. Attribution. 1. If You Share the Licensed Material (including in modified form), You must: A. retain the following if it is supplied by the Licensor with the Licensed Material: i. identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated); ii. a copyright notice; iii. a notice that refers to this Public License; iv. a notice that refers to the disclaimer of warranties; v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable; B. indicate if You modified the Licensed Material and retain an indication of any previous modifications; and C. indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License. Page 88/1122. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information. 3. If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable. b. ShareAlike. In addition to the conditions in Section 3(a), if You Share Adapted Material You produce, the following conditions also apply. 1. The Adapter’s License You apply must be a Creative Commons license with the same License Elements, this version or later, or a BY-SA Compatible License. 2. You must include the text of, or the URI or hyperlink to, the Adapter's License You apply. You may satisfy this condition in any reasonable manner based on the medium, means, and context in which You Share Adapted Material. 3. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, Adapted Material that restrict exercise of the rights granted under the Adapter's License You apply. Section 4 – Sui Generis Database Rights. Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database; b. if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material, including for purposes of Section 3(b); and c. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database. For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. Section 5 – Disclaimer of Warranties and Limitation of Liability. a. Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You. b. To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You. c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability. Section 6 – Term and Termination. Page 89/112a. This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically. b. Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates: 1. automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or 2. upon express reinstatement by the Licensor. For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License. c. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License. d. Sections 1, 5, 6, 7, and 8 survive termination of this Public License. Section 7 – Other Terms and Conditions. a. The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed. b. Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License. Section 8 – Interpretation. a. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License. b. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions. c. No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor. d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority. Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the “Licensor.” Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark “Creative Commons” or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. Creative Commons may be contacted at creativecommons.org. Page 90/112X.E \ Fiche de pharmacovigilanceTéléchargée en septembre 2014 sur le site web de l'ANSM : http://ansm.sante.fr/Declarer-un-effet-indesirable/Votre-declaration-concerne-unmedicament/Votre-declaration-concerne-un-medicament/Votre-declaration-concerne-unmedicament-Vous-etes-un-professionnel-de-sante#effet Page 92/112XI) Acronymes Nous nous sommes souvent appuyés sur les sites web des structures concernées pour connaître la signification des acronymes. Pour la signification des termes, le site web Wikipédia fut utilisé.  ACL : Association de Codification Logistique  ADELI : Automatisation DEs LIstes (répertoire de tous les professionnels de santé)  ADSL : Asymmetric Digital Subscriber pour liaison numérique asymétrique  AMM : Autorisation de Mise sur le Marché  ANSM : Agence Nationale de Sécurité du Médicament et des produits de Santé  API : Application Programming Interface pour interface programmatique  ARL : Accusés de Réception Logiques  ARS : Agence Régional de Santé  ASCII : American Standard Code for Information Interchange (ISO-646-02 ou ISO-646-06)  ASIP : Agence des Systèmes d'Informations Partagés  AURA : Association des Utilisateurs de Robots et Automates, nom synonyme du protocole CDAPI  BSD : Berkeley Software Distribution pour Distribution logicielle de Berkeley  CD API : Consis Dispenser Application Programming Interface pour interface programmatique de dispensation concise.  CEPS : Comité Économique des Produits de Santé  CERP Coopérative d'Exploitation et de Répartition Pharmaceutiques  CIP : Code du Club Inter-Pharmaceutique  CNAMTS : Caisse Nationale de l'Assurance Maladie des Travailleurs Salariés  CNDA : Centre National de Dépôt et d'Agrément  CNHIM : Centre National Hospitalier d'Information sur le Médicament Page 93/112 CNOP : Conseil National de l'Ordre des Pharmaciens (en France)  CNIL : Commission Nationale de l'Informatique et des Libertés  CPAM : Caisse Primaire d'Assurance Maladie  CPS : Carte de Professionnel de Santé  CRAT : Centre de Référence sur les Agents Tératogènes  CSP : Code de la Santé Publique  CSRP : Chambre Syndicale de la Répartition Pharmaceutique  CSS : Code de Sécurité-Sociale  CUPS : Common UNIX Printing System pour système commun d'impression UNIX  CV : Carte Vitale  DKMI : DomainKeys Mail Identified pour Identification des noms de domaines pour courriel  DMP : Dossier Médical Personnel ou Dossier Médical Partagé  DP : Dossier Pharmaceutique  DRE: Demande de Remboursement Électronique  DREES : Direction de la recherche, des études, de l’évaluation et des statistiques  DVD : Digital Versatile Disc pour disque numérique polyvalent  EAN : European Article Numbering pour numération européenne d'article  EMA : European Medicines Agency pour agence européenne des médicaments appelé précédemment EMEA (European Agency for the Evaluation of Medicinal Products)  EHPAD : Établissement Hébergement pour Personnes Âgées Dépendantes  ERP : Enterprise Resource Planning ou Progiciel de Gestion Intégré (PGI)  ECC : Error Correction Codewords pour correction d'erreurs d'éléments  FLOSS : Free/Libre and Open-Source Softwares  FSE : Feuille de Soin Électronique  FSPF : Fédération Syndicale des Pharmaciens de France Page 94/112 FSF : Free Software Foundation pour fondation pour le logiciel libre  GERS : Groupement d’Études et de Recherche sur la Santé  GIE : Groupement d’Intérêts Économique  GIP : Groupement d’Intérêts Public  GPL : GNU Public Licence pour Licence Publique GNU  HAS : Haute Autorité de Santé  HTML : HyperText Markup Language soit langage de balisage hypertexte  HTTP : HyperText Transfer Protocol pour protocole de transfert hypertexte  HPST : loi Hôpital Patient Santé Territoire  IAS-ECC : Identification-Authentification-Signature European-Citizen-Card pour Identification- Authentification-Signature Carte-Européenne-Citoyenne  IETF : Internet Engineering Task Force pour détachement d'ingénierie d'Internet  IGAS : Inspection Générale des Affaires Sociales  IMAP : Internet Message Access Protocol pour protocole internet d'accès à la messagerie  ISO : International Organization for Standardization pour organisation internationale de normalisation  LED Light-Emitting Diode pour diode électroluminescente  LOI Liste d'Opposition Incrémentale  LGO : Logiciel de Gestion d'Officine  MIT : Massachusetts Institute of Technology pour Institut de technologie du Massachusetts  MSA : Mutualité Sociale Agricole  MSS : Messagerie Sécurisée de Santé  NAS : Network Attached Storage pour serveur de stockage en réseau  NOÉMIE : Norme Ouverte d'Échanges entre l'Assurance Maladie et les Intervenants Extérieurs  ODF : Open Document Format pour format ouvert de document  OS : Operating System pour Système d'Exploitation (SE) Page 95/112 OSI : Open Source Initiative pour Initiative Open Source  OSI : Open Systems Interconnection Système ouvert d'interconnexion  PDA : Préparation des Doses à Administrer  PC/SC : Personnal Computer/Smart Card : Ordinateur personnel/Carte à puce  PDF : Portable Document Format pour format de document portable  PS : Professionnel de Santé  PIN : Personal Identification Number ou code confidentiel  PUI : Pharmacie à Usage Intérieur  RAID : Redundant Array of Independent (or inexpensive) Disk soit regroupement redondant de disques indépendants  RCP : Résumé des Caractéristiques des Produits  RJ 45 : Registered Jack 45 ou prise jack enregistrée n° 45  RPPS : Répertoire Partagé des Professionnels de Santé  RSI : Régime Social des Indépendants  RSP : Rejet/Signalement/Paiement  RSS : Réseau Santé Sociale  S/MIME : Secure / Multipurpose Internet Mail Extensions pour Sécurité/ Extensions multifonctions du courrier Internet  SCOR : SCannérisation des ORdonnances  SE : Système d'Exploitation (voir OS)  SEH Système d’Échanges Harmonisés des organismes d’assurance maladie obligatoire  SESAM : Système électronique de Saisie de l'Assurance Maladie  SIM : Subscriber Identity Module pour module d'identité d'abonné  SIPS : Système d'Information sur les Produits de Santé  SMTP : Simple Mail Transfer Protocol pour protocole simple de transfert de courriel  SOAP : Simple Object Access Protocol  SQL : Structured Query Language pour langage de requête structurée Page 96/112 SSII ou SS2I : Sociétés de Services en Ingénierie Informatique  SVG : Scalable Vector Graphics pour graphique vectoriel adaptable (à la taille de l'écran)  SSL : Secure Sockets Layer pour couche encapsulé sécurisée  TLS : Transport Layer Security pour sécurité de la couche de transport, sucesseur du SSL  TPE : Terminal de Paiement Électronique  USB : Universal Serial Bus pour bus universel en série  UCD : Unité Commune de Dispensation  VPN : Vitual Private Network pour réseau privé virtualisé  XML : eXtensible Markup Language ou langage balisé extensible Page 97/112XII) Bibliographie [1] BOUTOT M. Une approche de l'informatique appliquée à l'officine pharmaceutique -Thèse d'exercice Pharmacie Limoge- 1977. http://www.sudoc.fr/092200826 Format papier [2] DÉCRET N°98-275 DU 9 AVRIL 1998 RELATIF À LA CARTE D'ASSURANCE MALADIE ET MODIFIANT LE CODE DE LA SÉCURITÉ SOCIALE (DEUXIÈME PARTIE : DÉCRETS EN CONSEIL D'ÉTAT). Journal Officiel de la République Française (Avril-1998) 88- p. 5799 ; NOR: MESS9821137D [3] DÉCRET N°98-271 DU 9 AVRIL 1998 RELATIF À LA CARTE DE PROFESSIONNEL DE SANTÉ ET MODIFIANT LE CODE DE LA SÉCURITÉ SOCIALE ET LE CODE DE LA SANTÉ PUBLIQUE (DEUXIÈME PARTIE : DÉCRETS EN CONSEIL D'ÉTAT). Journal Officiel de la République Française (Avril-1998) 84- p. 5714 ; NOR: MESS9820674D [4] ARTICLE L162-16-1. Code de la sécurité sociale (Décembre-2011) - ; [5] BRIOUDE J. La difficile informatisation du système de santé français -Thèse d’exercice Pharmacie Bordeaux 2- 1999. (p38) (p34-35, p55-56, p70, p 73) http://www.sudoc.fr/048353272 [6] GRATIEUX L & OLLIVIER R. Audit de l'organisation et du pilotage des organismes œuvrant à l'informatisation du système de santé. Inspection générale des affaires sociales (2007) (p32-33) (p118) http://www.ladocumentationfrancaise.fr/rapports-publics/074000669/index.shtml [7] GIE SESAM-Vitale. Historique des versions du cahier des charges sesam - vitale. GIE SESAM-Vitale (2012) (p20) https://www.sesamvitale.fr/offre/industriel/sesam-vitale/docs/historique-versions-cdc-sv.pdf [8] FIGLAREK C. L'utilisation de la cryptographie dans les échanges de données médico-sociales -Mémoire de l'École Nationale de la Santé Publique- 2000. (p41) http://figlarek.online.fr/Cryptographie.pdf [9] Cour des Comptes. Rapport public annuel 2013 : les téléservices publics de santé : un pilotage toujours insuffisant. Cour des Comptes (2013) (p 405) (p384) (p385) (p393) (p 365) (p366) http://www.ccomptes.fr/Publications/Publications/Rapport-publicannuel-2013 [10] GIP ASIP Santé. Guide de présentation générale de la carte cps3. . 2011 (p 6) (p13) (p29) http://integrateurs-cps.asipsante.fr/pages/La-carte-CPS3 [11] ORLIAC P. La pharmacie d'officine à l'ère de la dématérialisation -Thèse d'exercice Pharmacie Toulouse 3- 2013. (p123-124) (p 90-91) (139) (p167) http://www.sudoc.fr/175891494 Version numérique [12] ARTICLE L162-4-3. Code de la Santé Publique (Juillet-2005) - ; Page 98/112[13] R161-33-8. Code de la Sécurité Sociale (15 Avril-1998) - ; [14] Pharmaciens -vous êtes équipés - AMELI - http://www.ameli.fr/professionnels-de-sante/pharmaciens/gerer-votreactivite/equipement-sesam-vitale/vous-etes-equipe/liste-d-8217-opposition-des-cartesvitale_doubs.php {Consulté le 22 septembre 2014} [15] ARTICLE R161-52. Code de la sécurité sociale (Janvier-2005) - ; [16] DÉCRET N° 2007-960 DU 15 MAI 2007 RELATIF À LA CONFIDENTIALITÉ DES INFORMATIONS MÉDICALES CONSERVÉES SUR SUPPORT INFORMATIQUE OU TRANSMISES PAR VOIE ÉLECTRONIQUE ET MODIFIANT LE CODE DE LA SANTÉ PUBLIQUE (DISPOSITIONS RÉGLEMENTAIRES). Journal Officiel de la République Française (16 mai-2007) 113- p. 9362 ; NOR: SANP0721653D [17] ARRÊTÉ DU 11 JUILLET 2006 PORTANT APPROBATION DE LA CONVENTION NATIONALE ORGANISANT LES RAPPORTS ENTRE LES PHARMACIENS TITULAIRES D'OFFICINE ET L'ASSURANCE MALADIE. Journal Officiel de la République Française (25 Juillet-2006) 170- p. 11085 ; NOR: SANS0622889A [18] GIE SESAM-Vitale. Migration en v3.x des lecteurs sesam-vitale. (2012) : . http://www.sesam-vitale.fr/divers/lecteurs-migration.asp [19] Liste des lecteurs de cartes homologués disponibles à la vente - GIE SESAM-Vitale - http://www.sesam-vitale.fr/__asp/homologations/produits/lecteur_liste.asp?c=vert&p=0 {Consulté le 27 mai 2014} [20] Communiqué de presse: thales annonce l'acquisition de la société wynid technologies - Service de Presse de la société Thales - https://www.thalesgroup.com/fr/content/thales-annonce-lacquisition-de-la-societewynid-technologies {consulté le 27 mai 2014} [21] Communiqué de presse: succès de l’offre d’achat d’ingenico sur xiring - Service de Presse d'Ingenico - http://healthcare-eid.ingenico.com/Communique-de-Presse.aspx? card=2565 {consulté le 27 mai 2014} [22] La présérie pc/sc a débuté le 17 mars dernier ! - GIE-SESAM-Vitale - http://sesamvitale.fr/pratique/actualites/actu-2014-04-25.asp {Consulté le 27 mai 2014} [23] ADENOT I. Le dossier médical personnel (dmp) et le dossier pharmaceutique (dp) des pharmaciens d'officine -Thèse d'exercice Pharmacie Dijon- 2005. (p29-41) (p43-47) http://www.sudoc.fr/094288135 Format papier [24] What is the pc/sc technology - Gemalto - http://www.gemalto.com/techno/pcsc/ {consulté le 27 mai 2014} [25] Les missions de la cpam - AMELI - http://www.ameli.fr/professionnels-desante/medecins/votre-caisse-cotes-d-armor/nous-connaitre/les-missions-de-lacpam/garantir_cotes-d-armor.php {Consulté le 27 mai 2014} [26] FAURICHON DE LA BARDONNIE H. Gestion des moyens techniques des officines -Thèse d'exercice Pharmacie Tours- 2010. (p120 -122) (p122) http://www.sudoc.fr/146316630 Format papier [27] ARRÊTÉ DU 4 MAI 2012 PORTANT APPROBATION DE LA CONVENTION NATIONALE ORGANISANT LES RAPPORTS ENTRE LES PHARMACIENS TITULAIRES D'OFFICINE ET L'ASSURANCE MALADIE. Journal Officiel de la République Française (6 mai-2012) n°0107- p. 8112 ; NOR: ETSS1220861A [28] Cnamts. Rapport d’activité 2011. (2012) p. 36-37 /76 Page 99/112www.ameli.fr/rapport-activite-2011/data/catalogue.pdf [29] Caisse Nationale de l'Assurance Maladie. Modernisation et efficience du système de soins : la dématérialisation des ordonnances par les pharmaciens est engagée. (2011) p. 2/7 http://www.urps-oi.net/Pharmaciens/20111201-Dematerialisation-ordonnances.pdf [30] ARTICLE L161-36-4-2. Code de la Sécurité Sociale (Janvier-2007) - ; [31] FUCHS A. Le dossier pharmaceutique -Thèse d'exercice Pharmacie Strasbourg 1- 2008.(p48) http://www.sudoc.fr/128505397 Format papier [32] CNOP. Le nouveau système d'alerte est opérationnel. Le Journal de l'ordre national des Pharmaciens (2011) : . http://www.ordre.pharmacien.fr/content/download/5243/67603/version/4/file/Lejournal-ordre-des-pharmaciens-8.pdf [33] Direction des technologie en Santé. Rapport d'activité dp 2013. Conseil National de l'Ordre des pharmaciens (2014) (p20) (p21) (p29) (p27-28) http://www.ordre.pharmacien.fr/Communications/Rapports-d-activite/Le-DossierPharmaceutique-Rapport-d-activite-2013 [34] DÉCRET N° 2012-1131 DU 5 OCTOBRE 2012 RELATIF À LA CONSULTATION ET À L'ALIMENTATION DU DOSSIER PHARMACEUTIQUE PAR LES PHARMACIENS EXERÇANT DANS LES PHARMACIES À USAGE INTÉRIEUR. (Octobre-2012) - ; NOR: AFSH1223067D [35] Jean-Pierre P. Circulation de l’information sur les ruptures d’approvisionnement en médicaments. (2010) : . http://www.ordre.pharmacien.fr/content/view/full/120487 [36] ARTICLE 23 DE LA LOI N°2011-2012 DU 29 DÉCEMBRE 2011. Journal Officiel de la République Française (Décembre-2011) 0302- p. 22667 ; NOR: ETSX1119227L [37] BERTRAND M. Le dossier pharmaceutique au service du pharmacien : un outil informatique construit pour une utilisation professionnelle optimale -Thèse de Pharmacie de Lorraine -Nancy 1- 2012. (p86-87) (p100) http://docnum.univlorraine.fr/public/BUPHA_T_2012_BERTRAND_MATHIEU.pdf Format numérique [38] ARTICLE R5132-9. Code de la Santé Publique (février-2007) - ; PARAGRAPHE 3 : DÉLIVRANCE [39] ARTICLE R5132-35. Code de la Santé Publique (Février-2007) - ; [40] Stupéfiants ou assimilés : conservation dématérialisée des copies d'ordonnances - Conseil National de l'Ordre des Pharmaciens - http://www.meddispar.fr/Actualites/2014/Stupefiants-ou-assimiles-conservationdematerialisee-des-copies-d-ordonnances {consulté le 01 mai 2014} [41] ARTICLE L161-38. Code de la Sécurité Sociale (29 Décembre-2011) - ; [42] Agrément des bases de données sur les médicaments - HAS - http://www.hassante.fr/portail/jcms/c_672761/fr/agrement-des-bases-de-donnees-sur-les-medicaments {Consulté le 28 mai 2014} [43] Interactions médicamenteuses -thesaurus - ANSM - http://ansm.sante.fr/Dossiers/Interactions-medicamenteuses/Interactionsmedicamenteuses/%28offset%29/0#paragraph_1798 {Consulté le 07 Octobre 2014} [44] Gie-sips et thesorimed®: qui nous sommes - GIE-SIPS - http://theso.prodPage 100/112deux.thesorimed.org/Vues/Presentation.html {Consulté le 27/05, mise à jour du site 27-05- 2014 } [45] Theriaque : qui nous sommes ? - Site web Theriaque.org - http://www.theriaque.org/apps/journal/index.php? menu=qui_sommes_nous_menu&type=qui_sommes_nous {Consulté le 28 mai 2014} [46] HUSSON M. Thériaque® : base de données indépendante sur le médicament, outil de bon usage pour les professionnels de santé. Annales Pharmaceutiques Françaises (2008) 66: pp. 268-277. http://www.sciencedirect.com/science/article/pii/S0003450908000977 [47] Nouveau protocole d'échanges officine/répartition successeur du 170-171 - Chambre Syndicale de la Répartition Pharmaceutique - http://www.csrp.fr/opencms/sites/fr/kiosque/pharmaml.html {Consulté le 22 septembre 2014} [48] Objectifs du club inter-pharmaceutique - CIP - http://www.ucdcip.org/assoc/objectifs.php {Consulté le 06 juin 2014} [49] AUBERT G. Pharmacie d'officine assistée par ordinateur -Thèse d'exercice Pharmacie Aix Marseille 2- 2011. (p 46-75) http://www.sudoc.fr/155621270 Format papier [50] GS1 France. Le code à barres, mes premiers pas. . 2014 Consulté le 06 juin 2014 http://www.publications.gs1.fr/ressources/telecharger/4819/ [51] GS1 France. Vous êtes pharmacien ? découvrez les avantages du code datamatrix. (2012) : . http://www.publications.gs1.fr/Publications/Pharmacien-decouvrez-lesavantages-du-code-DataMatrix [52] HAOND J. La lutte contre la contrefaçon : protection industrielle et sécurisation par le data matrix -Thèse d'exercice de Pharmacie de Nancy 1 -- Disponible en ligne dès mars 2015 (format numérique fournis gracieusement par le service bibliothécaire)--- 2012. (p80) http://docnum.univ-lorraine.fr/prive/BUPHA_T_2012_HAOND_JUSTINE.pdf Format numérique [53] ARTICLE R5124-58. Code de la Santé Publique (Décembre-2012) - ; [54] GS1 France. Guide des bonnes pratiques de lecture du code à barres 2d, gs1 datamatrix. (2012) : . http://www.publications.gs1.fr/Publications/Guide-des-bonnespratiques-de-lecture-du-code-a-barres-2D-GS1-Datamatrix [55] ARTICLE L625. Code de la Santé Publique (Juillet-1999) - ; [56] ARTICLE R5132-3. Code de la Santé Publique (décembre-2013) - ; [57] ARTICLE R5123-1. Code de la Santé Publique (Juillet-2005) - ; [58] ARTICLE L4241-1. Code de la Santé Publique (Juin-2000) - ; [59] Ministère de la Santé Québécoise. Entente relative à l'assurance maladie entre l'association québécoise des pharmaciens propriétaires et le ministre de la santé et des services sociaux. (2013) http://www.ramq.gouv.qc.ca/SiteCollectionDocuments/professionnels/manuels/260- pharmaciens/008_entente_pharm.pdf [60] Dépôt de la marque opinion pharmaceutique - INPI - http://basesPage 101/112marques.inpi.fr/Typo3_INPI_Marques/getPdf?idObjet=3305268_201430_fmark {Consulté le 13 septembre 2014} [61] BRAS P, KIOUR A, MAQUART B & MORIN A. Pharmacies d’officine : rémunération, missions, réseau. Inspection Générale des Affaires Sociales (2011) http://www.ladocumentationfrancaise.fr/rapports-publics/114000355/index.shtml [62] VALENDRET G. Informatique-automate: pour l'optimisation des stocks. L'Entreprise Officinale (2012) 2: pp. 34-35. http://www.pharmagest.com/biblio/rep_1000/fic_991.pdf [63] Protocole 3964r - IPCOMM GmbH - http://www.ipcomm.de/protocol/3964R/en/sheet.html {Consulté le 24 Juin 2014} [64] Anonyme. Robots et automates : ça marche à la baguette !. Le Pharmacien de France (2006) 1138: p. 74. http://www.caduciel.com/v2/actualites/docs/2006/NT_Robot.pdf [65] REY M. L’informatisation des officines et des pratiques officinales -Thèse d'exercice Pharmacie Bordeaux 2- 2009. (p30) http://www.sudoc.fr/137752121 Format papier [66] Document technique du protocole cd api version 2.2.0. 2009. Document fournit par la société ARX [67] Schnittstelle zwischen kommissioniersystemen und apotheken edv-systemen - ADAS - http://www.adas.de/images/pdf/Schnittstelle_11401_210504.pdf {Consulté le 24 Juin 2014} [68] ARTICLE R4235-21. Code de la Santé Publique (Août-2004) - ; [69] ARTICLE R4235-22. Code de la Santé Publique (Août-2004) - ; [70] ARTICLE L5125-1-1 A. Code de la Santé Publique (Juillet-2009) - ; [71] GRENIER M. Rôle du pharmacien d'officine lors de la dispensation des médicaments en ehpad -Thèse d'exercice Pharmacie Grenoble 1- 2012. (p60-64-67) (p88) http://www.sudoc.fr/163531935 Format numérique [72] NEGRO N. Informatique et nouvelles technologies au service de l'officine -Thèse d’exercice Pharmacie Paris-Sud- 2012. (p53) (p108 à 110) (p105) http://www.sudoc.fr/166903752 Format papier [73] ARTICLE R1111-12. Code de la Santé Publique (Janvier-2006) - ; [74] DÉCRET N°2006-6 DU 4 JANVIER 2006 RELATIF À L'HÉBERGEMENT DE DONNÉES DE SANTÉ À CARACTÈRE PERSONNEL ET MODIFIANT LE CODE DE LA SANTÉ PUBLIQUE. (5 Janvier-2006) - ; NOR: SANX0500308D [75] Hébergeurs agréés - ASIP-Santé - http://esante.gouv.fr/services/referentiels/securite/hebergeurs-agrees {Consulté le 21 Août 2014} [76] ARTICLE R5121-161. Code de la Santé Publique (Juillet-2014) - ; [77] ANSM. Qui déclare des événements indésirables médicamenteux au réseau national de pharmacovigilance ?. Vigilances: bulletin de l’agence nationale de sécurité du médicament et des produits de santé (2013) 57: p. 18. Page 102/112http://ansm.sante.fr/var/ansm_site/storage/ original/application/d2598f49629869786dbf52d974b00c33.pdf [78] ANSM. Rapport d'activité 2012 afssaps-ansm. Agence National de sécurité du médicaments et des produits de santé (2012) http://ansm.sante.fr/Mediatheque/Publications/Bilans-Rapports-d-activite-ANSMpublications-institutionnelles [79] Cour des Comptes. Rapport annuel sur la sécurité sociale 2008: les pharmacies d’officine et leurs titulaires libéraux. Cour des Comptes (2008) (p201) http://www.ccomptes.fr/Publications/Publications/Securite-sociale-2008 [80] ASIP. Mieux comprendre mssanté. (2014) : . http://asipsante.fr/sites/default/files/FAQ_MSSante_BD.PDF [81] VILTER V. Mssanté : point d’avancement du projet. 3 Octobre, 2013. http://asipsante.fr/actus/regions/retour-sur-les-rencontres-inter-regionales-de-l-asipsante-du-3-octobre [82] SIMON L. Le rpps par a+b. Le Pharmacien de France (2010) 1217: . http://www.lepharmacien.fr/fevrier-2010/reforme-le-rpps-par-a-b.html [83] ASIPSanté. Interfaces d'accès au système de messageries sécurisées de santé - dossier des spécifications techniques - v1.0.0. ASIPSanté (Ed.). , 2014 http://asipsante.fr/actus/services/mssante-conditions-de-mise-en-oeuvre-de-linteroperabilite-et-point-de-vue-de-la-feim [84] Télécharger dès à présent thunderbird, le premier logiciel de messagerie compatible mssanté - ASIP-Santé - https://www.mssante.fr/telechargements/Thunderbird {Consulté le 03 septembre 2014} [85] Avenant n°1 à la convention nationale - Assurance Maladie - http://www.ameli.fr/professionnels-de-sante/pharmaciens/votre-convention/conventionnationale-titulaires-d-officine/avenant-n-1-a-la-convention-nationale_haute-loire.php {Consulté le 08 Octobre 2014} [86] Traitement des patients sous a.v.k. - Assurance Maladie - http://www.ameli.fr/professionnels-de-sante/pharmaciens/votre-caisse-haute-loire/vousinformer/traitement-des-patients-sous-a.v.k._haute-loire.php {Consulté le 08 Octobre 2014} [87] CNOP. Recommandations de gestion des produits de santé soumis à la chaîne du froid entre +2°c et +8°c à l’officine. CNOP (Ed.). , 2009 http://www.eqo.fr/content/download/81524/889958/version/1/file/Recommandationsgestion-produits-de-sante-soumis-chaine-du-froid-officine-2009.pdf [88] État Français. Décret n° 2012-1562 du 31 décembre 2012 relatif au renforcement de la sécurité de la chaîne d'approvisionnement des médicaments et à l'encadrement de la vente de médicaments sur internet. (2012) : . http://www.legifrance.gouv.fr/affichTexte.do?cidTexte=JORFTEXT000026871417 [89] DÉCISION DU CONSEIL D'ÉTAT DU 17 JUILLET 2013 N°S 365317, 366195, 366272, 366468: VENTE EN LIGNE DE MÉDICAMENTS. (17 Juillet-2013) - ; [90] Le Parisien. Une plainte vise onze sites. Le Parisien (2013) : . http://www.leparisien.fr/societe/une-plainte-vise-onze-sites-07-08-2013-3036145.php Page 103/112[91] Ordre National des Pharmaciens. 10600 sites internet fermés. Le Journal de l'Ordre National des Pharmaciens (2014) 38: . http://www.ordre.pharmacien.fr/index.php/content/download/160791/ 784215/version/13/file/le-journal-ordre-pharmaciens-38.pdf [92] Fin de vie pour le réseau santé social - FRASLIN J - http://www.amula.asso.fr/site/article.php?id_article=4 {Consulté le 03 Octobre 2014} [93] CECCHI TENERINI R, , LAFON, Philippe & LAROQUE M. Évaluation du système d'information des professionnels de santé. Inspection Générale des Affaires Sociales (2002) (p13 et p32) (p31) (p 62) (p6) http://www.ladocumentationfrancaise.fr/rapportspublics/044000449/index.shtml [94] Conseil National de l'Ordre des pharmaciens. La protection de la croix verte et du caducée. (2014) : . http://www.ordre.pharmacien.fr/Nos-missions/Assurer-la-defense-de-lhonneur-et-de-l-independance/La-protection-de-la-croix-verte-et-du-caducee [95] Publication des demandes d’enregistrement auprès de l'inpi - INPI - http://basesmarques.inpi.fr/Typo3_INPI_Marques/getPdf?idObjet=3507793_201236_fmark {Consulté le 13 septembre 2014} [96] ARTICLE R4235-59. Code de la Santé Publique (Août-2004) - ; [97] Un employeur a-t-il le droit d’installer un système de vidéosurveillance dans son entreprise ? - CNIL - http://www.cnil.fr/documentation/questionsreponses/? tx_irfaq_pi1[showUid]=198&tx_irfaq_pi1[back]=amF2YXNjcmlwdDpoaXN0b3J5LmdvKC 0xKQ%3D%3D {Consulté le 13 juin 2014} [98] KRISTANADJAJA G. J’ai pris le contrôle de votre caméra et je vous ai retrouvés. Rue 89/Nouvel Observateur (2014) : . http://rue89.nouvelobs.com/2014/06/09/jai-prisles-commandes-camera-ai-retrouves-252793 [99] Ordre national des Pharmaciens. Puis-je installer un distributeur en façade de mon officine ?. Journal de l'ordre national des Pharmaciens (2014) 35: . http://www.ordre.pharmacien.fr/content/download/146783/735678/version/9/file/lejournal-ordre-pharmaciens-35.pdf [100] Liste des logiciels agréés sesam-vitale 1.30 - GIE SESAM-Vitale - http://www.cnda-vitale.fr/php/agrement-1.30.php?page=les%20logiciels%20agr %E9%E9s {consulté le 18 Août 2014} [101] Parts de télétransmission - pour la catégorie : pharmaciens - GIE SESAM-Vitale - http://www.sesam-vitale.fr/divers/chiffres/histo-pdm.asp {Consulté le 16 Août 2014} [102] Activités - Cegedim - http://www.cegedim.fr/groupe/Pages/Activites.aspx {Consulté le 18 Aout 2014} [103] Un groupe, plusieurs savoir-faire - Groupe Pharmagest - http://www.pharmagest.com/nous-connaitre/le-groupe-pharmagest-r1.html {Consulté le 18 Aoùt 2014} [104] Nos membres - GIE SESAM-Vitale - http://www.sesam-vitale.fr/nousconnaitre/gouvernance-membres.asp# {Consulté le 18 Août 2014} [105] ARTICLE L4231-1. Code de la Santé Publique (décembre-2005) - ; [106] SUEUR N. La pharmacie centrale de france une coopérative au service d'un Page 104/112groupe professionnel 1852-1879 -Thèse de doctorat Histoire Lyon 3- 2012. (p 9 à 30) http://www.theses.fr/2012LYO30068/document Format numérique [107] ANTOINE A. Système coopératif et répartition pharmaceutique -Thèse d'exercice de Pharmacie de Nancy 1- 2006. (p74-79) http://docnum.univlorraine.fr/public/SCDPHA_T_2006_ANTOINE_ARNAUD.pdf Format numérique [108] ARTICLE R5124-59. Code de la Santé Publique (Octobre-2012) - ; [109] PETIT J. Histoire d'un grossiste-répartiteur : la cerp-rouen. Revue d'histoire de la pharmacie (2000) : pp. 209-214. http://www.persee.fr/web/revues/home/prescript/article/pharm_0035- 2349_2000_num_88_326_5084 [110] Spc: la coopérative - SPC - http://www.spcorleans.fr/la-cooperative {Consulté le 13 septembre 2014} [111] Ospharm: la coopérative - OSPHARM - http://www.ospharea.com/la_cooperative.html {consulté le 13 septembre 2014} [112] ANDRE G. Quels groupements de pharmacies comme alternative française aux chaines? la « french touch » -Thèse d'exercice Pharmacie Nantes- 2000.(p 68) (p67) http://www.sudoc.fr/053737342 Format papier [113] GISSAT-SAURET B. Apports des groupements dans la profession de pharmacien étude et prospective du groupe giphar -Thèse d'exercice Pharmacie Tours- 2002. (p29) (p51-53) (p56) (p97) http://www.sudoc.fr/068945469 Format numérique [114] Réalisation de la fspf - FSPF - http://www.fspf.fr/index.php/qui-sommesnous-/nos-realisations.html {Consulté le 18 Août 2014} [115] Liste des organismes concentrateurs techniques - GIE S - http://www.sesamvitale.fr/offre/prestataire-de-soins/infos-pratiques/oct-liste.asp {Consulté le 11 juin 2014} [116] Pharmastat, un réseau - IMS-Pharmastat - http://www.ims-pharmastat.fr/quisommesnous/Decouvrir-Pharmastat/Pharmastat-un-reseau.html {Consulté le 18 Août 2014} [117] Adhérents de la csrp - CSRP - http://www.csrp.fr/opencms/sites/fr/presentationcsrp/adherents.html {Consulté le 13 septembre 2014} [118] GIE SESAM-Vitale. Historique des professionnels de santé en télétransmission. GIE SESAM-Vitale (2014) http://www.sesam-vitale.fr/divers/chiffres/histo-teleps.asp [119] ARTICLE L4211-3: PRO-PHARMACIEN. Code de la Santé Publique (févirer-2010) - ; [120] PIRAS B. Question écrite n° 00703. Sénat (2007) M. Bernard Piras attire l'attention de Mme la ministre de la santé, de la jeunesse et des sports sur la situation des médecins autorisés à dispenser des médicaments dans un secteur géographique dépourvu d'officine. Ces médecins, désignés par le terme propharmacien, ne possèdent pas la carte professionnelle de pharmacien, ce qui leur crée des nuisances pour le tiers payant et la télétransmission, notamment lorsqu'ils soignent des patients n'habitant pas dans le même département. Ce dysfonctionnement est préjudiciable aux patients mais également aux médecins concernés, astreints de ce fait à une lourde paperasserie. Il lui demande de lui indiquer les mesures qu'elle entend rapidement adopter pour résoudre ce problème. Page 105/112http://www.senat.fr/questions/base/2007/qSEQ070700703.html [121] BAYART B. Internet libre, ou minitel 2.0 ?. RMLL Juillet, 2007. http://www.fdn.fr/IMG/pdf/transcription_minitel_2.0.pdf [122] Red hat: france is the most 'active' open source country, moldova the least - Jacqueline E - http://betanews.com/2009/04/24/red-hat-france-is-the-most-activeopen-source-country-moldova-the-least/ {Consulté le 25 septembre 2014} [123] Open source index ranks - Red Hat - http://www.redhat.com/f/pdf/ossi-indexranks.pdf {Consulté le 25 septembre 2014} [124] France leads europe in open source adoption - Pierre Audouin Consultants - https://www.pac-online.com/france-leads-europe-open-source-adoption {Consulté le 25 septembre 2014} [125] AYRAULT J. Usage du logiciel libre dans l’administration. Premier Ministre - DISIC (2012) https://www.april.org/circulaire-ayrault-une-avancee-pourlusage-du-logiciel-libre-dans-les-administrations-en-attendant-le-volet-legislatif [126] ELIE F. Économie du logiciel libre. Eyrolles (Ed.). , 2009 [127] APRIL. Le livre blanc du logiciel libre. APRIL (Ed.). , 2007 http://www.april.org/articles/livres-blancs/modeles-economiques-logiciel-libre [128] Groupe thématique Logiciel Libre de Systematic Paris-Region. Les livrets bleus du logiciel libres: modèles économiques. . 2014 http://www.systematic-parisregion.org/fr/node/22803 [129] . Licence publique générale gnu version 2 - traduction francophone non officielle. (1998) : . http://www.linux-france.org/article/these/gpl.html [130] . Licence publique générale gnu version 3. (2011) : . http://dachary.org/loic/gplfrench.pdf [131] Free Software Foundation. Gnu general public license version 2. (1991) : . https://www.gnu.org/licenses/old-licenses/gpl-2.0.html [132] Free Software Foundation. Gnu general public license version 3. (2007) : . https://www.gnu.org/licenses/gpl.txt [133] L'écho des gnous #0011 - STALLMAN RM - http://www.chtinux.org/podcast/? p=episode&name=2011-03-06_echo_des_gnous_11.ogg {40 minutes 30 jusqu'à 47 minutes15 - Consulté le 20 mai 2014 - CC-by-sa} [134] Top 20 open source licenses - BlackDuck - http://www.blackducksoftware.com/resources/data/top-20-open-source-licenses {Consulté le 14 septembre 2014} [135] Red Hat. Red hat reports fourth quarter and fiscal year 2013 results. Red Hat (2013) http://investors.redhat.com/releasedetail.cfm?ReleaseID=751668 [136] Trademarks – the good, the bad and the ugly - ANDERSON H - http://lockshot.wordpress.com/2009/04/20/trademarks-%E2%80%93-the-good-the-badand-the-ugly/ {Consulté le 16 Juillet 2014} [137] Mozilla trademark policy - Mozilla Foundation - https://www.mozilla.org/enPage 106/112US/foundation/trademarks/policy/ {Consulté le 16 Juillet} [138] Mozilla desktop distribution - Mozilla - https://www.mozilla.org/enUS/about/partnerships/distribution/ {Consulté le 17 Juillet 2014} [139] Oracle cède la marque openoffice.org à apache - BEAUSSIER C - http://oooforum.free.fr/index.php/2011/09/11/oracle-cede-la-marque-openoffice-org-aapache/ {Consulté le 16 Juillet 2014} [140] The document foundation mark policy - The Document Foundation - https://wiki.documentfoundation.org/TradeMark_Policy {Consulté le 16 Juillet 2014} [141] Première victoire contre les para-sites de openoffice.org - BEAUSSIER C - http://oooforum.free.fr/index.php/2010/02/18/premiere-victoire-contre-les-para-sites-deopenoffice-org/ {Consulté le 16 Juillet} [142] Netcraft. June 2014 web server survey. Netcraft (2014) http://news.netcraft.com/archives/2014/06/06/june-2014-web-server-survey.html [143] NICCOLAI J. Ballmer still searching for an answer to google. PCWorld (2008) : . http://www.pcworld.com/article/151568/article.html [144] CARNUS C. Le pharmacien et l'informatique officinale à travers une enquête menée dans le lot en 2001 -Thèse d'exercice Pharmacie Toulouse 3- 2002. (p28) http://www.sudoc.fr/068672039 Format papier [145] Membres de la fondation linux - Linux Foundation - http://www.linuxfoundation.org/about/members {Consulté le 5 septembre 2014} [146] Linux Foundation. The linux foundation releases annual linux development report 2012. Linux Foundation (2012) http://www.linuxfoundation.org/newsmedia/announcements/2012/04/linux-foundation-releases-annual-linux-development-report [147] Microsoft contributes linux drivers to linux community - Microsoft - http://www.microsoft.com/en-us/news/features/2009/jul09/07-20linuxqa.aspx {Consulté le 03 Octobre 2014} [148] The mozilla foundation - Mozilla - https://www.mozilla.org/en-US/foundation/ {Consulté le 17 Juillet 2014} [149] About the mozilla corporation - Mozilla - https://www.mozilla.org/enUS/foundation/moco/ {Consulté le 17 Juillet 2014} [150] PostgreSQL. The postgresql licence. (1994) : . http://www.postgresql.org/about/licence/ [151] Liste des logiciels agréés sesam-vitale 1.40 - GIE SESAM-Vitale™ - http://www.cnda-vitale.fr/php/agrement-1.40.php?page=les%20logiciels%20agrees {consulté le 28 mars 2014} [152] Liste des logiciels agréés à la technologie scor - GIE SESAM-Vitale™ - http://www.sesam-vitale.fr/__asp/progiciels/agrements/liste-scor.asp?c=orange {consulté le 01 mai 2014} [153] Ordre national des pharmaciens (France). Le dossier pharmaceutique chiffres, mode d'emploi, perspectives et acteurs majeur l'essentiel pour mieux comprendre cet outil professionnel incontournable. . Ordre national des pharmaciens, Paris, 2011 Page 107/112http://www.ordre.pharmacien.fr/index.php/Communications/Rapports-Publicationsordinales/Le-Dossier-Pharmaceutique [154] Présentation de la société ibsm soft - Societe.com - http://www.societe.com/societe/ibsm-soft-409969904.html {Consulté le 16 Juin 2014} [155] CHATEAU C. État actuel des principaux matériels informatiques disponibles sur le marché pour informatiser une officine -Thèse d'exerice de Pharmacie Paris 11- 1989. (p17-21) http://www.sudoc.fr/043197043 Format papier [156] Winstory -1993 - WinPharma - http://www.winpharma.com/histoire.php {Consulté le 22 septembre 2014} [157] Opus: nous connaître - PG Informatique - http://www.opusoftware.fr/nousconnaitre.html {Consulté le 22 septembre 2014} [158] Windows xp and office 2003 countdown to end of support, and the april 2012 bulletins - MSRC Team - http://blogs.technet.com/b/msrc/archive/2012/04/10/windowsxp-and-office-2003-countdown-to-end-of-support-and-the-april-2012-bulletins.aspx {Consulté le 05 Octobre 2014} [159] GELBRAS CHARLES-NICOLAS P. L'informatique en officine étude comparative des systèmes proposés par les fabricants -Thèse d'exercice Pharmacie Paris 11 - 1982.(p2) http://www.sudoc.fr/041705475 Format papier [160] Ordre national des pharmaciens, FSPF, UNPF, USPO. Charte qualité pour les logiciels à l'usage de l'exercice officinal. . 2008 Plus accessible sur le site du CNOP en 2014 [161] CNOP. Changement d’hébergeur du dp : 26 millions de dossiers transférés avec succès !. La Lettre de l'ordre national des pharmaciens (2013) 26: . http://lalettre.ordre.pharmacien.fr/accueil-lettre-26/Changement-d-hebergeur-du-DP-26- millions-de-dossiers-transferes-avec-succes [162] ARTICLE L161-36-1 A. Code de la Sécurité Sociale (Août-2004) - ; [163] CNOP. Recommandations - respect de la confidentialité des données de patients dans l'usage de l'informatique. Conseil Nationale de l'Ordre des Pharmaciens (2013) http://www.ordre.pharmacien.fr/Communications/Publications-ordinales/Respect-de-laconfidentialite-des-donnees-de-patients [164] La vente d'antibiotiques à l'unité autorisée à l'essai - OUAFIA K - http://www.franceinfo.fr/societe/actu/article/la-vente-d-antibiotiques-l-unite-autorisee-lessai-293477 {Consulté le 21 Août 2013} [165] WORONOFF LEMSI M, GRALL J, MONIER B & BASTIANELLI Jean-Paul. Le médicament à l'hôpital. Inspection Général Affaires Sociales (2003) http://www.ladocumentationfrancaise.fr/rapportspublics/034000374/index.shtml#book_synthese [166] BENSADON A, MARIE E & MORELLE A. Rapport sur la pharmacovigilance et gouvernance de la chaîne du médicament. Inspection générale des affaires sociales (2011) (p30) (p156) http://www.ladocumentationfrancaise.fr/rapportspublics/114000331/index.shtml [167] Cahier des charges sesam-vitale éditeur 1.40. 2012. {consulté en 15 avril 2014} https://www.sesam-vitale.fr/offre/industriel/sesam-vitale/docs/cdc-1.40-integralPage 108/112addendum6.pdf [168] GIE SESAM-Vitale. Rapport d'activité du gie sesam-vitale 2012. (2013) : . http://www.sesam-vitale.fr/pratique/catalogue/index.html [169] GOASGUEN C. Question n° 122878 au ministère du travail. Assemblé Nationale (2011) M. Claude Goasguen attire l'attention de M. le ministre du travail, de l'emploi et de la santé sur la mise en place des cartes Vitale de deuxième génération. La lutte contre la fraude sociale étant un objectif fort du Gouvernement, l'amélioration du dispositif de gestion de l'assurance maladie est une nécessité absolue. Le déficit record du budget de l'assurance maladie pour l'année 2011 est un indicateur négatif pour les places financières et les agences de notation. Les actions menées par le Gouvernement vont dans le bon sens, et doivent être encore renforcées. On parle de millions de cartes Vitale falsifiées ou détournées. Or la mise en place d'une photographie sur ces cartes est un moyen simple et efficace de diminuer les fraudes. Elle est en cours de réalisation, mais il paraît opportun d'accélérer la mise en circulation de cette deuxième génération de cartes. C'est pourquoi il souhaiterait connaître le nombre de cartes Vitale de deuxième génération mis en circulation et les projections faites pour couvrir l'ensemble des assurés sociaux. http://questions.assembleenationale.fr/q13/13-122878QE.htm [170] PERRUT B. Question n° 128451 au ministère du travail. Assemblée Nationale (2012) M. Bernard Perrut appelle l'attention de M. le ministre du travail, de l'emploi et de la santé sur la décision de mettre en place des cartes vitales nouvelles destinées à remplacer celles de la première génération qui sont à l'origine de nombreuses fraudes. L'innovation importante comporte notamment la présence d'une photographie du titulaire permettant sa reconnaissance immédiate. Il lui demande à quel rythme s'effectue le changement et dans quel délai la nouvelle carte couvrira l'ensemble du territoire http://questions.assemblee-nationale.fr/q13/13-128451QE.htm [171] GIE SESAM-Vitale. Rapport d'activité du gie sesam-vitale 2013. GIE SESAM-Vitale (2014) (p 59) http://www.sesamvitale.fr/pratique/catalogue/2013/catalogue/index.html [172] MORANGE P. Commission des affaires sociales - auditions sur la lutte contre la fraude sociale 20 janvier. Assemblée Nationale (2011) (p9-10) http://www.assemblee-nationale.fr/13/cr-mecss/10-11/c1011006.asp#P19_895 [173] GOUTEYRON A. Avis n° 60 pour le projet de loi de financement de la sécurité sociale de financement de la sécurité sociale pour 2004. Sénat (2003) (p 103) http://www.senat.fr/rap/a03-060/a03-060_mono.html#toc501 [174] CIOTTI É. Question n° 11023 au ministère de la justice. Assemblée Nationale (2007) M. Éric Ciotti attire l'attention de Mme la garde des sceaux, ministre de la justice, sur les condamnations prononcées en matière de fraude à la carte Vitale. Il lui demande combien de personnes ont été condamnées durant l'année 2006 pour utilisation frauduleuse des cartes Vitale. http://questions.assemblee-nationale.fr/q13/13-11023QE.htm [175] Cour des Comptes. Rapport annuel sur la sécurité sociale 2008. Cour des Comptes (2008) (p 242 p244) (p246-247) (p241) http://www.ccomptes.fr/Publications/Publications/Securite-sociale-2008 [176] BOARETTO Yann, DUMAS Philippe, CHOLLEY François, GAGNEUX Michel, ROMENTEAU Pascale. Le dossier médical personnel (dmp). Inspection Générale des Affaires Sociales (2007) (p21-22) (p48) (p40) (p2) Page 109/112http://www.ladocumentationfrancaise.fr/rapports-publics/074000713/index.shtml [177] La gratuité : logiciel de gestion de pharmacie - BARANÈS C - http://www.pharmaland.fr/Edtion-Reglementaire/La-gratuite-depharmaland/accueil.html {Consulté le 19 septembre 2014} [178] CONSTANT F. Linux système d'exploitation alternatif prêt pour l'officine ? -Thèse d'exercice Pharmacie Montpellier 1 - 2001. (p54) http://www.sudoc.fr/055507123 Format papier [179] LESSIG L & Traducteurs du Framablog. Code is law - traduction française du célèbre article de lawrence lessig. Harvard Magazine (2000) : . http://www.framablog.org/index.php/post/2010/05/22/code-is-law-lessig [180] FLOQUET N. Libre et santé. comprendre le logiciel libre et ses enjeux pour les professions de santé. -Thèse d’exercice de Pharmacie Lille 2- 2014. http://www.sudoc.fr/18121816X Format numérique [181] STALLMAN RM, WILLIAMS S & MASUTTI C. Richard stallman et la révolution du logiciel libre. une biographie autorisée. Eyrolles (Ed.). Eyrolles, 2010 http://framabook.org/richard-stallman-et-la-revolution-du-logiciel-libre/ Page 110/112XIII) Serment de Galien e jure, en présence des maîtres de la Faculté, des conseillers de l’ordre des Jpharmaciens et de mes condisciples : ’ honorer ceux qui m’ont instruit dans les préceptes de mon art et de leur témoigner ma reconnaissance en restant fidèle à leur enseignement. Ð ’exercer, dans l’intérêt de la santé publique, ma profession avec conscience et de respecter non seulement la législation en vigueur, mais aussi les règles de l’honneur, de la probité et du désintéressement. Ð e ne jamais oublier ma responsabilité et mes devoirs envers le malade et sa dignité humaine ; en aucun cas, je ne consentirai à utiliser mes connaissances et mon état pour corrompre les mœurs et favoriser des actes criminels. Ð Que les hommes m’accordent leur estime si je suis fidèle à mes promesses. Que je sois couvert d’opprobre et méprisé de mes confrères si j’y manque. Charles BRISSET Thèse soutenue le : 20 Octobre 2014 Directeur de Thèse : Delphine BON Résumé de la thèse : Compagnon de l'Officine depuis la mise en place du système SESAM-Vitale en 1998, les logiciels de gestion d'officine (LGO) sont devenus au fil des années, un élément clé de l'outil informatique du pharmacien officinal. Cet ouvrage propose une liste exhaustive des logiciels de gestion d'officine (LGO) présents sur le marché français en 2014, un catalogue des fonctionnalités et services proposées par les éditeurs en les classant par ordre de nécessité: les fonctionnalités obligatoires d'un LGO, celles jugées indispensables, les fonctionnalités optionnelles et les services que proposent les éditeurs de LGO. Il poursuit avec un développement sur les différents acteurs et institutions qui interagissent avec ces logiciels, notamment en décrivant les structures où les pharmaciens ont eu une participation active. Un tableau succin comparant les éditeurs est proposé. Une explication généraliste sur les logiciels libres est abordée, car ils sont utilisés au sein de certains de ces logiciels métiers. Une analyse des chiffres de la télétransmission est entrepris par la suite, avant une succession de tableaux classant les différents LGO du marché en fonction des fonctionnalités qu'ils proposent, les systèmes d'exploitations sur lesquels ils tournent, les moteurs de bases de données qu'ils utilisent. Enfin une discussion conclue ce travail. Mots clés: Pharmacie, Informatique, Officine, logiciel métier, dossier pharmaceutique, carte vitale, logiciel de gestion d'officine, OpenSource, Linux, Logiciels Libres, Pharmacovigilance, Système Informatique de santé, base de données, coopérative, groupement Les logiciels de gestion d'officine: fonctionnalités et acteurs Interrogation de grandes bases de connaissances M´elanie K¨onig To cite this version: M´elanie K¨onig. Interrogation de grandes bases de connaissances. Artificial Intelligence. Universit´e Montpellier 2, 2014. French. HAL Id: tel-01089510 http://hal-lirmm.ccsd.cnrs.fr/tel-01089510 Submitted on 1 Dec 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.Délivré par l’Université Montpellier II Préparée au sein de l’école doctorale I2S Et de l’unité de recherche UMR 5506 Spécialité: Informatique Présentée par Mélanie König Interrogation de grandes bases de connaissances algorithmes de réécriture de requêtes conjonctives en présence de règles existentielles Soutenue le 24 octobre 2014 devant le jury composé de : Encadrants Mme. Marie-Laure Mugnier Professeur Univ. Montpellier II M. Michel Leclère Maître de conférence Univ. Montpellier II Rapporteurs M. Bernardo Cuenca Grau Tenure Associate Professor Univ. Oxford M. Igor Stephan Maître de conférence HDR Univ. Angers Examinateurs Mme. Marianne Huchard Professeur Univ. Montpellier II M. Lhouari Nourine Professeur Univ. Blaise Pascal Invités Mme. Meghyn Bienvenu Chargé de recherche CNRS Univ. Paris Sud M. Remi Coletta Maître de conférence Univ. Montpellier IISommaire Sommaire 1 1 Introduction 3 2 Notions de base 9 2.1 Bases de la logique du premier ordre . . . . . . . . . . . . . . . . . . 9 2.2 Les faits et la requête . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.3 L’ontologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.3.1 Logiques de description . . . . . . . . . . . . . . . . . . . . . . 17 2.3.2 Les règles existentielles . . . . . . . . . . . . . . . . . . . . . . 20 2.3.3 Traduction d’une base de logique de description en une base avec règles existentielles . . . . . . . . . . . . . . . . . . . . . 23 2.4 Les différentes approches . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.4.1 Marche avant . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.4.2 Marche arrière . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3 Un cadre théorique pour la réécriture en UCQ 35 3.1 Propriétés d’un ensemble de réécritures . . . . . . . . . . . . . . . . . 35 3.2 Algorithme de réécriture . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.2.1 Terminaison et correction de l’algorithme . . . . . . . . . . . . 38 3.2.2 Adéquation et complétude . . . . . . . . . . . . . . . . . . . . 43 4 Une famille d’opérateurs de réécriture en union de requêtes conjonctives 45 4.1 Unification en présence de variables existentielles . . . . . . . . . . . 45 4.2 Substitution et partition . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.3 Unificateur par pièce . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.4 Unificateur mono-pièce . . . . . . . . . . . . . . . . . . . . . . . . . . 55 4.5 Unificateur mono-pièce agrégé . . . . . . . . . . . . . . . . . . . . . . 59 4.6 Perspective d’amélioration . . . . . . . . . . . . . . . . . . . . . . . . 64 4.7 Comparaison aux algorithmes existants . . . . . . . . . . . . . . . . . 68 3SOMMAIRE 1 5 Compilation de règles 75 5.1 Prise en compte de règles hiérarchiques . . . . . . . . . . . . . . . . . 75 5.2 Extension aux règles compilables . . . . . . . . . . . . . . . . . . . . 76 5.3 Prise en compte d’un pré-ordre sur les atomes pour l’homomorphisme 81 5.4 Prise en compte d’un pré-ordre sur les atomes pour l’unification . . . 82 5.5 Introduction de l’opérateur de réécriture rew4 . . . . . . . . . . . . . 83 5.6 Évaluation d’une UCQ-pivot . . . . . . . . . . . . . . . . . . . . . . . 89 6 Implémentation 93 6.1 Calcul des unificateurs par pièce . . . . . . . . . . . . . . . . . . . . . 94 6.2 Mise en place de la compilation . . . . . . . . . . . . . . . . . . . . . 99 6.2.1 Saturation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 6.2.2 Codage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 6.2.3 Intégration du pré-ordre sur les atomes . . . . . . . . . . . . . 101 6.2.4 Déploiement d’une requête . . . . . . . . . . . . . . . . . . . . 103 6.3 Structures de données et optimisations pratiques . . . . . . . . . . . . 104 7 Évaluation 107 7.1 Présentation du benchmark . . . . . . . . . . . . . . . . . . . . . . . 107 7.2 Expérimentation des différentes versions de l’algorithme de réécriture 109 7.2.1 Comparaison en termes de nombre de requêtes . . . . . . . . . 110 7.2.2 Comparaison en termes de temps . . . . . . . . . . . . . . . . 112 7.3 Comparaison à l’existant . . . . . . . . . . . . . . . . . . . . . . . . . 114 7.3.1 Systèmes comparés . . . . . . . . . . . . . . . . . . . . . . . . 114 7.3.2 Comparaison expérimentale . . . . . . . . . . . . . . . . . . . 115 7.4 Impact de la décomposition en règles à conclusion atomique . . . . . 118 8 Conclusion 121 Index 128 Bibliographie 1322 SOMMAIREChapitre 1 Introduction Dans ce manuscrit, nous abordons une problématique qui suscite beaucoup d’intérêt actuellement dans les domaines de la représentation de connaissances, des bases de données, et du web sémantique, celle de l’interrogation de données en présence d’une ontologie (que nous noterons OBQA pour "ontology-based query answering"). Cette problématique est aussi appelée interrogation de bases de connaissances, une base de connaissances étant alors composée de données, ou faits, et d’une ontologie, qui exprime typiquement des connaissances générales sur le domaine d’application. L’objectif est d’exploiter les connaissances exprimées par l’ontologie lors de l’interrogation des données, de façon à obtenir des réponses plus riches. De façon générale, l’ontologie permet d’inférer de nouveaux faits qui ne sont pas explicitement stockés dans la base de données. Considérer une "couche" ontologique au-dessus des données permet également d’enrichir le vocabulaire utilisé dans les requêtes, et ainsi de faire abstraction de la façon dont les données sont effectivement stockées. Lorsque plusieurs sources de données utilisent des vocabulaires différents, ceci permet également de fournir une interface unifiée d’accès aux données. L’exploitation de connaissances ontologiques de manière automatique est un défi qui intéresse autant le monde industriel que le monde académique. Elle nécessite de pouvoir représenter les connaissances de manière formelle. La famille de formalismes la plus utilisée pour représenter des ontologies et effectuer les raisonnements associés est celle des logiques de description [Baader et al., 2003]. Les logiques de description (DLs), qui ont fait leur apparition dans les années 80, peuvent être vues comme des fragments décidables de la logique du premier ordre. Dans ces langages, la représentation des connaissances du domaine s’appuie sur des concepts, qui correspondent à des prédicats unaires en logique du premier ordre, et des rôles, qui correspondent à des prédicats binaires. Des constructeurs, qui diffèrent selon la logique de description considérée, permettent de construire des concepts ou des rôles plus complexes à partir d’autres. Les relations entre concepts et rôles sont exprimées par des axiomes d’ inclusion de concepts ou de rôles. Historiquement, les problèmes considérés dans le cadre des logiques de description correspondaient à des raisonnements sur les ontologies, tels que la vérification de subsomption entre concepts, la détermination de 34 CHAPITRE 1. INTRODUCTION l’appartenance d’une instance à un concept, ou encore la vérification de la satisfiabilité d’une base de connaissances. Les logiques de description couramment utilisées avaient une expressivité élevée, et le problème OBQA s’est avéré très complexe dans ces logiques. Dans le domaine des logiques de description, et plus généralement en représentation de connaissances, de nombreux travaux visent à trouver un compromis satisfaisant entre l’expressivité du formalisme considéré et la complexité des problèmes de raisonnement associés. L’intérêt pour le problème OBQA a ainsi motivé l’étude de logiques de description dites légères, comme la famille DL-Lite qui a été proposée spécifiquement dans le cadre OBQA [Calvanese et al., 2005], ou la famille EL qui, si elle a été introduite pour raisonner sur de grosses ontologies [Baader, 2003] , s’avère bien adaptée à OBQA. Dans le cadre du web sémantique, l’exploitation automatique d’ontologies a été rendue possible grâce à l’élaboration de standards du W3C (World Wide Web Consortium) tels que RDFS, OWL et OWL2. Le langage OWL2 comporte en particulier des profils dits “traitables”, qui s’appuient sur les familles de logiques de description légères EL et DL-Lite (ainsi que sur le langage de règles Datalog pour l’un des profils citeabiteboul95). Dans ce manuscrit, nous représentons les ontologies dans le formalisme des règles existentielles [Baget et al., 2011a, Krötzsch and Rudolph, 2011], aussi connu sous le nom de Datalog± [Calì et al., 2008, Calì et al., 2009]. Les règles existentielles ont la même forme que les “tuple-generating dependencies”, des dépendances très expressives étudiées de longue date en bases de données [Abiteboul et al., 1995]. Elles correspondent aussi à la traduction logique des règles de graphes conceptuels [Salvat and Mugnier, 1996, Chein and Mugnier, 2009]. Les règles existentielles sont de la forme H → C, où H, appelé hypothèse ou prémisse de la règle, et C, appelée conclusion de la règle, sont des conjonctions d’atomes (sans fonction en dehors des constantes). Leur spécificité réside dans le fait que les variables qui apparaissent uniquement dans C sont quantifiées existentiellement, ce qui permet de représenter des entités non identifiées, potentiellement non présentes dans la base initiale. Cette capacité est reconnue comme cruciale pour la représentation de connaissances dans le cadre d’un monde ouvert (“open world”) où l’on ne peut considérer que les données sont complètes. Les règles existentielles généralisent les logiques de description légères, en permettant la description de structures cycliques, et pas seulement arborescentes, ainsi qu’en autorisant une arité quelconque des prédicats. Le fait de ne pas borner l’arité des prédicats permet notamment une association naturelle entre les prédicats du vocabulaire et un schéma de base de données relationnelle. Exemple 1 (Règles existentielles) Considérons un vocabulaire permettant de dé- crire le monde du cinéma, avec notamment les concepts (prédicats unaires) film et acteur, et le rôle (prédicat binaire) joue ; intuitivement, joue(x, y) signifie que “x joue dans y”). L’ontologie bâtie sur ce vocabulaire comporte la connaissance que “tout acteur joue dans un film”, ce que l’on exprime par la règle existentielle suivante : R = ∀x(acteur(x) → ∃y(joue(x, y) ∧ f ilm(y)))5 La variable y qui n’apparaît pas dans l’hypothèse de R est quantifiée existentiellement. La règle R permet de dire qu’il existe un film dans lequel x joue, sans que l’on sache quel est ce film. Comme l’ontologie, les données peuvent être représentées dans différents modèles de représentation, tels que les bases de données relationnelles, les bases de graphes, de triplets RDFS, etc. Pour faire abstraction de ces représentations particulières, nous considérons les données, ou faits, comme des formules (existentielles, positives et conjonctives) de la logique du premier ordre. Enfin, en ce qui concerne les requêtes, nous étudions les requêtes conjonctives, qui sont considérées comme les requêtes fondamentales par la communauté des bases de données, car elles sont à la fois évaluables efficacement et fréquemment utilisées. Dans ce document, pour simplifier les notions de base, nous restreignons les requêtes aux requêtes conjonctives booléennes, que l’on peut voir comme des formules positives et conjonctives existentiellement closes. Toutefois, comme nous l’expliquerons, tous les résultats peuvent être facilement étendus aux requêtes conjonctives non booléennes, ainsi qu’aux unions de requêtes conjonctives. Le problème que nous abordons peut donc être reformulé de la manière suivante : étant donné une base de connaissances K, composée de faits et de règles existentielles, et une requête booléenne conjonctive Q, est-ce que la réponse à Q dans K est positive, c’est-à-dire Q est-elle logiquement impliquée par K ? La pré- sence de variables existentielles en conclusion de règle, associée à des ensembles d’atomes quelconques dans l’hypothèse de la règle, rend ce problème indécidable avec des règles existentielles quelconques (voir notamment [Beeri and Vardi, 1981, Chandra et al., 1981] sur les tuple-generating dependencies). Pour cette raison, de nombreux travaux de recherche se sont attachés à trouver des sous-ensembles de règles qui rendent le problème décidable, avec un bon compromis entre expressivité et complexité du problème. Exemple 2 (Problème OBQA) Reprenons l’exemple du monde du cinéma. Considérons la requête booléenne conjonctive Q = ∃y joue(b, y), où b est une constante. Q demande si b joue quelque part. Supposons que la base de connaissances K contienne le fait F = acteur(b), ainsi que la règle R. Q est impliquée logiquement par K. La réponse à Q est donc “oui” sur cette base de connaissances. Il existe deux approches principales pour aborder le problème OBQA, qui sont liées aux deux paradigmes de traitement des règles, en marche avant ou en marche arrière. Ces deux approches peuvent être vues comme une façon de réduire le problème OBQA à un problème d’interrogation classique de bases de données, en éliminant les règles. La marche avant consiste à appliquer les règles sur les faits pour les enrichir dans le but d’ajouter toutes les informations qui sont logiquement impliquées par la base de connaissances initiale. La requête est ensuite évaluée sur la base de faits enrichie. La marche arrière procède de manière “inverse” : elle utilise les règles pour réécrire la requête “de toutes les façons possibles”. La requête réécrite est ensuite6 CHAPITRE 1. INTRODUCTION Figure 1.1 – Marche avant - Marche arrière évaluée sur la base de faits initiale. Ces deux approches sont illustrées dans la figure 1.1. Le traitement des règles en marche arrière présente un avantage évident lorsque la taille des faits est trop importante pour que la matérialisation de toutes les informations inférables de la base de connaissances soit raisonnable. De plus, elle ne nécessite aucun accès en écriture aux données, cet accès pouvant être interdit, ou dif- ficile si la base de données est distribuée. Comme elle ne modifie pas les données, ne se pose pas non plus le problème de mettre à jour les inférences calculées lorsque les données évoluent. Néanmoins, la taille de la réécriture peut être importante, parfois exponentielle en la taille de la requête initiale, et donc peu efficacement évaluable sur les faits, au moins avec les techniques actuelles de bases de données. Enfin, des techniques qui combinent les deux approches ont été développées, en particulier la technique appelée “approche combinée”[Lutz et al., 2009, Kontchakov et al., 2011]. Exemple 3 (Deux approches pour résoudre OBQA) Reprenons notre exemple. Si Q est posée sur la base de faits réduite à F, la réponse à Q est non. En effet, il est nécessaire de prendre en compte la règle R pour répondre positivement à Q. En marche avant, R est appliquée à F : la connaissance ∃y0(joue(B, y0)∧f ilm(y0)) est ajoutée à la base de faits, où y0 est une nouvelle variable. La base de faits enrichie permet de répondre positivement à Q. La règle R peut aussi être utilisée en marche arrière pour réécrire Q (intuitivement : “puisque tout acteur joue dans un film, si on trouve que B est un acteur, on répond à Q”). La requête initiale Q est ainsi réécrite en Q ∨ Q0 , où Q0 = acteur(B). Q0 ayant une réponse positive sur la base de faits initiale, la réponse à la requête initiale est positive. Organisation du mémoire Dans ce document, nous nous concentrons sur les techniques de réécritures et plus spécifiquement sur les techniques de réécritures d’une requête conjonctive initiale Q en une union de requêtes conjonctives (UCQ) ? Une UCQ peut aussi être vue7 comme un ensemble de requêtes conjonctives, que nous appellerons réécritures de Q. Notre but est de calculer un ensemble de réécritures qui soit à la fois adéquat (si l’une des réécritures s’envoie sur les faits alors Q est impliqué par la base de connaissances) et complet (si Q est impliqué par la base de connaissances alors l’une des réécritures s’envoie sur les faits). Une autre propriété souhaitable de l’ensemble de ré- écritures est sa minimalité : plus l’ensemble est petit, plus son évaluation sera rapide. Étant donné que le problème n’est pas décidable avec un ensemble de règles existentielles quelconques, il n’existe pas forcément d’ensemble de réécritures fini ayant les propriétés d’adéquation et de complétude. Un ensemble de règles existentielles qui assure l’existence d’un tel ensemble de réécritures pour n’importe quelle requête est appelé ensemble à unification finie (finite unification set, fus) [Baget et al., 2011a]. Après l’introduction dans le chapitre 2, des notions de base nécessaires à la compréhension de notre travail nous proposons dans le chapitre 3 un cadre théorique permettant l’étude des techniques de réécritures. Nous définissons d’abord les propriétés souhaitables d’un ensemble de réécritures (adéquation, complétude, minimalité). Puis nous étudions un algorithme générique qui, étant donné une requête et un ensemble de règles, calcule un ensemble de réécritures. Cet algorithme est paramétré par un opérateur de réécriture, c’est-à-dire une fonction qui, étant donné une requête et un ensemble de règles existentielles, retourne les réécritures “directes” de cette requête par cet ensemble de règles. L’algorithme effectue une exploration en largeur de l’espace des réécritures. A chaque étape, l’algorithme calcule l’ensemble des réécritures directes des requêtes obtenues à l’étape précédente et conservées (toutes les requêtes n’étant pas nécessairement conservées, pour des raisons que nous détaillerons au chapitre 3). Nous définissons des propriétés d’un opérateur de réécriture qui assurent que l’ensemble de réécritures calculé par l’algorithme est adéquat, complet, et minimal si l’ensemble de règles existentielles est fus. Dans le chapitre 4, nous présentons ensuite une famille d’opérateurs de réécritures. Ces opérateurs de réécritures s’inspirent de travaux précédents sur les graphes conceptuels [Salvat and Mugnier, 1996] et s’appuient sur la notion d’unificateur par pièce. Comme pour la marche arrière classique, nos techniques s’appuient sur une opération d’unification entre la requête et la conclusion de la règle. Nous nous arrê- tons d’abord sur le problème que posent les variables existentielles dans les conclusions de règles lors de cette phase d’unification, ce qui justifie la notion d’unificateur par pièce qui remplace l’unification usuelle. Puis, nous étudions plusieurs opérateurs de réécriture basés sur l’unification par pièce à la lumière des propriétés définies dans le chapitre 3. Dans le chapitre 5, nous proposons deux optimisations qui nous permettent de traiter d’une manière plus efficace des règles simples mais très présentes dans les ontologies réelles. Ces optimisations ouvrent sur d’autres formes de réécritures que les UCQs, ce qui pose la question de la façon de les évaluer sur des données. Nous détaillons l’implémentation de nos algorithmes dans le chapitre 6, en commençant par la présentation de l’API sur laquelle s’appuie notre implémentation, et de la hiérarchie de classes mise en place. Nous zoomons ensuite sur les algorithmes de8 CHAPITRE 1. INTRODUCTION calcul des unificateurs par pièce et finissons par les structures de données utilisées dans le cadre de nos deux optimisations. Nous avons réalisé une évaluation pratique de nos algorithmes sur des benchmarks existants, présentée dans le chapitre 7. Notre expérimentation comporte une comparaison interne de nos différents opérateurs, puis une comparaison externe avec d’autres systèmes existants. Finalement, nous concluons sur nos travaux et esquissons des perspectives dans le chapitre 8. Publications associées Les travaux présentés dans ce mémoire ont fait l’objet des publications suivantes : Mélanie König, Michel Leclère, Marie-Laure Mugnier, Michaël Thomazo : Sound, Complete, and Minimal UCQ-Rewriting for Existential Rules. Semantic Web Journal (à paraître, http://www.semantic-web-journal.net/content/ sound-complete-and-minimal-ucq-rewriting-existential-rules-0) Mélanie König, Michel Leclère, Marie-Laure Mugnier, Michaël Thomazo : Sound, Complete, and Minimal Query Rewriting for Existential Rules. IJCAI 2013 Mélanie König, Michel Leclère, Marie-Laure Mugnier, Michaël Thomazo : On the Exploration of the Query Rewriting Space with Existential Rules. 7th International Conference on Web Reasoning and Rule Systems (RR 2013) : 123-137 Mélanie König, Michel Leclère, Marie-Laure Mugnier, Michaël Thomazo : A Sound and Complete Backward Chaining Algorithm for Existential Rules. 6th International Conference on Web Reasoning and Rule Systems (RR 2012) : 122-138 - Best paper award Les résultats relatifs aux optimisations introduites dans le chapitre 5 n’ont pas encore été publiés.Chapitre 2 Notions de base Tout au long de ce manuscrit, nous nous intéressons au problème de l’interrogation d’une base de connaissances (OBQA). Une base de connaissances K = (F, O) est composée d’un ensemble de faits F et d’une ontologie O. La problématique générale est de prendre en compte des connaissances générales sur le domaine, exprimées dans l’ontologie, lors de l’interrogation des faits. Comme nous l’avons expliqué dans l’introduction, nous utiliserons la logique du premier ordre pour exprimer les différents composants du problème. Les notations logiques utilisées seront présentées dans la première section. Dans les deux suivantes, nous formaliserons les trois composants du problème : requête, faits puis ontologie avec laquelle nous présenterons plusieurs langages ontologiques. Nous commencerons par présenter deux familles de logiques de description EL et DL-Lite, puis nous continuerons avec les règles existentielles et la traduction de EL et DL-Lite en règles existentielles. Pour finir ce chapitre, nous parlerons de l’indécidabilité du problème étudié et de ses sous-cas connus décidables. 2.1 Bases de la logique du premier ordre Nous avons choisi d’utiliser le formalisme de la logique du premier ordre pour exprimer les composants de notre problème, notamment les faits et la requête. Ce choix est motivé d’une part par l’utilisation des règles existentielles qui utilisent aussi ce formalisme et d’autre part pour faire abstraction de la technologie de stockage des faits et du langage de requêtes associé. La lecture de ce manuscrit nécessite des connaissances classiques sur la logique du premier ordre, que nous rappelons dans cette section. Définition 2.1 (Langage du premier ordre) Un langage du premier ordre L = (P, C) est composé de deux ensembles disjoints : P est fini et contient des prédicats, C peut être infini et contient des constantes. Chaque prédicat de P est associé à un entier positif ou nul qui fixe son arité. 910 CHAPITRE 2. NOTIONS DE BASE Du point de vue des langages formels, les formules sont des mots construits sur l’alphabet formé : • d’un langage du premier ordre L = (P, C), • des connecteurs ¬, ∧, ∨, →,↔, • des parenthèses (,), • des quantificateurs universels ∀ et existentiel ∃, • d’un ensemble infini de symboles de variables noté V (disjoint de P et C). Le langage du premier ordre L fait donc parti de l’alphabet toutefois l’expression “langage” du premier ordre est traditionnel en logique. Par convention, nous notons les constantes avec les lettres du début de l’alphabet a, b, c, . . . et les variables avec les lettres de fin de l’alphabet x, y, z, . . . . Il faut aussi noter que nous ne considérons pas les symboles fonctionnels en dehors des constantes qui peuvent être vues comme des symboles fonctionnel d’arité nulle. Un terme de L est donc, soit un élément de C c’est-à-dire une constante, soit une variable. Définition 2.2 (atome) Soit L un langage du premier ordre. Un atome de L est de la forme p(t1, . . . , tk) où p est un prédicat de P d’arité k et t1, . . . , tk sont des termes de L. L’ensemble des termes d’un atome A est noté term(A), l’ensemble de ses variables var(A), l’ensemble de ses constantes const(A) et son prédicat pred(A). L’arité d’un prédicat p est notée arité(p). Définition 2.3 (Formule bien formée) Soit L = (P, C) un langage logique, V un ensemble infini de variables, Q = {∀, ∃} l’ensemble des quantificateurs, N = {¬, ∧, ∨, →, ↔} l’ensemble des connecteurs et D = {(,)} un jeu de parenthèse. On définit par induction F BF(L) l’ensemble des formules bien formées (fbf ), construites sur L : • base : – F BF(L) contient l’ensemble des atomes construits sur L. – F BF(L) contient ⊥ et > dans la mesure où ces symboles sont admis. • induction : soit ϕ, ψ ∈ F BF(L) et x ∈ V : – ¬ϕ ∈ F BF(L). – (ϕ ∧ ψ),(ϕ ∨ ψ),(ϕ → ψ),(ϕ ↔ ψ) ∈ F BF(L). – ∀x ϕ, ∃x ϕ ∈ F BF(L).2.1. BASES DE LA LOGIQUE DU PREMIER ORDRE 11 Dans la fbf ∀x ϕ, respectivement ∃x ϕ, x est la variable quantifiée et ϕ est la portée de la quantification ∀x, respectivement ∃x. Une occurrence d’une variable x est liée si elle est dans la portée d’une quantification portant sur x, sinon cette occurrence est libre. Définition 2.4 (formule fermée) Une fbf est dite fermée lorsqu’elle n’a aucune variable libre. Nous rappelons maintenant la définition de l’interprétation d’un langage logique : Définition 2.5 (Interprétation d’un langage logique) L’interprétation (D, I) d’un langage logique L = (P, C) est constituée d’un ensemble non vide D appelé domaine d’interprétation et de I une fonction d’interprétation des symboles de L telle que : • pour tout c ∈ C, I(c) ∈ D • pour tout p ∈ P d’arité k, I(p) ⊆ Dk Une interprétation de L est un modèle d’une formule sur L si elle rend vrai cette formule, en considérant l’interprétation classique des connecteurs et quantificateurs logiques. Définition 2.6 (Satisfiabilité) Une formule est satisfiable si elle admet au moins un modèle. Une formule est insatisfiable si elle n’admet aucun modèle. Lorsque deux formules ont les mêmes modèles ont dira qu’elles sont équivalentes. Définition 2.7 (Équivalence logique) Soit F1 et F2 deux fbf fermées d’un même langage du premier ordre L. On dit qu’elles sont logiquement équivalentes si pour toute interprétation elles ont la même valeur de vérité. On note F1 ≡ F2. Lorsque l’ensemble des modèles d’une formule est inclus dans celui d’un ensemble de formules, on dira que cette formule est conséquence logique de l’ensemble de formules. Définition 2.8 (Conséquence logique) Soit H1, . . . , Hn et C des fbf fermées d’un même langage du premier ordre L. On dit que C est une conséquence logique de (ou est impliquée par) H1, . . . , Hn lorsque toute interprétation I de L qui est un modèle de H1 ∧ · · · ∧ Hn est un modèle de C. On note H1, . . . , Hn |= C. On a immédiatement que pour toutes fbf fermées F1 et F2, F1 ≡ F2 si et seulement si F1 |= F2 et F2 |= F1.12 CHAPITRE 2. NOTIONS DE BASE Définition 2.9 (Littéral, clause, clause vide, clause de Horn, forme clausale) Un littéral est un atome ou la négation d’un atome. Une clause est une disjonction de littéraux quantifiée universellement. La clause vide est la disjonction de zéro littéraux, elle s’évalue toujours à faux. Une clause de Horn est une clause dans laquelle il y a au plus un littéral positif. Une forme clausale est une conjonction de clauses. On voit souvent les clauses comme des ensembles d’atomes et les formes clausales comme des ensembles d’ensembles d’atomes. Définition 2.10 (Substitution) Soit X un ensemble de variables et T un ensemble de termes. Une substitution σ de X dans T est une application de X dans T. Appliquer une substitution σ à une formule (ou à tout objet contenant des termes) consiste à remplacer toute variable x ∈ X par son image σ(x) ∈ T. Une substitution σ de X dans T sera représentée par un ensemble de couples {(x1, σ(x1)), . . . ,(xk, σ(xk))} où les xi sont les éléments de X. Deux listes de termes sont unifiables s’il existe une substitution qui les rend identiques. Définition 2.11 (Unificateur logique) Soit L1, . . . , Ln des listes de termes, un unificateur (logique) de L1, . . . , Ln est une substitution de var(L1) ∪ · · · ∪ var(Ln) dans term(L1) ∪ · · · ∪ term(Ln) telle que u(L1) = · · · = u(Ln). On étend cette définition à des atomes : des atomes sont unifiables s’ils ont même prédicat et si leur liste de termes sont unifiables. En général, il existe plusieurs unificateurs d’un ensemble E d’atomes ou de termes mais on s’intéressera à ceux qui “transforment” le moins possible les éléments de E. Définition 2.12 (Unificateur le plus général) Un unificateur u d’un ensemble E est un unificateur le plus général (upg) si tout autre unificateur u 0 s’obtient par une substitution supplémentaire s : u 0 = s ◦ u. Un ensemble peut avoir plusieurs upg mais dans ce cas, on peut passer de l’un à l’autre par un simple renommage de variables. Exemple 4 Soit E = {p(x, y, z), p(u, a, z)p(b, y, v)} où a et b sont des constantes et u, v, x, y, z sont des variables. {(x, b),(u, b),(y, a),(z, v)} est un upg de E mais {(x, b),(u, b),(y, a),(v, z)} est aussi un upg, on peut passer de l’un à l’autre en renommant v en z et vice-versa. En revanche, l’unificateur {(x, b),(u, b),(y, a),(z, b),(v, b)} n’est pas un upg car il s’obtient du premier (par exemple) par la substitution supplémentaire {(v, b)}.2.1. BASES DE LA LOGIQUE DU PREMIER ORDRE 13 La méthode de résolution due à J.A. Robinson 1965 permet en s’appuyant sur l’unification de tester si un ensemble de clauses est satisfiable, c’est-à-dire s’il admet au moins un modèle. Ainsi, elle permet de tester si une formule C est une conséquence logique d’un ensemble de formules {H1, . . . , Hn} en vérifiant si la forme clausale associée à H1 ∧ · · · ∧ Hn ∧ ¬C est insatisfiable. Toute formule F peut-être mise sous forme clausale, qui ne lui est pas forcément équivalente, mais qui préserve la satisfiabilité : F est insatisfiable si et seulement si sa forme clausale est insatis- fiable. Cette mise sous forme clausale utilise la skolémisation pour supprimer les quantificateurs existentiels : après avoir mis la formule sous forme prénexe (c’est- à-dire avec tous les quantificateurs en tête de formule), chaque variable quantifiée existentiellement est remplacée par une nouvelle fonction dite de Skolem portant sur les variables quantifiées universellement qui précèdent. Exemple 5 Soit F = ∀x (q(x) ∨ ∃y (p(x, y) ∧ q(y, x))). Une forme prénexe de F est : ∀x∃y(q(x) ∨ (p(x, y) ∧ q(y, x))). Pour obtenir la forme clausale associée, il reste à skolémiser : ∀x (q(x)∨(p(x, f(x))∧ q(f(x), x))), la variable y étant remplacée par une fonction de Skolem portant sur x car son quantificateur est dans la portée de celui de x. Pour finir on distribue les ∧ et ∨ pour obtenir une conjonction de clauses : ∀x ((q(x) ∨ p(x, f(x))) ∧ (q(x) ∨ q(f(x), x))). La méthode de résolution s’appuie sur une règle dites de résolution qui unifie les parties complémentaires de deux clauses grâce à un upg pour produire une nouvelle clause. Si un littéral est positif, son complémentaire est obtenu en ajoutant une négation devant, sinon il est obtenu en supprimant sa négation. Le complémentaire d’un ensemble de littéraux est obtenu en remplaçant chaque littéral par son complémentaire. Définition 2.13 (Règle de résolution) Soit C1 et C2 deux clauses sans variable en commun et soit L1 ⊆ C1 et L2 ⊆ C2 tel que L1 et le complémentaire de L2 sont unifiables par un upg u. La résolvante de C1 et C2 selon L1, L2 et u est la clause (u(C1) \ u(L1)) ∪ (u(C2) \ u(L2)) La méthode de résolution est adéquate et complète : il existe une suite finie de ré- solutions menant à la clause vide si et seulement si la forme clausale est insatisfiable. On peut lui associer un algorithme de recherche en largeur 1 : partant de l’ensemble de clauses initiales, à chaque étape on calcule toutes les résolvantes d’un ensemble de clauses, les ajoute à l’ensemble de clauses et on recommence jusqu’à obtenir la clause vide ou qu’il n’existe plus de nouvelles résolvantes. Cet algorithme assure que l’on produira la clause vide s’il existe une suite finie de résolution y menant. 1. “breath-first” en anglais14 CHAPITRE 2. NOTIONS DE BASE 2.2 Les faits et la requête Les faits sont des données spécifiques sur les individus de la base. Il existe de nombreuses technologies permettant de stocker des faits, les plus connues sont bien sûr les bases de données relationnelles mais d’autres comme les bases de graphes ou les “triple-stores” peuvent aussi être pertinentes en fonction du contexte d’utilisation. Nous utilisons la logique du premier ordre pour faire abstraction de ces technologies. Habituellement en logique, les faits sont des ensemble d’atomes qui contiennent seulement des constantes, ici nous généralisons cette notion pour que les faits puissent contenir aussi des variables existentiellement quantifiées. La première raison est que les règles existentielles produisent des variables existentielles, mais cela permet aussi d’inclure naturellement les “blank nodes” de RDF et les valeurs manquantes de bases de données relationnelles. Définition 2.14 (Fait) Soit L un langage logique, un fait sur L est une conjonction d’atomes de L existentiellement fermée. Nous étendons les notations de l’ensemble des termes et de l’ensemble des variables à un fait. Dans un souci de simplicité, nous omettons les quantificateurs des faits dans les chapitres suivants, car les formules qui représentent les faits sont toujours existentiellement fermées. De plus, nous considérons souvent les faits comme des ensembles d’atomes afin de pouvoir utiliser les notions classiques de théorie des ensembles, comme l’inclusion ou l’union, directement sur les faits. Cette vision supprime les duplications d’atomes, en effet, une formule avec un atome dupliqué telle que ∃x(p(x) ∧ p(x)) sera vu par le même ensemble {p(x)} que la formule ∃x p(x) mais ce n’est pas gênant car ces deux formules sont trivialement équivalentes. Il faut aussi noter que l’on ne fera pas de distinction entre un seul fait et un ensemble de faits, en effet, un ensemble de faits est une conjonction de faits et donc assimilable à un fait. De la même manière, on utilisera indifféremment les termes de fait et de base de faits. Voici un exemple illustrant les notions vues précédemment : Exemple 6 Soit F la formule logique du premier ordre suivante : ∃x∃y∃z(r(x, y) ∧ p(x, x, a) ∧ r(a, z)) F est existentiellement fermée donc est un fait et var(F) = {x, y, z}, term(F) = {x, y, z, a}. F peut aussi être vu comme l’ensemble {r(x, y), p(x, x, a), r(a, z)} Il faut noter qu’il faut prendre quelques précautions avec les variables de même nom lorsque l’on considère des variables existentielles dans les faits. Exemple 7 Soit F1 = ∃x∃y(p(x, y) ∧ q(y, a)), où a est une constante, et F2 = ∃x p(x, x). F1 et F2 sont des faits. La formule F1 ∧ F2 peut être vue comme un seul fait et obtenu en considérant une forme prénexe, ce qui implique de renommer la variable x dans F1 ou F2 . On obtient par exemple ∃x∃y∃z(p(x, y) ∧ q(y, a) ∧ p(z, z)),qui peut aussi être vu comme l’ensemble d’atomes {p(x, y), q(y, a), p(z, z)}.2.2. LES FAITS ET LA REQUÊTE 15 Nous considérons classiquement des requêtes conjonctives, c’est-à-dire une conjonction d’atomes dont certaines variables sont existentiellement quantifiées. Les variables libres de la requête sont nommées variables réponses, une réponse à la requête est une instanciation de ces variables par des termes de la base de connaissances. Définition 2.15 (Réponse à une requête) Soit F un ensemble de faits, vu comme une seule formule et Q une requête avec comme ensemble ordonné de variables réponses (x1, . . . , xk). Le tuple (a1, ..., ak) où chaque ai est une constante est une réponse à Q si F |= Qa, où Qa est obtenue de Q en remplaçant chaque xi par ai Les requêtes conjonctives sont les requêtes de base de tous les langages de requêtes, de plus ce sont les plus fréquemment utilisées en base de données relationnelle. Voici un exemple de traduction d’une requête conjonctive dans différents langages de requêtes. Exemple 8 Requête : "trouver les x qui jouent dans un film". • Logique du premier ordre : ∃y(f ilm(y) ∧ joue(x, y)) • Datalog : answer(x) :- f ilm(y), joue(x, y). • SQL : SELECT joue.acteur FROM joue,films WHERE joue.œuvre = films.titre • SPARQL : SELECT ?x WHERE { ?y rdf :type . ?y ?x } Lorsque la formule est fermée, on l’appelle requête conjonctive booléenne. Par la suite, nous considérerons seulement des requêtes conjonctives booléennes sans perte de généralité (voir section 4.3), nous les appellerons requête ou CQ. La réponse à une requête booléenne est vrai si la requête se déduit de la base de connaissances. On peut remarquer qu’il n’y a pas de différence entre la représentation des requêtes booléennes et des faits, la seule différence est conceptuelle. De la même manière que pour les faits, nous omettons ensuite les quantificateurs puisque les formules pour les requêtes seront toujours existentiellement fermées. Les requêtes seront aussi vues comme des ensembles d’atomes. Il est aussi important de noter que tout le travail qui suit peut être facilement étendu aux unions de requêtes conjonctives. Une union de requête conjonctive est une disjonctions de requête conjonctives, si les requêtes sont booléennes, sa réponse est positive seulement si la réponse à l’un des requêtes qui la composent est positive. Si les requêtes ne sont pas booléennes, les réponses à une union de requêtes conjonctives est l’union des réponses des requêtes qui la composent.16 CHAPITRE 2. NOTIONS DE BASE Exemple 9 Soit Q = ∃x∃y(r(x, y) ∧ q(y)) une requête booléenne. Q peut aussi être vue comme l’ensemble {r(x, y), q(y)} Avant de pouvoir prendre en compte une ontologie, il est nécessaire de se pencher sur le problème de la conséquence logique. On sait que la conséquence logique est équivalente à l’existence d’un homomorphisme de G dans F (voir par exemple le théorème d’homomorphisme dans [Abiteboul et al., 1995]). Un homomorphisme de G dans F est une application des variables de G dans les termes de F qui préserve les atomes. Définition 2.16 (Homomorphisme, isomorphisme) Un homomorphisme d’un ensemble d’atomes source G vers un ensemble d’atomes cible F est une substitution π de var(G) dans term(F) telle que π(G) ⊆ F. On dit que G s’envoie sur F par π ou que G subsume F. Un isomorphisme d’un ensemble d’atomes G vers un ensemble d’atomes F est une substitution bijective σ de var(G) dans var(F) telle que σ(G) = F ; on appellera σ un renommage bijectif de variables. Lorsqu’il existe un homomorphisme d’un ensemble d’atomes G dans un ensemble d’atomes F, on dira que G est plus général que F ou F est plus spécifique que G, on note G ≥ F. Les ensemble d’atomes les plus généraux d’un ensemble sont ceux qui ne sont plus spécifiques à aucun autre de l’ensemble. Dans la suite du manuscrit, on utilisera fréquemment le pré-ordre ≥ induit par l’homomorphisme pour comparer les faits ou requêtes entre eux. Théorème 1 Soit F et G deux faits, avec F possiblement infini. F |= G si et seulement s’il existe un homomorphisme de G dans F. Exemple 10 Soit deux faits G = q(x)∧p(x, y)∧p(z, y) et F = q(a)∧p(a, t)∧q(a, t). Soit la substitution π = {(x, a),(y, t),(z, a)}, π(G) = q(a) ∧ p(a, t) ∧ p(a, t) donc π est un homomorphisme de G dans F et F |= G. Certains atomes d’un fait peuvent être redondants et ne pas apporter d’informations supplémentaires. Lorsque l’on voudra faire référence seulement à la partie "essentielle" d’un fait, on parlera de noyau 2 qui est une notion classique pour les graphes mais est aisément transférable aux faits (voir [Hell and Nesetril, 1992] qui situe son introduction à la fin des années 60). Définition 2.17 (Noyau) Le noyau d’un fait F, noté noyau(F), est un sousensemble minimal (selon l’inclusion) de F équivalent à F. 2. par traduction de “core” en anglais2.3. L’ONTOLOGIE 17 Comme nous le montre l’exemple suivant, un fait peut avoir deux noyaux diffé- rents mais ils sont toujours isomorphes donc identiques à un renommage de variables près, c’est la raison pour laquelle nous nous permettons de considérer que le noyau est unique. De plus, il est bien connu que deux faits équivalents ont des noyaux isomorphes. Exemple 11 Soit F = t(y) ∧ p(x, y) ∧ p(z, y) F a deux noyaux, t(y) ∧ p(x, y) et t(y) ∧ p(z, y) qui sont isomorphes. 2.3 L’ontologie L’ontologie contient des connaissances générales sur le domaine, telles qu’une hiérarchie de types par exemple. L’un des formalismes privilégiés pour la représentation d’ontologies est celui des logiques de description (DLs). Il s’agit d’une famille de langages dans laquelle les différentes DLs proposées se différencient par leur compromis expressivité/complexité. Historiquement, les DLs ont été conçues pour mettre en œuvre des raisonnements par classification sur une ontologie (c’est-à-dire pour comparer deux classes ou un individu et une classe par subsomption). Elles sont malheureusement peu adaptées au problème de l’interrogation d’une base de connaissances pour lequel elles ont une complexité trop importante. Pour répondre à ce problème, de nouvelles DLs, moins expressives, mais ayant une complexité moindre, ont été proposées et baptisées DLs légères. Dans la section qui suit, nous présenterons les DLs légères les plus connues DL-Lite et EL. Une autre manière de formaliser les connaissances d’une ontologie est d’utiliser les règles existentielles ; c’est ce formalisme qui est principalement considéré dans ce manuscrit et qui est présenté dans la seconde section. 2.3.1 Logiques de description Les DLs sont composées d’une ABox représentant la base de faits et d’une TBox décrivant l’ontologie. La TBox est un ensemble d’axiomes ontologiques qui s’appuient sur des concepts, qui sont les catégories auxquelles peuvent appartenir les individus de la base, et des rôles qui permettent d’exprimer une relation entre deux individus de la base. L’axiome le plus couramment utilisé est l’axiome d’inclusion entre deux concepts C1 et C2, qui signifie que tous les individus du concept C1 appartiennent aussi au concept C2. Les concepts et les rôles peuvent être atomiques ou construits au moyen d’autres concepts et rôles, et de constructeurs. L’expressivité d’une DL est plus ou moins grande selon les constructeurs autorisés. Voici un aperçu des principaux constructeurs de concepts et de rôles : intersection de concepts notée C1 u C2, est composé des individus qui appartiennent à la fois au concept C1 et au concept C2.18 CHAPITRE 2. NOTIONS DE BASE union de concepts notée C1 t C2, est le concept regroupant les individus des concepts C1 et C2. restriction universelle notée ∀r.C, est composé des individus qui ne sont en relation par le rôle r qu’avec des individus du concept C. restriction existentielle notée ∃r.C, est composé des individus qui sont en relation par le rôle r à un individu du concept C. restriction existentielle non qualifiée notée ∃r, il s’agit du concept composé des individus qui sont en relation par le rôle r à un individu quelconque. négation d’un concept notée ¬C, est le complémentaire du concept C dans la base, c’est-à-dire l’ensemble des individus qui n’appartiennent pas au concept C. inverse d’un rôle noté r −, si un individu a est en relation avec un individu b par le rôle r alors b est en relation avec a par le rôle r − Les logiques de description utilisent aussi le concept universel > auquel appartiennent tous les individus et le concept ⊥ auquel n’appartient aucun individu. La ABox des logiques de description considérées ici contient uniquement des assertions de la forme : A(a) r(a, b) où A est un concept atomique, r un rôle atomique et a et b des individus. La logique de description EL Pour des raisons historiques, les premières logiques de description étudiées favorisaient l’utilisation de la restriction universelle à la restriction existentielle. Pourtant la restriction universelle est un facteur important de complexité pour les problèmes de raisonnements même basiques. Ceci a motivé l’étude de EL [Baader, 2003], dont l’objectif était de gérer de grandes ontologies en permettant le raisonnement "intra TBox" (satisfiabilité, subsomption de concepts...) en temps polynomial. De plus, son expressivité s’avère suffisante pour un certain nombre de cas pratiques importants tels que l’ontologie biomédicale SNOMED. La TBox quant à elle peut contenir des inclusions de concepts de la forme : C1 v C2 où C1 et C2 sont des concepts construits selon la règle suivante : C ::= >|A|C1 u C2|∃r.C1 où A est un concept atomique, C1 et C2 des concepts construits et r un nom de rôle. Il existe un nombre important d’extensions de EL dont la plus fréquemment2.3. L’ONTOLOGIE 19 rencontrée pour l’interrogation d’une base de connaissances est ELHI. ELHI étend EL en autorisant l’utilisation des rôles inverses et l’inclusion de rôles dans la T Box r v s pour l’inclusion du rôle r dans le rôle s, qui signifie que deux individus en relation par le rôle r le sont aussi par le rôle s. La logique de description DL-Lite DL-Lite est une famille de logiques de description qui a été introduite dans [Calvanese et al., 2005]. Elle a été conçue pour exprimer des ontologies simples tout en conservant une complexité basse pour l’interrogation, c’est-à-dire polynomiale en fonction de la taille de l’ontologie en complexité de données. Le but étant, non plus de vérifier simplement la subsomption de concepts ou la satisfiabilité de la base de connaissances comme c’était le cas pour les DLs antérieures, mais de répondre à des requêtes complexes et notamment aux requêtes conjonctives sur une base stockée en mémoire secondaire. L’idée principale est d’utiliser la TBox pour reformuler la requête en un ensemble de requêtes qui sont directement évaluées sur la ABox stockée en mémoire secondaire et gérée par un système de gestion des bases de données relationnelle. Cette méthode a l’avantage de permettre de séparer la ABox de la TBox et de profiter des optimisations pour le requêtage implémentées dans les systèmes de gestion de base de données. Nous présenterons ici les deux membres les plus simples de la famille DL-Lite core et DL-LiteR qui constituent la base du langage du web sémantique OWL 2 QL. Le premier membre de la famille DL-Lite core constitue la base de tous les autres membres de la famille. Il permet d’exprimer une négation très restreinte puisqu’elle ne peut porter que sur un rôle ou un concept basique et ne peut apparaître qu’en partie droite d’une inclusion. De plus, seule la restriction existentielle non qualifiée de rôles basiques est autorisée. Les rôles de DL-Lite core sont de deux types : • rôles basiques : q = p|p − • rôles généraux : r = q|¬q où p est un rôle atomique et p − est l’inverse d’un rôle atomique. De la même manière il y a deux types de concepts : • concepts basiques : B = A|∃q • concepts généraux : C = B|¬B où A est un concept atomique et q un rôle basique. De plus, la TBox ne contient que des inclusions de concepts de la forme suivante : B v C où B est un concept basique et C est un concept général.20 CHAPITRE 2. NOTIONS DE BASE Dans une TBox DL-LiteR, on autorise aussi certaines inclusions de rôles : q v r où q est un rôle basique et r est un rôle général. 2.3.2 Les règles existentielles Nous arrivons maintenant au formalisme adopté dans ce manuscrit, les règles existentielles. Les règles ont dès le début été associées à l’intelligence artificielle, notamment dans les systèmes experts, puis dans la programmation logique. Les règles existentielles [Baget et al., 2011a] apparaissent sous différentes formes équivalentes dans la littérature : tuple-generating dependencies (TGD) [Abiteboul et al., 1995], règles Datalog∃ [Calì et al., 2008] renommées Datalog± dans [Calì et al., 2009], règles de graphes conceptuels [Salvat and Mugnier, 1996],∀∃-rules [Baget et al., 2009], . . . Définition 2.18 (Règles existentielles) Les règles existentielles sur un langage logique L sont des formules fermées de la forme : R = ∀X~ ∀Y~ (H[X, ~ Y~ ] → ∃Z~(C(Y , ~ Z~))) où H et C sont des conjonctions finies d’atomes sur L appelées respectivement hypothèse, prémisse ou corps en programmation logique et conclusion ou tête de la règle et notées hyp(R) respectivement concl(R). L’ensemble de variables Y~ , partagé par l’hypothèse et la conclusion, est appelé frontière de la règle et noté fr(R). Par souci de concision, dans les chapitres suivants, les règles existentielles seront appelées simplement règles et les quantificateurs et le parenthésage seront omis dans les règles puisqu’il n’y a pas d’ambiguïté. Exemple 12 Voici une règle existentielle : R = ∀x∀y((p(x, y) ∧ q(y)) → ∃z(r(y, z) ∧ q(z))) ou plus simplement : R = p(x, y) ∧ q(y) → r(y, z) ∧ q(z) et ses principaux composants : hyp(R) = p(x, y)∧q(y) , concl(R) = r(y, z)∧q(z) et fr(R) = {y}. Une règle existentielle n’est pas une clause (a fortiori une clause de Horn) à cause de la présence des variables existentielles, les deux sont cependant fortement liées car par skolémisation, on obtient des clauses de Horn (avec symbole fonctionnel). Dans le cas des règles existentielles, cette skolémisation revient à remplacer chaque variable existentielle de la conclusion par une fonction de skolem portant sur les variables de la frontière.2.3. L’ONTOLOGIE 21 Exemple 13 Soit R = ∀x∀y(p(x, y) → ∃z∃t(s(x, z) ∧ s(z, t) ∧ s(t, x))). La formule logique associée, non skolémisée, obtenue en faisant remonter les quantificateurs existentiels le plus en avant possible est la suivante : ∀x∃z∃t∀y(¬p(x, y) ∨ (s(x, z) ∧ s(z, t) ∧ s(t, x))) En la skolémisant on obtient : ∀x∀y(¬p(x, y) ∨ (s(x, f(x)) ∧ s(f(x), g(x)) ∧ s(g(x), x))) à partir de laquelle on obtient trois clauses de Horn : ¬p(x, y) ∨ s(x, f(x)) ¬p(x, y) ∨ s(f(x), g(x)) ¬p(x, y) ∨ s(g(x), x) Ces clauses auraient été obtenues directement en remplaçant les variables existentielles par des fonctions de skolem portant sur la frontière et en découpant la règle en trois règles à conclusion atomique : • ∀x∀y(p(x, y) → s(x, f(x))) • ∀x∀y(p(x, y) → s(f(x), g(x))) • ∀x∀y(p(x, y) → s(g(x), x)) Les règles existentielles permettent de produire de nouveaux faits à partir des faits existants. Définition 2.19 (Application d’une règle) Soit F un fait, et R = H → C une règle existentielle. R est applicable à F s’il existe un homomorphisme π de H dans F. Dans ce cas, l’application de R sur F produit un fait α(F, R, π) = F ∪ π safe(C), avec π safe(C) = π(δ(C)) où δ est une substitution qui renomme chaque variable de C qui n’appartient pas au domaine de π, par une variable fraîche, c’est-à-dire une nouvelle variable n’apparaissant nulle part ailleurs. Voici un exemple d’application de la règle précédente : Exemple 14 Soit R = p(x, y) ∧ q(y) → r(y, z) ∧ q(z) et F = p(a, b) ∧ q(b) ∧ r(a, b). R est applicable à F par π = {(x, a),(y, b)} et produit le fait : p(a, b) ∧ q(b) ∧ r(a, b) ∧ r(b, z1) ∧ q(z1) où z1 est une nouvelle variable quantifiée existentiellement. Il existe aussi deux types de règles particulières, les règles avec égalité et les contraintes négatives. Les règles avec égalité généralisent la dépendance fonctionnelle.22 CHAPITRE 2. NOTIONS DE BASE Définition 2.20 (Règle avec égalité) Les règles avec égalité sur un langage logique L sont des formules fermées de la forme : R = ∀X~ (H[X~ ] → xi = xj )) où H est une conjonction finie d’atomes sur L et xi et xj sont des variables distinctes de X~ . Les contraintes négatives expriment qu’un certain fait ne doit pas être déductible de la base. Elles sont souvent utilisées pour exprimer la disjonction de concepts ou l’incompatibilité de relation. Définition 2.21 (Contrainte négative) Les contraintes négatives sur un langage logique L sont des formules fermées de la forme : R = ∀X~ (H[X~ ] → ⊥)) où H est une conjonction finie d’atomes sur L. Comme pour les règles existentielles classiques, les règles avec égalité et les contraintes négatives sont applicables à un fait lorsqu’il existe un homomorphisme π de leur hypothèse dans le fait. Pour l’application, par un homomorphisme π, d’une règle avec égalité dont la conclusion est xi = xj , il faut remplacer dans le fait toutes les occurrences de π(xi) par π(xj ) (ou indifféremment toutes les occurrences de π(xj ) par π(xi)). Lorsqu’une contrainte négative est applicable sur un fait, celui-ci devient inconsistant et tout est déductible de lui. Le principal avantage des règles existentielles est leur capacité à attester de l’existence d’entités non identifiées. Cette propriété, appelée invention de valeur en base de données, est essentielle pour la représentation de connaissances ontologiques en domaine ouvert. De plus, les règles existentielles généralisent la plupart des langages ontologiques utilisés pour l’interrogation. Notamment, les logiques de description vues précédemment sont toutes traduisibles en règles existentielles. C’est aussi le cas des principaux fragments du langage du web sémantique OWL qui sont dits “traitable” tels que OWL 2 QL, OWL 2 RL, OWL 2 EL (http ://www.w3.org/TR/owl2- profiles/). DL-LiteR forme le cœur de OWL 2 QL tandis que OWL 2 EL est formé par EL et plus exactement EL ++ qui autorise en plus des constructeurs de EL, le concept ⊥ qui permet d’exprimer la disjonction de concepts, la composition de rôles dans des axiomes d’inclusion de rôles qui permet notamment d’exprimer la transitivité sur les rôles, les concepts nominaux (concept composé d’un seul individu) et une version restreinte des domaines concrets [Baader et al., 2005]. EL ++ étant indécidable pour l’interrogation, on se ramènera plus communément à ELHI pour l’interrogation. Le troisième fragment OWL 2 RL est lui étroitement lié au langage de règles Datalog. Toutes les logiques de descriptions légères sont exprimables au moyen des règles existentielles.2.3. L’ONTOLOGIE 23 2.3.3 Traduction d’une base de logique de description en une base avec règles existentielles La traduction d’une base de DL en une base avec règles existentielles se fait naturellement. Pour chaque individu présent dans la base on associe une constante du même nom dans le langage logique, pour chaque concept atomique un prédicat unaire du même nom et pour chaque rôle un prédicat binaire du même nom. Ainsi, si on appelle Φ la fonction de traduction, si A est un concept atomique ΦA(x) = A(x) et si r est un rôle atomique, Φr(x, y) = r(x, y). La ABox est traduite à partir de cette fonction en un ensemble de faits. Par exemple, l’assertion A(a) sera traduite en A(a) où A est un prédicat unaire et a une constante, r(a, b) sera traduite en r(a, b) où r est un prédicat binaire et a et b des constantes. La T Box sera traduite en un ensemble de règles. Pour chaque assertion de la forme B vC, on crée une règle ∀x (ΦB(x) → ΦC(x)) où ΦB est la traduction du concept B et ΦC celle du concept C. Pour un axiome d’inclusion de rôles r v s dans une TBox, on utilisera la traduction suivante ∀x, y (Φr(x, y) → Φs(x, y)) où Φr est la traduction du rôle r et Φs celle du rôle s. Les concepts et rôles construits se traduisent de la manière suivante : • Φ∃r(x) = ∃y (Φr(x, y)) • Φr− (x, y) = Φr(y, x) • ΦCuD(x) = ΦC(x) ∧ ΦD(x) • Φ∃ r.C(x) = ∃y (Φr(x, y) ∧ ΦC(y)) La traduction des concepts composés d’une restriction existentielle de rôles (∃r) font apparaître des quantificateurs existentiels au milieu des formules. Il faut remonter ces quantificateurs en tête de formule et remplacer ceux portant sur l’hypothèse par des quantificateurs universels. En effet, une règle de la forme : ∀x, y( ∃x 0 (P(x, x0 , y)) → ∃z C(y, z)) est équivalente à la règle : ∀x, y, x0 ( P(x, x0 , y) → ∃z C(y, z)) Traduction de > en EL Une base EL est traduite de la manière décrite précédemment, la seule différence vient du concept universel >. Pour le traduire, il faut d’abord créer un prédicat unaire > puis ajouter à l’ensemble de règles les règles suivantes : • pour chaque prédicat unaire A : ∀x (A(x) → >(x))24 CHAPITRE 2. NOTIONS DE BASE • pour chaque prédicat binaire r : ∀x, y (r(x, y) → >(x)) et ∀x, y (r(x, y) → >(y)) Dans l’exemple suivant, on propose une traduction d’une base de connaissances ELHI en une base de connaissances avec règles existentielles. Exemple 15 • T Box = {A v∃r.C,B u C vA,∃r −.A vC,s v r −} • ABox = {A(a), B(b), r(a, b)} La traduction est décrite sur le langage logique L = (P, C) où : • P = {r, s, A, B, C, >} où A, B, C, > sont unaires et r et s sont binaires. • C = {a, b} Base de faits = {A(a), B(b), r(a, b)} Base de règles : • ∀x (A(x) → ∃y (r(x, y) ∧ C(y))) • ∀x (B(x) ∧ C(x) → A(x)) • ∀x, y (r(y, x) ∧ A(y) → C(x)) • ∀x, y (s(x, y) → r(y, x)) Il reste ensuite à rajouter les règles liées au concept universel > : • ∀x (A(x) → >(x)) • ∀x (B(x) → >(x)) • ∀x (C(x) → >(x)) • ∀x, y (r(x, y) → >(x)) • ∀x, y (r(x, y) → >(y)) • ∀x, y (s(x, y) → >(x)) • ∀x, y (s(x, y) → >(y))2.4. LES DIFFÉRENTES APPROCHES 25 Traduction de la négation en DL-Lite La traduction d’une base DL-Lite est la même que celle présentée précédemment. La seule différence est au niveau des axiomes de la TBox qui contiennent des négations et sont traduits par des contraintes négatives. En effet, une règle de la forme : ∀x(P(x) → ¬C(x)) est équivalente à la règle : ∀x(P(x) ∧ C(x) → ⊥) Ainsi, les inclusions de concepts de la forme B v ¬C sont traduits par une règle ∀x (ΦB(x) ∧ ΦC(x) → ⊥) où ΦB est la traduction du concept B et ΦC celle du concept C. Dans une TBox en DL-LiteR, on trouve aussi des inclusions de rôles de la forme p v ¬q qui sont traduits par une règle ∀x, y (Φp(x, y) ∧ Φq(x, y) → ⊥), où Φp est la traduction du rôle p et Φq celle du rôle q. Puis, de la même manière que pour les inclusions classiques, les quantificateurs existentielles de l’hypothèse de la règle sont transformés en quantificateurs universels. Voici un exemple de traduction d’une TBox DL-LiteR en un ensemble de règles. Exemple 16 Soit une TBox {A v ∃q, p v q −, ∃q v ¬∃p}. Sa traduction est décrite sur le langage logique L = (P, C) où : • P = {A, p, q} où A est un prédicat unaire et p et q sont des prédicats binaires. Traduction en règle : • ∀x (A(x) → ∃y q(x, y)) • ∀x, y (p(x, y) → q(y, x)) • ∀x, y, z (q(x, y) ∧ p(x, z) → ⊥) 2.4 Les différentes approches Le problème d’interrogation d’une base de connaissances étudié dans cette thèse peut donc être reformulé de la manière suivante : Étant donné une base de faits F, une base de règles R et une requête conjonctive booléenne Q, est-ce qu’il existe une réponse à Q dans F selon R ? C’est-à-dire est-ce que Q est une conséquence logique de F et R ? Ce que l’on note (F, R) |= Q. Il existe deux paradigmes classiques de traitement des règles, le premier, appelé marche avant, consiste à faire grossir la base de faits en appliquant toutes les règles possibles. S’il existe une réponse à la requête, on la trouvera dans la base de faits enrichie. Le second, appelé marche arrière, consiste à réécrire la requête en fonction des26 CHAPITRE 2. NOTIONS DE BASE règles. S’il existe une réponse à la requête, une des réécritures de la requête aura une réponse dans la base de faits initiale. Dans le contexte de l’interrogation d’une base de connaissances, on parle aussi de méthode avec matérialisation, respectivement sans matérialisation, de l’inférence des règles. Il est connu depuis longtemps que le problème de l’interrogation d’une base de connaissances est indécidable [Beeri and Vardi, 1984], même avec une seule règle, ou en se restreignant à des prédicats unaires et binaires [Baget et al., 2011a]. Dans le cas général, la base de faits peut donc grossir indéfiniment en marche avant et le nombre de réécritures de la requête en marche arrière être infini. En revanche, les recherches ont mis en évidence des restrictions sur les ensembles de règles avec lesquelles le problème redevient décidable. La plupart de ces restrictions peuvent être classées en trois catégories reposant sur des propriétés abstraites apparentées pour deux d’entre elles à la marche avant et pour la dernière à la marche arrière. 2.4.1 Marche avant La marche avant enrichit la base de faits en appliquant toutes les règles possibles puis interroge la base enrichie avec la requête initiale. L’étape d’application des règles, appelée saturation, se fait avec une stratégie en largeur pour garantir la complétude. On part d’un fait initial F0. Chaque étape i consiste à produire un fait appelé Fi à partir du fait courant, noté Fi−1, en calculant tous les homomorphismes des hypothèses de chaque règle avec Fi−1 puis en effectuant toutes les applications de règles correspondantes. Le fait Fk obtenu à l’étape k est appelé la k-saturation de F0 avec l’ensemble de règles. La marche avant peut-être aussi retrouvée sous le nom de chase dans la littérature de base de données, néanmoins il faut noter qu’il existe différentes variantes du chase qui se différencientpar leur manière de traiter la redondance (oblivious [Calì et al., 2008], skolem [Marnette, 2009], restricted [Fagin et al., 2005], core chase [Deutsch et al., 2008]) Définition 2.22 (k-saturation) Soit F un fait, R un ensemble de règles et Π(R, F) = {(R, π)|R ∈ R et π est un homomorphisme de hyp(R) dans F} l’ensemble des homomorphismes de l’hypothèse d’une règle de R avec F. La saturation directe de F avec R est définie par : α(F, R) = F ∪ [ (R,π)∈Π(R,F) avec R=H→C π safe(C) La k-saturation de F avec R, notée αk(F, R) est définie par induction de la façon suivante : • α0(F, R) = F ; • pour i > 0, αi(F, R) = α(αi−1(F, R), R). La définition suivante donne la terminologie utilisée avec la saturation.2.4. LES DIFFÉRENTES APPROCHES 27 Définition 2.23 (Dérivation) Soit F un fait et R un ensemble de règles. On appelle R-dérivation de F un fait F 0 tel qu’il existe une séquence finie, appelée séquence de dérivation, F = F0, F1, ..., Fk = F 0 , où ∀1 ≤ i ≤ k il existe une règle R = H → C de R et un homomorphisme π de H dans Fi−1 avec Fi = α(Fi−1, R, π). Le fait obtenu en saturant le fait initial F avec toutes les applications possibles d’une règle de l’ensemble de règles R, est appelé la saturation de F par R. Définition 2.24 (Saturation) Soit F un fait et R un ensemble de règles. La saturation de F par R, noté α∞(F, R) est définie par : α∞(F, R) = [ k∈N αk(F, R) Ce fait a la particularité d’avoir comme modèle isomorphe le modèle canonique aussi connu sous le nom de modèle universel dans la littérature base de données. Le modèle canonique s’envoie sur n’importe quel modèle de F et R, donc pour savoir si une requête q est induite par F et R il suffit de vérifier si le modèle canonique de F et R est un modèle de q. Définition 2.25 (Modèle isomorphe) Soit F un fait construit sur le langage logique L = (P, C). Le modèle isomorphe à F, (D, I), est tel que : • D est en bijection avec term(F)∪ C (pour simplifier les notations on considère que cette bijection est l’identité) ; • pour tout c ∈ C, I(c) = c ; • pour tout p ∈ P, I(p) = {(t1, . . . , tk) | p(t1, . . . , tk) ∈ F} si p apparaît dans F sinon I(p) = ∅. A partir de ces notions nous pouvons présenter le théorème suivant qui est fondamental pour résoudre le problème interrogation d’une base de connaissances. Théorème 2 ([Baget et al., 2011a]) Soit F un fait, q une requête et R un ensemble de règles. Les propriétés suivantes sont équivalentes : • (F, R) |= q ; • il existe un homomorphisme de q dans α∞(F, R); • il existe un entier k tel qu’il y a un homomorphisme de q dans αk(F, R). Après l’application d’une règle R par un homomorphisme π sur un fait F, R reste applicable par π sur α(F, R, π) mais cette application n’apporte aucune nouvelle information. Donc en pratique, lors de la saturation, nous ne considérons que les nouvelles applications de règles, c’est-à-dire les applications utilisant un nouvel homomorphisme. L’exemple suivant illustre une saturation finie.28 CHAPITRE 2. NOTIONS DE BASE Exemple 17 Soit F = r(a, b) ∧ q(b), R = {R1, R2}, R1 = r(x, y) → s(x, y) et R2 = q(x) → r(x, y). R1 est applicable à F par π1 = {(x, a),(y, b)} et R2 est applicable à F par π2 = {(x, b)}, on obtient donc le fait suivant en réalisant les applications correspondantes : F1 = F ∧ s(a, b) ∧ r(b, y1) Ensuite, seule R2 est applicable avec un nouvel homomorphisme sur F1 par π3 = {(x, b),(y, y1)} pour obtenir : F2 = F1 ∧ s(b, y1) Plus aucune nouvelle application de règle ne peut être faite, donc la saturation s’arrête et α∞(F, R) = F2. Mais comme le montre l’exemple suivant, la saturation peut aussi produire des séquences de dérivation de longueur infinie, la saturation est alors infinie. Exemple 18 Soit F = q(a) et R = {q(x) → r(x, y) ∧ q(y)}. α1(F, R) = F ∧ r(a, y1) ∧ q(y1) α2(F, R) = F1 ∧ r(y1, y2) ∧ q(y2) α3(F, R) = F2 ∧ r(y2, y3) ∧ q(y3) α4(F, R) = . . . La saturation de F par R est infinie. Une manière de rendre le problème de l’interrogation d’une base de connaissances décidable est d’avoir une saturation équivalente à un fait fini. Ce sera la première propriété abstraite intéressante d’un ensemble de règles. Un ensemble de règles R est à expansion finie si pour tout fait F, la saturation de F par R est équivalente à un fait fini. Définition 2.26 (Ensemble à expansion finie) Un ensemble de règles R est appelé ensemble à expansion finie (fes pour "finite expansion set") si et seulement si, pour tout fait F, il existe un entier k tel que αk(F, R) ≡ α∞(F, R). Dans l’exemple suivant, on peut voir une saturation infinie équivalente à un fait fini. Exemple 19 Soit F = q(a) et R = {q(x) → r(x, y) ∧ r(y, y) ∧ q(y)}. α1(F, R) = F ∧ r(a, y1) ∧ r(y1, y1) ∧ q(y1) α2(F, R) = F1 ∧ r(y1, y2) ∧ r(y2, y2) ∧ q(y2) α3(F, R) = F2 ∧ r(y2, y3) ∧ r(y3, y3) ∧ q(y3) α4(F, R) = . . . α∞(F, R) est infini mais est équivalent à α1(F, R), en effet, α1(F, R) ⊆ α∞(F, R) et chaque r(yi , yi+1)∧r(yi+1, yi+1)∧q(yi+1) de α∞(F, R) s’envoie sur r(y1, y1)∧q(y1) par {(yi , y1),(yi+1, y1)}.2.4. LES DIFFÉRENTES APPROCHES 29 Le problème de savoir si un ensemble de règles est fes est indécidable [Baget et al., 2011a], les ensembles de règles fes ne sont donc pas reconnaissables. La seconde propriété abstraite d’un ensemble de règles liée à la marche avant n’est pas reconnaissable non plus, elle définit les ensembles à largeur arborescente bornée, c’est-à-dire que la saturation peut-être infinie mais sa structure est proche de celle d’un arbre. Définition 2.27 (Ensemble à largeur arborescente bornée) Un ensemble de règles R est appelé ensemble à largeur arborescente bornée (bts pour "bounded treewidth set") si et seulement si, pour tout fait F, il existe un entier b (dépendant de F et R) tel que pour toute R-dérivation F 0 de F, la largeur arborescente 3 de noyau(F) est inférieure ou égale à b. La borne b dépend de F ce qui implique que tout fes est aussi bts, il suffit de choisir b égal au nombre de termes du fait équivalent à la saturation de F et R. En s’appuyant sur un résultat de [Courcelle, 1990], il a été prouvé que le problème d’interrogation d’une base de connaissances est décidable si l’ensemble de règles est bts [Calì et al., 2008, Baget et al., 2011a]. La preuve n’est pas constructive, elle ne fournit donc pas d’algorithme pour l’interrogation d’une base de connaissances avec des ensembles de règles bts. En revanche [Baget et al., 2011b, Thomazo et al., 2012, Thomazo, 2013b] propose un algorithme pour une sous-classe expressive de bts appelée gbts. Cette classe couvre la plupart des classes de règles concrètes connues qui sont bts et non fes. Il est à noter que cet algorithme est optimal en complexité combinée et en complexité de données dans le pire des cas. 2.4.2 Marche arrière Historiquement, la marche arrière a d’abord été utilisée en programmation logique, notamment avec Prolog. Un programme logique positif est un ensemble de clauses de Horn représentant des faits (atomes sans variable) et des règles, pouvant comporter des symboles fonctionnels. On prouve qu’une requête conjonctive Q est conséquence logique d’un programme logique P en montrant que P ∧¬Q est insatis- fiable, à l’aide de la méthode de résolution (à noter que Prolog par exemple suit une stratégie en profondeur pour des raisons d’efficacité, et que cette stratégie n’est pas complète). Lorsque la clause vide est produite, on dit que l’on a “effacé” Q. A chaque étape, on unifie un atome de Q, appelé le but, avec un atome positif d’une clause (donc un fait ou une conclusion de règle) et on produit la réécriture correspondante. On peut découper le processus de production de la clause vide en deux parties. La première partie crée de nouvelles clauses à partir des buts et des règles (pour que ce découpage soit applicable, cela nécessite bien sûr que ce processus soit fini). La seconde partie produit la clause vide à partir d’une clause créée par la première 3. Voir définition 8.1 en annexe30 CHAPITRE 2. NOTIONS DE BASE phase et des faits. On remarque que si l’on efface Q avec des faits cela revient à trouver un homomorphisme de Q dans ces faits. Nous en venons à une autre vision de la marche arrière introduite par l’article fondateur en OBQA [Calvanese et al., 2005] pour la logique de description DL-Lite. La marche arrière y est décomposée en deux étapes : 1. on calcule un ensemble de réécritures de la requête initiale, qui est un ensemble de requêtes conjonctives vu comme une union de requêtes conjonctives. 2. on interroge la base de faits avec cette union de requêtes conjonctives ce qui est équivalent d’un point de vue logique à chercher des homomorphismes (bien que le mécanisme soit implémenté en SQL). Cette séparation des faits et de l’ontologie présente d’indéniables avantages, par exemple dans le cas où les données sont réparties dans plusieurs bases ou que l’on ne dispose pas des droits d’écritures sur les faits. Outre les problèmes d’accès aux données, la marche arrière évite les problèmes liés au grossissement d’une base de faits causé par la marche avant. Nous avons montré dans la section 2.3.3 qu’une TBox DL-Lite se traduit en règles existentielles, et donc pas directement en clauses. L’unification doit donc être adaptée pour tenir compte des variables existentielles, ou bien les règles obtenues doivent être skolémisées. Ces deux approches ont été utilisées par la suite. Les techniques de réécriture de la littérature peuvent être classées en deux caté- gories en fonction du type de la réécriture. La première technique consiste à réécrire la requête sous forme d’une union de requêtes conjonctives [Gottlob et al., 2011, Chortaras et al., 2011, Rodriguez-Muro et al., 2013], la seconde réécrit la requête en un programme Datalog [Pérez-Urbina et al., 2010, Gottlob and Schwentick, 2012, Eiter et al., 2012, Trivela et al., 2013]. L’existence d’une réécriture sous forme d’une union de requêtes conjonctives est assurée lorsqu’un ensemble de règles est reformulable en requête du premier ordre ("first-order rewritable"). Cette notion très commune dans la littérature concerne l’existence d’une réécriture, adéquate et complète, en requête du premier ordre ("first order query"). En pratique, ces requêtes sont équivalentes à des requêtes SQL. Définition 2.28 (Reformulable en requête du premier ordre) Soit R un ensemble de règles. R est reformulable en requête du premier ordre (FOreformulable) si pour toute requête q, il existe q 0 une réécriture de q, en requête du premier ordre, telle que pour tout fait F, on a (F, R) |= q si et seulement si F |= q 0 . On dit que q 0 est adéquate et complète en fonction de R. Une autre propriété d’un ensemble de règles, assurant l’existence d’une réécriture sous forme d’une union de requêtes conjonctives, peut être trouvée dans la littérature [Baget et al., 2011a]. Elle assure directement l’existence d’une réécriture sous la forme d’une disjonction de conjonctions d’atomes, c’est-à-dire d’une union de requêtes conjonctives (UCQ pour "union of conjonctive queries").2.4. LES DIFFÉRENTES APPROCHES 31 Définition 2.29 (Ensemble à unification finie) Soit R un ensemble de règles. R est appelé ensemble à unification finie (fus pour "finite unification set") si pour toute requête q, il existe Q, une union de requêtes conjonctives, telle que pour tout fait F on a (F, R) |= q si et seulement s’il existe q 0 ∈ Q telle que F |= q 0 . On dit que la réécriture Q est adéquate et complète en fonction de R. Même si la présence d’une union de requêtes conjonctives semble plus restrictive que celle d’une requête du premier ordre, nous sommes enclin à croire que les notions fus et FO-reformulable sont équivalentes. Cependant, aucune preuve de cela n’a été publiée à notre connaissance. Comme pour les ensembles à expansion finie ou à largeur arborescente bornée, les ensembles de règles à unification finie ne sont pas reconnaissables [Baget et al., 2011a], ces classes sont donc dites abstraites. En revanche, il existe de nombreuses classes de règles, dites concrètes, qui sont reconnaissables et dont on connaît l’appartenance ou non aux trois classes abstraites. Ces classes de règles et leur classification sont répertoriées dans [Baget et al., 2011a]. Nous rappelons ici la définition des principales classes de règles fus. Définition 2.30 (Règle à hypothèse atomique[Baget et al., 2011a]) Une règle R est à hypothèse atomique, noté ah, si hyp(R) contient un seul atome. La notion d’ensemble de règles ah est équivalente à la notion d’ensemble de règles "linear Datalog±". Ces règles Datalog contiennent un seul atome en hypothèse et en conclusion mais tout ensemble de règles peut être décomposé en un ensemble équivalent de règles à conclusion atomique (voir 7.4). Exemple 20 R = p(x, x, z) → r(x, y, z) ∧ A(z) est une règle ah, en effet, son hypothèse ne contient qu’un seul atome p(x, x, z). Définition 2.31 (Règle à domaine restreint [Baget et al., 2011a]) Une règle R est à domaine restreint, noté dr, si chaque atome de sa conclusion contient toutes ou aucune des variables de son hypothèse. Exemple 21 R = p(x, y) ∧ B(y) → r(x, y, z) ∧ A(z) est une règle dr, en effet, r(x, y, z) contient toutes les variables de l’hypothèse et A(z) aucune. Définition 2.32 (Ensemble de règles “sticky” [Calì et al., 2010b]) Soit R un ensemble de règles. On marque toutes les variables qui apparaissent dans l’hypothèse des règles de la manière suivante. D’abord, pour chaque règle R ∈ R et chaque variable v de hyp(R), s’il existe un atome a de concl(R) tel que v n’apparaît pas dans a alors on marque chaque occurrence de v dans hyp(R). Ensuite on applique jusqu’à l’obtention d’un point fixe la procédure suivante : pour chaque règle R ∈ R si une variable marquée apparaît dans hyp(R) à la position π alors pour chaque règle R0 ∈ R (y compris R = R0 ) on marque chaque occurrence des variables de hyp(R0 ) qui apparaissent dans concl(R0 ) à la même position π. On dit que R est “sticky” s’il n’existe aucune règle R ∈ R telle qu’une variable marquée apparaît dans hyp(R) plus d’une fois.32 CHAPITRE 2. NOTIONS DE BASE Exemple 22 Soit R = A(x) ∧ r(x, y) → r(y, z), {R} n’est pas “sticky” car x est marqué et apparaît deux fois dans l’hypothèse de la règle. Soit R1 = r(x1, y1)∧s(y1, z1) → t(y1, u1) et R2 = t(x2, y2) → r(y2, x2) à l’initialisation, x1 et z1 sont marquées, puis le marquage de x1 se propage à y2 car y2 apparaît dans R2 à la première position de r comme x1 dans R1. Finalement, les variables marquées sont x1,z1 et y2 donc {R1, R2} est “sticky” puisqu’aucune n’apparaît deux fois dans l’hypothèse d’une règle. On peut noter que les ensembles de ah, dr et “sticky” sont incomparables. La règle de l’exemple 20 est ah mais ni dr car A(z) contient une seule des variables l’hypothèse, ni “sticky” car x est marquée et apparaît deux fois dans l’hypothèse. Celle de l’exemple 21 est dr mais n’est pas ah elle contient deux atomes en hypothèse ou “sticky” car y est marquée et apparaît deux fois dans l’hypothèse. Enfin, celle de l’exemple 22 est “sticky” mais ni ah, elle a deux atomes en hypothèse, ni dr, t(y1, u1) ne contient pas z1. Enfin, les règles “sticky-join” généralisent les règles “sticky” et à hypothèse atomique [Calì et al., 2010a], la définition s’appuie aussi sur un marquage de variables mais qui est plus sophistiqué que celui pour les règles “sticky”. Il existe encore d’autres ensembles de règles fus, comme les a-GRD (pour “acyclic graph of rule dependencies” [Baget et al., 2009]) qui ont une condition d’acyclicité sur un graphe de dépendance entre règles, elles sont aussi fes et bts. L’ensemble de règles qui traduit une ontologie DL-Lite est fus, de nombreux systèmes mettent à profit cette propriété et font de la réécriture de requêtes conjonctives en UCQ par une ontologie DL-Lite (voir section 7.3). En revanche, cette méthode n’est pas applicable pour une ontologie EL dont l’ensemble de règles correspondant n’est pas fus. Par contre, l’ensemble de règles qui traduit une ontologie EL admet une réécriture d’une requête conjonctive sous la forme d’un programme Datalog. Il existe d’autres ensembles de règles, tels que ceux qui traduisent les ontologies ELHI, qui admettent une réécriture sous forme d’un programme Datalog mais pas sous forme d’une UCQ. De plus, les réécritures Datalog ont aussi un intérêt lorsque les règles sont fus, car elles permettent une réécriture plus compacte. Définition 2.33 (Règle Datalog) Une règle Datalog est une expression de la forme α :- β1, . . . , βn où α, β1, . . ., βn sont des atomes et chaque variable de α doit apparaître au moins une fois dans β1, . . . , βn. α est appelé la tête de la règle et β1, . . . , βn est appelé le corps. Une règle Datalog est donc une règle existentielle qui a un seul atome en conclusion et aucune variable existentielle. Une réécriture Datalog ou programme Datalog est simplement un ensemble de règles Datalog avec un prédicat particulier "réponse", qui ne fait pas partie des prédicats présents dans la base et qui ne peut apparaître qu’en conclusion d’une règle. Le prédicat réponse a évidemment la même arité partout dans le programme.2.4. LES DIFFÉRENTES APPROCHES 33 Le principal inconvénient des réécritures Datalog est qu’elles nécessitent un système de gestion des bases de données implémentant Datalog, ces systèmes étant peu développés et leurs performances restant à prouver. En revanche, ce problème peut être évité si le programme Datalog est non récursif, il peut alors être traduit simplement en une UCQ et être exécuté sur un système de gestion de bases de données classique. Définition 2.34 (Programme Datalog non-récursif) Un programme Datalog est non-récursif s’il existe un ordre total r1, . . . , rn sur ses règles tel que le prédicat de la tête d’une règle ri n’apparaît pas dans le corps d’une règle rj telle que i ≤ j.34 CHAPITRE 2. NOTIONS DE BASEChapitre 3 Un cadre théorique pour la réécriture en UCQ Dans ce chapitre, nous définissons les propriétés souhaitées des ensembles de réécritures que nous allons calculer. Puis nous proposons un algorithme générique de réécritures ainsi que la preuve de sa correction lorsque l’ensemble de règles donné est fus. 3.1 Propriétés d’un ensemble de réécritures Les techniques de réécritures en UCQ produisent, à partir d’une requête et d’un ensemble de règles, un ensemble de requêtes, que l’on appellera souvent ensemble de réécritures. Puisque le but est d’interroger la base de faits avec ces réécritures pour obtenir les réponses de la requête initiale dans la base de connaissances, il faut que cet ensemble de réécritures soit adéquat et complet pour que les réponses soient bien celles souhaitées. De plus, pour que l’interrogation soit rapide, il faut que cet ensemble soit aussi minimal. En résumé, nous désirons que notre ensemble de réécritures ait trois propriétés : adéquation, complétude et minimalité. Définition 3.1 (Ensemble adéquat et complet) Soit R un ensemble de règles, Q une requête et Q un ensemble de requêtes. Q est adéquat (en fonction de R et Q) si pour tout fait F et toute requête Q0 ∈ Q, F |= Q0 implique (F, R) |= Q. Q est complet (en fonction de R et Q) si pour tout fait F, si (F, R) |= Q alors il existe Q0 ∈ Q telle que F |= Q0 . Pour obtenir la propriété de minimalité tout en conservant la complétude, il faut ne garder que les éléments les plus généraux de l’ensemble. En effet, soit deux requêtes Q1 et Q2 telles que Q1 ≥ Q2 (autrement dit, Q1 subsume Q2, voir définition 2.16), pour tout fait F, l’ensemble des réponses de Q2 est inclus dans l’ensemble des réponses de Q1. Cette propriété est due au fait que l’homomorphisme est transitif, s’il existe un homomorphisme de Q1 dans Q2 et de Q2 dans F alors il y en a un de 3536 CHAPITRE 3. UN CADRE THÉORIQUE Figure 3.1 – Couverture (exemple 23) Q1 dans F. Ainsi, enlever les éléments plus spécifiques ne va pas compromettre la complétude. L’ensemble de réécritures désiré est donc un ensemble de requêtes adé- quates et incomparables deux à deux qui “couvre” l’ensemble de toutes les réécritures adéquates de la requête initiale. Définition 3.2 (Relation de couverture) Soit Q1 et Q2 deux ensembles de ré- écritures. On dit que Q1 couvre Q2, noté Q1 ≥ Q2, si pour chaque requête Q2 ∈ Q2 il existe Q1 ∈ Q1 telle que Q1 ≥ Q2. Un ensemble de réécritures est minimal au sens de l’inclusion selon cette relation de couverture. Définition 3.3 (Minimalité d’un ensemble de requêtes) Soit Q un ensemble de réécritures, Q est minimal s’il n’existe pas de requêtes Q ∈ Q telle que Q \ {Q} ≥ Q. Un sous-ensemble minimal de réécritures qui couvre l’ensemble des réécritures est appelée couverture. Définition 3.4 (Couverture d’un ensemble de requêtes) Soit Q un ensemble de réécritures, une couverture de Q est un ensemble minimal de requêtes Qc ⊆ Q tel que Qc ≥ Q. Voici un exemple de couverture d’un ensemble de requêtes illustré par la fi- gure 3.1. Exemple 23 Soit Q = {Q1, . . . , Q6} sur lequel on a les relations suivantes : Q1 ≥ Q2, Q4, Q5, Q6 ; Q2 ≥ Q1, Q4, Q5, Q6 ; Q3 ≥ Q4 ; Q5 ≥ Q6. Q1 et Q2 sont donc équivalentes, et il y a deux couvertures de Q, {Q1, Q3} et {Q2, Q3}.3.1. PROPRIÉTÉS D’UN ENSEMBLE DE RÉÉCRITURES 37 Étant donné qu’une couverture est un ensemble minimal, tous ses éléments sont deux à deux incomparables. On peut aussi prouver que deux couvertures d’un même ensemble ont la même cardinalité. Si de plus, on considère que chaque élément des couvertures est de taille minimale, c’est-à-dire qu’il s’agit de noyaux, les deux couvertures sont identiques à un isomorphisme près. Ainsi, quelle que soit la technique utilisée pour le calculer, il existe un ensemble unique (à un isomorphisme près) de réécritures adéquat, complet et minimal dont les éléments sont de taille minimale. Théorème 3 ([König et al., 2012]) soit R un ensemble de règles fus et Q une requête. Il existe un unique ensemble fini de réécritures de Q selon R adéquat, complet et minimal dont les éléments sont de taille minimale. Preuve : Soit Q1 et Q2 deux ensembles de réécritures de Q avec R adéquats et complets, par définition de fus, on sait que de tels ensembles existent. Soit Qc 1 , Qc 2 une de leurs couvertures respectives. Qc 1 et Qc 2 sont aussi adéquats et complets et par définition minimales au sens de l’inclusion. Nous montrons qu’ils ont la même cardinalité. Soit Q1 ∈ Qc 1 , il existe Q2 ∈ Qc 2 telle que Q1 ≤ Q2 car Qc 2 est complet. De la même manière, il existe Q0 1 ∈ Qc 1 telle que Q2 ≤ Q0 1 . Ainsi, Q1 ≤ Q0 1 ce qui signifie que Q0 1 = Q1 puisque Qc 1 est une couverture. Donc pour tout Q1 ∈ Qc 1 , il existe Q2 ∈ Qc 2 telle que Q1 ≤ Q2 et Q2 ≤ Q1. Une telle Q2 est unique puisque les éléments de Qc 2 sont incomparables deux à deux. La fonction associant Q1 à Q2 est donc une bijection de Qc 1 dans Qc 2 , ce qui montre que les deux ensembles ont la même cardinalité. Si nous imposons de plus, que les éléments de Qc 1 et Qc 2 soient de taille minimale, Q1 et Q2 seront isomorphes à leur noyau et donc isomorphes. Il est aussi important de noter que même si l’ensemble des réécritures adéquates d’une requête est infinie, sa couverture peut être finie. Exemple 24 Soit Q = t(u), et R1 = t(x) ∧ p(x, y) → r(y), R2 = r(x) ∧ p(x, y) → t(y). R1 et R2 ont une conclusion réduite à un seul atome et aucune variable existentielle donc on peut utiliser des unificateurs les plus généraux classiques, qui unifient le premier atome de la requête avec l’atome de la conclusion de la règle. L’ensemble des réécritures de Q avec {R1, R2} est infini : Les premières requêtes générées sont les suivantes (noter que les variables des règles sont renommées quand c’est nécessaire) : Q0 = t(u) Q1 = r(x) ∧ p(x, y) // à partir de Q0 et R2 avec {(u, y)} Q2 = t(x0) ∧ p(x0, y0) ∧ p(y0, y) // à partir de Q1 et R1 avec {(x, y0)} Q3 = r(x1) ∧ p(x1, y1) ∧ p(y1, y0) ∧ p(y0, y) // à partir de Q2 et R2 avec {(x0, y1)} Q4 = t(x2) ∧ p(x2, y2) ∧ p(y2, y1) ∧ p(y1, y0) ∧ p(y0, y) // à partir de Q3 et R1 et ainsi de suite . . . En revanche, l’ensemble des réécritures les plus générales est {Q0, Q1} puisque toutes les autres que l’on peut obtenir sont plus spécifiques. Prise en compte de la complexit´e g´eom´etrique des mod`eles structuraux dans des m´ethodes de maillage fond´ees sur le diagramme de Vorono¨ı Jeanne Pellerin To cite this version: Jeanne Pellerin. Prise en compte de la complexit´e g´eom´etrique des mod`eles structuraux dans des m´ethodes de maillage fond´ees sur le diagramme de Vorono¨ı. Applied geology. Universit´e de Lorraine, 2014. French. HAL Id: tel-01005722 https://tel.archives-ouvertes.fr/tel-01005722 Submitted on 13 Jun 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.Prise en compte de la complexite ´ geom ´ etrique des mod ´ eles ` structuraux dans des methodes ´ de maillage fondees sur le ´ diagramme de Vorono¨ı These ` pour obtenir le grade de Docteur de l’Universit´e de Lorraine Ecole doctorale RP2E ´ Sp´ecialit´e G´eosciences par Jeanne PELLERIN Th`ese soutenue le 20 mars 2014 devant le jury : M. Pascal Frey Professeur, Universit´e Paris 06 Rapporteur M. Hamdi Tchelepi Professeur, Stanford University Rapporteur M. Stephan Matth¨ai Professeur, University of Leoben Examinateur M. Jean-Fran¸cois Remacle Professeur, Universit´e de Louvain Examinateur M. Jean Virieux Professeur, Universit´e Grenoble 01 Examinateur M. Bruno L´evy Directeur de recherche, INRIA Directeur de th`ese M. Guillaume Caumon Professeur, Universit´e de Lorraine Directeur de th`ese M. David Ledez Total Invit´e UMR 7359 - GeoRessources ENSG - Universit´e de Lorraine TSA 70605, 54518 Vandœuvre-l`es-Nancy Cedex - FRANCEA mes parents, `Remerciements Je suis en premier lieu tr`es reconnaissante `a mon directeur de th`ese Guillaume Caumon de m’avoir permis de d´ecouvrir que, contrairement `a ce que j’avais pu croire, la recherche me plaisait, et de m’avoir convaincue de faire une th`ese. Je remercie vivement mon second directeur de th`ese Bruno L´evy pour ses consultations de soutien `a th´esarde en d´etresse et son enthousiasme communicatif. Je tiens ´egalement `a remercier Pascal Frey, David Ledez, Stephan Matth¨ai, Jean-Fran¸cois Remacle, Hamdi Tchelepi et Jean Virieux d’avoir accept´e de faire partie de mon jury de th`ese. Merci `a tous les coll`egues de l’´equipe de recherche Alice du Loria dont les remarques et questions ont influenc´e ce travail. Merci `a tous les membres de l’´equipe de recherche Gocad (ceux qui l’ont ´et´e et ceux qui le sont toujours) pour tous les bons moments pass´es au labo et en dehors du labo, pour leur aide et leur soutien : Pauline CD, Nicolas C., Florent L., Gautier L., Romain M., Fran¸cois B., Th´eophile G., Pablo M., Charline J., J´er´emy R., Arnaud B., Guillaume R., Paul C. Merci `a Pierre, Christophe, et Fatima pour le n´ecessaire soutien technique et administratif. Un grand merci `a Guillaume, Bruno, Arnaud, J´er´emy, Pauline, Charline, Pablo, Jonathan E., Jonathan M., ainsi qu’`a mon papa d’avoir relu tout ou partie de ce travail. Je tiens `a remercier plus particuli`erement Arnaud et J´er´emy, coll`egues de bureau de cette derni`ere ann´ee et demi, de m’avoir aid´ee `a passer le cap de la fin de th`ese, Gautier et Romain pour leur aide en d´ebut de th`ese, Fran¸cois pour son organisation qui envoie du steak et sa g´en´erosit´e, et enfin Pauline, coll`egue de recherche, de couture, de litt´erature anglaise, de step, de papote, de cin´e, tout cela me manquera. Je finirai en remerciant tous ceux qui m’ont aid´e dans les moments difficiles avant et pendant la th`ese, tout particuli`erement mes parents.R´esum´e Selon la m´ethode utilis´ee pour construire un mod`ele structural en trois dimensions et selon l’application `a laquelle il est destin´e, son maillage, en d’autres termes sa repr´esentation informatique, doit ˆetre adapt´e afin de respecter des crit`eres de type, de nombre et de qualit´e de ses ´el´ements. Les m´ethodes de maillage d´evelopp´ees dans d’autres domaines que la g´eomod´elisation ne permettent pas de modifier le mod`ele d’entr´ee. Ceci est souhaitable en g´eomod´elisation afin de mieux contrˆoler le nombre d’´el´ements du maillage et leur qualit´e. L’objectif de cette th`ese est de d´evelopper des m´ethodes de maillage permettant de remplir ces objectifs afin de g´erer la complexit´e g´eom´etrique des mod`eles structuraux d´efinis par fronti`eres. Premi`erement, une analyse des sources de complexit´e g´eom´etrique dans ces mod`eles est propos´ee. Les mesures d´evelopp´ees constituent une premi`ere ´etape dans la d´efinition d’outils permettant la comparaison objective de diff´erents mod`eles et aident `a caract´eriser pr´ecis´ement les zones plus compliqu´ees `a mailler dans un mod`ele. Ensuite, des m´ethodes originales de remaillage surfacique et de maillage volumique fond´ees sur l’utilisation des diagrammes de Vorono¨ı sont propos´ees. Les fondements de ces deux m´ethodes sont identiques : (1) une optimisation de type Vorono¨ı barycentrique est utilis´ee pour globalement obtenir un nombre contrˆol´e d’´el´ements de bonne qualit´e et (2) des consid´erations combinatoires pour localement construire le maillage final, ´eventuellement en modifiant le mod`ele initial. La m´ethode de remaillage surfacique est automatique et permet de simplifier un mod`ele `a une r´esolution donn´ee. L’originalit´e de la m´ethode de maillage volumique est que les ´el´ements g´en´er´es sont de types diff´erents. Des prismes et pyramides sont utilis´es pour remplir les zones tr`es fines du mod`ele, tandis que le reste du mod`ele est rempli avec des t´etra`edres.Table des mati`eres Remerciements iii R´esum´e v Introduction 1 1 Objets g´eom´etriques fondamentaux 9 1.1 Diagramme de Vorono¨ı et triangulation de Delaunay . . . . . . . . . . 9 1.1.1 Diagramme de Vorono¨ı . . . . . . . . . . . . . . . . . . . . . . 9 1.1.2 Triangulation de Delaunay . . . . . . . . . . . . . . . . . . . . 10 1.1.3 Calcul du diagramme de Vorono¨ı . . . . . . . . . . . . . . . . . 12 1.2 Diagramme de Vorono¨ı et triangulation de Delaunay restreints . . . . 12 1.2.1 Diagramme de Vorono¨ı restreint . . . . . . . . . . . . . . . . . 12 D´efinitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Cas d´eg´en´er´es . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.2.2 Calcul du diagramme de Vorono¨ı restreint . . . . . . . . . . . . 13 1.2.3 Triangulation de Delaunay restreinte . . . . . . . . . . . . . . . 15 1.2.4 Topologie de la triangulation de Delaunay restreinte . . . . . . 15 D´efinitions pr´eliminaires . . . . . . . . . . . . . . . . . . . . . . 16 Propri´et´e de la boule topologique . . . . . . . . . . . . . . . . . 16 Epsilon ´echantillonage . . . . . . . . . . . . . . . . . . . . . . . 17 1.3 Optimisation des diagrammes de Vorono¨ı . . . . . . . . . . . . . . . . 17 1.3.1 Diagramme de Vorono¨ı barycentrique . . . . . . . . . . . . . . 18 1.3.2 Diagramme de Vorono¨ı barycentrique restreint . . . . . . . . . 18 1.3.3 Calculs du diagramme de Vorono¨ı barycentrique et du diagramme de Vorono¨ı barycentrique restreint . . . . . . . . . . . 19 2 Etat de l’art : objectifs et g´en´eration des maillages ´ 21 2.1 Maillages et g´eomod´elisation . . . . . . . . . . . . . . . . . . . . . . . 21 2.1.1 Qu’est ce qu’un maillage ? . . . . . . . . . . . . . . . . . . . . . 21 D´efinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Types de maillages . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.1.2 Objectifs des maillages en g´eomod´elisation . . . . . . . . . . . 23 Des maillages pour repr´esenter les mod`eles . . . . . . . . . . . 23 Des maillages pour r´ealiser des simulations num´eriques . . . . . 24 2.1.3 Maillages volumiques utilis´es en g´eomod´elisation . . . . . . . . 25 Maillages pour la simulation d’´ecoulement . . . . . . . . . . . . 25viii TABLE DES MATIERES ` Maillages pour d’autres applications . . . . . . . . . . . . . . . 26 2.2 Qualit´e d’un maillage et d´efis de g´en´eration . . . . . . . . . . . . . . . 27 2.2.1 Qualit´e d’un maillage . . . . . . . . . . . . . . . . . . . . . . . 27 Qualit´e d’approximation du mod`ele . . . . . . . . . . . . . . . 27 Qualit´e du maillage pour les simulations num´eriques . . . . . . 29 2.2.2 Effet n´egatifs de la g´eom´etrie du mod`ele . . . . . . . . . . . . . 30 2.2.3 Gestion des caract´eristiques probl´ematiques du mod`ele . . . . . 30 Pr´e-identification . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Simplification du mod`ele . . . . . . . . . . . . . . . . . . . . . . 31 Prise en compte dans la g´en´eration du maillage . . . . . . . . . 32 Post-traitement . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.3 Maillage volumique `a base de t´etra`edres . . . . . . . . . . . . . . . . . 32 2.3.1 Maillages t´etra´edriques . . . . . . . . . . . . . . . . . . . . . . 33 Subdivision de l’espace . . . . . . . . . . . . . . . . . . . . . . . 33 Avanc´ee de front . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Delaunay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Optimisation Vorono¨ı-Delaunay . . . . . . . . . . . . . . . . . . 36 2.3.2 Maillage de mod`eles multi-mat´eriaux . . . . . . . . . . . . . . . 37 2.3.3 Maillage hybride t´etra`edres-prismes . . . . . . . . . . . . . . . 38 2.4 Maillage surfacique `a base de triangles . . . . . . . . . . . . . . . . . . 40 2.4.1 Subdivision de l’espace . . . . . . . . . . . . . . . . . . . . . . . 40 M´ethodes octree . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Diagramme de Vorono¨ı restreint barycentrique . . . . . . . . . 40 2.4.2 Maillage de surfaces avec garanties . . . . . . . . . . . . . . . . 41 2.5 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3 Contribution : El´ements d’´evaluation de la complexit´e g´eom´etrique des mod`eles structuraux 43 3.1 Motivations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 3.2 Sources de complexit´e . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.2.1 Nombre d’objets g´eologiques . . . . . . . . . . . . . . . . . . . 44 3.2.2 Interactions entre les objets . . . . . . . . . . . . . . . . . . . . 46 Couches stratigraphiques conformes . . . . . . . . . . . . . . . 46 Non-conformit´es stratigraphiques . . . . . . . . . . . . . . . . . 46 Failles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.3 Mesures g´en´eralistes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.3.1 Mesures globales de complexit´e . . . . . . . . . . . . . . . . . . 47 3.3.2 Mesures dans un voisinage . . . . . . . . . . . . . . . . . . . . . 48 3.4 Mod`eles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.5 R´esultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.5.1 Mesures globales . . . . . . . . . . . . . . . . . . . . . . . . . . 51 3.5.2 Mesures locales . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 M´ethode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Mesures locales de connectivit´e . . . . . . . . . . . . . . . . . . 52 R´esultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 3.6 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 3.6.1 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53TABLE DES MATIERES ` ix 3.6.2 Perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 4 Contribution : Remaillage des surfaces de mod`eles structuraux `a une r´esolution donn´ee 57 4.1 Motivations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 4.2 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 4.3 Optimisation de l’´echantillonnage du mod`ele . . . . . . . . . . . . . . 59 4.3.1 Optimisation CVT . . . . . . . . . . . . . . . . . . . . . . . . . 59 4.3.2 Optimisation de la position des sites le long des bords . . . . . 60 4.3.3 Impl´ementation . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 4.4 Construction du maillage . . . . . . . . . . . . . . . . . . . . . . . . . 61 4.4.1 Remaillage des composantes connexes surfaciques . . . . . . . . 61 4.4.2 Remaillage des lignes de bord . . . . . . . . . . . . . . . . . . . 62 4.4.3 Remaillage des coins . . . . . . . . . . . . . . . . . . . . . . . . 63 4.4.4 Impl´ementation . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 4.4.5 Am´eliorations du maillage . . . . . . . . . . . . . . . . . . . . . 64 4.5 R´esultats pour 12 mod`eles structuraux . . . . . . . . . . . . . . . . . . 66 4.6 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 4.6.1 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 4.6.2 Perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 5 Contribution : Vers un mailleur volumique hybride `a partir d’un diagramme de Vorono¨ı 77 5.1 Motivations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 5.2 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 5.3 Construction des cellules hybrides . . . . . . . . . . . . . . . . . . . . . 79 5.3.1 D´etermination des cellules `a construire . . . . . . . . . . . . . . 81 5.3.2 Cellules duales des segments . . . . . . . . . . . . . . . . . . . 81 5.3.3 Cellules duales des points . . . . . . . . . . . . . . . . . . . . . 81 Ajout des sommets . . . . . . . . . . . . . . . . . . . . . . . . . 82 Ajout des arˆetes . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Ajout des facettes . . . . . . . . . . . . . . . . . . . . . . . . . 83 5.4 Traitement des cellules invalides . . . . . . . . . . . . . . . . . . . . . . 83 5.5 R´esultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 5.6 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 5.6.1 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 5.6.2 Perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Conclusion 91Introduction Mod`eles g´eologiques : des cartes aux mod`eles num´eriques en 3D Comprendre l’organisation en trois dimensions des roches dans le sous-sol est indispensable dans des domaines comme la prospection, l’exploitation, la protection des ressources naturelles min´erales ou ´energ´etiques. Except´e sur les affleurements, le sous-sol est invisible et nous disposons de peu d’information pour comprendre son organisation. C’est dans cet objectif qu’est d´etermin´ee une carte g´eologique, elle indique, en tout point d’une r´egion, quelle est la nature des roches `a la surface de la Terre (figure 1a). Cette carte est ´etablie par les g´eologues en interpolant les observations de terrain. L’organisation des roches en profondeur est caract´eris´ee par des coupes verticales dans le sous-sol. Nous voyons que, dans la zone repr´esent´ee sur la figure 1b, le sous-sol est stratifi´e. Les diff´erentes couches sont s´epar´ees par des lignes appel´ees horizons et sont d´ecoup´ees par deux failles. Les couches 2, 3 et 4 ont ´et´e en partie ´erod´ees. Cet ´etat actuel est le r´esultat d’une ´evolution que les g´eologues essaient de reconstituer lors de la d´etermination de ces cartes et coupes (figure 2). Les cartes et les coupes g´eologiques sont des mod`eles de la r´ealit´e ; elles en sont des repr´esentations sch´ematiques en deux dimensions. Cependant cette r´ealit´e est tridimensionnelle et ce sont les mod`eles structuraux qui donnent en chaque point du sous-sol le type de roche pr´esent (figure 3). Leur construction et leur repr´esentation sont informatiques. Il est possible, comme pour une photo num´erique, dans laquelle chaque pixel est associ´e `a une couleur, de d´ecouper un mod`ele structural en voxels (cubes ´el´ementaires) auxquels est associ´e un type de roche (figure 3a). Une alternative est de repr´esenter seulement les surfaces (horizons, failles, ´erosions, etc) d´elimitant les diff´erents volumes rocheux. Cette repr´esentation, dite par fronti`eres 1 , permet de mod´eliser une tr`es grande partie des configurations complexes rencontr´ees dans la nature. Des maillages pour visualiser et ´etudier le comportement des mod`eles Quelle que soit la repr´esentation choisie du mod`ele structural, un maillage est utilis´e pour l’enregistrer et le visualiser en trois dimensions sur un ordinateur. Un maillage d’un objet est d´efini comme un ensemble d’´el´ements g´eom´etriques simples (carr´es, triangles, cubes, t´etra`edres, etc) qui ne s’intersectent pas et dont l’union est une approximation de l’objet. Il est d´efini par les sommets de ces ´el´ements et par les r`egles permettant de relier ces sommets. Par exemple, le d´ecoupage en pav´es 1. Boundary Representation ou B-Rep.2 Introduction Figure 1 – Modeles g ` eologiques en deux dimensions : une carte et une coupe. ´ La carte donne, en vue de dessus, le type des roches qui affleurent `a la surface terrestre, la coupe en donne une vue en profondeur. Les lignes (surfaces en 3D figure 3) s´eparant deux couches diff´erentes sont appel´ees les horizons. Ces horizons sont pliss´es et d´ecoup´es par deux failles. La ligne d’´erosion dessine la topographie de la zone. Figure 2 – Vue en coupe de l’evolution des couches de la coupe de la figure ´ 1 depuis leur dep´ ot. ˆIntroduction 3 Figure 3 – Deux representations d’un mod ´ ele structural en trois dimensions. ` Ce mod`ele synth´etique correspond `a la carte et `a la coupe de la figure 1. (a) Repr´esentation volumique : le mod`ele est d´ecoup´e en pav´es, chacun a la couleur de la couche associ´ee. (b) Repr´esentation par limites : seules les surfaces d´elimitant les volumes rocheux sont repr´esent´ees. Les surfaces qui d´elimitent la zone d’int´erˆet (dite aussi boˆıte) ne sont pas affich´ees.4 Introduction Figure 4 – Deux defis pour la g ´ en´ eration de maillage des mod ´ eles structuraux. ` (a) La couche bleue est localement tr`es fine et ne peut pas dans cette zone ˆetre maill´ee avec des triangles de plus de 5m de cˆot´e. (b) La couche rouge fait un angle de 16 degr´es, pour respecter ses limites au moins un triangle du maillage doit avoir un angle de 16 degr´es. du mod`ele structural vu figure 3a est un maillage. Si la taille de ces pav´es est trop importante, l’image des structures g´eologiques est, de la mˆeme mani`ere qu’une photo num´erique `a basse r´esolution, impr´ecise. En plus de repr´esenter les mod`eles, les maillages sont n´ecessaires pour r´epondre `a des probl`emes d’ing´enierie, par exemple l’estimation de l’impact du creusement d’un tunnel sur la stabilit´e des roches l’entourant. En utilisant les th´eories physiques ad´equates, ce probl`eme peut ˆetre transform´e en probl`eme math´ematique. Ce dernier ne peut g´en´eralement pas ˆetre r´esolu de mani`ere exact et eu maillage est utilis´e pour en d´eterminer une version approch´ee qui sera r´esolue num´eriquement. Ceci est le second objectif des maillages : permettre de r´ealiser les simulations num´eriques pour calculer l’approximation d’un comportement naturel. D´efis de la g´en´eration de maillage - Probl´ematique Lorsque les hypoth`eses sur lesquelles reposent les ´etapes permettant de passer du probl`eme d’ing´enierie au r´esultat ne sont pas v´erifi´ees, l’´ecart entre le r´esultat de la simulation num´erique et le comportement r´eel peut ˆetre important. Afin d’obtenir des r´esultats fiables dans le temps imparti, le maillage doit repr´esenter le mod`ele assez pr´ecis´ement et respecter un ensemble de crit`eres de qualit´e sur le nombre, l’aspect et la taille de ses ´el´ements. Ces deux conditions sont contradictoires et il n’est pas toujours possible de mailler les composantes du mod`ele qui ont un impact sur la solution tout en respectant ces crit`eres de qualit´e. Par exemple, un mod`ele dans lequel une couche a localement une ´epaisseur de 5m et pour lequel il faut g´en´erer un maillage ayant des ´el´ements dont la taille minimale requise des arˆetes est 10m est impossible (figure 4a). De mˆeme, il ne sera pas possible de g´en´erer des ´el´ements ayant tous des angles sup´erieur `a 30 degr´es si le mod`ele contient un angle de 16 degr´es (figure 4b). Dans ces cas, un choix est n´ecessaire pour obtenir le meilleur compromis entreIntroduction 5 d’une part la pr´ecision, la fiabilit´e, la robustesse des r´esultats obtenus, et d’autre part les besoins en m´emoire et le temps n´ecessaires au calcul. A priori, la relaxation des contraintes sur le maillage (plus grand nombre d’´el´ements, ´el´ements plus petits) accroˆıt les temps de calcul et les besoins en m´emoire, mais augmente la pr´ecision du r´esultat. La modification de la g´eom´etrie du mod`ele (diminution de son niveau de d´etail) permet de le mailler avec moins d’´el´ements, tout en simplifiant des composantes qui peuvent ˆetre n´efastes pour la r´esolution num´erique, mais risque de diminuer la pr´ecision des r´esultats. Id´ealement, pour faire le meilleur choix, il faudrait comparer les r´esultats obtenus pour diff´erents maillages `a diff´erents niveaux de d´etail du mod`ele. Ceci implique de disposer d’outils automatiques pour (1) modifier et mailler un mod`ele `a une r´esolution donn´ee avec des ´el´ements de la qualit´e souhait´ee et (2) ´evaluer les ´ecarts entre le r´esultat et le comportement r´eel. Dans cette th`ese, nous nous int´eressons au premier point et apportons des ´el´ements de r´eponses aux questions suivantes : – Comment caract´eriser le niveau de d´etail d’un mod`ele g´eologique en trois dimensions et comment identifier ses petites caract´eristiques g´eom´etriques ? – Comment modifier automatiquement le niveau de d´etail d’un mod`ele et simplifier ses petites caract´eristiques ? – Comment mailler un mod`ele (surfaces et volumes) lorsque la taille requise pour les ´el´ements est sup´erieure `a la r´esolution du mod`ele ? D´emarche Nous utilisons une subdivision du mod`ele structural par un diagramme de Vorono¨ı pour analyser la g´eom´etrie et la connectivit´e du mod`ele et g´en´erer un maillage de ses surfaces et de ses r´egions volumiques (figure 5). Un diagramme de Vorono¨ı est d´efini pour un ensemble de points, il associe `a chaque point la partie du mod`ele plus proche de ce point que des autres points (la cellule de Vorono¨ı). A partir du diagramme de ` Voronoi et de ses intersections avec les fronti`eres du mod`ele, un maillage des surfaces et des r´egions volumiques du mod`ele peut ˆetre d´etermin´e (figure 5). Nous proposons des strat´egies pour construire un maillage quelles que soient les configurations des intersections entre le mod`ele et le diagramme de Vorono¨ı. En effet, selon la taille des cellules de Vorono¨ı, les intersections avec les surfaces d´efinissant le mod`ele sont plus ou moins compliqu´ees (figure 5). Cette approche nous permet de privil´egier le contrˆole du nombre d’´el´ements dans le maillage final et d’autoriser des modifications du mod`ele (figure 5). L’´ecart entre la r´esolution du mod`ele et celle du maillage est ainsi r´eduit. Apr`es avoir d´efini les objets g´eom´etriques d´eriv´es du diagramme de Vorono¨ı, fondements de ces travaux (chapitre 1), nous pr´ecisons les objectifs des maillages et passons en revue les m´ethodes de g´en´eration de maillage triangulaire et t´etra´edrique (chapitre 2). Nous proposons dans le chapitre 3 des mesures de la complexit´e g´eom´etrique des mod`eles structuraux dont le but est de caract´eriser pr´ecis´ement les zones compliqu´ees `a mailler dans un mod`ele. Puis, nous proposons une m´ethode de remaillage des surfaces d’un mod`ele structural (chapitre 4) qui permet de contrˆoler le nombre d’´el´ements dans le maillage, de simplifier le mod`ele et de g´en´erer des triangles aussi ´equilat´eraux que possible. Cette m´ethode est ´etendue dans le chapitre 5 pour6 Introduction Figure 5 – Utilisation d’une subdivision par un diagramme de Vorono¨ı pour analyser, modifier et mailler un modele par fronti ` ere. ` Cette th`ese se concentre sur la construction d’un maillage dans le cas o`u la subdivision du mod`ele par le diagramme de Vorono¨ı est grossi`ere et o`u les intersections avec les bords sont potentiellement complexes. Notre travail vise `a g´en´erer soit un maillage du mod`ele simplifi´e (1) soit un maillage du mod`ele complet (2) en limitant le nombre d’´el´ements.Introduction 7 g´en´erer un maillage volumique constitu´e d’´el´ements de diff´erents types du mod`ele structural. Des prismes et pyramides sont utilis´es pour remplir les zones tr`es fines du mod`ele, tandis que le reste du mod`ele est rempli avec des t´etra`edres. R´esum´e des contributions Dans cette th`ese nous pr´esentons les contributions suivantes : – des mesures aidant `a identifier les petites caract´eristiques g´eom´etriques des mod`eles g´eologiques. Elles sont d´ecrites dans le chapitre 3. Ces travaux ne sont, pour l’instant, pas publi´es ; – une m´ethode de construction d’un remaillage des surfaces d’un mod`ele d´efini par fronti`eres `a partir de l’intersection d’un diagramme de Vorono¨ı avec ces fronti`eres. Ces travaux sont pr´esent´es dans le chapitre 4, et publi´es dans Pellerin et al. [2014], une version pr´eliminaire ayant ´et´e pr´esent´ee dans Pellerin et al. [2011] ; – une strat´egie de construction d’un maillage hybride (prismes, pyramides et t´etra`edres) des r´egions d’un mod`ele d´efini par fronti`ere `a partir d’un diagramme de Vorono¨ı et de son intersection avec les fronti`eres du mod`ele qui est d´ecrite dans le chapitre 5. Une version courte de ces travaux a ´et´e pr´esent´ee dans Pellerin et al. [2012]. Publications associ´ees `a cette th`ese J. Pellerin, B. L´evy et G. Caumon : Topological control for isotropic remeshing of nonmanifold surfaces with varying resolution : application to 3D structural models. In Proc. IAMG. cogeo@oeaw-giscience, sept. 2011. J. Pellerin, B. L´evy et G. Caumon : A Voronoi-based hybrid meshing method. In International Meshing Roundtable, Research Notes, oct. 2012. J. Pellerin, B. L´evy, G. Caumon et A. Botella : Automatic surface remeshing of 3D structural models at specified resolution : A method based on Voronoi diagrams. Computers & Geosciences, 62(0):103 – 116, 2014.Chapitre 1 Objets g´eom´etriques fondamentaux Dans ce chapitre nous d´efinissons les objets g´eom´etriques utilis´es par de nombreuses m´ethodes de g´en´eration de maillage et sur lesquels ces travaux de th`ese sont fond´es. Ils sont li´es au diagramme de Vorono¨ı, une structure fondamentale en g´eom´etrie, voir notamment Aurenhammer [1991] et Okabe et al. [2009]. 1.1 Diagramme de Vorono¨ı et triangulation de Delaunay 1.1.1 Diagramme de Vorono¨ı Un diagramme de Vorono¨ı [Vorono¨ı, 1908] est un d´ecoupage de l’espace en plusieurs r´egions `a partir d’un ensemble de points, appel´es sites et not´es S. Chaque site, p ∈ S, correspond `a une r´egion, appel´ee cellule de Vorono¨ı, qui contient les points de l’espace plus proches de ce site p que de n’importe quel autre site (figure 1.1). Formellement, dans le cas o`u l’espace consid´er´e est R 2 et o`u la proximit´e entre un point x et un site p est mesur´ee par la distance euclidienne entre ces deux points ||x − p||, la cellule de Vorono¨ı de p est d´efinie par : Vp = {x ∈ R 2 , ||x − p|| ≤ ||x − q||, q ∈ S} (1.1) L’ensemble des cellules de Vorono¨ı forme le diagramme de Vorono¨ı de S (fi- gure 1.1a). Ces cellules sont des polygones ferm´es convexes born´es ou non qui recouvrent l’espace sans se chevaucher. Leurs arˆetes, appel´ees arˆetes de Vorono¨ı, sont les points `a ´egale distance entre deux sites voisins. Les sommets des cellules, ou sommets de Vorono¨ı, sont les points `a ´egale distance de trois sites voisins (figure 1.2). Ces d´efinitions s’´etendent en dimension sup´erieure. Nous nous arrˆetons dans cette th`ese `a la dimension trois o`u les r´egions associ´ees aux sites sont des poly`edres (figure 1.3). Leurs faces, les facettes de Vorono¨ı, sont les points `a ´egale distance de deux sites voisins ; elles sont contenues par le plan m´ediateur de ces deux sites. Les arˆetes sont partag´ees par trois cellules de Vorono¨ı et les sommets par quatre cellules (figure 1.4a). Il est important de noter que ce que nous venons de d´ecrire est correct dans le10 Chapitre 1. Objets geom ´ etriques fondamentaux ´ Figure 1.1 – Diagramme de Vorono¨ı et triangulation de Delaunay correspondante dans le plan. (a) Le diagramme de Vorono¨ı des 21 sites (points noirs) est un ensemble de 21 polygones convexes qui recouvrent le plan. Les cinq cellules intersectant le bord du carr´e sont infinies. (b) La triangulation de Delaunay correspondante triangule l’enveloppe convexe des sites. Figure 1.2 – Relation duale Vorono¨ı-Delaunay en 2D. Le sommet de Vorono¨ı V est partag´e par trois cellules de Vorono¨ı : A, B, et C. Il correspond `a un triangle de Delaunay ABC, dont les sommets sont les sites et dont chacun des trois cˆot´es correspondent `a une arˆete de Vorono¨ı (num´eros 1 `a 3). cas o`u les sites S sont en position g´en´erale, c’est-`a-dire qu’il n’y a pas quatre sites ou plus cocycliques dans le mˆeme plan, et cinq points ou plus cosph´eriques dans l’espace. Ces cas d´eg´en´er´es disparaissent avec une perturbation infime de la position des sites, qui est ´eventuellement r´ealis´ee de mani`ere symbolique [Edelsbrunner et Mucke ¨ , 1990]. Dans ce qui suit, nous supposerons que les sites sont en position g´en´erale. Remarque : Il existe de tr`es nombreuses g´en´eralisations du diagramme de Vorono¨ı obtenues en changeant la fonction de distance entre un site et un point de l’espace, la nature des sites etc, voir les revues de [Okabe et al., 2009] et Aurenhammer [1991]. Il est ´egalement possible de travailler dans des espaces non-euclidiens, par exemple celui d´efini par une surface plong´ee dans un espace 3D. 1.1.2 Triangulation de Delaunay Un second objet, particuli`erement int´eressant dans un contexte de g´en´eration de maillage, peut ˆetre construit depuis un diagramme de Vorono¨ı : la triangulation de Delaunay. Nous avons vu que dans le plan, en position g´en´erale, chaque sommet de Vorono¨ı est `a ´egale distance de trois sites. Le triangle qui relie ces sites est dit de Delaunay et la triangulation de Delaunay est l’ensemble des triangles correspondantsDiagramme de Vorono¨ı et triangulation de Delaunay 11 Figure 1.3 – Diagramme de Vorono¨ı en 3D. (a) 200 sites sont distribu´es dans un pav´e. (b) Coupe solide dans le diagramme de Vorono¨ı des sites recoup´e par les bords du pav´e. (c) Une cellule de Vorono¨ı. A B C D V A B C D V 1 2 3 4 (a) (b) (c) 6 1 2 4 3 5 A B C D V Figure 1.4 – Relation duale Vorono¨ı-Delaunay en 3D. (a) Le sommet de Vorono¨ı V est `a ´egale distance des sites des cellules A, B, C et D. (b) A chaque facette de Vorono¨ı contenant V (num´eros 1 `a 6) correspond un segment reliant les sites des 2 cellules partageant la facette. (c) A chaque arˆete de Vorono¨ı contenant V (num´eros 1 `a 4) correspond un triangle reliant les sites des 3 cellules partageant cette arˆete.12 Chapitre 1. Objets geom ´ etriques fondamentaux ´ aux sommets de Vorono¨ı (figure 1.1b). La triangulation de Delaunay des sites S est dite duale du diagramme de Vorono¨ı de S car, `a chaque cellule de Vorono¨ı correspond un sommet de la triangulation, `a chaque arˆete de Vorono¨ı correspond une arˆete de la triangulation et `a chaque sommet de Vorono¨ı correspond un triangle de Delaunay (figure 1.2). Comme le diagramme de Vorono¨ı, le concept de triangulation de Delaunay se g´en´eralise en dimension sup´erieure. En trois dimensions, la t´etra´edrisation de Delaunay contient une arˆete pour chaque facette de Vorono¨ı, un triangle pour chaque arˆete de Vorono¨ı et un t´etra`edre pour chaque sommet de Vorono¨ı (figure 1.4). La triangulation de Delaunay d’un ensemble de points S peut ˆetre d´efinie ind´ependamment du diagramme de Vorono¨ı `a partir du crit`ere de la boule vide ou crit`ere de Delaunay [Delaunay, 1934] qui stipule que, dans R 2 , un triangle est de Delaunay si son cercle circonscrit ne contient aucun autre point de S que ses sommets. Les propri´et´es math´ematiques de la triangulation de Delaunay en ont fait un objet de choix en g´en´eration de maillage (partie 2.3). 1. Les boules ouvertes circonscrites aux simplexes 1 de la triangulation de Delaunay ne contiennent aucun sommet de S. Ce crit`ere de la boule vide ou de Delaunay est associ´e `a un lemme qui donne que, pour une triangulation quelconque des points S, si le crit`ere de la boule vide est vrai pour toute paire d’´el´ements adjacents, alors il l’est pour tous les ´el´ements [Delaunay, 1934]. 2. Pour tout ensemble de points S en position g´en´erale, la triangulation de Delaunay existe et est unique. 3. La triangulation de Delaunay maximise l’angle minimal de la triangulation de S. 1.1.3 Calcul du diagramme de Vorono¨ı Le calcul du diagramme de Vorono¨ı d’un ensemble de points peut se faire soit directement, soit en calculant la triangulation de Delaunay duale. De nombreuses m´ethodes ont ´et´e d´evelopp´ees, voir les synth`eses de Fortune [1992], Okabe et al. [2009], Boissonnat et Yvinec [1995] et les impl´ementations de TetGen 2 ou CGAL 3 . 1.2 Diagramme de Vorono¨ı et triangulation de Delaunay restreints 1.2.1 Diagramme de Vorono¨ı restreint D´efinitions Un diagramme de Vorono¨ı d´ecoupe en r´egions convexes l’espace sur lequel il est d´efini. Nous nous int´eressons ici au d´ecoupage d’un objet inclus dans cet espace par ce diagramme de Vorono¨ı : le diagramme de Vorono¨ı restreint 4 . Pour un ensemble 1. Les triangles dans R 2 et les t´etra`edres dans R 3 . 2. http://wias-berlin.de/software/tetgen/ 3. http://www.cgal.org/ 4. RVD pour Restricted Voronoi Diagram en anglaisDiagramme de Vorono¨ı et triangulation de Delaunay restreints 13 de sites S et un objet Ω le diagramme de Vorono¨ı restreint est d´efini comme l’intersection du diagramme de Vorono¨ı de S avec Ω 5 . Deux exemples sont donn´es sur les figures 1.5b et 1.5e. L’intersection d’une cellule de Vorono¨ı, Vp, avec l’objet Ω est appel´ee cellule de Vorono¨ı restreinte de p `a Ω et est d´efinie par Vp∩Ω = Vp ∩ Ω. La dimension de la cellule restreinte d´epend de la dimension de l’objet. Les cellules restreintes `a l’´etoile sont surfaciques (figure 1.5b), tandis que celles restreintes `a son contour sont lin´eaires (figure 1.5e). L’intersection d’une arˆete de Vorono¨ı avec l’objet est une arˆete de Vorono¨ı restreinte, l’intersection d’une facette de Vorono¨ı avec l’objet est une facette de Vorono¨ı restreinte et l’intersection entre un sommet de Vorono¨ı et l’objet est un sommet de Vorono¨ı restreint. Contrairement aux ´el´ements d’un diagramme de Vorono¨ı, ceux d’un diagramme de Vorono¨ı restreint peuvent avoir plus d’une composante connexe, c’est- `a-dire qu’il existe au moins deux points dans un ´el´ement qui ne peuvent pas ˆetre reli´es par un chemin contenu dans cet ´el´ement. Par exemple, dans le cas du diagramme de Vorono¨ı restreint au contour de l’´etoile, figure 1.5e, les cellules restreintes au milieu des branches ont deux composantes connexes - deux segments. Cas d´eg´en´er´es Nous avons vu sur l’exemple de l’´etoile, figure 1.5, que la dimension des cellules de Vorono¨ı restreintes est la mˆeme que celle de l’´etoile, `a savoir deux. Ceci est vrai seulement si les intersections d´eg´en´er´ees entre la cellule de Vorono¨ı et l’objet (´egales `a un sommet ou `a une arˆete de Vorono¨ı) sont exclues (figure 1.6). Cette remarque se g´en´eralise pour les intersections de chaque ´el´ement du diagramme de Vorono¨ı (cellule, facette, arˆete et sommet) avec l’objet. Dans un espace de dimension d, un ´el´ement du diagramme de Vorono¨ı (dimension l) intersecte g´en´eriquement un objet de dimension m si l’intersection a la dimension attendue : m + l − d [Edelsbrunner et Shah, 1997]. Dans R 3 , les intersections des cellules, facettes, arˆetes et sommets de Vorono¨ı avec une surface doivent respectivement ˆetre de dimension deux (des morceaux de surface), un (des morceaux de lignes), z´ero (des points) et vide. Les intersections entre un sommet de Vorono¨ı et une quelconque ligne ou surface sont donc exclues. D’apr`es Edelsbrunner et Shah [1997], ces hypoth`eses sont raisonnables et nous supposerons qu’elles sont v´erifi´ees dans ce qui suit. Toutefois, nous verrons `a la fin du chapitre 4 que la plupart des probl`emes rencontr´es lors du calcul d’un maillage `a partir d’un diagramme de Vorono¨ı restreint sont li´es `a des configurations proches de ces configurations d´eg´en´er´ees. 1.2.2 Calcul du diagramme de Vorono¨ı restreint La notion de diagramme de Vorono¨ı restreint telle que nous l’avons pr´esent´ee recouvre un grand nombre de cas en termes de dimension de l’objet. Lorsque qu’un objet est d´efini par ces fronti`eres et que sa dimension est celle de l’espace de travail, le calcul de l’intersection entre l’objet et le diagramme de Vorono¨ı d’un ensemble de points est assez d´elicat. L´evy et Liu [2010] proposent une m´ethode en trois dimensions, 5. Dans d’autres travaux, dans le cas o`u l’objet consid´er´e et l’espace le contenant sont de mˆeme dimension (figure 1.5c) le diagramme de Vorono¨ı restreint est aussi appel´e diagramme de Vorono¨ı coup´e (clipped Voronoi diagram en anglais).14 Chapitre 1. Objets geom ´ etriques fondamentaux ´ Figure 1.5 – Diagramme de Vorono¨ı restreint et triangulation de Delaunay restreinte. (b) Diagramme de Vorono¨ı restreint `a une ´etoile (a). (c) La triangulation de Delaunay restreinte correspondante maille l’´etoile. (e) Diagramme de Vorono¨ı restreint au contour de l’´etoile (d). (f) La triangulation de Delaunay restreinte correspondante est un sous-ensemble de celle `a l’´etoile (c). Elle ne contient pas le site au centre de l’´etoile, car la cellule de Vorono¨ı de ce site ne recoupe pas le contour. Figure 1.6 – Cas deg´ en´ er´ es d’intersection entre une cellule de Vorono ´ ¨ı et un rectangle. La cellule A intersecte le rectangle en un unique point. La cellule B intersecte le rectangle le long d’une de ses arˆetes.Diagramme de Vorono¨ı et triangulation de Delaunay restreints 15 mais elle est cependant peu robuste aux configurations d´eg´en´er´ees [Merland, 2013]. Quand l’objet a une dimension inf´erieure `a celle du diagramme de Voronoi, le calcul est plus ais´e. Dans cette th`ese, nous nous int´eressons au diagramme de Vorono¨ı restreint `a une surface triangul´ee en trois dimensions. Pour le calculer, nous utilisons la m´ethode initialement d´evelopp´ee par Yan et al. [2009] et am´elior´ee par Nivoliers [2012]. L’op´eration de base est le calcul de l’intersection entre un triangle de la surface et une cellule de Vorono¨ı. Comme une cellule de Vorono¨ı peut ˆetre d´efinie par l’intersection des demi-plans m´ediateurs entre son site et ses voisins les plus proches, il suffit de d´ecouper successivement le triangle par ces plans. Pour calculer l’intersection entre un triangle et une cellule de Vorono¨ı une seule fois, et acc´el´erer le calcul, plusieurs strat´egies de propagation sont possibles, elles sont d´ecrites en d´etail par Nivoliers [2012]. 1.2.3 Triangulation de Delaunay restreinte De la mˆeme mani`ere que la triangulation de Delaunay est duale du diagramme de Vorono¨ı, la triangulation de Delaunay restreinte est d´efinie comme le dual du diagramme de Vorono¨ı restreint Edelsbrunner et Shah [1997]. Dans R 2 , elle contient un sommet pour chaque cellule restreinte, un segment pour chaque arˆete restreinte et un triangle pour chaque sommet de Vorono¨ı restreint (figures 1.5c et f). La triangulation de Delaunay restreinte est donc constitu´ee des ´el´ements de la triangulation de Delaunay qui sont duaux d’´el´ements du diagramme de Vorono¨ı intersectant l’objet consid´er´e. Ses triangles, arˆetes et sommets (figure 1.5c) sont un sous-ensemble de la triangulation de Delaunay (figure 1.1). En effet, par construction, le diagramme de Vorono¨ı restreint est un sous-ensemble du diagramme de Vorono¨ı. Consid´erons `a pr´esent les diagrammes de Vorono¨ı restreints `a deux objets A et B tels que A inclus dans B. Le diagramme de Vorono¨ı restreint `a A est un sousensemble du diagramme de Vorono¨ı restreint `a B et il en est de mˆeme pour les triangulations de Delaunay restreintes. Les mˆemes sites peuvent donc ˆetre utilis´es pour trianguler de mani`ere conforme, c’est-`a-dire de telle sorte que les int´erieurs des deux triangulations ne s’intersectent pas, deux objets de dimensions potentiellement diff´erentes. Par exemple, les segments de la triangulation de Delaunay restreinte au contour de l’´etoile (figure 1.5f) sont inclus dans la triangulation de Delaunay restreinte `a l’´etoile (figure 1.5c). Lorsque certains ´el´ements de la triangulation de Delaunay restreinte ne sont pas contenus dans le bord d’un ´el´ement de dimension sup´erieure, par exemple les segments dans les branches de l’´etoile figure 1.5c, la triangulation de Delaunay restreinte est un objet multi-dimensionnel. Elle peut alors ˆetre vue comme une version simplifi´ee de l’objet initial. 1.2.4 Topologie de la triangulation de Delaunay restreinte La propri´et´e de la boule topologique, introduite par Edelsbrunner et Shah [1997], d´ecrit un crit`ere qui garantit que la triangulation de Delaunay restreinte a la mˆeme topologie que l’objet initial (est hom´eomorphe) et n’en est pas une version simplifi´ee.16 Chapitre 1. Objets geom ´ etriques fondamentaux ´ Figure 1.7 – Boules topologiques et espaces variet´ es dans le plan. ´ D´efinitions pr´eliminaires Les espaces topologiques X et Y sont hom´eomorphes, s’il existe une application bijective de X dans Y continue et dont l’inverse est continue. Une k-boule ouverte est un espace hom´eomorphe `a R k (figure 1.7). Une k-demi boule ouverte est un espace hom´eomorphe au demi-espace Hk = {x = (ξi) ∈ R k | ξi ≥ 0}. Une k-boule ferm´ee est un espace hom´eomorphe `a B k = {x ∈ R k | ||x − O|| ≤ 1}. Le voisinage d’un sous ensemble Y inclus dans X est un sous-ensemble de X qui contient Y. L’espace X inclus dans R d est un k-vari´et´e sans bord si tous ses points ont un voisinage de k-boule ouverte, c’est un k-vari´et´e avec bord si tous ses points ont un voisinage de k-boule ouverte ou de k-demi boule ouverte (figure 1.7). L’ensemble des points qui n’ont pas une k-boule ouverte comme voisinage forme le bord de X, et l’ensemble des points qui ont un voisinage de k-boule ouverte forme l’int´erieur. Propri´et´e de la boule topologique Un ensemble de points de R d fini non d´eg´en´er´e, S, a la propri´et´e de la boule topologique [Edelsbrunner et Shah, 1997] pour X ⊆ R d , un m-vari´et´e ferm´e et born´e, si pour chaque l ≤ m et chaque sous-ensemble de m + 1 − l points T ⊆ S : – l’intersection entre X et l’ensemble des points communs aux cellules de Vorono¨ı des sites T est soit vide soit une l-boule ferm´ee ; – l’intersection entre le bord de X et l’ensemble des points communs aux cellules de Vorono¨ı des sites est soit vide soit une (l − 1)-boule ferm´ee. Ceci signifie qu’un ensemble S non-d´eg´en´er´e de points a la propri´et´e de la boule topologique pour une surface vari´et´e Ω plong´ee dans R 3 si : toutes cellules de Vorono¨ı restreintes (respectivement les facettes et arˆetes) de S `a Ω sont des 2-boules ferm´ees, (respectivement des 1-boules et points) et si toutes les cellules de Vorono¨ı restreintes (respectivement les facettes et arˆetes) de S aux bords de Ω sont des 1-boules ferm´ees (respectivement des points et l’ensemble vide) (figure 1.8).Optimisation des diagrammes de Vorono¨ı 17 Figure 1.8 – Cellules de Vorono¨ı verifiant et ne v ´ erifiant pas la propri ´ et´ e de ´ la boule topologique. Les cellules A, B, C, G ont deux composantes connexes. Les cellules D et F sont bien des disques, mais leurs intersections avec le bord du mod`ele (ligne grise) ont deux composantes connexes. Le th´eor`eme prouv´e par Edelsbrunner et Shah [1997] donne que : pour X ⊆ R d un compact vari´et´e, avec ou sans bord, et pour S ⊆ R d un ensemble fini de points non d´eg´en´er´es dont le diagramme de Vorono¨ı intersecte g´en´eriquement X, si S a la propri´et´e de la boule topologique pour X alors la triangulation de Delaunay restreinte de S `a X est hom´eomorphe `a X. Une extension aux espaces non vari´et´e est ´egalement propos´ee, elle est cependant beaucoup moins utilis´ee et nous ne la d´etaillerons pas ici. Epsilon ´echantillonage Introduite par Amenta et Bern [1999], la th´eorie de l’ǫ-´echantillonage donne un moyen g´eom´etrique de garantir qu’une surface v´erifie la propri´et´e de la boule topologique. Sa d´efinition est fond´ee sur la notion d’axe m´edian. L’axe m´edian d’un objet est l’ensemble des points de l’espace qui ont plus d’un point le plus proche sur le bord de l’objet. La notion de lfs, pour local feature size, qui peut ˆetre traduit par taille des particularit´es locales, est d´efinie par Amenta et Bern [1999] comme la distance (euclidienne) minimale `a l’axe (ou surface) m´edian de l’objet 6 . Un ensemble de points S est un ǫ-´echantillonage d’une surface vari´et´e Ω si pour chaque point x de Ω, il existe un point de S `a une distance inf´erieure `a ε × lfs(x). Quand ε < 0.1, Amenta et Bern [1999] montrent que, dans ce cas, les points S ont la propri´et´e de la boule topologique pour la surface Ω. Le calcul exact de l’axe m´edian, et par cons´equence celui du lfs, est un probl`eme particuli`erement compliqu´e (voir par exemple Attali et al. [2009]) et reste un sujet de recherche. Cependant, il est possible de le d´eterminer de fa¸con approch´ee en utilisant les sommets du diagramme de Vorono¨ı d’un ensemble de points ´echantillonnant l’objet consid´er´e. 1.3 Optimisation des diagrammes de Vorono¨ı Le d´ecoupage de l’espace en cellule de Vorono¨ı obtenu `a partir d’un ensemble de sites distribu´es de mani`ere al´eatoire est ´egalement al´eatoire et la question de son 6. Une premi`ere version de lfs a ´et´e propos´ee par Ruppert [1995].18 Chapitre 1. Objets geom ´ etriques fondamentaux ´ optimisation apparaˆıt dans de nombreux probl`emes de statistiques, de traitement d’image ou de g´en´eration de maillage. Il s’agit alors d’optimiser le placement des sites afin de remplir un objectif particulier, par exemple, minimiser les distances entre chacun des sites et les points de sa cellule de Vorono¨ı. Cette optimisation tend vers un diagramme de Vorono¨ı particulier : le diagramme de Vorono¨ı barycentrique. 1.3.1 Diagramme de Vorono¨ı barycentrique Le diagramme de Vorono¨ı d’un ensemble de sites est barycentrique si chaque site se trouve au barycentre p∗ de sa cellule de Vorono¨ı Vp : p∗ = R Vp ydy R Vp dy (1.2) Si une fonction de densit´e ρ est d´efinie, le barycentre devient : p∗ = R Vp yρ(y)dy R Vp ρ(y)dy (1.3) Consid´erons `a pr´esent le probl`eme de la recherche d’une partition d’un domaine Ω en k r´egions Ωi et des positions de k points si qui minimisent la fonction : F((si , Ωi)i=1...k) = X k i=1 Z y∈Ωi ρ(y)||y − si ||2 dy (1.4) Cette fonction ´evalue la somme des carr´es des distances entre l’un des points si et les points de la r´egion Ωi qui a le mˆeme indice. Du et al. [1999] d´emontrent que, pour minimiser cette fonction, il est n´ecessaire que les r´egions Ωi soient les cellules de Vorono¨ı des points si et que chaque point soit au barycentre de sa cellule de Vorono¨ı. Ils d´emontrent ´egalement que cette fonction a les mˆemes minimums que la fonction : FCV T ((si)i=1...k) = X k i=1 Z y∈Vi ρ(y)||y − si ||2 dy (1.5) o`u Vi est la cellule de Vorono¨ı associ´ee au point si . Les param`etres de la fonction FCV T sont uniquement les positions des points, l’int´egration ´etant faite sur les cellules de Vorono¨ı Vi . Pour obtenir un diagramme de Vorono¨ı barycentrique il suffit donc de minimiser cette fonction des positions des points. En pratique, l’obtention d’un minimum global est tr`es difficile, et l’obtention d’un minimum local est souvent consid´er´ee satisfaisante. Remarque : Dans un mˆeme espace et pour un nombre de sites donn´e, il y a plusieurs diagrammes de Vorono¨ı barycentriques et tous ne minimisent pas la fonction FCV T . 1.3.2 Diagramme de Vorono¨ı barycentrique restreint Le diagramme de Vorono¨ı restreint d’un ensemble de points S `a un domaine Ω est barycentrique si chaque site p est au barycentre de sa cellule de Vorono¨ı restreinte.Optimisation des diagrammes de Vorono¨ı 19 Sites al´eatoires Diag. de Vorono¨ı RVD RDT Sites optimis´es Diag. de Vorono¨ı RVD RDT Figure 1.9 – Optimisation de 100 sites sur une sphere. ` Apr`es optimisation le diagramme de Vorono¨ı restreint est constitu´e de cellules dont la forme est proche de celle d’un hexagone r´egulier et la triangulation de Delaunay restreinte contient des triangles qui sont quasiment ´equilat´eraux. Une propri´et´e similaire `a celle du diagramme de Vorono¨ı barycentrique classique est ´etablie en int´egrant uniquement sur les cellules de Vorono¨ı restreintes et la fonction FCV T devient : FΩ = X k i=1 Z y∈Vi∩Ω ρ(y)||y − si ||2 dy (1.6) Lorsque les points si appartiennent au domaine Ω, le diagramme de Vorono¨ı barycentrique restreint est contraint [Du et al., 2003]. Parce que nous utilisons les sites pour partitionner les r´egions volumiques et les surfaces d’un mod`ele, nous utilisons un diagramme de Vorono¨ı barycentrique restreint non-contraint. Un exemple d’optimisation de sites par rapport `a une sph`ere est donn´e figure 1.9. Apr`es optimisation les triangles de la triangulation de Delaunay restreinte sont quasiment ´equilat´eraux. 1.3.3 Calculs du diagramme de Vorono¨ı barycentrique et du diagramme de Vorono¨ı barycentrique restreint Pour optimiser les positions des sites et obtenir un diagramme de Vorono¨ı barycentrique ou un diagramme de Vorono¨ı barycentrique restreint le principe est celui de nombreuses optimisations : 1. distribuer de mani`ere al´eatoire un ensemble de sites S ; 2. construire le diagramme de Vorono¨ı (restreint) de S `a l’objet ; 3. d´eterminer des nouvelles positions pour les sites S ′ ; 4. si un crit`ere de convergence est atteint, terminer l’optimisation, sinon remplacer S par les nouveaux sites S ′ et retourner `a l’´etape 2. La question est alors de calculer les nouvelles positions des sites S ′ . L’objectif est en effet d’atteindre un minimum pour la fonction FCV T (ou FΩ dans le cas restreint). Une premi`ere strat´egie est de prendre pour les nouveaux points les barycentres des20 Chapitre 1. Objets geom ´ etriques fondamentaux ´ cellules de Vorono¨ı. L’algorithme r´esultant, appel´e algorithme de Llyod [Lloyd, 1982], converge relativement lentement, c’est-`a-dire qu’il faut beaucoup d’it´erations avant d’atteindre les minimums, le d´eplacement des sites vers leurs positions optimales n’´etant pas assez rapide. Liu et al. [2009] proposent de calculer un diagramme de Vorono¨ı barycentrique en utilisant un algorithme de type Newton pour minimiser FCV T et sa version restreinte, son gradient ´etant donn´e par Iri et al. [1984] ´egal `a : dFCV T dsi = 2mi (si − pi∗) (1.7) o`u mi est le volume de la i`eme cellule de Vorono¨ı. Toutefois ce type d’optimisation requiert que la fonction FCV T soit de classe C 2 ce qui est presque toujours le cas, `a l’exception des configurations o`u deux points entrent en collision [Zhang et al., 2012] ou bien quand un plan m´ediateur co¨ıncide avec une facette du bord [Liu et al., 2009]. Les r´esultats pratiques montrent qu’une m´ethode de type Newton peut ˆetre utilis´ee pour calculer un diagramme de Vorono¨ı barycentrique ou un diagramme de Vorono¨ı barycentrique restreint [Liu et al., 2009, Yan et al., 2009, L´evy et Liu, 2010, Merland, 2013].Chapitre 2 Etat de l’art : objectifs et ´ g´en´eration des maillages 2.1 Maillages et g´eomod´elisation Comprendre l’organisation en trois dimensions des roches dans le sous-sol est indispensable dans des domaines comme la prospection, l’exploitation, et la protection des ressources naturelles min´erales ou ´energ´etiques. La mod´elisation g´eologique, ou g´eomod´elisation, participe `a cet objectif en fournissant des outils pour construire et analyser des mod`eles du sous-sol. Les maillages sont le fondement de la plupart de ces outils. 2.1.1 Qu’est ce qu’un maillage ? D´efinition Un maillage est une mani`ere de repr´esenter un objet de mani`ere informatique en l’approchant par un ensemble d’´el´ements simples. Prenons l’exemple d’une ´etoile dessin´ee dans le plan d´efinie par une infinit´e de points (figure 2.1a). En pla¸cant dix points sur son bord et en reliant ces points de mani`ere ad´equate, nous obtenons un maillage du contour de l’´etoile (figure 2.1b) ou de son int´erieur (figure 2.1c). Figure 2.1 – Maillage d’une etoile. ´ (a) Etoile d´efinie par une infinit´e de points. (b) ´ Maillage du bord de l’´etoile avec 10 sommets et 10 segments. (c) Maillage de l’int´erieur de l’´etoile avec 8 triangles.22 Chapitre 2. Etat de l’art ´ Figure 2.2 – Maillages invalide et non-conforme. (a) Maillage invalide car deux segments s’intersectent. (b) Maillage triangul´e valide mais non-conforme. Dans un cas plus g´en´eral, le maillage d’un objet est d´efini par un ensemble de sommets associ´e `a un ensemble d’´el´ements reliant ces sommets. Pour que le maillage soit valide ces ´el´ements doivent respecter trois conditions : leur union est une approximation de l’objet, leurs int´erieurs sont non vides et l’intersection des int´erieurs de deux ´el´ements est vide [Frey et George, 1999]. Les maillages des figures 2.1b, 2.1c et 2.2b sont valides alors que le maillage figure 2.2a est invalide. Les segments reliant deux sommets sont les ´el´ements de dimension 1. Les ´el´ements de dimension 2, les facettes, sont des polygones, les plus simples ´etant les triangles et les quadrilat`eres. Les ´el´ements de dimension 3 sont des poly`edres, par exemple les hexa`edres ou t´etra`edres, ils sont appel´es cellules du maillage. Le maillage est conforme si l’intersection de deux ´el´ements est, soit vide, soit un ´el´ement commun aux bords de ces deux ´el´ements (figure 2.2c). Le maillage est contraint si des ´el´ements sont impos´es au moment de sa construction, tr`es souvent ce sont des ´el´ements maillant la fronti`ere du domaine. Nous dirons que deux maillages sont conformes si le maillage r´esultant de l’union de leurs ´el´ements est conforme. Par exemple, le maillage de l’int´erieur de l’´etoile (figure 2.1c) est conforme au maillage de son contour (figure 2.1b). Types de maillages Le type d’un maillage est d´efini par le type de ses ´el´ements et par leur connectivit´e 1 . Cette derni`ere d´etermine deux classes de maillages, les maillages structur´es, qui ont une connectivit´e r´eguli`ere, c’est-`a-dire que tous leurs sommets ont le mˆeme nombre de voisins, et les maillages non-structur´es, qui n’ont pas une connectivit´e r´eguli`ere. Les maillages non-structur´es sont tr`es divers, ce sont principalement leurs ´el´ements constitutifs qui les diff´erencient ; soit ces ´el´ements sont des poly`edres quelconques, soit ils sont de types connus. Lorsque les ´el´ements sont tous du mˆeme type, le type du maillage est d´eriv´e du nom des ´el´ements : maillage quadrangulaire, maillage triangul´e, maillage h´exa´edrique, maillage t´etra´edrique, maillage prismatique, etc. Lorsque le maillage contient des ´el´ements de diff´erents types, il est dit hybride 2 . Un maillage est simplicial s’il est uniquement constitu´e de simplexes. Nous rap- 1. La connectivit´e d’un ´el´ement est d´efinie par les connexions de ses sommets. 2. Certains auteurs disent mixte.Maillages et geomod ´ elisation ´ 23 Figure 2.3 – Simplexes dans R 3 . pelons qu’un d-simplexe est un ´el´ement correspondant `a l’enveloppe convexe d’un ensemble de d + 1 sommets de R n (d ≤ n) ind´ependants de mani`ere affine 3 . L’enveloppe convexe est d´efinie comme le plus petit ensemble convexe qui contient ces sommets, c’est-`a-dire un ensemble qui contient les segments reliant chacune des paires de points de l’ensemble. Dans R 3 , les 0-simplexes sont les points, les 1-simplexes sont des segments, les 2-simplexes sont des triangles et les 3-simplexes sont des t´etra- `edres (figure 2.3). L’avantage d’un maillage simplicial est que tous ses ´el´ements sont convexes et que toutes ses facettes sont planes. 2.1.2 Objectifs des maillages en g´eomod´elisation Des maillages pour repr´esenter les mod`eles Comme nous l’avons vu dans la partie pr´ec´edente, les maillages sont tout d’abord un moyen de repr´esenter un objet par une union finie d’´el´ements g´eom´etriques simples et born´es. Les objets auxquels nous nous int´eressons dans ces travaux sont les mod`eles structuraux du sous-sol. Il y a deux grands types de repr´esentations pour ces mod`eles qui d´elimitent les diff´erents volumes rocheux. Maillage volumique Dans une repr´esentation volumique, les r´egions du mod`ele structural sont maill´ees, et chaque cellule du maillage est associ´ee `a un type de roche. Le maillage le plus simple est sans doute un d´ecoupage r´egulier du mod`ele en pav´es, similaire `a une image num´erique en trois dimensions (figure 3a). Comme nous le verrons dans la partie 2.1.3, les maillages constitu´es d’hexa`edres ou de t´etra`edres sont les plus utilis´es. Repr´esentation par fronti`eres Dans une repr´esentation d’un mod`ele par fronti`eres 4 , le mod`ele est d´ecrit par les surfaces d´elimitant ses r´egions volumiques (figures 2.4 et 3b). Cette repr´esentation est plus l´eg`ere en m´emoire, plus flexible, et permet de repr´esenter une grande partie des configurations naturelles. Elle est ´egalement particuli`erement adapt´ee au cas des mod`eles structuraux qui sont construits `a partir des surfaces g´eologiques d´elimitant les couches de roches (horizons, failles, discordances, etc). La question est alors de mailler ces surfaces, elles sont g´en´eralement triangul´ees 5 [Caumon et al., 2009]. Dans 3. Ceci exclut les cas o`u trois sommets sont align´es et ceux o`u quatre sommets sont coplanaires. 4. Aussi appel´e B-Rep, pour Boundary Representation. 5. Les surfaces, ensemble de points de coordonn´ees (x, y, z), peuvent ´egalement ˆetre repr´esent´ees de mani`ere implicite f(x, y, z) = 0, param´etrique (x, y, z) = σ(u, v) ou explicite z = f(x, y).24 Chapitre 2. Etat de l’art ´ Figure 2.4 – Regions volumiques dans un mod ´ ele d ` efini par fronti ´ eres. ` Chaque r´egion est d´efinie par ses surfaces limites. Certaines r´egions de ce mod`ele ne sont pas affich´ees (voir aussi figure 3). Figure 2.5 – Surfaces triangulees d’un mod ´ ele structural d ` efini par fronti ´ eres. ` Les surfaces d´efinissant la zone d’int´erˆet ne sont pas affich´ees. Les maillages des surfaces en contact, sont conformes. ces travaux, nous consid´erons uniquement des mod`eles dans lesquels les maillages des surfaces sont conformes (figure 2.5). Les connexions entre surfaces peuvent alors ˆetre d´etermin´ees `a partir de leur g´eom´etrie. Des maillages pour r´ealiser des simulations num´eriques En g´eomod´elisation comme en conception, un mod`ele est construit pour r´epondre `a un ensemble de questions d´ependantes du domaine d’application, par exemple : Comment les couches de roches ont-elle ´et´e d´eform´ees depuis leur formation ? Quelle est la quantit´e de p´etrole r´ecup´erable ? Quel est l’impact du creusement d’un tunnel sur la stabilit´e d’un massif ? Les processus mod´elisant la d´eformation m´ecanique des roches, les ´ecoulements de fluides, la propagation de chaleur et la propagation d’ondes sont mod´elis´es par des ´equations aux d´eriv´ees partielles, qui ne peuvent pas, dans le cas g´en´eral, ˆetre r´esolues de fa¸con exacte (analytiquement), et sont r´esolues de mani`ere approch´ee (num´eriquement). Depuis les d´ebuts des m´ethodes de r´esolutions num´eriques, les maillages leurs sont associ´es comme moyen de discr´etiser l’espace [Baker, 2005]. Ils sont un pr´e-requis `a toute simulation num´erique. Comme en g´eomod´elisation les propri´et´es (composition, porosit´e, perm´eabilit´e, etc) des roches varient au sein d’une r´egion du mod`ele, les maillages sont ´egalement le support de stockage de ces propri´et´es.Maillages et geomod ´ elisation ´ 25 Figure 2.6 – Grille curvilineaire. ´ Les hexa`edres du maillage sont d´eform´es pour ˆetre align´es sur les horizons et les failles. Les cellules adjacentes `a la surface d’´erosion (voir figure 3) sont d´eg´en´er´ees et des cellules inactives sont cr´e´ees pour que la grille soit r´eguli`ere. Nous ne d´etaillons pas ici les ´equations intervenant en g´eosciences. Les ´equations d’´ecoulement en milieux poreux sont d´ecrites dans Farmer [2005], les ´equations en g´eom´ecanique et transfert de chaleur dans Turcotte [2002], les ´equations de propagation des ondes dans Aki et Richards [2009] et les ´equations mod´elisant les processus de bassin dans Mello et al. [2009]. Nous ne donnons pas non plus de d´etails sur les diff´erents sch´emas de r´esolution num´erique des ´equations aux d´eriv´ees partielles, le lecteur est r´ef´er´e `a Allaire [2005] et Saad [2003] pour une description des principaux sch´emas num´eriques : diff´erences finies, ´el´ements finis et volumes finis. 2.1.3 Maillages volumiques utilis´es en g´eomod´elisation Si les surfaces des mod`eles g´eologiques structuraux sont souvent maill´ees par des triangles, la diversit´e des maillages volumiques est plus grande. Maillages pour la simulation d’´ecoulement La plupart des maillages d´evelopp´es en g´eomod´elisation le sont pour la simulation des ´ecoulements dans les r´eservoirs p´etroliers dont l’objectif principal est d’estimer l’´evolution de la production d’hydrocarbures. Les maillages volumiques les plus simples sont probablement les grilles cart´esiennes qui divisent r´eguli`erement les mod`eles en pav´es (figure 3). Sur ces maillages structur´es, des sch´emas num´eriques de type diff´erences finies, qui sont plus simples `a programmer et tr`es efficaces en temps d’ex´ecution peuvent ˆetre utilis´es. En revanche, comme tous leurs ´el´ements ont la mˆeme g´eom´etrie et la mˆeme connectivit´e, l’approximation des objets mod´elis´es est souvent inacceptable du point de vue de la fiabilit´e de la simulation obtenue. Grilles curvilin´eaires Les grilles curvilin´eaires ou stratigraphiques 6 sont des maillages r´eguliers, constitu´es d’hexa`edres qui sont d´eform´es afin d’ˆetre align´es sur les limites de couches g´eologiques et les failles (figure 2.6). Cependant, dans les zones o`u ces limites s’intersectent, 6. Elles sont ´egalement appel´ees corner-point grids en anglais.26 Chapitre 2. Etat de l’art ´ les cellules ne peuvent pas, en g´en´eral, ˆetre align´ees avec toutes ces couches. Des cellules d´eg´en´er´ees ou inactives sont alors cr´e´ees et certaines limites g´eologiques sont supprim´ees ou approxim´ees en marches d’escalier, notamment les failles. Ces grilles sont g´en´eralement g´en´er´ees par extrusion du maillage quadrangulaire d’un des horizons, cr´eant ainsi le nombre souhait´e de couches d’hexa`edres. Elles sont massivement utilis´ees dans un contexte d’exploration-production p´etroli`ere pour le remplissage g´eostatistique des propri´et´es des roches et la simulation d’´ecoulements (voir par exemple [Farmer, 2005]). Maillages non-structur´es Les maillages non-structur´es, dans lesquels les connectivit´e, taille, aspect et orientation des ´el´ements sont variables, permettent de mieux capturer la g´eom´etrie des mod`eles. Ils sont relativement peu utilis´es pour la simulation d’´ecoulement, puisque les matrices r´esultant de la discr´etisation n’ont g´en´eralement pas un motif r´egulier et sont plus coˆuteuses `a stocker et `a inverser. Toutefois, les simulateurs r´ecemment d´evelopp´es, comme GPRS [Cao, 2002] et IX [DeBaun et al., 2005], et les travaux sur de nouveaux sch´emas de discr´etisation (voir par exemple Eymard et al. [2012]) vont peut ˆetre changer la donne. La diversit´e des maillages non-structur´es est tr`es grande, nous en donnons ici quelques uns utilis´es pour la simulation r´eservoir. Les grilles tronqu´ees sont obtenues en d´ecoupant des grilles structur´ees, et ce, g´en´eralement par les failles sur lesquelles la grille n’est pas align´ee [Lasseter et Jackson, 2004]. Ces grilles peuvent ˆetre raffin´ees autour des zones d’int´erˆet [Sword et al., 2013] ce qui leur donne une grande flexibilit´e. Les maillages semi-structur´es, c’est-`a-dire structur´es dans au moins une direction de l’espace, sont similaires aux grilles stratigraphiques. La diff´erence est que les cellules sont construites, en extrudant, non pas des quadrangles, mais des cellules de Vorono¨ı, des triangles, ou bien un m´elange de diff´erents ´el´ements (voir par exemple Lepage [2003]). Les maillages modulaires, directement li´es `a la d´ecomposition du mod`ele en diff´erents blocs, les modules, sont constitu´es des maillages de ces diff´erentes parties. Ceci permet d’utiliser des grilles r´eguli`eres dans les zones de faibles int´erˆet et d’adapter les ´el´ements dans les zones plus importantes du point de vue de la simulation, voir par exemple Flandrin et al. [2006] et Lepage [2003]. La difficult´e est alors de g´en´erer le maillage reliant les diff´erents modules. Le dernier grand type de maillage nonstructur´e est les grilles de poly`edres convexes quelconques, voir par exemple Merland [2013]. Maillages pour d’autres applications La diversit´e des maillages pour les applications autres que la simulation r´eservoir est beaucoup plus r´eduite. Une grande partie des probl`emes m´ecaniques, thermiques ou de propagation d’ondes sont r´esolus avec des m´ethodes num´eriques de type ´el´ement fini. Les maillages utilis´es sont souvent des maillages simpliciaux car ils peuvent ˆetre adapt´es `a toutes les g´eom´etries. Les maillages t´etra´edriques sont utilis´es en restauration g´eom´ecanique, pour v´erifier la coh´erence des mod`eles ou comprendre l’´evolution temporelle de certaines structures (voir par exemple Durand-Riard et al. [2011] et Vidal-Royo et al. [2012]), pour calculer la propagation des ondes sismiques [LelievreQualite d’un maillage et d ´ efis de g ´ en´ eration ´ 27 Figure 2.7 – Utilisation d’un maillage tetra ´ edrique pour la restauration d’un ´ pli (tire de ´ Durand-Riard [2010]). L’horizon sup´erieur pliss´e est restaur´e dans son ´etat de d´epˆot, c’est-`a-dire `a l’horizontale. et al., 2012], la diffusion de la chaleur [Liu et al., 2012], ou les ´ecoulements en milieux fractur´es [Mustapha et Mustapha, 2007]. Ils sont aussi utilis´es pour mod´eliser de mani`ere implicite les horizons stratigraphiques dans un espace d´epˆot [Mallet, 2004]. Moretti [2008] et [Moretti et al., 2006] utilisent une grille curvilin´eaire align´ee sur les horizons et les failles (sans cellule d´eg´en´er´ee ou d´esactiv´ee) pour des calculs de restauration. L’utilisation de maillages hexa´edriques non-structur´es reste limit´ee puisque l’automatisation de leur g´en´eration est difficile [Owen et Shelton, 2014]. 2.2 Qualit´e d’un maillage et d´efis de g´en´eration Nous avons vu dans la partie pr´ec´edente que les maillages ont deux objectifs principaux en g´eomod´elisation : repr´esenter un mod`ele du sous-sol de mani`ere approch´ee et r´ealiser des simulations num´eriques dans ce mod`ele. Pour avoir des r´esultats fiables, rapides et robustes, le maillage doit respecter des crit`eres sur le nombre, la taille et la forme de ses ´el´ements. Nous voyons dans cette partie comment ces crit`eres de qualit´e sont parfois contradictoires, comment identifier les zones o`u ils le sont, et comment prendre en compte de mani`ere ad´equate ces zones lors de la g´en´eration du maillage. 2.2.1 Qualit´e d’un maillage La qualit´e d’un maillage est un ensemble de crit`eres qui ´evalue son influence sur la pr´ecision et l’efficacit´e des applications dans lesquels il est utilis´e. Par exemple le maillage figure 2.8b donne une estimation moins pr´ecise du p´erim`etre de l’´etoile que les maillages des figures 2.8a et c. Le maillage optimal est celui, qui pour une application donn´ee, permet d’atteindre la pr´ecision souhait´ee tout en comptant le moins d’´el´ements possible. Qualit´e d’approximation du mod`ele La qualit´e d’approximation des mod`eles par fronti`eres se r´eduit `a la qualit´e d’approximation de ces fronti`eres. Les premiers crit`eres de mesure de la fid´elit´e de la repr´esentation d’un objet (mod`ele) par un maillage sont g´eom´etriques. Il s’agit d’´evaluer28 Chapitre 2. Etat de l’art ´ Figure 2.8 – Qualite de l’approximation par maillages d’une ´ etoile. ´ Les trois maillages de la mˆeme ´etoile sont trois approximations diff´erentes. Les distances de Hausdorff entre le mod`ele initial et le maillage (d0 < d1 < d2) indiquent que la meilleure approximation g´eom´etrique est le maillage (c) dont la caract´eristique d’Euler est incorrecte car un segment manque. La topologie des maillages (a) et (b) est correcte mais l’approximation de l’´etoile est vraiment mauvaise pour le maillage en (b). Figure 2.9 – Distance de Hausdorff entre deux lignes X et Y. sup(F) d´esigne la borne sup´erieure de F et inf(F) sa borne inf´erieure.Qualite d’un maillage et d ´ efis de g ´ en´ eration ´ 29 les diff´erences de propri´et´es des surfaces du mod`ele et du maillage, calcul de distance, calcul de diff´erences de normale, de courbure, etc. [Frey et George, 1999]. Ces diff´erences peuvent ˆetre ´evalu´ees localement pour chaque sommet, arˆete ou triangle, ou bien globalement. Parmi les mesures possibles, la distance de Hausdorff ´evalue la proximit´e entre deux mod`eles. Pour deux objets X and Y elle est d´efinie comme (figure 2.9) : dH(X, Y ) = max {supx∈X infy∈Y d(x, y)|supy∈Y infx∈X d(y, x)}. Les crit`eres topologiques ´evaluent la fid´elit´e du maillage au mod`ele initial ind´ependamment de sa g´eom´etrie. Dans un mod`ele par fronti`eres, il s’agit notamment de v´erifier que les connexions entre les surfaces restent les mˆemes et que la topologie de chacune des surfaces reste la mˆeme. Dire que deux domaines ont la mˆeme topologie signifie, en g´en´eral, en informatique graphique, que l’objet initial et son maillage sont hom´eomorphes (partie 1.2.4). S’il est possible de prouver que le r´esultat d’un algorithme de maillage est hom´eomorphe `a la surface d’entr´ee (partie 1.2.4) il n’est pas, `a notre connaissance, possible de calculer en pratique s’il l’est. Dans le cas o`u le mod`ele initial est maill´e, des propri´et´es plus faibles, comme la caract´eristique d’Euler-Poincar´e : X= S − A + F, avec S le nombre de sommets, A le nombre d’arˆetes, et F le nombre de facettes, ou l’homologie [Boltcheva et al., 2011] peuvent ˆetre compar´ees. Par exemple, l’´etoile remaill´ee sur la figure 2.8c n’est pas correcte, car sa caract´eristique d’Euler vaut 1, alors que celle du contour de l’´etoile, une ligne ferm´ee, vaut 0. Qualit´e du maillage pour les simulations num´eriques L’influence d’un maillage sur la pr´ecision et l’efficacit´e des simulations num´eriques qui visent `a r´esoudre des ´equations aux d´eriv´ees partielles peut ˆetre grande. Cette influence d´epend de nombreux facteurs parmi lesquels le processus physique simul´e, la m´ethode de discr´etisation, les propri´et´es g´eom´etriques du maillage (distances, courbure, angles, etc.), voir Knupp [2007], Berzins [1999] et les r´ef´erences cit´ees. La qualit´e d’un maillage est d´efinie par Knupp [2007] comme l’ensemble des caract´eristiques du maillage qui permettent que les calculs li´es `a une simulation num´erique particuli`ere soient efficaces, fid`eles `a la physique, et obtenus avec la pr´ecision demand´ee. Un maillage est de meilleure qualit´e si les erreurs qui lui sont imputables plus faibles que pour un autre. Ces erreurs peuvent ˆetre ´evalu´ees a priori, en contrˆolant certaines propri´et´es du maillage, ou a posteriori, en contrˆolant le r´esultat de la simulation. En pratique des crit`eres visant `a ´eliminer les ´el´ements cr´eant (a priori) des dif- ficult´es pour la simulation num´erique d’un processus (suppos´e isotrope) sont utilis´es en g´en´eration de maillage, voir par exemple la synth`ese de Field [2000]. Ces ´el´ements sont notamment ceux ayant des petits ou grands angles (figure 2.10) ou bien ceux dont la taille des arˆetes n’est pas dans l’intervalle souhait´e (longueurs minimale et maximale des arˆetes). Pour r´esumer, d´efinir la qualit´e d’un maillage ind´ependamment d’une application n’a pas de sens. Cette application implique le plus souvent une ´equation aux d´eriv´ees partielles et un sch´ema num´erique, et suivant ceux-ci, certaines caract´eristiques d’un maillage deviennent d´esirables ou n´efastes. Par exemple, certains codes de calcul30 Chapitre 2. Etat de l’art ´ Figure 2.10 – Tetra ´ edres a priori de mauvaise qualit ` e, tir ´ e de ´ Shewchuk [2012]. requi`erent des ´el´ements quasiment ´equilat´eraux, tandis que d’autres se comporteront mieux avec des ´el´ements anisotropes, d´eform´es selon les directions pr´ef´erentielles de telle ou telle propri´et´e physique. 2.2.2 Effet n´egatifs de la g´eom´etrie du mod`ele Les r´egions fines, celles fortement courb´ees, ou bien celles pr´esentant des surfaces s’intersectant `a angle faible sont g´en´eralement incompatibles avec ces crit`eres de qualit´e. Un mod`ele o`u un angle entre deux surfaces vaut 16 degr´es implique qu’au moins un des ´el´ements du maillage aura un angle `a 16 degr´es (figure 4b). Dey et al. [1997] d´efinissent les petites caract´eristiques du mod`ele comme les composantes, ou morceaux des composantes, du mod`ele dont la taille est inf´erieure `a celle qui permettrait de construire un maillage dont les ´el´ements satisfont des crit`eres donn´es. Comme ces crit`eres d´ependent de l’application et ne sont pas toujours clairement d´efinis, l’identification de ces petites caract´eristiques peut ˆetre compliqu´ee et est souvent faite par les modeleurs et/ou ing´enieurs en charge de la construction du mod`ele et des simulations [Quadros et Owen, 2012]. Cependant leur identification automatique et leur prise en compte, avant, pendant, ou apr`es la g´en´eration du maillage facilitent l’obtention d’un maillage de qualit´e. 2.2.3 Gestion des caract´eristiques probl´ematiques du mod`ele Dans cette partie, nous nous int´eressons aux m´ethodes permettant d’identifier et de g´erer les zones complexes pour la g´en´eration du maillage d’un mod`ele d´efini par fronti`eres, ind´ependamment de la repr´esentation des surfaces du mod`ele, de l’objectif dans lequel il est construit, ou de la m´ethode de maillage utilis´ee. Les ´el´ements probl´ematiques dans les mod`eles structuraux seront d´ecrits dans le chapitre 3. Pr´e-identification L’identification des petites caract´eristiques dans un mod`ele par fronti`eres peut ˆetre faite `a l’aide d’un ensemble de mesures ´evaluant la proximit´e entre deux surfaces (distance `a la surface m´ediane), la proximit´e entre les bords des surfaces (distance `aQualite d’un maillage et d ´ efis de g ´ en´ eration ´ 31 l’axe m´edian), la courbure des surfaces, la longueur des bords des surfaces, leur courbure [Quadros et Owen, 2012]. Les arˆetes et points anguleux 7 d’un mod`ele peuvent ´egalement ˆetre un d´efi, ils sont g´en´eralement pr´e-identifi´es. Si ce n’est pas le cas, ils peuvent ˆetre recalcul´es, voir Botsch et al. [2010]. La complexit´e du mod`ele peut ´egalement ˆetre ´evalu´ee localement dans une subdivision du mod`ele. Andrle [1996] utilise des cercles de rayons variables pour calculer une mesure d’angle `a une r´esolution et ´evaluer la complexit´e de lignes g´eomorphiques. Lindsay et al. [2013] proposent de compter pour chaque cellule d’une grille structur´ee le nombre de mat´eriaux ´echantillonn´es par cette cellule et ses voisins. C’est ´egalement sur ce principe de subdivision que fonctionnent les m´ethodes de calcul de dimension fractale par comptage par boˆıte 8 , voir par exemple Kruhl [2013]. Simplification du mod`ele La solution de gestion la plus radicale des zones complexes est sans doute de les supprimer ou, tout du moins, de les modifier pour les rendre moins complexes avant d’en g´en´erer un maillage. En mod´elisation g´eologique, la simplification de la g´eom´etrie des mod`eles est souvent n´ecessaire, mais la litt´erature se concentre sur le probl`eme de la mise `a l’´echelle des propri´et´es des roches, voir la revue de Durlofsky [2005], et est rare `a ce sujet, `a l’exception de travaux sur les r´eseaux de fractures [Bourbiaux et al., 2002, Mustapha et al., 2011]. En conception assist´ee par ordinateur les m´ethodes sont nombreuses pour simplifier les mod`eles et supprimer les caract´eristiques qui affectent la robustesse d’une simulation. Thakur et al. [2009] en font une tr`es bonne synth`ese. Les trois strat´egies qui nous paraissent pertinentes pour la simplification de mod`eles structuraux sont les m´ethodes qui op`erent sur les composantes surfaciques du mod`ele, les m´ethodes qui op`erent dans le volume, et les m´ethodes de r´eduction de dimension. Les premi`eres simplifient le mod`ele ou son maillage par modifications locales [Shephard et al., 1998, Sheffer, 2001, Quadros et Owen, 2012]. La g´en´eralisation de l’op´eration de contraction d’arˆetes propos´ee par Garland et Heckbert [1997] permet de regrouper des sommets proches pour modifier la topologie des mod`eles. Cette strat´egie a notamment ´et´e utilis´ee par Mustapha et al. [2011] pour modifier le maillage de r´eseaux de fractures discrets. La m´ethode volumique propos´ee par Andujar et al. [2002] op`ere sur une subdivision r´ecursive du mod`ele `a l’aide d’un octree. Les cellules `a l’ext´erieur et `a l’int´erieur du mod`ele sont identifi´ees et le mod`ele est reconstruit `a partir des cellules restantes. Diff´erents niveaux de simplification sont obtenus pour diff´erentes profondeurs d’arbres. Le fait de consid´erer le mod`ele dans sa globalit´e permet d’analyser localement les relations entre ses diff´erentes composantes. La r´eduction de dimension d’un mod`ele est une technique de simplification utilis´ee en conception assist´ee par ordinateur. Par exemple, une barre cylindrique (3D) peut ˆetre remplac´ee par une ligne (1D) sans impact significatif sur la pr´ecision de certaines simulations [Thakur et al., 2009]. Les mod`eles r´esultants peuvent contenir des composantes dont la dimension intrins`eque varie. Les maillages `a g´en´erer sont 7. sharp features 8. box-counting32 Chapitre 2. Etat de l’art ´ mixtes, ils contiennent des ´el´ements de dimensions diff´erentes (figure 1.5c), e.g. [Robinson et al., 2011]. Il faut ´egalement transf´erer correctement les propri´et´es associ´ees aux composantes du mod`ele. En g´eomod´elisation, les failles, qui sont en r´ealit´e des volumes d’endommagement des roches, sont mod´elis´ees par des surfaces auxquelles sont associ´ees des propri´et´es sp´ecifiques comme les multiplicateurs de transmissibilit´e [Manzocchi et al., 1999]. Prise en compte dans la g´en´eration du maillage Pour tenir compte des zones compliqu´ees `a mailler, la plupart des m´ethodes de maillage d´ependent d’une fonction de taille des ´el´ements pour obtenir des ´el´ements d’aspect satisfaisant. Cette fonction d´epend g´en´eralement des mesures faites lors d’une pr´e-identification des zones potentiellement probl´ematiques sur le mod`ele d’entr´ee, mesures de courbure, de d´eviation des normales, de distance `a l’axe m´edian, voir par exemple Frey et George [1999] et Quadros et al. [2004]. Outre l’augmentation du nombre d’´el´ements du maillage, il est ´egalement possible de modifier leur forme et leur type pour mieux capturer la g´eom´etrie d’un mod`ele et/ou diminuer les erreurs de simulations num´eriques. A nombre d’´el´ements constant, l’utilisation d’´el´ements anisotropes peut permettre de mieux respecter la g´eom´etrie d’un domaine et de minimiser l’erreur d’approximation d’une fonction donn´ee. Une seconde possibilit´e est d’utiliser des ´el´ements de types diff´erents selon la zone du mod`ele, la troisi`eme est d’utiliser des ´el´ements de degr´e sup´erieur (courbes). Leur g´en´eration est cependant plus d´elicate, voir par exemple Luo et al. [2004]. Post-traitement Quand les zones compliqu´ees ne sont ni pr´e-trait´ees, ni prises en compte lors de la g´en´eration du maillage, elles peuvent ˆetre identifi´ees apr`es sa g´en´eration en ´evaluant l’ad´equation entre les ´el´ements g´en´er´es et les crit`eres requis [Dey et al., 1997]. L’avantage est que tous les types de complications possibles sont identifi´es, l’inconv´enient est qu’il faut g´en´erer un premier maillage volumique. Ce maillage est ensuite modifi´e localement et it´erativement jusqu’`a ce qu’il se conforme `a ces crit`eres. Ce raisonnement tr`es g´en´eral est celui des m´ethodes d’optimisation et d’adaptation de maillage qui modifient it´erativement le maillage jusqu’`a diminuer l’erreur de calcul sous un seuil admissible [Frey et George, 1999, Loseille, 2008]. 2.3 Maillage volumique `a base de t´etra`edres Dans les deux derni`eres parties de ce chapitre, nous passons en revue les m´ethodes de g´en´eration de maillages simpliciaux volumiques et surfaciques. Nous commen¸cons par d´ecrire les grandes m´ethodes de g´en´eration de maillage `a base de t´etra`edres, qui sont plus simples `a appr´ehender, car la dimension de l’objet `a mailler est la mˆeme que celle de l’espace dans lequel il est plong´e, `a savoir trois. Apr`es les grandes m´ethodes de maillage t´etra´edrique, nous d´etaillons des m´ethodes de maillage plus particuli`erement reli´ees aux travaux men´es durant cette th`ese : le maillage de mod`eles multi-mat´eriaux et la g´en´eration de maillages hybrides majoritairement compos´es de t´etra`edres. Pour la g´en´eration d’autres types deMaillage volumique a base de t ` etra ´ edres ` 33 Figure 2.11 – Subdivisions recursives de la bo ´ ˆıte contenant l’etoile. ´ Figure 2.12 – Patrons pour la construction d’un maillage depuis une subdivision. Le maillage final est construit `a partir des sommets des cellules (points noirs) et des points d’intersection entre l’´etoile et les cellules (points blancs). A chaque cellule est associ´e un des dix patrons de d´ecoupage en triangles. Pour ´eviter de cr´eer des triangles de mauvaise qualit´e les sommets proches sont regroup´es (cercles verts). maillages, le lecteur est invit´e `a se r´ef´erer aux synth`eses de Thompson et al. [1999], Frey et George [1999], Baker [2005] et Farmer [2005]. 2.3.1 Maillages t´etra´edriques Les m´ethodes de g´en´eration de maillages t´etra´edriques sont tr`es nombreuses. Elles peuvent ˆetre reli´ees `a l’une des trois grandes approches suivantes : les m´ethodes fond´ees sur une subdivision de l’espace (octree), celles par avancement de front et celles dites Delaunay. Subdivision de l’espace Le principe des m´ethodes fond´ees sur une subdivision de l’espace est de d´ecouper une boˆıte englobante du mod`ele en cellules de tailles variables, puis de construire les t´etra`edres du maillage en subdivisant ces cellules (voir par exemple [Shephard et Georges, 1991]). Ce d´ecoupage utilise une structure hi´erarchique d’arbres, d’o`u le nom de ces m´ethodes en anglais, octree (3D) et quadtree (2D). Une boˆıte englobante34 Chapitre 2. Etat de l’art ´ Figure 2.13 – Principe de maillage par avancee de front. ´ (a) Le front initial est un maillage de la fronti`ere du domaine. Un segment est choisi et le point optimal pour former un triangle avec ce segment est d´etermin´e. (b) Une fois le triangle construit le front est mis `a jour. (c) Front apr`es construction de trois autres triangles. du mod`ele est d´ecoup´ee en huit (quatre en 2D) cellules, puis chaque cellule est r´ecursivement d´ecoup´ee en huit (quatre) jusqu’`a un crit`ere d’arrˆet donn´e (figure 2.11). Ce crit`ere d’arrˆet prend en compte la taille d’´el´ement souhait´ee et un nombre maximal d’intersections entre les bords du mod`ele et les cellules. Souvent, l’intersection de chaque feuille avec le bord du mod`ele est tenue d’avoir une seule composante connexe. Pour contrˆoler les variations des tailles des cellules, les diff´erences de niveaux entre cellules adjacentes sont limit´ees `a un facteur deux, voir les subdivisions en ligne pointill´ee ajout´ees sur la figure 2.12. Les sommets des t´etra`edres du maillage final sont donn´es par l’ensemble des sommets des cellules de l’arbre auxquels sont ajout´es les intersections entre les cellules et la fronti`ere du domaine et, ´eventuellement, les sommets de la discr´etisation initiale de la fronti`ere (figure 2.12). Les t´etra`edres (ou triangles) du maillage final sont construits en subdivisant les cellules de l’arbre selon des patrons pr´ed´efinis. En deux dimensions, il y a dix patrons (figure 2.12) ; en trois dimensions, le nombre de configurations est tr`es grand, et des strat´egies plus g´en´erales de d´ecoupe des octants sont mises en place. Ces m´ethodes sont relativement robustes et fiables [Frey et George, 1999]. Elles n´ecessitent de mettre en place des strat´egies pour am´eliorer la qualit´e des ´el´ements proche des fronti`eres, par exemple regrouper les sommets trop proches l’un de l’autre. Elles ne requi`erent pas que les fronti`eres du domaine soient discr´etis´ees, leur maillage ´etant un sous-produit du maillage du mod`ele. Si elles le sont, le maillage g´en´er´e n’est pas conforme `a leur discr´etisation. Notons que, r´ecemment, des m´ethodes de type octree proposant des garanties sur les angles di`edres des t´etra`edres construits ont ´et´e propos´ees [Labelle et Shewchuk, 2007, Wang et Yu, 2012]. Avanc´ee de front La strat´egie des m´ethodes par avanc´ee de front (ou frontales) est de construire le maillage ´el´ement par ´el´ement en avan¸cant progressivement dans le domaine `a mailler depuis sa fronti`ere (figure 2.13) [L¨ohner et Parikh, 1988]. Tant que le front de maillage n’est pas vide, un ´el´ement est construit `a partir d’un de ses segments (2D) ou triangles (3D). Ces m´ethodes d´eterminent de mani`ere heuristique les points `a cr´eer et les ´el´ements `a construire, ce qui permet d’obtenir des ´el´ements qui ont la taille et la forme souhait´ee. Par construction, le maillage respecte la fronti`ere du domaine, et la qualit´e des ´el´ements le long de cette fronti`ere est tr`es bonne, au contraire des m´ethodes par subdivision ou de type Delaunay. La construction d’un ´el´ement impliqueMaillage volumique a base de t ` etra ´ edres ` 35 Figure 2.14 – Maillages de type Delaunay, contraint et par raffinement, tire´ de Shewchuk [2012]. (a) La triangulation de Delaunay des sommets du bord de l’objet ne contient pas un des segments de ce bord. (b) La triangulation de Delaunay obtenue en ins´erant des points de Steiner. (c) La triangulation de Delaunay contrainte contient ce segment. Figure 2.15 – Insertion d’un point dans une triangulation de Delaunay, algorithme de Bowyer-Watson, modifie d’apr ´ es` Shewchuk [2012]. de (1) s´electionner un ´el´ement du front selon un crit`ere sp´ecifique, (2) d´eterminer un point optimal pour construire un ´el´ement du maillage final bas´e sur celui du front, (3) chercher si un point existant du maillage peut remplacer ce point optimal, (4) former l’´el´ement, (5) tester si cet ´el´ement est valide et changer le point optimal si ce n’est pas le cas, et enfin, (6) mettre `a jour le front. La convergence des m´ethodes par avanc´ee de front n’est pas garantie en trois dimensions, mais des strat´egies efficaces peuvent ˆetre mises en place pour l’obtenir. Par exemple, le logiciel NetGen 9 impl´emente une m´ethode de ce type [Sch¨oberl, 1997]. Delaunay Le troisi`eme grand type de m´ethodes de g´en´eration de maillages t´etra´edriques est celui des m´ethodes fond´ees sur la triangulation de Delaunay (partie 1.1.2). Leur principe est de construire la triangulation de Delaunay d’un ensemble de points et de modifier cet ensemble de points et/ou cette triangulation pour atteindre les crit`eres de qualit´e souhait´es, voir ´egalement George et Borouchaki [1997], Cheng [2013] et le cours de Shewchuk [2012]. Elles sont fond´ees sur la proc´edure qui permet d’ins´erer un 9. http://www.hpfem.jku.at/netgen/36 Chapitre 2. Etat de l’art ´ Figure 2.16 – Principe du maillage par optimisation Vorono¨ı-Delaunay. point dans une triangulation de Delaunay en gardant une triangulation de Delaunay (figure 2.15). Les m´ethodes de type Delaunay contraint visent avant tout `a reconstituer la discr´etisation des fronti`eres du domaine d’entr´ee dans le maillage g´en´er´e (figure 2.14a). Les sommets de la fronti`ere du mod`ele sont ins´er´es dans le maillage d’une boˆıte englobante du mod`ele. Il faut ensuite recouvrer, point tr`es d´elicat en trois dimensions, les ´el´ements de la fronti`ere qui ne sont pas dans la triangulation de Delaunay 10. Des sommets suppl´ementaires sont ensuite ins´er´es dans le mod`ele jusqu’`a ce que des crit`eres de taille et d’aspect des ´el´ements soient remplis [George et al., 1991, Borouchaki et al., 1997, Shewchuk, 2002a, Si et G¨artner, 2011, Si, 2010]. Des logiciels comme Tetgen 11 et MG-Tetra 12 permettent d’obtenir des t´etra´edrisations contraintes de mod`eles d´e- finis par des surfaces triangul´ees conformes. Le principe des m´ethodes de type raffinement de Delaunay, est d’ins´erer it´erativement des sommets au centre des sph`eres circonscrites aux t´etra`edres qui ne satisfont pas un crit`ere donn´e [Chew, 1997, Shewchuk, 1998, Cheng et al., 2005, Shewchuk, 2002b, Cohen-Steiner et al., 2004, Rineau et Yvinec, 2007, Si, 2008]. Souvent ce crit`ere est fonction du ratio entre le rayon de la sph`ere circonscrite au t´etra`edre et la longueur de sa plus courte arˆete, car il est alors prouv´e que, sous certaines conditions, l’algorithme se termine. Ces m´ethodes fournissent des garanties sur les angles di`edres minimaux dans le maillage final. Les diff´erences entre algorithmes sont sur la gestion du bord de l’objet dont la discr´etisation est en g´en´eral modifi´ee. Gmsh 13, TetGen, NetGen et la librairie CGAL 14 impl´ementent ce type de m´ethode. La qualit´e des maillages obtenus est a priori relativement bonne, en revanche le contrˆole du nombre de sommets ajout´e est difficile et les fronti`eres du domaine sont remaill´ees. Optimisation Vorono¨ı-Delaunay Une seconde strat´egie pour g´en´erer des maillages de type Delaunay consiste `a d´eterminer les positions de tous les sommets du maillage final avant d’en construire la triangulation de Delaunay [Du et Wang, 2003, Alliez et al., 2005a, Tournois et al., 10. Ce maillage n’est plus alors dans la plupart des cas strictement Delaunay. 11. http://wias-berlin.de/software/tetgen/ 12. http://www.meshgems.com/volume-meshing-meshgems-tetra.html 13. http://geuz.org/gmsh/ 14. http://www.cgal.org/Maillage volumique a base de t ` etra ´ edres ` 37 2009, Tournois, 2009, Dardenne et al., 2009, L´evy et Liu, 2010]. Dans un premier temps un nombre donn´e de points est distribu´e pour ´echantillonner la surface ou le volume `a mailler, puis les coordonn´ees de ces points sont optimis´ees afin de minimiser une fonction objectif, enfin la triangulation de Delaunay des points est construite et donne le nouveau maillage (figure 2.16). Cette fonction objectif est d´eriv´ee de celle du diagramme de Vorono¨ı barycentrique (section 1.3.1) et/ou de la notion de triangulation de Delaunay optimale [Chen et Xu, 2004]. Les deux caract´eristiques qui distinguent cette approche des m´ethodes plus classiques de maillage sont que (1) le nombre de sommets est fix´e et que (2) la qualit´e et la forme des t´etra`edres sont globalement contrˆol´ees par la fonction objectif. Cependant leur coˆut de calcul est grand devant celui des m´ethodes d´ecrites pr´ec´edemment. Remarquez que le fait de consid´erer le diagramme de Vorono¨ı rapproche ces m´ethodes de Delaunay des m´ethodes de type octree. En effet, le diagramme de Vorono¨ı est une subdivision de l’espace, et le patron pour construire le maillage t´etra´edrique est donn´e par la relation duale Vorono¨ı-Delaunay (partie 1.1.2). De plus, comme pour les m´ethodes octree, le maillage des surfaces fronti`eres du domaine peut ˆetre obtenu en mˆeme temps que le maillage volumique avec la triangulation de Delaunay restreinte (partie 1.2.3). 2.3.2 Maillage de mod`eles multi-mat´eriaux Il y a, dans un mod`ele g´eologique, plusieurs unit´es de roches et donc plusieurs r´egions. L’objectif est de mailler, de mani`ere conforme, ces r´egions, les surfaces qui les d´elimitent et les lignes d’intersection entre ces surfaces, c’est-`a-dire que les t´etra`edres de part et d’autre d’une surface doivent partager la mˆeme facette triangulaire et les triangles de part et d’autre d’une ligne de contact doivent partager le mˆeme segment. Avec une m´ethode de g´en´eration de maillage contraint, c’est-`a-dire qui g´en`ere un maillage strictement conforme `a une discr´etisation des fronti`eres donn´ee, les r´egions du mod`ele peuvent ˆetre maill´ees ind´ependamment (figure 2.17). Les m´ethodes ne g´en´erant pas un maillage contraint sont beaucoup moins robustes. Lepage [2003], Pr´evost et al. [2005] proposent d’utiliser une version modifi´ee d’une m´ethode de raffi- nement de Delaunay pour mailler les surfaces des mod`eles structuraux. Les maillages obtenus sont caract´eristiques de ce type de m´ethode, ils sont tr`es raffin´es dans les coins des mod`eles. Les m´ethodes d´evelopp´ees en informatique graphique ne s’int´eressent g´en´eralement pas au probl`eme de surfaces non-vari´et´es ou aux mod`eles multi-mat´eriaux. Celles qui le font explicitement sont d´evelopp´ees pour des applications m´edicales. L’objectif est de g´en´erer des maillages volumiques `a partir d’images num´eriques 3D (scanner, IRM) afin de r´ealiser des simulations de propagation d’ondes, de chaleur, etc. La donn´ee d’entr´ee n’est alors pas un mod`ele par fronti`ere. La m´ethode propos´ee par Sullivan et al. [1997] est bas´ee sur une subdivision par une grille, il en est de mˆeme pour les travaux plus r´ecents de Zhang et al. [2010], Mohamed et Davatzikos [2004]. Des m´ethodes de type raffinement de Delaunay [Boltcheva et al., 2009, Dey et Levine, 2009], ou d’optimisation Vorono¨ı [Dardenne et al., 2009, Dardenne, 2009] ont ´egalement ´et´e propos´ees.38 Chapitre 2. Etat de l’art ´ Figure 2.17 – Tranche solide dans un maillage tetra ´ edrique d’un mod ´ ele de ` diapir. Le maillage de chaque r´egion est contraint au maillage des surfaces triangul´ees d´efi- nissant le mod`ele. Les cinq r´egions ont ´et´e maill´ees ind´ependamment les unes des autres avec TetGen 15 . 2.3.3 Maillage hybride t´etra`edres-prismes En simulation d’´ecoulements fluides, les zones d’int´erˆets, comme celle entourant la surface d’un avion, sont maill´ees avec des couches de prismes ou de t´etra`edres. La plupart des m´ethodes qui construisent ces maillages en couche limite 16 utilisent une strat´egie de surface (ou de facette) qui avance dans le domaine `a mailler et proposent des solutions pour obtenir un maillage valide quand la surface d’entr´ee est localement concave ou anguleuse (voir e.g. [Garimella et Shephard, 2000, Sahni et al., 2008, Dyedov et al., 2009, Ito et al., 2011]). La zone `a remplir avec des prismes est d´etermin´ee depuis la surface et une hauteur de prisme est g´en´eralement pr´ed´etermin´ee. Une exception notable est le travail pr´esent´e par Dyedov et al. [2009], o`u une m´ethode de face offsetting [Jiao, 2007] est adapt´ee aux g´eom´etries rencontr´ees en biologie. Cette m´ethode produit des maillages hybrides de tr`es bonne qualit´e dans lesquels l’´epaisseur des prismes est adapt´ee `a une mesure locale de la taille des objets. Marchandise et al. [2013] tirent parti de la g´eom´etrie tubulaire des vaisseaux sanguins. Loseille et L¨ohner [2013] proposent d’utiliser des strat´egies de modifications locales du maillage pour g´en´erer des couches de prismes. Pour mailler l’int´erieur de mod`eles, des approches compl´ementaires ont ´et´e d´evelopp´ees. Garimella et Shephard [1999] raffinent un maillage isotrope t´etra´edrique quand le nombre de t´etra`edres s´eparant les facettes triangulaires sur deux cˆot´es oppos´es du mod`ele est inf´erieur `a une valeur donn´ee. Luo et al. [2010] estiment l’axe m´edian de la surface bordant le mod`ele pour identifier les sections fines. Pour construire les prismes, ils dupliquent les triangles d’un des cˆot´es du mod`ele.Maillage surfacique a base de triangles ` 39 Figure 2.18 – Operations locales de remaillage de surface. ´ Figure 2.19 – Maillage de surface dans un espace parametrique, modifi ´ e d’apr ´ es` Geuzaine et Remacle [2009]. Le maillage est g´en´er´e dans le plan sur une projection de la surface.40 Chapitre 2. Etat de l’art ´ 2.4 Maillage surfacique `a base de triangles Les diff´erentes repr´esentations possibles des surfaces (implicite, param´etrique, discr´etis´ee) et la diversit´e des applications les utilisant pour repr´esenter des objets expliquent le grand nombre de m´ethodes pour les mailler. Mailler une surface signifie en g´en´erer maillage valide ; remailler une surface sous-entend que cette surface est d´ej`a maill´ee et d´ecrite sous forme discr`ete. Dans ce cas, le maillage initial peut ˆetre modifi´e afin d’obtenir un second maillage ayant les propri´et´es souhait´ees. Ces modifi- cations it´eratives, d´eplacement des sommets ou op´erations sur les arˆetes du maillage (figure 2.18), sont r´ealis´ees tant que des crit`eres de qualit´e donn´es ne sont pas atteints (´ecart entre les ´el´ements du maillage et la surface d’entr´ee, m´etrique `a respecter, etc., voir par exemple [Frey, 2000, Geuzaine et Remacle, 2009, Botsch et al., 2010]). Le maillage des surfaces dans un espace tridimensionnel a la particularit´e de consid´erer des objets de dimension inf´erieure `a celle de l’espace. Les m´ethodes param´etriques op`erent sur une projection de la surface dans le plan alors que les m´ethodes directes op`erent directement dans l’espace 3D. Lorsqu’une param´etrisation ad´equate de la surface est disponible, la robustesse des m´ethodes param´etriques est sans doute la meilleure car, en deux dimensions, les m´ethodes de maillage Delaunay et par avancement de front sont garanties de terminer. La d´etermination d’une projection peut elle-mˆeme ˆetre un probl`eme compliqu´e si la surface initiale est discr´etis´ee ou si elle n’est pas un ouvert. Il est alors possible d’adapter aux surfaces des m´ethodes 2D comme l’avancement de front [L¨ohner, 1996, Sifri et al., 2003, Peyr´e et Cohen, 2006, Aubry et al., 2011] et raffinement de Delaunay (2.4.2), ou bien d’utiliser des m´ethodes d´edi´ees. 2.4.1 Subdivision de l’espace M´ethodes octree Nous avons vu dans la partie 2.3.1 que les m´ethodes de maillage t´etra´edrique fond´ees sur une subdivision de l’espace 3D de type octree ou diagramme de Vorono¨ı g´en`erent une discr´etisation des fronti`eres du mod`ele, qui est, en quelque sorte, un produit du maillage volumique. Le bord de l’´etoile (figure 2.12) et celui de la sph`ere (figure 2.16) sont maill´es lors du maillage leur int´erieur. Que ce soit pour mailler des surfaces ou un volume, la subdivision octree est la mˆeme. Les points d’intersections entre les coins, arˆetes, faces des cellules avec la surface (plus des points particuliers) sont ensuite reli´es pour cr´eer des arˆetes et des boucles (contour de l’intersection d’une cellule avec la surface) et construire le maillage final [Shephard et Georges, 1991]. Diagramme de Vorono¨ı restreint barycentrique Pour les m´ethodes de maillage surfacique utilisant une subdivision de type diagramme de Voronoi barycentrique, c’est l’intersection entre les cellules et le diagramme de Vorono¨ı qui doit ˆetre barycentrique (partie 1.3.2). L’optimisation de la subdivision du volume du mod`ele n’est pas n´ecessaire. Les sommets du maillage final sont les sites optimis´es pour obtenir un diagramme de Vorono¨ı barycentrique restreint (´equation 1.6). 16. Boundary layerDiscussion 41 Ces m´ethodes permettent de g´en´erer des maillages d’a priori bonne qualit´e. Du et al. [2003] d´efinissent la notion de diagramme de Vorono¨ı barycentrique contraint o`u les sites sont contraints `a ˆetre sur la surface, et donnent des r´esultats de maillage isotrope adaptatif pour des surfaces d´efinies par une fonction f(x, y, z). Alliez et al. [2005b] remaillent des surfaces triangul´ees en param´etrisant globalement les surfaces, Surazhsky et al. [2003] en les param´etrisant localement. Yan et al. [2009], Liu et al. [2009] calculent l’intersection du diagramme de Vorono¨ı avec les surfaces en 3D et optimisent la fonction objectif donn´ee par l’´equation 1.6. Cette approche est ´etendue dans L´evy et Liu [2010], pour g´erer les caract´eristiques anguleuses des mod`eles sans identification pr´ealable et contrˆoler l’´ecartement entre les sites et les surfaces d’entr´ee, et dans L´evy et Bonneel [2013] pour g´en´erer des maillages anisotropes. Valette et Chassery [2004], Valette et al. [2008] utilisent une version discr`ete des diagrammes de Vorono¨ı pour diminuer la r´esolution d’un maillage. La difficult´e principale pour les m´ethodes de maillage par subdivision de l’espace, est, qu’a priori, toutes les configurations sont possibles pour les intersections entre une cellule et le mod`ele. C’est pour ´eviter des configurations trop compliqu´ees que les cellules sont raffin´ees jusqu’`a avoir des intersections en une composante connexe et, pour les m´ethodes de type Vorono¨ı, v´erifier par la mˆeme occasion la propri´et´e de la boule topologique (partie 1.2.4). 2.4.2 Maillage de surfaces avec garanties Les m´ethodes de raffinement de Delaunay ont ´et´e d`es leurs d´ebuts utilis´ees pour mailler directement des surfaces en trois dimensions [Chew, 1993]. Comme pour le maillage t´etra´edrique, des travaux th´eoriques fournissent des garanties sur la topologie du maillage et/ou sur la qualit´e des ´el´ements. Une partie de ces m´ethodes consid`erent s´epar´ement l’´echantillonnage de la surface et la construction des triangles, ceci relie la g´en´eration de maillage de surfaces en 3D `a un probl`eme de reconstruction de surface [Hoppe et al., 1992, Boissonnat et Cazals, 2000]. C’est dans ce cadre qu’a ´et´e introduite la notion d’ǫ-´echantillonage (partie 1.2.4) par Amenta et Bern [1999] qui donne que, lorsque l’´echantillonnage par les sommets est assez dense vis `a vis de la distance `a l’axe m´edian, ces sommets ont la propri´et´e de la boule topologique (partie 1.2.4) pour la surface initiale. De la propri´et´e de la boule topologique sont d´eriv´es des travaux visant `a relˆacher les contraintes pour obtenir un bon ´echantillonage et `a consid´erer des surfaces plus g´en´erales. A partir de ces travaux sont d´evelopp´es des algorithmes ` de remaillage Delaunay `a garanties, voir par exemple [Boissonnat et Oudot, 2005, Cheng et al., 2007]. Des travaux plus r´ecents s’int´eressent tout particuli`erement au maillage de surfaces implicites [Cheng et al., 2009, Dey et Levine, 2009, Gelas et al., 2009, Dey et al., 2010] 2.5 Discussion Nous venons de voir que les maillages ont principalement deux objectifs en g´eomod´elisation : repr´esenter les objets g´eologiques et r´ealiser des simulations num´eriques ; le tout dans le but de comprendre l’organisation et le comportement du sous-sol. Les maillages ne sont pas l’apanage de la g´eomod´elisation. Si leurs domaines d’utilisation sont extrˆemement vari´es, la question de leur g´en´eration int´eresse des communaut´es42 Chapitre 2. Etat de l’art ´ Figure 2.20 – Modele David maill ` e par ´ Valette et al. [2008] et modele synth ` e- ´ tique d’un diapir de sel. plus restreintes, ce sujet faisant intervenir des comp´etences en informatique, g´eom´etrie, g´eom´etrie algorithmique, et simulation num´erique. Les m´ethodes d´evelopp´ees par la communaut´e d’informatique graphique ou de g´eom´etrie informatique le sont g´en´eralement dans un objectif de mod´elisation de surfaces. Les objectifs des m´ethodes de maillage d´evelopp´ees pour des les simulations physiques sont d’obtenir des r´esultats de simulation fiables, assez pr´ecis, et ce, rapidement. Les objectifs des maillages en g´eomod´elisation sont partag´es entre ces deux aspects, d’une part mod´eliser les interfaces entre les volumes rocheux, d’autre part simuler le comportement du sous-sol. Les surfaces ´etudi´ees en informatique graphique sont plus simples d’un point de vue topologique que les mod`eles structuraux g´eologiques, g´en´eralement elles sont vari´et´es et n’ont pas de bord, et plus compliqu´ees d’un point de vue g´eom´etrique, elles peuvent ˆetre tr`es courb´ees et, en comparaison des cheveux boucl´es du mod`ele David (figure 2.20), les surfaces g´eologiques sont plates et lisses. Les similarit´es sont plus grandes avec les mod`eles ´etudi´es en conception assist´ee par ordinateur 17 . 17. L’acronyme anglais CAD, pour Computer Aided Design, est dans le nom du logiciel de g´eomod´elisation GOCAD.Chapitre 3 Contribution : El´ements d’´evaluation de la complexit´e g´eom´etrique des mod`eles structuraux Un article correspondant aux travaux pr´esent´es dans ce chapitre est en pr´eparation pour le journal Mathematical Geosciences. Ce travail a ´et´e r´ealis´e en collaboration avec Guillaume Caumon, Charline Julio, Pablo Mejia et Arnaud Botella. R´esum´e Dans ce chapitre, nous proposons d’analyser les sources de complexit´e g´eom´etrique dans les mod`eles structuraux `a une r´esolution donn´ee. Nous ne fournissons pas de crit`ere d´efinitif de complexit´e, mais d´ecrivons de mani`ere syst´ematique les ´el´ements qui contribuent `a la complexit´e d’un mod`ele structural `a l’aide de mesures des connexions entre les ´el´ements du mod`ele (r´egions, surfaces, lignes et coins) et de la g´eom´etrie de ces composantes. Les m´etriques propos´ees sont calcul´ees sur un ensemble de 9 mod`eles synth´etiques. 3.1 Motivations Le terme complexe est souvent invoqu´e pour qualifier les mod`eles construits ou analys´es avec telle ou telle m´ethode. Cependant, la notion de complexit´e, dans le sens de quelque chose qui est difficile `a comprendre, difficile `a r´ealiser, ou bien inhabituel, est extrˆemement subjective. Elle d´epend de la personne qui porte ce jugement, de sa formation et de son exp´erience, des moyens mis `a sa disposition, et avant tout, du probl`eme qu’elle a `a r´esoudre. Un g´eologue structuraliste pourra consid´erer complexe la r´eactivation de failles normales en failles inverses [Sassi et al., 1993], alors que cela aura moins d’importance pour l’ing´enieur r´eservoir qui consid´erera complexes les r´eservoirs o`u les r´eseaux de failles et de fractures ont un contrˆole pr´epond´erant sur le pi´egeage et la production d’hydrocarbures [Jolley et al., 2007].44 Chapitre 3. Complexite g ´ eom ´ etrique ´ Cette subjectivit´e de la complexit´e rend difficile la comparaison des mod`eles structuraux, ce qui, plus ou moins directement, rend difficile la comparaison des m´ethodes d´evelopp´ees en g´eomod´elisation, comparaisons qui sont pourtant essentielles pour la recherche. Nous nous restreignons ici `a la complexit´e des mod`eles structuraux du point de vue de la g´en´eration de maillage, ´etape commune `a une grande partie des applications en g´eomod´elisation et tentons d’apporter des ´el´ements pour ´evaluer la complexit´e relative de deux mod`eles, estimer la r´esolution minimale d’un maillage d’un mod`ele et identifier les zones probl´ematiques d’un mod`ele `a une r´esolution donn´ee. La complexit´e est alors li´ee `a la g´eom´etrie et au niveau de d´etail du mod`ele, dont d´epend la faisabilit´e d’un maillage `a une r´esolution donn´ee localement ou globalement. Nous avons vu dans la partie 2.2.3, diff´erentes mesures utilis´ees pour caract´eriser les zones complexes des mod`eles pour diverses applications, certains auteurs proposant mˆeme des calculs de complexit´e g´eom´etrique [Quadros et al., 2004] ou de la complexit´e de la g´en´eration d’un maillage hexa´edrique [White et al., 2005]. Apr`es avoir analys´e les sources de complexit´e g´eom´etrique dans les mod`eles g´eologiques (partie 3.2), nous proposons des mesures globales et locales de cette complexit´e (partie 3.3) et les ´evaluons sur des mod`eles synth´etiques (parties 3.4 et 3.5) 3.2 Sources de complexit´e Avant de donner les sources de complexit´e dans un mod`ele, nous pr´ecisons le vocabulaire employ´e dans ces travaux. Que ce soit pour les r´egions, les surfaces ou les lignes du mod`ele par fronti`ere, nous consid´erons ind´ependamment les composantes connexes des entit´es g´eologiques constitutives du mod`ele. Chaque r´egion volumique est compl`etement d´efinie par l’ensemble des surfaces qui constituent son bord (fi- gure 3.1). Ces surfaces sont elles-mˆemes d´efinies par leurs bords, des lignes, qui sont, soit `a l’intersection de plusieurs surfaces, soit sur le bord d’une seule de ces surfaces. Les lignes ouvertes sont d´elimit´ees par deux points que nous appellerons coins. Chaque r´egion, surface, ligne ou coin, correspond `a une seule entit´e g´eologique, une entit´e g´eologique pouvant ˆetre divis´ee en plusieurs r´egions, surfaces, lignes, et coins (figure 3.1). Pour qu’un mod`ele soit valide, ses ´el´ements 1 doivent s’intersecter uniquement au niveau de leurs fronti`eres et les ´el´ements de mˆeme dimension doivent partager la mˆeme g´eom´etrie le long de ces fronti`eres, leurs maillages doivent ˆetre conformes. 3.2.1 Nombre d’objets g´eologiques La complexit´e d’un mod`ele d´epend principalement du nombre de couches qu’il contient ainsi que du nombre de discontinuit´es les affectant. Lors de la construction d’un mod`ele, la coh´erence de chacun de ces objets doit ˆetre v´erifi´ee, ce qui influence directement le temps n´ecessaire `a la construction d’un mod`ele. Le nombre de r´egions volumiques d´etermine ´egalement le nombre de r´egions stationnaires `a utiliser pour les mod`eles p´etrophysiques, et donc le travail n´ecessaire lors de la mod´elisation g´eostatistique. De plus, chaque surface du mod`ele est susceptible de d´efinir des compartiments 1. Nous employons aussi le terme de composante.Sources de complexite´ 45 Figure 3.1 – El´ ements d’un mod ´ ele structural. ` Le mod`ele est constitu´e de quatre couches (A, B, C, D) s´epar´ees par trois horizons (h0, h1, h2) et d´ecoup´ees par une faille F. (a) La couche B est d´ecoup´ee en deux r´egions B.1 et B.2. (b) L’horizon h1 a deux composantes connexes surfaciques, que nous appelons surfaces. (c) La faille a quatre surfaces num´erot´ees de 1 `a 4. Chacune de ces surfaces est d´elimit´ee par quatre lignes, elles-mˆemes d´elimit´ees par des coins. La ligne rouge est sur le bord d’une seule surface F4. (a) Couche fine (b) Pli couché (c) Discontinuité stratigraphique (d) Failles avec faible rejet (f) Failles en Y (e) Diagramme de juxtaposition Figure 3.2 – Quelques sources de complexite dans les mod ´ eles structuraux. ` Le diagramme de juxtaposition (f) est une vue sur la surface de faille des traces des horizons recoup´es par cette faille.46 Chapitre 3. Complexite g ´ eom ´ etrique ´ dans le domaine, ayant ainsi souvent un impact de premier ordre sur les ´ecoulements fluides et les processus g´eophysiques. 3.2.2 Interactions entre les objets La distribution dans le mod`ele des objets g´eologiques, c’est `a dire leur densit´e, a des cons´equences directes sur les ´etapes de mod´elisation, de maillage et de simulation. Cette densit´e est li´ee `a la g´eom´etrie des objets g´eologiques, mais ´egalement aux intersections entre les couches du mod`ele avec les failles et les autres non-conformit´es. Les ´el´ements simples interagissent faiblement avec les autres et sont plus faciles `a modifier ou `a supprimer du mod`ele, au contraire de ceux, qui, tels les discontinuit´es sont plus difficiles `a supprimer. Couches stratigraphiques conformes Des couches conformes 2 , mais localement tr`es fines peuvent ˆetre probl´ematiques. En effet, la validit´e de la couche (pas d’intersection entre les horizons sup´erieur et inf´erieur) est plus difficile `a v´erifier dans le cas g´en´eral (figure 3.2a). De plus, les d´eformations affectant les couches peuvent modifier les ´epaisseurs et courbures des horizons. Certaines structures comme les plis couch´es (figure 3.2b) sont plus complexes que les plis simples `a mod´eliser, puisqu’ils ne peuvent pas ˆetre repr´esent´es avec une seule fonction de la position horizontale, ce qui pose probl`eme pour certaines applications. Non-conformit´es stratigraphiques Les relations verticales entre les couches sont contrˆol´ees par les non-conformit´es (´erosions, onlaps) qui sont tr`es courantes dans les r´eservoirs stratigraphiques. Leur g´eom´etrie implique souvent des objets tr`es fins et des faibles angles de contact entre les horizons qui sont difficiles `a caract´eriser avec les donn´ees et requi`erent des op´erations de mod´elisation plus compliqu´ees que dans le cas des s´equences continues (figure 3.2c). Comme nous l’avons vu au chapitre 2, ces angles faibles sont particuli`erement probl´ematiques lors de la g´en´eration d’un maillage. De plus, leur position dans le mod`ele peut ˆetre mal connue [Caumon, 2003, Lallier, 2012]. Failles Les failles sont des discontinuit´es qui correspondent `a un d´eplacement localis´e des couches le long d’une surface (figure 3.2d). Elles sont souvent difficiles `a caract´eriser `a partir des donn´ees du sous-sol et introduisent une complexit´e significative `a cause de leur connectivit´e, leur forme et leurs propri´et´es sp´ecifiques [Jolley et al., 2007]. Le contrˆole qualit´e est crucial pour valider les d´eplacements sur les failles car les donn´ees sismiques sont bruit´ees autour d’elles. Ce contrˆole peut ˆetre par exemple fait en analysant les lignes de contact faille-horizon avec un diagramme de juxtaposition (figure 3.2e) [Groshong, 2008, Caumon et al., 2009]. La juxtaposition de volumes rocheux ayant des propri´et´es diff´erentes est aussi tr`es importante pour les ´ecoulements 2. Couches r´esultant du d´epˆot continu de s´edimentsMesures gen´ eralistes ´ 47 Figure 3.3 – Calcul de mesures geom ´ etriques en 2D. ´ Mesures d’´epaisseur Ce et d’angle Ca pour une r´egion R et mesure de forme Cf pour un de ses bords B2. fluides, car elle entraˆıne de fortes non-lin´earit´es de la r´eponse en ´ecoulement lorsque la g´eom´etrie est l´eg`erement perturb´ee [Jolley et al., 2007, Tavassoli et al., 2005]. Les intersections `a angles faibles entre failles et horizons peuvent rendre plus difficile la cartographie de la juxtaposition des couches et peuvent influencer la transmissibilit´e de la faille. Les failles qui se terminent dans un mod`ele posent des probl`emes similaires, car `a leurs extr´emit´es, le d´eplacement des horizons atteint z´ero (figure 3.2e) et elles ne d´elimitent pas deux r´egions volumiques distinctes, ce qui rend nombre d’algorithmes inutilisables tels quels. La complexit´e d’un r´eseau de failles n’est pas seulement une combinaison des complexit´es de chacune des failles, les diff´erences d’orientation et de pendage des failles, ainsi que leurs connexions doivent ˆetre consid´er´ees. Le nombre d’intersections entre failles d´etermine la compartimentation du mod`ele et les angles au niveau de ces intersections ont des cons´equences majeures sur les approximations n´ecessaires lors de la g´en´eration d’une grille volumique. Les intersections de failles en Y (figure 3.2f) ou les variations d’orientation et de pendage des failles peuvent empˆecher une repr´esentation du mod`ele par extrusion d’une coupe et la construction d’une grille stratigraphique (partie 2.1.3) [Farmer, 2005]. 3.3 Mesures g´en´eralistes Deux types de mesures peuvent ˆetre utilis´es pour ´evaluer la complexit´e des composantes d’un mod`ele structural en trois dimensions : les mesures de connectivit´e 3 et les mesures g´eom´etriques. Les premi`eres caract´erisent les relations entre les composantes du mod`ele et sont ind´ependantes de la g´eom´etrie, les secondes caract´erisent les tailles et formes de chaque ´el´ement. 3.3.1 Mesures globales de complexit´e Nous proposons trois mesures pour calculer globalement la complexit´e d’un mod`ele. La premi`ere d´enombre les ´el´ements du mod`ele (r´egions, surfaces, lignes et coins) en excluant ceux qui d´efinissent le volume d’int´erˆet. Cette mesure donne `a chaque ´el´ement la mˆeme importance. 3. Ensemble des connexions entre les composantes du mod`ele, aussi appel´ee topologie.48 Chapitre 3. Complexite g ´ eom ´ etrique ´ Pour pond´erer l’importance des ´el´ements en fonction des probl`emes potentiels qu’ils impliquent, la seconde mesure prend en compte la g´eom´etrie des ´el´ements. Deux ´el´ements, qu’ils soient dans le mˆeme mod`ele ou non peuvent ainsi ˆetre compar´es. Les coins ne sont pas directement pris en compte dans ce calcul, ils ont cependant une influence directe sur les mesures faites pour les surfaces et les lignes. Nous calculons la complexit´e de chaque ´el´ement comme la somme de quatre mesures ´el´ementaires qui caract´erisent (1) sa taille Ct ; (2) sa forme Cf ; (3) son ´epaisseur Ce ; et (4) ses angles Ca. Ces mesures sont choisies de mani`ere `a prendre des valeurs entre 0 et 1. Les mesures de taille et d’´epaisseur d’une composante e de dimension d sont d´efinies par rapport `a une taille caract´eristique donn´ee h : Ct(e) =  0 si taille(e) > hd 1 sinon Ce(e) = ( 0 pour les lignes Ah taille(Be) pour les r´egions et les surfaces o`u Be est l’ensemble des ´el´ements du bord de la composante et Ah la taille de la zone o`u l’´epaisseur de la composante est inf´erieure `a la taille caract´eristique (figure 3.3). La mesure de forme Cf ´evalue globalement la d´eformation pour les surfaces et lignes. Elle est prise ´egale `a 1 moins la taille de la composante projet´ee sur son plan ou segment moyen divis´e par la taille de la composante (figure 3.3). Elle vaut z´ero pour les r´egions volumiques. La mesure angulaire Ca est d´efinie par rapport `a un angle donn´e α pour les r´egions (respectivement les surfaces) et ´evalue le pourcentage de la longueur des lignes (respectivement le nombre de coins) o`u l’angle entre deux surfaces (respectivement deux lignes) du bord de la composante s’intersectent `a un angle inf´erieur `a α (figure 3.3). Avec la troisi`eme mesure globale, nous proposons d’´evaluer la complexit´e des ´el´ements d’un type donn´e comme une statistique de la taille des ´el´ements de ce type. Nous avons choisi le coefficient de variation 4 qui caract´erise les distributions relatives des tailles des ´el´ements et ´evalue les changements d’´echelle pour un type d’´el´ement. 3.3.2 Mesures dans un voisinage Le calcul des mesures g´eom´etriques ou de connectivit´e dans le voisinage d’un point permet de capturer localement les relations entre les ´el´ements d’un mod`ele et d’identifier plus pr´ecis´ement les zones plus complexes. Nous avons vu dans la partie 2.2.3 des strat´egies permettant d’analyser la complexit´e d’un mod`ele en prenant des mesures dans le voisinage de points ´echantillonnant le mod`ele. La mise en place d’une telle m´ethode requiert de calculer l’intersection des voisinages avec le mod`ele rapidement et de mani`ere robuste. Pour capturer les relations spatiales entre les ´el´ements d´efinissant un mod`ele, nous proposons de calculer localement le nombre de coins, composantes connexes de lignes, composantes connexes de surface et r´egions dans le voisinage de points ´echantillonnant le mod`ele. Des statistiques basiques : moyenne, coefficient de variation, 4. La moyenne divis´e par l’´ecart-type.Modeles ` 49 maximum et le 90eme ` centile de ces valeurs ´evaluent la complexit´e. Les mesures obtenues d´ependront de la r´esolution de l’´echantillonnage mais aussi du placement de de la forme des voisinages utilis´es. 3.4 Mod`eles Nous proposons un ensemble de mod`eles synth´etiques construits depuis le mod`ele d’un pli anticlinal cylindrique constitu´e de trois horizons et nomm´e A1 (figure 3.4). Dans le mod`ele A2, deux failles normales r´egionales affectent les horizons (fi- gure 3.4). Ces failles planes sont parall`eles, recoupent la totalit´e de la zone d’int´erˆet et ont un pendage de 60 degr´es vers l’Est. Leur rejet 5 est constant, d’o`u des lignes de contact faille-horizon parall`eles. Dans le mod`ele A3, les deux failles sont locales et ne compartimentent pas le mod`ele (figure 3.4). Les rejets des failles sont maximaux `a proximit´e de leur centre et deviennent nuls sur leur contour. Dans le mod`ele A4, une faille est r´egionale tandis que la faille la plus `a l’Ouest se termine vers le Sud (figure 3.4). Les d´eplacements induits par les failles augmentent vers le Nord ; une cons´equence est que les lignes de contact horizon-faille s’intersectent `a angles faibles. Les failles du mod`ele A5 s’intersectent le long d’une ligne de branchement, elles ont une configuration en “Y” (figure 3.4). Les rejets des failles sont constants et le mod`ele peut ˆetre restaur´e en A1 par mouvement de blocs rigides. Cependant, comme la hauteur du rejet sur une des failles est proche de l’´epaisseur de la couche sup´erieure, des sections fines apparaissent dans son diagramme de juxtaposition. Le mod`ele A6 est obtenu en coupant le mod`ele A4 par une surface topographique (´erosion). Plusieurs petites parties de surfaces isol´ees dont la taille est tr`es petite compar´ee `a celle du mod`ele apparaissent. De plus, de tr`es faibles angles apparaissent entre la surface d’´erosion et les couches ´erod´ees (figure 3.4). Les trois autres mod`eles que nous proposons illustrent des d´efis diff´erents. Le mod`ele B est un mod`ele de pli li´e `a la propagation d’une faille en compression (figure 3.5). Dans la partie inf´erieure, la faille a un pendage faible et se branche sur un niveau de d´ecollement horizontal. Le pendage de la faille varie vers un angle moyen avant l’arrˆet de la faille dans la couche sup´erieure o`u la d´eformation est accommod´ee par une d´eformation interne des couches. Dans le mod`ele C, des couches horizontales sont d´epos´ees en discordance sur un horizon pliss´e (figure 3.5). Le diapir du mod`ele D est intrusif et recoupe trois couches stratigraphiques. Les horizons sont peu d´eform´es except´e dans la zone d’influence du diapir (figure 3.5). 3.5 R´esultats Nous avons calcul´e les mesures propos´ees dans la partie 3.3 pour les neuf mod`eles pr´esent´es ci-dessus. Les composantes d´efinissant le volume d’int´erˆet des mod`eles 5. D´eplacement induit par la faille.50 Chapitre 3. Complexite g ´ eom ´ etrique ´ Mod`ele A1 : Couches l´eg`erement pliss´ees Mod`ele A2 : Failles parall`eles Mod`ele A3 : Failles locales Mod`ele A4 : D´eplacements complexes sur les failles Mod`ele A5 : Failles normales obliques Mod`ele A6 : Erosion Figure 3.4 – Suite de modeles cr ` e´es´ a partir du mod ` ele A1. ` Dimensions : 1600m × 930m × 500m.Resultats ´ 51 Mod`ele B : Faille thrust (1590m×915m×578m) Mod`ele C : Stratigraphie onlap (1600m×930m× 500m) Mod`ele D : Diapir de sel (140m×140m×100m) Figure 3.5 – Modeles conduisant ` a des configurations potentiellement probl ` e- ´ matiques. (boˆıte) ne sont pas prises en compte dans ces calculs, ce qui permet de caract´eriser la complexit´e intrins`eque des mod`eles. 3.5.1 Mesures globales La premi`ere mesure qui compte le nombre total d’´el´ements dans le mod`ele donne une premi`ere classification des mod`eles, en ordre croissant : A1, C, D, B, A2, A3, A4, A5, A6 (table 3.1). La complexit´e obtenue d´epend du nombre de discontinuit´es affectant le mod`ele et des intersections entre ces discontinuit´es. Trois groupes de mod`eles apparaissent : ceux qui ont au plus une discontinuit´e (A1, B, C, et D), ceux qui en ont deux (A2, A3, et A4) et ceux qui en ont deux connect´ees (A6 et A5). Comme les ´el´ements d´efinissant le domaine d’int´erˆet ne sont pas pris en compte, cette mesure tr`es simple diff´erencie les failles r´egionales des failles ne recoupant pas la totalit´e du mod`ele. Pour ´evaluer la seconde mesure nous avons choisi une r´esolution de 10m et un angle α de 20 degr´es (table 3.2). La classification r´esultante : A1, C, B, A2, D, A4, A3, A5, A6 est l´eg`erement diff´erente de la premi`ere. A1 reste le mod`ele le plus simple tandis que A6 et A5 restent ceux qui sont les plus complexes. La complexit´e accrue de D est due au fait que l’´echelle de ce mod`ele est significativement plus petite que celle des autres mod`eles et que la couche inf´erieure a une ´epaisseur en moyenne inf´erieure `a 10m. Le mod`ele A3 est class´e troisi`eme `a cause de la forte complexit´e g´eom´etrique induite par les failles qui se terminent `a l’int´erieur de la zone d’int´erˆet. En effet, les lignes de contact faille-horizon s’y intersectent `a des angles inf´erieurs `a 10 degr´es.52 Chapitre 3. Complexite g ´ eom ´ etrique ´ A1 A2 A3 A4 A5 A6 B C D R´egions 4 12 4 8 12 14 5 4 5 Surfaces 3 23 16 23 31 42 8 4 6 Lignes 0 13 24 22 30 44 4 1 2 Coins 0 0 12 6 10 15 0 0 0 Total 7 48 56 59 83 115 17 9 13 Table 3.1 – Nombre d’el´ ements dans les mod ´ eles. ` A1 A2 A3 A4 A5 A6 B C D R´egions 0.13 0.59 0.22 0.34 1.19 6.58 0.35 0.55 2.97 Surfaces 0.03 3.21 12.01 7.41 9.30 12.58 0.25 0.00 1.20 Lignes 0.00 0.01 0.56 0.10 4.01 2.92 0.00 0.00 1.62 Total 0.16 3.81 12.79 7.85 14.50 22.07 0.60 0.55 5.79 Table 3.2 – Somme des complexites g ´ eom ´ etriques ( ´ Ct + Cf + Ce + Cα) pour les el´ ements. ´ Les coefficients de variation (table 3.3) donnent une classification (A1, D, B, C, A2, A4, A3, A5, A6) similaire aux pr´ec´edentes. Sa signification est cependant diff´erente car elle identifie la complexit´e due aux changements d’´echelle des ´el´ements dans les mod`eles. 3.5.2 Mesures locales M´ethode Pour calculer les voisinages dans lesquels les mesures vont ˆetre calcul´ees nous utilisons les cellules d’un diagramme de Vorono¨ı barycentrique d’un nombre de points donn´e (parties 1.1.1 et 1.3.1). Les cellules de Vorono¨ı barycentriques donnent une subdivision du mod`ele relativement isotrope moins sensible `a une orientation donn´ee que le serait une grille cart´esienne. Mesures locales de connectivit´e Nous avons fait ces mesures pour trois nombres de cellules 100 ; 1 000 ; 10 000 cellules et donc `a trois r´esolutions, la r´esolution ´etant estim´ee `a partir de la racine cubique du volume du mod`ele divis´ee par le nombre de cellules. Pour les mod`eles A, B et C ces r´esolutions sont respectivement de 198m, 92m, et 43m ; le mod`ele D est plus petit et les r´esolutions sont 26m, 12m, et 5.7m. A1 A2 A3 A4 A5 A6 B C D R´egions 0.74 0.76 0.74 0.84 1.08 1.67 0.57 0.94 0.54 Surfaces 0.00 0.93 1.97 1.41 1.74 1.62 0.79 0.71 0.56 Lignes 0.01 0.63 0.67 0.82 1.06 0.00 0.13 Total 0.74 1.71 3.35 2.92 3.64 4.35 1.37 1.65 1.23 Table 3.3 – Coefficients de variation des tailles des el´ ements dans chaque ´ modele type par type. `Discussion 53 R´esultats Les statistiques sur le nombre d’´el´ements comptabilis´es dans une cellule sont donn´ees dans la table 3.4. Les moyennes, maximums, coefficients de variation et les 90eme ` centiles sont trac´es dans un graphe radar (figure 3.6). Selon la statistique choisie, la classification relative des ´el´ements varie l´eg`erement, particuli`erement pour les mod`eles les plus simples. Cependant la s´eparation des mod`eles en deux groupes distincts est claire pour quasiment toutes les mesures et `a toutes les r´esolutions : les mod`eles les plus simples (A1, B, C et D) qui ont au plus une discontinuit´e et ceux qui ont au moins deux discontinuit´es (A2, A3, A4, A5, et A6). Une observation attendue est que, lorsque la r´esolution augmente, la complexit´e locale et les diff´erences entre les mod`eles diminuent 6 . La moyenne est fortement influenc´ee par cette diminution. Par exemple, dans le mod`ele A5, elle diminue de 5.51 (100 cellules) `a 1.84 (10 000 cellules) soit une perte de 66.6%, le maximum diminuant simplement de 30 `a 19 (36.6%). Le maximum caract´erise la zone la plus complexe du mod`ele, c’est `a dire l’´el´ement contenu dans le plus grand nombre d’´el´ements. Selon ce crit`ere, la classification obtenue est : B, D, A1, C, A3, A2, A4, A6, A5. A la plus grande r´esolution, le 90eme ` centile est le mˆeme pour tous les mod`eles (la valeur 3 correspond `a une cellule qui contient un morceau de surface et deux r´egions), mais il pourrait permettre de classer les mod`eles `a de plus faibles r´esolutions. Le coefficient de variation ´evalue la dispersion des mesures et peut aussi ˆetre pris comme une mesure de complexit´e. Le principal avantage des mesures locales est la possibilit´e de comprendre l’organisation spatiale de la complexit´e et d’estimer l’extension des zones o`u une m´ethode donn´ee pourrait ´echouer `a partir des cellules dans lesquelles le nombre total d’´el´ements est sup´erieur `a un chiffre donn´e. Comme nous pouvons le voir sur la figure 3.7, ces cellules sont celles qui recoupent les sections fines du mod`ele, couches fines (mod`ele A6), faible rejet sur une faille (mod`ele A2), angle faible entre des lignes de contact sur une faille (mod`ele A5) (figure 3.7). 3.6 Discussion 3.6.1 Contributions Dans ce chapitre, nous avons propos´e d’utiliser des mesures g´en´erales pour ´evaluer la complexit´e d’un mod`ele structural afin de pouvoir comparer de mani`ere plus objective plusieurs mod`eles. Les m´etriques d´eriv´ees de ces mesures et les mod`eles de r´ef´erence qui sont propos´es sont des outils importants pour quantifier notre perception de la complexit´e d’un mod`ele, c’est-`a-dire les configurations que nous avons du mal `a comprendre et qui posent probl`eme aux logiciels que nous utilisons, d´eveloppons, etc. Ces mesures sont simples, certaines sont faites `a une r´esolution donn´ee. Elles aident `a comprendre la complexit´e induite par chaque ´el´ement ind´ependamment de son type et `a comparer les mod`eles d’une mˆeme zone `a des r´esolutions diff´erentes. 6. Cet effet est similaire `a celui de support en g´eostatistique [Journel, 2003].54 Chapitre 3. Complexite g ´ eom ´ etrique ´ A1 A2 A3 A4 A5 A6 B C D 100 Q10 1 1 1 1 1 2 3 1 3 Q50 5 5 5 5 5 7 5 5 5 Q90 7 11 10 11 11 12 7 8 6 Max 7 15 15 16 30 22 8 8 9 Moy. 4.300 5.950 5.210 5.630 5.510 6.710 4.290 4.040 4.060 Coeff.Var. 0.547 0.630 0.658 0.665 0.775 0.696 0.390 0.593 0.390 1000 Q10 1 1 1 1 1 1 1 1 1 Q50 1 3 1 3 3 3 3 1 3 Q90 5 7 5 7 6 7 5 5 5 Max 7 15 13 14 22 19 6 8 6 Moy. 2.500 3.137 2.710 2.960 2.950 3.170 2.630 2.360 2.569 Coeff.Var. 0.751 0.814 0.808 0.804 0.858 0.871 0.523 0.813 0.581 10000 Q10 1 1 1 1 1 1 1 1 1 Q50 1 1 1 1 1 1 1 1 1 Q90 3 3 3 3 3 3 3 3 3 Max 5 11 11 12 19 15 6 6 6 Moy. 1.688 1.910 1.746 1.850 1.840 1.920 1.770 1.570 1.760 Coeff.Var. 0.728 0.788 0.755 0.778 0.795 0.827 0.609 0.721 0.676 Table 3.4 – Statistiques sur le nombre d’el´ ements par cellule. ´ A1 A2 A3 A4 A5 A6 B C D Maximum Q90 Moy. Coeff.Variation Maximum Q90 Moy. Coeff. Variation Maximum Q90 Moy. Coeff.Variation 100 cellules 1 000 cellules 10 000 cellules 30 12 6.71 0.76 22 7 3.17 0.87 19 3 1.92 0.83 Figure 3.6 – Statistiques normalisees sur les nombres d’ ´ el´ ements compt ´ es dans ´ 100, 1 000, ou 10 000 cellules de Vorono¨ı.Discussion 55 A2 A3 A5 A4 Nombre d´éléments par cellule N A6 6 7 8 9 10 11 >12 Figure 3.7 – Zones complexes des modeles. ` Les cellules, parmi 10 000, contenant plus de 6 composantes sont situ´ees autour des discontinuit´es. Il n’y en a aucune dans le mod`ele A1, 188 dans A2, 54 dans A3, 158 dans A4, 161 dans A5 et 535 dans A6.56 Chapitre 3. Complexite g ´ eom ´ etrique ´ 3.6.2 Perspectives Les perspectives de ce travail sont tr`es nombreuses. Les mesures pourraient ˆetre utilis´ees pour d´eterminer la r´esolution n´ecessaire pour mailler une zone donn´ee d’un mod`ele [Quadros et al., 2004] ou pourraient ˆetre combin´ees pour ´evaluer la complexit´e d’une tˆache de mod´elisation donn´ee. Ceci requiert de connaˆıtre parfaitement les m´ethodes et algorithmes utilis´es, de consid´erer la complexit´e de la repr´esentation du mod`ele (taille du maillage) et de r´ealiser de nombreuses analyses de sensibilit´e. Ces trois points rendent difficile d’envisager `a court terme la d´etermination de telles mesures ´evaluant par exemple, pour un mod`ele, si une m´ethode de maillage donn´ee permettra d’atteindre la qualit´e, la r´esolution et le nombre d’´el´ements souhait´es. L’examen de r´esultats obtenus pour des mod`eles r´eels et pour des mod`eles synth´etiques de r´ef´erence cr´e´es dans le but d’´evaluer les impacts d’un changement d’´echelle ou bien l’ajout d’une entit´e g´eologique, permettrait d’affiner les mesures que nous avons propos´ees et de confirmer l’effet de telle ou telle configuration sur l’une d’elle. Des calculs sp´ecifiques de la complexit´e des entit´es g´eologiques par type apporteraient des informations compl´ementaires. Par exemple, pour les surfaces de failles, le nombre de couches affect´ees, la distribution des rejets, les angles faits avec les horizons, les contacts induits entre des couches diff´erentes sont des informations cruciales en mod´elisation. Pour le r´eseau de failles, ce sont les contacts entre failles, les angles `a ces intersections et leurs variations d’orientation qui importent, tandis que pour les formations s´edimentaires les nombres de blocs, l’intensit´e des d´eformations, les variations d’´epaisseur pourraient ˆetre consid´er´ees. Enfin un calcul des mesures g´eom´etriques dans les cellules de Vorono¨ı permettrait de caract´eriser localement la g´eom´etrie du mod`ele ind´ependamment de la qualit´e de son maillage, au contraire des mesures de g´eom´etrie que nous faisons. Nous pourrions aussi envisager d’utiliser d’autres types de cellules, voxels, sph`eres, etc.Chapitre 4 Contribution : Remaillage des surfaces de mod`eles structuraux `a une r´esolution donn´ee Les travaux pr´esent´es dans ce chapitre ont fait l’objet d’une publication Pellerin et al. [2014], une version pr´eliminaire ayant ´et´e pr´esent´ee `a la conf´erence annuelle de l’IAMG [Pellerin et al., 2011]. R´esum´e Dans ce chapitre, nous proposons une m´ethode de remaillage des surfaces des mod`eles structuraux d´efinis par fronti`ere avec des triangles les plus ´equilat´eraux possibles. Nous utilisons une m´ethode de type optimisation de diagramme de Vorono¨ı barycentrique pour placer les sommets des surfaces remaill´ees. Nous introduisons une ´energie pour am´eliorer le placement des sites le long des bords des surfaces. Le maillage est construit en analysant les intersections entre le mod`ele et les cellules de Vorono¨ı. Quand les cellules de Vorono¨ı restreintes aux surfaces, lignes et coins ont une unique composante connexe, nous construisons la triangulation de Delaunay restreinte des sites au mod`ele. Dans le cas contraire, nous construisons un maillage dual de ces composantes connexes. Lorsque la r´esolution finale est suffisante, les lignes et les coins initiaux sont ´egalement des lignes et des coins du mod`ele final. Cependant, pour des mod`eles o`u les contacts sont complexes, la r´esolution peut ˆetre localement insuffisante, et au lieu d’ajouter des points pour raffiner le maillage, nous proposons de simplifier des ´el´ements du mod`ele. La m´ethode est appliqu´ee `a 12 mod`eles structuraux. 4.1 Motivations Les diff´erentes strat´egies pour g´en´erer les mod`eles structuraux conduisent `a des surfaces qui sont, la plupart du temps, d´efinies par des triangles [Caumon et al., 2009]. La qualit´e et la r´esolution du maillage peuvent ˆetre tr`es diff´erentes selon les choix du modeleur et les algorithmes utilis´es pour construire le mod`ele. Les triangles peuvent58 Chapitre 4. Maillage surfacique ˆetre de tr`es mauvaise qualit´e 1 , notamment quand les horizons sont obtenus par une m´ethode de type marching tetrahedra depuis une surface implicite. Le maillage doit donc ˆetre adapt´e pour visualiser efficacement le mod`ele, modifier sa g´eom´etrie, faire des calculs de restauration d’horizons [e.g., Dunbar et Cook, 2003] et surtout g´en´erer un maillage volumique ad´equat. Comme nous l’avons vu dans la partie 3.2, il y a de nombreuses configurations dans lesquelles il est difficile de respecter la g´eom´etrie du mod`ele g´eologique tout en conservant un nombre et une qualit´e d’´el´ements acceptables. Dans ce chapitre, nous choisissons d’autoriser les simplifications du mod`ele pour adapter sa r´esolution, et de privil´egier le nombre et la qualit´e des triangles remaillant les surfaces. L’objectif est double : remailler les surfaces d´efinissant le mod`ele et adapter la r´esolution du mod`ele. La plupart des tr`es nombreuses m´ethodes de (re)maillage de surface ne permettent pas de modifier le mod`ele d’entr´ee (partie 2.4). Les m´ethodes de type Delaunay contraint ou frontale remaillent les surfaces une par une sans consid´erer le mod`ele dans son ensemble. Les m´ethodes qui fournissent des garanties th´eoriques sur la topologie et la qualit´e du r´esultat ne donnent pas du tout de contrˆole sur la r´esolution et le nombre d’´el´ements dans le maillage final (partie 2.4.2). Lorsque la qualit´e des triangles des surfaces initiales est tr`es mauvaise, le calcul d’une param´etrisation pour les projeter dans un espace 2D peut poser probl`eme. Les m´ethodes de maillage de surface de type octree exploitent une subdivision du mod`ele en voxels. Cette subdivision est ´egalement utilis´ee par les m´ethodes de simplification qui op`erent sur les composantes volumiques d’un mod`ele, elles analysent localement les relations entre les composantes du mod`ele et les cellules pour reconstruire un maillage `a la r´esolution de la subdivision consid´er´ee (partie 2.2.3). Nous proposons une approche similaire combin´ee `a une m´ethode de remaillage de type optimisation de diagramme de Vorono¨ı et nous exploitons le fait que, lorsque les sites ne v´erifient pas la propri´et´e de la boule topologique, la triangulation de Delaunay restreinte est une version simplifi´ee de l’objet initial (partie 1.2.3 et figure 1.5). 4.2 Objectifs Donn´ees d’entr´ee La m´ethode de remaillage que nous proposons prend en entr´ee un ensemble de surfaces triangul´ees qui d´efinissent un mod`ele structural par fronti`ere valide. Leurs maillages doivent ˆetre conformes. R´esultat Un remaillage global des surfaces du mod`ele pour lequel les triangles sont les plus ´equilat´eraux possible. Les lignes de contact entre les surfaces sont ´egalement remaill´ees, et les surfaces restent conformes le long de ces lignes. Des modifications sont r´ealis´ees lorsque des lignes de contacts ou des coins sont trop proches (figure 4.1). 1. Notre objectif est d’obtenir des triangles ´equilat´eraux.Optimisation de l’echantillonnage du mod ´ ele ` 59 Modèle initial fracturé Modèle fracturé remaillé Horizon supérieur initial Horizon supérieur remaillé 1 2 3 1 2 3 Figure 4.1 – Remaillage d’un modele affect ` e par 200 fractures. ´ La qualit´e du maillage des surfaces est am´elior´e. Trois types de configuration sont potentiellement probl´ematiques : (1) les fractures s’intersectant `a peine (2) celles qui s’intersectent presque (3) celles qui s’intersectent `a angle faible, sont remaill´ees et modifi´ees en fonction de la r´esolution souhait´ee. Cette capacit´e `a simplifier le mod`ele d’entr´ee permet d’adapter la r´esolution du mod`ele automatiquement. La m´ethode a ´et´e appliqu´ee `a 12 mod`eles structuraux (partie 4.5). Principe Nous utilisons un diagramme de Vorono¨ı restreint barycentrique pour placer les sommets du maillage final de mani`ere ad´equate pr`es des surfaces et des lignes de contact du mod`ele initial (partie 4.3). Ensuite, un contrˆole topologique permet de d´eterminer les sommets des triangles du maillage final `a partir des intersections entre le diagramme de Vorono¨ı des sites et les ´el´ements du mod`ele (partie 4.4). 4.3 Optimisation de l’´echantillonnage du mod`ele 4.3.1 Optimisation CVT Dans un premier temps, un nombre pr´ed´etermin´e de sites est plac´e dans l’espace de telle sorte qu’ils soient un bon ´echantillonage du mod`ele structural. Chaque site ´echantillonne le mod`ele car il repr´esente la partie du mod`ele plus proche de ce site que des autres sites : sa cellule de Vorono¨ı restreinte (partie 1.2.1). Le nombre initial de sites d´etermine la r´esolution `a laquelle le mod`ele va ˆetre remaill´e, il peut ˆetre,60 Chapitre 4. Maillage surfacique par exemple, estim´e en prenant la racine carr´ee de l’aire des surfaces du mod`ele divis´ee par la longueur d’arˆete cible. Nous avons vu dans la partie 1.3.2 que, quand le diagramme de Vorono¨ı restreint est barycentrique, les cellules de Vorono¨ı restreintes sont compactes et que la triangulation de Delaunay restreinte remaille les surfaces du mod`ele avec des triangles quasiment ´equilat´eraux. 4.3.2 Optimisation de la position des sites le long des bords Lors du calcul du diagramme de Vorono¨ı restreint `a une surface avec bord, les sites, apr`es optimisation, ne sont pas sur ce bord car le barycentre d’une cellule intersectant une ligne du bord n’est pas sur cette ligne. Pour modifier cette position de stabilit´e, un terme d’´energie sp´ecifique aux bords peut ˆetre ajout´e `a la fonction objectif pour les sites dont la cellule de Vorono¨ı (Vp) intersecte la ligne du bord (B) : FB(S) = X p∈S "Z Vp∩B ||y − p||dy#2 (4.1) Pour ´evaluer cette fonction et son gradient, la restriction de chaque cellule de Vorono¨ı au bord (Vp ∩ B) est d´ecompos´ee en plusieurs segments (figure 4.2). Pour chaque segment, E = C1C2, la fonction vaut F E B = 1/2||−−→C2 p. −−−→ C2 C1||2 , c’est `a dire l’aire du triangle p C1 C2 au carr´e (figure 4.2). Le gradient est : dFB dS (p, C1, C2) = dF E B dp + dFB dC1 dC1 dS + dFB dC2 dC2 dS (4.2) o`u dFB/dp = −→N × −−−→ C1 C2, les termes dFB/dC1 et dFB/dC2 sont ´evalu´es de mani`ere similaire. Le terme dC/dS d´epend de la configuration du point C. Soit C est un sommet du maillage des surfaces initiales et sa d´eriv´ee par rapport aux sites est nulle, soit C est `a l’intersection du bisecteur s´eparant les sites p0 et p1 et est calcul´e comme : dC dS =   [p1 − p0] t [N1] t [N2] t     [C − p0] t [p1 − C] t [C − p0] t 0 0 0   (4.3) o`u N1 et N2 sont les normales `a deux plans construits de sorte que leur ligne d’intersection contienne le segment C1C2. La preuve est donn´ee par L´evy et Liu [2010]. Pour am´eliorer le placement des sites pr`es des bords et des lignes de contacts nous minimisons donc la fonction objectif F = (1 − α)FCV T + αFB avec α le ratio entre les normes des gradients de l’´energie de bord et de l’´energie CVT. 4.3.3 Impl´ementation L’algorithme 4.1 r´esume les diff´erentes ´etapes de l’optimisation d’un nombre donn´e de sites sur un mod`ele Ω. (1) Le placement initial des sites est fait en utilisant la m´ethode d´evelopp´ee par L´evy et Bonneel [2013]. (2) Le diagramme de Vorono¨ı restreint est calcul´e avec une m´ethode ´egalement d´ecrite par L´evy et Bonneel [2013]. (3) Les contributions de chaque cellule du diagramme de Vorono¨ı restreint `a la fonction objectif et `a son gradient sont calcul´es suivant la m´ethode de Yan et al.Construction du maillage 61 p C1 C2 Figure 4.2 – Segments d’integration pour le calcul de l’ ´ energie de bord. ´ [2009]. La minimisation de la fonction objectif F est faite par un algorithme L-BFGS [Nocedal, 1980]. En pratique, l’optimisation est arrˆet´ee apr`es un nombre d’it´erations pr´ed´etermin´e, typiquement une centaine. 4.4 Construction du maillage Une fois que les sites sont distribu´es de mani`ere optimale, leur diagramme de Vorono¨ı restreint au mod`ele structural est calcul´e afin de d´eterminer les sommets et les triangles du maillage r´esultant. 4.4.1 Remaillage des composantes connexes surfaciques Prenons par exemple un mod`ele, non g´eologique, dans lequel les surfaces n’ont pas d’intersection et n’ont pas de bord : deux sph`eres imbriqu´ees l’une dans l’autre (figure 4.3). Les deux surfaces sont ´echantillonn´ees avec 100 sites qui, apr`es optimisation, sont positionn´es entre les deux sph`eres (figure 4.4a). Pour avoir deux sph`eres dans le maillage final, deux sommets sont associ´es `a chaque site : un pour chaque composante connexe de la cellule de Vorono¨ı restreinte du site (figure 4.4b). Il y a ensuite un triangle `a construire pour chaque point partag´e par trois cellules de Vorono¨ı restreintes (figures 4.3c et 4.4c). Le maillage obtenu est dual des composantes connexes du diagramme de Vorono¨ı barycentrique restreint. Il est plus fid`ele au mod`ele initial que la triangulation de Delaunay restreinte (une seule sph`ere dans ce cas o`u la propri´et´e de la boule topologique n’est pas v´erifi´ee - partie 1.2.4). Si toutes les Algorithme 4.1 - Optimisation des sites. Donn´ees : le mod`ele Ω, le nombre de sites n R´esultat : un ´echantillonage isotrope S de Ω (1) S ← ´echantillonage al´eatoire de Ω [L´evy et Bonneel, 2013] ; tant que le minimum n’est pas atteint faire (2) Calculer le diagramme de Vorono¨ı restreint de S `a Ω [L´evy et Bonneel, 2013] ; (3) Calculer F(S) et dF/dS [Liu et al., 2009] ; (4) D´eterminer la direction de recherche ∆S [Liu et al., 2009] ; (5) S ← S + ∆S ; fin62 Chapitre 4. Maillage surfacique (a) (b) (c) Figure 4.3 – Remaillage de deux spheres imbriqu ` ees. ´ (a) 100 sites optimis´es sont entre les deux sph`eres. (b) Chaque cellule de Vorono¨ı restreinte a 2 composantes connexes. (c) Dual des composantes connexes du diagramme de Vorono¨ı restreint (voir aussi la figure 4.4). Figure 4.4 – Remaillage de deux surfaces proches. (a) 3 sites (A, B et C) sont positionn´es entre deux surfaces, leurs cellules de Vorono¨ı restreintes ont deux composantes connexes. La triangulation de Delaunay restreinte a un seul triangle ABC. (b) Deux sommets sont ajout´es pour chaque cellule. (c) Deux triangles A1B1C1 et A2B2C2 sont construits comme duals des points v1 et v2 qui sont partag´es par trois cellules de Vorono¨ı. composantes connexes des cellules de Vorono¨ı restreintes sont contractiles, le th´eor`eme du multi-nerf [Colin de Verdi`ere et al., 2012] donne que le mod`ele construit de cette fa¸con est ´equivalent par homotopie au maillage d’entr´ee. 4.4.2 Remaillage des lignes de bord Consid´erons `a pr´esent une surface qui a un bord. De la mˆeme mani`ere que pour les surfaces, ce bord peut ne pas ˆetre correctement remaill´e quand le nombre de sites est trop petit, c’est-`a-dire quand la propri´et´e de la boule topologique n’est pas respect´ee. Pour le remailler de mani`ere ad´equate, autant de points que la restriction de sa cellule de Vorono¨ı restreinte au bord a de composantes connexes sont associ´es `a chaque site (figure 4.5). Ces points additionnels doivent ˆetre pris en compte pour construire les triangles. Puisqu’une cellule de Vorono¨ı restreinte peut correspondre `a plusieurs points (figure 4.5b), le dual des points de Vorono¨ı n’est plus toujours un triangle. Des polygones, duals des arˆetes de Vorono¨ı qui intersectent deux fois le bord, sont `a construire (figures 4.5c & d). Plus il y a d’intersections entre une cellule de Vorono¨ı restreinte et les lignes de bord du mod`ele, plus il y a de sommets dans le maillage final qui correspondent `a cette cellule. Cela peut conduire `a des configurations o`u les polygones `a construireConstruction du maillage 63 (a) (c) (b) (d) Figure 4.5 – Remaillage d’une surface avec bord. (a) 21 sites ´echantillonnent l’´etoile ; les cellules de Vorono¨ı des sites blancs intersectent deux fois le bord, celles les sites noirs l’intersectent au plus une fois. (b) Chacun des sites blancs correspond `a deux points. (d) Les polygones du maillage final sont duals des points de Vorono¨ı restreints voisins d’au moins une cellule de Vorono¨ı restreinte associ´ee `a deux points (gris), et des segments de Vorono¨ı restreints qui intersectent deux fois le bord (c). s’intersectent. Nous proposons donc de r´eunir les points associ´es `a une composante connexe d’une cellule s’ils sont plus de deux. Cette augmentation de la robustesse de la m´ethode se fait au prix de modifications des connexions entre les surfaces du mod`ele, modifications qui ne sont pas toujours valides d’un point de vue g´eologique. De plus, ces modifications d´ependent du positionnement des sites dans le mod`ele et une petite modification de ces positions peut entraˆıner la suppression ou l’apparition d’une ou plusieurs modifications. Ce sont cependant ces modifications qui permettent de contrˆoler la r´esolution du mod`ele. 4.4.3 Remaillage des coins Les derniers ´el´ements du mod`ele `a prendre en compte dans le remaillage sont les coins : les points qui d´elimitent les composantes connexes des lignes de bord. Pour tous les repr´esenter dans le maillage final, il n’y a pas d’autre solution que d’associer chacun d’eux `a un sommet du maillage final. Pour reconstruire le mod`ele d’entr´ee, il y a, dans chaque cellule de Vorono¨ı restreinte, un point par coin, un point par composante connexe de ligne, et un point par composante connexe de surface (algorithme 4.2). La pr´esence de plusieurs coins dans une composante connexe d’une cellule de Vorono¨ı restreinte au bord signifie que la r´esolution n’est pas suffisante, et nous choisissons de ne pas remettre tous ces coins dans le maillage final mais de les regrouper64 Chapitre 4. Maillage surfacique Figure 4.6 – Configurations dans lesquelles le modele est modifi ` e. ´ (a) La cellule de Vorono¨ı restreinte au centre correspond `a 3 points (A, B, C) (b) Les polygones `a construire `a partir de ces points ABGF et ADEC se recoupent. Les trois points sont regroup´es en P. (c) Des lignes de contacts (noires) coupent cette cellule en 6 composantes connexes. (d) Les 4 coins (A, B C, et D) sont regroup´es en P car ils sont reli´es par des segments du bord. (figure 4.6). Une fois ce regroupement effectu´e, le regroupement pr´ec´edemment d´ecrit est ´egalement r´ealis´e. Ainsi, chaque composante connexe de chaque cellule de Vorono¨ı restreinte est associ´ee `a un ou deux points et les quadrangles ou triangles `a construire `a partir de ces points ne s’intersectent pas. La derni`ere modification que nous proposons est de regrouper les sommets associ´es `a une mˆeme cellule de Vorono¨ı qui correspond `a des composantes s´epar´es par une distance inf´erieure `a une r´esolution (distance) donn´ee en entr´ee. Ceci permet de simplifier les composantes du mod`ele dont la r´esolution est inf´erieure `a cette distance (figure 4.7). Par exemple sur la figure 4.6c, les petits rejets le long des failles ont ´et´e annul´es. 4.4.4 Impl´ementation L’algorithme 4.3 r´esume les ´etapes de la construction du maillage final `a partir d’une surface polygonale repr´esentant le diagramme de Vorono¨ı restreint dans lequel chaque facette est associ´ee au triangle et au site dont elle est issue. Premi`erement les cellules de Vorono¨ı restreintes et leurs composantes connexes sont construites, puis les sommets `a associer `a chacune d’elle sont calcul´es (algorithme 4.2). Enfin les polygones reliant ces sommets sont construits (figure 4.5). 4.4.5 Am´eliorations du maillage La qualit´e des triangles du maillage produit d´epend compl`etement de la forme des composantes connexes des cellules de Vorono¨ı restreintes. Quand cette forme est proche d’un hexagone r´egulier, les triangles duals sont proches de l’´equilat´eralit´e. En revanche, les petites cellules triangulaires peuvent poser probl`eme. Elles apparaissent quand une arˆete ou un point de Vorono¨ı est situ´e `a proximit´e d’une surface ou ligneConstruction du maillage 65 Figure 4.7 – Controle de la r ˆ esolution du mod ´ ele. ` Si les surfaces ´echantillonn´ees par une cellule sont s´epar´ees par une distance inf´erieure `a une valeur donn´ee dresolution ´ , les points correspondants sont regroup´es. (a) Le rejet minimal sur la faille dmin est inf´erieur `a dresolution ´ et les points A et B sont regroup´es. Le rejet est annul´e dans le mod`ele final. (b) La distance minimale entre les deux surfaces est inf´erieure `a dresolution ´ et dans le mod`ele remaill´e elle sont jointes. Algorithme 4.2 - Calcul des sommets du maillage final. Donn´ees : cellule de Vorono¨ı restreinte du site i, distance dresolution ´ R´esultat : points remaillant la cellule (1) pour chaque composante connexe CC faire si CC intersecte les lignes de bord alors pour chaque composante connexe du bord BC faire si BC contient des coins alors Associer un point `a chaque coin ; sinon Associer un point `a BC ; fin fin sinon Associer un point au barycentre de CC ; fin fin (2) Regrouper les points correspondants `a des coins et reli´es par des segments du bord (figure 4.6b) ; (3) pour chaque composante connexe CC faire si nombre de points > 2 (figure 4.6a) alors Regrouper les points ; fin fin (4) Regrouper les points correspondant `a des objets proches du mod`ele (dmin HAL Id: tel-01093355 https://hal.inria.fr/tel-01093355 Submitted on 10 Dec 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.1 Thèse de Doctorat é c o l e d o c t o r a l e s c i e n c e s p o u r l ’ i n g é n i e u r e t m i c r o t e c h n i q u e s U N I V E R S I T É D E F R A N C H E - C O M T É No X X X THÈSE présentée par Ivan Enderlin pour obtenir le Grade de Docteur de l’Université de Franche-Comté K 8 k Génération automatique de tests unitaires avec Praspel, un langage de spécification pour PHP The Art of Contract-based Testing in PHP with Praspel Spécialité Informatique Instituts Femto-ST (département DISC) et INRIA (laboratoire LORIA) Rapporteurs Lydie du Bousquet Professeur à l’Université Joseph Fourier Arnaud Gotlieb Chargé de recherche habilité à l’IRISA Examinateur Michel Rueher Professeur à l’Université de Nice Sophia Antipolis Directeurs Fabrice Bouquet Professeur à l’Université de Franche-Comté Frédéric Dadeau Maître de conférences à l’Université de Franche-Comté Alain Giorgetti Maître de conférences à l’Université de Franche-Comté Soutenue publiquement le 16 juillet 2014 devant le Jury composé de :Remerciements Je tiens à profiter de l’occasion qui m’est offerte pour remercier toutes les personnes qui ont été soutenantes. Je tiens à remercier avant tout mon Dieu, the Everlasting, pour cette épreuve, ses promesses et son soutien en tout temps. Merci. Je souhaite remercier ma petite femme, Hend, lady caramel, pour son éternel amour, sa patience, son écoute et son infini tendresse. Je t’aime. .½J .k@ . ú ×XB @ A î EA Jk C « ð A î  EA ’ @ ð A ëQ . C « Y Jë  èñÊmÌ'@ ð  è QK QªË@ ú  æ k.ð P Qº ƒ@ à@ YK P@ Je souhaite particulièrement remercier mes parents et beaux-parents, Nadine et Christophe, Q ÖÞ … ð  èA J k, mes sœurs et belles-sœurs, Naomi et Joanna, ø Q å„ ð PðQ ¯, ainsi que toute ma famille, pour leur présence et leur soutien. Merci à tous les amis de France, de Suisse, de Tunisie, du Maroc, d’Italie, de Grèce, du Brésil, du Kenya, de Belgique, du Mexique, de Macédoine et de partout, qui m’ont aidé dans ma thèse et qui m’aident dans Hoa. Par ordre alphabétique, un immense et sincère merci à Abdallah Ben O., Alexandre V., Alexis von G., Baptiste et Anne-Laure F., Елизабета F.-С., Emmanuel T., Frédéric H., Guislain D., Gérard E., Isabelle et Yves D., ÈC g. YÒm×, Jean-Marie G., Julien B., Julien C., Julien L., Kalou C. C., Laura et Raphaël E., Lucie et á  Ó  @ M., María Aydeé S. S. et Cédric J., Marta P., Mikaël R., Naomy W., Nawo M., Ophélie et Matthieu C., Raphaëlle M., Σοφία και Κώστας Τ., Stéphane P., Sylvie et Kiko F., Sébastien H., Willy M., Wilma et Fabio S. (et toute la troupe !), Yohann D., toute la communauté de Hoa, d’atoum et de PHP, et tout ceux que j’aurais oublié. . . Et bien sûr, merci à mes encadrants : Fabrice B., Frédéric D. et Alain G. pour leur savoir, leur patience et être restés à mes côtés durant cette aventure ! x y −15 −10 −5 0 5 10 15 −15 −10 −5 5 10 x = 16 sin(t) 3 y = 13 cos(t) − 5 cos(2t) − 2 cos(3t) − cos(4t) The Emergence of Multimodal Concepts: From Perceptual Motion Primitives to Grounded Acoustic Words Olivier Mangin To cite this version: Olivier Mangin. The Emergence of Multimodal Concepts: From Perceptual Motion Primitives to Grounded Acoustic Words. Robotics. Universit´e de Bordeaux, 2014. English. HAL Id: tel-01061809 https://tel.archives-ouvertes.fr/tel-01061809 Submitted on 8 Sep 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.Universite de Bordeaux ´ Ecole doctorale de math´ematiques et informatique ´ Th`ese pour obtenir le titre de Docteur en sciences Sp´ecialit´e informatique Emergence de concepts ´ multimodaux De la perception de mouvements primitifs a l’ancrage de mots acoustiques ` Pr´esent´ee par Olivier Mangin Effectu´ee sous la direction de Pierre-Yves Oudeyer Soutenue le 19 mars 2014 devant le jury form´e par Pr. Angelo Cangelosi — University of Plymouth Rapporteur Dr. Jean-Luc Schwartz — CNRS Rapporteur Dr. Jacques Droulez — Coll`ege de France President ´ Dr. Emmanuel Dupoux — Ecole des hautes ´etudes en sciences sociales ´ Examinateur Dr. Manuel Lopes — INRIA Examinateur Dr. David Filliat — ENSTA-ParisTech ´ ExaminateurA mes parents, ` A mes grand-parents, ` iiiivR´esum´e Cette th`ese consid`ere l’apprentissage de motifs r´ecurrents dans la perception multimodale. Elle s’attache `a d´evelopper des mod`eles robotiques de ces facult´es telles qu’observ´ees chez l’enfant, et elle s’inscrit en cela dans le domaine de la robotique d´eveloppementale. Elle s’articule plus pr´ecis´ement autour de deux th`emes principaux qui sont d’une part la capacit´e d’enfants ou de robots `a imiter et `a comprendre le comportement d’humains, et d’autre part l’acquisition du langage. A leur intersection, nous exami- ` nons la question de la d´ecouverte par un agent en d´eveloppement d’un r´epertoire de motifs primitifs dans son flux perceptuel. Nous sp´ecifions ce probl`eme et ´etablissons son lien avec ceux de l’ind´etermination de la traduction d´ecrit par Quine et de la s´eparation aveugle de source tels qu’´etudi´es en acoustique. Nous en ´etudions successivement quatre sous-probl`emes et formulons une d´efinition exp´erimentale de chacun. Des mod`eles d’agents r´esolvant ces probl`emes sont ´egalement d´ecrits et test´es. Ils s’appuient particuli`erement sur des techniques dites de sacs de mots, de factorisation de matrices et d’apprentissage par renforcement inverse. Nous approfondissons s´epar´ement les trois probl`emes de l’apprentissage de sons ´el´ementaires tels les phon`emes ou les mots, de mouvements basiques de danse et d’objectifs primaires composant des tˆaches motrices complexes. Pour finir nous ´etudions le probl`eme de l’apprentissage d’´el´ements primitifs multimodaux, ce qui revient `a r´esoudre simultan´ement plusieurs des probl`emes pr´ec´edents. Nous expliquons notamment en quoi cela fournit un mod`ele de l’ancrage de mots acoustiques. Cette th`ese a ´et´e effectu´ee au sein de l’´equipe Flowers de l’INRIA Bordeaux Sud-Ouest et financ´ee par une allocation moniteur polytechnicien (AMX). Mots-cl´es apprentissage multimodal ; acquisition du langage ; ancrage de symboles ; apprentissage de concepts ; compr´ehension de comportement humains ; d´ecomposition du mouvement ; primitive motrice ; d´ecomposition de taches ; factorisation de matrice positive ; apprentissage par renforcement inverse factoris´e vviR´esum´e substantiel Les sciences cognitives constituent aujourd’hui le sujet de recherches tr`es actives mais surtout sont `a l’intersection d’un grand nombre de domaines scientifiques. En effet l’apparition de plusieurs disciplines nouvelles telles les neurosciences, l’imagerie c´er´ebrale, mais aussi de la psychologie ou encore la ph´enom´enologie comme branche de la philosophie ont fait suite `a des d´ecouvertes scientifiques et avanc´ees technologiques majeures du si`ecle dernier. A ces sciences de la cognition, ayant pour objets ` principaux les intelligences humaines et animales, est venue s’ajouter l’informatique, dont l’av`enement comme science puis comme technologie a marqu´e la mˆeme p´eriode. Outre son apport, consid´erable pour les autres sciences, de la simulation num´erique, c’est en tant que nouveau langage que l’informatique a constitu´e le substrat n´ecessaire au d´eveloppement de l’intelligence artificielle. La robotique d´eveloppementale, dont l’´elaboration remonte aux derni`eres d´ec´enies s’inscrit dans un double h´eritage. D’une part, `a l’instar de l’intelligence artificielle, elle constitue non seulement un domaine applicatif des sciences cognitives, mais ´egalement un nouveau paradigme, autant exp´erimental que conceptuel, pour penser l’intelligence du vivant. D’autre part, `a la suite de la psychologie d´eveloppementale, elle se tourne r´esolument, non pas vers l’´etude de l’intelligence adulte, mais vers celle des m´ecanismes qui permettent sa maturation. En r´ealit´e l’id´ee d’un ordinateur programm´e, non pas pour faire mais pour apprendre (Turing, 1950), pr´ec`ede le d´eveloppement de l’intelligence artificielle comme domaine actif de recherche. En outre, on ne saurait r´esoudre `a la simple compr´ehension d’un programme le d´eveloppement de l’intelligence. Jean Piaget en propose ainsi une approche syst´emique : ≪ L’intelligence ne d´ebute ainsi ni par la connaissance du moi ni par celle des choses comme telles, mais par celle de leur interaction, et c’est en s’orientant simultan´ement vers les deux pˆoles de cette interaction qu’elle organise le monde en s’organisant elle-mˆeme. ≫ (Piaget, 1937) La robotique apporte ici un ´eclairage particulier : en effet mod´eliser l’intelligence en int´eraction avec le monde c’est mod´eliser le corps, mais aussi la perception sensorielle et l’expression motrice. Le travail pr´esent´e dans cette th`ese embrasse cette approche de la robotique d´eveloppementale : il s’attache `a ´etudier les m´ecanismes de l’apprentissage chez le nourrisson ou l’enfant, entre autre par le d´eveloppement de techniques permettant `a des syst`emes cognitifs artificiels d’atteindre des comportements d’apprentissage similaires. Il s’articule plus pr´ecis´ement autour de deux th`emes principaux qui sont, d’une part la capacit´e d’enfants ou de robots `a imiter correctement des humains et `a comprendre leur comportement, et d’autre part l’acquisition du langage. La notion d’imitation a ´et´e ´etudi´ee sous de nombreux aspects. En effet ce terme viiviii regroupe en premier lieu un ensemble de m´ecanismes qui jouent un rˆole essentiel dans la transmission culturelle, autant chez l’animal que l’humain (Whiten and Ham, 1992, Nadel, 1986, Tomasello, 2008). D’autre part, il a ´et´e mis en ´evidence la capacit´e d’une classe de neurones, appel´es neurones miroirs, `a s’activer aussi bien lors de l’ex´ecution d’une action par un primate, que lors de son observation, ex´ecut´ee par un autre agent (Cattaneo and Rizzolatti, 2009). Enfin, l’application de l’imitation `a la transmission de comp´etence d’un humain `a un robot est ´egalement sujette `a de nombreux travaux de recherche. D’autre part, sans n´ecessairement en viser la reproduction, la compr´ehension des comportement humains par des syst`emes de surveillance ou des robots pr´esente ´egalement de nombreuses perspectives d’application. Notre travail aborde ces probl´ematiques plus sp´ecifiquement sous l’angle des questions ≪ Qu’imiter ? ≫ et ≪ Quand imiter ? ≫. En effet les comportement humains sont souvent composites et il n’est, par exemple, pas attendu d’un robot ou d’un ´el`eve qu’il r´ep`ete les instructions du professeur en plus de reproduire un geste de danse enseign´e. Nous ´etudions la question de la d´ecomposition d’un mouvement ou comportement complexe en parties pertinentes et expliquons en quoi elle n’est en fait qu’une facette du probl`eme de la structuration du mouvement. La question de l’aquisition du langage est un second th`eme dominant de ce travail. Nous nous int´eressons plus pr´ecis´ement `a la d´ecouverte et l’apprentissage dans le flux acoustique d’unit´es lexicales ou sous-lexicales ainsi qu’`a celle de leur valeur s´emantique. Plus sp´ecifiquement c’est le lien entre l’acquisition du langage et l’apprentissage de gestes ou de motifs perceptuels qui nous int´eresse. Nous ´etudions d’une part ce lien `a travers un ensemble d’analogies. Analogie de l’origine perceptuelle commune de ces apprentissage, analogie de la langue parl´ee et du langage des signes. Mais surtout analogie de certaines structures du langage et de l’action : un mouvement complexe se d´ecompose en plusieurs gestes, sa description linguistique en plusieurs mots. Enfin, analogie des ambiguit´es introduite par cette structure : la difficult´e de d´ecomposer une phrase en mots (Brent, 1999) fait ´echo `a celle du d´ecoupage d’une action complexe en gestes ´el´ementaires mais ´egalement au probl`eme de la s´eparation aveugle de sources, bien connu des acousticiens. Nous nous effor¸cons dans ce travail de d´evelopper une dimension algorithmique de ces analogies; c’est `a dire que nous proposons de r´esoudre par les mˆemes m´ethodes et dans un cadre exp´erimental similaire, des probl`emes provenant de chacun de ces domaines. D’autre part le lien entre l’acquisition du langage et celle de gestes ´el´ementaires ou de motifs visuels, apparait fortement dans la question de l’apprentissage de la s´emantique. Le probl`eme de l’ancrage de symboles (Harnad, 1990, Glenberg and Kaschak, 2002) questionne ainsi l’origine du lien entre les mots du langage et leur sens, par exemple des gestes qu’ils d´ecrivent. Dans ce travail nous ´etudions de front, non seulement l’origine de ce lien, mais ´egalement l’origine de la perception des mots eux mˆemes et celle des unit´es s´emantiques. Encore une fois, cette question n’est pas sans ambig¨uit´e, `a commencer par l’ambiguit´e de la traduction d´ecrite par Quine (1960). Le travail pr´esent´e unifie ces diff´erentes probl´ematiques dans le cadre g´en´eral de l’apprentissage de motifs et structures dans un flux perceptuel multimodal. Nous nous concentrons plus pr´ecis´ement sur le cas o`u cette structure prend la forme d’un r´epertoire d’´el´ements ou de motifs primitifs r´ecurrents dans la perception. La notion d’´el´ements primitifs ainsi que leurs propri´et´es combinatoires sont donc au centre de ce travail. Cette notion couvre des domaines vari´es et nous la d´eclinons simultan´ement `a travers les exemples de mouvements basiques de danse, d’objectifs simples qui composent des tˆaches motrices complexes, puis de sons ´el´ementaires,ix tels les phon`emes ou les mots. Finalement, nous expliquons comment de tels motifs redondants peuvent ˆetre appris, qui recouvrent plusieurs modalit´es, comme par exemple la vue et l’ou¨ıe. Nous d´emontrons que l’apprentissage de ces motifs constitue un mod`ele d’un aspect essentiel de l’acquisition du langage : l’ancrage des mots dans des concepts s´emantiques. La d´ecomposition de mouvement en gestes simultan´es Une premi`ere contribution importante de ce travail est d’´etudier la question nouvelle de la d´ecomposition de mouvements complexes, c’est `a dire qui combinent simultan´ement plusieurs gestes simples. En effet la d´ecomposition de mouvements dans le cadre de l’imitation, en robotique mais aussi dans le domaine de la compr´ehension automatique d’activit´es humaines, a principalement ´et´e ´etudi´ee dans le cas o`u les gestes complexes sont obtenus par juxtaposition successive de plusieurs gestes ´el´ementaires. Nous proposons dans ce travail d’´etudier une structure orthogonale, la composition simultan´ee, que nous illustrons par des mouvements de danse. En r´ealit´e les chor´egraphies font clairement apparaitre deux dimensions pour la composition de mouvements : en s´equence et en parall`ele. La question que nous posons est la suivante. Est-il possible pour un syst`eme cognitif artificiel qui observe un danseur ex´ecuter des chor´egraphies, d’apprendre, `a partir de son observation seule, le lexique de gestes que le danseur combine dans son mouvement ? En d’autres termes, est-il possible pour notre syst`eme d’apprendre la structure sous-jacente aux d´emonstrations observ´ees ? Il apparait rapidement `a l’´etude de cette question que sa r´eponse n’est pas unique : rien ne garantit qu’un tel syst`eme construise le mˆeme lexique de gestes qu’un humain dans la mˆeme situation. En r´ealit´e, rien ne garantit non plus que deux humains aux origines culturelles diff´erentes percevraient les mˆemes gestes dans ces mouvements observ´es. Cette ambig¨uit´e est encore une fois l’analogue directe de celle rencontr´ee dans le probl`eme de la s´eparation aveugle de source ou bien dans les ph´enom`enes de multistabilit´e des perceptions visuelles (Blake, 1989). Cette difficult´e en cache ´egalement une autre : celle de l’´evaluation d’un tel syst`eme. En effet, comment ´evaluer la valeur intrins`eque des repr´esentations mentales que se construit un tel syst`eme perceptuel ? Comment d´efinir ce que c’est que de comprendre la structure des mouvements observ´es ? En r´eponse `a cette difficult´e, nous consid´erons le cas o`u le flux perceptuel du syst`eme cognitif inclue des symboles inconnus, qui forment une description linguistique des mouvements observ´es. Chaque geste du r´epertoire du danseur est associ´e `a un symbole et chaque chor´egraphie est d´ecrite par l’ensemble form´e des symboles associ´es `a chacun des gestes qui la composent. A la ` suite d’un phase d’entrainement, au cours de laquelle le syst`eme observe un ensemble de d´emonstrations de chor´egraphies ainsi que leurs descriptions, il est ´evalu´e de la mani`ere suivante : une nouvelle chor´egraphie lui est pr´esent´ee et il doit en reconstituer une description linguistique en utilisant les symboles. Cette description peut ˆetre alors compar´ee `a l’ensemble de gestes que le danseur a effectivement compos´es. Ce proc´ed´e est pr´esent´e dans la figure 1. A ce probl`eme nouveau nous proposons de r´epondre `a l’aide d’un algorith ` me classique : la factorisation de matrices positives. Soit un ensemble de stimuli perceptuels, repr´esent´es chacun par un vecteur de grande dimension, et regroup´es dans une matrice de donn´ee V . Les algorithmes de factorisation de matrices permettent de calculerx L5 ? linguistic descriptions choreography demonstrations The system observes a choreography and is asked to reconstruct the associated linguistic description. Task L2 L4 L L6 3 Demonstration 1 Demonstration 2 Training Figure 1 – Proc´ed´e d’entrainement et d’avaluation du syst`eme. L’entrainement se fait par l’observation des d´emonstrations de chor´egraphies et de leur descriptions linguistiques (`a gauche). Le syst`eme est alors ´evalu´e sur sa capacit´e `a d´ecrire correctement une nouvelle d´emonstration de chor´egraphie (`a droite). deux matrices W et H de telle sorte que : V ≃ W · H. Dans cette ´equation la matrice W est appel´ee dictionaire et forme une base de dimension inf´erieure `a celle de l’espace des donn´ees dans laquelle les observations sont approxim´ees. Chacun des vecteurs qui la composent, et que nous appellerons atomes, est ainsi de mˆeme nature que les observations. La matrice H contient les coefficients de cette d´ecomposition ; nous l’interpr´eterons comme la repr´esentation compress´ee ou interne des observations par notre syst`eme. Les algorithmes de factorisation de matrices positives s’int´eressent particuli`erement au cas o`u ces matrices sont `a coefficients positifs. Une cons´equence importante de cette contrainte est que chaque atome contribue ou non positivement `a l’approximation des observations, en particulier une partie de mouvement est pr´esente ou non mais n’est en aucun cas combin´ee en n´egatif. Cette interpr´etation, bien qu’intuitive, de la contrainte correspond en r´ealit´e `a des propri´et´es int´eressantes de cette m´ethode. La notion de similarit´e, laiss´ee volontairement floue dans l’´equation pr´ec´edente, constitue un param`etre essentiel de cette famille d’algorithmes ; nous utiliserons dans la suite les deux cas particuliers de la distance Euclidienne, d´eriv´ee de la norme de Frobenius sur les matrices, et de la I-divergence, apparent´ee `a la divergence de Kullback-Leibler. Plus pr´ecis´ement nous utilisons les algorithmes par mise `a jour multiplicative, qui optimisent simultan´ement cette approximation par rapport au dictionnaire et aux coefficients Lee and Seung (1999). Dans l’exp´erience consid´er´ee, chaque observation est en r´ealit´e constitu´ee de deux modalit´es : d’une part le mouvement du danseur, et d’autre part sa description symbolique. La contrainte majeure de la m´ethode consid´er´ee est que les observations doivent ˆetre repr´esent´ees par des vecteurs de dimension fixe et `a coefficients positifs. Nous choisissons de repr´esenter de cette mani`ere les observations dans chaque modalit´e, avant de fusionner le mouvement et sa description symbolique en concat´enant leurs repr´esentations vectorielles. De plus, la motivation de cette exp´erience est d’apprendre au syst`eme la structure combinatoire des mouvements observ´es. La m´ethode choisie est capable de repr´esenter les vecteurs d’observations comme combinaison lin´eaire des atomes du dictionnaire. Afin de tirer parti de cette propri´et´e, nous avons donc d´evelopp´e une nouvelle repr´esentation des mouvements de longueur arbitraire par un vecteur de taille constante, qui rend compte approximativement de la combinaison d’´el´ements de ce mouvement par la combinaison lin´eaire des repr´esentations de cesxi Gesture 1 Gesture 2 Gesture 3 Gesture 4 Gesture 5 Gesture 6 Figure 2 – Sont repr´esent´es sch´ematiquement sur cette figure quelques uns des mouvements combin´es par le danseur dans les chor´egraphies. ´el´ements. Pour cela nous utilisons une repr´esentation `a base d’histogrammes de ces mouvements (pour plus de d´etails se r´ef´erer `a la suite de ce document ou Mangin and Oudeyer, 2012a). D’autre part, l’ensemble de symboles qui d´ecrit chaque mouvement est repr´esent´e sous la forme d’un vecteur binaire de dimensionalit´e le nombre total de symboles, repr´esentant par 1 la pr´esence du symbole dans la description et par 0 son absence. Du fait de cette repr´esentation, on peut d´ecomposer autant la matrice de donn´ee V que le dictionnaire W en deux parties correspondant aux deux modalit´es, comme repr´esent´e dans les ´equations suivantes. V =  Vmouvement Vlangage  W =  Wmouvement Wlangage  Durant la phase d’entrainement, l’algorithme est utilis´e pour apprendre les matrices W et Hentrainement `a partir de l’ensemble des observations repr´esent´ees par V entrainement . Dans la phase d’´evaluation, l’algorithme est utilis´ee d’une mani`ere diff´erente. Cette fois-ci seuls les mouvement sont observ´es et repr´esent´es sous la forme d’un matrice V ´evaluation mouvement `a partir de laquelle le mˆeme algorithme, fonctionnant cette fois `a dictionnaire Wmouvement fixe, fournit une repr´esentation interne H´evaluation de ces mouvements. Finalement les descriptions symboliques correspondant `a ces coefficients sont simplement calcul´ees comme le produit matriciel : V reconstruit langage = Wlangage ·H´evaluation . Les descriptions linguistiques ainsi obtenues sont constitu´ees de coefficients positifs mais non binaires. Un m´ecanisme de seuillage est alors utilis´e pour obtenir un vecteur binaire que l’on peut comparer `a la vraie description. En comptant comme succ`es une reconstruction exacte, c’est `a dire o`u tout les bons symboles mais uniquement ceux-ci sont fournis, on peut calculer un score moyen du syst`eme comme ceux repr´esent´es ci dessous. Afin d’obtenir les r´esultats suivants, nous avons enregistr´e principalement deux bases de donn´ees de mouvements composites. Celles-ci contiennent respectivement 137 chor´egraphies obtenues par combinaison de 16 getses et 277 chor´egraphies obtenues par combinaison de 47 gestes. La figure 2 fournit quelques exemples de gestes utilis´es dans ces bases de donn´ees1 . Les r´esultats suivants pr´esentent les scores de reconstruction des descriptions de chor´egraphies par le syst`eme. Ces scores doivent ˆetre rapport´es au nombre de combinaisons possible des 47 gestes constituant le lexique (de l’ordre de 2000), mais 1Par ailleurs ces bases de donn´ees sont publiquement accessibles `a l’adresse suivante. http: //flowers.inria.fr/choreography_database.htmlxii lfull lgiven number 16 labels (SVM, linear) 0.818 — 16 labels (NMF, Frobenius) 0.854 0.971 16 labels (NMF, DKL) 0.789 0.905 47 labels (SVM, linear) 0.422 — 47 labels (NMF, Frobenius) 0.625 0.755 47 labels (NMF, DKL) 0.574 0.679 Table 1 – Resultats g´en´eraux sur les bases de donn´ees. A titre de comparaison on ` calcule ´egalement les scores (given number ) pour un probl`eme simplifi´e o`u le syst`eme connait le nombre de symboles ou gestes pr´esents dans l’observation. Une autre approche algorithmique utilisant des support vector machines (SVM) est ´egalement compar´ee. lfull lgiven number 16 labels (NMF, Frobenius) 0.568 0.800 16 labels (SVM, linear) 0.667 — 47 labels (NMF, Frobenius) 0.406 0.653 47 labels (SVM, linear) 0.206 — Table 2 – Resultats pour des combinaisons de gestes qui n’ont jamais ´et´e rencontr´ees au cours de l’entrainement. Ce r´esultat met l’accent sur la capacit´e du syst`eme `a reconnaˆıtre effectivement la structure des chor´egraphies en en construisant des descriptions in´edites. ´egalement au nombre plus consid´erable de descriptions symboliques possibles sans autre a priori sur la structure des gestes (247). Bien que ce premier ensemble de r´esultats d´emontre la capacit´e du syst`eme cognitif `a reconnaˆıtre les chor´egraphies dans leur ensemble, il ne garantit pas que ceci passe par une repr´esentation effective de la structure des mouvements. Afin d’´eclaircir ce point nous avons raffin´e l’´evaluation en testant le syst`eme uniquement sur des chor´egraphies in´edites, c’est `a dire des combinaisons de gestes qui n’ont jamais ´et´e observ´es ensemble par le syst`eme durant son entraˆınement. La table 2 pr´esente ces r´esultats qui d´emontrent que c’est bien la structure du mouvement qui est repr´esent´ee. En conclusion cette exp´erience d´emontre la possibilit´e d’explorer la d´ecomposition de mouvements naturels en composantes actives simultan´ement. Nous avons pour cela introduit une nouvelle repr´esentation des mouvements qui ne d´epend pas de la dur´ee de celui-ci et vise la transformation approximative de la combinaison des mouvements en combinaison lin´eaires de leurs repr´esentations. D’autre part, `a travers ce travail, nous ´etablissons un lien entre les algorithmes d’apprentissage de dictionnaire, appartenant au domaine du feature learning, avec la question de la d´ecomposition de mouvement. Au del`a de la simple transposition algorithmique, cela ´etablit une importante analogie entre ces domaines. De mani`ere int´eressante le cadre exp´erimental et l’approche algorithmique que nous instancions dans ce travail sont une transposition directe des travaux effectu´ees par ten Bosch et al. (2008), Driesen et al. (2009) dans le domaine de l’apprentissage du langage. Nous poursuivons cette analogie dans la derni`ere partie de ce travail o`u nous d´emontrons que la mˆeme m´ethode permet d’apprendrexiii simultan´ement `a partir du langage et du mouvement. La d´ecomposition du comportement en objectifs Une limitation importante des r´esultats que nous venons de pr´esenter vient directement de la repr´esentation des mouvements utilis´ee dans ceux-ci. En effet il s’agit en fait plus d’une signature de celui-ci que d’une repr´esentation de l’int´egralit´e de ses caract´eristiques. Une cons´equence majeure de cette limitation est qu’il est impossible de renverser cette exp´erience, c’est `a dire concr`etement, de faire danser par un robot ou un agent virtuel la chor´egraphie correspondant `a une description symbolique donn´ee. Cette limitation venant en premier lieu de la repr´esentation du mouvement, et non de l’algorithme de d´ecomposition, nous explorons dans un second travail pr´esent´e ici une approche similaire, cette fois fond´ee sur une autre conception du mouvement. Le premier travail pr´esent´e approchait le mouvement comme trajectoire du corps. Plus pr´ecis´ement nous nous concentrions sur la trace de cette trajectoire. Nous proposons ici d’envisager le mouvement comme moyen d’atteindre un objectif : de tels objectifs peuvent ˆetre de maintenir son centre de gravit´e `a une certaine altitude, comme r´ealis´e dans la station debout et la marche, ou bien d’influencer l’´etat de son environnement et en particulier des objets qu’il contient, comme lorsqu’on remplit un verre d’eau, ou des ˆetres qu’ils contient, comme lorsqu’on sourit `a un interlocuteur pour accroˆıtre sa sympathie. Cependant, `a objectif ou tˆache donn´ee, on observe une grande variabilit´e dans les trajectoires y aboutissant. En effet, suivant le contexte, de nombreux mouvements diff´erents peuvent r´ealiser le verre plein, selon que de l’eau est accessible dans une broc ou par un robinet et selon les obstacles qui s´eparent de l’un ou l’autre. Nous partons du constat suivant : deux mouvements tr`es diff´erents, au sens de leurs trajectoires, peuvent ˆetre per¸cus et sont g´en´eralement d´ecrits comme tr`es similaires lorsque, par exemple, ils conduisent `a un mˆeme effet d´esir´e. Se pose alors la question des m´ecanismes qui expliquent une telle similarit´e de la perception de haut niveau alors que les stimuli, g´en´eralement visuels, sont d´eriv´es de trajectoires ´eventuellement tr`es dissemblables. En particulier nous cherchons `a construire une repr´esentation du mouvement qui rende compte de telles similarit´es. Parce que pouvoir construire une telle repr´esentation a des applications importantes pour la compr´ehension automatique des comportements humains et pour leur imitation, plusieurs approches techniques ont ´et´e d´evelopp´ees dans ce but. Nous nous concentrons ici sur une formulation de cet objectif sous la forme de l’apprentissage par renforcement inverse (Russell, 1998). L’apprentissage par renforcement suppose que l’action est motiv´ee par la maximisation d’une r´ecompense. Etant donn´e ´ cette r´ecompense il s’int´eresse aux algorithmes d’optimisation des actions, et plus pr´ecis´ement d’une politique d’action. Le probl`eme inverse consiste `a ne pas partir de la r´ecompense mais de l’observation de trajectoires. On se place typiquement du point de vue d’un apprenti qui observe les mouvements d’un tuteur en train de d´emontrer la r´esolution d’une tˆache. L’objectif de l’apprenti est d’inf´erer une fonction de r´ecompense qui explique les actions du tuteur. L’hypoth`ese ici est celle du mod`ele du comportement du tuteur comme motiv´e par la maximisation de la r´ecompense. Malheureusement, mˆeme pour un tuteur parfait et une infinit´e de d´emonstrations, il n’y a pas unicit´e de la fonction de r´ecompense sous-jacente. Il est donc illusoire d’´evaluer l’apprenti au regard de la seule inf´erence de la fonction de r´ecompense. En pratique on s’attachera plutˆot `a une ´evaluation de sa performance du point du vuexiv du tuteur dans la r´esolution de la mˆeme tˆache. En d’autres termes, l’apprenti sera ´evalu´e dans l’espace des trajectoires qu’il produit `a partir d’une repr´esentation de la tˆache dans l’espace des r´ecompenses. L’int´erˆet d’une telle approche par rapport `a une imitation directe des trajectoires est qu’elle peut conduire `a une meilleur g´en´eralisation. En effet imiter le remplissage du verre d’eau par la copie exacte d’une ancienne trajectoire dans un nouveau contexte o`u les obstacles sont d´eplac´es est probablement vou´e `a l’´echec. Nous nous pla¸cons ici dans le cas de l’apprentissage par renforcement inverse dont nous ´etendons le cadre classique. En effet, la majorit´e des travaux sur cette question consid`ere que le tuteur fournit un grand nombre de d´emonstrations d’une seule tˆache. En pratique, on veut souvent pouvoir apprendre `a partir de l’observation d’un agent dont les mouvements vont naturellement correspondre `a plusieurs tˆaches inconnues a priori. De plus il semble que dans de nombreuses situations chacune de ces tˆaches n’est pas monolithique mais consiste plutˆot en la combinaison d’un ensemble d’objectifs ou de pr´ef´erences distinctes. En effet l’objectif du verre plein est combin´e avec ceux d’´eviter chacun des obstacles. Ainsi nous ´etudions ici, non pas directement l’apprentissage d’une tˆache `a partir de nombreuses d´emonstrations de cette tˆache, mais l’apprentissage d’un ensemble de tˆaches ou objectifs primitifs qui permettent d’expliquer des comportements correspondant `a des tˆaches distinctes mais partageant une structure commune. Nous formalisons ce probl`eme et en proposons une solution algorithmique dans le cadre d’un probl`eme synth´etique tr`es simle : le tuteur comme l’apprenti ´evoluent dans un monde constitu´e d’une grille d’´etats et les actions, correspondant aux d´eplacements cardinaux bruit´es, sont disponibles. Le tuteur utilise un petit nombre d’objectifs ´el´ementaires pour g´en´erer des tˆaches complexes par combinaisons lin´eaires al´eatoires de celles-ci. Il en fournit des d´emonstrations solvant approximativement chaque tˆache pour diff´erents contextes, c’est `a dire ici diff´erentes positions initiales. A partir de ` ces d´emonstrations un apprenti construit son propre lexique de tˆaches ´el´ementaires et recherche des repr´esentations des tˆaches d´emontr´ees comme combinaisons des tˆaches ´el´ementaires apprises. L’apprenti est ´evalu´e selon deux protocoles : dans un premier temps sur sa performance moyenne sur chaque tˆaches inf´er´ee `a partir des d´emonstrations du tuteur, et dans un second temps sur de nouvelles tˆaches complexes dont une d´emonstration br`eve est fournie. Ainsi nous ´evaluons la capacit´e de l’apprenti `a tirer parti de la structure commune des tˆaches d´emontr´ees pour mieux les apprendre, mais ´egalement son aptitude `a utiliser cette connaissance pour apprendre plus vite de nouvelles tˆaches partageant la mˆeme structure. Nous utilisons pour atteindre cet objectif une extension de l’algorithme par descente de gradient propos´e par Neu and Szepesv´ari (2007) `a un cadre de factorisation de matrice. Les r´esultats sur l’ensemble d’entrainement, c’est `a dire les d´emonstrations initiales utilis´ees pour apprendre le lexique de tˆaches ´el´ementaires, et sur l’ensemble de test sont pr´esent´ees en figure 3. Apprentissage multimodal et apprentissage du langage La contribution principale de ce travail est une autre extension de la premi`ere exp´erience pr´esent´ee : la situation d’apprentissage de celle-ci pr´esentait simultan´ement une d´emonstration de mouvement et sa description par un ensemble de symboles. Nous rempla¸cons `a pr´esent cet ensemble de symbole par l’enregistrement acoustique d’une phrase parl´ee. En d’autres termes nous consid´erons le probl`eme de l’apprentissage `a partirxv 0 50 100 150 200 Number of training tasks 0.0 0.5 1.0 1.5 2.0 2.5 3.0 Avg. dev. from opt. score on training tasks Flat Fact. (rand. init) Fact. (PCA init) Flat (PCA features) Flat (ground truth features) 0 50 100 150 200 Number of training tasks 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 Avg. dev. from opt. score on testing tasks Flat Fact. (rand. init) Fact. (PCA init) Flat (PCA features) Flat (features from ex.) Flat (ground truth features) Figure 3 – Pour un nombre de tˆaches suffisant, l’algorithme pr´esent´e d’apprentissage factoriel de tˆaches (fact), d´epasse la m´ethode classique (flat). Cette derni`ere ne pouvant apprendre la structure commune des diff´erentes tˆaches, consid`ere chaque tˆache comme ind´ependante. Les r´eultats pr´esent´es correspondent `a l’´ecart de la r´ecompense obtenue en moyenne par rapport `a la solution optimale (les points les plus bas sont donc les plus performants). Les courbes du haut repr´esentent les scores sur les tˆaches servant `a apprendre le lexique de tˆaches ´el´ementaires, celles du bas, les scores sur de nouvelles tˆaches. A titre de comparaison les figures repr´esentent ` ´egalement (flat (ground truth features)) la performance d’un apprenti qui connaitrait d´ej`a le dictionaire de tˆaches ´el´ementaires et devrait uniquement estimer comment celles-ci ont ´et´e combin´ees pour obtenir chaque d´emonstration. Finalement deux approches na¨ıves, mais inefficaces, au mˆeme probl`eme sont pr´esent´ees (flat (PCA features) et flat (features from ex.)) de donn´ees r´eelles, en ce qu’elles sont enregistr´ees `a partir de variables physiques continues qui r´esultent d’une production humaine, incluant plusieurs modalit´es. En pratique nous ´etudions, en plus des modalit´es de la parole et du mouvement, des images d’objets. Dans la premi`ere exp´erience, des gestes ´etaient associ´ees `a des symboles et un syst`eme cognitif devait apprendre `a reconnaˆıtre ces gestes en produisant les symboles ad´equats. Une fois ces symboles remplac´es par du son ou des images, c’est `a dire par des grandeurs continues et de grande dimension, une telle ´evaluation par la comparaison de symboles produits avec une valeur de r´ef´erence n’est plus possible, du moins pas de mani`ere imm´ediate. Nous choisissons donc une nouvelle forme d’´evaluation que nous voulons l’analogue comportemental du probl`eme de classification. Nousxvi Apprentissage Le syst`eme observe un ensemble d’exemples de gestes, chacun ´etant associ´e `a une description parl´ee. I make circles with my arm. I am clapping! Evaluation ´ Le syst`eme entend une nouvelle phrase et doit choisir un geste parmi plusieurs d´emonstrations qui correspond le mieux `a cette description. Look at the circles I do. ? L’apprenti choisit le geste qui correspond au mieux `a la phrase. Figure 4 – Illustration de la tˆache de classifiction cross-modale. La transcription des phrases parl´ees repr´esent´ee est illustrative de la pr´esence de mots cl´es dans les phrases parl´ees mais n’est en aucun cas observ´ee par l’apprenti. revenons pour cela au cas plus simple o`u un seul concept est pr´esent dans chaque exemple ; c’est `a dire dans le cas du mouvement qu’un seul geste est d´emontr´e `a la fois. Plus pr´ecis´ement nous disposons d’une base de donn´ee de gestes, d’une base de donn´ees de phrases, chacune caract´eris´ee par un mot cl´e, et d’une base de donn´ee d’images, chacune repr´esentant un objet parmi un ensemble fix´e. Un ensemble d’associations arbitraires est choisi entre un geste, un mot cl´e et un objet ; nous appelons association cross-modale un tel ensemble et concept chaque triplet. Le syst`eme cognitif est entrain´e par l’observation d’un grand nombre d’exemples constitu´es de la manifestation dans plusieurs modalit´es du mˆeme concept ; c’est `a dire par exemple que le geste est observ´e en mˆeme temps qu’une phrase qui contient le mot cl´e associ´e `a ce geste. Le syst`eme est ensuite ´evalu´e de la fa¸con suivante : un nouveau stimulus est observ´e, dans une seule modalit´e cette fois, par exemple une phrase ; le syst`eme doit alors, parmi plusieurs stimuli provenant d’une autre modalit´e, choisir celui qui correspond au premier. Par exemple, le syst`eme observe un ensemble de gestes et doit choisir celui qui correspond le mieux `a la phrase, c’est `a dire celui qui correspond au mˆeme concept que le mot cl´e contenu dans la phrase. Ce protocole est illustr´e dans la figure 4. Le syst`eme ´evalu´e dans nos exp´erimentations est le mˆeme que celui pr´esent´e pour la premi`ere exp´erience, fond´e sur la factorisation de matrices positives. Plus pr´ecis´ement l’apprentissage est effectu´e `a partir d’une matrice de donn´ee o`u chaque exemple est repr´esent´e par la concat´enation des repr´esentations vectorielles des stimuli dansxvii chaque modalit´e. Par exemple, V =   Vmod1 Vmod2 Vmod3   . Une fois l’apprentissage effectu´e, et donc le dictionnaire multimodal appris, il est possible au syst`eme de convertir la perception d’un stimulus dans une modalit´e en repr´esentation interne ou en perception attendue dans une autre modalit´e. Ces m´ecanismes sont synth´etis´es en figure 5. Afin de comparer, par exemple, une phrase `a plusieurs d´emonstrations de gestes, on peut convertir les perceptions de la phrase et des gestes en leurs repr´esentations internes puis comparer ces repr´esentations internes. Il est ´egalement possible de convertir la phrase en une perception de geste attendue puis de comparer celle-ci aux perceptions r´eelles de gestes ou r´eciproquement. Enfin plusieurs mesures de similarit´e peuvent ˆetre utilis´ees pour cela ; nous consid´erons la distance Euclidienne, la I-divergence ainsi que la similarit´e cosinus. h vmod1 vmod2 arg min h DI (vmod1 , Wmod1 · h) Wmod2 · h Perception r´eelle Perception attendue Repr´esentation interne Figure 5 – Une fois que le syst`eme a appris le dictionnaire (Wmod1 et Wmod2 ), ´etant donn´e une observation dans une modalit´e vmod1 , il peut construire la repr´esentation interne correspondant h, ainsi que la perception attendue dans une autre modalit´e vmod2 . Les r´esultats de cette exp´erience pour la comparaison dans l’espace des repr´esentations internes avec la similarit´e cosinus sont pr´esent´es en figure 6. Ces r´esultats importants d´emontrent la capacit´e du syst`eme `a apprendre correctement les associations cross-modales `a partir des observations. De mani`ere int´eressante, d’autres exp´eriences d´emontrent que ces scores ne sont pas am´elior´es lorsque le syst`eme observe ´egalement des labels symboliques. Plus g´en´eralement il ne semble pas au vu de ces r´esultats que la pr´esence d’une modalit´e additionnelle change significativement les r´esultats. Nous effectuons ´egalement d’autres exp´eriences afin d’´etudier la localisation temporelle de la s´emantique des associations au sein de la phrase. Celles-ci indiquent que le sens des phrases serait, de mani`ere non surprenante, souvent localis´e autour du mot qui est associ´e `a ce sens. D’autre part une autre exp´erience indique que certains coefficients de la repr´esentation interne se sp´ecialisent dans la reconnaissance de certains des concepts. Il y a donc d’une certaine mani`ere ´emergence de ceux-ci.xviii 0.0 0.2 0.4 0.6 0.8 1.0 Cross-modal association score image, motion motion, sound image, sound motion, sound, image motion → sound motion → image sound → motion sound → image image → motion image → sound Figure 6 – Scores pour la tˆache de classification, pour diff´erentes exp´eriences dans lesquelles deux o`u trois modalit´es sont pr´esent´ees `a l’entraˆınement. Chaque groupe correspond `a un choix de modalit´e pour l’entrainement : trois groupes d’exp´eriences o`u deux modalit´es sont pr´esentes et un avec les trois modalit´es. Chaque boˆıte repr´esente la distribution des scores pour plusieurs r´ep´etition de l’exp´erience et un choix d’une tˆache de classification, c’est `a dire d’une modalit´e dont un exemple est fourni et doit ˆetre compar´e `a plusieurs exemples de r´ef´erence observ´es dans une autre modalit´e. Discussion La premi`ere contribution de ce travail r´eside dans les nouvelles questions qu’il aborde. Ainsi nous proposons une formulation des probl`emes de la d´ecomposition de mouvement en composantes actives simultan´ement ou en tˆaches ´el´ementaires, ainsi qu’une r´eponse algorithmique `a ces nouveaux probl`emes. De mani`ere g´en´erale, nous explorons l’apprentissage de concepts `a partir d’une perception multimodale et non symbolique. Dans ce cadre l`a nous proposons un approche originale, puisque s’appuyant sur des outils classiques d’apprentissage de feature, au probl`eme de l’ancrage de mots acoustiques. En effet ce probl`eme a souvent ´et´e explor´e au travers d’approches consid´erant la parole et les autres modalit´es de mani`ere tr`es dissym´etrique, et ayant souvent recours `a des processus de segmentation ou de transcription statiques de la parole. Une originalit´e importante de ce travail consiste en la relative sym´etrie de traitement des diff´erentes modalit´es. L’absence de segmentation a priori de la parole r´ev`ele un autre aspect int´eressant de ce travail. En effet, on peut opposer deux approches `a l’apprentissage de donn´ees structur´ees : d’une part celle supposant que l’apprentissage des composantes de cette structure pr´ec`ede la compr´ehension des donn´ees complexes, et d’autre part cellexix pour laquelle la compr´ehension du tout pr´ec`ede celle des parties (voir Wrede et al., 2012, pour de plus amples explications). Bien entendu de nombreuses approches se positionnent ´egalement entre ces deux pˆoles. De ce point de vue notre travail apporte un mod`ele d’apprentissage original o`u, en particulier, la compr´ehension des phrases dans leur ensemble pr´ec`ede le concept de mot : il n’est pas besoin de segmenter la phrase parl´ee en mots et de comprendre chacun de ceux-ci pour comprendre le sujet g´en´eral de la phrase. Au contraire, c’est la compr´ehension du sens g´en´eral de la phrase qui peut ˆetre localis´ee et ainsi d´elimiter des sons que l’on peut qualifier de mots et qui peuvent correspondre aux mots r´eels. Le travail que nous pr´esentons ici constitue ainsi une contribution originale `a plusieurs questions ; il n’en pr´esente pas moins un certain nombre de limitations qui ouvrent des perspectives diverses. Tout d’abord, une premi`ere famille de limitations concerne la port´ee des exp´eriences pr´esent´ees : nombre d’entre elles consid`erent des probl`emes qui restent tr`es simples et contraints, en comparaison de ce `a quoi est confront´e, par exemple, un nourrisson. Une premi`ere voie d’am´elioration de ces travaux est donc celle de l’am´elioration des techniques utilis´ees pour lever les contraintes et atteindre des probl`emes plus r´ealistes. De plus, nous nous concentrons ici sur la combinaison simultan´ee de parties de mouvements mais laissons de cˆot´e de nombreuses autres formes de combinaisons. En particulier il serait int´eressant d’´etudier simultan´ement la d´ecomposition de mouvements combin´es en s´equence et en parall`ele. Une autre forme de structure essentielle dans le cas du langage mais aussi du mouvement est la grammaire. Le parall`ele important que constitue notre travail entre les structures du langage et du mouvement pourrait ainsi ˆetre ´etendu `a l’´etude des structures grammaticales. Dans la derni`ere exp´erience pr´esent´ee, nous partons de donn´ees qui associent de mani`ere artificielle des exemples dans plusieurs modalit´es appartenant `a une mˆeme classe s´emantique artificielle. Le syst`eme pr´esent´e utilise fortement l’hypoth`ese que les exemples d’une mˆeme classe sont observ´es simultan´ement ; cette hypoth`ese sur les donn´ee est appel´ee cross-situational learning par les psychologues. Le syst`eme pr´esent´e est ainsi limit´e `a cette hypoth`ese. En revanche cette limitation ouvre une perspective importante ; en effet appliquer ce mˆeme algorithme sur des donn´ees acquises au cours d’interactions r´eelles entre un enfant et son environnement permettrait d’en apprendre plus sur la structure de ces donn´ees et en particulier la viabilit´e du cross-situational learning comme mod`ele d’apprentissage humain. Un autre perspective importante est le d´eveloppement d’algorithmes tirant parti d’autre mod`eles d’apprentissages (voir par exemple ceux pr´esent´es par Markman, 1990, Landau et al., 1998). Finalement le sc´enario d’apprentissage que nous pr´esentons ne peut pas ˆetre compl`etement qualifi´e de d´eveloppemental, et ce pour de nombreuses raisons. Parmi celles-ci on compte la nature purement perceptuelle du syst`eme pr´esent´e. Une extension importante en est l’´etude du couplage entre la structuration de cette perception et la structuration qu’elle pourrait induire sur une boucle d’action et ainsi sur les donn´ees per¸cues par le syst`eme cognitif.xxUniversite de Bordeaux ´ School of mathematics et computer science Submitted in fulfillment of requirements for the degree of Doctor of Philosophy Specialized in Computer Science The Emergence of Multimodal Concepts From Perceptual Motion Primitives to Grounded Acoustic Words Presented by Olivier Mangin Completed under the supervision of Pierre-Yves Oudeyer Defended on March, the 19th 2014 in front the committee composed of Pr. Angelo Cangelosi — University of Plymouth Reviewer Dr. Jean-Luc Schwartz — CNRS Reviewer Dr. Jacques Droulez — Coll`ege de France President Dr. Emmanuel Dupoux — Ecole des hautes ´etudes en sciences ´ sociales Examiner Dr. Manuel Lopes — INRIA Examiner Dr. David Filliat — ENSTA-ParisTech ´ ExamineriiAbstract This thesis focuses on learning recurring patterns in multimodal perception. For that purpose it develops cognitive systems that model the mechanisms providing such capabilities to infants; a methodology that fits into the field of developmental robotics. More precisely, this thesis revolves around two main topics that are, on the one hand the ability of infants or robots to imitate and understand human behaviors, and on the other the acquisition of language. At the crossing of these topics, we study the question of the how a developmental cognitive agent can discover a dictionary of primitive patterns from its multimodal perceptual flow. We specify this problem and formulate its links with Quine’s indetermination of translation and blind source separation, as studied in acoustics. We sequentially study four sub-problems and provide an experimental formulation of each of them. We then describe and test computational models of agents solving these problems. They are particularly based on bag-of-words techniques, matrix factorization algorithms, and inverse reinforcement learning approaches. We first go in depth into the three separate problems of learning primitive sounds, such as phonemes or words, learning primitive dance motions, and learning primitive objective that compose complex tasks. Finally we study the problem of learning multimodal primitive patterns, which corresponds to solve simultaneously several of the aforementioned problems. We also detail how the last problems models acoustic words grounding. This thesis was conducted in the Flowers team from INRIA institute and funded by an AMX allocation. Keywords multimodal learning; language acquisition; symbol grounding; concept learning; human behavior understanding; motion decomposition; motion primitive; task decomposition; nonnegative matrix factorization; factorial inverse reinforcement learning; developmental robotics iiiivAcknowledgement First of all I would like to thank Pierre-Yves for his enthusiastic, open minded, and supportive supervision. He has been and continue to be a very enlightening mentor and advisor. I would also like to thank all the members of my jury and in particular my reviewers for their rich and insightful comments on this work. I was sincerely honoured by their interest they had for it and their presence at my defense. Many thoughts and thanks goes to the Flowers team and collaborators. I would like to thank in particular Louis ten Bosch for his friendly advices during his stay in Bordeaux as well as the numerous and detailed explanation he gave me on his previous work and. I also would like to thank Haylee for her patient participation while recording motion datasets, Natalia for her helpful image data, and Caio for his collaboration on conducting many experiments under sometime loose supervision. I would like to thank all the members of the team for sharing many stimulating discussions, common projects, and other great moments; in (approximate) order of appearance: Pierre, Adrien, Jerome, B´erenger, Franck, J´er´emy, Thomas, Mai, Olivier, Matthieu, Fabien and Fabien, Paul, Jonathan, Timoth´ee, Damian, Hong Li, the other Thomas, Jonathan, Cl´ement, Aur´elien, the other Cl´ement, Didier, as well as the Parisian members of the team and our team assistants, Marie, Nathalie, and Nicolas. I would like to thank the French state for its confidence and support in form of the principal funding of this thesis and the INRIA institute for providing the environment in which this work was developed. I would also like to thank all those of my teachers and others who made me discover the joys of science and fostered my curiosity. To conclude, I would like most importantly to thank my family and friends for making me who I am and consistently supporting what they have made ever since. vviContents A developmental robotics perspective 1 1 Complex and simple, whole and parts 7 1.1 Understanding and imitation of human behaviors . . . . . . . . . . . 8 1.2 Structured representations for complex motions . . . . . . . . . . . . 10 1.3 Language acquisition and multimodal learning . . . . . . . . . . . . 13 1.4 Important questions . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2 Technical background 19 2.1 Nonnegative matrix factorization . . . . . . . . . . . . . . . . . . . . 19 2.1.1 Problem description . . . . . . . . . . . . . . . . . . . . . . . 19 2.1.2 Basic algorithms . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.1.3 Variants and improvements . . . . . . . . . . . . . . . . . . . 25 2.2 Inverse reinforcement learning . . . . . . . . . . . . . . . . . . . . . . 26 2.2.1 Background: reinforcement learning . . . . . . . . . . . . . . 26 2.2.2 What is inverse reinforcement learning? . . . . . . . . . . . . 29 2.2.3 Algorithms for inverse reinforcement learning . . . . . . . . . 33 3 Learning a dictionary of primitive motions 37 3.1 Combination and discovery of motion primitives . . . . . . . . . . . 38 3.1.1 What does combination mean? . . . . . . . . . . . . . . . . . 38 3.1.2 Motion representations . . . . . . . . . . . . . . . . . . . . . . 39 3.1.3 Algorithms to decompose observed motions . . . . . . . . . . 42 3.2 Histograms of motion velocity . . . . . . . . . . . . . . . . . . . . . . 43 3.3 Discover simultaneous primitives by NMF . . . . . . . . . . . . . . . 45 3.3.1 The choreography data . . . . . . . . . . . . . . . . . . . . . 46 3.3.2 Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 3.3.3 Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.3.4 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.4 Concluding perspectives . . . . . . . . . . . . . . . . . . . . . . . . . 53 4 Learning a dictionary of primitive tasks 55 4.1 Previous work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 4.1.1 Inverse feedback and reinforcement learning . . . . . . . . . . 57 4.2 Factorial inverse control . . . . . . . . . . . . . . . . . . . . . . . . . 58 4.2.1 Problem definition and algorithm . . . . . . . . . . . . . . . . 58 4.2.2 Experiments . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 4.2.3 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 viiviii CONTENTS 4.3 Factorial inverse reinforcement learning . . . . . . . . . . . . . . . . 66 4.3.1 Multi-task inverse reinforcement feature learning . . . . . . . 66 4.3.2 Experiments . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 4.3.3 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 5 Learning a dictionary of primitive sounds 75 5.1 Models of language acquisition . . . . . . . . . . . . . . . . . . . . . 75 5.2 Hierarchical clustering of basic sounds . . . . . . . . . . . . . . . . . 77 5.2.1 Background and principle . . . . . . . . . . . . . . . . . . . . 78 5.2.2 Presentation of the framework . . . . . . . . . . . . . . . . . 78 5.2.3 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . 79 5.2.4 Experimental scenario . . . . . . . . . . . . . . . . . . . . . . 84 5.3 HAC representation . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 5.3.1 Codebooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 5.3.2 Histograms of co-occurrences . . . . . . . . . . . . . . . . . . 88 5.4 Learning words with NMF . . . . . . . . . . . . . . . . . . . . . . . . 89 5.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 6 Multimodal learning 91 6.1 Multimodality in perception and learning . . . . . . . . . . . . . . . 91 6.2 Related work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 6.3 Experimental setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 6.4 NMF for multimodal learning . . . . . . . . . . . . . . . . . . . . . . 98 6.4.1 Learning a dictionary of multimodal components . . . . . . . 98 6.4.2 NMF to learn mappings between modalities . . . . . . . . . . 99 6.5 Data and representation . . . . . . . . . . . . . . . . . . . . . . . . . 101 6.5.1 Motions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 6.5.2 Sounds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 6.5.3 Images and videos . . . . . . . . . . . . . . . . . . . . . . . . 102 6.6 Experiments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 6.6.1 Learning semantic associations . . . . . . . . . . . . . . . . . 103 6.6.2 Learning words in sentences . . . . . . . . . . . . . . . . . . . 111 6.6.3 Emergence of concepts . . . . . . . . . . . . . . . . . . . . . . 114 6.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 7 Discussion and perspectives 119 A Non-negative matrices and factorization 125 A.1 Non-negative matrix theory . . . . . . . . . . . . . . . . . . . . . . . 125 A.1.1 Base definitions and notations . . . . . . . . . . . . . . . . . 125 A.1.2 Taxonomy of non-negative matrices . . . . . . . . . . . . . . 126 A.1.3 Perron-Frobenius theorem . . . . . . . . . . . . . . . . . . . . 127 A.2 Ambiguity in the problem definition . . . . . . . . . . . . . . . . . . 128 A.2.1 Generative model . . . . . . . . . . . . . . . . . . . . . . . . . 128 A.2.2 Representation of simplicial cones . . . . . . . . . . . . . . . 129 A.2.3 First case: linearly independent generators . . . . . . . . . . 129 A.2.4 Second case: rk(W) < K . . . . . . . . . . . . . . . . . . . . 130 B Datasets 131 B.1 The Acorns Caregiver dataset . . . . . . . . . . . . . . . . . . . . . . 131 B.2 The first choreography dataset . . . . . . . . . . . . . . . . . . . . . 131CONTENTS ix B.2.1 Description of the data . . . . . . . . . . . . . . . . . . . . . 132 B.3 The second choreography dataset . . . . . . . . . . . . . . . . . . . . 132 B.3.1 Description of the data . . . . . . . . . . . . . . . . . . . . . 134 C Code 135x CONTENTSA developmental robotics perspective Late nineteenth and twentieth centuries have witnessed major scientific discoveries in several fields: neurosciences, brain imaging, but also the study of phenomenology by philosophers, the development of psychology, the invention of the theory of computation, and further development of the computer science. It was followed by the technical revolutions that lead to modern computers and robots, and mathematical developments driven by new applications such as machine learning. All these elements played an essential role in the advent of the understanding of cognition and intelligence, in such a way that cognitive sciences, the name given to that knowledge and fields of study, is a vastly multidisciplinary domain, that includes computational and robotics models of cognition. Among these discoveries, develpmental psychology has brought attention on the processes that give rise to intelligence: instead of trying to understand directly the structure of an adult mind, it examines the mechanisms that shape and organize intelligence, starting from early childhood. Later, after a large part of research in both cognitive sciences and artificial intelligence had been mainly focused on the problem of understanding or imitating the adult mind, a similar shift in methodology also appeared in artificial intelligence and robotics. However the idea that the human mind should be studied through the processes of its development and maturation was already clear in Turing’s mind sixty years ago. “ Instead of trying to produce a programme to simulate the adult mind, why not rather try to produce one which simulates the child’s? If this were then subjected to an appropriate course of education one would obtain the adult brain. Presumably the child brain is something like a notebook as one buys it from the stationer’s. Rather little mechanism, and lots of blank sheets. (Mechanism and writing are from our point of view almost synonymous.) Our hope is that there is so little mechanism in the child brain that something like it can be easily programmed. The amount of work in the education we can assume, as a first approximation, to be much the same as for the human child. ” Alan Turing, Computing machinery and intelligence (1950) Although Turing was right about the importance of modeling child learning, he was wrong saying the child starts with a blank sheet. Developmental and social robotics therefore studies developmental mechanisms that can guide and constrain the learning of robots, animals, and infants. The focus thus moves from building 12 A DEVELOPMENTAL ROBOTICS PERSPECTIVE intelligent robots to a closer study of the behavior and learning mechanisms that make the interaction between these robots and their environment evolve towards structured interactions with persistent patterns. In other words this paradigm pertains to a systemic approach of cognitive development that is directly grounded in Piaget’s thoughts. ≪ L’intelligence ne d´ebute ainsi ni par la connaissance du moi ni par celle des choses comme telles, mais par celle de leur interaction, et c’est en s’orientant simultan´ement vers les deux pˆoles de cette interaction qu’elle organise le monde en s’organisant elle-mˆeme.2 ≫ Jean Piaget, La construction du r´eel chez l’enfant (1937) Developmental robotics is also often denoted as epigenetic robotics: a name that emphasises the role of the robot history and environment in determining its final state, in opposition to behaviors fully determined by its initial programming. The motivations behind developmental and social robotics come from two goals, namely building better robots and understanding human development, that are very different in nature, but pointing toward the same area of research. Firstly developmental robotics is motivated by building better robots. Indeed, science fiction has been exploring for some time now all the possible impacts of robots on our every day life and spreading the idea that robots could, as tools or companions, be a great improvement to our quality of life, provided that security and ethical issues are well dealt with. Actual robots are however still mainly confined to factories or have to be remotely controlled by human operators. The truth is that robots currently are only capable of very poor adaptivity to unpredictable environments they have not been specifically programmed for. Real human environment are such environments and thus this limitation constitutes a strong obstacle to deployment of robots in every day life applications such as domestic assistance or human-robot collaborative work. One reason of these limitations is that the programmer cannot take explicitly into account all possible environments and situations the robot might face. A promising approach to make such programming possible is to implement basic mechanisms that make the robot capable of adapting its behavior throughout its discovery of its environment. The second motivation is that robots could help us understand the human brain. Robots actually constitute a unique tool to model some biological, psychological or cognitive processes and systems. This motivation lead to some early robotics realizations that had a great impact on biological scientific communities. As one early example, In 1912, Hammond and Miessner developed a robot called electric dog (Miessner, 1919), that happened to be a good model of Jacques Loeb’s theory to explain phototropism in insects. The robot had a major impact on the scientific acceptance and diffusion of Loeb’s ideas (see Oudeyer, 2010). Building robots as models of the child development is an analogous methodology that can help exploring the mainly unresolved question of how children intelligence develops before reaching the adult state. For that purpose developmental robotics research complements the work done in other disciplinary fields that also focus on understanding the functioning of the adult human brain. 2“Therefore intelligence does not start from self-awareness neither from the awareness of its objects in their own, but from the interactions between both. Instead, intelligence organizes the world by organizing itself simultaneously between both sides of that interaction.”3 Figure 7: Illustration of the electric dog from Miessner (1919). Reviews on advances in developmental robotics can be found in work from Lungarella et al. (2003), Asada et al. (2009). Among the many questions that are studied by developmental robotics two are of greater importance for this work. First, understanding the mechanisms enabling language acquisition by children is still subject to many open scientific questions (see Kuhl, 2010). Furthermore, building robots with language acquisition capabilities is a promising way of improving human robot or human computer interaction. Although there exist speech acquisition systems and natural language interfaces, these do not feature the adaptability required by the great variety in user preferences and languages. Most of these systems are built for a few target languages and user cases, that have nothing to do with the variety of words and skills people even enjoy teaching to their dog. Furthermore many systems do not focus on the transmission of concepts through natural interaction and the grounding of natural interaction on these concepts, although they are fundamental mechanisms of the emergence of communication between humans or humans and pets. The range of skills that a user would expect from a robot is also very wide and made even wider by the addition of user preferences. Similarly, natural teaching of robots seems a much more plausible solution than specific engineering for each use case; one way to achieve such teaching is known as imitation learning or robot programming by demonstration. Indeed, to have humans directly demonstrate tasks to a robot, or shaping the robot4 A DEVELOPMENTAL ROBOTICS PERSPECTIVE behavior to fit their preferences, is much more accessible than actually programming the robot. Furthermore user preferences are not always easy to formulate, either using robots currently very poor language capabilities, or programming languages. While many techniques have been developed toward imitation learning for robots, most of them still target the single task setup. Such limitation is problematic, not only because robots are not necessarily expected to achieve only one task, but also because what seems to be a single task often is, after closer inspection, a combination of several tasks. Also, typical teaching to children does not go directly to complex tasks but through the learning of skills of increasing complexity: such a progressive trajectory might also be beneficial to teaching robots. Furthermore, common skills might be seen as prerequisites to learning complex ones; being able to re-use such skills, as already learnt by a robot, is also a promising way to ease the skill acquisition process. In this thesis, we embrace the developmental robotics approach and consider the learning and developments that occurs directly on top of the sensori-motor perception. We particularly explore the questions related to the decomposition of motions as well as multimodal perceptual signals and therefore target several aspects of perception and language acquisition. Decomposing the complex into simple parts and composing simple building blocks into complex things are actually processes of great interest for the aforementioned questions. The acquisition of language is a very intuitive example of that decomposition that the structure of language itself implements: spoken language is made of sentences that are composed of words, which, themselves, are produced by sequencing phonemes. On the other side, the study of language acquisition by children shows that they first learn to recognize and produce phonemes, before going to words, and then sentences of increasing complexity (Kuhl, 2004). Similar observations on the production of actions suggests that children first learn to grasp before combining this skill with placement, and before they start building piles of toys. The motivation for roboticists is then to build mechanisms that make a robot capable of similar combinations of simple skills it already masters into more complex ones. Indeed, while it is now possible to teach various tasks to a robot, the evolution over time of the number of tasks a robot masters is typically linear: the time required to learn each new task does not really decrease as experience is accumulated by the robot, even if the task has a lot in common with a task already learnt. Achieving better re-use of knowledge is thus a promising way of improving the amount of tasks a robot can learn and achieving life-long learning (as claimed by Thrun and Mitchell, 1995): exploiting the combinatorial structure of skills and knowledge makes it possible to learn new skills by efficiently combining mastered competences (see Taylor and Stone, 2009, Cangelosi et al., 2010). From a wider perspective, the question of how learning can happen in an open-ended perspective is well identified as a major challenge for developmental robotics (see Lungarella et al., 2003, Weng et al., 2001). Despite that objective being clearly identified, most experiments in that fields, for example those involving between tens and thousands of repetitions of single grasping tasks, rarely last more than a few hours or days: much less than the scales of animal lives. Precisely, the mechanisms that could drive the shift from simple to complex in such learning, as observed on children, are still not well understood. Often, the tasks on which domestic robots are expected to be used, are too complex to be teachable, even to a state of the art robot; an important part of that complexity actually comes from the highly variable and complex nature of the environment in which they take place.5 Computational approaches often implement a notion of primitive elements that models the simple to complex approach. This follows the intuition of cumulative learning: a learning system gradually acquires a lexicon of elements. At first it acquires elements of very low complexity; then this complexity gradually increases as learnt elements can be combined into more complex ones, that become themselves parts of the lexicon (see Cangelosi et al., 2010, sec. 3 and 4). This model is clearly inspired by the structure of language where the lexicon is initially populated by words before including word groups, propositions, and sentences of increasing complexity. The same idea have been used to model motion and is often behind the notion of motor primitives, as used by roboticists (see the discussion by Konczak, 2005). A similar idea have been studied extensively in the field of machine learning and often applied to vision (Aharon et al., 2005, Lee et al., 2006); it is named dictionary learning. Therefore one motivation behind the work in this thesis was to explore the application of these ideas and the large literature of associated techniques to the aforementioned questions of developmental robotics. Despite being quite intuitive, the idea that learning systems first learn basic and local elements, such as words or short and precise motions, and then combine them into complex knowledge, is neither necessarily how it happens for children nor the only way to build artificial learning systems. Indeed such an approach, denoted as compositional puts the ability to segment complex motions or sequences into small parts as a prerequisite to learn these parts. As explained further these capabilities often corresponds to solving quite difficult or ambiguous problems. On the other hand the teleological approach (Wrede et al., 2012) achieves first a global or holistic representation, that enables basic interactions with the world, before understanding the details and parts that compose for example the motion or sentence. As explained further, this thesis provides models of the learning of perceptual components that follows the holistic to decomposed pattern. Chapter 1 introduces more precisely the central questions studied in this thesis. It explains how concrete issues from the fields of imitation learning, programming by demonstration, human behavior understanding, the learning of representation, structure learning, language acquisition, and multimodality connects with this work. That chapter identifies more precisely three central issues studied in this thesis: “How can the intuition about simple and complex be made explicit and implemented on a robot or an artificial cognitive system?”, “How can primitive elements emerge or be discovered through interaction of the agent with its physical and social environment?”, and “What mechanisms can overcome the intrinsic ambiguity and indeterminacy that is characteristic of many approaches regarding the learning and emergence of these primitive elements?” In chapter 2, background on the techniques and algorithms used in this work is provided. It first introduces in details the family of nonnegative matrix factorization algorithms as well as related mathematical theories, but also other affiliated algorithms. Then an introduction to the domain of inverse reinforcement learning and inverse feedback learning is provided, on which new algorithms are grounded in chapter 4. Chapter 3 introduces contributions of this thesis to the field of motion primitives in more detail (Mangin and Oudeyer, 2012a). It explains why it is important to take into account the simultaneous combination of motion primitives, and provides an algorithm and a dataset to illustrate these ideas. Finally it discusses the evaluation6 A DEVELOPMENTAL ROBOTICS PERSPECTIVE of that algorithm with respect to a linguistic weak supervision. Chapter 4 explores similar questions in the space of intentions that often underly actions: following inverse optimal control and inverse reinforcement learning, demonstrations of actions can be modelled by a demonstrator’s intention, that takes the form of an objective function, also called task. Chapter 4 derives new algorithms (one of which was presented in Mangin and Oudeyer, 2012b) to decompose a demonstrator’s behavior in the task space instead of in the action space. Chapter 5 reviews methods used to discover primitive acoustic elements that can form basis for word representations. Two approaches are presented, one from Mangin et al. (2010) based on a hierarchical clustering algorithm, and an other one from ten Bosch et al. (2008), re-used in the following. Finally chapter 6 brings together the work from chapters 3 and 5 to provide a multimodal learning algorithm (first presented in Mangin and Oudeyer, 2013) that models language grounding and the acquisition of abstract semantic concepts. We explain how that algorithm can model the simultaneous learning of components in several modalities (two or three in the experiments), and of their semantic relations. Furthermore, in the case where one modality contains spoken sentences, we demonstrate that the system focuses more precisely on parts of sentences that bear the semantics, thus illustrating a form of word acquisition, where that segmentation of words is more a consequence than a prerequisite of acquiring semantic knowledge. A discussion of the contributions and perspectives introduced by this thesis is provided in chapter 7.Chapter 1 Complex and simple, whole and parts The main focus of this work is on the learning by a cognitive agent of dictionaries of basic or primitive elements from various potentially multimodal perceptual signals such as motion, images, or sound, which includes language, but also action. By primitive elements we mean, for example, phoneme-like primitive sounds, primitive dance gestures such as raising an arm, primitive objectives in complex tasks such as reaching a body configuration, or patterns in multimodal perception that ground semantic concepts. In the following these elements are denoted as primitive elements. This notion does not imply that such element are atomic or indivisible, but rather that they may be combined together to form more complex elements. As an example, if the elements are vectors and combination means linear combination, these elements may form a basis in the sense of linear algebra. However, as discussed further, linear combination is far from the only possible combination. We claim that the study of primitive elements, together with their combinatorial properties and the algorithms to learn them, is of great interest for developmental robotics in two main aspects. First, composite representations of perception and actions for robots are promising ideas toward overcoming the limitation of many current robotic platforms to a single task in a single context. Indeed some of these platforms have an approach equivalent to learning by heart a whole sentence from many examples, whereas focusing on learning a dictionary of words together with a grammar would enable generalization to new sentences. We believe that, not only robots could benefit from this approach by gaining better versatility in their ability to re-use skills, but composite representations might be more understandable by humans and ease the process of programming or interacting with robots. A simple example of this idea is given by Calinon and Billard (2008) who demonstrate how one can separately teach a robot to pour watter and to hold a glass, before having the robot merge the two tasks to fill a glass of water1 . Also, building algorithms that are able to learn such composite elements is an attempt to model aspects of human perception that features such properties, and eventually also its limitation. 1A video of this experiment can be found on Sylvain Calinon’s home page (http://calinon.ch/ showVideo.php?video=11). 78 CHAPTER 1. COMPLEX AND SIMPLE, WHOLE AND PARTS For instance Kuhl et al. (1992), Kuhl (2004) explain that during early language acquisition infants learn classes of sounds that are functionally equivalent, but also that this process makes them unable to differentiate between sounds from the same class: not only the brain learns some primitive sounds but these elements later play a fundamental role in the acoustic perception. In that particular example, the learnt primitive elements not only feature combinatorial properties in the way they are later combined into words, but also become, to a certain extent, atomic elements of perception. In the remaining of this chapter the relation of this topic with various subjects of developmental robotic, but also psychology and machine learning, is explained in more details. 1.1 Understanding and imitation of human behaviors Imitation has long been identified as a central mechanism for cultural transmission of skills in animals, primates, and humans, but also for the development of communication (see Whiten and Ham, 1992, Nadel, 1986, Tomasello, 2008). It is indeed not only an example of learning from social signal, but also a central aspect of learning to be social. Back to a robotic perspective, programming by demonstration refers to the transposition of the mechanism of learning by imitation as observed in humans to robots. The word programming actually suggests that teaching a skill to a robot by providing demonstrations to that robot may remove the need to actually program the robot, which currently requires advanced technical skills. Another important motivation of such an approach is that tasks are sometimes too complex to be reasonably described, even using natural language, or correspond to preferences of a user that are not fully conceptualized. In addition to learning the whole task from imitation, it is possible to use demonstrations together with a feedback signal and self-refinement of skills (see for example Kober and Peters, 2009) as well as self-exploration. Finally, designing systems capable of human behavior understanding, even without reproducing such behaviors, is a research field that faces issues very similar to the one presented in this section. Although children seem to be capable of learning by imitation very easily, the task turns out to be more complicated on a closer examination. As is often the case, the difficulties are easily observed once one try to program a robot imitator. The first important issue faced by the imitator is known as the correspondence problem: how can the imitator relate the motions on the demonstrator’s body to its own body? The problem is even made more complicated by the fact that the demonstrator’s body is not identical to the imitator’s one and might actually be very different. Nehaniv and Dautenhahn (2000) formalize this issue as the one of “finding a relational homomorphism between the two bodies”. The correspondence problem might be overcome by using hard coded mappings between the demonstrator’s and the imitator’s bodies or even by directly demonstrating the skill on the imitator body, a techniques called kinesthetic demonstration. However the question of how this capability emerges in children is a very interesting one; some models of early imitation have been developed on that question by Nagai1.1. UNDERSTANDING AND IMITATION OF HUMAN BEHAVIORS 9 (2007). Andry et al. (2001) have explained how a homeostastatic mechanism, that is to say that tries to reduce the error between prediction and observation, can be sufficient to generate imitation behaviors. Following that idea Boucenna et al. (2010) showed through a robotic experiment how imitation of facial expressions by a robot can emerge from a predictor that was learnt while the human was first imitating the robot. Kaplan and Oudeyer (2007) also provide a model of imitation as emerging from intrinsic motivations: a progress based model of curiosity can drive a robot toward imitation as an efficient learning strategy. The ability of the brain to relate actions of others to its own has been shown to have a neural manifestation in the existence of mirror neurons. Rizzolati and his collaborators have indeed discovered neurons in the premotor cortex of monkeys that fire both when the monkey performs a specific action or observes someone else performing the same action (Cattaneo and Rizzolatti, 2009). Strong evidence from neuro-imaging suggests the existence of areas with similar functions in the human brain. Their discoveries suggest that the ability to recognize an action done by someone else is related, from a neurone point of view, to the one of producing the same action. The correspondence problem is not the only difficulty brought by imitation learning. Should the exact motions of the demonstrator be reproduced? Or should the imitator rather try to solve the same task? But what is that task? Should the imitator try to fit some kind of preference of the demonstrator while achieving the task? Is every action of the demonstrator relevant to the imitator? Such questions are often summarized as “What, Who, When, and How to imitate?” Although they seem naturally answered by children, it is not clear how to make these choices. See also in fig. 1.1 the strategy triangle from Lopes et al. (2009a) that illustrates some of these modelling choices. Follow intrinsic preferences Imitation Adhere to inferred “intention”, replicate observed action and effect. Emulation Replicate observed effects. Non-social behavior Social behavior Figure 1.1: The strategy triangle from Lopes et al. (2009a) illustrates the potential combination of several simple behaviors into an imitation mechanism. The work we present is mainly related to the question of “What to imitate?”, which, following Cederborg and Oudeyer (2013), includes the motor ‘gavagai’ problem that extends Quine’s translation indeterminacy (see section 1.3). A way to clarify this point is to discriminate different levels of imitation. Byrne and Russon (1998) introduced the distinction between action-level imitation, which consists in mimicking every action of the demonstrator (for example following the same arm trajectory), and program-level imitation, which focuses on reproducing the overall structure of10 CHAPTER 1. COMPLEX AND SIMPLE, WHOLE AND PARTS the movement (for example following a different trajectory but featuring the same steps of reaching, grasping, lifting, etc.) Although quite intuitive, the notion of program-level imitation leaves open the question of the nature of the structure that the imitator should preserve, a question very similar to the ones introduced in the following section. Demiris and Hayes (1997) further introduce functional imitation, also called effect-level imitation by Nehaniv and Dautenhahn (2000), which consists in producing the same effect than the demonstrator, and abstract imitation, which denotes imitation of the demonstrator’s internal state (for example the demonstrator laughing could be imitated by smiling). Lopes et al. (2009a) provide a model of some of these imitation mechanism, formulated in a Bayesian framework in which effect-level imitation is named emulation. It follows from that discussion that the question “What to imitate?” closely relates to the question of how to decompose an observation into parts, including the choice of the level of granularity of the decomposition, together with the question of the nature of that decomposition. Furthermore the relevance of a level of decomposition, or a certain part in that decomposition, closely relates to focus, saliency, attention, and mutual attention that are central properties of imitation in humans and animals. While these two sets of questions might seem related but distinct at first sight, they actually are entangled: on one side having a good representation of motion is crucial to distinguish what is relevant within and across motions; on the other side mutual attention and other social signals are essential to achieving that decomposition and solving the indeterminacy that comes with it, as detailed in the followings sections. The work presented in this manuscript provides examples of what can be achieved by addressing both issues at the same time. 1.2 Structured representations for complex motions The question of the complexity of movements and skills comes from the observation of human learners. It also seems to be both an empirical evidence in pedagogy and a natural way to proceed that learning occurs in a cumulative manner, starting simple and then growing in complexity. It seems quite easy to have an intuition about what a simple or a complex movement is: driving a plane looks obviously more complex than grasping simple toys. However, if one looks at what robots can actually do, it seems that currently robots are better at driving planes (or helicopters2 ) than at grasping objects. Actually this example is not really fair, but it points out that actually defining what a complex movement or skill is probably looks easier than it really is. Indeed, the complexity of a motion or an action is highly subjective to the agent’s body, experience, culture, etc. Taking another example, why is a newborn gnu capable of walking within a few minutes3 when human infants need months to achieve a similar behavior? Is this a proof that the gnu brain is more advanced regarding the learning of walking, or the expression of an evolutionary trade-off between the ability to quickly learn one task and the ability to learn a wider variety of tasks? From an epistemological point of view, research in artificial intelligence have long focused on solving the problems that looked difficult from a human point of view, such as playing chess, and considered as more anecdotal problems such as the ability to acquire mental representations of the world and grasp a chess tower or 2More information and videos can be found at: http://heli.stanford.edu 3As demonstrated by the online video: http://youtube.com/watch?v=zGaD2DH4evs1.2. STRUCTURED REPRESENTATIONS FOR COMPLEX MOTIONS 11 knife (see Brooks, 1991). It seems now that the latter are much more difficult than the former. In particular we ground our study on the cognitive development starting from the sensori-motor level of perception: we thus take more interest in the shaping of that perception than in solving high level problems in a symbolic world. A fundamental question behind these realities, both for biologists and roboticists, is to understand how life long learning is possible in a way that enables the efficient re-use of previously acquired knowledge and skills: answering this question provides at least one definition of complexity or simplicity of skills from a biological point of view. One approach, often labelled as cumulative learning, consists in gradually acquiring a lexicon of elements of increasing complexity, such that new elements can be obtained as the combination of simpler ones (see Cangelosi et al., 2010, sec. 3–4). The concepts of motor synergies and motion primitives have been introduced as a potential implementation of this approach, by both motor control theorists and roboticists (see Konczak, 2005). Motor primitives represent simple building blocks that can be composed to form complex motions. For example Mussa-Ivaldi and Bizzi (2000) interpret a group of experiments on the control system of frogs and rats as giving strong evidence that the brain features a set of primitive force fields that are combined linearly into more motor commands. Tresch and Jarc (2009) provide a more detailed review of that subject. 1 cm 0.5 N & A B + Figure 1.2: Illustration from Mussa-Ivaldi and Bizzi (2000): A and B are two force fields measured on a frog while stimulating two distinct spinal sites. & is measured by separately stimulating both sites and + is obtained by summing A and B: the result illustrates the combination in the frog’s spine of two primitive force fields. Although it seems natural to try to decompose complex motions into simpler elements, one could ask: “What is a complex movement or skill?” There are actually multiple answers to this question, each of which is of great interest regarding this work. First, an easy answer to the question is: “A complex motion is a motion composed of simpler parts.” This actually leaves us with new questions. The first one is naturally: “What is a simple motion or skill?” Actually, for roboticists, this question is deeply12 CHAPTER 1. COMPLEX AND SIMPLE, WHOLE AND PARTS related to the way motions and actions are represented. Indeed simplicity, for a computer, often means efficiency of representation (or compression) whereas, for a human, a motion is often called natural or simple when it seems simple to produce. Unfortunately it seems that these definitions sometime refer to very different or even opposite notions of simplicity. The same difference arises with computers: it is easy for a computer to perform operations on very big numbers that a human could not perform. On the other hand a human is for example able to intuitively detect intersections between a large number of segments, an operation for which a computer requires complex algorithms. Actually in that last example, the problem described is not really the same for the human and the computer: while for the human the segments are represented visually, for the computer they are represented as a list of pairs of points. Therefore the human representation is much closer to both the nature of the geometrical property under consideration and to the processing capabilities of the human visual cortex. From using this analogy for robotics skills or behaviors, it follows that the first question on defining simplicity of motions can be studied through the research of motion representation that lead to efficient representation of human natural motions. Li et al. (2010) have shown that learning such representation from a set of observations of human motions also leads to good compression capabilities of natural human motion. Therefore, learning an appropriate representation have brought together both a computational notion of complexity, related to compression capabilities, to a more human centric one. Looking back to the aforementioned easy answer, namely “A complex motion is a motion composed of simpler parts.”, raises an other question, that is given by looking at the dual problem: instead of trying to define what a simple and a complex motion are, we could try to define what relates the simple to the complex motion, that is to say how primitive motions can be composed or combined into more complex ones. The study of the different ways of decomposing motions is central to this work and studied in more details in chapter 3. In many cases there is not uniqueness of decomposition; we refer to this issue as the indeterminacy of the decomposition. The indeterminacy of decomposition is analogous to phenomenon such as multistability in perception (see Blake, 1989, Leopold and Logothetis, 1999, Schwartz et al., 2012b, and fig. 1.3). Another central question is, knowing what notion of composition is involved, find means of removing the indeterminacy, that is to say find a relevant decomposition into simpler elements. Although the ambiguity of decomposition is faced by learning systems throughout their development it is not necessarily a prerequisite of that development. Furthermore, we have seen that complex components of perception and action could be defined as composed of simpler parts, but this notion of complexity may not fit the order in which infants acquire knowledge. In order to clarify this point in the following, we chose a different terminology: we refer to components that are combined into complex perceptions or actions as primitive or local components. Wrede et al. (2012) contrast compositional understanding, that describes an agent that is aware of the local components and their combination into a global perception or action, and teleological understanding, that accounts for an agent that only features global perception. More precisely the term teleological refers to a pragmatic emphasis on using the global knowledge even without refined understanding of its structure. According to Wrede et al. (2012) the developmental path of infants goes first through teleological understanding before reaching compositional understanding. This devel-1.3. LANGUAGE ACQUISITION AND MULTIMODAL LEARNING 13 Figure 1.3: Necker’s cube is a classical example of multistability in vision. opmental path is to contrast to the one stating that compositional understanding occurs first before any usage of the knowledge. Actually if simple and complex are defined with respect to the developmental path, each vision leads to an opposite definition of these notions: according to Wrede et al. (2012) the global stimulus is simpler, since used before by infants, than the local or primitive stimuli, whose awareness comes later. Conversely stating that compositional understanding comes first means that the primitive stimuli are simple and their composition complex. Because of that antagonism it is important to notice that ‘primitive’ may not mean simple and to differentiate ‘complex’, meaning ‘composed’, and ‘complex’, meaning harder to learn. This thesis studies directly relations between local parts and global perceptions. With respect to these questions, we embrace the point of view of Wrede et al. (2012), positing that teleological understanding may comes first. Therefore we generally do not assume the understanding of the compositional structure of perception to achieve global understanding. Furthermore we demonstrate that the perception of components can result from an auto-organisation of global perception: we provide models of the emergence of local components of perceptions (primitive motions, words) from the global perception, in contrast to achieving decomposition of perception as a pre-requisite to learning. 1.3 Language acquisition and multimodal learning We already mentioned the question of the emergence of phonemes and words as examples of primitive elements occurring in the speech signal. Chapter 5 presents in more details technical approaches to the question. A difficult aspect of the discovery of phonemes and words is the issue of segmentation. In the fields of speech recognition and acquisition, segmentation refers to the task of finding word boundaries from an acoustic stream containing spoken language. This14 CHAPTER 1. COMPLEX AND SIMPLE, WHOLE AND PARTS is a difficult problem: unlike written language, spoken signal does not feature easy to detect word boundary cues similar to space characters or silences at the end of sentences (Brent, 1999). An illustrative example of the difficulty and ambiguity of segmenting written language without spaces is given by Kuhl (2004): the sentence “theredonateakettleoftenchips” could be segmented into “the red on a tea kettle often chips” or “there, don ate a kettle of ten chips”. Importantly the previous example highlights the ambiguous nature of the segmentation problem. It has indeed been largely discussed whether the segmentation capability is a prerequisite or a consequence of word recognition, and whether it should play a central role in the word recognition process. Actually experiments on infants performed by Saffran et al. (1996), Saffran and Wilson (2003) have shown that young infant were capable of discovering words from an unknown language after a very short period of exposition (three minutes in their experiment) to acoustic signal only. More precisely their experiment demonstrates that children react differently when hearing sentences containing words they have been exposed to; interestingly this behavior emerges only from statistics on the acoustic signal. Following this experiment a large number of computational models of word discovery have been developed that implement a word segmentation process. A review of early work in that direction is given by Brent (1999). An interesting experiment from Park and Glass (2008) proposes a computational approach for an unsupervised setup very close to the one of Saffran et al. (1996). On the other hand ten Bosch et al. (2008) have also demonstrated that word recognition can be achieved by an artificial learner without an explicit implementation of a segmentation process, but instead some form of symbolic supervision. The work presented in chapter 6 is inspired from the approach of Bosch and colleagues; however, we relax the symbolic supervision and instead study the use of multimodality to address the ambiguity issue. Similar studies have also been conducted about the important question of grammar acquisition. Gomez and Gerken (1999) and later Saffran and Wilson (2003) have shown in experiments very similar to the previous one of Saffran et al. (1996), that children around twelve months that are exposed for a short time to continuous speech generated from a grammar involving unknown words, react differently at the end of the initial exposure to utterances that are grammatically correct or not. The notion of multimodal learning, which is a major topic of this thesis, refers to the ability of learning from a stream of mixed data coming from various sensory inputs, with different nature (for example sound, vision, taste). The close relation between language learning and multimodal learning is a central question of the work presented in this thesis. One immediate reason of that relation is that language acquisition is a multimodal problem because the language signal is multimodal. An evidence of that aspect was given by McGurk and MacDonald (1976) and is referred to as the McGurk effect: when someone observes lips pronouncing ‘ga’ while he hears ‘ba’, he most of the time reports to have perceived the sound ‘da’ (see also Schwartz, 2010). Another major reason for claiming language and multimodal learning are closely related is the following: considering learning is taking place on top of multimodal perception, that not only include language signal but also other contextual information, provides a plausible solution to the ambiguity issues that occurs from language learning. One important source of ambiguity in language acquisition is related to the process of associating words to meanings, a process that is also known as symbol grounding and was introduced by Harnad (1990) (see also Glenberg and Kaschak, 2002). Many1.3. LANGUAGE ACQUISITION AND MULTIMODAL LEARNING 15 unsupervised approaches introduced above only model the discovery of acoustic words, without relating these words to any kind of meaning, and relying exclusively on acoustic properties of the signal for their discovery. On the other hand the work presented by ten Bosch et al. (2008) focuses on the discovery of relations between the acoustic signal and a symbolic contextual information. The discovery of word is then shown to be a side effect of the learning of these correlations. In chapter 6 this idea is taken further and shown to extend to a multimodal signal that do not contain any predefined symbol. Similar ideas, but with some kind of symbolic information, where also featured in several previous works (Roy and Pentland, 2002, Yu and Ballard, 2004, Massera et al., 2010, Driesen et al., 2010, Saenko and Darrell, 2007, BenAbdallah et al., 2010, Ngiam et al., 2011). Symbol grounding is however not an easy problem but rather an ambiguous one. An important aspect of such ambiguity is the indeterminacy of reference introduced by Quine (1960), which is often illustrated by the ‘gavagai’ thought experiment. Quine presents the situation of a linguist who studies an unknown language and observes a speaker pointing toward a rabbit while saying ‘gavagai’. In that situation the linguist cannot discriminate between several possible meanings of the word ‘gavagai’: it could actually mean ‘rabbit’ as well as ‘undetached rabbit parts’, ‘animal’, ‘food’, or even ‘an object out of my reach’. Interestingly very similar issues occur in other modalities; one of them is referred as motor ‘gavagai’ problem in the case of imitation learning (see section 1.1 as well as Cederborg and Oudeyer, 2013). Finally, language is strongly related to action. The actual production of spoken language through the articulatory system is an immediate example of this relation. Indeed a spoken utterance may be seen either on the side of the produced acoustic stream, or on the side of the muscle commands that yielded that acoustic stream. The role of each one of these aspects of sound in its perception is still an actively discussed subject (for more details please refer to Schwartz et al., 2012a). Either way this duality constitutes another important aspect of language multimodality. Another important facet of the relations between language and action comes with the notion of grammar of action. While similarities between linguistic grammatical constructs and the structure of many common actions is quite straightforward (in the sense that it is perceived without effort), it is less clear to know if this similarity is coincidental or whether we perceive action this way because of our exposure to language, or if language has evolved on top of our perception of action grammar. The latter opinion is actually the subject of a whole theory about language origin called the syntactic motor system introduced by Roy and Arbib (2005). The talking heads experiment (Steels, 1999, Steels and Kaplan, 2002) has been introduced by Steels and colleagues to study the emergence of language inside a community of robots as a model of the emergence of language in human communities. Each robot possess its own set of visual concepts and its own lexicon of associations between these concepts and initially arbitrary words. The experiment is based on an interaction frame between two robots called guessing game. During the game the pair of robots is looking at a visual scene that consists in geometric shapes on a magnetic board. The game follows several stages: to start, the first robot, called ‘speaker’, chooses a part of the visual scene that is shared with the second robot; then the speaker choses a topic among the objects in that region4 and vocalizes a verbal description of that object; after perceiving the object description, the hearer robot 4 In practice, in many experiments, the topic is actually chosen randomly.16 CHAPTER 1. COMPLEX AND SIMPLE, WHOLE AND PARTS guesses the described object (communicating its guess with a mechanism equivalent to pointing) and the speaker provides positive or negative feedback on the interaction, depending on whether it was successful or not. The experiment demonstrates that the simple interactions, combined with rotations in the role the robots play in the game, as well as in the pairs of interacting robots, lead to the emergence of a shared language at the scale of the robot community. Steels and colleagues define the semiotic square (see fig. 1.4) that illustrates the indirect nature of the communication: both agents in the guessing game have to go through the lexicon and ontological levels to bind the vocalization to its meaning (the referent object). This aspect is closely related to the grounding problem mentioned previously; it emphasizes the distinction between the sign used to communicate, its meaning for one agent, and the grounding of that meaning into perception. Importantly neither the signs, nor the meaning, nor the perception is exactly shared between the two agents: each of them has its own instances of signs, meanings, and perception. Throughout the interaction, the coherence between the signs, meanings, and perceptions of the agents increases. image topic meaning utterance perceive conceptualize verbalize referent image utterance meaning act apply interpret Speaker Hearer Figure 1.4: Illustration of the semiotic square as presented by Steels (1999). The left part illustrates the generation by the speaker of an utterance describing the topic, and the left part to the interpretation of the utterance, as perceived by the hearer, into an hypothesis about the referent. In this thesis we provide implementations of language learning experiments that do not assume direct access of the learner concepts as symbols, that is to say that do not shortcut the semiotic square (see chapter 6). The experimental frame we study for the language experiments is very close to the one of the talking heads. Therefore, although the questions studied in this thesis are mainly agent-centric, the implementations we described can be thought as replacement of the agent model in the talking heads experiment. However, a limitation has to be added to that claim, which is that we do not address the question of language production. 1.4 Important questions In this chapter many subjects amongst those targeted by developmental robotics were introduced in which primitive elements play an important role for action, perception, and their acquisition and development. Such primitive elements might be phonemes, words, elementary motions, primitive objectives in tasks, objects or parts of objects in visual scenes, or multimodal elements combining several of these. In this thesis we explore this notion of primitive elements and various aspects of it. This study and its presentation is organized along specific axes that are listed below.1.4. IMPORTANT QUESTIONS 17 How can the intuition about simple and complex be made explicit and implemented on a robot or artificial system? We have seen that the notions of simple and complex, although being very intuitive, are not so easily formalized and that some perspectives can lead to definitions that are even opposite to their intuitive counterpart. We have discussed that one approach is to define the complex as the combination of several simpler parts. This shifts the question of defining simple and complex to the nature of the algebraic properties of the simple or primitive elements. We introduced several ways of combining primitive elements into complex ones. Given one of these, the question of the implementation remains: how can the low-level representation of motion or sound include sufficient algebraic properties so that real complex sounds are well represented as combinations of simpler ones, under these properties? In other words, the question is to find representations of the perception and associated algorithms that are good substrates to the emergence of behaviors, regarding the simple to complex paradigm, that match the observation of children behaviors. How can primitive elements emerge or be discovered through interaction of the agent with its physical and social environment? The importance of this question for both the understanding of children development and the conception of robots with similar capabilities is quite straightforward. However the diversity in nature in physical and social interactions that are essential to this emergence suggests a large number of candidate principles that could explain it. We study this question with a focus on the approach stating that the compositional understanding occurs after global representation of stimuli and actions. What mechanisms can overcome the intrinsic ambiguity and indeterminacy that is characteristic of many approaches regarding the learning and emergence of these primitive elements? Many of the questions regarding the decomposition of perception into meaningful parts are actually very ambiguous. We have introduced several examples of such ambiguity as for example the decomposition of sentences into words or the relation between a word and its meaning. Communication with humans requires that these ambiguities are resolved; furthermore the mechanisms used by humans to resolve similar ambiguous issues seems to be central in their development. Therefore gaining insights on these mechanisms is expected to provide a better understanding of the associated cognitive processes.18 CHAPTER 1. COMPLEX AND SIMPLE, WHOLE AND PARTSChapter 2 Technical background As a preliminary to the presentation of experiments in direct relation to the subject of this thesis, we present separately in this chapter a set of technical details, in order not to burden the main presentation. Although the theories and algorithms presented in this chapter are important for a deep understanding and reproduction of the experiments, they are not essential for a high level understanding of these experiments. 2.1 Nonnegative matrix factorization Experiments presented in chapters 3, 5 and 6 are based on the nonnegative matrix factorization algorithm. Although slightly different versions of this algorithm are used in various experiments, we give here a unified presentation of these algorithms. 2.1.1 Problem description Non-negative Matrix Factorization (NMF, Paatero and Tapper, 1994, Lee and Seung, 1999) is a well-known machine learning algorithm. Given a data matrix V ∈ R F ×N which columns are examples, with non-negative coefficients, it approximates it as the product: V ≃ W · H. W ∈ R F ×K and H ∈ R K×N also are non-negative. When the inner dimension K of the product is smaller than original dimension M and number of examples N, this achieves data compression by capturing structure in the matrix W. Furthermore, with previous notations, the reconstructed matrix, W · H, is of rank at most K, which makes this process a low rank approximation. This is a form of dictionary learning in the case of non-negative data, where the columns of W are called atoms. The non-negativity constraint fits well in the case of frequency-like coefficients in the data matrix, which happens when histograms are used as data representation. 1920 CHAPTER 2. TECHNICAL BACKGROUND Singh and Gordon (2008) presents a broad range of matrix factorization and clustering algorithms in a unified frame that consists in solving a optimization problem. arg min (W,H)∈C D(V, f(W · H)) + R(W, H) (2.1) The following modeling components are identified in Singh and Gordon (2008): • constraints on W and H represented as set C, • measure of loss D, often a generalized Bregman divergence, • transformation f, • regularization R. The basic NMF algorithms frame in eq. (2.1) with R = 0, f equals to identity and only constraining W and H to have non-negative coefficients, that is to say C = R M×K + × R K×N + . Problem ambiguity It is important to notice at that point that the problem addressed by non-negative matrix factorization does not have an unique solution. For example, for any invertible matrix M ∈ SLk, W′ = W · M and H′ = M · H yield the same product as W and H: W · H = W′ · H′ . Some ambiguity in the solution of NMF problem exists for any factorization and is treated in this section. However even other sources of ambiguity can arise, depending on the generative model of the data. A geometrical model and an analysis of these questions are provided in Appendix A.2. As pointed out in previous paragraph, any non-singular matrix M can transform the terms of the factorization without changing the result: W · H = (W · M)(M−1 · H). In addition if both M and M−1 are non-negative, then the new factors are still non-negative. It is easy to show that the converse is true: if a matrix M is such that, for any W and H, W′ = W · M and H′ = M · H are non-negative and yield the same product as W and H: W · H = W′ · H′ , then M must be non-singular and both M and M−1 must be non-negative. Furthermore, the set of invertible non-negative matrices with non-negative inverse is exactly the set of monomial matrices, that is to say matrices that are the product of a diagonal matrix with positive coefficients and a permutation matrix (Plemmons and Cline, 1972). Thus the only transformations that leave unchanged any non-negative factorization are the compositions of a scaling of columns and a permutation of columns. In order to compare two non-negative factorizations of the same non-negative matrix, it is useful to be able to normalize or compare such factorizations in a robust way regarding these transformations.2.1. NONNEGATIVE MATRIX FACTORIZATION 21 Dealing with scaling The easiest way to remove ambiguity due to scaling indeterminacy is to normalize the columns of W or H, for some norm or metric. Dealing with permutations At least two approaches can be used to get rid of the permutation invariance of the factorization. • A first approach is to use a total order on the columns to W or H to sort them increasingly. This yields a canonical form for the factorization. Any total order can be used. However this method might not be robust to noise (for example, using lexical order on coefficients of columns, a small perturbation on the first coefficient would change the ordering regardless the other coefficients). • For the purpose of comparison between factorizations, it might be useful to define a distance between two such factorizations. For example from a measure of distance d between columns of W one could define the distance: D(A, B) = arg min σ∈Sn  i d(Ai , Bσ(i)) Computing such a distance would be done in O(K!) by a naive approach, however this problem is equivalent to finding a coupling of minimum weight in a bipartite graph, which can be solved by Kuhn-Munkres algorithm1 (a.k.a. Hungarian method) in O(K3 ). Loss The factorization of V as W · H is obtained through an optimization process, in which distance between data matrix V and reconstructed matrix W · H is minimized. We call cost function the function L(V, W · H) that we want to minimize. The first descriptions of NMF algorithms have been using both Frobenius norm and generalized Kullback-Leibler divergence on matrices. Most common algorithms however extend well to the broader class of generalized β- divergence, which are separable (i.e. expressed as a sum over functions on coefficients) defined as follows: Dβ(V |Y ) =  F f=1  N n=1 dβ(Vfn|Yfn) (2.2) where dβ(x, y) =    x y − log x y − 1 : β = 0 x log x y − x + y : β = 1 1 β(β−1)  x β + (β − 1)y β − βxyβ−1  : β ∈ R\{0, 1} (2.3) Cases where β equals 2, 1 and 0 corresponds to Frobenius norm, I divergence and Itakura-Saito divergence. 1http://en.wikipedia.org/wiki/Hungarian_algorithm22 CHAPTER 2. TECHNICAL BACKGROUND The Frobenius norm is one of the most common norms on matrices. The Frobenius norm of a matrix A, denoted by ∥A∥F is defined as the square root of the sum of the square norms of columns of A. ∥A∥F = m i=1 n j=1 ai,j 2 (2.4) = Tr(A T A) (2.5) The Kullback-Leibler divergence is an information theoretic measure of the similarity between two probability distributions. It is denoted by DKL (p∥q) and defined, for to probability distributions p and q as: DKL (p∥q) =  x∈X p(x) ln  p(x) q(x)  (2.6) = H(p, q) − H(p) (2.7) where H(p) and H(p, q) are the Shannon entropy of p and the cross entropy of p and q. For nonnegative matrices A and B a variant called generalized Kullback-Leibler divergence or I-divergence is often considered. It is defined as follows: DI (A∥B) =  i,j  Ai,j ln  Ai,j Bi,j  − Ai,j + Bi,j . (2.8) 2.1.2 Basic algorithms Many algorithms have been designed to solve the NMF problem. While gradient descent can be used to find a local minimum of the joint problem, it is often more efficient (Lin, 2007) to use an EM-like approach based on alternating steps solving the problem in W and H. For the latter approach, the most common approached are: alternate gradient descents and multiplicative algorithms. Both families share a common optimization approach: alternate optimization on matrices W and H. The following method was initially developed to take advantage of the convex nature of L(V, W · H) both in W and H in cases such as Frobenius norm or generalized Kullback-Leibler divergence (for β-divergences this happens for β ∈ [1, 2]) to perform alternate optimization on W and H. However, since even these cost function are not jointly convex in W and H, these methods can only converge towards local minimums. Alternate projected gradient descent for β-divergence The alternate projected gradient descent algorithms are based on alternating updates of the form presented in eqs. (2.9) and (2.10), where η is an update parameter. P is the projection on the first orthant, which means it replaces all negative entries in the matrices by 0.2.1. NONNEGATIVE MATRIX FACTORIZATION 23 H ←− P  H − η ∂Dβ(V |W H) ∂H  (2.9) W ←− P  W − η ∂Dβ(V |W H) ∂W  (2.10) These gradients are easily shown to be given by the following formula where the same notation is used for the real function ∂dβ(x,y) ∂y and its point-wise extension to matrices. ∂Dβ(V |W H) ∂H = WT · ∂dβ ∂y (V, W H) (2.11) ∂Dβ(V |W H) ∂W = ∂dβ ∂y (V, W H) · HT (2.12) Actually these formulas are not restrictive to the case of β-divergences but to all separable cost function. In the particular case of the family of β-divergence, the element-wise derivatives to use are given in eq. (2.13). ∂dβ ∂y (x, y) =    1 y − x y2 : β = 0 1 − x y : β = 1 y β−1 − xyβ−2 : β ∈ R\{0, 1} (2.13) In order to get an efficient gradient descent algorithm it is necessary to use a step size adaptation method. Multiplicative updates This section is mainly based on presentation by F´evotte and Idier (2011), please refer to this article for a more in-depth description of those algorithms. Auxiliary function In this section we consider the case of separable cost functions in the particular example of β-divergences, for which the optimization with respect to H can be made separately on each columns of H. The same result is true for columns of W. Furthermore since D(X|Y ) = D(XT |Y T ) each result on H for the optimization problem can be literally transposed to W by replacing V by V T and thus H by WT and W by HT . Targeting alternate optimization process we consider the problem, arg min h∈RK, h≥0 C(h) with C(h) = Dβ(x|W h). To solve it we introduce auxiliary functions as follows. Definition (Auxiliary function). G : R K + × R K + −→ R+ is said to be an auxiliary function of cost C if and only if (i) ∀h ∈ R K + , C(h) = G(h, h)24 CHAPTER 2. TECHNICAL BACKGROUND (ii) ∀(h, h˜) ∈ (R k +) 2 , C(h) ≤ G(h, h˜) The idea behind auxiliary functions is that if a sequence of values (ht) is such that G(ht+1, ht) ≤ G(ht, ht) then C(ht+1) ≤ G(ht+1, ht) ≤ G(ht, ht) = C(ht) and thus the sequence (C(ht)) is non-increasing. To construct such an auxiliary function we use a convex-concave-constant decomposition of dβ, that is to say functions ˘d, “d and ¯d which are respectively convex, concave and constant with respect to their second variable, all differentiable with respect to the second variable and such that dβ(x, y) = ˘d(x, y) + “d(x, y) + ¯d(x). In the following we also assume that these functions are differentiable with respect to y. Such a decomposition is given in Table 2.1 Theorem 1. Let h, h ˜ ∈ R K + , and v˜ = W h, the function defined by eq. (2.14) is an auxiliary function for the β-divergence loss, G(h|h˜) =  f  k wfkh˜ k v˜f ˘d  vf |v˜f hk h˜ k  + “d ′ (vf |v˜f )  k wfk(hk − h˜ k) + “d(vf |v˜f ) + ¯d(vf )  (2.14) d˘(x|y) d˘′ (x|y) d“(x|y) d“′ (x|y) d¯(x|y) β < 1, β ̸= 0 −1 β−1 xyβ−1 −xyβ−2 1 β y β y β−1 1 β(β−1)x β β = 0 xy−1 −xy−2 log(y) y −1 x(log(x) − 1) 1 ≤ β ≤ 2 dβ(x|y) d ′ β(x|y) 0 0 0 β ≥ 2 1 β y β y β−1 −1 β−1 xyβ−1 −xyβ−2 1 β(β−1)x β Table 2.1: Auxiliary function for the β-divergence Maximization-Minimization In this paragraph an update rule for h will be chosen such that the next value hMM solves: h MM = arg min h G(h, h˜). This is obtained from current value h˜ by equation (2.15). The values γ(β) are given in Table 2.2. h MM k = h˜ k   f wfkvf v˜ β−2 f  f wfkv˜ β−1 f  γ(β) (2.15)2.1. NONNEGATIVE MATRIX FACTORIZATION 25 β < 1 1 ≤ β ≤ 2 β > 2 γ(β) 1 2−β 1 1 β−1 Table 2.2: Values γ(β) The update rule can actually be re-written in terms of matrix operations, in which it takes a relatively simple form. We denotes the Hadamard (i.e. entry-wise) product by ⊗ and the entry-wise division with fractions. In this section matrix power is meant entry wise. H ← H ⊗ WT  V ⊗ (W H) β−2  WT (W H) β−1 W ← W ⊗  V ⊗ (W H) β−2  HT (W H) β−1HT (2.16) Heuristics algorithm Another kind of update, that guarantees G(ht+1, ht) ≤ G(ht, ht) at least for β in [0, 1] is given by equation (2.17). h MM k = h˜ k  f wfkvf v˜ β−2 f  f wfkv˜ β−1 f (2.17) Frobenius norm and I-divergence In Frobenius and generalized KullbackLeibler cases, γ(β) = 1 thus there is no difference between the two variants of the algorithm. More precisely the associated multiplicative updates were introduced by Lee and Seung (2001). 1 denotes a matrix which coefficients are all ones. H ← H ⊗ WT V WT W H W ← W ⊗ V HT W HHT Frobenius update (2.18) H ← H ⊗ WT V W H WT · 1 W ← W ⊗ V W H HT 1 · HT I-divergence update (2.19) 2.1.3 Variants and improvements Sparse NMF Sparseness of the components or the coefficients can be enforced for NMF. However several approaches may be used to achieve this goal. Projected gradient Hoyer (2004) proposes a measure of sparseness of a nonnegative vector as follows: sparseness(x) = √ n∥x∥2 − ∥x∥1 ∥x∥2( √ n − 1) (2.20)26 CHAPTER 2. TECHNICAL BACKGROUND It is defined for any x which is nonzero and takes values in [0, 1]. Hoyer then proposes to solve the NMF problem with the additional constraint that any column of W and row of H has a fixed sparseness. Hoyer also provides an algorithm to project to the set satisfying the constraint. Regularization F´evotte and Idier (2011) present propose algorithms to solve the NMF problem extended with a sparsity inducing regularization of the dictionary or coefficients based on the l1 norm. Semi-NMF and convex-NMF See the paper of Ding et al. (2010) for semi and convex algorithms and clustering interpretation; see work from F´evotte and Idier (2011) for adaptation of β-NMF algorithm. 2.2 Inverse reinforcement learning This section provides a general presentation of the fields of reinforcement learning and inverse reinforcement learning whose concepts are supporting the experiments from chapter 4. Further details are also provided on specific inverse reinforcement learning algorithms on which the algorithm presented in section 4.3 is based. 2.2.1 Background: reinforcement learning This paragraph provides a quick introduction of the concepts grounding reinforcement learning. A more extensive introduction to reinforcement learning is given by Sutton and Barto (1998). “ Reinforcement learning is a computational approach to understanding and automating goal-directed learning and decision-making. It is distinguished from other computational approaches by its emphasis on learning by the individual from direct interaction with its environment, without relying on exemplary supervision or complete models of the environment. ” Richard Sutton and Andrew Barto, Reinforcement learning (1998) One important motivation behind reinforcement learning is to provide a model for trial and error learning, as originally described by Thorndike (1911). The technical background for such models was developed on top of previous work on dynamic programming (Bellman, 1957a) and Markov decision process (Bellman, 1957b, Howard, 1960). The agent and the world The reinforcement learning model introduces an important, and sometime counterintuitive, separation between an agent and its environment. It also assumes that2.2. INVERSE REINFORCEMENT LEARNING 27 the agent is involved in a discrete sequence of interactions with the environment. More precisely, at discrete time steps t, the agent measures the state xt ∈ X of the environment and performs an action at ∈ A. The action triggers a change in the state of the environment and the emission of a reward rt from the environment to the agent (see fig. 2.1). The distinction between the agent and the environment can be misleading for it does not in general correspond to the physical separation between the body of the agent and its living environment. Instead anything that is not in direct control of the agent’s decisions, such as the reward, is considered part of the environment. This differs from a more intuitive model of an animal in which the reward may be a hormonal response to having eaten, thus being emitted by the animal’s body and depending on a state of its body. Similarly, an agent may be modifying its mental state which would thus be modelled as part of the environment. Agent Environment action reward observed state Figure 2.1: The agent and the environment (reproduced from Sutton and Barto, 1998, p. 52). The Markov property Classical reinforcement learning assumes that the transitions between states of the environment are Markovian. That is to say the probability distribution over next state xt+1, given all previous states and actions, is such that, for all t ≥ 0: P(xt+1|x0, . . . , xt, a0, . . . , at) = P(xt+1|xt, at). That probability distribution is often denoted as the transition probability. Similarly, the reward received by the agent at time t is assumed to only depend of at and xt. The policy The policy is the model of the agent behavior; it may be understood as an equivalent of the stimulus-response rule. The policy is a distribution over possible actions taken by the agent at time t, given the history of the environment state. The policy is called deterministic when the distribution degenerates to a function, that is to say when only one action has nonzero probability. A policy is said to be stationary when it only depends on current state of the environment. Under the Markovian hypothesis, since the reward only depends on the current state and the action taken, stationary policies can achieve the same expected rewards as general policies. Therefore, we can safely restrict to the class of stationary policies.28 CHAPTER 2. TECHNICAL BACKGROUND Markovian decision process A Markovian decision process (MDP) is defined as a state space X , an action space A, a transition probability P, a reward function r, and a return. The return defines a notion of accumulated reward. For example one could consider the average return over a period T, defined as: Raverage = 1 T T −1 t=0 rt, or the discounted return over an infinite horizon, with discount factor γ < 1, defined as: Rdiscounted =  t≥0 γ t rt. A MDP is the problem of determining policies that maximize the expected return. Both definition of return lead to similar results; in the following we focus on the discounted return. The MDP is then denoted by a quintuple (X , A, γ, P, r). P is a mapping from state actions pairs to probability distributions over next states. We denote by P(x ′ |x, a) the probability to transition to state x ′ from state x, knowing that action a was taken. Finally, r : X × A → R is the reward function. Dynamic programming For a given MDP and a given stationary policy π, that is a mapping from states to probability densities over actions, one can define the value function V π and the action value function Qπ2 : V π (x) = E ∞ t=0 γ t r(Xt, At)     X0 = x  (2.21) Q π (x, a) = E ∞ t=0 γ t r(Xt, At)     X0 = x, A0 = a  . (2.22) The expectations are taken over all possible trajectories (Xt, At) t≥0 . Functions verifying the following equations are called optimal value function and optimal action value function: V ∗ (x) = sup π V π (x), ∀x ∈ X (2.23) Q ∗ (x, a) = sup π Q π (x, a), ∀(x, a) ∈ X × A. (2.24) A policy that is optimal (w.r.t. to eq. (2.23) or eq. (2.24)) over all states is said to be optimal. Greedy policies over Q∗ , that is to say policies such that π(arg maxa Q∗ (x, a)|x) = 1, are known to be optimal. They are in particular deterministic policies, which state that the existence of that maximum implies the existence of optimal deterministic policies. 2For infinite state or action space some additional hypothesis is required for these functions to be finite, such as the boundedness of the reward function.2.2. INVERSE REINFORCEMENT LEARNING 29 Equations (2.21) and (2.22) are equivalent to the following fixed point equations, also denoted as Bellman equations. V π (x) =  a∈A π(x, a)  r(x, a) + γ  y∈X P(y|x, a)V π (y)   (2.25) Q π (x, a) = r(x, a) + γ  y∈X P(y|x, a)  b∈A π(y, b)Q π (x, b) (2.26) Similarly, eqs. (2.23) and (2.24) are equivalent to the following fixed point equations, denoted as Bellman optimality equations. V ∗ (x) = max a∈A  r(x, a) + γ  y∈X P(y|x, a)V ∗ (y)   (2.27) Q ∗ (x, a) = r(x, a) + γ  y∈X P(y|x, a) max b∈A Q ∗ (x, b) (2.28) The right members of these equations defines the Bellman operators and Bellman optimality operators. The contracting property of these operators is sufficient to prove the existence and uniqueness of solution of these equations from the Banach fixed point theorem3 , in the case of discrete state and action spaces. Interestingly this property provides a Picard iteration algorithm to compute value and optimal value functions, named value iteration, which grounds dynamic programming. 2.2.2 What is inverse reinforcement learning? In the formulation of reinforcement learning, the reward function is assumed to be fixed and unknown but observed by the agent. Therefore, in order to build an artificial agent, one must first fully specify that reward function, which turns out to be both a very sensitive and difficult task. That difficulty yields limitations to the accuracy of reinforcement learning models of living agents. Because the manual specification of the reward function results in this limitation, the agent model could instead be more accurately fitted to reality by learning the reward function, from observation of the behavior it produces. That statement lead Russell (1998) to formulate the problem of inverse reinforcement learning as follows. “ It seems clear, however, that in examining animal and human behaviour we must consider the reward function as an unknown to be ascertained. [ . . . ] Therefore, to model natural learning using reinforcement learning ideas, we must first solve the following computational task, which we call inverse reinforcement learning: Given 1. measurements of an agent’s behaviour over time, in a variety of circumstances, 2. measurements of the sensory inputs to that agent; 3. a model of the physical environment (including the agent’s body). Determine the reward function that the agent is optimizing. ” Russell (1998) 3http://en.wikipedia.org/wiki/Banach_fixed_point_theorem30 CHAPTER 2. TECHNICAL BACKGROUND Another application of inverse reinforcement learning is the field of robot programming by demonstration. Instead of having a robot that copies the actions of a demonstrator, the robot could infer the intention of the demonstrator and then attempt to solve the same task. Indeed, copying the same action in a different context is often not effective, whereas understanding the intention enables better generalization. In that perspective, a reward function models the intention of the agent and is supposed to shape its behaviors through reinforcement learning. In the following we adopt a formulation of the problem in terms of a demonstrator or expert, whom an apprentice learns to imitate. Inverse reinforcement learning assumes the observation of actions from an agent. This agent is modelled as optimizing an unknown reward function and an apprentice tries to guess the reward function that the agent is optimizing. We make the simplifying assumption that the demonstrator and the apprentice share a common representation of the world, as a set X of states, a set A of actions, and transition probabilities P. We represent the demonstrator’s intention in the form of a reward function r, which defines a Markov decision process (MDP), that is a quintuple (X , A, γ, P, r) (see section 2.2.1). Finally, the objective of inverse reinforcement learning is to infer the reward function r, given a set of observations that are couples (xt, at) of states xt ∈ X and action at ∈ A from the demonstrator. The demonstrator or expert is for that assumed to act optimally or nearly optimally. Strictly speaking, the optimality of the demonstrator means: at ∈ arg max a∈A Q ∗ r (xt, a). It is important to notice here, that, in opposition to section 2.2.1, we have written the dependency of the MDP, and in particular the value functions, in the reward. Limitations of the reward estimation problem Unfortunately, the problem we have just formulated is ill-posed. First of all the null reward is always a solution since it leads to constant null functions and therefore arg max a∈A Q ∗ r (x, a) = A for all x ∈ X . Similarly any constant reward function yield constant value functions, which makes any policy optimal. Also, as explained by Ng et al. (1999), for given state and action spaces, any potentialbased function (see the definition below) can be added to a reward function without changing the set of optimal policies. Their result also comes with a weaker converse: no other function can be added to any MDP without modifying the set of optimal policies. Finally, the sufficient condition also guarantees stability of the set of near-optimal policies. Definition. Let F be a real-valued function on X ×A×X . It is said to be potentialbaised if there exists a real-valued function φ : X → R such that for all x ∈ X , a ∈ A, F(x, a, x′ ) = γφ(x ′ ) − φ(x) Theorem 2. (Ng et al., 1999)2.2. INVERSE REINFORCEMENT LEARNING 31 • Sufficiency. If F is a potential-based function than any optimal policy of M = (X , A, P, γ, R) is an optimal policy of M′ = (X , A, P, γ, R + F) (and vice-versa). • Necessity. If F is not a potential based function, then their exist (proper) transition functions P and a reward function R : X × A −→ R such that no optimal policy in M′ = (X , A, P, γ, R + F) is optimal in M = (X , A, P, γ, R). 4 The theorem from Ng et al. (1999) considers a definition of reward functions slightly extended with respect to the one we use here: the reward is a function of next state in addition to current state and current action. The notion of potential-based function as defined above does not make sense without that formulation. However, the same sufficiency result holds if we define in average potential-based functions, in terms of expected next state, given an action. That is to say a function F such that their exists a potential φ for which: F(x, a) = γ E x′∼P (·|x,a)  φ(x ′ )  − φ(x). Such function is not always potential based in the sense of Ng et al. (1999) but the necessity condition holds.56 Following this comment, in the case of non-deterministic transition functions (for which some functions are not potential based but potential based in average), the class of rewards that share the same set of optimal policies can be expanded. Finally other context dependant functions may, for a given family of transition functions, be added to the reward function without changing the set of optimal policies. Also the previous discussion only covers additions to the reward function but not others transformations. For example we mentioned that the scalar multiplication of the reward leaves invariant the set of optimal policies. Formulations of the reward estimation problem From the high level formulation of the inverse reinforcement learning problem by Russell (1998), several more precise formulations have been made in order to bring the problem to the range of algorithmic formulations. First of all, Ng and Russell (2000) introduce a characterization of rewards that make an action optimal. The following formulation uses a matrix representation of the transition function: for each action a, Pa contains the transition probabilities between states. Also r is assumed to only depend on the state and be bounded by rmax; it is represented as a vector of one value for each state. Finally, for simplicity, the actions are supposed to be re-ordered for each state in such a way that one action a ∗ is optimal for all states. The symbol ⪰ denotes that each coefficient is greater. 4The theorem as formulated above is not true since a constant value can be added to the reward function without changing the optimality of policies. Ng et al. (1999) actually mention this fact in the demonstration of the necessity condition because they need to shift to zero the F function. However, for this transformation to be made without loss of generality the necessity condition needs to be slightly relaxed. 5Actually the proof does not change. 6Although this may seem in contradiction with the necessity condition from the theorem, it is not. Indeed, the in average potential based functions depend on the transition function. Therefore they do not leave invariant the set of optimal policies for any MDP.32 CHAPTER 2. TECHNICAL BACKGROUND Theorem 3. (Ng and Russell, 2000) Let a finite state space X , a finite set of actions A, transition probability matrices  Pa  a∈A, and a discount factor γ ∈ ]0, 1[ be given. Then the policy π given by π(x) = a ∗ is optimal if and only if, for all a ̸= a ∗ , the reward r satisfies:  Pa∗ − Pa I − γPa∗ −1 r ⪰ 0 Ng and Russell (2000) use the previous theorem to derive an optimization problem. For that they use the heuristic that the solution reward function should, in additional to make the observed policy optimal, maximize the loss in return induced by diverging from that policy. This is obtained by maximizing the quantity:  s min a̸=a∗  Pa∗ (s) − Pa(s) I − γPa∗ −1 r Finally, they also penalize the norm ∥r∥1 of the solution reward and bound its coefficients. The inverse reinforcement learning problem then takes the form of a linear programming problem. maximize  s min a̸=a∗  Pa∗ (s) − Pa(s) I − γPa∗ −1 r − λ∥r∥1 such that  Pa∗ − Pa I − γPa∗ −1 r ⪰ 0, ∀a ̸= a ∗ ∥r∥∞ ≤ rmax Matching expected features Another interesting formulation of the inverse reinforcement learning problem is expressed in terms of expected feature vector. In the case where the reward function is assumed to be linearly parametrized on a feature vector φ, that is r(x) = θ T φ(x) for any state s, we define the feature expectation under policy π as f(π) = E (xt)∼π ∞ t=0 γ tφ(xt)  . It follows immediately that the expected return for policy π is given as the scalar product R(π) = θ T f(π). The feature expectation under expert policy, f(πE) can be empirically estimated from the demonstrations as ˆfE. Abbeel and Ng (2004) state that finding a policy π˜ that matches the expert’s feature expectation to a certain error is sufficient to achieve a return that is close, at most to the same error, to the expert’s empirical return under the real reward. Proposition 1. (Abbeel and Ng, 2004) Let π˜ be a policy and ε > 0. If ∥f(˜π) − ˆfE∥2 ≤ ε then for any parameter ∥θ∥2 ≤ 1 and reward θ T φ: ∥R(˜π) − R(ˆπE)∥2 ≤ ε The proposition is actually a trivial consequence from the Cauchy-Schwartz inequality, which is used as a starting point by Abbeel and Ng (2004) to express the problem of matching the expert’s expected features. This leads to a new formulation of the inverse reinforcement learning problem back into an apprenticeship learning problem: the goal is not any more to recover the real reward function but to find a policy that behaves as well as the expert’s under the real reward.2.2. INVERSE REINFORCEMENT LEARNING 33 Matching the policy Finally, another approach is to directly target the imitation of the expert’s policy, but parametrized in the reward. That is to say find a reward function r such as the optimal or nearly optimal policy πr associated to that reward function is as close as possible to the expert’s, that is to say solve the following problem for a given norm ∥ · ∥. arg min r ∥πr − πE∥ This approach is followed by Neu and Szepesv´ari (2007) and their algorithm to solve it is detailed in section 2.2.3. 2.2.3 Algorithms for inverse reinforcement learning Various algorithms have been developed to solve the various formulations of the inverse reinforcement learning problem, as introduced in previous section. Some approaches such as those of Ng and Russell (2000) and Ramachandran and Amir (2007) directly attack the ill-posed problem of inferring the real reward function. For that they need to introduce additional constraints on the problem. Ng and Russell (2000) then use linear programming while Ramachandran and Amir (2007) introduce a Markov chain Monte-Carlo algorithm. Other approaches focus on finding policies that achieve as well as the expert’s on the real, unknown, task. For example, Abbeel and Ng (2004) introduce a quadratic programming and a projection algorithm to solve that task. Finally, several algorithms have been developed to match the expert’s policy with a learnt policy that is parametrized in the reward function. Examples include the approach from Neu and Szepesv´ari (2007) described below, as well as the one from Ratliff et al. (2006). Gradient inverse reinforcement learning In this section we present the algorithm and results introduced by Neu and Szepesv´ari (2007). For more details and proofs the reader is invited to refer to the original paper. Inverse reinforcement learning for apprenticeship learning is based in the assumption that the expert’s intention is to solve a task, modeled by a reward function. Mimicking the expert behavior therefore consists in using a policy that is optimal for the same reward. The hybrid approach from Neu and Szepesv´ari (2007) focuses on learning a reward such that an associated optimal policy matches the expert’s actions. In the following we assume that the model of the world, that is composed of states, actions, and transitions, is fixed and that the discount factor γ is known. However we represent the intention of a demonstrator (called expert) as acting optimally with respect to a task that is modelled as a reward function. Since the model of the world is fixed no distinction is made between a reward function r and the associated MDP, MDP(r). We assume that we observe demonstrations ξ from an expert, that are sequences (xt, at) of states xt ∈ X and action at ∈ A, such that ξ = (xt, at) t∈[|1,T|] .34 CHAPTER 2. TECHNICAL BACKGROUND In this single task setup, the expert provides one or several demonstrations of solving the same task. The expert actions are modeled by a stationary policy πE. The objective of apprenticeship learning becomes to find a policy π that minimizes the cost function from eq. (2.29), in which µ denotes the average state occupation, that is to say µE(x) = lim T→∞ Eπ 1 T  T t=1 δXt=x . J(π) =  x∈X ,a∈A µE(x)  π(x|a) − πE(x|a) 2 (2.29) For an expert demonstration represented by ξ = (xt, at) t∈[|1,T|] one estimates J by eq. (2.30), in which ˆµE,ξ and ˆπE,ξ are empirical estimates of µE and πE from ξ. Jξ(π) =  x∈X ,a∈A µˆE,ξ(x)  π(x|a) − πˆE,ξ(x|a) 2 (2.30) In the following the reward rθ is parametrized by θ ∈ Θ where Θ ∈ R d and we denote by Q∗ θ the optimal action value function of the MDP associated to rθ. In practice linear features are used for r. Let G be a smooth mapping from action value functions to policies that returns a close to greedy policy to its argument. Instead of minimizing Jξ over any subset of policies, Neu and Szepesv´ari (2007) suggest to constrain π to be of the form πθ = G(Q∗ θ ). Solving the apprenticeship learning problem is then equivalent to finding θ that reaches: min θ∈Θ Jξ(πθ) s.t. πθ = G(Q ∗ θ ). (2.31) In practice, Neu and Szepesv´ari (2007) use Boltzmann policies as choice for the G function, as given by eq. (2.32) where the parameter β is a nonnegative real number. This choice ensures that G is infinitely differentiable. Assuming that Q∗ θ is differentiable w.r.t. θ its first derivate is given by eq. (2.33). G(Q)(a|x) = exp βQ(x, a)   a′∈A exp βQ(x, a′)  (2.32) ∂G(Q∗ θ )(a|x) ∂θk = G(Q ∗ θ )(a|x)  ∂Q∗ θ (x, a) ∂θk −  a′∈A πθ(a ′ |x) ∂Q∗ θ (x, a′ ) ∂θk  (2.33) The following proposition from Neu and Szepesv´ari (2007) provides both guarantees that ∂Q∗ θ (x, a) ∂θk is meaningful and a practical way to compute it. Proposition (Neu and Szepesvari). Assuming that rθ is differentiable w.r.t. θ and sup(θ,x,a)∈Θ×X×A < ∞, the following statements hold: 1. Q∗ θ is uniformly Lipschitz-continuous as a function of θ in the sense that there exist L ′ > 0 such that for any (θ, θ′ ) ∈ Θ2 , |Q∗ θ (x, a) − Q∗ θ ′ (x, a)| ≤ L ′∥θ − θ ′∥2.2. INVERSE REINFORCEMENT LEARNING 35 2. The gradient ∇θQ∗ θ is defined almost everywhere7 and is a solution of the following fixed point equation, in which π is a greedy policy on Q∗ θ : ϕθ(x, a) = ∇θr(x, a) + γ  y∈X P(y|x, a)  b∈A π(b|y)ϕθ(y, b) (2.34) The previous result thus provides an algorithm, similar to dynamic programming that yields the derivative of Q∗ θ with respect to θ. It it then easy to combine it with the differentiates of Jξ with respect to π and G to obtain a gradient descent algorithm that finds a local minima of the objective. Neu and Szepesv´ari (2007) furthermore provide a variant of this algorithm following a natural gradient approach. 7 that is except on a set of measure zero36 CHAPTER 2. TECHNICAL BACKGROUNDChapter 3 Learning a dictionary of primitive motions The idea of motion primitive, already introduced above in section 1.2, is both rooted in biology (see Konczak, 2005, Mussa-Ivaldi and Bizzi, 2000, Tresch and Jarc, 2009) and perceived as an appealing and efficient paradigm for robot programming (see Cangelosi et al., 2010, Kruger et al., 2007): being able to encapsulate basic motion representation and motor skills in a way that enables their combination is expected to bring combinatorial growth of robot skills in place of the usually observed linear growth. Indeed if a robot is capable of combine a new skill with all the other skills it already knows, it actually has not learnt one skill but as many as the potential combinations it can achieve. That way it scaffolds its knowledge in a way that models the simple to complex learning trajectories observed in humans. The same principle applies to the recognition of human motions (Nori and Frezza, 2004a). However, we have seen in section 1.2 that the concept of motion primitive from previous paragraph is vague and needs to be further defined. For instance, the definition of motion primitive could be closely related to the nature of their potential combinations into more complex motion or skills. In the next section, a closer look is given to that concept of combination of primitive motions, with an emphasis on two questions: “What does it mean to combine motion parts?” and “Where do the primitives come from?” The question of the nature of the composition is itself connected with issues of motion or skill representation that make them compatible with such combinations, but also with the algorithms that might be necessary to achieve the composition. As for the second question, the origin of motion primitives can vary greatly in the literature: some techniques involve pre-coded skills or motions, others, learning on subproblems provided by a caregiver, learning from self-exploration, learning to decompose a demonstrated motion or skill, etc. Finally the hierarchical nature of a lexicon of primitives in which high order primitives are defined in terms not of low levels primitives but intermediate ones, that in turn are defined on lower level primitives, brings its own set of challenges. However we do not focussed on that aspect in that work. An approach to the learning of motion parts is to implement an algorithm that tries 3738 CHAPTER 3. LEARNING A DICTIONARY OF PRIMITIVE MOTIONS to closely match a decomposition of motions to the high level representation we, as grown-up humans, have of that motion. However that high level representation is highly dependant of our perceptual and motor apparatuses, our development history, our culture, which makes that task highly ambiguous. Therefore in the work presented in this section and more generally throughout this thesis we do not build an artificial learner that explicitly constructs a lexicon of motion primitives each of which represents one abstract gesture and then decompose the global motion as the combination of these gestures. Rather we build a learner which internal representation has combinatorial properties that makes it capable of capturing the compositional aspect of the observed motion. Then, instead of analysing the quality of that representation by an open-skull approach, we evaluate the learner on a social task which requires the ability to perceive the combinatorial nature of motions. In this example the task is to reconstruct a symbolic linguistic representation of the motion, where the combinations of symbols matches the high level human perception of motions. That way the agent is not designed to have a purely compositional approach to learning but rather the compositional representation is expected to emerge in order to solve the task: which means that the compositional understanding is a consequence of the teleological understanding (using the terminology of Wrede et al., 2012, as introduced in section 1.2). Finally that leads to the important distinction between two aspects of decomposition: the intrinsic compositional properties of the representation and the high level decomposition that is encoded in the structure of the social task. The former is expected to act as a substrate for the latter. Our contribution, presented in this chapter covers three important topics. First we discuss the nature of combinations of motion primitives that are active simultaneously, in contrast to the study of sequential motion primitives. Then, the experiment performed in the following demonstrated how an agent can leverage the compositional structure of motions to learn primitives that were demonstrated only in an ambiguous manner, which means the learnt primitives where not demonstrated alone but always mixed together. Finally this chapter provides an example of language grounding in the case of a simple symbolic language with a combinatorial structure. 3.1 Combination and discovery of motion primitives This chapter targets the discovery of motion primitives that can be combined together into complex motions. In this section we review and discuss the various meanings of ‘combination’, properties of several approaches to motion representation, and algorithms that can be used to decompose motions. 3.1.1 What does combination mean? Sequencing is probably the most common way to combine motion primitives for robotics. A simple example of sequential combination of motor primitives is: moving to a door, turning the door knob, pushing the door and moving forward. Despite looking quite coherent with our high level perception, the previous decomposition is hiding a lot of complexity. Indeed, the actual motion executed to open the3.1. COMBINATION AND DISCOVERY OF MOTION PRIMITIVES 39 door might vary greatly depending on the kind and shape of the door knob: opening a door with a round or a bar shaped knob is very different but perceived as the same high level action. In that case both primitive are combined as two contextual alternative into the high level action: if the knob is round, action 1 is executed, else action 2 is used. Similarly two motion primitive can be combined through probabilistic mixing: motion 1 is used with probability p and motion 2 with probability 1 − p. In other words the motion primitive is seen as a probability distribution over motions and the combination of the primitives results from the mixture of the associated probability distribution. The case of contextual alternatives can easily be fitted into that formalism by considering probability distributions over motions, conditioned by the context. Such a formalism is quite general and actually covers most of the approaches encountered in the literature and described further. Even with contextual alternative and probabilistic mixing, we still miss some structure in our motivating example. While moving to the door one generally also looks at the knob, prepare its hand to open the door, avoid obstacles, and eventually say “good bye”, in a completely simultaneous way. It thus appears from a closer look that many primitive motion happen in a concurrent manner, which may include several degrees of independence or interaction between the motion primitives. For example one can consider two motions happening independently, one on each arm (for example while dancing), or superposed such as a perturbation being added to a reaching motion to avoid an obstacle seen at the last moment. However independence is often too strong an approximation and one must consider the interaction between motion primitives in more details. For robotic applications, it is common that motion corresponds to solving tasks that are prioritized such as grasp an object while keeping the user safe. In such cases primitive motions corresponding to one task can be subordinated to a more important task or hard constraints imposed by security. When soft constraints are considered instead of subordination motion primitives can be competing with one another. For example while walking and holding a cup of coffee, motions targeted to maintaining the balance of the body are competing with those to maintain the balance of the cup. If the coffee is moving too much the walker might modify his gate to keep the coffee in the cup. If by accident the walker slip on a wet floor he might not be able to keep the cup balance while correcting his own. Finally more complex and general interactions between motion primitive might be considered. High level motions like moving a finger in a straight line, actually involve complex muscle synergies but also stabilization mechanisms that might use other parts of the body. Therefore one could represent that by a motion primitive producing the straight line and plugged into a control mechanisms for a muscle synergy, which can be seen as a functional approach of motor primitives. Each of these combinations can account for a subset of complex motions but are not incompatible. However, it is still a difficult problem to find representations that are general enough to cover a large range of possible combinations and still enable efficient algorithms for combining and learning such primitive. 3.1.2 Motion representations Artificial capture systems perceive motion as a signal, that is to say as a time indexed sequence of values, and can be represented as such: it leads to what can be called a signal processing approach to motion representation. Sequences of positions can then40 CHAPTER 3. LEARNING A DICTIONARY OF PRIMITIVE MOTIONS Figure 3.1: Sequential and parallel combinations of motions are well known from choreographers and dancers. This example of dance annotation using Rudolph Laban’s system illustrates such structure. Left and right parts correspond to two interacting dancers. Each symbol encodes a gesture, vertical axis corresponds to sequencing of gestures; gestures on the same horizontal line are concurrent. See http://en.wikipedia.org/wiki/Labanotation for more information. be cut in subsequences or concatenated. At each time step, body positions can be the result of the addition of reference body positions encoded as a motion primitives, and small perturbations (for example avoiding an obstacle) coded as other motion primitives. Such decompositions are found in work from Li et al. (2010), Hellbach et al. (2009), Taylor and Hinton (2009a). The usual way to reproduce on a robot a motion recorded and represented that way is to use control in position. Such approach actually hides that forces that need to be applied to body joints to achieve the desired position: they actually transform each position into a low level mechanisms, for examples, a PID1 , that is used to make sure the robot follows the targeted trajectory. Similarly one can use the velocity or the acceleration trajectories to control the robot: for a sufficient sample rate or adequate smoothing, these quantities can be directly derived from the trajectory. In other words the previous approach is to represent motion primitives as being mappings from time to control commands (for example positions, velocities). Let denote by T an interval of integers or real numbers and by A the control space or space of actions; following that view, a motion primitive is a mapping m : T −→ A. Actually this is a naive representation of motion that only account for the way it is perceived by simple sensors. That a PID or a similar mechanism is needed to 1A proportional integral derivative (PID) controller is control loop designed to minimize the error between the measured outcome variable and a desired value. It is named after the three terms used in the feedback function that are proportional to the measured error, its integral, and derivative (See http://en.wikipedia.org/wiki/PID_controller).3.1. COMBINATION AND DISCOVERY OF MOTION PRIMITIVES 41 actually produce the motions indeed demonstrates that the nature of motion is more a closed loop interaction between a body and an environment than an open loop trajectory. Low-level control to following a predefined trajectory is however not the only aspect of motion that imply closed loop interaction with the environment and the trajectory approach to motion representation is often too restrictive: it does not account for the perceived similarity between two grasping motion that may take the form of completely different body trajectories. Therefore it is often necessary and useful to represent motion primitives in a way that takes into account the loop between stimulus, reaction of the agent, and its effects on the environment. A common model is to represent the mapping between the state of the world and the agent’s action. The notion of world generally includes both the agent and the environment, or at least what can be perceived by the agent. While defining what the world is is made easy by considering it to be ‘everything’, it is generally more difficult to define precisely and represent in a computational way its current state. The inclusion of the agent in the world is a way to account for internal states of the agent (for example short or long term memory) without considering the whole perceptual history of the agent; in other words, the state representation is assumed to be rich enough for the agent to have a Markovian behavior. Mappings from time and current state of the system to actions are often referred to as deterministic policies. Denoting the state space by S, a deterministic policy is a mapping π : T × S −→ A. Motion representation are often desired to include some stochasticity; thus the more general notion of stochastic policy (or simply policy) arises, that corresponds to a mapping π : T ×S −→ P(A), where P(A) stands for the set of probability distributions over A, assuming it is defined in a meaningful manner. A policy is called stationary when it is constant over time; that is a stationary policy is a mapping π : S −→ P(A). An important motivation behind stationary policies comes from decision theory and reinforcement learning (see section 2.2). Reinforcement learning (see Sutton and Barto, 1998, and section 2.2.1) studies agents interacting with a world, abstracted as a state in a state space S, through actions in an action space A, and which ultimate objective is to maximize a reward they get from the world. In the common case where the world and the reward function are assumed to be Markovian, it is known that there exist an optimal deterministic stationary policy. Therefore stationary policies are a relevant representation for the motions of such an agent. A large set of techniques exist to represent probability distributions and can be applied to policies. The option framework developed by Sutton et al. (1999), explains how to build hierarchical policies by extending the space of actions with primitive policies called actions: such approach both represent sequencing and probabilistic mixing of primitives. Similarly, hidden Markov models (HMM, Baum et al., 1970, Rabiner, 1989) are used to encode, as a policy, transitions between the agent’s internal states and the action they produce; they are also used at a higher level to encode transitions between polices, that is to say their sequential combination (see Kulic and Nakamura, 2010, Kruger et al., 2010). In the specific setting where actions are reduced to velocities (assuming an adequate low level controller), Calinon et al. (2007) chose to instead of directly representing the policy, represent the joint probability over time, positions and velocities: given a position (or a distribution over positions), the policy is obtained as the conditional distribution knowing that position. They use Gaussian mixture models (GMM, Ghahramani and Jordan, 1994, Bishop, 2006,42 CHAPTER 3. LEARNING A DICTIONARY OF PRIMITIVE MOTIONS chapter 9) to represent the distribution; the mixture approach is in itself a way to encode probabilistic mixing of very simple primitives, each corresponding to a Gaussian. This approach have been extended to also represent sequencing of primitive by using HMMs to encode transitions between motion primitives (Calinon et al., 2010, Butterfield et al., 2010), sometimes called experts (Grollman and Jenkins, 2010). An interesting aspect of the representation of motion primitives as probability distributions over the position-velocity space is that it is a stochastic version of the representation of the phase diagram of the dynamics of the agent. Indeed the agent can be seen as a dynamical system which state s is ruled by a differential equation of the form s˙ = f(s, t). The two representations are very close but focus on different aspects of the motion. We have discussed how Mussa-Ivaldi and Bizzi (2000) put in evidence the decomposition of control in a frog limb into control primitive. Nori and Frezza (2004b,a) have extended this idea by building a basis of primitive controller that can be used to provide reaching and tracking abilities to a robot through simple linear combinations of the primitive controllers. The coefficients of the linear combination are then obtained through a simple projection. Williamson (1996) had previously developed a similar architecture with hand-crafted primitives. Khansari-Zadeh and Billard (2011) and colleagues have studied how the representation as dynamical systems of motions learnt from demonstration can be enforced to satisfy some properties such as the stability of the underlying dynamical system. In Mangin and Oudeyer (2012a), a very simple representation of such a phase diagram for each body joint is shown to be sufficient to recognize dance gestures, as further detailed in section 3.2. The dynamical system approach to motion representation is also illustrated by Ijspeert et al. (2003), Schaal (2006) who encode motion primitives as a phase2 indexed perturbation over a predefined dynamical system which encode an elastic attractor dynamics. This representation is called dynamic motion primitives (DMP). Stulp and Schaal have further demonstrated how to combine in sequence motion primitive encoded that way (Stulp and Schaal, 2011). Daniel et al. (2012) provide an algorithm to simultaneously learn several alternative policies, represented as DMPs, and use them to solve an episodic reinforcement learning problem. Finally, since motion primitives often are skills to achieve a certain task, a dual point of view on the problem consist in representing the task itself, eventually together with the associated skill. Such an approach is exemplified in work such as (Brillinger, 2007, Hart et al., 2008, Hart and Grupen, 2011, Jetchev and Toussaint, 2011, Mangin and Oudeyer, 2012b). Hart and colleagues further develop the subordinated composition of motion represented in such a way. In our work (Mangin and Oudeyer, 2012b) and further wok developed in chapter 4 we focus on the concurrent and competing composition of such tasks. 3.1.3 Algorithms to decompose observed motions Dictionary learning techniques have been applied to the discovery of motion primitives from sequences. For example, Li et al. (2010) have used orthogonal matching pursuit to decompose complex motions into simple motion patterns activated briefly along the 2That notion of phase is a flexible abstraction of time that can evolve non-linearly and easily represent cyclical motions.3.2. HISTOGRAMS OF MOTION VELOCITY 43 time dimension. The decomposition can then be used to perform both compression and classification. This approach is actually an instance of the sparse coding approach to signal processing, which has been extensively studied in other fields (Paatero and Tapper, 1994, Lee et al., 2006, Hoyer, 2002, Aharon et al., 2005). Hellbach et al. (2009) have also used non-negative matrix factorization to perform a decomposition of globally unstructured motions in low level components and use it in a prediction problem. The use of similar algorithms, but to learn simultaneous motion primitives is detailed in section 3.3. Taylor and Hinton (2009a) showed that conditional restricted Boltzmann machines can be used to learn a latent representation space for encoding motion primitives. Many approaches to representing motion primitives as probability distributions make use of the expectation maximization (EM, Dempster et al., 1977, Ghahramani and Jordan, 1994, Bishop, 2006, chapter 9) algorithm and its application to HMMs. For example, Kulic and Nakamura have proposed in Kulic and Nakamura (2010) a method that first performs an unsupervised segmentation of the motion signal into small blocks through a first HMM, and then performs clustering over a HMM representation of the found blocks, thus learning motion primitive as clusters. Kruger et al. (2010), have proposed to first discover primitives by clustering action effects on manipulated objects and then use the found clusters and associated segmentation to train parametrized hidden Markov models that allow recognition and reproduction of motions. Finally Calinon et al. (2010) and Butterfield et al. (2010) use EM for GMMs and HMMs to discover and represent the transitions and sequential combinations of primitives, while Grollman and Jenkins (2010) use a combination of EM and a custom clustering algorithm. 3.2 Histograms of motion velocity In our contribution Mangin and Oudeyer (2012a) we introduced a simple histogram based representation of motion that can be seen as a rough approximation of the phase diagram of the dynamics of one body joint, as discussed in previous section. This representation is applied to choreographies and is shown to enable the discovery and recognition of primitive gestures. An important property of such histogram based representation, that makes it usable with techniques like NMF, is that it represents data with vectors of non-negative coefficients which can be combined through non-negative weighted sums. In this section it is assumed that the motions of a human demonstrator are captured as trajectories in angle and angle velocity spaces of several articulations of the human body. Each trajectory on a specific body articulation (or degree of freedom) is considered separately and the entire sequence of angles and velocities is transformed into a histogram, represented by a fixed length non-negative vector. Vectors obtained for each degree of freedom are then concatenated into a larger vector. The velocity trajectories are obtained from an angle trajectory that is actually captured: a delayed velocity is used to achieve better robustness to noise in the angle sequences. More precisely x˙ t = xt − xt−d is used to compute the velocities, instead of being restrained to the case where d = 1. It is not necessary to divide by the fixed time step since the histogram representation described in the following is invariant44 CHAPTER 3. LEARNING A DICTIONARY OF PRIMITIVE MOTIONS to scaling all the data by the same amount. In Mangin and Oudeyer (2012a), we explore different approaches for the transformation of angles and velocities sequences into histograms. They differ on two modelling choices: 1. Which data is used to build histograms? 2. Which method is used to build histograms? Answers to the first question are related to the use of angles and velocities values. While velocities can bring precious information, there are several ways of integrating this information in the histogram representation: 1. consider only angles. 2. consider only velocities. 3. treat angles and velocities as separate degrees of freedom. 4. or use the two-dimensional angle-velocity vectors that is to say build histograms on the joint angle-velocity space (see fig. 3.2). We study two methods for building histograms. First, smoothed histograms can be built on regularly distributed bins. More precisely we split the angle, velocity or joint angle velocity space into a regular grid of bins. Histograms are built by counting the number of samples from the trajectory falling into each bin and dividing by the length of the trajectory. A Gaussian smoothing kernel is used to make point by point comparison of histograms more robust to perturbations (Rubner et al., 2000). These methods are referred to as Kernel Density Estimation (KDE) in the following. item An alternative approach is to build histograms over a vector quantization, which is a more adaptive binning process. Vector quantization (VQ) is performed through a k-means algorithm. Then a histogram is built by counting the proportion of samples falling into each cluster. We explore the use of both hard (each histogram is only counted in one cluster) and softmax (each sample is counted in each cluster with a weight depending on its distance to the cluster’s centroid) centroid associations. Representing motion data by separate histograms on each degree of freedom leads to two approximations: 1. for a given measurement in the trajectory, information about dependency between different degrees of freedom is dropped. 2. the sequential information between measures for a given degree of freedom is dropped. Similar simplification have however been successfully used in two other fields. Ten Bosch et al. (2008) have demonstrated that, even if sequential information may appear necessary in language, and especially in speech utterances, very good word discovery can be achieved without considering this sequential information. Both in text classification and in computer vision bag-of-words techniques also achieve good performances by dropping positional information of extracted local features (Joachims, 1997, Sivic and Zisserman, 2008). Furthermore using histograms built on joint angle positions and velocities is similar to representing transitions in angle space. By representing the sequence through3.3. DISCOVER SIMULTANEOUS PRIMITIVES BY NMF 45 velocity angle DOF 1 DOF 2 DOF 3 } } } frequency angle DOF 1 DOF 2 DOF 3 } } } Figure 3.2: Illustrations of concatenated histograms on positions (top) and joint position and velocities (bottom). For the first one, x axis is associated to different possible values for each angles and y axis to frequencies. On the second one frequencies are represented through colors, x and y axis correspond respectively to values of angles and velocities. (Best seen in color) its transition we approximate it by a Markovian process. Such an approximation is quite common in the gesture recognition and motion planning literature (Calinon and Billard, 2009, Kulic et al., 2009). The various methods for building the histogram based representation of motions are compared in the experiment described in next section; relevant results for this comparison are found in section 3.3.4. 3.3 Discover simultaneous primitives by nonnegative matrix factorization In this section we present results published as Mangin and Oudeyer (2012a). We demonstrate how NMF techniques presented in section 2.1 can enable a system to discover and learn to recognize gestures that are combined simultaneously to form complex choreographies. More precisely we consider a set of demonstrations each of which is a complex choreography, complex meaning that it is composed of two or three primitive gestures. Each demonstration is associated with a set of symbols that describe the gestures composing the demonstration. Such symbols can be interpreted as an equivalent of the symbols from fig. 3.1 provided to someone unfamiliar with Laban’s notation. A learning system observes the gestures together with the unknown symbols and build an internal (or latent) representation of the data. The symbols are said to be ambiguous since several symbols that describe several gestures demonstrated together, are always given at the same time. Therefore the system has not only to learn a good enough representation of gestures to be able to recognize it, but also has to discover which part of the complex motion is relevant for each symbol. In a test phase the system is asked, given a new demonstration of a complex dance, to yield symbols corresponding to that dance. The experiment demonstrates that the system is capable of providing correct symbolic descriptions of new demonstrations46 CHAPTER 3. LEARNING A DICTIONARY OF PRIMITIVE MOTIONS L5 ? linguistic descriptions choreography demonstrations The system observes a choreography and is asked to reconstruct the associated linguistic description. Task L2 L4 L L6 3 Demonstration 1 Demonstration 2 Training Figure 3.3: In the training phase, the learner observes demonstrations of choreographies composed of several elementary gestures, and the associated set of linguistic labels (left). After that the learner has to reconstruct the set of labels associated to a demonstrated choreography (right). (Best seen in color) Gesture 1 Gesture 2 Gesture 3 Gesture 4 Gesture 5 Gesture 6 Figure 3.4: A set of the primitive dance movements that are mixed into demonstrated choreographies is illustrated in this figure. of choreographies even if the particular combination of gestures was never observed during training: it therefore demonstrates that the system is capable to capture the combinatorial aspect of the observed dance motions. The process is illustrated in fig. 3.3 3.3.1 The choreography data The data used in these experiments is described in more details in section appendix B.2 and available publicly3 . It has been acquired from a single human dancer through a KinectTM device and the OpenNITM software4 that enables direct capture of the subject skeleton. The device and its associated software provides an approximate 3D position of a set of skeleton points. These points are then converted into 16 angle values representing the dancer position at a specific time. This conversion is achieved through a simple geometrical model of human limbs. It is then converted to position-velocity histograms with the techniques described in section 3.2. The primitive dance motions used in our gesture datasets and illustrated in fig. 3.4 and table 3.1 are either associated to legs, as for example squat and walk movements, to both arms, as clap hands and paddle, or to left or right arm, as punch, wave hand. Yet this structure is not known by the system initially. They correspond to both discrete and rhythmic movements. The motions were recorded from a single human demonstrator in several sessions. Each motion was selected randomly and the names of the basic gestures that composed it were given to the demonstrator. Recording of the motions occurred through several sessions. 3Dataset and examples available at http://flowers.inria.fr/choreography_database.html 4http://www.openni.org3.3. DISCOVER SIMULTANEOUS PRIMITIVES BY NMF 47 Id Limb(s) Description 1 right arm hold horizontal 5 raise from horizontal to vertical 6 lower from horizontal to vertical 10 hold horizontal and bring from side to front 19 both arms clap hands (at varying positions) 20 mimic paddling on the left 21 mimic paddling on the right 22 mimic pushing on ski sticks 23 legs un-squat 24 mimic walking 25 stay still 28 right leg raise and bend leg to form a flag (or “P”) shape 30 left arm hold horizontal 38 mimic punching 40 lower forearm from horizontal position 43 swing forearm downside with horizontal upper arm Table 3.1: Primitive dance motions from the small mixed dataset Three motion datasets are considered for these experiments. A first dataset is used to separately study the efficiency of the various representations. In this dataset each demonstration only includes one primitive dance motion. There are 47 different dance primitive and the set contains 326 demonstrations. This dataset is referenced as single primitive dataset. Two other datasets are composed of demonstrations of complex choreographies, composed of two or three randomly chosen compatible (that is spanned over separate degrees of freedom) primitive motions. The first one contains 137 examples of combinations of 16 distinct primitive dance motions. The second one, contains 277 examples with 47 primitive dance motions (the same as in single primitive dataset). These datasets are referenced as small and full mixed dataset. Since the datasets only contain a relatively small number of examples we used leaveone-out cross validation to build test and train sets. Presented results are averaged over all possible test sets. With the full mixed dataset examples presented for testing contain a combination of primitive movements that in 60% of the cases have not been observed during training (see fig. 3.8). The language description has the following structure: keywords or labels from a set L are associated to gestures, and combined into sentences from a set S ⊂ P(L). In this article we only consider symbolic labels. More precisely when the sentence s = {l1, l2, l3} ∈ S is used to describe a choreography, the system observes a vector y i ∈ R L (L is the total number of labels, L = |L|) such that for 1 ≤ j ≤ L, y i j takes value 1 if lj ∈ s, and 0 elsewhere. For example if 5 labels are considered, the sentence containing labels 1 and 3 would be represented by vector: (1, 0, 1, 0, 0)T .48 CHAPTER 3. LEARNING A DICTIONARY OF PRIMITIVE MOTIONS 3.3.2 Algorithm In this section, the NMF algorithm introduced in section 2.1 is applied to the learning problem that we just introduced. This use of NMF in a multi-modal framework was introduced by ten Bosch et al. (2008), Driesen et al. (2009), and is extended in chapter 6. In the experiments from this section, we used the plain NMF algorithm based on multiplicative updates, for both errors based on Frobenius norm and Kullback-Leibler divergence (see section 2.1.1). We assume that we are given a set of examples represented by vectors v i ∈ R m (1 ≤ i ≤ n), each of which is composed of a part representing a demonstrated choreography and a part representing a symbolic representation of that choreography and use NMF to learn a dictionary of atoms W ∈ R m×k and coefficients H ∈ R k×n such as: V ≃ W · H. Therefore the data matrix V and the dictionary W are composed of a motion and a language part: V =  Vmotion Vlanguage W =  Wmotion Wlanguage The NMF algorithm only learns, in an unsupervised manner, a transformation of the original data V into an internal representation H. In these experiments it is used in two different ways to first learn the transformation from multi-modal examples to an internal representation, and then use this transformation to reconstruct one modality from another. In the learning part NMF is applied to a V train data matrix and both Wtrain and Htrain matrices are learned. The Wtrain matrix is the matrix of most interest since it encodes the structure that has been learned on the data, when Htrain only encodes the representation of training examples. The Reconstruction of the linguistic parts associated to demonstrations of motions, that is classifying motions, corresponds to finding the missing V test language given a V test motion. This operation is performed through two steps: 1. reconstructing internal states of the system from demonstrations, which means finding the best matrix Htest for the approximation: V test motion ≃ Wtrain motion · Htest . This step can be performed through NMF algorithms by constraining the W matrix to be constant. 2. once Htest has been found, the associated linguistic part can be computed through matrix product: V test language ≃ Wtrain language · Htest It should be noted here that the reconstructed matrix V test language is not constrained to take only binary values like the provided linguistic matrix. This issue is addressed by using a thresholding mechanism (where the threshold is learned by cross-validation on training data), as detailed in section 3.3.3. The value of k is a parameter of the system that is fixed to 150 for the experiments presented in this paper. The number of atoms used by the system to represent3.3. DISCOVER SIMULTANEOUS PRIMITIVES BY NMF 49 observed data is quite important to achieve the desired objective. If k is too big, the algorithm does not have to compress data and can use motion only and language only atoms. On the other hand, if k is too small, the system cannot represent the complexity of the data and may focus on representing components that have bigger effects but less multimodal meaning. In order to demonstrate these capabilities we perform two kinds of experiment. 1. First the system is tested on simple human motions, each containing only one primitive dance gesture. These experiments demonstrate that the motion representation we use is sufficient to perform motion classification, which corresponds to a simple case of multi-modal learning. We also compare different aspects of the representation. 2. Then the system is tested on complex full body human motions to demonstrate its ability to capture the combinatorial structure of the choreographies by exploiting ambiguous linguistic labels. 3.3.3 Evaluation In each experiment the method based on NMF described in previous section yields a vector of keyword activations, which forms the linguistic reconstruction. The quality of this reconstruction is evaluated by comparison between the reconstructed yˆ (with continuous values) and y from ground truth (with binary values) through the following score functions: Score function for the single gesture experiment In that case the good linguistic representation only contains a 1 at the position of the label associated to the demonstrated gesture and 0 elsewhere. The score function is defined as: lsingle(ˆy, y) =  1 if arg max iyˆi = arg max iyi 0 else Score function for mixed gesture: the number of gestures is given In that case several elementary gestures are present in each example. The reconstructed vector is tested on the fact that gestures that are actually present in the experiment have the best activations. It can be described by the following equation, where #(y) denotes the number of gestures present in the demonstration and best(n, yˆ) is defined as the set containing the n labels having the best activation in ˆy. lgiven number(ˆy, y) =  1 if best(#(y), y) = best(#(y), yˆ) 0 else In other words the system is given the number of elementary gestures present in the example and asked which are those gestures.50 CHAPTER 3. LEARNING A DICTIONARY OF PRIMITIVE MOTIONS Score function for mixed gestures: exact reconstruction This score function evaluates the exact reconstruction of the linguistic description. It requires the reconstructed vector to be converted to a discrete one before comparison. For that purpose an additional thresholding mechanism is added to the system: after reconstruction of label activations, all values from yˆ above a threshold are put to 1, and others are put to 0. The function threshold such that for 1 ≤ j ≤ L, threshold(y, η) j = δyj≥η encodes that mechanism. The threshold η is evaluated through cross-validation on the training data. The score function is then simply defined as: lfull(ˆy, y) =  1 if y = threshold(ˆy, η) 0 else In each case the score function defined above for one example is averaged over all examples from the test set to yield a final score in [0, 1]. 3.3.4 Results Demonstrations with a single primitive We performed a first set of experiments on the single primitive dataset in order to evaluate our learning system on a simple multi-modal learning task. In this section primitive dance movements are presented to the learning system with unambiguous labels and the recognition performances are evaluated with the lsingle score function. We focus on comparisons of the various parameters of the motion representation. The first experiment compares the use of regular binning with Gaussian smoothing (KDE) and adaptive binning (VQ) with both hard and softmax associations to build the histograms. The comparisons are performed over a range of total number of bins, for joint angle-velocity 2D histograms. Results from this experiment in fig. 3.5 outline the advantage of using vector quantization over regular binning (KDE) for small numbers of bins, which corresponds to a low resolution of the input. This difference is however less sensitive for larger numbers of bins. A typical issue of regular binning, that can explain the better results with adaptive binning, is that for the same grid step (the resolution), the number of required bins grows exponentially with dimension. Even with two dimensional histograms, a maximum number of ten bins would lead to a three-by-three (thus low resolution) regular binning. In the same situation adaptive binning can identify ten relevant clusters. A second experiment is performed to compare the efficiency of histograms built either only on angles, only on velocities, on angles and velocities as separate degrees of freedom, or on the joint angle-velocity space. We compare these representations of the motion over a range of values for the delay used in velocity computation, and using KDE histograms with a fixed total number of 15 bins by degree of freedom. The results of the second experiment, presented in fig. 3.6, demonstrate that histograms on joint angle and velocities values capture the most information from the original motions.3.3. DISCOVER SIMULTANEOUS PRIMITIVES BY NMF 51 0 5 10 15 20 25 30 N umber of bins 0.4 0.5 0.6 0.7 0.8 Scor e on test set H istogr am modes compar ison KDE H ar d VQ Soft VQ Figure 3.5: When the number of bins is small vector quantization (VQ) offers a clear advantage over kernel density estimator (KDE) for representing the angle-velocity distributions (see section 3.2). This advantage however disappear for larger numbers of bins. (Best seen in color) Demonstrations with complex choreographies In this paragraph we evaluate the performance of the learning system on the full choreographies with ambiguous labels. Figure 3.7 illustrates the role of the threshold used to transform vectors of scores produced by the system into vectors with 0, 1 values representing a set of recognized labels. In the following the threshold (used in lfull) is determined through cross validation on the training data. Table 3.2 presents results obtained on the two mixed datasets for both KullbackLeibler (DKL) and Frobenius versions of NMF algorithm. The reconstructed label vectors are evaluated by lgiven number and lfull score functions which enables to understand which part of the error is due to the thresholding mechanism. For comparison purposes we also tested a method based on support vector machines (SVM ) on our dataset. More precisely we trained one linear SVM5 for the recognition of each label. The SVM method directly yields a set of recognized labels, with no need for thresholding. However this method relies entirely on the symbolic form of the labels and won’t generalize to other multi-modal settings with continuous linguistic modalities. There is no such theoretical limitation on our NMF setting (see discussion in section 3.4). The results in table 3.2 demonstrates that after being exposed to demonstrations of mixed primitive dance motions associated with ambiguous labels, the presented system is able to successfully produce linguistic representations of newly demonstrated choreographies. The second dataset can be considered difficult since each one of the 47 primitive dance motions only appears in an average of 14 demonstrations, which labels are ambiguous. 5We used the Scikit-learn implementation of SVMs (see scikit-learn.org/stable/modules/ svm.html).52 CHAPTER 3. LEARNING A DICTIONARY OF PRIMITIVE MOTIONS 0 10 20 30 40 50 Velocity delay 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 Scor e on test set Velocity modes, single pr imitive exper iment N o velocities Velocities as extr a dims Joint position, velocities Only velocities Figure 3.6: For small values of the velocity delay, the representation using jointly the position and the velocity leads to better performances than using only the positions. For high values of the delay, the velocity is mostly noise, therefore using only positions performs better although the noise does not degrade the performance of the joint representation too much. Using only velocities or considering position and velocity histograms as separate dimensions leads to worse performances on the classification task. KDE histograms are used for these results. (Best seen in color) lfull lgiven number 16 labels (SVM, linear) 0.818 — 16 labels (NMF, Frobenius) 0.854 0.971 16 labels (NMF, DKL) 0.789 0.905 47 labels (SVM, linear) 0.422 — 47 labels (NMF, Frobenius) 0.625 0.755 47 labels (NMF, DKL) 0.574 0.679 Table 3.2: Results on the mixed datasets Handling unknown combinations of primitives The combinatorial nature of the demonstrated choreographic motions implies that, although the primitive gestures are observed many times, each specific combination of gestures into a choreography is not observed that often. This phenomenon is illustrated in fig. 3.8. An important consequence is that the performance of the system cannot be solely explained by the system recognizing full choreographies; rather the system has captured the combinatorial structure of the data. This ability is illustrated by its behaviour on unknown combinations of motion primitives. For instance in the full mixed dataset more than 60% of the examples demonstrates a combination that is not observed in other examples. In order to get more precise results for this behaviour we set up a slightly different experiment where test sets are only composed of combinations of motion primitives3.4. CONCLUDING PERSPECTIVES 53 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 Threshold 0.5 0.6 0.7 0.8 0.9 Score on test set Threshold on linguistic reconstruction Figure 3.7: The impact of the threshold value on the selection of active labels is limited in a central range of values. Extreme values lead to worse performances.These results are obtained on the small mixed dataset. This experiment is the only one in which the threshold is not automatically adjusted. 1 2 3 4 5 6 7 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 Occurences of combinations 47 labels dataset 16 labels dataset number of occurences proportion of examples Figure 3.8: In the big dataset 60% of the choreographies (specific combination of primitive gestures) are only observed once. This illustrates the necessity for the system to capture the combinatorial structure of the choreographies instead of representing them in a holistic manner. that were not observed during training. The results of this experiment are reported in table 3.3. 3.4 Concluding perspectives In a first experiment from previous section, we demonstrated the efficiency of the position-velocity histogram representation of motion and the NMF algorithm on a dance motion recognition task. Hellbach et al. (2009) had used NMF to perform prediction on learnt motions; in contrast, our contribution extends the scope of NMF usage to a form of structure classification of motions. The motion representation presented in this section enables the application of the architecture developed by ten Bosch et al. (2008), Driesen et al. (2009) for speech learning to motion learning. This constitutes a useful step toward comparison of structural similarities between54 CHAPTER 3. LEARNING A DICTIONARY OF PRIMITIVE MOTIONS lfull lgiven number 16 labels (NMF, Frobenius) 0.568 0.800 16 labels (SVM, linear) 0.667 — 47 labels (NMF, Frobenius) 0.406 0.653 47 labels (SVM, linear) 0.206 — Table 3.3: Results for combination of primitive gestures that were not encountered during training. language and motion learning. That study is further extended in chapter 6 and Mangin and Oudeyer (2013). The motion-velocity histogram representation does not make it possible to produce the actual motion from the motion representation. Hellbach et al. (2009) have given an example of motion representation that allows such reproduction. This work may thus be extended, by changing the motion representation, to an imitation learning setting, in which the system could be evaluated on producing gestures on a real robot, corresponding to a given linguistic description. Chapter 4 introduces ideas toward such motion representations, although they are not illustrated on a real robotic setting. In the second experiment we showed that the architecture presented in this paper is capable of learning to recognize complex gestures, composed of simultaneous motion primitives, while only observing ambiguous symbolic labels. It is demonstrated in the third experiment that the system has captured the combinatorial structure of the observed gestures and is capable of generalization by recognizing combinations that were never observed in training. We presented a learning system that is capable, after learning from demonstrations of complex gestures and linguistic descriptions, to re-construct the linguistic modality from an example involving only the motion modality. The experiments that we performed only uses a symbolic representation of speech labels. Interestingly this corresponds to a degenerated version a talking heads (see section 1.3 Steels, 1999, Steels and Kaplan, 2002). For this analogy we consider that a first human is performing the gesture. During training, the agent presented here corresponds to a hearer from the talking heads, the speaker being another human, who names the choreographies. In this experiment the communication channel is discrete and finite and corresponds exactly to the human speaker ontology. The setup we present describes how the learner builds its own ontology and produces utterances when it, in the test phase, plays the speaker. It is however possible to replace this symbolic representation by real acoustic data (for example represented in the same way than in Driesen et al. (2009)) without changing the learning and reproduction algorithms. Such experiments are performed in our other contribution Mangin and Oudeyer (2013) and detailed in chapter 6. While in this contribution we focused on primitive motions active at the same time, it is possible to use the same setting to recognize choreographies where motions are composed in sequence and eventually overlaps. A direct application of our method, would however only enable reconstructing the set of active motions and not their order.Chapter 4 Learning a dictionary of primitive tasks Despite having potentially many distinct definitions, the notion of task or targeted effect is very important to apprehend human behaviors or program robots. Actually the common representation of motions as a sequence of positions or basic actions, either captured from an acting agent or implemented on a robot, might be very limiting. For example, in order to grasp an object, an adult would perform some motion of its arm and hand toward the object while a dog would use its head, a child would get on tiptoe and use a tool to reach the object if it is too high for him. Even the same person would use very different motions depending on the position or accessibility of the object. Although the trajectory of body parts are very different in each of these examples, the intention of the agent is generally perceived very clearly as identical in each case by an observer. More generally, the perceived similarity between two motions is often not explained by the similarity of the underlying motions. Therefore it is of great interest for objectives like human behaviour understanding or programming robots capable of complex tasks to be able to take into account activities at the task or effect level. Learning or perceiving actions at the effect level was already discussed in section 1.1 as functional level imitation as introduced by Demiris and Hayes (1997). The motivation behind such representation is to achieve better generalization to unknown situations while preserving the essence of the task or to be able to learn and improve from imperfect demonstrations. The notion of affordances, that is to say the potential actions related to encountered objects, was introduced by the psychologist Gibson (1979). Its importance in the perception of objects emphasizes the close relation between the knowledge of achievable effects on the environment and the perception of that environment. Similarly, an interesting analogy can be drawn with the field of pragmatics amongst linguistics: pragmatics emphasizes the importance of the speaker’s intention over pure semantics for communication (Grice, 1989). That approach suggests that sentences or language are not produced as a container for meaning but rather as a way to induce an effect on the person to whom it is directed. In this chapter several studies related to learning and using the effect space or task space are presented. Some of them address related issues such as the question of 5556 CHAPTER 4. LEARNING A DICTIONARY OF PRIMITIVE TASKS learning the effect of actions or learning relevant aspects of the effects of an action, denoted task space retrieval. In the context of complex or composite actions that are studied in this work, we believe that sometime the structure of the behavior is easier to study at the task level than at the motion or trajectory level; contributions about learning task components are therefore presented in section 4.3. The work presented in the following is similar to the one from previous chapter but study behaviors in the task space instead of the action or motion space. In contrast to previous chapter, the behavior representation studied below is not as destructive and enables reproduction of the learnt behaviors with planning algorithms. Finally the behavior composition introduced in the following can be qualified as ‘concurrent’, rather than just ‘simultaneous’. 4.1 Previous work Plan recognition and intention recognition focus on the study of the structure of tasks abstracted from sequences of symbolic actions (for a review, see Kruger et al., 2007). These ideas have been applied to teach robots by demonstration in various ways. Kuniyoshi et al. (1994) use a set of static mechanisms to abstract visual sensory input into objects and recognize the effect of predefined actions on the environment, as well as the dependencies between the actions in a given task. From these mechanisms their robotic system is capable of reproducing a demonstrated task by following a sequence of sub-tasks that fit the learnt dependency. Ekvall and Kragic (2006), Pardowitz et al. (2007), and Nicolescu and Matari´c (2002, 2003) have developed similar setups, but including more advanced dependencies between sub-tasks and hierarchies. Ekvall and Kragic (2006) present an approach in which a robot is capable, from predefined primitive behaviors, to learn the precedence relations and dependencies between these behaviors combined into a solution for a task. The relations are learned following a specific to generic process: each time a new demonstration is observed, the model of the task is expanded to account for the new demonstration. Similarly, Nicolescu and Matari´c (2002, 2003) use a longest common path heuristic to infer a directed acyclic graph representing the relations between predefined behaviors combined to solve task. They also explain how teacher feedback can be efficiently used to correct errors occurring in the learning phase or coming from wrong demonstrations. They also detail the analogy between their task model and regular expressions or equivalently finite automata. Pardowitz et al. (2007) also present a similar system that, after learning a set of basic behaviors in a supervised way, can learn a directed acyclic graph, called task precedence graph that forms an abstract representation the task structure. The graph is learnt by successive generalization, similarly to the work of Ekvall and Kragic (2006). While the studies presented in previous section mainly focus on methods to learn the structure of a task, knowing the underlying primitive behaviors, other works focus on learning the primitive actions that compose complex tasks; for example Kruger et al. (2010) use clustering on the effects of various actions on the environment to identify such primitive actions.4.1. PREVIOUS WORK 57 4.1.1 Inverse feedback and reinforcement learning Inverse reinforcement learning and inverse feedback learning, that are presented in section 2.2, both study models of an agent behavior and intention as a process to maximize a reward or feedback function. Both have been developed in order to yield better models of intention of agents performing tasks. For example, Abbeel et al. (2010) demonstrate how applying inverse reinforcement learning to expert demonstrations of aerobatic manoeuvres on a remote controlled helicopter enables a learning system to succeed in accomplishing manoeuvres on which the experts only provided failed demonstrations. Similar ideas have also successively been applied to represent driving styles on a simulator (Neu and Szepesv´ari, 2007) and trajectories from taxi drivers (Ziebart et al., 2008), pedestrians (Almingol et al., 2013), and wild animals (Brillinger, 2007). However, basic inverse reinforcement learning or inverse feedback learning focus on one simple reward or objective function that explains all the data it observes passively data. Such setting does not fit many practical situations. Lopes et al. (2009b) consider the situation in which the robot or learning system can request demonstrations at specific states in order to make the learning process require less demonstrations: having human provide demonstrations for robots is indeed often considered an expensive operation. Lopes and Cakmak also presented an optimal teaching strategy for inverse reinforcement learning (Cakmak and Lopes, 2012): they provide an algorithm to chose optimal demonstration that are to be given to an inverse reinforcement learner. Jetchev and Toussaint (2011) present an approach inspired from inverse optimal control that learns a feedback function representing demonstrations of a task that is sparse on some features. They demonstrate how the algorithm is capable to learn a grasping task and explain why the sparseness of the learnt feedback function provides a solution to the task space retrieval problem. An other common issue of inverse reinforcement learning approaches is that it is often required that adequate features are used to represent the state of the learning agent. Levine et al. (2010) introduce an algorithm to overcome this issue that both learn an estimate of the reward optimized by the demonstrator and features to efficiently represent it. They also demonstrate how the learned features can be transfered to a new environment. The work presented in the following of this chapter also goes toward that direction in the more general setup of multi-task demonstrations. While in the works presented above the expert only demonstrates a single task, Babes-Vroman et al. (2011) present an EM-based algorithm which, from unlabeled demonstrations of several tasks, infers a clustering of these demonstrations together with a set of models. Choi and Kim (2012) have extended this idea into a reward model based on Dirichlet processes and a Metropolis-Hasting algorithm that represent the demonstrations as being generated from mixture of reward functions without requiring the number of reward functions to be fixed. Almingol et al. (2013) also recently developed similar ideas in the context of inverse feedback learning. Michini and How (2012) suggest that demonstrated behaviors, even in the single task setting, might be better modelled by considering non-stationary rewards functions: they developed an algorithm that learns a set of reward functions such that each sample action is explained by one of these functions.58 CHAPTER 4. LEARNING A DICTIONARY OF PRIMITIVE TASKS Rothkopf and Ballard (2013) have extended the ideas of modular reinforcement learning for inverse reinforcement learning. This approach targets the issue of the exponential growth of state space often observed when real world applications are modelled. The next sections present two algorithms that extend both inverse reinforcement learning and some inverse feedback learning techniques to build a dictionary of primitive tasks. The primitive tasks are modelled as rewards or feedback functions that can be combined together to model the intention of an expert in demonstrations of complex tasks. They focus on the question of how to represent demonstrated behaviors as the combination of simpler primitive behaviors that can be re-used in other contexts. This approach is similar to feature learning but focus explicitly on the multi-task setup. We present two algorithms that, by observing demonstrations of an expert solving multiple tasks, learns a dictionary of primitive behaviors and combine them to account for the observations. We explain how such an approach can be beneficial for life long learning capabilities in simple toy experiments. Next section uses inverse feedback learning to discover task primitives from demonstrations of an agent in a continuous world. The experiments illustrate the ambiguous nature of the task and how supervision can be used to accurately recovers the original dictionary. The following section presents a similar algorithm in the case of inverse reinforcement learning, in a discrete world. The experiments demonstrate that without supervision the learner can build a dictionary to represent the demonstrated task. The evaluation of the experiments focus on the ability of the learner to solve a task after a few observation of an expert solving that task. The results demonstrate that learning the common structure of composite tasks can make the agent more efficient in solving new tasks that share the same structure. 4.2 Factorial inverse control Brillinger (2007) has developed an algorithm based on least square regression to learn potential functions modelling the motion of wild animals in natural parks. In this section, and in the publication Mangin and Oudeyer (2012b), we present an algorithm that extends Brillinger’s technique to address a new problem: instead of learning a flat representation of a single task, the learner must infer several primitives cost functions that can be composed so that their mixture is a good approximation to the demonstrated task. A very similar behaviour representation is used, but it introduces dictionary learning for solving the new problem. We discuss the use of supervision, such as linguistic supervision, to improve and disambiguate the learning of the dictionary. 4.2.1 Problem definition and algorithm This section describes a simple synthetic imitation learning experiment in which an imitator learns to reproduce behaviors observed from a demonstrator: the task underlying each behavior is modelled as a cost function on states of the agent (either the demonstrator or the imitator), which can be seen as representing the preferences of the demonstrator. For example the task of filling a glass of water is represented by a cost function giving increasing values to increasing levels of water in the glass. In4.2. FACTORIAL INVERSE CONTROL 59 the case where the “filling the glass” behavior is mixed with the “smiling to someone” behavior, the mixed behavior is be represented by a mixed cost function valuing both full glass and smiling position of the lips. Each demonstration consists in a trajectory in the demonstrator state space, from a specific initial position. The objective of the imitator is to produce a trajectory that fits the demonstrator preferences, that is minimise the cost function. The imitator may start from the same initial position than the demonstration or another. The latter generally defeats strategies that simply mimic the demonstrator gestures; this issue, that oppose program level imitation to action level imitation, is discussed in section 1.1. This setup introduces two important difficulties for the imitator. On the one hand each demonstration only presents aspects of the cost function locally, around the trajectory. Each demonstration is thus not sufficient to fully understand the underlying task. On the other hand, each demonstration presents a mixture of several tasks. Thus, while the primitive tasks are observed many time, they are never observed alone and each particular mixture is generally only observed once. It is thus necessary to leverage the compositional structure of the behaviors to be able to understand them, and reproduce them with new initial positions. Agent and demonstrator models Both the demonstrator and imitator are assumed to have identical bodies and perceptions of the world. This corresponds for example to the case where demonstrations are performed on the imitator body (kinesthetic demonstrations). Following Jetchev and Toussaint (2011), the current configuration of the robotic agent q belongs to a state space Q ∈ R S. Each trajectory is denoted by a sequence (qt) t∈[|1,T|] . The model assumes that there exists a cost function f : Q −→ R such that each task is modeled as the demonstrating agent trying to minimize the cost f(q) to which is added a penalization on the square norm of ∂q ∂t . The penalization term can be seen as a penalization of the energy consumed while moving toward an optimum of f(q). The following focuses on very simple agents whose actions are motions in the state space and are governed by the local optimization of f(q) + α    ∂q ∂t    2 which means that each action, at each time step, is chosen such that: qt+1 = arg min q f(q) + α     q − qt δt     2 , with δt the time elapsed between samples t and t + 1. The solution of this equation, without additional constraints, and assuming that the cost function f is differentiable, is well known to be proportional to the gradient of f, as − 1 α∇f(q). It can be noticed that since the agent previously defined only follows policies driven by local optimization it will only achieve local optimization of the cost function. While this is a simplification of the agent, it also features an important property of real demonstrators: real demonstrators are in general imperfect and do not always60 CHAPTER 4. LEARNING A DICTIONARY OF PRIMITIVE TASKS succeed in reaching the optimal solution of the task. It is thus important for an imitator to be able to also learn from imperfect demonstrations of behaviors. Complex tasks are more specifically studied here: each demonstration corresponds to the minimization of a separate cost function f which is only observed through one demonstration. However f is composed of parts that also occur in other demonstrations and are thus observed several time mixed in various way and in various contexts. We consider N demonstrations, observed as trajectories (q i t ) t , i ∈ [|1, N|] in the agent state space. This work assumes that each demonstration corresponds to a given f i . To model complex demonstrations it also assume that there exists a dictionary of primitive tasks, composed of K cost functions (g k )k∈[|1,K|] , such that, for all demonstration i, there exist coefficients (a i k ) k∈[|1,K|] such that, for all state q, f i (q) =  K k=1 a i k g k (q). In the following, we first present the inverse feedback learning approach from Brillinger (2007); then we extend it into a learning algorithm which observes one demonstration associated with each function f i and learns a dictionary of primitive cost functions g k , and the coefficients of their combinations into demonstrated tasks f i . Inferring a task from a demonstration The problem of inferring a single task from a demonstration is studied in Brillinger’s article (Brillinger, 2007). The cost function is represented by a linear parameter β ∈ R F on a space of potentially non-linear features ϕ : Q −→ R F . Its minimization is modeled by an agent policy such that: ∂q ∂t = −λJ(q) T β (4.1) where J is the Jacobian of ϕ (lines of J are gradients of coordinates of ϕ). When discrete trajectories are considered, eq. (4.1) may be approximated as: qt+1−qt δt = −λJ(qt) T β for all t ∈ [|1, T − 1|]. By denoting yt+1 = qt+1−qt δt , Y ∈ RS×(T −1) the vector obtained by vertically stacking all yt for t ∈ [|2, T|], and Φ the S × (T − 1) by F matrix obtained by vertically stacking all −λJ(qt) T , we get: Y = Φβ (4.2) Equation (4.2) transforms the problem of inferring one task from one demonstration into a linear regression problem, which constitutes an essential contribution of Brillinger’s article. In the case where the Euclidean distance between the vector Y , computed from observations, and its reconstruction through the task model Φβ is considered, we get the classical least square regression problem. It is solved, assuming ΦT Φ is non-singular, by: β = (ΦT Φ) −1 ΦT Y (4.3)4.2. FACTORIAL INVERSE CONTROL 61 More details on the associated derivations can be found in Brillinger (2007). The algorithm presented above is capable, from one demonstration, to infer the cost function modelling a behavior of the demonstrator. Once the cost function is inferred, the imitator can in turn produce trajectories that minimize it. Such an agent that directly infers all the parameters of the cost function is denoted flat imitator in the following. Learning a dictionary of primitive tasks from mixed demonstrations The algorithm presented in previous paragraph only applies to a single demonstration generated from a single task model. Here we introduce a matrix factorization algorithm that extends the previous method to a setting where a dictionary of primitive tasks is learnt form several demonstrations. Each demonstration corresponds to a mixing of primitive tasks which is modeled by a β i in the feature space. A dictionary that is represented by a F by K matrix D, such that each column of D is the parameter representing the primitive tasks g k in the feature space, models the concurrent mixing of primitive tasks. The concurrency between the primitive tasks in a mixing is represented through a weighting coefficient. Coefficients of the i th demonstrated task are given by a vector a i ∈ R K, β i = Da i . For each demonstration the vector Y i and the matrix Φi are associated with the observed trajectory, by following the method described above. It follows that for each demonstration: Y i = ΦiDa i (4.4) Learning a factored model of the demonstrated tasks that has the minimum Euclidean distance to the demonstrations is equivalent to solving eq. (4.5). arg min D,A L(D, A) with L(D, a) =  N i=1 ∥Y i − ΦiDa i   2 2 (4.5) We propose an algorithm based on alternate minimisation with respect to D and A to solve this problem. Minimisation with respect to A This sub-problem assumes that the dictionary is known and thus consist in inferring the task decomposition on the dictionary, from the observation of a demonstration. It is similar to the algorithm presented in previous section but the K decomposition coefficients (the vectors a i ) are inferred instead of all the F coefficients of the cost function. This problem is separable in one sub-problem for each demonstration i, each of which is equivalent to the regression problem from Brillinger (2007) presented previously: the matrix Φ is now replaced by the product ΦiD. Thus the solution of the optimisation with respect to A is given, for Euclidean distance, by eq. (4.6). Other norms or penalization could as well be used to solve the regression (for example methods62 CHAPTER 4. LEARNING A DICTIONARY OF PRIMITIVE TASKS enforcing non-negativity or sparseness of coefficients). a i = (DT ΦiT ΦiD) −1 DT ΦiT Y i (4.6) Minimisation with respect to D The second sub-problem assumes that the decomposition coefficients of the demonstrated task are known but not the dictionary D. We use a gradient descent approach to learn D. The differential of the loss with respect to each of the coefficients of D is given by eq. (4.7). ∇DL(D, A) = −2  N i=1 ΦiT  Y i − ΦiDa i  a iT (4.7) Global algorithm The global algorithm simultaneously learns the dictionary D and the coefficients A by alternation of the two procedures from previous paragraphs. Matrices D and A are initiated randomly or according to any heuristic. Then D is learnt, assuming A contains the correct decomposition coefficients, after which A is inferred assuming D is the correct dictionary, and so on. This approach to matrix factorization problems has often proved to be efficient (Lee and Seung, 1999, Jenatton et al., 2010). 4.2.2 Experiments To illustrate the algorithm introduced in section 4.2.1 we consider a simple toy experiment. We define an agent which state q belongs to Q = [0, 1]2 . Cost functions are parametrized on a 5 by 5 grid of Gaussian radial basis functions, which means φ(q) T = (. . . , 1 2πσ exp(− ∥x−µf ∥ 2 2σ2 ), . . .) where µf are points from a regular 5 by 5 grid on Q and σ is fixed such that the task parameter space is of dimension F = 25. There is no difference between the demonstrator agent and the learner, except that the demonstrator fully knows the task to perform. We use in this experiment a dictionary of 6 primitive tasks that is represented in fig. 4.1 (first row). Combinations of 2 or 3 concurrent primitive tasks are generated randomly for training and testing. For a given mixed tasks, a starting point is randomly chosen inside Q and trajectories are generated by the demonstrator or imitator from the initial position, according to eq. (4.1). In the remaining of this section we will describe two separate experiments where a dictionary is learnt by a agent observing mixed combinations of tasks. Recovering the dictionary from given coefficients In this section we consider an experiment in which during training the learner both observes demonstrations of mixed tasks and the associated mixing coefficients. This hypothesis models the situation where some labels that describe the task that are mixed together in the demonstration are given to the learner (for example inferred from spoken language). This experiment enables the evaluation of the second part of the algorithm we introduced.4.2. FACTORIAL INVERSE CONTROL 63 Since the mixing coefficients are known by the learner during training, only the second part of the algorithm presented in section 4.2.1 is used to learn the dictionary Dˆ . We train such a learner on 200 trajectories generated from a dictionary D. Both the original dictionary of primitive tasks D and its reconstruction Dˆ are represented in fig. 4.1. Figure 4.1: The supervised learner achieves accurate reconstruction of the original dictionary of primitive tasks while the unsupervised learner acquire its own representation. Each row present a dictionary of primitive tasks. The tasks are represented as cost functions over Q = [0, 1]2 . Dark areas corresponds to high positive costs and light areas to negative costs. First row corresponds to original primitive tasks (as used by the demonstrator), second row to the one reconstructed by the supervised learner described in and third row to the unsupervised learner. (Best seen in colors) Once the imitator has built a dictionary of tasks from observations, it is evaluated in the following way: for a set of coefficients, corresponding to mixed tasks, and a random starting position, the imitator and demonstrator yield trajectories. The demonstrator and imitator trajectories are then compared. Examples of trajectories from both the learner and the imitator are given in fig. 4.2. The relative L2 error between the trajectories generated by the demonstrator and the imitator is used to evaluate the quality of the reconstruction. An average error of 0.001127 is obtained on the train set (tasks observed while learning the dictionary) and 0.002675 is obtained on the test set (unobserved tasks obtained from the same dictionary). Learning both primitive tasks and mixing coefficients from concurrent demonstrations We illustrate the full unsupervised algorithm presented in section 4.2.1 on an experiment where the learner only observes demonstrated trajectories without knowing the coefficients. The bottom row of fig. 4.1 presents an example of dictionary built by such a learner. Once the dictionary has been learnt, we use the following imitation protocol to test64 CHAPTER 4. LEARNING A DICTIONARY OF PRIMITIVE TASKS Figure 4.2: The trajectories from the demonstrator are well reproduced by the supervised learner. First row represents four demonstrated tasks (dark color represent areas of high cost) and the demonstrated trajectory (the star represent the initial position and dots further positions). Second row represents the model of the task as inferred by the imitator and the trajectory followed by the imitator solving its model of the task, from the same initial position as the demonstrator. (Best seen in colors) the imitator. A new unobserved combination of primitive tasks is chosen together with an initial position. Then the demonstrator provides a trajectory corresponding to that task. From the observation of the demonstrated trajectory and the its learnt dictionary of primitive tasks, the learner infers the decomposition of the task on the learnt dictionary. For that it uses the first part of the algorithm presented in section 4.2.1. Finally the imitator is asked to produce trajectories that solve to the same task, both from the demonstrator’s initial position and new random initial positions. Changing the initial position is a way to evaluate how well the imitator’s model of the task generalizes from the context of the demonstration to new ones. In order to evaluate the impact of learning the dictionary, that is to say the combinatorial structure of the demonstrated data, we compare reproductions of the task by an agent that has learnt the dictionary denoted as full dictionary learner, to ones by an agent, denoted as flat imitator, that directly infers the parameters of the tasks without using a dictionary. We also compare the agent described in the previous section, that has learnt the dictionary from both demonstrated trajectories and mixed coefficients, denoted dictionary from coefficients learner. Examples of demonstrated and imitated trajectories are provided in fig. 4.3. 4.2.3 Discussion The first, supervised, agent is able, by observing motions solving composed tasks and the mixing coefficients, to learn the dictionary of primitive tasks. The acquired dictionary is evaluated in different ways: visually from the plots of the associated cost functions, from trajectories solving a mixed task whose mixing coefficients are given, and from imitation, in random contexts, of a mixed task that is inferred from a4.2. FACTORIAL INVERSE CONTROL 65 Figure 4.3: Examples of imitated trajectories. First row presents the demonstrated trajectory (first column) and its imitation by the flat learner, the dictionary learner from first experiment (coefficients observed while learning the dictionary) and the full dictionary learner. Second row correspond to imitations of the same task from initial positions that were not observed (the demonstrator trajectories for those positions are given for comparison purpose). (Best seen in colors) single demonstration (this last result is presented together with second experiment). The second, unsupervised, agent learns a dictionary that enables the factorial representation of demonstrated tasks, without directly observing neither the dictionary nor the mixing coefficients. The factorial representation enables imitation of tasks that are observed through a single demonstration. However the performance evaluation does not validate quantitatively this capability. In particular the least square regression from Brillinger (2007) (described in section 4.2.1) is not performing well on the particular form of mixing of cost functions we have chosen for the illustrative toy example. However our algorithm is compatible with any regression method. Thus, interesting further work could use the comparison of performances between various regression methods, on real human data, to get better insight on the combinatorial properties of human activities. The next section present similar ideas applied using the inverse reinforcement framework; more reliable results are obtained on an other toy experiment. The dictionary learnt by the agent, illustrated in fig. 4.1, is very different from the one of the demonstrator: actually chapter 1 already discussed the ambiguity of the problem of representing a set of demonstrated mixed tasks as linear combinations of primitive tasks. For example one can scale the primitive cost function by some factor and associated coefficients by its inverse or change the order of the primitive and coefficients without changing the linear combination. Mathematically these difficulties could be solved by adding constraints to the form of the learnt dictionary (for example normalize primitive costs) or by adapting the way to compare dictionaries (for example to make it invariant to re-ordering). To overcome this difficulty, a particular form of factorisation could also be shaped66 CHAPTER 4. LEARNING A DICTIONARY OF PRIMITIVE TASKS by information coming from another modality or social interaction. This aspect is demonstrated both in the study from our previous work (Mangin and Oudeyer, 2012a) that is described in chapter 3 and in the first experiment, see section 4.2.2, where observing the mixing coefficients, that can be seen as linguistic labels, enables the learner to adapt its internal model (that is the dictionary) to a communication channel. Aspects of social learning have already been shown to improve motor learning by Massera et al. (2010). Solving the ambiguity in the decomposition of human activities thus constitutes a new application for social learning. Further illustrations on learning from several modalities are given in chapter 6. Extending the algorithm presented above to include constraints or evaluating it on an online learning experiment would help investigating these questions and thus constitute very interesting future work. In conclusion, this section studies aspects of the combinatorial structure of behaviors and of their representation as tasks or objectives. We introduced an algorithm to learn a dictionary of primitive tasks from demonstrations of concurrently mixed behaviors. We demonstrated on an illustrative experiment how the dictionary can be used to represent and generalize new demonstrations. Finally we discussed how dealing with ambiguities in factorial representation of behaviors might involve social interactions, multimodality of the sensory experience or intrinsic saliency mechanisms. However the illustrative experiment from this section did not enable to quantitatively demonstrate the advantage of the unsupervised factorial approach. Next section develops similar ideas with inverse reinforcement learning techniques. 4.3 Factorial inverse reinforcement learning This section present ideas similar to the one introduced above but grounded on different techniques and models. The algorithm presented in this section extends the gradient approach from Neu and Szepesv´ari (2007) to learn a dictionary of primitive reward functions that can be combined together to model the intention of the expert in each demonstration. It includes both previous ideas on multi-task inverse reinforcement learning (Babes-Vroman et al., 2011, Choi and Kim, 2012, Almingol et al., 2013), but also of feature learning and transfer between tasks (Levine et al., 2010). In its unsupervised study of the multi-task setup, this work is related to those of Babes-Vroman et al. (2011), Choi and Kim (2012), and Almingol et al. (2013) but differs for the fact that it not only learns several primitive rewards from demonstrations of several tasks but also enables transfer of the knowledge from one task to an other, similarly to what is presented by Levine et al. (2010). 4.3.1 Multi-task inverse reinforcement feature learning This section presents an extension of the algorithm from Neu and Szepesv´ari (2007), described in section 2.2.3, to a dictionary learning problem. We assume that the learner observes demonstrations ξ from an expert, that are sequences (xt, at) of states xt ∈ X and action at ∈ A, such that ξ = (xt, at) t∈[|1,T|] . We call Markov decision process (MDP) a quintuple (X , A, γ, P, r) where γ is the discount factor. P, the transition probability, is a mapping from state actions pairs to probability4.3. FACTORIAL INVERSE REINFORCEMENT LEARNING 67 distributions over next states. We denote by P(x ′ |x, a) the probability to transition to state x ′ from state x, knowing that action a was taken. Finally, r : X × A → R is the reward function. In this single task setup presented in section 2.2.3, the objective is to optimize a parameter θ of the reward function such that the near-optimal policy for the MDP associated to rθ is as close as possible to the demonstrated policy. This optimization problem is formalized into For an expert demonstration represented by ξ = (xt, at) t∈[|1,T|] one estimates J by eqs. (2.30) and (2.31). The main result provided by Neu and Szepesv´ari (2007) and presented as section 2.2.3 is an equation to compute ∇θJξ, from which the gradient descent algorithm is derived. In this section we extend there approach to the case where the expert provides several demonstration of different but related tasks. The demonstrations are denoted ξi with index i ∈ [|1, n|]. Each demonstration is modeled by a separate parameter θ (i) that represents the tasks solved by the expert. The algorithm presented here focuses on a generative model of mixtures of behaviors or tasks such that the combination of tasks can be represented as a reward function that is a linear combination of the reward functions of the mixed tasks. More precisely, we call dictionary a matrix D ∈ R d×k that represents the dictionary and coefficients H ∈ R k×n a matrix containing mixing coefficients. The columns of H are denoted h (i) such that the parameters of the ith task are θ (i) = Dh (i) . The following presents an algorithm to learn the matrix factorization, that is to say, the dictionary matrix D and associated coefficients H such that θ (i) s are represented as combinations of k elements from a dictionary. The algorithms minimizes the cumulated cost over all demonstrations denoted by JΞ, where Ξ = (ξi) i∈[|1,n|] , and defined in eq. (4.8). This cost generalizes the average distance from the demonstrator’s policy to a nearly optimal policy associated to the inferred representation of the task. JΞ(D, H) = n i=1 Jξi (Dh (i) ) (4.8) In order to solve the problem arg minD,H JΞ(D, H) the algorithm alternates steps that minimize the cost with respect to D, H being fixed, and with respect to H, D being fixed. The second steps actually decomposes in n separate problems similar to the one from previous section. Both steps uses a gradient descent approach where the gradients are given by eqs. (4.9) and (4.10). ∇DJΞ(D, H) =  ∇θJξi  Dh (1)    . . .   ∇θJξi  Dh (n)   · HT (4.9) ∇HJΞ(D, H) = DT ·  ∇θJξi  Dh (1)    . . .   ∇θJξi  Dh (n)   (4.10) In practice the learner performs a fixed amount of gradient descent on each subproblem (optimization of H and D), with Armijo step size adaptation before switching to the other sub-problem. The algorithm stops when reaching convergence. It appears that this gradient descent algorithm is quite sensitive to initial conditions. A good empirical initialization of the dictionary is to first learn θ (i) s with the flat approach,68 CHAPTER 4. LEARNING A DICTIONARY OF PRIMITIVE TASKS perform a PCA on the learnt parameters and use it as an initial guess for the dictionary.1 4.3.2 Experiments In these experiments a task refers to a MDP associated to a reward function. We consider composite tasks which means tasks that correspond to reward functions obtained by mixing several primitive reward functions. The algorithm described above is experimented on a simple toy example similar to the one from Neu and Szepesv´ari (2007): a grid world (typically of size 10 by 10) is considered in which actions corresponds to moves in four directions. Actions have the expected result, that is a displacement of one step in the expected direction, in 70% of the cases and results in a random move in the other cases; except when the requested move is not possible from current state (for example going up on top border) in which case the resulting move is drawn uniformly from feasible moves. The following uses a fixed discount factor γ = 0.9. Validation In a first experiment we compare our factorial algorithm to direct learning of the parameter representing a task with Neu and Szepesvari’s gradient (GradIRL), that we call flat learner to differentiate from the factorial approach. More precisely a random dictionary of features is chosen, that is unknown from the apprentices, together with mixing coefficients that determine n distinct composite tasks. n experts are then used to generate demonstrations for each tasks (during training the expert may provide several demonstrations of each task). The demonstrations obtained are fed to both flat and factorial apprentices. While the flat learners independently learn a model of each task, the factorial learner reconstructs a dictionary, shared amongst tasks, together with mixing coefficients. fig. 4.4 illustrates the dictionary used by the demonstrator to generate tasks as well as the dictionary reconstructed by the learner. We evaluate the apprentices on each learnt task by measuring their average performance on the MDP corresponding to the demonstrated task, referred as MDP(rreal). More precisely the apprentice can provide an optimal policy π ∗ rlearnt with respect to its model of the task, that is to say a policy optimal with respect to the learnt reward rlearnt. 2 This policy is then evaluated on the MDP corresponding to the real task (MDP(rreal)). To evaluate the average reward that the apprentice would get on the MDP with random starting positions (not necessarily matching those of the expert) we compute the average value function: scorerreal(rlearnt) = 1 |S|  s∈S V π ∗ rlearnt rreal (s) (4.11) 1Experiments presented further shows that the PCA strategy alone does not provide a good dictionary for our problem, but is an efficient initialization. 2This policy is obtained as a greedy policy on the optimal action value function (with respect to the model of the task, rlearnt ), computed by value iteration.4.3. FACTORIAL INVERSE REINFORCEMENT LEARNING 69 Figure 4.4: The demonstrators generates new tasks by mixing together the five basic reward functions which associated optimal Q-values are represented above. The factorial learner builds its own dictionary by observing the demonstrations; it is represented on the second row. There is no exact match between the two dictionaries however they describe similar reward space as illustrated further in the results. (Best seen in colors) In the results presented here, the demonstrated tasks were generated from a dictionary of 5 primitive reward functions. No feature is used to parametrize rewards: they are represented as deterministic functions from state-action pairs to a real number, which corresponds to a 400 parameters. The expert provides 10 demonstrations for each task, each lasting 10 time steps and 100 tasks are demonstrated. Results presented in fig. 4.5 show that the factorial apprentice is capable of using information about the common structure of the various tasks to achieve better performance on each task. The performance of the learner therefore increases with the number of demonstrated tasks. When only few demonstrations are given for each task, the demonstrator’s behavior is only observed on a subset of the possible stateaction pairs. In such cases, the flat learner often fails to achieve good generalization over all the state space. On the other hand, the factorial learner can benefit from other tasks to complete this information. We also compare the results with flat learners trained with specific features: the ground truth dictionary (flat, ground truth) and a dictionary learnt by performing PCA on the parameters learnt by the flat learners (flat, PCA features). Re-use of the dictionary In order to demonstrate the ability of the factorial algorithm to transfer knowledge to new tasks we performed a second experiment. Apprentices are trained similarly to the previous experiment. In the following we call train tasks these tasks. For testing, a new task is generated randomly from the same dictionary of rewards (denoted as test task) and apprentices observe a single demonstration of the new task. To get meaningful results, this step is reproduced on a number of independent test tasks70 CHAPTER 4. LEARNING A DICTIONARY OF PRIMITIVE TASKS 5 10 15 20 25 30 Number of demonstrations for training tasks 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 Avg. dev. from opt. score on training tasks Flat Fact. (rand. init) Fact. (PCA init) Flat (PCA features) Flat (ground truth features) 0 50 100 150 200 Number of training tasks 0.0 0.5 1.0 1.5 2.0 2.5 3.0 Avg. dev. from opt. score on training tasks Flat Fact. (rand. init) Fact. (PCA init) Flat (PCA features) Flat (ground truth features) Figure 4.5: Performance on train tasks The factorial learner overcomes the flat learner by leveraging the features common to all tasks for high number of demonstrated tasks and moderate number of demonstrations for each task. The curves represent the average deviation (lower is better) from the best possible score (the one obtained with perfect knowledge of the task), that is the average of the optimal value function, for different values of the number of demonstrations per training task (top) for a fixed number of training tasks of 100 and for the number of training tasks (bottom), the number of demonstrations for each tasks being fixed to 10. The algorithm presented in this section is denoted as Fact. learner ; two alternative initialization heuristics are presented. (Best seen in colors)4.3. FACTORIAL INVERSE REINFORCEMENT LEARNING 71 (typically 100 in the experiment). Since the task is different from the previous demonstrations, it is not really meaningful for the flat learners to re-use the previous samples or the previously learnt parameters, so the task must be learnt from scratch. On the other hand, the factorial learner re-uses its dictionary as features to learn mixing coefficients for the new task. We also experimented two alternative, simpler, strategies to build a dictionary in order to re-use information from the training tasks. The first one consists in using a random selection of rewards learnt during training as features for the new tasks (flat, features from ex.). We use the learnt parameters of 15 training tasks as features. The other one performs a PCA on the rewards learnt during training and uses the five first components as features (flat, PCA features). Similarly to previous experiment the apprentices are evaluated on their score (according to ground truth reward function) on solving the new task. Results, presented in fig. 4.6 are compared for various number of training tasks and demonstration per task. They demonstrate that the factorial learner can re-use its knowledge about the combinatorial structure of the task to learn the new task more quickly. The factorial learner also outperforms the other simple feature construction strategies. The better ability of the factorial apprentice to generalize over the state space is increased in this setting since only a single demonstration is observed from the expert. Often this demonstration only covers a small part of the state-action space. This phenomenon is illustrated in fig. 4.7 that represents the true optimal value function together with the expert’s demonstrations, and the learnt value functions by both the flat learner and the factorial one. A typical situation that can be observed in some examples, is that the flat learner’s value function is local to expert’s demonstration, while the factorial learner, that estimates the task in the space of learnt features, can have a good estimate of the value function in parts of the space where no demonstration was provided. 4.3.3 Discussion In this section we presented a gradient descent algorithm to learn a dictionary of features to represent multiple tasks observed through an expert’s demonstrations with an inverse reinforcement learning approach. The experiments demonstrate that the approach enables the learning of the common structure of the tasks by using transversal information from all the demonstrated tasks. Furthermore it demonstrates and illustrates the fact that this approach enables more accurate representation of new tasks from only one short demonstration, where the classical inverse reinforcement learning approach fails to generalize to unobserved parts of the space due to the lack of adequate features. The algorithm is compared with naive approaches trying to learn a dictionary from task parameters that were inferred through flat inverse reinforcement learning and showed that these approaches fail to learn the relevant structure of the demonstrated tasks. A possible interpretation of this difference is that the PCA approach performs the matrix factorization with respect to the metric of the parameter space, whereas our algorithm uses the more relevant objective cost function. Due to the particular structure of the inverse reinforcement learning problem, namely invariance of the72 CHAPTER 4. LEARNING A DICTIONARY OF PRIMITIVE TASKS 0 5 10 15 20 25 30 35 Number of demonstrations for training tasks 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 Avg. dev. from opt. score on testing tasks Flat Fact. (rand. init) Fact. (PCA init) Flat (PCA features) Flat (features from ex.) Flat (ground truth features) 0 50 100 150 200 Number of training tasks 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 Avg. dev. from opt. score on testing tasks Flat Fact. (rand. init) Fact. (PCA init) Flat (PCA features) Flat (features from ex.) Flat (ground truth features) Figure 4.6: Performance on test tasks For new task observed through a single demonstration, the factorial learner outperforms the flat learner by re-using previous knowledge on task features. The curves represent the average deviation (lower is better) from the best possible score, for different values of the number of demonstrations per training task (left) for a fixed number of training tasks of 100, and for the number of training tasks (right), the number of demonstrations for each tasks being fixed to 10. (Best seen in colors)4.3. FACTORIAL INVERSE REINFORCEMENT LEARNING 73 Figure 4.7: The factorial learner achieves a better recognition of new tasks from a single demonstration by using the learnt features. In contrast the flat learner often build a task representation that is local to the demonstration. First row represents the optimal value function (blue is high) for the real task, together with the single demonstration provided by the expert. Second and third row represents the optimal value function for the model of the task as learnt by respectively the flat learner and the factorial learner. Each column corresponds to one of the four first test tasks (from a total of 100). (Best seen in colors)74 CHAPTER 4. LEARNING A DICTIONARY OF PRIMITIVE TASKS problem with respect to reward scaling, and other transformations (Ng et al., 1999, Neu and Szepesv´ari, 2007), the metric of the parameter space is not relevant for the objective of apprenticeship learning. An important limitation of inverse reinforcement learning is that it assumes the knowledge of a model of the dynamics of the environment. Therefore it can either be applied to situations where that model is actually known, meaning it is very simple, or where it can be learnt. However the latter brings the new question of the robustness of inverse reinforcement algorithms to errors or gaps in the learnt model. Furthermore, while regular inverse reinforcement learning outputs both a model of the task and a policy that solves it, the factorial approach presented in this section only provides policies for the observed tasks. This means that although a large variety of tasks may be represented by combining primitive tasks from the learnt dictionary, it is generally not meaningful to combine the policies in the same way: the agent has to train a policy for these new tasks. This algorithm can be considered as a first example of feature learning in the multitask setup for inverse reinforcement learning. However other approaches should be explored by further work in order to derive more efficient algorithms, by for example extending the natural gradient approach from Neu and Szepesv´ari (2007) to the dictionary learning setup, or adopting a Bayesian approach extending Ramachandran and Amir (2007). Finally constraints can be applied to the learnt dictionary to favor some kinds of solutions. Two examples of such constraints for which many machine learning algorithms have been developed are non-negativity and sparsity. Non-negativity of the coefficients would for example focus on representations that allow primitive behaviors to be added to, but not subtracted from an activity in which they do not appear. Such constraints have been successful in many fields to yield decompositions with good properties, in terms of interpretability but also sparsity (see for example Paatero and Tapper, 1994, Lee and Seung, 1999, ten Bosch et al., 2008, Lef`evre et al., 2011, Hellbach et al., 2009, Mangin and Oudeyer, 2013, but also chapters 3, 5 and 6). Sparse coding also focuses on a constraint on decompositions to improve the properties of the learnt elements (Hoyer, 2002, Aharon et al., 2005, Lee et al., 2006). For example. Jetchev and Toussaint (2011) have shown how enforcing sparsity of a task representation can make this task focus only on a few salient features, thus performing task space inference. Other examples are given by Li et al. (2010) and Hellbach et al. (2009). Exploring the use of these constraints together with the techniques presented in this chapter constitutes important direction for further work.Chapter 5 Learning a dictionary of primitive sounds This chapter studies the question of the acquisition of language mainly from the acoustic point of view. More precisely we review and develop techniques that can model the acquisition by a learning system of basic acoustic components of language, like phonemes or words. In this chapter we present approaches that use multimodality or supervision to acquire such components as well as techniques that rely only on the patterns within the acoustic signals. Many of the techniques from the first category use a labels or weak supervision to model multimodality and can therefore be described as symmetric to the experiment presented in chapter 3: instead of having a real scene and symbolic labels representing language, the language is real but the scene is represented by symbols. The NMF techniques presented at the end of this chapter and developed by ten Bosch et al. (2008), Driesen et al. (2009) are the one that inspired work from chapter 3. Finally this chapter as well as chapter 3 present the two experiments that are joint in next chapter. 5.1 Models of language acquisition Learning dictionary of primitive sounds is an attempt to model language acquisition by featuring what Brent (1999) calls cognitive plausibility and therefore differs from the static approach that take many automatic speech recognition systems. Brent’s cognitive plausibility requires speech recognition methods to be incremental, selforganized and start with no prior knowledge on the environment it has to explore: properties that are observed on infants who learn the language(s) they are exposed to. Cognitive plausibility comes with the design of learning processes: a central point in this design is the definition of the interaction between the system and an outside word. We already have discussed the central problem of language grounding and the importance of multimodality for language learning, but also the evidence from work of Saffran et al. (1996), Saffran and Wilson (2003) that children can discover patterns in speech signal without relating it to other modalities. 7576 CHAPTER 5. LEARNING A DICTIONARY OF PRIMITIVE SOUNDS Models of language learning both from multimodal perception and solely from acoustic perception both exist in the literature. Considering the learning of linguistic elements without using any social or multimodal cue highlights the importance of internal regulation systems to develop an internal speech model from extraction of patterns from observed language. Park and Glass (2008) have performed an experiment in that direction; it shows that it is possible to extract words or phrases from a set of recorded lectures by studying occurrences of speech patterns. However such learning systems develop representations that are not included in a social interaction and exclude any convention: therefore the models of language that emerges from these experiment cannot be used to communicate since they lack the essential grounding property. Gorin et al. (1994) already underlined the importance of treating the input channel as a communication channel when dealing with user requests and refers to it as the “How may I help you” problem: the learning system will develop skills relevant to the client request classification. Gorin thus made a choice between an information theoretic approach or a more action oriented one. Other approaches use both pattern extraction from acoustic perception and multimodal or social information. As an example Iwahashi (2003) studies language acquisition from speech, visual and behavioral information. He presents a learning system that includes a first step where sub-lexical patterns in the speech channel and object recognition in the visual channel are separately acquired. In other words, that system is used to bootstrap some preliminary representation before any social interaction. The idea of bootstrapping internal representations have also been studied by Brandl et al. (2008). In other works, multimodality is simplified as labels, coding for keywords or more generally for topics, as in Gorin et al. (1999), ten Bosch et al. (2008). In order to build larger and more realistic systems, it often is necessary to work with a model of memory; indeed incremental learning systems often bring growth in data size, leading to memory usage and computation. The Acorns1 (Aimetti, 2009, ten Bosch et al., 2008, Altosaar et al., 2008) project have explored some of this issues by introducing memory levels. The principle is to separate data storage in different levels, where depth in memory increases with the level of organization of the data. This may, to a certain extent, be seen as a compression mechanism as data is highly structured in the long term memory, but it also introduces an attention mechanism, associated to a model of short term memory. Pirmitive acoustic elements may be considered at the sub-lexical or lexical level. Ma and Li (2005) use hidden Markov models (HMM) to achieve sub-lexical classification: a universal sound recognizer is learnt at the sub-lexical level, in a supervised manner before being used to recognize spoken language. Aimetti (2009) uses symbolic labels to build a lexicon of sound segments: similarity measures between sound segments are used to select prototypical examples of such segments that are stored in a model of memory, together with their label. The classification of a new lexical entity is then achieved through a nearest neighbour approach. The experiment from Park and Glass (2008) uses a similar approach together with a graph clustering method to group similar sound segments as sub-lexical entities. In the experiment presented in next section, we use a hierarchical clustering method to achieve unsupervised sub-lexical classification on the basis of acoustic similarity; in a second step a bag of word representation is built on top of the sub-lexical units that have been discovered 1Acquisition of Communication and Recognition Skills, http://www.acorns-project.org5.2. HIERARCHICAL CLUSTERING OF BASIC SOUNDS 77 and used to recognize lexical elements learnt in a supervised way. The exact role of word segmentation is a quite controversial issue in speech recognition: whereas sentence segmentation is relatively easy through silence recognition, word segmentation is indeed a difficult task even for standard written text (see Brent, 1999, Kuhl, 2004). We may distinguish between two approaches: the first one consists on building language acquisition on the ability to segment words, whereas the second one does not rely on word segmentation but might lead to the ability to segment word-like elements as a consequence of word recognition. An example to the first approach is the segmental dynamic time warping method which uses dynamic programming to find similar sound segments between speech examples, and defines sub-lexical units as those segments. Such methods are used in Aimetti (2009), Park and Glass (2008), Gajjar et al. (2008). The second approach which ignores segmentation while recognizing speech may appear less intuitive but also shows great results. Non-negative matrix factorization methods have been used in such experiments. Ten Bosch et al. (2008, 2009), Driesen et al. (2009) present a method that builds an internal word representation from whole utterances with weak supervision. Similarly Stouten et al. (2008) explain how NMF can be used to learn models of digit names from sentences that are sequences of such digits. As a consequence, those representations may afterward be used to localize candidate words in examples, and thus, achieve segmentation as a consequence. The bag of words approach presented below uses local descriptors based on a completely arbitrary segmentation. These local descriptors enable a statistical analysis of a whole utterance which leads to keyword recognition without any lexical segmentation. Many methods have been tried to match a lexical representation of spoken utterances to a more structural representation, a process that may be seen as a grammar extraction. Such methods often use a predefined structure, more or less flexible, to which the utterance is mapped, and statistical inferences in a goal oriented manner. For example Farrell et al. (1993), Gorin et al. (1994) use multilayer neural networks to map the recognition of some words to an action; in their experiment the semantics of the environment is based on action choices. In Iwahashi’s experiment (Iwahashi, 2003), this semantics consists of (object, action, position) associations and is analyzed using a graph structure adapted to this semantics. The difficulty for a system of self extracting such semantics representations, without predefined implementation, is to find an origin for those representations. Other input channels such as the vision channel or motor channels, in the case of action oriented goals, are generally part of this process. 5.2 Hierarchical clustering of basic sounds In our contribution (Mangin et al., 2010) we use a clustering algorithm to discover a dictionary of primitive sounds. More precisely, we use a bag-of-words method in a developmental approach of the learning and bootstrapping of speech recognition skills. We built a two levels language acquisition system: first an unsupervised clustering level discovers multi-scale acoustic representations of speech invariants from unsegmented speech streams with no prior phonetic knowledge. Then, at a higher level, these78 CHAPTER 5. LEARNING A DICTIONARY OF PRIMITIVE SOUNDS low-level representations are re-used to learn to predict a semantic tag associated to whole utterances. The system presented in this section has three main features: there is no explicit segmentation into words or phonemes, sub-lexical units are discovered instead of coming from a static phoneme recognizer, and no supervision is used for the discovery of sub-lexical units. 5.2.1 Background and principle Our approach is based on the bag-of-words idea, that originated in text classification applications (Joachims, 1997) and have been used with great success in image categorization applications as in the work of Sivic and Zisserman (2008). The general idea of bag-of-words approaches is to represent the text or the image as an unordered collection of local elements chosen in a dictionary (the words in a text and local visual features in an image), thus ignoring the global structure. Using this representation, a classification algorithm can then be used to predict the associated category. In computer vision applications, this can lead to very compact representations thanks to the quantization of local features, while preserving the stable local information and ignoring more unstable global geometry. In most applications, the dictionary is static and requires an initial training phase. However Filliat (2008) has developed an incremental approach that is closer to what developmental systems require. We will therefore transpose this method to the speech recognition problem. Yet, for the sake of clarity, we will use the terminology “bag-of-features” instead of “bag-of-words”, since the “words” in the bag-of-words approach are not at all related to “linguistic words” in the speech stream and which constitute important speech invariants to be discovered and learnt in our framework. 5.2.2 Presentation of the framework The language acquisition system uses three distinct layers to transform the sound representation, as described below. Continuous Acoustic Feature Vectors (CAF) extraction This layer transforms the input audio signal into a set of vectors, each associated with some position information. The goal of this process is to transform the signal into a set of local descriptors. An important requirement on the used representation is that it must come with a measure of similarity on the verctors. This first layer typically uses time windows static sound processing methods (for example MFCC or RASTA-PLP, as detailed in section 5.2.3). Unsupervised clustering The role of this layer is to transform each CAF vector from the set obtained above, into a discrete acoustic event, that is to say a single number. This transformation is accomplished through a clustering process. More precisely the clustering builds incrementally a representation of this acoustic event, using the similarity measure inherent to the CAF space. This representation both allows retrieval of the acoustic event corresponding to a given CAF vector and the learning of new acoustic events when a CAF vector does not match any known feature.5.2. HIERARCHICAL CLUSTERING OF BASIC SOUNDS 79 Higher level semantic analysis The two previous layers may be seen as a preprocessing, which goal is to transform the input audio signal into a bag of discretized acoustic features, more precisely we get a set of couples, each composed of an acoustic event and its position in the stream. This semantic layer introduces a new representation of the audio signal that allows to efficiently set up higher level statistical treatment, such as keyword recognition (see following experiments) or more complex analysis. Time signal Seq. of windows Set of CAF vectors Set of acoustic events Semantic classes Train labels Windowing MFCC or RastaPLP Unsupervised clustering (codebook) TF-IDF vote Figure 5.1: Sequence of transformations from raw (time sequence) acoustic signal to the classification into semantic classes. This process may be described mathematically as follows: given an input audio sequence a ∈ A, a continuous feature vector space F, a set of localization data, such as time position in the utterance, P, a discrete acoustic feature dictionary D: • extract CAFs: a ∈ A −→ (vi , pi) ∈ (F × P) ⋆ • find corresponding acoustic events: (vi , pi) −→ (fi , pi) ∈ (D × P) ⋆ Where, i is a free variable, and for any set E, we call E ⋆ =  k∈N E k the set of finite sequences over E. In the case of tag inference, the statistical process is then, given a set T of tags, a mapping: (D × P) ⋆ → T . 5.2.3 Implementation Continuous feature vectors extraction We use mel-Frequency Cepstral Coefficients (MFCC) and Relative Spectral TransformPerceptual Linear Prediction (RASTA-PLP) features over a short time window, from Ellis (2005) implementation. The former feature vectors, which are actually time sequences of successive feature vectors, are compared with respect to a Dynamic Time Warping (DTW) distance (Sakoe and Chiba, 1978). Such approaches are known to yield efficient acoustic similarity measures for word recognition (see Furui, 1986). Mel-frequency cepstral coefficients These coefficients are computed by first taking the power spectrum of the signal, that is to say the square of the modulus of the Fourier transform of the signal, then averaging it over generally 25 filters, taking the log of the resulting coefficients, and finally applying a cosine transform. The80 CHAPTER 5. LEARNING A DICTIONARY OF PRIMITIVE SOUNDS power spectrum of a signal s(t) is given by the following formula. p(ω) = |sˆ(ω)| 2 (where ˆs denotes the Fourier transform of x) = 1 2π      t s(t)e −iωtdt     2 For a set of filters ψi over the frequency domain, the mel frequency spectral coefficients (MFSC) are computed as follows. MFSC(s) i =  ω |sˆ(ω)| 2 |ψi(ω)| 2 dω The filters are chosen according to empirical studies of the human perception of sounds similarities, which is approximated as a transformation of the frequency scale, denoted mel scale (Stevens and Volkmann, 1940); the mel scale is such that frequencies that are perceptually similar are evenly spaced in the mel domain. One then generally use equally spaced triangular filters in the mel domain. Using a finite set of filters accounts for the fact that close frequency cannot be distinguished by humans. An approximation function to the empirical curves from psychology is generally used to convert from the frequency domain to the mel domain. As an example: mel(f) = 2595 log10  1 + f 700 . The coefficients obtained from this process are meant to model the perception of sound as processed by the human cochlea. The mel frequency cepstral coefficients (MFCC) are computed by applying a discrete cosine transform (DCT, Ahmed et al., 1974) to the logarithm of the MFSC. MFCC(s) = DCT [log (MFCC(S))] Dynamic time warping This distance, which inspired from the Levenshtein distance (Levenshtein, 1966) distance, takes into account possible insertions and deletions in the feature sequence. It is adapted for sound comparison but does not correspond to an inner product in CAF space, since it is not an Euclidean distance. This prevents the use of the classical k-means algorithm. A practical benefit of using the DTW distance is that it enables to compare sound feature vectors of different length. However, in our experiments we used fixed length feature vectors: for each acoustic utterance we first compute the MFCC sequence corresponding to this audio stream. After extracting this MFCC sequence, we cut it into fixed length features, using a 80 ms or 150 ms sliding window. The sliding length used in most of the following experiments is one third of the length of the window. However, it is also completely possible to mix several lengths in the same vocabulary or to extract features of random lengths. This would result in more multiscale approach. The window length is here around the scale of a phoneme length and gives a good trade-off between sufficiently long sequences of MFCC vectors and the quadratic complexity in the length of the vectors for DTW computation. Furthermore limiting the window length is necessary in order to obtain local descriptors.5.2. HIERARCHICAL CLUSTERING OF BASIC SOUNDS 81 Incremental unsupervised clustering We use a dictionary structure that groups similar CAF vectors according to their DTW distance into discrete acoustic events. The dictionary implements two operations that are related to its construction and the retrieval of the acoustic event matching a specific CAF. Our approach is adapted from the one used for image processing in Filliat (2008). The dictionary construction is an incremental hierarchical clustering algorithm that is to say new CAF vectors are added incrementally to the dictionary, either in an existing cluster (acoustic event) or by creating a new cluster if the new vector is too far from existing data. The retrieval of the acoustic event that best matches a specific CAF is equivalent to find the closest group in the dictionary for a given vector. Since it is not computationally possible to compare the input vector to each of the clusters we use a tree structure and an associated efficient search algorithm. More precisely, the acoustic events are defined as hyperspheres in the continuous feature space, and their centers are organised in a tree structure inspired by the one of Nister and Stewenius (2006), where leaves are primitive clusters and nodes represent hierarchical clusters. The tree structure is organised according to the following rules: 1. each leaf or node is a cluster C represented by its centroid: a vector vC , 2. each leaf (primitive cluster) is actually a hypersphere of radius rmax around its centroid. A CAF vector v is therefore part of a primitive cluster C if and only if d(v, vC ) ≤ rmax 3. each node of the tree has a limited number of children Nmax . The cluster associated to the node is the union of the clusters associated to the children, and the centroids nC associated to the cluster is the mean of the vectors it contains. A CAF vector is matched to a cluster by recursively following the child of the node which centroid is the nearest from the searched vector. The dictionary is built by adding these vectors to the tree: we find the nearest leaf (primitive cluster); if the vector matches the radius condition regarding to this cluster, it is added inside this one; if not, a new cluster is created initially containing only this vector. In the case where a new cluster was created, it is added as a child of the same node as the previously found nearest cluster. Then we check if the number of children is below Nmax ; if not, the node is split in k nodes, by a k-means process (see algorithm 2 and Hastie et al., 2001, 14.3.6) on the centroids of the leaves. The leaves are then distributed to those child nodes. An example of this mechanism, also described by the following pseudo-code of algorithm 1, is shown in fig. 5.2. This structure and algorithm implement an approximate nearest neighbour search, and thus the processes of learning a CAF or retrieving the corresponding acoustic event are approximative. Since the CAF vectors are themselves noisy, this approximation is naturally handled by the statistical treatment in layer 3. In order to reduce the impact of orientation errors while exploring the tree, which may result in an important final error, for example, if it occurs near the root of the tree, we added the following improvement to the search algorithm. The idea is to launch more than one search for each request and then select the best results. This is close to a branch-and-bound techniques and may be implemented in82 CHAPTER 5. LEARNING A DICTIONARY OF PRIMITIVE SOUNDS Step 1 Step 2 Step 3 Figure 5.2: Insertion of a new vector in the hierarchical lexicon structure. The nearest leaf is found, but the vector is too far from the center (first step) so a new leaf is created (second step). The new leaf father has now too many children (Nmax = 3) so the node is split in two parts(third step).(k = 2) many ways. We tried two implementations of this method. In the first one, for each node reached during the search process, the search is launched again on its b children closest to the target, instead of just the closest child. By best children we mean the b children with the lowest distance between their centroid and the requested vector. b is called the backtracking parameter. This method leads to a complexity of O  n logk(b)k  , where n is the number of nodes, k the k-means parameter used to create the tree and b the backtracking parameter. In practice this backtracking approach make the search very long compared to the O  k log(n)  original complexity. The second method uses the same idea, but instead of deciding locally which node deserves to be explored, it runs full searches, at the end of which it launches again a search from some node on the tree, where a good candidate path may have been missed. More precisely, during the search, each time a child node is chosen for the proximity of its centroid to the requested vector, its siblings are memorized with some value representing how far they were from the chosen child. When a candidate leaf is finally found, the system is able to reconsider the choices it has made during the search and explore the ignored node which are the closest to the target. By repeating this process b times, and finally choosing the best candidate nearest neighbor from those found, we are able to minimize the impact of the approximate nature of our structure. The actual complexity of this method is roughly O(bk log(n)). The second method gave a better trade-off between the number of explored nodes, which corresponds to computation complexity, and the quality of the retrieved approximate nearest neighbor.5.2. HIERARCHICAL CLUSTERING OF BASIC SOUNDS 83 Algorithm 1 Adding a vector to the cluster tree node : current node is the node where the vector is to be added, : vector is the vector to add, : k is the k-means parameter, : rmax is the threshold distance that is used to decide if two vectors are considered identical, : Nmax is the maximum number of vectors that a leaf may contain. procedure add vector to node(current node, vector , k, rmax , Nmax ) if current node is a leaf then let v be the nearest vector in current node if distance (vector , v) ≤ rmax then add vector to current node else let father be the father of current node create a new leaf from vector and add it to father let children be the children of f ather and n their number if n ≥ Nmax then new nodes ← k means(k, children) set new nodes as the children of father end if end if else let child be the nearest child from vector in current node add vector to node(child, vector , k, rmax , Nmax ) end if end procedure Semantic tag inference While previous steps are able to build an internal representation for the system, based on topological information, this process had no relation to the final goal of keyword classification. Actually, all the semantics related to the classification task is created in the step. We implemented a voting mechanism to score acoustic events and examples regarding semantic tags. The idea of the voting mechanism is to associate a weight wi to each acoustic event i. Let f t i be the frequency of acoustic event i regarding tag t, f t i = ni,t nt where ni,t is the number of co-appearances of acoustic event i and tag t and nt the number of appearances of t. For a query utterance q, where acoustic acoustic event i appears qi times, i votes as Vi = qi · f t i · wi , where wi are weights. A common way of setting weights wi is to use a Time Frequency — Inverse Document Frequency (TF-IDF) approach by setting wi = log  Ntags N (i) tags  , (5.1) where Ntags is the total number of tags and N (i) tags the one of tags whose examples contain acoustic event i at least once. Additional conditions may be considered such as setting all node weights to zero except from leaves, which rely entirely on the size of clusters, that is to say the rmax parameter, in our case, which is chosen a priori. One may also choose to allow only nodes near the leaves to have a nonzero weight or to rely entirely on TF-IDF weights.84 CHAPTER 5. LEARNING A DICTIONARY OF PRIMITIVE SOUNDS Algorithm 2 The k-means clustering algorithm : k the number of clusters : (xi)1≤i≤N the Nvectors to add, : c is the vector of assignments (in [|1, k|] N ) procedure k means(k, (xi)) initialize the cluster assignments c while assignments change do for each cluster, let mj be its mean let c be the assignment of each observation to the closest mean: ci = arg min 1≤j≤k ∥xi − mj∥ 2 end while end procedure This kind of modifications may bring more scalability and robustness to the system. It also defines which clusters are acoustic events: either only leaves or all nodes, and thus the use or not of hierarchical and multi-scale acoustic events. In order to be able to compute this score we store the number of appearances of each acoustic event in an utterance associated to a particular semantic tag: this corresponds to previously introduced ni,t. The following process is used: while training, for a given utterance with tag t, transformed in a bag of acoustic events, for each acoustic event i, ni,t is increased by one. During the test phase, we extract the bag of acoustic events corresponding to the utterance. Then, for each tag we compute its score on the utterance, by summing the votes of each acoustic event from the utterance representation. Votes are computed as explained previously, using only the count of co-occurrences, by simple operations over the (ni,t) i,t matrix. 5.2.4 Experimental scenario As explained above, we adopt a framework where the goal is to allow a robot to progressively learn to predict semantic tag(s) associated to a given speech utterance. For example the robot is incrementally provided with examples of associations between speech utterances and semantic tags, and should accordingly incrementally update its internal representations in order to predict better these semantic tags in new utterances. Semantic tags are technically encoded as keywords referring either to general topic(s) of the utterance, sometimes corresponding to the presence of a particular word in the utterance or to the speaker style or language. Databases and protocols We restricted our work on labeled classification problems, that is to say, sets of utterances associated with a semantic label. These labels may be words contained in the utterance as well as levels of speech or speaker identities. The system is trained with such a learning dataset and then evaluated on its label prediction performance.5.2. HIERARCHICAL CLUSTERING OF BASIC SOUNDS 85 We take a bath To put it in the bath isn’t funny either The shoe is a symbol Now mummy is losing her patience Daddy comes closer Angus takes off her shoe Daddy never calls She sits on a nappy Now everybody is in the car Where is the nappy Table 5.1: Transcriptions from ten random examples from the Acorns Caregiver dataset from Altosaar et al. (2008). Keywords are identified in bold font. During our experiments we worked with two datasets. The first one was a home made dataset in which utterances were single words. This dataset, which contains twenty three examples of ten different words, was used to evaluate the performances of the nearest neighbor retrieval with word-long continuous features. The second one is the Caregiver dataset (Altosaar et al., 2008) provided by the ACORNS project, composed of 1000 utterances containing 13 keywords, each spoken by 4 speakers in English adult directed speech; this makes a total of 4000 utterances. An example of sentences used in the dataset is Angus is lazy today. where the semantic tag/keyword is Angus. Examples of transcriptions from utterances from the dataset are given in table 5.1. More details on the dataset can be found in appendix B.1. Results In order to demonstrate the cognitive efficiency of our system we set up the following experiment: for each speaker we randomly split the database in two sets: a train set consisting of 900 examples and a separate test set of 100 examples. The system is trained incrementally with each utterance of the training set; after each 100 train examples, the system is tested on the whole test set. This protocol, which allows us to monitor its progress, is represented in fig. 5.3. In order to characterize the efficiency of the learning process as its improvement through training, that is to say the convergence speed of the algorithm, we regularly test the process during the training and visualize its performance at each step. The same experiment can be made with the 4000 examples coming from all four speakers, to demonstrate that the method is, in some way, robust to multi-speakers learning. In this experiment, the training sessions are 200 examples long and after each training session the process is tested with a constant set of 400 examples: 100 from each speaker. The training set is a succession of 900 examples from each speaker, presented by order of speakers. Such results are presented in fig. 5.4. These experiments demonstrate the good accuracy of our system on the keyword recognition problem. We may compare these results with those from ten Bosch et al. (2008), whose database we used. Actually our results are quite similar to the ones they obtained using non-negative matrix factorization, which method is also not centered on segmentation and proved to reach maximal performances among a variety86 CHAPTER 5. LEARNING A DICTIONARY OF PRIMITIVE SOUNDS 0 100 200 300 400 500 600 700 800 900 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 Speaker 1 Speaker 2 Speaker 3 Speaker 4 Time Performance Figure 5.3: Success rate on the utterance classification task with data from a single speaker: each utterance has to be classified as containing one of the ten keywords. Results are plotted at various stages during learning (number of training examples for incremental learning). A separate learner is trained on each speaker; 1000 examples for each speaker are split into 900 for training and 100 for testing. (80 ms MFCC features) of various competing technical approaches. However matrix factorization has other interesting properties, as discussed in chapters 3, 4 and 6. Those results demonstrate, first of all, the ability of our system to build an internal representation of speech units, in an unsupervised manner (information about keywords is not used in the building of the dictionary), and then to use this internal representation to achieve a keyword recognition task, performed by a kind of semantic engine, which in our experiments is the score system. 5.3 HAC representation This section describes the representation of sound used in the works of ten Bosch et al. (2008), Van Hamme (2008), Driesen et al. (2012) and that is also used in chapter 6. Histograms of acoustic co-occurrences (HAC) were introduced as a representation of sound that is based on acoustic events. It is similar to the bag-of-words approach from previous section since it discards most of the sequential information of the acoustic events; it however consider co-occurrences of pairs of acoustic events and uses a static (instead of incremental) approach to codebook construction. Two important properties that make HAC representations particularly adapted for the NMF algorithm are that they involve nonnegative values and approximate the sequencing of acoustic patterns in an additive manner. The outline of the transformation from raw sound to HAC representation is given in5.3. HAC REPRESENTATION 87 0 500 1000 1500 2000 2500 3000 3500 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Time Performance Global Speaker 1 Speaker 2 Speaker 3 Speaker 4 Figure 5.4: Behavior of the learner when facing data from several speakers. The plot displays the success rate on the utterance classification task: each utterance has to be classified as containing one of the ten keywords. Results are plotted at various stages during learning (number of training examples for incremental learning). The same learner is trained on a mixed dataset of 4000 examples from four speakers; 3800 examples are used for training and 200 for testing. The training data is ordered such that the learner encounters first all data from the first speaker, then from the second one, etc. One curve represents global accuracy; the other ones represent the accuracy of the learner on the subset of the test data coming from each speaker. (80 ms MFCC features) fig. 5.5. The steps are explained in more details in the remaining of this section. We start from the representation as sequences of MFCC vectors, which computation is detailed in section 5.2.3. Additionally we consider dynamic information on top of the sequence of MFCC vectors (MFCC)t : time differences are computed with the time difference ∆ operator defined following Driesen (2012) as ∆ xt = 2xt+2 + xt+1 − xt−1 − 2xt−2 with the convention xi = x1 for i ≤ 0 and xi = xT for i > T. This transformation is analogous to the delayed velocities used in chapter 3 to represent motions. Similarly the MFCC vectors are extended with additional dimensions from the ∆ MFCC and ∆ ∆ MFCC. Following Driesen et al. (2012) we keep 22 dimensions from the MFCC vectors which yields final vectors of 66 dimensions. 5.3.1 Codebooks There are actually three codebooks, for basic MFCC vectors and there ∆ and ∆∆ transformations. The codebooks are obtained with the k-means algorithm, described in section 5.2.3. In the following we use the implementation of ten Bosch et al. (2008) that builds codebooks of size k = 150 for MFCC vectors and ∆ and of size k = 10088 CHAPTER 5. LEARNING A DICTIONARY OF PRIMITIVE SOUNDS Time signal Seq. of windows Seq. of MFCC vectors Seq. of acoustic events HAC Windowing MFCC Clustering (codebook) Co-occurrence count Figure 5.5: Sequence of transformations from raw (time sequence) acoustic signal to histograms of acoustic co-occurrence (HAC) representation. for the ∆∆ vectors. The codebooks are used to convert the three sequences of MFCC vectors and their ∆ and ∆∆ transformations into a sequence of acoustic events: each cluster, that is to say each elements of a codebook defines an acoustic event; each time window is thus transformed into three discrete events corresponding to the clusters in which fall the three vectors associated to that time window. 5.3.2 Histograms of co-occurrences The last step consists in removing most of the temporal information by building histograms of event occurrences and co-occurrences. This process is used on top of the three sequences of acoustic events obtained from vector quantization of MFCC vectors and their derivatives. It is however not at all restricted to these kind of events: any time indexed sequence of events can be transformed into such histograms. Van Hamme (2008) gives a presentation of this construction in the more general case of events not necessarily time indexed but represented in a lattice structure that accounts for the ordering of the events. Finally the process is straightforward to extend to continuous event occurrence probabilities. For a given stream of event (et) 1≤t≤T the stream of co-occurences with delay δ is defined as the stream (ct) 1≤t≤T −δ of pairs ct = (et, et+δ). Co-occurence histograms are simply histograms of co-occurrences. What is denoted as HAC representation in the following is actually the concatenation of co-occurence histograms for each one of the events categories, that is to say MFCC, ∆ MFCC, and ∆∆ MFCC events. Two such vectors are then concatenated for two values of δ: 2 and 5. An important consequence if that representation is a property denoted as the additive property. The additive property directly comes from the use of histograms in the representation and states that if two words which HAC representation are w1 and w2 are concatenated into an utterance, which HAC representation is denoted as s, s ≃ λw1 + (1 − λ)w2 where 0 < λ < 1. The approximation ignores the events coming from the border between the words. This important property transforms the sequencing operation into a convex combination. It therefore transforms a sentence into a mixture of its words, and similarly a word into a mixture of phonemes.5.4. LEARNING WORDS WITH NMF 89 5.4 Learning words with NMF In this section we introduce the use of nonnegative matrix factorization to learn words. Ten Bosch et al. (2008), Stouten et al. (2008) have performed experiments demonstrating the effectiveness of NMF techniques for word learning in both an unsupervised and a weakly supervised setup. In their experiment, Stouten et al. (2008) demonstrate that an unsupervised use of NMF can lead to the learning of words. They use a variation of the HAC representation, described above, on top of a static phoneme recognizer. More precisely they consider 43 distinct phonemes and count the co-occurrences of pairs of phonemes. In their experiment they consider a data matrix V composed of co-occurence vectors built from phoneme recognition on spoken utterances. The utterances are formed as the concatenation of names of digits, such as “014”. Each column of the matrix corresponds to the representation of one such utterance. Stouten et al. (2008) apply the NMF algorithm to learn matrices W and H such that V ≃ W · H. The algorithm is actually parametrized to learn 11 atoms, that are the columns of W. In their article they demonstrate how these atoms are good representation for the phonemes transitions that are characteristic of the name of each digit. This is done by interpreting the atoms as probabilities on the phoneme transitions and noticing that the phoneme transitions that actually occurs for example in the word “one”, that is to say “AH N”, “W AH”, “ W”, and “N ” have the highest probabilities in one of the atoms. The experiments from ten Bosch et al. (2008) have directly inspired the setup presented in chapter 3 and are therefore very similar. These experiments use NMF in a weakly supervised setup: a data matrix Vsound is built using the HAC representation from previous section from spoken utterances. The utterances are simple sentences in containing one or several keywords. Each sentence is associated to a set of labels corresponding to the keywords. These labels can be interpreted as a symbolic representation of objects in a visual scene or basic gestures in a complex motion. A matrix Vlabels contains binary vectors indicating the presence of each label, as detailed in section 3.3.1. Similarly to chapter 3 sound and label data are concatenated for the training into a matrix V =  Vsound Vlabels  . The system is then evaluated on its ability to reconstruct either one or several labels from new utterances. 5.5 Conclusion In this chapter we introduce several techniques to represent sound and learn sublexical or lexical patterns such as phonemes and words. The first technique from Mangin et al. (2010) accounts for the incremental learning of a phoneme codebook. A bag of acoustic events representation of sound is built from the codebook; the efficiency of that representation is illustrated in a supervised classification task using a simple voting algorithm. The HAC representation from Van Hamme (2008) shares a lot of similarities with90 CHAPTER 5. LEARNING A DICTIONARY OF PRIMITIVE SOUNDS the previous techniques: it is based on a static codebook learnt through vector quantization of an audio stream; in addition to the representation as a bag of acoustic events, HAC histograms use co-occurences of events, which capture more temporal information. The bags of paired events are then represented as histograms which provides a representation well fitted to use nonnegative matrix factorization. The experiments presented illustrate the efficiency of these representations in unsupervised, weakly supervised and supervised problems. In next chapter we extend these use case to multimodal learning as a specific form of unsupervised learning. The originality of the techniques presented in this chapter is that they discard most of the temporal information of sound. Interestingly they demonstrate that local information is sufficient to achieve simple recognition tasks, a result closely related with similar phenomenon in the field of vision. Therefore these techniques provide an interesting alternative to other techniques based on the process of high level segmentation of the sound signal. Also, it is important to notice that sliding windows can be used for example to locate the recognized words, using only the aforementioned techniques. However temporal information is crucial for some applications and an important limitation of the techniques presented above is that they do not represent it. It is therefore an important direction for future research to extend such techniques in order to account for the important temporal nature of speech signal.Chapter 6 Multimodal learning In this chapter we bring together the work on the discovery of motion primitives presented in chapter 3 and the one on the discovery of sound patterns from acoustic language introduced in chapter 5: we present a multimodal experiment in which learning occurs simultaneously from acoustic language and motions, without any symbolic supervision. That experiment explores aspects of multimodal learning, but also of the issue of language grounding. Although we have identified important issues related to the ambiguity of decomposition in both the problems from chapter 3 and from chapter 5, this chapter demonstrate that the ambiguity that makes each of the problem difficult when taken separately might be much easier to solve when both problems are considered simultaneously. 6.1 Multimodality in perception and learning Most artificial perceptual systems, as well as humans or other animals, include sensors from various modalities and can therefore take advantage of these multiple modalities to gather more information on their environment. In some situations, the multimodal nature of the signal is of great importance and is not limited to the juxtaposition of information from each modality. As already mentioned in section 1.3, an important example of multimodality is given by communication: human communication is not in general reduced to speaking or writing; instead full featured communication makes extensive use of facial expressions, physical contact, and eye gaze. A famous evidence of the multimodal nature of communication was given by McGurk and MacDonald (1976) and is referred as the McGurk effect: observing lips pronouncing ‘ga’ while hearing ‘ba’ is most often reported as perceiving the sound ‘da’ (see also Schwartz, 2010). Because human communication is so naturally multimodal, robots or intelligence systems pursuing human assistance or collaboration with humans might greatly benefit from taking into account several modalities. For example, while degraded communication is always possible, as when using a telephone, that only transmit the acoustic modality, it is not as efficient and natural as direct communication. Only taking one modality of communication into account might also make it more difficult to learn. 9192 CHAPTER 6. MULTIMODAL LEARNING The question of symbol grounding, as introduced by Harnad (1990) and discussed by Glenberg and Kaschak (2002), points out that learning language is not only about learning the signs of communication such as words, but also requires to relate them to their semantic content. Since that semantic content often lies in other modalities, this problem can be seen as another important instance of multimodal learning. However multimodal learning is not restricted to language learning. The emergence of the concept of ‘dog’ is not only related to the ability to recognize pictures of dogs but also to the sound of a dog barking and the touch of a dog’s fur. Indeed, many concepts cannot be completely characterized without grounding them on several modalities: the concept ‘metallic’ cannot be characterized without taking into account its perceptual expression on several modalities (for example visual aspect, sound, touch, or taste), together with the recognition of the spoken or written word. Unlike supervised learning, unsupervised learning, or reinforcement learning, multimodal learning is not a specific class of algorithm. Indeed, multimodal data can be treated as unimodal data on which an unsupervised learning is applied (some examples provided in this chapter fall under this category). It can also bee considered a supervised regression problem that consist in predicting the signal in one modality, knowing the others. Thus, we prefer a presentation of multimodal learning as a focus on several questions or problems. This chapter focuses more precisely on the study of the mechanisms underlying the self-organization of multimodal perception that can explain the emergence of concepts. The notion of concept does not necessarily refers to an explicit representation of that concept but rather on the emergence of behaviors that are interpreted as mastering of that concept. For example a child is said to master the concept ‘dog’ not by looking into his brain for a neuron spiking each time a dog is seen but rather by its ability to relate the sight of a dog with the sound of a barking dog. The acquisition of semantic concepts from self-organization of multimodal perception however raises the question of the drives and cues that enable that organization. In the case of language learning, experiments on children performed by Akhtar and Montague (1999), and Smith and Yu (2008) demonstrate that cross-situational learning, which focuses on elements that are persistent in the environment across different uses of a word, might be used by children to learn the meaning of words. Most of the approaches presented in this chapter rely on cross-situational learning to explain or model the acquisition of lexicons. However mechanism such as the whole object assumption, mutual exclusivity (see Markman, 1990), and conceptual reasoning (Landau et al., 1998) are also known to play a role in the process of associating linguistic labels to concepts. Another important aspect of multimodal learning is related to ambiguities and their resolution. As pointed out by Belpaeme and Morse (2012): “The challenge which cross-situational learning needs to solve is not only one of mapping a word to a meaning, but of distinguishing that meaning from possible distractors.” Indeed, Quine’s indeterminacy of reference (Quine, 1960) states that relating words to meanings when learning a foreign language is intrinsically ambiguous. On the other hand, many models of learning semantic components from one modality also encounter similar ambiguity issues. An example is given by the experiments described both in chapter 3 and section 4.2; another one is encountered with the choice between thematic and taxonomic association of concepts as explained in Markman (1990) 1 . 1Thematic association refers to the association of concepts that are related because they interact6.2. RELATED WORK 93 Other analogies can be drawn between this phenomenon and the ambiguity of word segmentation (see Brent, 1999), but also with multistability phenomenon as described by Blake (1989), Leopold and Logothetis (1999), Schwartz et al. (2012b), and the cocktail party effect (see Cherry, 1953). It comes that ambiguity and the means to overcome it are central aspects of multimodal learning. In a somehow paradoxical manner, many multimodal problems feature ambiguity in one or several modalities, but, as pointed out in chapter 3 and section 4.2, integrating information from several modalities can be efficiently used to overcome such ambiguity. In other words, considering the problem of concept learning separately in each modality suffers from the presence of ambiguity, but looking at the same problem in several modalities at the same time might help resolving that ambiguity instead of increasing it. For example the role of multimodal perceptions relatively to multistability is discussed by Schwartz et al. (2012b). Similarly Schwartz et al. (2004) explores the role of vision of the lips for improving intelligibility of spoken sound. Finally Sodoyer et al. (2004) present an algorithm for source separation taking advantage of audio-visual information. In the frame of learning language this emphasises the mutual interaction between the learning of the language itself and the concepts it describes. On the one hand perceptual knowledge is used to identify linguistic signs and structures that are by themselves ambiguous. On the other hand language also plays an essential role in shaping the concepts it describes. 6.2 Related work Before introducing some works related to the one described later in that chapter, it is important to notice that the boundaries of what may be considered a multimodal learning problem are difficult to draw. As an example, any classification or regression algorithm can be seen as solving a multimodal learning problem, where one modality plays a special role, either by being constrained to a specific strong structure (labels in classification), or by having to be reconstructed. That perspective is taken in chapter 3 and section 4.2 with respect to multi-label classification. Assuming such structure in the data is however often not compatible with th problem of concept emergence from sensori-motor perception; our contribution presented in this chapter thus focuses on the use of unsupervised algorithms. In their seminal work, Roy (1999), Roy and Pentland (2002) introduce a learning architecture called Cross-channel early lexical learning (CELL), together with an example implementation, that demonstrates how the problems of learning linguistic units, semantic categories, and their relations (in the form of lexical units) can be achieved at the same time. In CELL, both linguistic information and contextual information, each of which may come from several sensory channels, are segmented according to saliency cues such as utterance boundaries or changes in motions. In a second stage, implemented by a model of short term memory, pairs of recurrent co-occurring linguistic and contextual events are filtered. Finally models of linguistic units and semantic categories are built; they combine clustering of similar language stimuli as well as contextual stimuli and optimize the mutual information between together, as milk and cow. Taxonomic association refers to concepts that belongs to the same class, such as cow and pig94 CHAPTER 6. MULTIMODAL LEARNING language and context. The pairs of linguistic units and semantic categories with the highest mutual information are kept as lexical units. Yu and Ballard (2004) have presented work addressing a similar problem but focusing more precisely on user-centric and multimodal information. They present a learning architecture that is capable of forming semantic models of both actions and observed objects by using unsupervised learning techniques. First, models of actions are formed by fitting a mixture of hidden Markov models on the observations and models of objects result from an agglomerative clustering algorithm. The models of objects and actions define concepts and together form the contextual information. Then, this contextual information is used to extract word-like units related to these concepts from phoneme transcriptions of the recorded utterances. More precisely longest phonetic sequences are extracted from all utterances related to the same object or action. Then an alignment techniques, that comes from the field of automatic translation, is used to form the lexical units composed of words and concepts. In Iwahashi (2003) the studied language is related to an (object, action, position) semantics which appears to be closely related to the language grammar. More precisely a lexicon is built from data: the lexicon actually represents a mixture of word and meaning pairs, where meanings can either be objects or actions. Specific probability models are implemented to represent the acoustic modality as well as the modality of visual objects and the one of visual actions. The number of elements in the lexicon is automatically chosen in order to maximize the mutual information between the speech and contextual modalities. In their model a representation of the grammar of the language is learnt by identifying in which order the linguistic elements corresponding to the eventual object, action, and landmark appear. In another experiment Iwahashi (2004) details how a similar architecture can benefit from the possibility of asking a user for binary feedback when unsure of the novelty of an encountered lexicon pair. Sugita and Tani (2005) introduce a recurrent neural network architecture that learns to relate a basic language to corresponding behaviors of a robot. The system is capable of both understanding the words composing the language, that in their experiment are represented by symbols, and their composition, that is to say the syntactic structure of the language. Another aspect of learning action related to language is explored by Tuci et al. (2011) who provide a model of multimodal learning for symbolic language and real actions. Their experiment demonstrates that learning a compositional structure shared between action and language can allow robotic agents to achieve better generalization of the acquired motor knowledge. More precisely the linguistic input received by the system shapes a model of the structure of actions and makes the system capable of achieving behaviours that were not encountered in training. Furthermore Massera et al. (2010) have demonstrated that providing linguistic instructions can facilitate the acquisition of a behavioral skill, in comparison to pure motor learning. Although these experiments are limited to symbolic language, they are good illustrations of the implication of learning multimodal actions and grammars. Our experiment (Mangin and Oudeyer, 2012a), presented in section 3.3, can be seen as a multimodal learning experiment where the language modality is actually symbolic. Ten Bosch et al. (2008), Driesen et al. (2009) have presented a similar experiment where the contextual modality is the one that is symbolic and the linguistic one is continuous. Similarly Lienhart et al. (2009), Akata et al. (2011), BenAbdallah et al.6.2. RELATED WORK 95 (2010) use the NMF or probabilistic latent semantic association (PLSA) algorithm to learn from a continuous and a symbolic modality. Driesen et al. (2010) have also used the NMF algorithm to learn from two continuous modalities. However their evaluation is based on the reconstruction of a third, symbolic, modality. An interesting aspect of all these approaches is that they use common feature learning algorithms, that are some kind of unsupervised algorithms, instead of relying on explicit models of the lexical units and their relations to language and context. Another example of the use of feature learning techniques is given by Ngiam et al. (2011) who also present an experiment based on a similar multimodal setup. They introduce an architecture based on sparse restricted Boltzmann machines that learns from two continuous modalities: one is acoustic and the other corresponds to the observation of the speaker’s lips. They demonstrate how in certain conditions the algorithm reproduces the McGurk effect. Their algorithm actually learns a new representation of the input in an unsupervised setup and is then evaluated combined with a standard supervised classifier trained on top of this representation. Their work can also be described as a sensor-level multimodal fusion: several modalities are used to build a common representation that is later used to solve a classification problem. Actually multimodal fusion has already been used to improve supervised classification: Potamianos et al. (2003) discuss the use of both sensor-level fusion and decision-level fusion for speech recognition. Saenko and Darrell (2007) also implement decision-level fusion and demonstrate that it improves the recognition of objects. In the following we present and extend a multimodal learning experiment (Mangin and Oudeyer, 2013) based on the use of the NMF algorithm. The setting and the algorithm are closely related to the one of Driesen et al. (2010); the experimental setup also shares many similarities with the one from Ngiam et al. (2011). However in these experiments we do not evaluate the learning through a standard classification task: instead of testing the reconstruction of symbolic labels, the system is tested on a behavior based classification task, as encountered by children. We show that fitting an explicit representation of a lexicon is not necessary to produce behaviors that are considered on children as evidence of the mastering of lexicons understanding. That aspect is an important novelty of our work in comparison of the aforementioned previous work. More precisely we do not build a system with mechanisms for explicit decomposition into concepts and words, which would make the decomposition capability a pre-requisite to the learning of words, concepts, and their relation. The latter approach is described by Wrede et al. (2012) as targeting compositional understanding first, which they oppose to teleological understanding2 . Indeed the system presented below self-organizes until it is capable of solving a simple behavioral classification task; it therefore achieves teleological understanding of sentences without word segmentation and recognition being implemented as a pre-requisites. We however illustrate the fact that the compositional understanding also emerges at the same time. These aspects constitute an important difference between the work presented in this chapter and the ones from Roy (1999), Roy and Pentland (2002) and Yu and Ballard (2004). Similarly to all the aforementioned approaches, ours use the cross-situational heuristic to discover the semantic concepts: a form of compression is performed on the sensory 2As explained in section 1.2, compositional understanding consists in understanding a complex concept as the combination of the simple parts that compose it. On the other hand teleological understanding is the understanding of the concept as a whole, generally with respect to a specific interaction task.96 CHAPTER 6. MULTIMODAL LEARNING input that favor the representation of events that occur simultaneously. 6.3 Experimental setup This chapter presents a system that learns to link elements from one modality of perception to related elements in other modalities. We perform several experiments in order to explore the learner’s ability to represent semantic relations between the modalities. These semantic relations may correspond to either an essential relation as the one relating the barking to the image of the dog, or conventional relation as the one relating the name ‘dog’ to images of dogs. The origin of the essential relation comes from the reality of an object that has manifestations in several modalities. Their exists such a thing as a dog that has manifestations in the visual modality as images of the dog, in the touch modality as the touch of the dog’s fur or its claws, or in the acoustic modality as the sound of the dog barking. Although not all of these manifestations occur each time the dog is encountered, they are often perceived simultaneously since they corresponds to the actual presence of the dog. On the other side, the conventional relation is characteristic of language: it corresponds to the fact that the word ‘dog’ is often pronounced when a dog is present and is the object of attention. It is extensively used by parents to teach new words to children. An important element is that both relations are characterized by that cross-situational property, therefore a mechanism leveraging such information would be able to learn both. In the following we denote by semantic concept the set of manifestation of such an object, either related essentially or by convention. Additionally a semantic concept may have several manifestations in a single modality. For instance a dog is associated to both the touch of its fur and claws, or to the sound of the dog barking and the word ‘dog’. When the essential relation is the same as the convention, the word actually takes the form of an onomatopoeia. Importantly this is an example of a mechanism for symbol grounding; more generally the semantic relations we consider actually include Peirce’s icon, index, and symbol (see Steels, 2008, 3.1). In the following, the semantic relations are only characterized in the stimuli by the relatively simultaneous occurrence of the related elements in the various modalities, that is, the cross-situational relation. In this setup we consider the situation in which objects or motions are perceived by an intelligent system while sentences describing the scene are pronounced. Such a setup is illustrated in fig. 6.1. The modalities presented can vary from one experiment to the other, but a semantic relation exists between some elements of the different modalities. These elements might be of several natures: gestures in motions, object in visual scenes, or words in spoken utterances. We consider semantic relations as mappings between these elements: for example a word is related to a gesture, or a gesture to an object in a scene. An example of such a mapping is given in table 6.1. During training the learning agent observes examples of scenes as observations in several modalities. The scenes are such that in each of them one multimodal concept is present and observed in several manner in the modalities. For example a sentence is heard containing the6.3. EXPERIMENTAL SETUP 97 Training The learner observes a set of examples of gestures each of which is paired with a spoken descriptions of the gesture. I make circles with my arm. I am clapping! Testing The learner hears a new spoken utterance and is asked to chose a gesture from a small set of demonstrated gesture that best fit to the description. Look at the circles I do. ? The learner choses the gesture best matching the sentence. Figure 6.1: Illustration of the cross-modal classification task on which one learner presented in this chapter is tested. The transcriptions of the spoken utterances are represented on the figure to illustrate the keyword semantics. However, the learner does not observe these transcriptions. word ‘dog’ and a picture of a dog is seen. However not all perceived elements are meaningful, that is to say related to elements in other modalities. For instance many words appear in each utterances that are not semantically related to anything in other modalities. Similarly other objects may appear in the visual scene that are not related to the subject of the sentence. Therefore the association between elements of the several modalities is ambiguous in each example and the system has to use several observations to solve that ambiguity. The learning system is then tested by observing only one modality and having to chose between several examples in another modality the best match. For example the system hears a sentence talking about a dog and has to chose between several pictures the one containing a dog. Interestingly this experiment is very similar to the one performed by developmental psychologists to study the role of various heuristics used by children for the acquisition of words, including cross-situational information, as in the works from Markman (1990), Yurovsky et al. (2012). Unlike many approaches presented in previous works on multimodal learning, we do not evaluate the performance of the learner on a regular classification task. Instead the learner is evaluated on its ability to relate elements from distinct modalities, in a way similar to the one that would be used on a children. We also evaluate the emergence of words recognition as well as the emergence of a representation of the semantic concepts. The interactions mechanism between the learning agent and the caregiver that provides the demonstration actually shares many similarities with the one from the talking heads experiment as described by Steels (1999), Steels and Kaplan (2002) (see also section 1.3). More precisely the agent we present in this chapter plays the98 CHAPTER 6. MULTIMODAL LEARNING role of the ‘hearer’ from the talking heads, while the caregiver takes the role of the ‘speaker’. There are however important differences between our setup and the one from Steels (1999). First, there is no turn in the role taken in our experiment: the learner only plays the hearer and the caregiver only plays the speakers. Importantly this means that the language is taught to the learner by the caregiver, instead of evolving and emerging from their interaction. Also, in our experiments, the naming game, that consists for the hearer in guessing which object the hearer is talking about, is only played during the evaluation stage. During the training the learner passively observes the caregiver teaching and does not receive any other feedback. Finally, the similarity with the talking head agent is mainly behavioral; our agent uses a different architecture and mechanisms as the ones implemented in the talking head, as explained and discussed in more details in next sections. 6.4 NMF for multimodal learning This section presents the algorithmic tools that are used in the following multimodal experiments. They are based on the nonnegative matrix factorization algorithm (see section 2.1), that is used in a very similar way than in the experiments presented in sections 3.3 and 5.4. The first part of this section presents the learning of a multimodal dictionary; it is then explained how the learned dictionary provides a representation of data that is not bound to any modality; in the following this representation is referred to as the learner’s internal representation of data. Finally we explain how the learner can transform data from one or several modalities to an internal representation or to an expected representation in unobserved modalities. The following assumes that each input from the modalities is available as a set of samples, each of which is represented by a nonnegative vector. We consider a setting in which the learner observes samples in several modalities. For example, the system visually observes objects while hearing a spoken description of the scene. We represent the perception of the samples in each modality by a vector va, where a denotes the modality (for example the system observes the objects as vimage and the sound description as vsound ). Details about such representations for the modalities used in the experiments are given in section 6.5. 6.4.1 Learning a dictionary of multimodal components We call components primitive elements that are mixed together into observations, in the same way that phonemes can be seen as mixed together into a word or a sentence. Compared to the common context of clustering, this notion of component is more general: observations are mixtures of several components at the same time, instead of being just a noisy observation of one centroid. The learner presented here builds a dictionary of multimodal components according to the following model: it searches k components, each represented by a vector wj (j6.4. NMF FOR MULTIMODAL LEARNING 99 from 1 to k), such that each observed example v i verifies: v i ≃  k j=1 h j iw j (6.1) where h j i are coefficients and ≃ denotes a notion of similarity between matrices that is defined below. This is equivalent to clustering when the wj are the centroids and for each i only one h j i is nonzero and equals 1. We consider a more general case where wj and h j i are only constrained to be nonnegative. In the following, the set of n examples is represented by a matrix V of shape d × n (each example is a column of V ), the set of components by a matrix W of shape d × k, called ‘dictionary’, and the coefficients by a matrix H of shape k × n. The previous equation, that models the objective of our learner, can thus be re-written as: V ≃ W · H (6.2) In the following, the generalized Kullback-Leibler divergence (also known as Idivergence) is used to characterize the reconstruction error between V and W · H. The I-divergence is denoted as DI (A∥B), is defined by eq. (2.8). In order to minimize DI (V ||W · H), the algorithm, based on multiplicative updates of W and H, that was originally presented in Lee and Seung (1999), is used. A description of the algorithm is given in section 2.1.2. 6.4.2 NMF to learn mappings between modalities Previous section explains how, for a given set of observations from several modalities that is represented by a matrix V , the NMF algorithm can learn a dictionary W and a coefficient H matrices such that training examples are well approximated by the product W · H. We actually consider the case of data coming from several modalities (three in the example). More precisely we assume the data matrix V is composed of column vectors v such that: v =   vmod1 vmod2 vmod3   and thus V =   Vmod1 Vmod2 Vmod3   . The minimization of the I divergence induces a trade-off between error in one modality relatively to others. In order for the error in each modality to be treated on a fair level by the algorithm it is important that the average values in the representations are of similar magnitude. It can be easily obtained by normalizing data in each modality. In the following experiment data in from each modality is normalized according to its average L1 norm. Since the observations, that is to say the columns of V are composed of several modalities, the dictionary W can also be split into several parts each corresponding to one modality. That is to say each components can be seen as the concatenation of several parts: one for each modality. For example if the data is composed of three100 CHAPTER 6. MULTIMODAL LEARNING modalities: mod1, mod2, and mod3, there exist matrices Wmod1 , Wmod2 , and Wmod3 such that: W =   Wmod1 Wmod2 Wmod3   . In the following we interpret the columns of the matrix H, as an internal representation of the data by the learner. For example, an internal representation h is induced by an observation in modality one such that vmod1 = Wmod1 h or one in both modality one and modality three by:  vmod1 vmod3 =  Wmod1 Wmod3 h. Also, for a given internal representation h we say that the learner expects the observations given by the previous formulae. Interestingly, it is possible to use the learned dictionary to compute an internal representation of an example, even if the example is only observed in a subset of the modalities. Given an example observed only in one modality, vmod1 , one can search for an h such that vmod1 is well approximated as Wmod1 h. More precisely this is equivalent to finding an h solution of: arg min h DI (vmod1 , Wmod1 h) (6.3) h vmod1 vmod2 arg min h DI (vmod1 , Wmod1 · h) Wmod2 · h Actual perception Expected perception Internal representation Figure 6.2: Once the system has learnt the dictionary (Wmod1 and Wmod2 ), given an observation vmod1 in one modality it can reconstruct the corresponding internal representation as well as the expected perception in another modality. The NMF algorithm used in these experiments actually alternates steps minimizing DI (V ||W · H) with respect to W and H. Solving eq. (6.3) is equivalent to the NMF problem with respect to H only; therefore, it can be obtained with the same algorithm, but only using the steps that update H. In theory this approach scales to any number of modalities although the experiments presented here only test it on numbers from two to four. Finally it is also possible to reconstruct a representation of the data that the system would expect in a modality, given observations in other modalities. For that, from6.5. DATA AND REPRESENTATION 101 an observation featuring a subset of the modalities, the system fits an internal representation h using the method described previously. Then it can reconstruct the expected representation in an unobserved modality (for example the third modality, mod3 ) by computing the product Wmod3 h. This forms a framework, illustrated in fig. 6.2, that uses a learned multimodal dictionary to transform data from modalities to internal representations or expected data in other modalities. It enables a large set of experiments as illustrated in section 6.6. 6.5 Data and representation In the following experiments three raw modalities are used: motion, sound, and image. For comparison purposes, a symbolic modality is sometime also used. It is represented in the same way than explained in section 3.3.1. The multimodal data is obtained by taking examples from three datasets of motions, sounds, and images as explained in next sections. In some of the experiments time windows are built from images, that are actually frames from videos, and the recorded utterances. The process used to obtain these examples is explained in section 6.6.2. In each experiment an arbitrary random mapping between elements from one modality to the others is chosen; these elements are objects in images, keywords in sentences, and gestures in motions. More precisely the semantic concepts occurring in one modality are associated to the one of the others. For example the keyword ‘shoe’ from the sound dataset is associated with the gesture ‘squat’ from motion dataset. The associations are both random and arbitrary, which means they are purely conventional and do not correspond to intrinsic similarities of the corresponding data. 6.5.1 Motions The motion dataset was recorded from a single human dancer with a KinectTM device and the OpenNITM software3 that enables direct capture of the subject skeleton. The device, accessed using the ROS framework4 , provides an approximate 3D position of a set of skeleton points together with angle values representing the dancer’s pose at a given time. We recorded a motion dataset composed of a thousand examples of ten dance gestures, similar to the one used in the dataset presented in section 3.3.1. The gestures are listed in table 6.1. The gestures are either associated to legs as for example squat and walk movements, to both arms as clap hands and paddle, or to left or right arm as punch or wave hand. Yet this structure is not known by the learner initially. They correspond to both discrete and rhythmic movements. This datased named Choreo2 is publicly available at http://flowers.inria.fr/choreo2. 6.5.2 Sounds The following experiments use the Acorns Caregiver dataset (Altosaar et al., 2008), that is described in appendix B.1. The acoustic data is represented according to the 3http://www.openni.org 4Robotic Operating System (http://ros.org)102 CHAPTER 6. MULTIMODAL LEARNING HAC representation presented in section 5.3. In the following experiments, we use recordings from the first speaker from the Caregiver dataset; it includes 1000 utterances containing 10 keywords; in English adult directed speech. An example of sentences used in the dataset is Angus is lazy today. where the semantic tag/keyword is Angus. 6.5.3 Images and videos Pictures used in the experiments were acquired as frames from an interaction with an iCub robot, through an RGBD sensor (red, green, and blue camera coupled with a depth sensor). Both the acquisition of the frames and their processing is described in more details by Lyubova and Filliat (2012). The processing of the image stream goes through the following steps. 1. Proto-objects are segmented using information from motion, depth sensors, and an agglomerative clustering of local descriptors. From there each proto-object is processed independently. 2. Two types of local features are extracted: SURF descriptors (Bay et al., 2006) and HSV (hue, saturation, value) of superpixels (obtained by grouping of similar adjacent pixels). Once extracted features of each type are quantized by incrementally learning growing dictionaries of features. This process is very similar to the one presented for sound in section 5.2. 3. Closest SURF points and superpixels are grouped into pairs or triplets of feature vectors denoted as mid-features. These mid-features are quantized similarly to the features. 4. At this point, and following the bag-of-word principle (Joachims, 1997, Filliat, 2008, Sivic and Zisserman, 2008), each view is represented as an histogram of quantized features or mid-features. A dictionary of object views and their models are learned incrementally using the TF-IDF score, expressed in eq. (5.1), to track the probability of a feature to appear in a given view. 5. Finally a dictionary of objects is built from recognition of views and tracking information. In the following experiments, one or a combination of several of the representations computed in the aforementioned process are used. More precisely the representation used include (always in the quantized form): SURF features (SURF), SURF couples (SURF mid-couples), HSV superpixels (color), HSV superpixels couples (color midcouples), and triplets (color mid-triplets). 6.6 Experiments This section describes several experiments that explore the capacity of the algorithm from section 6.4 to learn semantic concepts and their grounding in several modalities in the setting that was introduced by section 6.3.6.6. EXPERIMENTS 103 Name Limb(s) Motion shoe both legs squat nappy walk book right leg make a flag/P on right leg daddy both arms clap mummy mimic paddling left Angus right arm mimic punching with right arm bath right arm horizontal goes from side to front bottle left arm horizontal left arm, forearm goes down to form a square angle telephone make waves on left arm car say hello with left arm Table 6.1: List of associations between keywords from the acoustic dataset (names) and gestures from the motion dataset. The limbs on which the motions occur are also mentioned. 6.6.1 Learning semantic associations In order to investigate the learning of semantic associations between elements of the acoustic, visual, and motion modalities, we use an artificial mapping between acoustic words, visual objects, and gestures. An example of such a mapping is given in table 6.1. Each triplet of word, gesture, object forms a semantic concept. The data used to train the system is composed of sentences, motions, and images; each sentence contains one of the keywords, each motion features one gesture, each image an object. Finally the gesture, the word, and the object from an example belong to the same semantic concept, which implements the cross-situational manifestation of the semantics. The system is trained on various combinations of either two or three modalities. The modalities might be denoted as Motion or M, Sound or S, and Image or I. After being exposed to a set of training multimodal examples, the system is tested as follows: it observes a new example, called test example in a subset of its modalities and has to chose the best match among several examples observed in other modalities, which are denoted as reference examples. An illustration of that process is given by fig. 6.1. For example, the system is trained on sound and image and tested by hearing a sentence (the test example) and having to chose among a set of images (the reference examples) the one that is best described by the heard sentence. Another possibility is to train the system on motions, sounds, and images, and test it on its ability to chose from several sentences the one that best describes a pair of a motion and an image that it observes. We denote such settings by the notation: M1 → M2, where M1 represent the modality or modalities in which the test example is observed, called test modalities, and M2 the modality or modalities, denoted as reference modalities, in which a best matching example must be chosen among a set of reference examples. For example hearing a sentence and choosing the best matching object from images is denoted by Sound → Image or S → I. Viewing an object and a gesture and finding the best matching sentence amongst examples is denoted by M,I → S. The testing process is illustrated in fig. 6.3. As mentioned above, the testing process is analogous to an instance of the language game from the talking head experiment form Steels104 CHAPTER 6. MULTIMODAL LEARNING (1999). vM1 v (2) M2 v (1) M2 v (3) M2 M1 M2 Test modality Reference modality Test example Reference examples Same semantic class as test example. Different semantic class. Different semantic class. chose best match Figure 6.3: The learner is tested on its ability to relate an observation of a test example in one modality to the right reference example in another modality. Section 6.4.2 explains how to use NMF on multimodal data, to learn a dictionary and the associated internal representation and finally how to transform data either from one modality to another, or from a modality to the internal representation (see also fig. 6.2). We use that mechanism as a basis to implement a classification behavior for the learner. For a given example the system uses the learned multimodal dictionary to produce an internal representation of the example (coefficients h) and eventually also an expected transcription of this example in another modality. It then compares an example from the test modalities to those in the reference modalities. To perform the comparison the system can either: • compute an internal representation of the test example, compute internal representations of the reference examples, and then compare these internal representations. h h (1) h (2) vtest v (1) ref v (2) ref Internal coefficients Test modality Reference modality compare compare • compute an internal representation of the test example, use it to generate an expected representation in the reference modality, and compare it to the reference examples. h vtest vref v (1) ref v (2) ref Internal coefficients Test modality Reference modality compare compare6.6. EXPERIMENTS 105 • compute internal representations of reference examples, for each of them compute an expected representation in the test modality, and compare them to the test example. vtest v (1) test v (2) test h (1) h (2) v (1) ref v (2) ref Internal coefficients Test modality Reference modality compare compare The choice of one of these methods is referred as the modality of comparison. In the following we mainly use the comparison on internal representation. The main interest of proceeding that way is that the comparison is the same, regardless of what the test and reference modalities are. Choosing the modality of comparison is not sufficient to fully define the system: in order to be able to chose a best matching reference example, the system needs a metric to perform the comparison. Several alternative metric could be chosen to perform the comparison. More importantly, the choice of the metric and its efficiency is highly dependant on the modality of comparison, as shown by the following results. We considered the following common metrics. • Euclidean distance • Kullback-Leibler or I-divergence The Kullback-Leibler and I-divergences are introduced by eq. (2.8). In the following we denote its usage as KullbackLeibler (KL), although when the data is not normalized we use the I-devergence. By default the divergence from the test example to a reference example is computed; however since it is not symmetrical, we also experimented with the reversed divergence (that is to say the divergence from a reference example to the test example) and a symmetrized divergence obtained as: Dsym(x∥y) = 1 2  D(x∥y) + D(y∥x)  . None of the three approaches was systematically better in our experimentation. • Cosine similarity5 The cosine similarity is no a metric but can be used to compare vectors; it ranges between −1 and 1 and the biggest the value is, the most similar the vectors are. It is defined for two vectors x and y ∈ R d , as: cosine similarity(x, y) = x · y ∥x∥∥y∥ Other choices are possible. In our experiments, many modalities are represented by histograms, or concatenation of histograms, that are of high dimension. In these modalities the Euclidean norm is not necessary meaningful, this is why we use other measures of similarity such as the I-divergence and the cosine similarity. In the following, the system is evaluated on its recognition success rate. It is defined as the proportion of correct recognition of the system; a recognition is correct when the system choses a reference example matching semantic concept from the test 5http://en.wikipedia.org/wiki/Cosine_similarity106 CHAPTER 6. MULTIMODAL LEARNING Modality Success rate Test Reference Comparison KL Euclidean Cosine Sound Motion Internal 0.608 0.612 0.646 Motion 0.552 0.379 0.444 Sound 0.238 0.126 0.208 Motion Sound Internal 0.610 0.704 0.830 Sound 0.106 0.090 0.186 Motion 0.676 0.642 0.749 Table 6.2: Success rates of recognition of the right reference example from a test example. The values are given for many choices of the reference test and comparison modalities and various measures of similarity. The results are obtained by averaging on a ten fold cross-validation, baseline random is in that case 0.11. example. In the following the system is always presented with one reference example per class. In the following experiments we consider 10 semantic classes; when not specified otherwise, we use a default value of k = 50 as the number of atoms for the NMF algorithm with 50 iterations, although a number of 10 is generally already close to convergence. Motion and spoken utterances Table 6.2 compares the influence of the modality of comparison and metric on the classification success. These result show for example that the sound modality, mainly because of its very high dimension, is not a good choice for the comparison, specially when the comparison is performed with the Euclidean metric. Indeed the choice of the metric to use is highly dependant on the nature of the data in the modality; therefore, using the internal representation is a way to only chose one metric. The results from table 6.2 demonstrate that the system is capable of learning aspects of the semantic associations. If the system is trained on a dataset where no semantic semantic association exists between the two modalities (such a dataset can be obtained by choosing a random motion and a random utterance for each demonstration), it generally scores around 0.116 . Table 6.3 presents very similar results in the case were symbolic labels are included in the training data. This is done similarly to the experiments from section 3.3 and Mangin and Oudeyer (2012a): the label of each example is transformed to a vector of 10 binary values with zeros everywhere except for a one at the index corresponding to the label. The binary vector is concatenated to the vector representing the example. This setup is equivalent to adding a third modality, which contains unambiguous symbols, in order to improve the learning. The symbols are said to be unambiguous in comparison to utterances that contains several sounds where only some sequences of specific sounds form words, and generally only one word per sentence is relevant. The results from table 6.3 illustrate the fact that the system does not clearly takes 6This is not 0.1 because the distribution of sound examples from the Caregiver dataset is not exactly uniform.6.6. EXPERIMENTS 107 Modality Success rate Test Reference Comparison KL Euclidean Cosine Sound Motion Internal 0.387 0.699 0.721 Motion 0.543 0.261 0.424 Sound 0.136 0.089 0.131 Motion Sound Internal 0.573 0.620 0.702 Sound 0.114 0.090 0.122 Motion 0.519 0.469 0.552 Table 6.3: There is no significant improvement of the recognition rate when unambiguous symbols are added to the training data. The table represents the same success rates as previously (see table 6.2) but with a learner that observed symbolic labels representing the semantic classes during training. The results are obtained by averaging on a ten fold cross-validation, baseline random is in that case 0.11. advantage of this additional information. An interpretation of these results is that the system is already capable of dealing with the ambiguity and is not helped by such additional symbolic information. However the relevance of such comments is limited to the current algorithm and its implementation. Images and sound: comparison of the image representations In this section we perform similar experiments with the image and sound modalities. In order to get more meaningful results, the experiments are run several times for various combinations of train, test examples, and reference examples. The latter being always taken outside the two previous sets. Figure 6.4 presents results each using a different subset of image descriptors. For each of them, results are given both for the I → S and S → I settings. The results indicate that on the dataset, the color and color-pairs representations work best. It also demonstrates that the system is rather robust to adding information: in the results, the concatenation of several representations generally behaves nearly as well as the best of the representations, taken alone. Other modalities In this section we present similar results using various combinations of the motion, sound, and image modalities. Results are presented together with box plots corresponding to 20 repetitions of the experiment with random label associations, test set, train set, and reference examples. For the image modality, the color descriptors (see section 6.5.3) are used, that give the best results, as illustrated in previous section and fig. 6.4. More precisely several setup are presented, including learning from motion and sound, as well as from image and sound, as previously, but also learning from motion and image, and finally learning from the three modalities at the same time. For each of these choices of learning modalities, several setup are possible for the test phase, specially when the three modalities are present during training: these include testing108 CHAPTER 6. MULTIMODAL LEARNING 0.0 0.2 0.4 0.6 0.8 1.0 Cross-modal association score SURF color SURF-pairs color-pairs color-triplets SURF, color SURF-pairs, color-pairs SURF-pairs, color-triplets SURF, color, SURF-pairs, color-pairs, color-triplets image → sound sound → image Figure 6.4: Box plot of classification success rates for various image features in the experiments I → S and S → I. Each plot corresponds to the use of a subset of image features, each plot contains two boxes representing the average success as well as quantiles and extreme values through cross-validation. The features used for each experiment are presented on top of the figure. The random success rate are around 0.1. on the recognition of one modality from another (for example I → S) but also from two modalities to another (for example I, M → S), or conversely one modality to two (as in M, S → I). Figure 6.6 compares various one modality to one modality setups for the case where only the two modalities that are used for testing are present in the training and the case where an additional modality was also present during testing. The results demonstrate that the system is capable of learning the semantic concepts event when more than two modalities are present. There is no significant difference between the cases of two and three modalities: the system neither benefit noticeably from the third modality nor does it suffer from the increased dimensionality of the data. However, since the number of atoms k is fixed, the results could come from the fact that when the system is trained on three modalities, the dimension of the dictionary becomes insufficient to encode non-meaningful aspects of the three modalities. Therefore fig. 6.6 present the same experiment for various values of k in order to interpret more precisely the previous result. The comparison confirms the fact that the system mainly behaves similarly with two or three modalities.6.6. EXPERIMENTS 109 0.0 0.2 0.4 0.6 0.8 1.0 Cross-modal association score image, motion motion, sound image, sound motion, sound, image motion → sound motion → image sound → motion sound → image image → motion image → sound Figure 6.5: Box plot of classification success rates for various experiments where two or three modalities are used for training. Each plot corresponds to the use of a subset of modalities during training: the first three plots use two modalities and the last one use three modalities. Each plot contains boxes representing the average success as well as quantiles and extreme values through cross-validation for various testing setups, using only two modalities. There are only two testing setups when only two modalities are used for training, and six when three modalities are used for training. Figure 6.7 present the results on many possible test setups int the case where all modalities are present during training. The results demonstrate that the system is capable of using information contained in more than one modality in the test or reference example. Although the results are slightly better when using more modalities as input (as in M,I → S in comparison to M → S or I → S), the improvement in performance is not really significant in the experiment. Regular classification with the symbolic modality This section leaves the non-symbolic setup considered previously, in order to compare properties of the system described above with results obtained in previous works, such as the one of Ngiam et al. (2011). Ngiam et al. (2011) present a learner that is trained on multimodal examples of phonemes, either perceived through their acoustic manifestation or through the motions of the lips that pronounce them. In their experiment they show that the learner can benefit the observation of several modalities and improve its recognition110 CHAPTER 6. MULTIMODAL LEARNING 0 50 100 150 200 k 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 Cross-modal association score Cosine image → sound motion → image motion → sound image → motion sound → motion sound → image Trained on two modalities. Trained on all three modalities. Figure 6.6: With both two (full lines) and three (dashed) modalities during training, the classification success rates are similar and good for high enough value of the number of atoms k. The plots demonstrate that the success rate is quite stable above a minimum value of k. success in comparison to the case where only one modality is observed. We consider a regular classification setup, similar to the one presented in section 3.3 but also in Mangin and Oudeyer (2012a), Driesen et al. (2012). More precisely we introduce a symbolic modality represented by a binary vector as already explained in previous section and in section 3.3. The system is trained by observing examples both in the symbolic modality and in one or several other modalities. Then results are compared between various testing setups to explore the ability of the learner to improve its classification performance in the case where several modalities are observed. Such an experiment can be described as a classification task with multimodal input unified through sensor fusion. Table 6.4 present the results for such an experiment for the sound and motion modalities. The symbolic modality is denoted as L. Interestingly training with the two modalities (sound and motion) does not significantly change the performance of the learner, and that when tested on sound, motion or both. In that case the benefit of having two non-symbolic modalities is not an increase in performance, but rather that the same learner can use either acoustic perception or motion perception to classify an example.6.6. EXPERIMENTS 111 0.0 0.2 0.4 0.6 0.8 1.0 Cross-modal association score motion, sound, image motion → sound motion → image sound → motion sound → image image → motion image → sound sound, image → motion motion, image → sound motion, sound → image Figure 6.7: The system is capable of relating information from many modalities to one. There is however no substantial improvement in performance from the use of two modalities as input for the recognition. The figure presents box plots of classification success rates for various experiments where three modalities are used for training. There are boxes representing the average success as well as quantiles and extreme values through cross-validation for various testing setups. 6.6.2 Learning words in sentences The previous experiments demonstrate that the artificial learner studied in this chapter is capable of learning the semantic connection between utterances and the objects or motions they describe. The meaning of the sentences is modelled in our experiment by the presence of a keyword; more precisely the association between sentences and images of objects or motions are based on the presence of keywords in the utterances. However the learner is not aware of the fact that all the meaning of the sentence is actually localized in one word; instead it only exploits crosssituational learning to discover relations between modalities. The task solved by the learner actually only involve holistic understanding and classification of the sentences. Therefore it is not completely clear what information the learner actually exploits in the sentence and whether the learner discovers word-like units from the acoustic stream. Indeed the previous experiments only demonstrate that the learner achieves teleological understanding of the sentences; however the question remains to know if it starts to understand compositionally the sentences. We further explore this question in the experiment presented in this section. Actually the grammar used to generate the utterances, as described quickly by Altosaar et al. (2008) and in more details by Driesen (2012, chap. 2), introduces112 CHAPTER 6. MULTIMODAL LEARNING Training Testing Success rates S + L S → L 0.916 ± 0.034 M + L M → L 0.906 ± 0.052 S + M + L S → L 0.896 ± 0.043 S + M + L M → L 0.910 ± 0.054 S + M + L S + M → L 0.917 ± 0.055 Table 6.4: Success rate for the label recognition experiment. In this experiment an additional modality containing labels, L, is considered. The results are computed on average for a cross-validation of the train and test sets; standard deviations are also given. additional structure. For example the utterance: ‘Now mummy is losing her patience.’, which meaning is related to the word ‘mummy’ also contains the pronoun ‘her’ which makes it more likely that the sentence is about a feminine keyword (considering that the sentences are quite short). Furthermore it appears that the expression ‘losing her patience’ is always used in the dataset in the aforementioned sentence. Therefore the expression is also a relevant cue of the presence of the keyword ‘mummy’, although the keyword is also used in many other sentences. That example shows that it is not completely clear what cues the learner is using to recognize the meaning of sentences, and whether this cues are localized, as words, or unlocalized elements. In order to explore this question, another experiment was designed that uses sliding windows taken from a video-like stream composed as explained in next section. In that experiment we take a closer look to the recognition along time in the utterance of each of the semantic concept. It is somehow an extension to the multimodal setup of the experiment presented by Stouten et al. (2008, 4.C). Sliding windows We consider simulated video streams, generated in the following way: acoustic records of utterances are concatenated and images are sequenced at a fixed frame rate such that the semantic concept associated to the image is the same as the one of the utterance at the starting time of the image. This construction simulates the setting where a caregiver shows objects to a learner and at the same time pronounces a sentence that describes the object. In order to build the videos, utterances from the Caregiver dataset are concatenated in a random order. Then pictures are chosen from the dataset presented in previous section, in order to form a sequence of frames that verifies two conditions. First the sequence has a fixed frame rate close to the one used for the capture of the pictures. Also the pictures are chosen such that they represent the object corresponding to the subject of the current sentence. Actually the frames having a fixed duration they may start during one utterance and end during another. This property actually introduces additional ambiguity in the data, since a sentence may start while a different object than the one described in the sentence is observed. The learning algorithm does not directly operate on the sound and frame streams that compose the video. Instead sliding windows of given length are extracted from the video. The sliding windows extraction process actually takes two parameters:6.6. EXPERIMENTS 113 0 t Sentence 1 Sentence 2 Window 1 Window 2 Window 3 Figure 6.8: Illustration of the process used to generate video data and split into sliding windows. the width of the windows and the shift between two windows. The latter is often expressed as a fraction of the former. Once a sliding window has been extracted, it is represented using similar features than regular sound and pictures. For the acoustic part, the subsequence of sound corresponding to the time window is extracted and converted to the HAC representation using exactly the same process as previously. Regarding the visual part, an histogram representation is first extracted for each frame intersecting with the time window. Then the representations of these frames are mixed using a weighted averaged with weights proportional to the duration of the intersection between the frame and the time window of interest. The length of the sliding windows is typically between 0.05 s and 1 s, therefore between the length of a phoneme and a short sentence. One important aspect of this experimental setting is that for windows of small length, with a sliding amount of the same magnitude than the window length, one word or less is contained in the acoustic stream from the window: thus many windows contain only a part of the keyword or even do not intersect at all with the keyword. Finally many sliding windows are actually across the utterance boundaries and thus are associated with a mixture of the representation of several objects. These elements make the learning in such a context more ambiguous and more noisy since a lot of the sliding window do not contain meaningful associations. Results The behavior of the recognition of the system on sliding windows taken inside utterances is very interesting on a qualitative point of view. In the following, acoustic sliding windows are computed on utterances outside the training set and the system is evaluated on the value of similarity it returns between each acoustic sliding window and an image. The results of this experience, as presented in fig. 6.9 provide a better insight of which parts of the utterances are more strongly associated with the underlying semantic concepts. Actually the results show that the recognition of114 CHAPTER 6. MULTIMODAL LEARNING the object are often localized in the sentence around the temporal occurrence of the keyword. Figure 6.9: Examples of similarity to images around a time window sliding through the utterance. The similarity is represented at the time index of the beginning of each window. Interestingly this example demonstrates an association between the pronoun ‘her’ and the concept ‘mummy’, since ‘her’ is only used as a synonymous of ‘mummy’ in the set of utterances. The results also illustrate the fact that in some sentences, as the example ‘Now mummy is losing her patience’, the keyword is not the only part of the sentence that is meaningful regarding the semantic concept, but other elements such as the expression ‘is losing her patience’ or the pronoun ‘her’ are also associated to the semantic concept. Figure 6.9 illustrate this effect. 6.6.3 Emergence of concepts In previous sections we evaluated the learner on concrete tasks that emphasis its ability to relate information from one modality to another. A natural question that follows is whether the learner develops an internal representation of the semantic concepts from the data, although it does not observe the symbolic information. The question is actually non-trivial since it is not immediate to interpret the internal representation that the system builds, that is to say, the role of the various components of the dictionary matrix. However some insight can be gained that suggests that at least some components are more specialized into some of the semantic classes. In order to investigate that aspect we quantified the mutual information between the semantic concepts and the coefficients of the internal representations of samples6.6. EXPERIMENTS 115 featuring the concepts. For each semantic concept l and sample i we consider the random variables Xl such that Xi l = 1 if and only if the concept l appears in sample i. For each dimension j of the internal representation and each sample i we define the random variable Yj = h i j . We then assume that (Xi l )i are independent and identically distributed, as well as the (Y i j )i . In the following we quantify the dependency between these two variables by looking at the mutual information between them. In information theory, the mutual information I is an information theoretic measure defined for two random variables X and Y as “the relative entropy [or Kullback-Leibler divergence] between the joint distribution [p(x, y)] and the product distribution p(x)p(y)” by Cover and Thomas (1991). I(X; Y ) = DKL (p(x, y)∥p(x)p(y)) The Xl variables takes binary values but the Yj are continuous. Therefore we use a discrete approximation of the values of the coefficients h with 10 bins in order to be able to compute the mutual information by estimating the probability distributions p(Xl), p(Yj ), and p(Xl , Yj ) by using the samples for 1 ≤ i ≤ N. From this process we obtain a value I(Xl ; Yj ) for each pair (l, j) that quantifies how much information the coefficient j captures from the concept l. Figure 6.10: Illustration of the specialisation of some components with respect to some semantic labels. The figure represents the mutual information between (vertically) semantic classes (that are not observed by the learner) and (horizontally) each internal coefficient used by the learner to represent pairs of motion demonstration and acoustic descriptions from the training set. A value of k = 15 was used in this experiment. Figure 6.10 represents, for each semantic class and each coefficient of the internal representation, the mutual information between the belonging of examples to that116 CHAPTER 6. MULTIMODAL LEARNING class and the value of a given coefficient of the internal representations of these examples. To emphasis the specialisation of some internal coefficients we re-ordered internal coefficients so that classes and coefficients that have high mutual information are aligned. More precisely, the best alignment was computed by a Kuhn-Munkres algorithm and we plotted first the coefficients that are highly associated to one class and then the one that are less meaningful. The figure does not display a perfect one to one relationship between labels and coefficients; however some coefficients are highly specialized, the information about other labels is spread over several coefficients, and some information is not clearly localized. 6.7 Conclusion This chapter presents a truly multimodal learning experience in the sense that a learner is trained from several subsymbolic modalities and demonstrates a classification behavior similar to the one that would be expected to a young child. More precisely it is shown that the result can be obtained from the auto-organization of the multimodal perception driven by the compression mechanism on which nonnegative matrix factorization is based. These experiments demonstrate the effective exploitation by the learner of the cross-situational information from the data. The behavior of the learner is explored on several setups such as learning from three modalities or with a symbolic modality. It is also explored whether, when it is used as a regular classifier, additional modalities during training and testing improve the results (as in Ngiam et al., 2011). It is also shown that the system can be implemented, using sliding time windows, in a more realistic setting where utterances do not need to be segmented beforehand. This setting demonstrates the robustness of the system to demonstrations that are not meaningful, that is that do not feature the cross-situational semantic association between modalities. Furthermore the setting is also used to gain better insight on the temporal localization of the learnt concept among sentence. It is illustrated that the meaning of sentences, regarding the semantic objects, is localized mainly around keywords but also around other meaningful grammatical elements that where in the training set associated with the concepts. Finally the experiment show that the system not only learns semantic associations between words, visual objects, and gestures, but also that a representation of the semantic classes, although never observed directly, emerges in the system’s representation. The learner presented in this chapter specifically targets and is tested on the crosssituational learning setup. Although cross-situational information is not the only one that might be involved in the learning of multimodal concepts. Indeed children have been shown to rely on other important elements in the process of word acquisition. For example, Samuelson et al. (2011) have shown that children might rely on spatial localization of objects and words to relate words to their meanings. Belpaeme and Morse (2012) provided a computational model to compare cross-situational learning to social learning and shown that the latter outperforms the former. The interaction of the learner with the caregiver or other agents is indeed an important aspect of word learning. Actually the word learning process used in the Talking heads experiment (Steels, 1999) mainly rely on the interaction between the agents. Finally Markman (1990), Landau et al. (1998) details various aspect of conceptual thinking that seems6.7. CONCLUSION 117 to play an important role learning words by using additional heuristics such as the whole object assumption, taxonomic assumption, or mutual exclusivity. With regard to the question of the precedence of teleological or holistic understanding over compositional understanding as discussed by Wrede et al. (2012), the experiments presented in this chapter do not assume that the sentences and more generally the semantic concepts has to be understood first in compositional manner. Indeed it instead focuses more on global understanding: the learner we present does not include mechanism to segment the perception in parts and then try to relate these parts from one modality to the other, as in previous works from Roy (1999), Roy and Pentland (2002), Yu and Ballard (2004, 2007). Instead the system learns a representation of whole sentences and the main task demonstrates that the representation is efficient. We further refine the learning process to demonstrate that representation learnt by the system actually focuses on recognizing the keywords that concentrate the crossmodal information. Therefore aspects of compositional understanding also emerge from the learning process. The compositional aspect of the semantics presented in our experiment is actually quite limited; in order to investigate more these aspects, as well as the question of grammar learning, experiments including a more complex and structure semantics are required. One such experiment results from the combination of several concepts in each samples: this corresponds to the semantics used in the experiment from chapter 3 but presented with real sentences instead of symbolic labels. Finally such an experiment would also explore aspects of the similarities between the grammar of language the grammar of motions as described by Roy and Arbib (2005). As already mentioned, the learner presented in this chapter can be seen as an agent from the Talking heads experiment from Steels (1999), Steels and Kaplan (2002). The main difference between our implementation and the original one is that our agent uses cross-situational information instead of feedback from the other agent. As studied by Belpaeme and Morse (2012) these two approaches are both valid to explain the learning of words and might be used complementary. For example using cross-situational information to exploit language exposure when no interaction is available. The system we present in this chapter features other important differences with the original talking head: one is that the algorithm does not rely on a preliminary process of word segmentation and concept segmentation ; this opens new perspectives on the study of the interaction between the formation of concepts and the formation of words as acoustic units instead of symbolic entities. From a technical point of view, the algorithm and setup presented above could however be improved in many ways. One direction for further work is the development of algorithm more adapted to the setup. Indeed the NMF algorithm is built to take independent samples as input and therefore information must be sliced into such samples in order to be learned by the system. On way to slice the data is to detect utterance boundaries or manually annotate them. Another is to use sliding windows of fixed or varying lengths. However, other algorithms could be used that directly model the temporal dynamics of the signal. Such algorithms could be derived from existing models, as hidden Markov models, or more recent work by F´evotte et al. (2013) that extends NMF. The NMF algorithm used in these experiment implements the optimization of one specific criterion, namely reconstruction error under the constraint of the factorization. Many other properties of the learnt representation could be used to improve the118 CHAPTER 6. MULTIMODAL LEARNING results. For example, sparsity of the representation have been shown to provide more meaningful results in many application fields (as Hoyer, 2002, Aharon et al., 2005, Lee et al., 2006, Li et al., 2010). Interestingly other metrics have been explicitly developed in the past that target multimodal learning. Such examples are given by extensions of independent component analysis to multimodal settings by Akaho et al. (1999), Karhunen and Ukkonen (2007). Actually these technical aspects introduce the deeper question of the mechanism that drive the learning of multimodal concepts: the experiment we present demonstrate that an algorithm based on a compression mechanism can capture semantic information by exploiting the cross-situational information from the data. Many other heuristics could eventually be used to capture that information. Would they behave similarly? Would they enable the extraction of other information than the cross-situational one? Several important questions are actually raised by these possibilities, that might help to model more precisely what it means to achieve multimodal learning.Chapter 7 Discussion and perspectives In this thesis we explore the problem of learning lexicons of primitive elements from perception and their association across modalities. This study involves the question of the definition of ‘simple’, in particular with respect to what complex is, more specifically through mechanisms that enable the discovery or emergence of such simple elements from perception, and how these mechanisms can handle the ambiguity often inherent to the definition of simple elements. It is explained in chapter 1 that the notion of ‘motion primitive’ is far from being straight-forward and unique. Then, the example of dance motions is given in which choreographies are composed of parts combined simultaneously. We have thus explored the question of learning simple elements from observation of complex motions, where the simple elements are active at the same time. Learning this kind of combination of motion primitives is actually an instance of the source separation problem, in the fields of imitation learning and human behavior understanding. The approach developed in chapter 3 therefore uses nonnegative matrix factorization, a technique commonly used on source separation problems (for example for sound in Lef`evre et al., 2011). A lot of work related to learning motion primitives actually focus on learning sequences of motion primitives. However the experiments presented in this thesis demonstrates that it is also possible to decompose motions in simpler parts that are active simultaneously. This question is actually orthogonal to the sequence decomposition but less addressed in the literature. In this work we explained the ambiguity issues deriving from this problem and demonstrate that NMF can handle such ambiguity, as appearing in the motion dataset, when it is coupled with weak supervision in the form of linguistic data. Chapter 4 explores the use of similar ideas to decompose observations of humans solving complex tasks into a dictionary of simple tasks. In that chapter, the novel idea is to consider the combinatorial properties of human actions not in the policy space, that is the space of actions, but in the task space, that is the space of objectives the actions are pursuing. Chapter 4 demonstrates on synthetic problems that it is possible to exploit the combinatorial structure of tasks modelled by objective functions from the observation of artificial agents solving these tasks. Interestingly the new matrix factorization algorithm derived in these experiments are based on mechanism very similar to the ones behind nonnegative matrix factorization algorithm. 119120 CHAPTER 7. DISCUSSION AND PERSPECTIVES Chapter 5 reviews mechanisms that can be used to learn primitive elements from sound. More precisely we introduce an unsupervised algorithm based on clustering and bag-of-words representation, that can be used to learn primitive elements. On top of these primitive elements, interpreted as phonemes, words can be learnt in a supervised manner, using a voting technique based on TF-IDF score. We also detail how nonnegative matrix factorization have been used on top of similar basic primitive elements in an unsupervised setup by Stouten et al. (2008) and in a supervised manner by ten Bosch et al. (2008), Driesen et al. (2012) to also achieve word learning. Finally, in chapter 6 we explain how the mechanisms used for learning words from acoustic observation of utterances or gestures from observation of motions can be extended to a multimodal learning setting. More precisely we demonstrate that a NMF based algorithm is capable of learning simultaneously primitive elements in a multimodal setting without any symbolic input nor explicit models of words and meanings. Actually a learner is shown to yield the same classification behavior that would be expected from a child after being exposed only to subsymbolic data. The learner presented in chapter 6 exploits cross-situational learning to relate words to gestures and/or visual objects. The presented learner is further analysed in order to show that the semantic relations it learns between modalities make it able to localize the information contained by keywords among utterances. The representation of multimodal data learnt with NMF is also shown to yield, to some extent, a specialisation of some of the dimensions to the recognition of semantic concepts from the training data. In these experiments the semantic concepts that the system learns are the result of a convention, that maps keywords in utterances to objects in visual scenes and gestures demonstrated through a motion acquisition system. The experiment therefore demonstrates to what extent the mechanisms of nonnegative matrix factorization can recover the correlations that characterize these semantic concepts, when embodied in a cross-situational learning setup. These results comfort those of Roy and Pentland (2002), Smith and Yu (2008); we however use a setup in which a single algorithm treats all modalities in a unified way. Furthermore the setup we present starts from a representation that does not involve explicit segmentation and static phoneme recognition. Finally chapter 6 discuss how other cues might be included in similar synthetic learners, such as spatial localization of objects (see Samuelson et al., 2011), interaction with the caregiver or other agents (see Belpaeme and Morse, 2012), or conceptual thinking (see Markman, 1990, Landau et al., 1998). The contribution of this thesis can be summarized as using matrix factorization techniques to model the emergence and acquisition of primitive elements in the perception of motions, complex behaviors, objects vision, and spoken language. First this thesis illustrates the similarity of the problem in various fields of perception by using the same family of algorithm in all of them. It then shifts to the specific study of the language grounding problem and more generally the question of multimodal learning. More particularly multimodal learning is not only a way of solving the same problem in several modalities at the same time, but to make less ambiguous, in the multimodal setting, several problems that, taken alone, are ambiguous. Regarding the three questions that were asked in the introduction of this thesis, this works provides the following answers and new questions.121 How can the intuition about simple and complex be made explicit and implemented on a robot or artificial system? For developmental roboticists an appealing aspect of the concept of motion primitives is that they can implement the gradual growing of complexity observed for example in tasks executed by children. This corresponds to intuitions such as: mastering grasping and placing of objects is a prerequisite to being able to assemble cubes into towers. However an explicit representation of motion primitives is not required to explain such increase of complexity; also, as explained previously, it is very difficult to formulate a definition of these motion primitives: the intuition of motion decomposition may lead to many different approaches, each of which is not necessarily useful or even well defined. An alternative is proposed that identifies and represent the combinatorial properties of motion skills without explicit definition of what the basic motions are. The work presented in chapter 3 is actually introducing three important ideas on that subject, that are then followed in different directions. First, many work have been done to represent motion primitives and their combination in sequence. Thus we introduced similar work for the simultaneous combination, using the NMF algorithm. Then, although the NMF algorithm is based on the linear combination of elements from a dictionary into observed examples, it is not claimed that these atoms corresponds as motion primitives as perceived by humans. Actually our preliminary experiments following that idea show that it is often not the case, one reason for that being the intrinsic ambiguity or indeterminacy of the decomposition problem. In other words, the system learns and represents motions in a form that implements simultaneous combination, but do not presuppose the ability to segment or separate basic motions, as perceived by humans amongst the data. Indeed, building motion representations that are compatible with some notion of combination is a distinct approach from trying to first represent parts of motions and then implement their combination. Both enable the representation of composite motions but the former does not involve the pre-requisite of motion segmentation. As discussed in next paragraph the former approach is more compatible with the idea that holistic understanding may emerge before compositional understanding (see Wrede et al., 2012). Finally, in order to evaluate the system, we chose to test its ability to represent similar combinations than a human does, at the behavioral level. For that, we use a tasks based on a communication channel modelled by the symbols. In other words the ambiguity is only addressed by the addition of a linguistic channel that models social interaction and provides an input for social conventions. The other experiments explore similar ideas. For example, the experiment on tasks decomposition gives a visual example of the multiplicity of the solution and the non-explicit representation of tasks that where used to generate the examples. However the learning of the structure is demonstrated at the behavior level by the score on imitating the demonstrator task. This thesis however does not treat other combinatorial properties that are central both for motion or language. Examples of such combinations have already been discussed in section 3.1.1 and includes time sequences and hierarchies of primitives. As these have often been explored individually in previous works, the main challenge is to be able to combine several forms of combinations, which requires the development of representations and algorithms that implement them as well as new experimental setup. For example on possibility is relax the hypothesis of sample independence in NMF to represent the temporal dynamics of the data, following work from F´evotte et al. (2013).122 CHAPTER 7. DISCUSSION AND PERSPECTIVES How can primitive elements emerge or be discovered through interaction of the agent with its physical and social environment? The experiments developed in this thesis are based on matrix factorization or clustering algorithms. These algorithms can all be interpreted as the minimization of a form of reconstruction error of the perceived signal, under the constraint of compression. That mechanism is the one that yields the emergence of primitive elements, at the behavioral level. While this mechanism is the only one studied through the experiments from this thesis, many other candidates exist. First structural constraints can be added to the compression performed in the algorithms. For example, sparsity inducing constraints were already combined with matrix factorization approaches (Hoyer, 2002, 2004, Mairal et al., 2009, Lee et al., 2006). Interestingly Jenatton et al. (2010) also achieve both sparsity and hierarchy of dictionary elements. The work on deep belief nets achieve experiments that are conceptually similar to the one presented here, both in the field of motion composition (see Taylor et al., 2006, Taylor and Hinton, 2009b,a), and multimodal learning (Ngiam et al., 2011). However the mechanisms behind the learning of such representations are not exactly the same as the one underlined matrix factorization. Other metrics that have been explicitly developed to target multimodal learning were already given as examples in previous chapter, such as extensions of independent component analysis to multimodal settings by Akaho et al. (1999), Karhunen and Ukkonen (2007). The comparison of these technical approaches with the one taken in this work on a unique multimodal setup actually constitutes an interesting direction for future research. We explain in chapter 6 that an important novelty of our approach in comparison to previous work on similar questions is that it does not presuppose the decomposition of perception in concepts and words to the learning of their relation. More precisely we present a system that learns to relate words to concepts without explicit segmentation of acoustic input into phonemes or words, nor images into relevant objects. It thus demonstrate that a task of language grounding can be solved in holistic way, thus featuring teleological understanding without requiring compositional understanding. Indeed in previous work from Yu and Ballard (2004, 2007), Roy (1999), Roy and Pentland (2002) but also in the Talking head experiment from Steels (1999), Steels and Kaplan (2002) the algorithm include explicit mechanism to segment the sensor input into either phonemes and then words or concepts. Even if the segmentation is in some cases learnt by the system, these architecture encode compositional understanding as a prerequisite to language grounding and more generally multimodal learning. In our work we provide an alternative which open new perspectives on the kind of questions introduced by Wrede et al. (2012). It is important to notice that an important shortcoming of our approach with respect to the study of emergence is that it is not incremental. However there exist online versions of the NMF algorithms on which we base our experiments that can be used to study the framework presented in this thesis in a more incremental manner. What mechanisms can overcome the intrinsic ambiguity and indeterminacy that is characteristic of many approaches regarding the learning and emergence of these primitive elements? In chapter 3 the mechanisms used to learn motion representation do not alone solve the indeterminacy of decomposition. However we show that adding weak supervision to the perception through a linguistic channel, symbolic in that experiment, resolve the ambiguity at the behavioral level. Chapter 6 actually demonstrates the same idea from real multimodal perception;123 the learner can then exploit cross-situational and cross-modal information to achieve word grounding or the learning of other kinds of multimodal concepts. Many other mechanisms can be implemented at the data collection level and the way to represent it. The multimodal experiment represents data in such a way that makes learning possible from cross-situational information; however, as mentioned previously, other sources of information are available such as localization of objects or interactions with the caregiver. Furthermore, in the experiments in this thesis we use data coming from three distinct dataset to simulate multimodal perception. This constitute an important limitation of this work which hides important questions. For example whether the object is shown by the caregiver or the learning system is an important aspect that may greatly change the structure of the collected visual data. Other questions include the differences between infant and adult directed speech as discussed by Yurovsky et al. (2012), or the process of autonomous acquisition of data (see Gottlieb et al., 2013). This thesis presents the simultaneous combination of motion primitives as an important aspect of imitation learning and human behavior understanding. Following that idea, an experiment demonstrating such learning is performed, where symbolic linguistic input is used to relate the motion representations learned by the system to a human based representation. In chapter 6 the symbolic linguistic modality is replaced by a continuous acoustic input. However theses last experiments only study the learning of gestures demonstrated alone. An important extension of the work presented here is therefore to bring together multimodality from only continuous perception and fully ambiguous demonstrations: which means relating gestures that are observed combined in complex motions to words that are observed combined in complex sentences. Such an experiment actually is a very interesting first approach to the question of similarities between the combinatorial structure of words and motions, that is to say the grammar of language and the grammar of motions and actions. It would be even more interesting to relate that experience to the analysis and hypothesis from Roy and Arbib (2005). The experiments presented in this thesis are performed either on simple toys problems or on fixed datasets. It is therefore important, in order to consolidate the results, to experiment similar ideas both on more diverse and advanced datasets, and in more interactive setups. Indeed, while the issues addressed by this work are clearly grounded in developmental robotics, no real robotic experiment was performed in this thesis. This aspect actually corresponds to the fact that this work focusses specifically on a perception based point of view. We actually believe that many of these questions are also very relevant to action but the link is still to be made. Although chapter 4 introduces the ideas of task decomposition in a way that enables the generation of motions to solve new tasks, it is limited to simple toy problems and suffers from the weaknesses of the inverse reinforcement learning approach it is based on: the relative novelty of the field and the algorithmic cost that still makes it a challenge to reach the complexity of real robotic environment. Also, the algorithm we propose focuses on the problems of learning by imitation and human behavior understanding: a demonstrator is required to be able learn tasks; this leaves apart the important mechanisms for autonomous discovery of new motor skills and new goals. Other interesting questions emerge from the duality between goals or tasks and the skills that solve them. For example, is one of them explicitly represented and the other inferred or both represented simultaneously? Is the autonomous discovery of skills motor based or124 CHAPTER 7. DISCUSSION AND PERSPECTIVES task based? This question is for example related to the study of motor babbling and goal babbling by Baranes and Oudeyer (2013). Can the learning of primitive tasks model the emergence of affordances in perception? Regarding language learning, the work we present also focusses mainly on perception and word recognition. Extending this work to language production is also an interesting direction for future research, specially through the studies of the interactions between the learning of language perception and language production. Aspects of this interaction have already been studied by Serkhane et al. (2005), Moulin-Frier (2011).Appendix A Non-negative matrices and factorization A.1 Non-negative matrix theory This section summarizes some result from the Perron-Frobenius theory that are useful to study theoretical aspects of the non-negative matrices and factorization. Its purpose is to present main properties of these matrices, centered on PerronFrobenius theorem, that enables basic theoretical discussions. These elements are adapted from presentation given by Boyle, Meyer (2000). These references might be looked into for proofs and more detailed presentations of this theory. A.1.1 Base definitions and notations We only consider square matrices in this part. We call positive (resp. non-negative) a matrix whose coefficients are all positive (resp. non-negative), we use notations A > 0 for positivity and A ≥ 0 for non-negativity. We denote by σ(A) the set of all A’s eigenvalues. We call spectral radius, denoted ρ(A), the quantity defined as follows: ρ(A) = max λ∈σ(A) |λ| (A.1) We also denote by χA(X) the characteristic polynomial of A. Multiplicities The algebraic multiplicity of an eigenvalue refers to its multiplicity as root of the charateristic polynomial whereas geometric multiplicity refers to the dimension of the associated eigenspace. In general the algebraic multiplicity is greater or equal to the geometric multiplicity. When these two quantities are equal the eigenvalue is said to be semi-simple. When both are equal to 1, the eignevalue is said to be simple. 125126 APPENDIX A. NON-NEGATIVE MATRICES AND FACTORIZATION Two matrices A and B are said equivalent if and only if there exists an invertible matrix P such that B = P −1AP. A.1.2 Taxonomy of non-negative matrices Amongst all non-negative matrices, a few categories are of great importance regarding the Perron-Frobenius theory. These are positive, primitive and irreducible matrices. Definition (Primitivity). A square non-negative matrix is said to be primitive if and only if some power of it is positive i.e. ∃k ∈ N, Ak > 0 (A.2) i.e. ∃k ∈ N, ∀(i, j) ∈ [|1, n|] 2 , (A k )i,j > 0 (A.3) Definition (Irreducibility). A square non-negative matrix is said to be irreducible if and only if ∀(i, j) ∈ [|1, n|] 2 , ∃k ∈ N, (A k )i,j > 0 (A.4) Given a square non-negative matrix A let G(A) be the directed graph with n vertices and such that an array exists between vertex i and vertex j if and only if Ai,j > 0. Then for some k ∈ N, (Ak )i,j > 0 is equivalent to the existence of a path of length k between i and j in G(A). Definition (Period of a square non-negative matrix). The period of a square nonnegative matrix A, is the greatest common divisor of all length of loops in G(A). For an irreducible matrix A of period p, we define the relation: i ∼A j if and only if ∃k ∈ N, (A kp)i,j > 0 (A.5) Following this definition, i ∼A j if and only if p divides all path lengths between i and j in G(A). That this relation is an equivalence easily follows the irreducibility of A. Using the partition of [|1, n|] into equivalence classes for i ∼A j, we can re-order the columns of A, which makes it equivalent to B where: B =   0 A1 0 · · · 0 0 A2 · · · . . . . . . . . . . . . Ap 0 0 · · ·   (A.6) This form is referred as cyclic block form or Frobenius form. This formulations makes it easy to get the following results. Proposition 2. A is primitive if and only if A is irreducible of period 1. Proposition 3. Let A be an irreducible matrix of period p. Then Ap is equivalent to a block diagonal matrix which blocks are all primitive. Moreover all blocks have the same non-zero spectrum.A.1. NON-NEGATIVE MATRIX THEORY 127 Proposition 4. Let A be an irreducible matrix of period p and ξ a primitive p th root of unity. Then • A and ξA are similar, • if r is a root of the characteristic polynomial of A, with multiplicity α, then rξ is a also a root of A of multiplicity α. Theorem 4. Let A be an irreducible matrix of period p and D a diagonal block from Bp where B is a cyclic block form of A. Then, χA(X) = χD(Xp ). More precisely if ξ is a primitive p th root of unity and χD(X) =  k j=1  X − λ p j  , χA(X) = p i=1  k j=1  X − ξ iλj  . Those results enable to relate the spectrum of any irreducible matrix of period p to the spectrum of primitive matrices. This relation makes it possible to generalize some of the results for primitive matrices to irreducible matrices, as stated in Section A.1.3. A.1.3 Perron-Frobenius theorem Case of positive matrices Theorem 5 (Perron theorem). Let A be a positive matrix, then, (i) ρ(A) is a simple eigenvalue of A, (ii) there exists a unique unit norm positive eigenvector u, (iii) it is associated with ρ(A) and called the Perron vector of A, (iv) ρ(A) is the unique eigenvalue of A of norm ρ(A). Case of irreducible matrices When generalized to irreducible matrices the previous result takes the following form. Theorem 6 (Perron-Frobenius theorem). Let A be an irreducible matrix of period p, then, (i) ρ(A) is a simple eigenvalue of A, (ii) there exists a unique unit norm positive eigenvector u, (iii) it is associated with ρ(A) and called the Perron vector of A, (iv) A has exactly p eigenvalues of norm ρ(A), furthermore A is similar to e 2iπ p A and thus σ(A) is invariant by rotation of angle 2π p128 APPENDIX A. NON-NEGATIVE MATRICES AND FACTORIZATION Perron projection Previous results does not change when a matrix A is replaced by AT since all the considered properties are invariant by transposition. However the Perron vectors of A and AT are in general not the same. It is thus useful to distinguish between left (v > 0) and right (u > 0) Perron vectors of matrix A such that: Au = ρ(A)u and v T A = ρ(A)v T (A.7) Proposition 5. Let A be a primitive matrix with left and right Peron vectors v and u.  A ρ(A) n −→n→∞ uvT u T v This quantity is a projection onto the eigenspace associated to ρ(A), which is called Perron projection. Collatz-Willandt formula Proposition 6. Let A be an irreducible matrix and f(x) = min i∈[|1,n|], xi̸=0 [Ax]i xi , then ρ(A) = max x≤0, x̸=0 f(x). A.2 Ambiguity in the problem definition A.2.1 Generative model A geometric interpretation of the non-negative matrix factorization has been presented by Donoho and Stoden Donoho and Stodden (2003), it is based on the notion of simplicial cones and the following link to non-negative factorization. Definition (Simplicial cone). The simplicial cone generated by the vectors (wk)k∈[|1,K|] is defined as: ΓW =  K k=1 hk · wk : hk ≥ 0  (A.8) For a given factorization W ·H that generates exactly the data, W yields K generators such that all data vectors (xi)i∈[|1,N|] lie in the simplicial cone ΓW . The factorization of a non-negative matrix is thus equivalent to providing such a simplicial cone as a generative model of the data. It is however not true in general that, even if the data is generated filling a simplicial cone, there is uniqueness of such a model. In such a situation one would like to chose the simplest or the smallest fitting model. In some cases even defining such a simplicity is ambiguous. In the following we analyse separately various sources of ambiguity in the problem of finding a factorization: • ambiguity in the representation of simplicial cones,A.2. AMBIGUITY IN THE PROBLEM DEFINITION 129 • ambiguity in notions of simplest solution. • ambiguity from lack of data. Since the data is non-negative it lies in the positive orthant P which is the convex simplicial cone generated by the canonical basis vectors, the problem thus always admit P as a solution. Furthermore it also lies in Span (wi)i∈[|1,K|]  , and P ∩ Span(W) is also a solution. A.2.2 Representation of simplicial cones Definition (Extreme rays). An extreme ray of a convex cone Γ is a line Rx = {ax : a ≥ 0} such that x ∈ Γ\{0} and there is no x1 and x2, linearly independent such that x = x1 + x2. When the generators are linearly independent, the set of generators corresponds to the set of extreme ray, thus a convex simplicial cone is uniquely defined by its set of extreme rays. This shows that solving non-negative matrix factorization is equivalent to finding a set of extreme rays generating a simplicial cone containing the data. The set of rays is represented by a list of generators. Scaling of the generators and re-numbering of the rays does not change the found simplicial cone, which is another formulation of the invariance introduced in section 2.1.1. Definition (Primal simplicial cone). Given a set of points X and an integer r, a primal simplicial cone associated with r, X is a simplicial cone Γ such that X ⊂ Γ ⊂ P. The invariance by scaling and permutation is thus a representation invariance of the simplicial cone underlying the factorization. Dual formulation This formulation of the NMF problem can equivalently be made in the dual space (in terms of complex duality, see Boyd and Vandenberghe (2004)). Definition (Dual simplicial cone). Given a set of points Y and an integer r, a dual simplicial cone associated with r, Y is a simplicial cone Γ such that P ⊂ Γ ⊂ Y. Proposition 7. Every primal simplicial cone is the dual of a dual simplicial cone and reciprocally. A.2.3 First case: linearly independent generators We first consider the somehow simpler case in which the generators of X are linearly independent, which is a sufficient condition for these generators to be extreme rays of X .130 APPENDIX A. NON-NEGATIVE MATRICES AND FACTORIZATION However, if ΓX ∈ P ∩Span(X) where X = (xi)i∈[|1,r|] is such that ΓX ̸= P ∩Span(X), there are an infinity of simplicial cones Γ′ with r generators such that ΓX ⊂ Γ ′ ⊂ P (P ∩ Span(X) is one of them). The following lemma from Donoho and Stodden (2003), however limits the solution of such simplicial cones inclusion. Proposition 8. If Γ and G are convex cones such that Γ ⊂ G ⊂ Rn where Γ is a simplicial cone with r generators and Γ ∩ G contains exactly r extreme rays of G,  Rxi  i∈[|1,r|] , then: • the  Rxi  i∈[|1,r|] are extreme rays of Γ, • there is no simplicial cone Γ ′ with r generators such that Γ ′ = Γ ̸ and Γ ⊂ Γ ′ ⊂ G. So in general such a cone might be widened towards P and is thus not unique. However under some conditions the cone is already maximal, such a case happens under sufficient conditions given in Donoho and Stodden (2003). In that case the primal simplicial cone is unique and so is the solution to the NMF problem (still with invariance by dilatation and permutations). A.2.4 Second case: rk(W) < K This case arises even when all generators are extreme rays, for example in three dimensional space when the simplicial cone section (for example section by a plan orthogonal to first diagonal) is a convex polygon with more than three vertices. In that case two extreme points of view can be taken: • searching a simplicial cone minimal regarding inclusion, which in the 3D case means which section has minimal area, i.e. finding the convex hull of the section of the projection (in the conic sense) of the data on some plane, • searching a simplicial cone with the minimum number of generators, which leads to chose the rank of W as the number of generators, thus in our example choosing a cone too big since the whole first octant is chosen.Appendix B Datasets B.1 The Acorns Caregiver dataset The Caregiver dataset (Altosaar et al., 2008) provided by the ACORNS project, is composed of 1000 utterances containing 13 keywords, each spoken by 4 speakers in English adult directed speech; this makes a total of 4000 utterances. An example of sentences used in the dataset is Angus is lazy today. where the semantic tag/keyword is Angus. Examples of transcriptions from utterances from the dataset are given in table B.1. We take a bath To put it in the bath isn’t funny either The shoe is a symbol Now mummy is losing her patience Daddy comes closer Angus takes off her shoe Daddy never calls She sits on a nappy Now everybody is in the car Where is the nappy Table B.1: Transcriptions from ten random examples from the Acorns Caregiver dataset from Altosaar et al. (2008). Keywords are identified in bold font. B.2 The first choreography dataset The first choreography dataset contains choreography motions recorded through a kinect device. These motions have a combinatorial structure: from a given set of primitive dance motions, choreographies are constructed as simultaneous execution of some of these primitive motions. The data is publicly available at http://flowers.inria.fr/choreography_database.html. 131132 APPENDIX B. DATASETS Primitive dance motions are chosen from a total set of 48 motions and are spanned over one or two limbs, either the legs (for example walk, squat), left or right arm (for example wave hand, punch) or both arms (for example clap in hands, paddle). Complex choreographies are produced as the simultaneous demonstration of two or three of these primitive motion: either one for legs and one for both arm, or one for legs and one for each arm. Each example (or record) contained in the dataset consists in two elements: the motion data and labels identifying which primitive motions are combined to produce the choreography. The dataset actually contains three separate sets of examples: 1. primitive: in each example, only one primitive motion is demonstrated, the set of labels associated to each example is thus a singleton (326 examples). 2. mixed small: demonstrations of complex choreographies composed of primitive motions taken in a subset of 16 possible motions (137 examples). 3. mixed full: demonstrations of complex choreographies composed of primitive motions taken in all the possible motions (277 examples). B.2.1 Description of the data The data has been acquired through a kinect camera and the OpenNI drivers1 , which yields a stream of values of markers on the body. Each example from the dataset is associated to a sequence of 3D positions of each of the 24 markers. Thus for a sequence of length T, the example would corresponds to T ∗ 24 ∗ 3 values. The kinect device recognizes and provides positions of the following list of markers: head, neck, waist, left hip, left shoulder, left elbow, left hand, left knee, left foot, left collar, left wrist, left fingertip, left ankle, right hip, right shoulder, right elbow, right hand, right knee, right foot, right collar, right wrist, right hand, right fingertip, right ankle. These markers are however not tracked with the same accuracy and it might be better to filter to keep only a subset of these markers. In the experiments from chapter 3 we use: head, neck, left hip, left shoulder, left elbow, left hand, left knee, left foot, right hip, right shoulder, right elbow, right hand, right knee, right hand, right foot. B.3 The second choreography dataset The second choreography dataset contains choreography motions recorded through a kinect device. It contains a total of 1100 examples of 10 different gestures that are spanned over one or two limbs. The data is publicly available at http://flowers. inria.fr/choreo2. 1http://openni.orgB.3. THE SECOND CHOREOGRAPHY DATASET 133 Id Limb(s) Description 1 right arm hold horizontal 2 right arm hold vertical (down) 3 right arm hold vertical (up) 4 right arm from horizontal on side, bend over the head 5 right arm raise from horizontal to vertical 6 right arm lower from horizontal to vertical 7 right arm from horizontal side, bend in front of the torso 8 right arm from horizontal side, bent elbow to get vertical forearm toward up 9 right arm mimic punching 10 right arm hold horizontal and bring from side to front 11 right arm from horizontal side, bend elbow to get vertical forearm toward down 12 right arm from horizontal side, bring hand to shoulder (elbow moving vertically) 13 right arm hold horizontal and bring from right side to left side 14 right arm swing forearm downside with horizontal upper arm 15 right arm draw circles with arm extended on the right 16 right arm wave motion of the arm held, horizontal on the side 17 right arm wave hand (shoulder level) 18 right arm wave hand (over the head) 19 both arms clap hands (at varying positions) 20 both arms mimic paddling on the left 21 both arms mimic paddling on the right 22 both arms mimic pushing on ski sticks 23 legs un-squat 24 legs mimic walking 25 legs stay still 26 legs step on the right 27 legs step on the left 28 right leg raise and bend leg to form a flag (or ‘P’) shape 29 left leg raise and bend leg to form a flag (or ‘P’) shape 30 left arm hold horizontal 31 left arm hold vertical (down) 32 left arm hold vertical (up) 33 left arm from horizontal on side, bend over the head 34 left arm raise from horizontal to vertical 35 left arm lower from horizontal to vertical 36 left arm from horizontal side, bend in front of the torso 37 left arm from horizontal side, bent elbow to get vertical forearm toward up 38 left arm mimic punching 39 left arm hold horizontal and bring from side to front 40 left arm from horizontal side, bend elbow to get vertical forearm toward down 41 left arm from horizontal side, bring hand to shoulder (elbow moving vertically) 42 left arm hold horizontal and bring from left side to right side 43 left arm swing forearm downside with horizontal upper arm 44 left arm draw circles with arm extended on the left 45 left arm wave motion of the arm held, horizontal on the side 46 left arm wave hand (shoulder level) 47 left arm wave hand (over the head) Table B.2: List of gestures composing the motions of the first choreography dataset. The small dataset only uses the following subset of labels: 1, 5, 6, 10, 19, 20, 21, 22, 23, 24, 25, 28, 30, 38, 40, 43.134 APPENDIX B. DATASETS Id Limb(s) Description 1 both legs squat 2 both legs walk 3 right leg make a flag/P on right leg 4 both arms clap 5 both arms mimic paddling left 6 right arm mimic punching with right arm 7 right arm right arm horizontal goes from side to front 8 left arm horizontal left arm, forearm goes down to form a square angle 9 left arm make waves on left arm 10 left arm say hello with left arm Table B.3: List of gestures composing the motions of the second choreography dataset. B.3.1 Description of the data The data has been acquired through a kinect camera and the OpenNI drivers through its ROS2 interface, which yields a stream of values of markers on the body. Each example from the dataset is associated to a sequence of 3D positions of each of the 15 markers. Thus for a sequence of length T, the example would corresponds to T ∗ 15 ∗ 7 values. The 7 successive values for each marker are there 3D coordinates together with a representation of the rotation of the frame between previous and next segment. The rotation is encoded in quaternion representation as described on the ROS time frame page3 . The position of the following list of markers was recorded: head, neck, left hip, left hip, left shoulder, left elbow, left hand, left knee, left foot, right hip, right shoulder, right elbow, right hand, right knee, right foot, right hand. 2Robotic operating system, http://ros.org 3http://www.ros.org/wiki/tfAppendix C Code The code used in the experiments from Mangin and Oudeyer (2013) is available publicly on http://github.com/omangin/multimodal. It consists in a set of tools and experimental scripts used to achieve multimodal learning with nonnegative matrix factorization (NMF). This code is distributed under the new BSD license. 135136 APPENDIX C. CODEBibliography P. Abbeel, A. Coates, and A. Y. Ng. Autonomous helicopter aerobatics through apprenticeship learning. The International Journal of Robotics Research, 29(13): 1608–1639, June 2010. ISSN 0278-3649. doi: 10.1177/0278364910371999. Pieter Abbeel and Andrew Y Ng. Apprenticeship learning via inverse reinforcement learning. In International conference on Machine learning, 2004. Michal Aharon, Michael Elad, and Alfred Bruckstein. K-svd: Design of dictionaries for sparse representation. In Proceedings of SPARS, number 5, pages 9–12, 2005. Nasir Ahmed, T Natarajan, and Kamisetty R Rao. Discrete cosine transform. Computers, IEEE Transactions on, 100(1):90–93, 1974. Guillaume Aimetti. Modelling early language acquisition skills: Towards a general statistical learning mechanism. In EACL (Student Research Workshop), pages 1–9, 2009. S. Akaho, Y. Kiuchi, and S. Umeyama. Mica: multimodal independent component analysis. In International Joint Conference on Neural Networks, (IJCNN 99), volume 2, pages 927–932, 1999. doi: 10.1109/IJCNN.1999.831077. Zeynep Akata, Christian Thurau, and Christian Bauckhage. Non-negative matrix factorization in multimodality data for segmentation and label prediction. In Computer Vision Winter Workshop, number 16, Mitterberg, Autriche, 2011. Nameera Akhtar and Lisa Montague. Early lexical acquisition: The role of crosssituational learning. First Language, 19(57):347–358, 1999. Javier Almingol, Luis Montesano, and Manuel Lopes. Learning multiple behaviors from unlabeled demonstrations in a latent controller space. In International conference on Machine learning (ICML), 2013. Toomas Altosaar, Louis ten Bosch, Guillaume Aimetti, Christos Koniaris, Kris Demuynck, Henk van den Heuvel, Signal Proc, P O Box, and Fi Tkk. A speech corpus for modeling language acquisition: Caregiver. In Language Resources and Evaluation - LREC, pages 1062–1068, 2008. Pierre Andry, Philippe Gaussier, Sorin Moga, Jean-Paul Banquet, and Jacqueline Nadel. Learning and communication via imitation: An autonomous robot perspective. Systems, Man and Cybernetics, Part A: Systems and Humans, IEEE Transactions on, 31(5):431–442, 2001. 137138 BIBLIOGRAPHY Minoru Asada, Koh Hosoda, Yasuo Kuniyoshi, Hiroshi Ishiguro, Toshio Inui, Yuichiro Yoshikawa, Masaki Ogino, and Chisato Yoshida. Cognitive developmental robotics: A survey. Autonomous Mental Development, IEEE Transactions on, 1(1):12–34, 2009. Monica Babes-Vroman, Vukosi Marivate, Kaushik Subramanian, and Michael Littman. Apprenticeship learning about multiple intentions. In International conference on Machine learning (ICML), number 28, 2011. Adrien Baranes and Pierre-Yves Oudeyer. Active learning of inverse models with intrinsically motivated goal exploration in robots. Robotics and Autonomous Systems, 61(1):49–73, January 2013. doi: 10.1016/j.robot.2012.05.008. Leonard E. Baum, Ted Petrie, George Soules, and Norman Weiss. A maximization technique occurring in the statistical analysis of probabilistic functions of markov chains. The annals of mathematical statistics, 41(1):164–171, 1970. Herbert Bay, Tinne Tuytelaars, and Luc Van Gool. Surf: Speeded up robust features. In Computer Vision–ECCV 2006, pages 404–417. Springer, 2006. Richard Bellman. Dynamic Programming. Princeton University Press, Princeton, NJ, USA, 1 edition, 1957a. Richard Bellman. A markovian decision process. Indiana University Mathematics Journal, 6:679–684, 1957b. ISSN 0022-2518. Tony Belpaeme and Anthony Morse. Word and category learning in a continuous semantic domain: Comparing cross-situational and interactive learning. Advances in Complex Systems, 15(03n04), 2012. doi: 10.1142/S021952591200312. Jaafar BenAbdallah, Juan C. Caicedo, Fabio A. Gonzalez, and Olfa Nasraoui. Multimodal image annotation using non-negative matrix factorization. In International Conference on Web Intelligence and Intelligent Agent Technology, pages 128–135. IEEE / WIC / ACM, August 2010. ISBN 978-1-4244-8482-9. doi: 10.1109/WI-IAT.2010.293. Christopher M. Bishop. Pattern Recognition and Machine Learning (Information Science and Statistics). Springer-Verlag New York, Inc., 2006. Randolph Blake. A neural theory of binocular rivalry. Psychological review, 96(1): 145–167, 1989. Sofiane Boucenna, Philippe Gaussier, Pierre Andry, and Laurence Hafemeister. Imitation as a communication tool for online facial expression learning and recognition. In Intelligent Robots and Systems (IROS), 2010 IEEE/RSJ International Conference on, pages 5323–5328. IEEE, 2010. Stephen Boyd and Lieven Vandenberghe. Convex optimization. Cambridge University Press, 2004. ISBN 978-0521833783. M. Boyle. Notes on the perron-frobenius theory of nonnegative matrices. Technical report. Holger Brandl, Frank Joublin, and Christian Goerick. Towards unsupervised online word clustering. In IEEE International Conference on Acoustics, Speech, and Signal Processing, pages 5073–5076, Las Vegas, NV, 2008.BIBLIOGRAPHY 139 Michael R. Brent. Speech segmentation and word discovery: A computational perspective, 1999. David R. Brillinger. Learning a potential function from a trajectory. IEEE Signal Processing Letters, 14(11):867–870, November 2007. ISSN 1070-9908. doi: 10.1109/ LSP.2007.900032. Rodney Brooks. Intelligence without representation. Artificial Intelligence, 47: 139–159, 1991. Jesse Butterfield, Sarah Osentoski, Graylin Jay, and Odest Chadwicke Jenkins. Learning from demonstration using a multi-valued function regressor for timeseries data. In International Conference on Humanoid Robots, number 10, Nashville, 2010. IEEE Comput. Soc. Press. Richard W. Byrne and Anne E. Russon. Learning by imitation: a hierarchical approach. Behavioral and brain sciences, 21(5):667–721, 1998. Maya Cakmak and Manuel Lopes. Algorithmic and human teaching of sequential decision tasks. In AAAI Conference on Artificial Intelligence (AAAI-12), 2012. S. Calinon and A. Billard. A probabilistic programming by demonstration framework handling skill constraints in joint space and task space. In Proc. IEEE/RSJ Intl Conf. on Intelligent Robots and Systems (IROS), September 2008. Sylvain Calinon and Aude G Billard. Statistical learning by imitation of competing constraints in joint space and task space. Advanced Robotics, 23:2059–2076, 2009. Sylvain Calinon, Florent Guenter, and Aude Billard. On learning, representing, and generalizing a task in a humanoid robot. IEEE transactions on systems, man, and cybernetics. Part B, Cybernetics : a publication of the IEEE Systems, Man, and Cybernetics Society, 37(2):286–98, April 2007. ISSN 1083-4419. doi: 10.1109/TSMCB.2006.886952. Sylvain Calinon, Florent D’Halluin, Eric L Sauser, Darwin G Caldwell, and Aude G Billard. Learning and reproduction of gestures by imitation: An approach based on hidden markov model and gaussian mixture regression. IEEE Robotics and Automation Magazine, 17(2):44–54, 2010. Angelo Cangelosi, Giorgio Metta, Gerhard Sagerer, Stefano Nolfi, Chrystopher Nehaniv, Kerstin Fischer, Jun Tani, Tony Belpaeme, Giulio Sandini, Francesco Nori, Luciano Fadiga, Britta Wrede, Katharina Rohlfing, Elio Tuci, Kerstin Dautenhahn, Joe Saunders, and Arne Zeschel. Integration of action and language knowledge: A roadmap for developmental robotics. IEEE Transactions on Autonomous Mental Development, 2(3):167–195, September 2010. ISSN 1943-0604. doi: 10.1109/TAMD. 2010.2053034. Luigi Cattaneo and Giacomo Rizzolatti. The mirror neuron system. Archives of Neurology, 66(5):557, 2009. Thomas Cederborg and Pierre-Yves Oudeyer. From language to motor gavagai: Unified imitation learning of multiple linguistic and non-linguistic sensorimotor skills. Transactions on Autonomous Mental Development (TAMD), 5, 2013.140 BIBLIOGRAPHY E. Colin Cherry. Some experiments on the recognition of speech, with one and with two ears. The Journal of the acoustical society of America, 25:975, 1953. doi: 10.1121/1.1907229. Jaedeug Choi and Kee-Eung Kim. Nonparametric bayesian inverse reinforcement learning for multiple reward functions. In Advances in Neural Information Processing Systems 25, pages 314–322, 2012. Thomas M Cover and Joy A. Thomas. Elements of information theory. John Wiley & Sons, 1991. Christian Daniel, Gerhard Neumann, and Jan Peters. Learning concurrent motor skills in versatile solution spaces. In Proceedings of the International Conference on Robot Systems (IROS), 2012. John Demiris and Gillian Hayes. Do robots ape. In AAAI Fall Symposium, pages 28–30. American Association for Artificial Intelligence, November 1997. Arthur P Dempster, Nan M Laird, and Donald B Rubin. Maximum likelihood from incomplete data via the em algorithm. Journal of the Royal Statistical Society. Series B (Methodological), pages 1–38, 1977. Chris Ding, Tao Li, and Michael I Jordan. Convex and semi-nonnegative matrix factorizations. IEEE Transactions on Pattern Analysis and Machine Intelligence, 32(1):45–55, January 2010. ISSN 1939-3539. doi: 10.1109/TPAMI.2008.277. David Donoho and Victoria Stodden. When does non-negative matrix factorization give a correct decomposition into parts ? Advances in neural information processing systems, 16, 2003. Joris Driesen. Discovering words in speech using matrix factorization. PhD thesis, KU Leuven, ESAT, 2012. Joris Driesen, Louis ten Bosch, and Hugo Van Hamme. Adaptive non-negative matrix factorization in a computational model of language acquisition. In Interspeech, pages 1–4, 2009. Joris Driesen, Hugo Van Hamme, and Bastiaan W. Kleijn. Learning from images and speech with non-negative matrix factorization enhanced by input space scaling. In IEEE Spoken Language Technology Workshop (SLT), pages 1–6, Berkeley, California, USA, 2010. IEEE. doi: http://dx.doi.org/10.1109/SLT.2010.5700813. Joris Driesen, Jort F. Gemmeke, and Hugo Van Hamme. Data-driven speech representations for nmf-based word learning. In SAPA-SCALE, Portland, USA, 2012. Staffan Ekvall and Danica Kragic. Learning task models from multiple human demonstrations. ROMAN 2006 - The 15th IEEE International Symposium on Robot and Human Interactive Communication, pages 358–363, September 2006. doi: 10.1109/ROMAN.2006.314460. Daniel P. W. Ellis. Plp and rasta (and mfcc, and inversion) in matlab, 2005. K. Farrell, R.J. Mammone, and A.L. Gorin. Adaptive language acquisition using incremental learning. In International Conference on Acoustics, Speech, and Signal Processing (ICASSP 1993), volume 1, pages 501–504. IEEE, 1993.BIBLIOGRAPHY 141 David Filliat. Interactive learning of visual topological navigation. In International Conference on Intelligent Robots and Systems (IROS 2008), pages 248–254. IEEE, 2008. Sadaoki Furui. Speaker-independent isolated word recognition using dynamic features of speech spectrum. Acoustics, Speech and Signal Processing, IEEE Transactions on, 34(1):52–59, 1986. C´edric F´evotte and J´erˆome Idier. Algorithms for nonnegative matrix factorization with the β-divergence. Neural Computation, 29(9):2421–2456, 2011. doi: http: //dx.doi.org/10.1162/NECO a 00168. C´edric F´evotte, Jonathan Le Roux, and John R. Hershey. Non-negative dynamical system with application to speech and audio. In IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), May 2013. Mrugesh R. Gajjar, R. Govindarajan, and T. V. Sreenivas. Online unsupervised pattern discovery in speech using parallelization. In InterSpeech, pages 2458–2461. ISCA, 2008. Zoubin Ghahramani and Michael I. Jordan. Supervised learning from incomplete data via an em approach. In Advances in Neural Information Processing Systems 6, pages 120–127. Morgan Kaufmann, 1994. James Jerome Gibson. The Ecological Approach To Visual Perception. Taylor & Francis, 1979. ISBN 9781135059729. Arthur M Glenberg and Michael P Kaschak. Grounding language in action. Psychonomic bulletin & review, 9(3):558–65, September 2002. ISSN 1069-9384. Rebecca L. Gomez and Lou-Ann Gerken. Artificial grammar learning by 1-year-olds leads to specific and abstract knowledge. Cognition, 70(2):109–135, 1999. A L Gorin, D Petrovska-Delacretaz, J Wright, and G Riccardi. Learning spoken language without transcription, 1999. Allen L. Gorin, Stephen E. Levinson, and Ananth Sankar. An experiment in spoken language acquisition. Speech and Audio Processing, IEEE Transactions on, 2(1): 224–240, January 1994. ISSN 1063-6676. doi: 10.1109/89.260365. Jacqueline Gottlieb, Pierre-Yves Oudeyer, Manuel Lopes, and Adrien Baranes. Information-seeking, curiosity, and attention: computational and neural mechanisms. Trends in cognitive sciences, 17(11):585–593, 2013. Herbert Paul Grice. Studies in the Way of Words. Harvard University Press, 1989. Daniel H Grollman and Odest Chadwicke Jenkins. Incremental learning of subtasks from unsegmented demonstration. In IROS, Taipei, Taiwan, 2010. Stevan Harnad. The symbol grounding problem. Physica D: Nonlinear Phenomena, 42(1):335–346, 1990. Stephen Hart and Roderic Grupen. Learning generalizable control programs. Autonomous Mental Development, IEEE Transactions on, 3(3):216–231, 2011.142 BIBLIOGRAPHY Stephen Hart, Shijaj Sen, and Roderic A. Grupen. Intrinsically motivated hierarchical manipulation. In International Conference on Robotics and Automation (ICRA), pages 3814–3819, Pasadena, California, USA, 2008. Trevor J. Hastie, R. Tibshirani, and J. Friedman. The elements of statistical learning. Springer, second edi edition, 2001. Sven Hellbach, Julian P Eggert, Edgar K¨orner, and Horst-michael Gross. Basis decomposition of motion trajectories using spatio-temporal nmf. In Int. Conf. on Artificial Neural Networks (ICANN), pages 597–606, Limassol, Cyprus, 2009. Springer. Ronald A. Howard. Dynamic Programming and Markov Processes. Published jointly by the Technology Press of the Massachusetts Institute of Technology and Wiley and Sons, 1960. Patrik O Hoyer. Non-negative sparse coding. Technical report, February 2002. Patrik O Hoyer. Non-negative matrix factorization with sparseness constraints. Journal of Machine Learning Research, 5:1457–1469, 2004. Auke Jan Ijspeert, Jun Nakanishi, and Stefan Schaal. Learning attractor landscapes for learning motor primitives. In Advances in neural information processing systems, pages 1547–1554, Cambridge, 2003. MIT Press. Naoto Iwahashi. Language acquisition through a human–robot interface by combining speech, visual, and behavioral information. Information Sciences, 156(1):109–121, 2003. Naoto Iwahashi. Active and unsupervised learning for spoken word acquisition through a multimodal inteface. In IEE International Workshop on Robot and Human Interactive Communication, 2004. Rodolphe Jenatton, Julien Mairal, Guillaume Obozinski, and Francis Bach. Proximal methods for sparse hierarchical dictionary learning. In Proceedings of the International Conference on Machine Learning (ICML), 2010. Nikolay Jetchev and Marc Toussaint. Task space retrieval using inverse feedback control. In Lise Getoor and Tobias Scheffer, editors, International Conference on Machine Learning, number 28 in ICML ’11, pages 449–456, New York, NY, USA, June 2011. ACM. ISBN 978-1-4503-0619-5. Thorsten Joachims. Text categorization with support vector machines: Learning with many relevant features. Technical Report 23, UniversUniversit¨at Dortmund, LS VIII-Reportit¨at Do, 1997. Fr´ed´eric Kaplan and Pierre-Yves Oudeyer. The progress-drive hypothesis: an interpretation of early imitation. Models and mechanims of imitation and social learning: Behavioural, social and communication dimensions, pages 361–377, 2007. Juha Karhunen and Tomas Ukkonen. Extending ica for finding jointly dependent components from two related data sets. Neurocomputing, 70:2969–2979, 2007. ISSN 0925-2312. doi: 10.1016/j.neucom.2006.10.144.BIBLIOGRAPHY 143 S Mohammad Khansari-Zadeh and Aude Billard. Learning stable non-linear dynamical systems with gaussian mixture models. IEEE Transactions on Robotics2, 27 (5):943–957, 2011. Jens Kober and Jan Peters. Policy search for motor primitives in robotics. In Advances in Neural Information Processing Systems, pages 849–856, Red Hook, NY, USA, 2009. Curran. J¨urgen Konczak. On the notion of motor primitives in humans and robots. In International Workshop on Epigenetic Robotics: Modeling Cognitive Development in Robotic Systems, volume 123, pages 47–53. Lund University Cognitive Studies, 2005. ISBN 91-974741-4-2. V Kruger, Danica Kragic, Aleˇs Ude, and Christopher Geib. The meaning of action: a review on action recognition and mapping. Advanced Robotics, 21(13):1473–1501, 2007. Volker Kruger, Dennis Herzog, Sanmohan Baby, Ales Ude, and Danica Kragic. Learning actions from observations. Robotics and Automation Magazine, 17(2): 30–43, 2010. Patricia K Kuhl. Early language acquisition: cracking the speech code. Nature reviews. Neuroscience, 5(11):831–43, November 2004. ISSN 1471-003X. doi: 10.1038/nrn1533. Patricia K. Kuhl. Brain mechanisms in early language acquisition. Neuron, 67(5): 713–727, 2010. Patricia K. Kuhl, Karen A. Williams, Francisco Lacerda, Kenneth N. Stevens, and Bj¨orn Lindblom. Linguistic experience alters phonetic perception in infants by 6 months of age. Science, 255(5044):606–608, 1992. D Kulic, Hirotaka Imagawa, and Yoshihiko Nakamura. Online acquisition and visualization of motion primitives for humanoid robots. Symposium on Robot and Human, pages 1210–1215, 2009. Dana Kulic and Yoshihiko Nakamura. Incremental learning of human behaviors using hierarchical hidden markov models. In IEEE International Conference on Intelligent Robots and Systems, pages 4649–4655. IEEE Comput. Soc. Press, 2010. Yasuo Kuniyoshi, Masayuki Inaba, and Hirochika Inoue. Learning by watching: Extracting reusable task knowledge from visual observation of human performance. Robotics and Automation, IEEE Transactions on, 10(6):799–822, 1994. Barbara Landau, Linda Smith, and Susan Jones. Object perception and object naming in early development. Trends in cognitive sciences, 2(1):19–24, 1998. Daniel D. Lee and H Sebastian Seung. Learning the parts of objects by non-negative matrix factorization. Nature, 401(6755):788–91, October 1999. ISSN 0028-0836. doi: 10.1038/44565. Daniel D. Lee and H. Sebastian Seung. Algorithms for non-negative matrix factorization. In Advances in Neural Information Processing Systems, pages 556–562. MIT Press, 2001.144 BIBLIOGRAPHY Honglak Lee, Alexis Battle, Rajat Raina, and Andrew Y. Ng. Efficient sparse coding algorithms. In Advances in Neural Information Processing Systems (NIPS), number 19, 2006. Augustin Lef`evre, Francis R. Bach, and C´edric F´evotte. Itakura-saito nonnegative matrix factorization with group sparsity. In Acoustics, Speech and Signal Processing (ICASSP), 2011 IEEE International Conference on, number 1, pages 21–24. IEEE, 2011. David A. Leopold and Nikos K. Logothetis. Multistable phenomena: changing views in perception. Trends in cognitive sciences, 3(7):254–264, 1999. doi: 10.1016/ S1364-6613(99)01332-7. Vladimir I Levenshtein. Binary codes capable of correcting deletions, insertions and reversals. In Soviet physics doklady, volume 10, page 707, 1966. Sergey Levine, Zoran Popovic, and Vladlen Koltun. Feature construction for inverse reinforcement learning. Advances in Neural Information Processing Systems, (24): 1–9, 2010. Yi Li, Cornelia Fermuller, Yiannis Aloimonos, and Hui Ji. Learning shift-invariant sparse representation of actions. In 2010 IEEE Computer Society Conference on Computer Vision and Pattern Recognition, pages 2630–2637, San-Francisco, June 2010. IEEE. ISBN 978-1-4244-6984-0. doi: 10.1109/CVPR.2010.5539977. Rainer Lienhart, Stefan Romberg, and Eva H¨orster. Multilayer plsa for multimodal image retrieval. In International Conference on Image and Video Retrieval -CIVR, number April, page 1, New York, New York, USA, 2009. ACM Press. ISBN 9781605584805. doi: 10.1145/1646396.1646408. Chih-Jen Lin. Projected gradient methods for nonnegative matrix factorization. Neural computation, 19(10):2756–79, October 2007. ISSN 0899-7667. doi: 10.1162/ neco.2007.19.10.2756. Manuel Lopes, Francisco S. Melo, Ben Kenward, and Jos´e Santos-Victor. A computational model of social-learning mechanisms. Adaptive Behavior, 17(6):467–483, 2009a. Manuel Lopes, Francisco S. Melo, and Luis Montesano. Active learning for reward estimation in inverse reinforcement learning. In European Conference on Machine Learning (ECML), 2009b. Max Lungarella, Giorgio Metta, Rolf Pfeifer, and Giulio Sandini. Developmental robotics: a survey. Connection Science, 15(4):151–190, 2003. Natalia Lyubova and David Filliat. Developmental approach for interactive object discovery. In Proceedings of the 2012 IJCNN International Joint Conference on Neural Networks, 2012. Bin Ma and Haizhou Li. Spoken language identification using bag-of-sounds. In International Conference on Computational Cybernetics. IEEE, 2005. Julien Mairal, Francis Bach, Jean Pnce, and Guillermo Sapiro. Online dictionary learning for sparse coding. In International Conference on Machine Learning (ICML), number 26, pages 689–696, 2009.BIBLIOGRAPHY 145 Olivier Mangin and Pierre-Yves Oudeyer. Learning to recognize parallel combinations of human motion primitives with linguistic descriptions using non-negative matrix factorization. In International Conference on Intelligent Robots and Systems (IROS 2012), Vilamoura, Algarve (Portugal), 2012a. IEEE/RSJ. Olivier Mangin and Pierre-Yves Oudeyer. Learning the combinatorial structure of demonstrated behaviors with inverse feedback control. In International Workshop on Human Behavior Understanding, number 3, Vilamoura, Algarve (Portugal), 2012b. Olivier Mangin and Pierre-Yves Oudeyer. Learning semantic components from subsymbolic multimodal perception. In the Joint IEEE International Conference on Development and Learning an on Epigenetic Robotics (ICDL-EpiRob), number 3, August 2013. Olivier Mangin, David Filliat, and Pierre-Yves Oudeyer. A bag-of-features framework for incremental learning of speech invariants in unsegmented audio streams. In Birger Johansson, Erol Sahin, and Christian Balkenius, editors, Tenth International Conference on Epigenetic Robotics, pages 73–80, Ooren¨aas Slott, Sweden, 2010. ¨ Ellen M. Markman. Constraints children place on word meanings. Cognitive Science, 14:57–77, 1990. Gianluca Massera, Elio Tuci, Tomassino Ferrauto, and Stefano Nolfi. The facilitatory role of linguistic instructions on developing manipulation skills. IEEE Computational Intelligence Magazine, 5(3):33–42, 2010. Harry McGurk and John MacDonald. Hearing lips and seeing voices. Nature, 264 (5588):746–748, December 1976. ISSN 0028-0836. doi: 10.1038/264746a0. C.D. Meyer. Matrix analysis and applied linear algebra: solutions manual. Society for Industrial and Applied Mathematics, 2000. ISBN 0-89871-454-0. Bernard Michini and Jonathan P How. Bayesian nonparametric inverse reinforcement learning. In Machine Learning and Knowledge Discovery in Databases, pages 148–163. Springer, 2012. Benjamin Franklin Miessner. The electric dog. Scientific American Supplement, (2267):376–377, June 14th 1919. Cl´ement Moulin-Frier. Rˆole des relations perception-action dans la communication parl´ee et l’´emergence des syst`emes phonologiques : ´etude, mod´elisation computationnelle et simulations. PhD thesis, Universit´e Pierre Mendes-France, Grenoble, 2011. Ferdinando A. Mussa-Ivaldi and Emilio Bizzi. Motor learning through the combination of primitives. Philosophical transactions of the Royal Society of London. Series B, Biological sciences, 355(1404):1755–69, December 2000. ISSN 0962-8436. doi: 10.1098/rstb.2000.0733. Jacqueline Nadel. Imitation et communication entre jeunes enfants, volume 13. Presses Universitaires de France - PUF, 1986. Yukie Nagai. Joint attention learning based on early detection of self-other motion equivalence with population codes. Journal of the Robotics Society of Japan, 25 (5):77, 2007.146 BIBLIOGRAPHY C Nehaniv and K Dautenhahn. Of hummingbirds and helicopters: An algebraic framework for interdisciplinary studies of imitation and its applications. World Scientific Series in Robotics and, pages 1–26, 2000. Gergely Neu and Csaba Szepesv´ari. Apprenticeship learning using inverse reinforcement learning and gradient methods. In Conference on Uncertainty in Artificial Intelligence (UAI), number 23, pages 295–302, Vancouver, Canada, 2007. AUAI Press, Corvallis, Oregon. ISBN 0-9749039-3-00-9749039-3-0. Andrew Y. Ng and Stuart Russell. Algorithms for inverse reinforcement learning. International Conference on Machine Learning, 2000. Andrew Y. Ng, Daishi Harada, and Stuart Russell. Policy invariance under reward transformations: Theory and application to reward shaping. In International Conference on Machine Learning (ICML), number 16, pages 278–287, 1999. Jiquan Ngiam, Aditya Khosla, Mingyu Kim, Juhan Nam, and Andrew Y. Ng. Multimodal deep learning. In International Conference on Machine Learning, number 28, Bellevue, Washington, USA, 2011. Monica N. Nicolescu and Maja J. Matari´c. A hierarchical architecture for behaviorbased robots. Proceedings of the first international joint conference on Autonomous agents and multiagent systems part 1 - AAMAS ’02, page 227, 2002. doi: 10.1145/ 544741.544798. Monica N. Nicolescu and Maja J. Matari´c. Natural methods for learning and generalization in human-robot domains. In Second International Joint Conference on Autonomous Agents and Multi-Agent Systems, Melbourne, Australia, 2003. David Nister and Henrik Stewenius. Scalable recognition with a vocabulary tree. In CVPR ’06: Proceedings of the 2006 IEEE Computer Society Conference on Computer Vision and Pattern Recognition, pages 2161–2168, Washington, DC, USA, 2006. IEEE Computer Society. ISBN 0-7695-2597-0. doi: http://dx.doi.org/ 10.1109/CVPR.2006.264. Francesco Nori and Ruggero Frezza. Biologically inspired control of a kinematic chain using the superposition of motion primitives. In Decision and Control (CDC), volume 1, pages 1075–1080. IEEE Comput. Soc. Press, 2004a. Franceso Nori and Ruggero Frezza. Nonlinear control by a finite set of motion primitives. In Nolcos, 2004b. Pierre-Yves Oudeyer. On the impact of robotics in behavioral and cognitive sciences: From insect navigation to human cognitive development. IEEE Transactions on Autonomous Mental Development, 2(1):2–16, March 2010. ISSN 1943-0604. doi: 10.1109/TAMD.2009.2039057. P Paatero and U Tapper. Positive matrix factorization: A non-negative factor model with optimal utilization of error estimates of data values. Environmetrics, 5(2): 111–126, 1994. Michael Pardowitz, Steffen Knoop, Ruediger Dillmann, and Raoul D Z¨ollner. Incremental learning of tasks from user demonstrations, past experiences, and vocal comments. IEEE transactions on systems, man, and cybernetics. Part B, Cybernetics : a publication of the IEEE Systems, Man, and Cybernetics Society, 37(2): 322–32, April 2007. ISSN 1083-4419.BIBLIOGRAPHY 147 Alex S. Park and James R. Glass. Unsupervised pattern discovery in speech. IEEE Transactions on Audio, Speech and Language Processing, 16(1):186–197, 2008. Jean Piaget. La construction du r´eel chez l’enfant. Delachaux & Niestl´e, 1937. RJ Plemmons and RE Cline. The generalized inverse of a nonnegative matrix. Proc. Amer. Math. Soc, 31(1):46–50, 1972. Gerasimos Potamianos, Chalapathy Neti, Guillaume Gravier, Ashutosh Garg, and Andrew W Senior. Recent advances in the automatic recognition of audiovisual speech. Proceedings of the IEEE, 91(9):1306–1326, 2003. Willard Van Orman Quine. Word and object. MIT press, 1960. Lawrence R. Rabiner. A tutorial on hidden markov models and selected applications in speech recognition. Proceedings of the IEEE, 77(2):257–286, 1989. Deepak Ramachandran and Eyal Amir. Bayesian inverse reinforcement learning. In International Joint Conference on Artificial Intelligence (IJCAI’07), number 20, pages 2586–2591, 2007. Nathan D. Ratliff, J. Andrew Bagnell, and Martin A. Zinkevich. Maximum margin planning. In International conference on Machine learning - ICML ’06, number 23, pages 729–736, New York, New York, USA, 2006. ACM Press. ISBN 1595933832. doi: 10.1145/1143844.1143936. Constantin A. Rothkopf and Dana H. Ballard. Modular inverse reinforcement learning for visuomotor behavior. Biological cybernetics, pages 1–14, 2013. Alice C. Roy and Michael A. Arbib. The syntactic motor system. Gesture, 5(1):7–37, January 2005. ISSN 15681475. doi: 10.1075/gest.5.1.03roy. Deb Roy. Learning from Sights and Sounds: A Computational Model. PhD thesis, Massachussetts Institute of Technology, September 1999. Deb K. Roy and Alex P. Pentland. Learning words from sights and sounds: A computational model. Cognitive science, 26(1):113–146, January 2002. ISSN 03640213. doi: 10.1207/s15516709cog2601 4. Yossi Rubner, Carlo Tomasi, and Leonidas J Guibas. ”the earth mover’s distance as a metric for image retrieval”: None. International Journal of Computer Vision, 40 (2):99–121, 2000. Stuart Russell. Learning agents for uncertain environments. In Proceedings of the eleventh annual conference on Computational learning theory, pages 101–103. ACM, 1998. Kate Saenko and Trevor Darrell. Object category recognition using probabilistic fusion of speech and image classifiers. In Joint Workshop on Multimodal Interaction and Related Machine Learning Algorithms - MLMI, number 4, Brno, Czech Republic, 2007. Jenny R. Saffran and Diana P. Wilson. From syllables to syntax: Multilevel statistical learning by 12-month-old infants. Infancy, 4(2):273–284, April 2003. ISSN 15250008. doi: 10.1207/S15327078IN0402 07.148 BIBLIOGRAPHY Jenny R. Saffran, Richard N. Aslin, and Elissa L. Newport. Statistical learning by 8-month-old infants. Science, 274(5294):1926–1928, 1996. H. Sakoe and S. Chiba. Dynamic programming algorithm optimization for spoken word recognition. IEEE Transactions on Acoustics, Speech, and Signal Processing, 26(1):43–49, February 1978. ISSN 0096-3518. doi: 10.1109/TASSP.1978.1163055. Larissa K. Samuelson, Linda B. Smith, Lynn K. Perry, and John P. Spencer. Grounding word learning in space. PloS one, 6(12):e28095, 2011. Stefan Schaal. Dynamic movement primitives-a framework for motor control in humans and humanoid robotics. In Adaptive Motion of Animals and Machines, pages 261–280, Los Angeles, 2006. Springer. Jean-Luc Schwartz. A reanalysis of mcgurk data suggests that audiovisual fusion in speech perception is subject-dependent. The Journal of the Acoustical Society of America, 127:1584–1594, 2010. doi: 10.1121/1.3293001. Jean-Luc Schwartz, Fr´ed´eric Berthommier, and Christophe Savariaux. Seeing to hear better: evidence for early audio-visual interactions in speech identification. Cognition, 93(2):B69–B78, 2004. Jean-Luc Schwartz, Anahita Basirat, Lucie M´enard, and Marc Sato. The perceptionfor-action-control theory (pact): A perceptuo-motor theory of speech perception. Journal of Neurolinguistics, 25(5):336–354, 2012a. ISSN 0911-6044. doi: 10.1016/j. jneuroling.2009.12.004. Jean-Luc Schwartz, Nicolas Grimault, Jean-Michel Hup´e, Brian C.J. Moore, and Daniel Pressnitzer. Multistability in perception: binding sensory modalities, an overview. Philosophical Transactions of the Royal Society B: Biological Sciences, 367(1591):896–905, 2012b. Jihene Serkhane, Jean-Luc Schwartz, and Pierre Bessiere. Building a talking baby robot: A contribution to the study of speech acquisition and evolution. Interaction studies, 6(2):253–286, 2005. Ajit P. Singh and Geoffrey J. Gordon. A unified view of matrix factorization models. In ECML PKDD, pages 358–373, 2008. Josef Sivic and Andrew Zisserman. Efficient visual search for objects in videos. Proceedings of the IEEE, 96(4):548–566, 2008. Linda Smith and Chen Yu. Infants rapidly learn word-referent mappings via crosssituational statistics. Cognition, 106(3):1558–1568, 2008. David Sodoyer, Laurent Girin, Christian Jutten, and Jean-Luc Schwartz. Developing an audio-visual speech source separation algorithm. Speech Communication, 44(1): 113–125, 2004. Luc Steels. The Talking Heads Experiment, volume 1. Laboratorium, 1999. Luc Steels. The symbol grounding problem has been solved. so what’s next? In Manuel de Vega, Arthur M. Glenberg, and Arthur C. Graesser, editors, Symbols and Embodiment: Debates on Meaning and Cognition, chapter 12. Oxford University Press, Oxford, 2008.BIBLIOGRAPHY 149 Luc Steels and Frederic Kaplan. Bootstrapping grounded word semantics. In Ted Briscoe, editor, Linguistic Evolution through Language Acquisition: Formal and Computational Models, chapter 3. Cambridge University Press, 2002. Stanley S. Stevens and John Volkmann. The relation of pitch to frequency: A revised scale. The American Journal of Psychology, 53(3):329–353, 1940. Veronique Stouten, Kris Demuynck, et al. Discovering phone patterns in spoken utterances by non-negative matrix factorization. Signal Processing Letters, IEEE, 15:131–134, 2008. Freek Stulp and Stefan Schaal. Hierarchical reinforcement learning with movement primitives. 2011 11th IEEE-RAS International Conference on Humanoid Robots, pages 231–238, October 2011. doi: 10.1109/Humanoids.2011.6100841. Y. Sugita and J. Tani. Learning semantic combinatoriality from the interaction between linguistic and behavioral processes. Adaptive Behavior, 13(1):33, 2005. Richard S Sutton and Andrew G Barto. Reinforcement Learning: An Introduction. MIT Press, 1998. ISBN 978-0-262-19398-6. Richard S Sutton, Doina Precup, and Satinder Singh. Between mdps and semimdps: A framework for temporal abstraction in reinforcement learning. Artificial intelligence, 112(1):181–211, 1999. Graham W. Taylor and Geoffrey E. Hinton. Factored conditional restricted boltzmann machines for modeling motion style. In International Conference on Machine Learning (ICML 2009), number 26, pages 1–8, New York, New York, USA, 2009a. ACM Press. ISBN 9781605585161. doi: 10.1145/1553374.1553505. Graham W. Taylor and Geoffrey E. Hinton. Products of hidden markov models : It takes n ¿ 1 to tango. In Twenty-fifth Conference on Uncertainty in Artificial Intelligence, pages 522–529. AUAI Press, 2009b. Graham W. Taylor, Geoffrey E. Hinton, and Sam Roweis. Modeling human motion using binary latent variables. Advances in neural information processing systems (NIPS), 19:1345–1352, 2006. ISSN 1049-5258. Matthew E Taylor and Peter Stone. Transfer learning for reinforcement learning domains : A survey. Journal of Machine Learning Research, 10:1633–1685, 2009. Louis ten Bosch, Lou Boves, Hugo Van Hamme, and Roger K. Moore. A computational model of language acquisition: the emergence of words. Fundamenta Informaticae, 90(3):229–249, 2009. Louis F.M. ten Bosch, Hugo Van Hamme, and Lou W.J. Boves. Unsupervised detection of words questioning the relevance of segmentation. In Speech Analysis and Processing for Knowledge Discovery, ITRW ISCA. Bonn, Germany : ISCA, 2008. Edward L. Thorndike. Animal intelligence; experimental studies. New York, The Macmillan company, 1911. Sebastian Thrun and Tom M. Mitchell. Lifelong robot learning. Robotics and autonomous systems, 15(1):25–46, 1995.150 BIBLIOGRAPHY Michael Tomasello. Origins of human communication. MIT press Cambridge, 2008. Matthew C Tresch and Anthony Jarc. The case for and against muscle synergies. Current opinion in neurobiology, 19(6):601–7, December 2009. ISSN 1873-6882. doi: 10.1016/j.conb.2009.09.002. Elio Tuci, Tomassino Ferrauto, Arne Zeschel, Gianluca Massera, and Stefano Nolfi. An experiment on behaviour generalisation and the emergence of linguistic compositionality in evolving robots. IEEE Transactions on Autonomous Mental Development, 3(2):1–14, 2011. Alan Mathison Turing. Computing machinery and intelligence. Mind, 59(236): 433–460, 1950. Hugo Van Hamme. Hac-models: a novel approach to continuous speech recognition. In Interspeech ISCA, pages 2554–2557, 2008. Juyang Weng, James McClelland, Alex Pentland, Olaf Sporns, Ida Stockman, Mriganka Sur, and Esther Thelen. Autonomous mental development by robots and animals. Science, 291(5504):599–600, 2001. Andrew Whiten and R. Ham. On the nature and evolution of imitation in the animal kingdom: reappraisal of a century of research. Advances in the Study of Behavior, 21:239–283, 1992. Matthew M. Williamson. Postural primitives: Interactive behavior for a humanoid robot arm. In International Conference on Simulation of Adaptive Behavior, number 4, pages 124–131, 1996. Britta Wrede, Katharina Rohlfing, Jochen Steil, Sebastian Wrede, Pierre-Yves Oudeyer, and Jun Tani. Towards robots with teleological action and language understanding. In Emre Ugur, Yukie Nagai, Erhan Oztop, and Minoru Asada, editors, Humanoids 2012 Workshop on Developmental Robotics: Can developmental robotics yield human-like cognitive abilities?, Osaka, Japon, November 2012. Chen Yu and Dana H Ballard. A multimodal learning interface for grounding spoken language in sensory perceptions. Transactions on Applied Perception, (1):57–80, 2004. Chen Yu and Dana H. Ballard. A unified model of early word learning: Integrating statistical and social cues. Neurocomputing, 70(13-15):2149–2165, August 2007. ISSN 09252312. doi: 10.1016/j.neucom.2006.01.034. Daniel Yurovsky, Chen Yu, and Linda B. Smith. Statistical speech segmentation and word learning in parallel: scaffolding from child-directed speech. Frontiers in psychology, 3, 2012. Brian D Ziebart, Andrew Maas, J Andrew Bagnell, and Anind K Dey. Maximum entropy inverse reinforcement learning. In AAI Conference on Artificial Intelligence, number 23, pages 1433–1438, 2008. Quality Assessment of Fingerprints with Minutiae Delaunay Triangulation Z Yao, Jean Marie Le Bars, C Charrier, C Rosenberger To cite this version: Z Yao, Jean Marie Le Bars, C Charrier, C Rosenberger. Quality Assessment of Fingerprints with Minutiae Delaunay Triangulation. International Conference on Information Systems Security and Privacy , Feb 2015, Angers, France. HAL Id: hal-01096174 https://hal.archives-ouvertes.fr/hal-01096174 Submitted on 16 Dec 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.Quality Assessment of Fingerprints with Minutiae Delaunay Triangulation Z. Yao, J. Le bars, C. Charrier and C. Rosenberger Universite de Caen Basse Normandie; ENSICAEN; UMR 6072 GREYC, Caen, France. {jean-marie.lebars; christophe.charrier}@unicaen.fr {zhigang.yao; christophe.rosenberger}@ensicaen.fr Keywords: Fingerprint, minutiae template, quality assessment, evaluation. Abstract: This article proposes a new quality assessment method of fingerprint, represented by only a set of minutiae points. The proposed quality metric is modeled with the convex-hull and Delaunay triangulation of the minutiae points. The validity of this quality metric is verified on several Fingerprint Verification Competition (FVC) databases by referring to an image-based metric from the state of the art (considered as the reference). The experiments of the utility-based evaluation approach demonstrate that the proposed quality metric is able to generate a desired result. We reveal the possibility of assessing fingerprint quality when only the minutiae template is available. 1 INTRODUCTION The purpose of fingerprint quality assessment is to improve or guarantee the performance of a biometric system (Grother and Tabassi, 2007) by forbidding bad quality fingerprint samples, especially during the enrollment session. Existing studies of this issue mostly define the quality in terms of the clarity of ridge-valley pattern, contrast between foreground and background, smoothness of orientation and etc (Ratha and Bolle, 1999; Bolle et al., 1999; Chen et al., 2004). No matter how many aspects are considered by a fingerprint quality assessment approach, it is all about features employed for generating the quality metric. Prior studies in estimating fingerprint quality had proposed several features (Alonso-Fernandez et al., 2007), among which some are carried out by using an unique feature, while some others combine multiple features together. For instance, Chen et al. proposed the Fourier spectrum-based quality metric with the Butterworth function, Zhao el al. (Zhao et al., 2010) concluded that the orientation certainty level (OCL) (Lim et al., 2002) also performs well for high resolution fingerprint image and Tabassi et al. (Tabassi et al., 2004) proposed NFIQ with multiple features including minutiae quality. To standardize the quality metric of biometric sample, the quality has been defined as a utility property (Staff, 2009), i.e. sample quality reflects its impact on the performance of the system. However, system performance fully relies on the matching approach such as minutiae-based system which is employed most in actual deployments. In this case, it is reasonable to consider qualifying fingerprint with only minutiae information, particularly when using for embedded applications. There are very few quality assessment approaches that take into account minutiae information, such as NFIQ. Moreover, none of the state-of-the-art approaches qualifies a fingerprint from the minutiae template alone. The main contribution of the proposed study is a black box algorithm that computes quality score from a minutiae template associated to the fingerprint. In another word, it could be viewed as a quality metric for assessing the quality of a minutiae template. The benefit of having this type of metric is related to embedded biometric systems in smart cards or smart objects where only the minutiae template is available due to computational and storage constraints. This paper is organized as follows. Section 2 presents the proposed quality metric. Details of the experimental results are given in section 3. Section 4 concludes the paper and discusses the perspectives. 2 METRIC DEFINITION Fingerprint matching approaches, according to the literature (Maltoni et al., 2009), are broadly classifiedas minutiae-based, correlation-based or image-based, among which minutiae-based is the most widely studied solution. A minutiae template generally provides three kinds of information: 1) minutia location, 2) the orientation and 3) the type of minutia point (ridge ending and bifurcation), see figure 1. Figure 1: A fingerprint and its minutiae template. These features are sufficient to reconstruct a synthetic fingerprint from a given template (Feng and Jain, 2011) as the orientation field can be estimated. Another kind of information is the amount of detected minutiae points, which has been used as one factor (Tabassi et al., 2004) for quality assessment of fingerprint samples. However, this information is far from being enough for generating an effective quality metric. In order to do so, the minutiae template is related with the foreground of fingerprint because the area of minutiae indicates an available and useful region for the so-called ’extractability’ of features. In this case, this paper proposed to estimate fingerprint quality by modeling the associated minutiae template with the convex-hull and Delaunay triangulation (Cf. figure 2). Figure 2: A convex hull (left) and Delaunay Triangulation. The 2D convex hull (Andrew, 1979) Ci = {(xj , y j)| j = 1,··· ,Ni} (where Ni is the minutiae number of the i th fingerprint) is defined as the smallest convex set that contains all the points of a given set of minutiae Fi in this case (Cf. figure 2). The Delaunay Triangulation of a set of points P in 2D plane is defined as a triangulation DT(P) (Delaunay, 1934) that none of the points of the given set are inside the circumcircle of any triangle of DT(P), as illustrated in figure 2. With the respective properties of these two geometric structures, an area of the smallest informative region of the fingerprint and a set of areas and perimeters of triangles composed by each 3 minutiae points are obtained. By doing so, one unavoidable problem is observed that almost all the templates of bad quality fingerprints contain both correctly detected minutiae point and spurious points. Based on this observation, we proposed a quality metric as described below. Let a minutiae template Fi of a fingerprint containing a set of detected minutiae points represented by mj = (xj , yj ,θj), where (xj , yj) is the location and θj is the orientation of the j th minutia point; A convex hull denoted by Ci and a set of triangles (Tk) formed by Delaunay triangulation, formulated as DT(Fi) = {Tk|k = 1,2,··· ,Li} where Li (< 2Ni) is the number of triangles can be constructed from Fi . Correspondingly, the convex hull encloses all the minutiae of Fi with the smallest area represented by Ai , and a set of areas Sk and perimeters Pk of DT(Fi) are respectively obtained. In the experiments, we observed that bad quality samples generate tiny and extremely narrow triangles (considered as unreasonable) due to spurious minutiae points. The quantitative values of their area and perimeter are (visually) not proportional to each other, as observed in Figure 3. Figure 3: Example of minutiae Delaunay triangulations of 3 different FVC images. NFIQ values are 2, 2 and 1, respectively. In figure 3, triangles drew by the pink color indicates the unreasonable minutiae structures. Based on these observations, the quality metric (abbreviated asMQF afterwards) is calculated with several steps, as described by algorithm 1. In the computation of the proposed quality metric, three thresholds are set for triangle perimeter, triangle area and the ratio between the perimeter and area of the triangle, which are represented by Yp, Ya and Yr , respectively. The details for choosing the most appropriate parameters are discussed in section 3. The quality value q is dependent on the size of the minutiae region so that it is normalized into the range of [0, 100] on each database. Algorithm 1 Computation of the quality score. Input: Minutiae Template Fi . Output: Quality index, q; 1: Calculate the area of the convex hull Ci , denoted as Ai ; 2: Calculate perimeter and area for each triangle Tk, denoted as Pk and Sk; 3: AYp = area(Search(Pk < Yp)); 4: AYa = area(Search(Sk < Ya)); 5: AYpa = area(Search(Pk < Yp & Sk < Ya)); 6: AYr = area(Search(PkSk) > Yr); 7: Sarea = Ai −AYp −AYa −AYr −AYpa  ; 8: return q = Sarea; Obviously, this algorithm relates the minutiae template with the area of a region for matching operations as it has just been mentioned before. However, this factor is not sufficient so that we consider to remove a part of potentially useless area from the informative region due to the lack of image information. Delaunay triangulation gives a relatively ideal solution to this problem thanks to the spurious minutiae of bad quality images. For example, as it is depicted in figure 3, some unreasonable triangles formed by spurious minutiae on the border enable us to remove the corresponding area. Another case is the tiny triangle which is mostly happened to the area where the quality of ridge-valley pattern is relatively bad. The study also noted that some fingerprint images have several genuine minutiae clustering in a very small area. This case is not specially considered in the proposed algorithm just because of the limitation of the template. The area of each triangle is obtained by using Heron’s formula (Aufmann et al., 2007). 3 EXPERIMENTAL RESULTS In order to validate the MQF, we adopt several approaches to estimate the performance of the quality metric: 1) the Pearson correlation coefficients between the MQF and several others (from the state-ofthe-art) are calculated and 2) the MQF is evaluated by using an utility-based evaluation approach (Yao et al., 2014). The experiment is performed with a laptop driving by an Intel Celeron dual-core CPU of 1.73GHz. The experimental protocol is presented at first. 3.1 Protocol et Database In this study, several FVC databases with different resolutions (Maio et al., 2004) have been used for experiments: FVC2000DB2A, FVC2002DB2A, FVC2004DB1A, FVC2004DB2A and FVC2004DB3A. The first database is established by a low capacitive sensor and the last one relies on a thermal sweeping sensor, while others are established by several optical sensors, see table 1 for details. Table 1: Details of databases. DB Sensor Type Resolution Image Dim 00DB2A Capacitive 500dpi 256×364 02DB2A Optical 569dpi 296×560 04DB1A Optical 500dpi 480×640 04DB2A Optical 500dpi 328×364 04DB3A Thermal 512dpi 300×480 Each of these databases involves 100 fingerprints, and 8 samples for each fingerprint. In this case, the matching scores involved in the experiment have been calculated by using the NBIS tool (Watson et al., 2007), Bozorth3. The intra-class scores contain 7×100 = 700 genuine scores, and the interclass scores consist of 7×99×100 = 69300 impostor scores for the whole database. Minutiae templates used in the experiment were also extracted by using the NBIS tool, MINDTCT. This software generates a quadruple representation of minutia point, mi = {x, y,o,q}, where (x, y) is the location of minutia point, o indicates orientation and q is a quality score of minutia point. In the experiment, the location has been used only for calculating the proposed quality metric. 3.2 Parameter Settings Fernandez et al. (Alonso-Fernandez et al., 2007) and Olsen (Olsen et al., 2012) respectively calculated Pearson and Spearman correlation coefficients between different quality metrics to observe their behavior. Similarly, we investigate the behavior of the proposed quality metric through the Pearson correlation coefficients, by which the parameters areappropriately selected as well. The three thresholds (Yp, Ya and Yr) are all empirical values observed in the experiments and they are all dependent on the resolution of the image which is supposed to be over 500 dpi in this study. With the experiment, we noted that the smallest area of the triangles of each template is generally less than 70 (considering a histogram of 100 bins). This value is only a scalar without considering the unit of the measurement. In this case, we firstly preferred to choose a value of the area over 70. In addition, it is easy to observe that a threshold larger than 80 may loose the significance of this parameter. The variation of the correlation values (larger than 0.3) demonstrates this problem, see figure 4. Figure 4: The variation of correlation between the proposed metric and OCL as the parameter changes. Likewise, the smallest perimeter value of the triangles of each template is mostly within the interval [10, 80], and generally lies around 35 (according to the histogram). In this case, we further consider the relation between the area and the perimeter of those triangles that seemed abnormal. Without considering the unit of the two measurements (one is 1-D and another is 2-D), we observed that the value of the perimeter is generally smaller than the area. In this case, inspiring by the Heron’s formula, we choose a threshold to represent the ratio between these two measurements. We observed that the triangle is extremely narrow if the ratio between a perimeter and an area is close to 1. Besides, similarly, it is also not necessary to consider larger values for the perimeter. We first choose a reference quality metric among all the others. The correlation of OCL doesn’t vary so much on variant databases. Therefore, we simply choose the OCL in the experiment. Figure 4 provides only the graphical result of the variation of correlation value between OCL and the quality metric obtained with a series values of two parameters. In the experiments, the thresholds of the area and perimeter vary in the range of [40, 100] and [30, 80] with an interval of 1, respectively. According to figure 4, we also observed that the variation of Yp leads to more impacts on the correlation coefficient than Ya when other parameters had been set approximately. In order to achieve a generality of the proposed quality metric, the values of Yp, Ya and Yr in this study are 75, 70 and 0.8, respectively. At last, the behavior of these parameters were estimated by using performance validation approach, and the variation of the performance measurement (EER) obtained in a small interval of each of them tends to be stagnant. With this empirical analysis, the parameters are set as what had just been mentioned. 3.3 Feature Analysis To validate the MQF, we calculate the correlation coefficients between several quality metrics we have studied including the MQF. In addition to the two orientation-based indexes, OCL and the orientation flow (OF) (Lim et al., 2002), we also employ a wavelet domain feature carried out via the Pet Hat’s continuous wavelet (PHCWT) (Nanni and Lumini, 2007). In the literature, it is said that the Pet Hat wavelet is sensitive to the sharp variations of features such as fingerprint ridges. Nevertheless, we also use a pixel-based quality metric which is the standard deviation (STD) of fingerprint local block indicating pixel information of the image (Lee et al., 2005). The NFIQ is also involved in this section. Table 2 presents the correlation results of the trial quality metrics. Table 2: Inter-class Pearson correlation coefficients. FVC2002DB2A OCL OF PHCWT STD MQF NFIQ 1 0.013 0.932 0.892 0.781 -0.503 0.013 1 0.092 0.122 0.070 0.061 0.932 0.092 1 0.954 0.788 -0.474 0.892 0.122 0.954 1 0.678 -0.374 0.781 0.070 0.788 0.678 1 -0.422 -0.503 0.061 -0.474 -0.374 -0.422 1 Table 2 provides only an inter-class correlation result of the employed quality metrics obtained from FVC2002DB2A. According to the coefficient values indicated with the highlighted cells, one can observe that MQF demonstrates the correlated behavior with the others except the OF. The correlation coefficientsbetween the proposed metric and others calculated from the remaining databases are given in table 3 Table 3: Pearson correlation coefficients between MQF and others. MQF of OCL OF PHCWT STD NFIQ 00DB2 0.409 -0.131 0.291 0.301 -0.081 04DB1 0.899 0.253 0.905 0.817 -0.201 04DB2 -0.050 -0.489 0.722 0.650 -0.378 04DB3 0.863 0.021 0.818 0.811 -0.363 According to the results, in addition to FVC2000DB2A, one can note that MQF shows a relatively stable correlation with other metrics, i.e. it exhibits an usability to variant databases. The correlation value between the proposed metric and OCL for FVC2004DB2A shows an odd value because a lot of over-inked samples are contained in this database. This problem results in some difficulties for calculating the OCL and leads to a lot of singular values. Note that the proposed metric uses only the set of minutiae location, and the fingerprint image is considered as unavailable. 3.4 Evaluation According to the literature (Grother and Tabassi, 2007), the quality measure of a biometric sample is generally employed within 3 different cases: 1) including enrollment phase, 2) verification task and 3) identification. Enrollment is known as a supervised task for getting relatively good quality samples. The purpose for doing so is to guarantee the performance or reduce the recognition error as much as possible, i.e. the typical quality control operation. However, if the purpose is to validate a quality metric without considering the testing type (i.e. algorithm testing, scenario testing and so on.), the variation of the quality of enrollment sample would generate distinctive impacts on matching performance and the result is repeatable in the experiments. In this case, to estimate the validity of the MQF, an enrollment phase evaluation approach is applied to the quality metric (Yao et al., 2014). We computed the EER values of all the trial databases by choosing the best quality samples as the enrollments (in terms of quality value generated by MQF and NFIQ). A valid quality metric for choosing the enrollment samples should reduce error rates. Two graphs with the logarithmic curves and the EER values of two different cases are given in figure 5 to illustrate the enrollment selection strategy. (a) FVC2002DB2A (b) FVC2004DB2A Figure 5: The DET curves and global level EER values obtained by using the evaluation approach. 5a is FVC2002DB2A; 5b is FVC2004DB2A. In figure 5, the EER values of the two datasets based on NFIQ are 13.2% (02DB2A) and 12.4% (04DB2A), while the values corresponding to MQF are: 10.5% (02DB2A), and 13.6% (04DB2A), respectively. Table 4: The average EER values based-on enrollment selection. QM DB 00DB2A 04DB1A 04DB3A MQF 5.05% 15.03% 6.96% NFIQ 4.98% 15.33% 7.48% According to this result, the performance of MQF is validated with the property that a good quality index reduces the matching error. However, a further validation needs to be acquired for making a conclusion that the global EER value is a statistically objective measurement of the performance. To do so, we calculate a confidence interval (CI) (Giot et al.,2013) at 95% level for the global EER values based on different quality metrics. In biometrics, the CI of two different measurements are able to indicate the statistical difference between them if their confidence intervals do not overlap each other. The CI values of the EER for each quality metric is calculated via a set of randomly selected intra-class and inter-class score samples after enrollment selection. The size of each kind of randomly selected matching scores is 500, and hence the 95% CI is obtained with 1000 samples of the EER values, i.e. this random selection has been performed for 1000 iterations to calculate EER samples. Table 4 provides the average EER values of the other 3 databases. Table 5: The 95% confidence interval of the EERs. DB QM MQF NFIQ 00DB2A (CI) [0.0498 0.0510] [0.0492 0.0502] 02DB2A (CI) [0.1101 0.1118] [0.1323 0.1337] 04DB1A (CI) [0.1493 0.1509] [0.1531 0.1548] 04DB2A (CI) [0.1509 0.1535] [0.1318 0.1340] 04DB3A (CI) [0.0683 0.0694] [0.0742 0.0754] In table 5, the CI of the EER values based on the two quality metrics statistically illustrates the validity of the proposed quality metric. The overlap happened to FVC2000DB2A, for the EER values obtained from this database is nearly the same. Moreover, we simply choose several images to illustrate the differences between the two quality metrics and their drawbacks. For instance, the MQF values of the samples given in figure 6 are (2.94, 38.61, 38.46, 64.11, 61.2), and their NFIQ values are all level 2. According to sample (a), one can find that it contains only a partial of the fingerprint image which is not suitable for matching. In addition, the samples with MQF values under 40 are not as good as a level 2 sample in this example. The samples (b) and (c) would result in spurious minutiae. On the other hand, an obvious shortage of MQF is the area measurement which would generate outliers in many cases, such as the samples illustrated by figure 6 (d) and (e). Figure 6: Illustration of the different between MQF and NFIQ. The experiments are implemented via Matlab 7.12. The computation takes approximately 0.423 seconds per sample according to a calculation of 1600 samples when the input is image, and 0.122 seconds for template inputs. 4 CONCLUSION This study mainly focuses on estimating fingerprint quality simply with a minutiae template. By investigating the relation between image-based quality criteria and the structure of minutiae template, we calculate the area of minutiae region via a convex hull and the Delaunay triangulation. The uniqueness of Delaunay triangulation provides a possibility that some unreasonable minutiae could be further eliminated from template, and the particular rules for calculating convex hull enables estimating a relatively minimum area of the detected minutiae. Accordingly, we define a simple yet efficient quality metric for fingerprint and minutiae template. In another aspect, the quality metric could be affected by some bad samples with large minutiae region. The lack of image information makes this problem inevitable. Correspondingly, we analyzed the proposed quality metric via Pearson correlation coefficients and evaluated its performance with an enrollment phase approach. Therefore, it is reasonable to conclude that the proposed quality metric is an effective measurement for assessing the quality of a various of fingerprint samples when their associated templates are available only. As fingerprint quality metric is generally defined with multiple features, this quality metric therefore could be a candidate for those composite metrics. The future work of this study tends to concentrate on combining this quality metric with some others extracted from minutiae template to obtain better performance.REFERENCES Alonso-Fernandez, F., Fierrez, J., Ortega-Garcia, J., Gonzalez-Rodriguez, J., Fronthaler, H., Kollreider, K., and Bigun, J. (2007). A comparative study of fingerprint image-quality estimation methods. Information Forensics and Security, IEEE Transactions on, 2(4):734–743. Andrew, A. M. (1979). Another efficient algorithm for convex hulls in two dimensions. Information Processing Letters, 9(5):216–219. Aufmann, R., Barker, V., and Nation, R. (2007). College Trigonometry. Cengage Learning. Bolle, R. M., Pankanti, S. U., and Yao, Y.-S. (1999). System and method for determining the quality of fingerprint images. US Patent 5,963,656. Chen, T., Jiang, X., and Yau, W. (2004). Fingerprint image quality analysis. In Image Processing, 2004. ICIP ’04. 2004 International Conference on, volume 2, pages 1253–1256 Vol.2. Delaunay, B. (1934). Sur la sphere vide. Izv. Akad. Nauk SSSR, Otdelenie Matematicheskii i Estestvennyka Nauk, 7(793-800):1–2. Feng, J. and Jain, A. K. (2011). Fingerprint reconstruction: from minutiae to phase. Pattern Analysis and Machine Intelligence, IEEE Transactions on, 33(2):209–223. Giot, R., El-Abed, M., and Rosenberger, C. (2013). Fast computation of the performance evaluation of biometric systems: Application to multibiometrics. Future Gener. Comput. Syst., 29(3):788–799. Grother, P. and Tabassi, E. (2007). Performance of biometric quality measures. Pattern Analysis and Machine Intelligence, IEEE Transactions on, 29(4):531–543. Lee, B., Moon, J., and Kim, H. (2005). A novel measure of fingerprint image quality using the Fourier spectrum. In Jain, A. K. and Ratha, N. K., editors, Society of Photo-Optical Instrumentation Engineers (SPIE) Conference Series, volume 5779 of Society of PhotoOptical Instrumentation Engineers (SPIE) Conference Series, pages 105–112. Lim, E., Jiang, X., and Yau, W. (2002). Fingerprint quality and validity analysis. In Image Processing. 2002. Proceedings. 2002 International Conference on, volume 1, pages I–469–I–472 vol.1. Maio, D., Maltoni, D., Cappelli, R., Wayman, J. L., and J., A. K. (2004). Fvc2004: Third fingerprint verification competition. In Biometric Authentication, pages 1–7. Springer. Maltoni, D., Maio, D., Jain, A. K., and Prabhakar, S. (2009). Handbook of fingerprint recognition. Springer. Nanni, L. and Lumini, A. (2007). A hybrid waveletbased fingerprint matcher. Pattern Recognition, 40(11):3146–3151. Olsen, M., Xu, H., and Busch, C. (2012). Gabor filters as candidate quality measure for NFIQ 2.0. In Biometrics (ICB), 2012 5th IAPR International Conference on, pages 158–163. Ratha, N. K. and Bolle, R. (1999). Fingerprint image quality estimation. IBM TJ Watson Research Center. Staff, B. S. I. (2009). Information Technology. Biometric Sample Quality. Framework. B S I Standards. Tabassi, E., Wilson, C., and Watson, C. (2004). NIST fingerprint image quality. NIST Res. Rep. NISTIR7151. Watson, C. I., Garris, M. D., Tabassi, E., Wilson, C. L., Mccabe, R. M., Janet, S., and Ko, K. (2007). User’s guide to nist biometric image software (nbis). Yao, Z., Charrier, C., and Rosenberger, C. (2014). Utility validation of a new fingerprint quality metric. In International Biometric Performance Conference 2014. National Insititute of Standard and Technology (NIST). Zhao, Q., Liu, F., and Zhang, D. (2010). A comparative study on quality assessment of high resolution fingerprint images. In Image Processing (ICIP), 2010 17th IEEE International Conference on, pages 3089–3092. IEEE. Fingerprint Quality Assessment Combining Blind Image Quality, Texture and Minutiae Features Z Yao, Jean Marie Le Bars, C Charrier, C Rosenberger To cite this version: Z Yao, Jean Marie Le Bars, C Charrier, C Rosenberger. Fingerprint Quality Assessment Combining Blind Image Quality, Texture and Minutiae Features. International Conference on Information Systems Security and Privacy , Feb 2015, Angers, France. HAL Id: hal-01096170 https://hal.archives-ouvertes.fr/hal-01096170 Submitted on 16 Dec 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.Fingerprint Quality Assessment Combining Blind Image Quality, Texture and Minutiae Features Z. Yao, J. Le bars, C. Charrier and C. Rosenberger Universite de Caen Basse Normandie; ENSICAEN; UMR 6072 GREYC, Caen, France. {jean-marie.lebars; christophe.charrier}@unicaen.fr {zhigang.yao; christophe.rosenberger}@ensicaen.fr Keywords: Fingerprint, minutiae template, quality assessment, evaluation. Abstract: Biometric sample quality assessment approaches are generally designed in terms of utility property due to the potential difference between human perception of quality and the biometric quality requirements for a recognition system. This study proposes a utility based quality assessment method of fingerprints by considering several complementary aspects: 1) Image quality assessment without any reference which is consistent with human conception of inspecting quality, 2) Textural features related to the fingerprint image and 3) minutiae features which correspond to the most used information for matching. The proposed quality metric is obtained by a linear combination of these features and is validated with a reference metric using different approaches. Experiments performed on several trial databases show the benefit of the proposed fingerprint quality metric. 1 INTRODUCTION Fingerprint systems, among biometric modalities, are the most deployed solution due to the invariability, usability and user acceptance of fingerprints (Jain et al., 2004). So far, the application of fingerprint is no longer limited to traditional public security area (official applications), but spread into the daily life, smart phone authentication and e-payment, for instance. Because of the continuous developments, fingerprint quality assessment has become a crucial task in the deployment of systems in real applications. There is no doubt that a good quality sample during the enrollment process can reduce recognition errors. The good quality of a fingerprint sample is also beneficial to matching operations (Grother and Tabassi, 2007) in addition to the clarity of human intuition and feature extractability of the image (Chen et al., 2005). In this case, most previously proposed fingerprint quality approaches have been implemented in terms of utility of biometric sample’s quality rather than fidelity (Alonso-Fernandez et al., 2007), i.e. biometric sample’s quality should be related to system performance. Tabassi et al. (Tabassi et al., 2004) defined their quality metric as a predictor of system performance by considering the separation of genuine matching scores (GMS) and impostor matching scores (IMS). Chen et al. (Chen et al., 2005) later proposed one quality metric by considering authentication performance. As we can see in the literature, features are very important to make a reliable judgment of the quality of a fingerprint. Moreover, a fingerprint can be considered as an image or a set of minutiae we could extract many features. This study proposes a quality metric of fingerprint image based on the utility property by considering two aspects in general: 1) the fingerprint image itself and 2) the corresponding minutiae template which is rarely taken into account for this issue. The validation of the proposed quality metric is carried out by using two approaches based on the prediction of authentication performance. The main contribution of the paper is to propose a continuous quality index of a fingerprint integrating different points of view (brought by the used features) and providing a better assessment. This paper is organized as follows: Section 2 details the features for computing the proposed quality metric. Section 3 presents the computation approach of the proposed quality metric. Experimental results are given in 4. Conclusion is given in section 5. 2 QUALITY FEATURES The general purpose of this work is to qualify original fingerprint samples and to analyze the proposed quality metric through different validation ap-proaches. The proposed quality metric is based on a former method in (El Abed et al., 2013). That work evaluated altered fingerprint image quality with two kinds of quality features, one is universal (no reference image quality assessment) and another is related to the fingerprint modality. We employ this framework for the original fingerprint samples. 2.1 NR-IQA and Prior Features In (El Abed et al., 2013), 11 features have been used to obtain the quality metric, including one derived from a NR-IQA algorithm (Saad et al., 2012) and the others are image-based features. Details of the feature are not presented again in this paper. A general description is given in table 1. Table 1: List of quality features in (El Abed et al., 2013) Feature Description NO. NR-IQA BLIINDS (Saad et al., 2012) 1-N1 SIFT point number Number of SIFT keypoints 2-S1 SIFT DC coef- ficient DC coefficient of SIFT features 3-S2 SIFT Mean Mean measure related to SIFT keypoints 4-S3 SIFT STD Standard deviation related to SIFT keypoints 5-S4 Block number Number of blocks (17×17) 6-P1 Patch RMS Mean Mean of blocks RMS1 values. 7-P2 Patch RMS STD Standard deviation of RMSs 8-P3 Patch RMS Median Median of blocks RMSs. 9-P4 Patch RMS skewness Skewness of blocks RMSs. 10-P5 Median LBP 256-level MBP histogram 11-P6 1. ’RMS’ is the abbreviation of Root Mean Square. Salient features are extracted by using Scale Invariant Feature Transform (SIFT) operator. For patched features, it firstly divide images into blocks of 17×17, and then the root mean square (RMS) value of each block is computed to obtain the quality features. 2.2 Texture-based Quality Features Texture features are widely used for image classifi- cation and retrieval applications. There is not study observed that whether some of them are able to contribute distinctive results for quality assessment of fingerprint image. In this study, 11 texture features have been selected as the components for generating the proposed quality metric, cf. 2. These features have been classified into four classes: 1) The first class of textural features embeds local binary pattern (LBP) features and its extensions or transforms. LBP features have been proposed by Ojala et al (Ojala et al., 2002) for image classifi- cation. This feature is simple yet efficient so that it is widely used for texture analysis. The idea of LBP operator was that the two-dimensional surface textures can be described by two complementary measures: local spatial pattern and gray scale contrast (Pietikainen, 2011). Basic LBP operator ¨ generates a binary string by thresholding each 3- by-3 neighborhood of every pixel of the image. Table 2: List of texture features. Feature Format NO. LBP 256-level LBP histogram vector 1-C1 Four-patch LBP Descriptor code vector 2-C1 Completed LBP 512-bit 3D joint histogram vector 3-C1 GLCM measures 8-bit GLCM vector 4-C2 LBP H-FT LBP histogram FT1 vector 5-C1 2S 16O1 Gabor 64-bit Gabor response vector 6-C3 4S 16O Gabor 128-bit Gabor response vector 7-C3 8S 16O Gabor 256-bit Gabor response vector 8-C3 16S 16O Gabor 512-bit Gabor response vector 9-C3 LRS 81-bit LRS motif histogram vector 10-C4 Median LBP 256-level MBP histogram 11-C1 1. ’S’, ’O’ and ’FT’: abbr. of scale, orientation and Fourier Transform. The transforms of LBP involved in this study include four-patch LBP (FLBP), completed LBP (CLBP), LBP histogram Fourier transform (LBPHFT) (Nanni et al., 2012) and median LBP (MLBP) (Hafiane et al., 2007). 2) Second class is Haralick feature or gray level co-occurrence matrix (GLCM) (Haralick et al., 1973). In this study, 4 statistic measures generated from the GLCM matrix in 4 directions combination of neighbor pixels are computed, including energy, entropy, moment and correlation. 3) The 2D Gabor decomposition is a sinusoidal function modulated by a Gaussian window. In this case, the basis of a Gabor function is complete but not orthogonal. In the last few decades, it has been widely applied to fingerprint image and other biometric data to perform classification and segmentation tasks. Shen et al. (Shen et al., 2001) proposed using Gabor response to evaluate fingerprint image quality, in which it is said that one or several Gabor features of 8-direction Gabor response are larger than that of the others. Olsen etal. (Olsen et al., 2012) proposed a quality index based on 4-direction Gabor response and it is said that 4-direction is sufficient to qualify fingerprint. However, in this study, it is observed that 2-scale 4-direction Gabor filters do not bring out distinctive regularity for fingerprint images of a specified database. 4) The last one concerns local relational string (LRS) (Hafiane and Zavidovique, 2006) which is an illumination invariant operator and it reflects variation of local gray level of the image. The operator is based on the local pixels relation in a specified scale, and it uses 3 relations to generate local relation motif histogram for measuring local spatial variations of the image. 2.3 Minutiae-based Quality Features Feng et al. (Feng and Jain, 2011) proposed to reconstruct a fingerprint image from the triplet representation of minutia point. Such a result demonstrates the significance of minutiae template. In this study, we relate the minutiae template to the quality assessment of fingerprint by defining several quality features based on minutiae number and DFT of the three components of minutiae point, as shown in table 3. Table 3: Minutiae number-based measures related to fingerprint quality. Measure Description NO. Minutiae number (MN) Minuitiae number of fingerprint. 1-M1 Mean of minutiae DFT Defined as equation (1b) 2-M1 STD of minutiae DFT Equation (1c) 3-M1 MN in ROI1 MN in a rectangle region. 4-M1 MN in ROI 2 MN in a circle region. 5-M1 Region-based RMS Root mean square (RMS) value of MN based on two blocks of the template. 6-M1 Region-based median Median value of MN obtained by dividing the template into 4 blocks. 7-M1 Block-based measure A block-based score for the template. 14-M1 1. region of interest. Minutiae-based measures given in table 3 are calculated based on a the template of detected minutiae extracted by using NBIS tool (Watson et al., 2007). This template contains a quadruple representation of minutia point which consists of 1) the position (x, y) of detected minutiae, 2) the orientation θ of detected minutiae, and 3) a quality score of detected minutiae. In the experiment, only the minutiae positions and orientations are used for calculating these measures. In the following, the details of some of the measures are presented. In the experiment, both measure 2 and 3 are derived from the magnitude of the Fourier transform of the linear combination of 3 minutia components after eliminating DC component, as described in equation 1. F (x, y,θ) = N−1 ∑ n=0 xn·µ kn +yn·ν kn +θ·ω kn . (1a) where µ, ν, and ω are frequency samples. Measures M2 and M3 are finally computed as follows: M2 = |F (x, y,θ)|, (1b) M3 = s 1 N N ∑ i=1 (Fi −M2). (1c) DC component was eliminated when computing these two measures because there is no valuable information in this element. For measure 4, the size of rectangle region is determined by the maximum value of both x and y coordinates of minutiae, for which there is no useful information outside the foreground of the fingerprint in this case. This choice also ensures that the region of interest will not go over the effective area of minutiae. An example of rectangle region is shown in figure 1 (a). Figure 1: Example of circle region (a), rectangle region (b), and template block partition in the size of fingerprint (c). The radius of the circle region for measure 5 is also determined by the maximum and minimum location value of minutiae along the horizontal direction of fingerprint, for minutiae lie around fingerprint center are said to be those who contribute most to fingerprint matching, i.e. they are considered as the most informative. As the quadruple representation does not provide information of fingerprint corepoint, an estimated point was used as the center’s location of the fingerprint. A comparison has been made between the estimated center point and a core point detected by another approach, and it is found that the result does not vary too much. The estimated center position was determined by considering the maximum and minimum minutiae location as well. An example of the circular region is shown in figure 1 (b). For measures 6 and 7, the whole fingerprint region is divided into 2 and 4 blocks, and minutiae number in each block is considered to generate a measure. Another block-based measure is calculated by dividing the whole fingerprint region into several blocks in the size of 64×64. The blocks are classified into 3 classes, reasonable block, vague block, and unreasonable block. At last, a quality index is assigned to each block in terms of the minutiae number in the block, for which a threshold is used for determining the index of each block. An example of block partition is shown by figure 1 (c). In addition, features proposed in (Ross et al., 2005) are calculated in terms of minutiae distribution and orientations, and they are rotation and translation invariant. We analyse in section 4.2 the behavior of these quality features. Based on all these quality features, we generate a quality metric using the method described in the next section. 3 QUALITY METRIC DEFINITION The quality metric of fingerprint (QMF) image in this study is computed by an approach using a Genetic Algorithm (GA) proposed in (El Abed et al., 2013). It uses a weighted linear combination of the quality features, formulated as Q = N ∑ i=1 αiFi , (2) where N is the number of quality features Fi (i = 1,··· ,N), αi are the weighted coefficients. The weighted coefficients are computed via optimizing a fitness function of GA which is composed by the Pearson correlation between combined quality results defined by equation 2 and corresponding GMS of fingerprints samples. This approach realizes a learning of quality assessment and optimizes the weighted coefficients to generate a continuous quality metric combining different features. 4 EXPERIMENTAL RESULTS In order to validate the behavior of the quality metric (denoted as QMF) of this study, an analysis of the proposed features is realized. The validation of QMF is implemented by observing the evaluation results of both QMF and NFIQ (Tabassi et al., 2004). 4.1 Protocol and Databases In this study, three FVC databases (Maio et al., 2004) have been used for experiments: FVC2002DB2A, FVC2004DB1A, and FVC2004DB3A. The first two databases are established by optical sensor and the last one is thermal sweeping sensor. The resolutions and image dimensions of all 3 databases are 500dpi, 500dpi, 512dpi, and 296×560, 480×640, and 300×480, respectively. Each database involves 100 fingertips, and 8 samples for each fingertip. The intraclass and inter-class matching scores involved in the experiment have been calculated by using NBIS tool (Watson et al., 2007) namely Bozorth3 and a commercial SDK (IDt, ). Minutiae template used in the experiment were also extracted by using the corresponding MINDTCT and the SDK. The minutiae-based features involve in only the location (x, y) and the orientation o of minutia so that we don’t consider the quality value of the points (generated by MINDTCT) and the type of them (given by SDK). 4.2 Feature Analysis Fernandez et al. (Alonso-Fernandez et al., 2007) and Olsen (Olsen et al., 2012) respectively calculated Pearson and Spearman correlation coefficients between different quality metrics to observe the behaviour of them. We use the same approach in this study by computing the Pearson correlation between several quality metrics and the QMF. Quality metrics used for this analysis include OCL (Lim et al., 2002), orientation flow (OF) (Chen et al., 2004), standard deviation (STD) (Lee et al., 2005), Pet Hat’s wavelet (PHCWT) (Nanni and Lumini, 2007) and NFIQ. Figure 5, 7, 6 presents the correlation results obtained from the trial databases for all quality features. In table 5, highlighted columns (with yellow) demonstrated a relatively stable correlation for all the three databases, and some others marked with green illustrated their feasibility for certain data sets. According to this observation, we could make an attempt to reduce some redundant features in next study. Table 7 presents only 11 of the minutiae-based features, for the correlation of them is not very dis-tinctive. Some of them demonstrate good correlated behavior with the quality metrics, but greatly vary among the data sets and even not correlated with any of the quality metrics. Likewise, the correlation results of the image-based features are given in table 6. We use all these features to calculate the quality metric which enables qualifying fingerprint samples with complemental information. Note that the last columns denote relatively good correlation between the NR-IQA and the quality metrics. 4.3 Metric validation The validation involves in two sections, one is the impact of enrollment selection (YAO et al., 2014) and another is a utility evaluation (Chen et al., 2005). 4.3.1 Impact on the enrollment process Authors in (Grother and Tabassi, 2007) discussed on quality values used for three different cases, including enrollment phase, verification task and identification. Enrollment is generally a supervised task for getting relatively good quality samples, and one main difference between verification and identification tasks is the existence of enrollment which directly impacts on how FNMR and FMR acts. However, if the purpose is to validate a quality metric without considering the testing type (i.e. algorithm testing, scenario testing and etc.), the variation of enrollment samples quality would generate distinctive impacts on matching performance and the result is repeatable in the experiments. We computed the EER values of 3 databases by choosing the best quality samples as the reference (by using NFIQ and QMF). A good quality metric for the choice of the references should reduce matching error rate. The ROC curves and EER values of FVC2004DB1A based on this strategy are presented as an illustration, see figure 2. The EER values by using NFIQ (for the enrollment process) is 14.8%, and 14.1% with the QMF metric. For FVC2002DB2A and FVC2004DB3A, the EER values are 13.2% (NFIQ), 10.6% (QMF), 8.3% (NFIQ) and 6.7% (QMF). These results show the benefit of QMF face to NFIQ as it permits to optimize the enrollment process. Figure 2: Enrollment selection result of FVC2004DB1A. In addition, such EER values are calculated via the commercial SDK, results obtained via NFIQ are 3.99% (02DB2A), 9.39% (04DB1A) and 4.76% (04DB3A), while the values obtained by using QMF are 3.39% (02DB2A), 5.35% (04DB1A) and 4.64% (04DB3A), respectively. This result demonstrates whether the QMF is possible for dealing with interoperability. However, in practical, this property relies on both the performance of matching algorithm and the quality metric. We employ this result simply for validating the QMF. 4.3.2 Quality and performance evaluation The second approach is based on the isometric bins of samples sorted in an ascending order the quality values and is more strict for the distribution of the quality values. In order to validate the QMF by referring to NFIQ, instead of dividing quality values of NFIQ into 5 isometrics bins, we divided them into 5 bins which correspond to its 5 quality labels. The reason for doing so is that NFIQ fails to satisfy the isometric-bin evaluation criteria, as given in figure 3. Figure 3: Example of 5-bin evaluation for NFIQ on FVC2002DB2A.Then, the EER values of the divided bins are calculated. For NFIQ-based quality values, it is easier to calculate the EER values of the 5 label bins, as it is depicted in figure 4. Figure 4: Monotonic increasing matching performance validation of FVC2002DB2A for NFIQ, calculated by dividing quality values into 5 isometric bins (no sample of quality 5 for this database). Figure 5: Monotonic increasing matching performance validation of FVC2002DB2A for QMF, calculated by dividing quality values into 5 isometric bins. We are able to observe that the matching performances on FVC2002DB2A and FVC2004DB3A are monotonically increased by pruning bad quality samples gradually. NFIQ generated quality levels from 1 to 4 for FVC2002DB2A, and no samples of level 5 were figured out for this database. This might be due to the minutiae points detected on the images of this database, because NFIQ algorithm involves in minutia quality of the fingerprint image. This situation was observed when calculated the correlation between 14 minutiae quality features and genuine matching scores in the experiment of this study. It shows a relatively higher correlation on FVC2002DB2A, while the values of two other databases are relatively lower. For FVC2004DB1, both the proposed quality metric and the reference algorithm showed certain difficulties. Here, only the graphical results on FVC2002DB2A are presented, while the 5 bins’ EER values based on proposed approach and NFIQ of FVC2004DB1A and FVC2004DB3A are given in table 4. The quality values of QMF are normalized into [0, 100] on each database where small value denotes bad quality (bin 1). The NFIQ has 5 quality levels where level 1 represents the best quality and level 5 is the worst one. Table 4: 5 bins EER values based on QMF and NFIQ of FVC2004DB1A and FVC2004DB3A. Bin No. B1 B2 B3 B4 B5 Q 1 . (04DB1) 22.2% 16.6% 17.2% 17.8% 13.3% N 1 . (04DB1) 15.8% 18.1% 17.7% 23.2% 26.5% Q. (04DB3) 14.2% 8.9% 7.4% 5.8% 4.2% N. (04DB3) 7.5% 8.1% 13.4% 12.9% 29.8% 1. ’Q’ and ’N’ are abbreviation of ’QMF’ and ’NFIQ’, respectively. 5 CONCLUSION This study first propose a fingerprint quality metric by considering image-based quality features and those derived from minutiae template. Second, the quality metric has been validated by using different validation approaches. In the study, the proposed quality metric was evaluated on 3 different FVC databases, FVC2002 DB2 A, FVC2004 DB1 A, and FVC2004 DB3 A. Among the validation result, it can be observed that the performance of quality metric shows a great variation between different databases, where both the reference quality algorithm and proposed quality metric obtain relatively good result on FVC 2004 DB3 A. This is due to several factors impacted on image quality and matching performance. In addition to external factors such as sensor type (Ross and Jain, 2004) and environment, it might be involved in image factors, such as contrast, image size, pixel density, foreground and background area; and correspondingly the factors caused by minutiae template, such as minutiae location, minutiae reliability, and other minutiae properties if they are considered. In this study, a lot of quality features were adopted for generating quality metric. In this case, it is necessary to analyze the redundancy of quality feature in the future work. Besides, in order to improve the current quality metric, future works of this study will also focus on feature processing for the quality metric.REFERENCES User friendly toolkit for easy integration of state of the art fingerprint recognition technology. Alonso-Fernandez, F., Fierrez, J., Ortega-Garcia, J., Gonzalez-Rodriguez, J., Fronthaler, H., Kollreider, K., and Bigun, J. (2007). A comparative study of fingerprint image-quality estimation methods. Information Forensics and Security, IEEE Transactions on, 2(4):734–743. Chen, T., Jiang, X., and Yau, W. (2004). Fingerprint image quality analysis. In Image Processing, 2004. ICIP ’04. 2004 International Conference on, volume 2, pages 1253–1256 Vol.2. Chen, Y., Dass, S. C., and Jain, A. K. (2005). Fingerprint quality indices for predicting authentication performance. In Audio-and Video-Based Biometric Person Authentication, pages 160–170. Springer. El Abed, M., Ninassi, A., Charrier, C., and Rosenberger, C. (2013). Fingerprint quality assessment using a noreference image quality metric. In European Signal Processing Conference (EUSIPCO), page 6. Feng, J. and Jain, A. K. (2011). Fingerprint reconstruction: from minutiae to phase. Pattern Analysis and Machine Intelligence, IEEE Transactions on, 33(2):209–223. Grother, P. and Tabassi, E. (2007). Performance of biometric quality measures. Pattern Analysis and Machine Intelligence, IEEE Transactions on, 29(4):531–543. Hafiane, A., Seetharaman, G., and Zavidovique, B. (2007). Median binary pattern for textures classification. In Image Analysis and Recognition, pages 387–398. Springer. Hafiane, A. and Zavidovique, B. (2006). Local relational string for textures classification. In Image Processing, 2006 IEEE International Conference on, pages 2157– 2160. Haralick, R. M., Shanmugam, K., and Dinstein, I. H. (1973). Textural features for image classification. Systems, Man and Cybernetics, IEEE Transactions on, (6):610–621. Jain, A. K., Ross, A., and Prabhakar, S. (2004). An introduction to biometric recognition. Circuits and Systems for Video Technology, IEEE Transactions on, 14(1):4– 20. Lee, B., Moon, J., and Kim, H. (2005). A novel measure of fingerprint image quality using the Fourier spectrum. In Jain, A. K. and Ratha, N. K., editors, Society of Photo-Optical Instrumentation Engineers (SPIE) Conference Series, volume 5779 of Society of PhotoOptical Instrumentation Engineers (SPIE) Conference Series, pages 105–112. Lim, E., Jiang, X., and Yau, W. (2002). Fingerprint quality and validity analysis. In Image Processing. 2002. Proceedings. 2002 International Conference on, volume 1, pages I–469–I–472 vol.1. Maio, D., Maltoni, D., Cappelli, R., Wayman, J. L., and Jain, A. K. (2004). Fvc2004: Third fingerprint verification competition. In Biometric Authentication, pages 1–7. Springer. Nanni, L. and Lumini, A. (2007). A hybrid waveletbased fingerprint matcher. Pattern Recognition, 40(11):3146–3151. Nanni, L., Lumini, A., and Brahnam, S. (2012). Survey on lbp based texture descriptors for image classification. Expert Systems with Applications, 39(3):3634 – 3641. Ojala, T., Pietikainen, M., and Maenpaa, T. (2002). Multiresolution gray-scale and rotation invariant texture classification with local binary patterns. Pattern Analysis and Machine Intelligence, IEEE Transactions on, 24(7):971–987. Olsen, M. A., Xu, H., and Busch, C. (2012). Gabor filters as candidate quality measure for nfiq 2.0. In Biometrics (ICB), 2012 5th IAPR International Conference on, pages 158–163. IEEE. Pietikainen, M. (2011). ¨ Computer vision using local binary patterns, volume 40. Springer. Ross, A. and Jain, A. (2004). Biometric sensor interoperability: A case study in fingerprints. In Biometric Authentication, pages 134–145. Springer. Ross, A., Shah, J., and Jain, A. K. (2005). Toward reconstructing fingerprints from minutiae points. In Defense and Security, pages 68–80. International Society for Optics and Photonics. Saad, M., Bovik, A. C., and Charrier, C. (2012). Blind image quality assessment: A natural scene statistics approach in the DCT domain. IEEE Transactions on Image Processing, 21(8):3339–3352. Shen, L., Kot, A., and Koo, W. (2001). Quality measures of fingerprint images. In IN: PROC. AVBPA, SPRINGER LNCS-2091, pages 266–271. Tabassi, E., Wilson, C., and Watson, C. (2004). Nist fingerprint image quality. NIST Res. Rep. NISTIR7151. Watson, C. I., Garris, M. D., Tabassi, E., Wilson, C. L., Mccabe, R. M., Janet, S., and Ko, K. (2007). User’s guide to nist biometric image software (nbis). YAO, Z., Charrier, C., and Rosenberger, C. (2014). Utility validation of a new fingerprint quality metric. In International Biometric Performance Conference 2014. National Insititure of Standard and Technology (NIST).Table 5: Inter-class Pearson correlation for textural features. 02DB2A (top), 04DB1A (middle) and 04DB3A (bottom). OCL -0.6826 0.3002 -0.7037 -0.7895 -0.4462 -0.3294 0.3806 0.5864 0.6832 0.8699 -0.7593 OF -0.1938 0.1783 0.0098 -0.0396 -0.0452 -0.0700 0.1685 0.2016 0.1590 -0.0012 0.0593 PHC -0.6926 0.2864 -0.6665 -0.8805 -0.3391 -0.1957 0.3552 0.6329 0.7507 0.8476 -0.7807 STD -0.6230 0.3958 -0.5590 -0.8796 -0.3016 -0.3037 0.5620 0.8066 0.8940 0.7668 -0.7438 NFIQ 0.3919 0.1240 0.3483 0.4675 0.1617 -0.0057 0.0401 -0.0676 -0.1307 -0.4569 0.2731 OCL -0.6899 -0.7979 -0.7798 0.2582 0.7151 0.0456 0.4071 0.6708 0.7223 -0.7416 0.7125 OF -0.2642 -0.3263 -0.3057 0.1580 0.2073 0.1087 0.3968 0.4206 0.4539 -0.2281 0.2057 PHC -0.7060 -0.8206 -0.8416 0.2832 0.7535 0.0373 0.4722 0.7548 0.7964 -0.7701 0.7426 STD -0.5920 -0.7066 -0.7286 0.2249 0.6471 0.0554 0.4669 0.6930 0.7264 -0.6646 0.6297 NFIQ 0.1634 0.1607 0.1775 -0.0683 -0.2101 -0.0412 0.0897 -0.0254 -0.0157 0.2295 -0.2143 OCL -0.5001 -0.6394 -0.7460 0.0406 0.5144 0.0842 0.5301 0.6505 0.6948 -0.3814 0.5536 OF -0.2510 -0.1842 -0.1539 0.1097 0.0814 -0.2304 -0.1348 -0.1148 -0.0539 -0.1537 0.1566 PHC -0.1648 -0.2758 -0.4495 0.1015 0.1439 0.1660 0.6947 0.7992 0.7450 -0.1928 0.1726 STD -0.2401 -0.3447 -0.5029 0.0839 0.2221 0.1201 0.6398 0.7359 0.7037 -0.2161 0.2550 NFIQ -0.0532 -0.0886 0.0316 0.0183 0.0518 -0.2360 -0.3640 -0.4005 -0.2608 -0.0805 0.0907 Table 6: Inter-class Pearson correlation for image-based features. 02DB2A (top), 04DB1A (middle) and 04DB3A (bottom). OCL 0.4816 0.2370 0.2931 0.1775 0.3659 -0.9137 0.6643 -0.8818 0.4179 -0.5538 -0.8443 OF 0.0386 -0.0438 0.1038 0.0733 0.2487 0.0391 0.0875 -0.0197 0.0840 -0.1092 0.0452 PHCWT 0.4720 0.3650 0.3149 0.1234 0.4921 -0.7480 0.5860 -0.7129 0.4031 -0.5316 -0.8469 STD 0.3169 0.2133 0.4788 0.2037 0.5805 -0.7170 0.6608 -0.6660 0.4149 -0.5252 -0.8023 NFIQ 0.4434 0.4445 0.1735 0.0971 0.1164 0.4017 0.2510 0.4088 0.1409 0.2598 0.3907 OCL 0.4689 0.0418 0.3839 0.4307 0.5980 -0.9129 0.8823 N 0.2666 -0.3423 0.8753 OF 0.1908 0.0065 0.1216 0.0284 0.1347 -0.1971 0.1586 NaN -0.1877 0.2351 0.3396 PHC 0.5126 0.2468 0.4225 0.3492 0.7118 -0.7046 0.6858 N 0.2085 -0.2800 0.8687 STD 0.4070 0.2177 0.4946 0.3752 0.8112 -0.6632 0.6887 N 0.1722 -0.2416 0.7591 NFIQ -0.1890 -0.3808 0.1444 0.0117 -0.3420 0.0132 -0.0121 N 0.0175 0.0069 -0.0719 OCL 0.3414 0.2499 0.2271 -0.0788 0.6927 -0.2067 0.6544 -0.5836 0.0446 -0.0068 0.7988 OF -0.0558 -0.0645 -0.1039 -0.0052 0.0883 -0.0079 -0.1368 0.0741 -0.0361 -0.0017 0.0122 PHC 0.3580 0.4141 0.5300 -0.1290 0.5679 0.2351 0.8933 -0.2086 0.0303 0.0515 0.6215 STD 0.4175 0.4266 0.4661 -0.1211 0.6575 0.1858 0.9157 -0.2545 0.0262 0.0575 0.6319 NFIQ -0.2256 -0.3925 -0.1761 0.2087 -0.2670 -0.2824 -0.4156 -0.0671 0.0335 0.0112 -0.1193 Table 7: Inter-class Pearson correlation for minutiae-based features. 02DB2A (top), 04DB1A (middle) and 04DB3A (bottom). OCL 0.4077 0.3768 0.4040 0.2780 0.0826 0.3166 0.4214 -0.3196 -0.2799 -0.1930 -0.2568 OF 0.0327 0.0391 0.0442 -0.0096 0.0019 -0.0035 0.0491 -0.0040 -0.0987 0.0874 -0.0521 PHC 0.3717 0.3445 0.3735 0.2306 0.0298 0.2787 0.3829 -0.3230 -0.2704 -0.1934 -0.2791 STD 0.2391 0.2267 0.2376 0.1247 -0.0615 0.1630 0.2490 -0.2389 -0.2027 -0.1304 -0.1832 NFIQ -0.6052 -0.5393 -0.5949 -0.4783 -0.4639 -0.5807 -0.5554 0.4461 0.3544 0.2975 0.3198 OCL 0.5576 0.5290 0.5570 0.4649 0.5088 0.4505 0.5536 -0.3599 -0.3677 -0.3178 -0.3986 OF 0.0835 0.0946 0.0859 0.1661 0.0721 0.1334 0.0128 0.0159 0.1975 -0.1621 -0.0372 PHC 0.4036 0.4153 0.4150 0.3462 0.3731 0.3124 0.4184 -0.2908 -0.3245 -0.2718 -0.3121 STD 0.3876 0.4017 0.4003 0.3275 0.3446 0.3149 0.3865 -0.2992 -0.3093 -0.2611 -0.3095 NFIQ -0.1532 -0.1840 -0.1796 -0.1175 -0.1457 -0.1058 -0.1603 0.1778 0.1040 0.1771 0.1825 OCL 0.2447 0.2362 0.2521 0.1304 -0.0361 0.2280 0.2630 -0.2231 -0.1557 -0.1659 -0.2140 OF 0.2929 0.2577 0.2724 0.2786 0.3218 0.3043 0.2854 -0.0661 0.1458 -0.0830 -0.1077 PHC -0.1438 -0.1170 -0.1215 -0.1919 -0.3633 -0.1563 -0.1144 -0.1132 0.0373 0.0158 0.0406 STD -0.0421 -0.0243 -0.0220 -0.1007 -0.2618 -0.0561 -0.0130 -0.1491 -0.0271 -0.0423 -0.0281 NFIQ 0.3195 0.2497 0.2741 0.3971 0.4406 0.3391 0.2953 -0.0524 -0.0716 -0.0840 -0.0885 The Power of Polynomials Paul Feautrier To cite this version: Paul Feautrier. The Power of Polynomials . 5th International Workshop on Polyhedral Comilation Techniques, Jan 2015, Amsterdam, Netherlands. HAL Id: hal-01094787 https://hal.inria.fr/hal-01094787 Submitted on 13 Dec 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.The Power of Polynomials Work in Progress Paul Feautrier ENS de Lyon, LIP, INRIA, CNRS, UCBL Paul.Feautrier@ens-lyon.fr ABSTRACT Every component in the program development chain uses a model to represent and reason about its source. The model must be as expressive as possible without compromising its efficiency and tractability. This paper proposes a slight extension to the polyhedral model by allowing polynomial constraints and relations. Recent mathematical results by Handelman and Schweighofer on the Positivstellensatz allow one to devise algorithms similar to familiar emptiness tests or the Farkas algorithm. This paper presents applications of these ideas to three use-cases: dependence tests, scheduling and transitive closure approximation. It then points to unsolved problems and future work. 1. MOTIVATION Every compiler first starts by building an intermediate representation (IR) for the given source program. Most IRs are syntactical: the Abstract Syntax Tree, for instance, is a data structure which closely represents the input program, while abstracting away details like text layout or syntactical variations. In contrast, the polyhedral model represents the program as it will run, and considers the operations to be executed and their execution order. Since with present day processors the number of operations is to be counted in billions, the set of operations has to be represented in intention, and all operations on this set have to be executed symbolically. Hence the search for representations in which expressive power has to be traded against effectiveness. The polyhedral model is such a representation: every set – operations, execution order, dependences, memory accesses, memory footprints footprints, schedules – are represented as Z-polyhedra (sets of integer solutions to a system of affine inequalities). This model has met with a fair measure of success; however its expressive power is limited. The time has come to search for more powerful representations. In this search, one is guided by the following observation: many algorithms of the polyhedral model have been implicitly or explicitly devised in order to avoid using polynomials. IMPACT 2015 Fifth International Workshop on Polyhedral Compilation Techniques Jan 19, 2015, Amsterdam, The Netherlands In conjunction with HiPEAC 2015. http://impact.gforge.inria.fr/impact2015 This work has been partially supported by the ManycoreLabs project PIA- 6394 led by Kalrays. A case in point is the recourse to multidimensional schedules when a one dimensional schedule cannot fit. In [8] I proved (see Theorem 1), that a multidimensional schedule can be converted to a unidimensional one by counting clock ticks. This count can be computed using the theory of Ehrhart polynomials [4], and the result is a polynomial or quasipolynomial schedule. The same remark applies to array and channels: in CRP, I have introduced multidimensional channels in order to avoid linearization functions, which, despite their name, are polynomials [9]. This paper is organized as follows: I will first review recent mathematical results for the PositivStellenSatz, which play the same role for polynomials as Farkas lemma does for affine inequalities. I will then present a very preliminary implementation of the corresponding algorithm. I will apply it to several common use-cases: dependence calculations, scheduling and transitive closure. I will then review related work, and point to extensions and improvements. 2. MATHEMATICAL BACKGROUND Let p1, . . . , pn be polynomials in d variables. The set: S = {x ∈ IRd | p1(x) ≥ 0, p2(x) ≥ 0, . . . pn(x) ≥ 0} (1) is a semi-algebraic set. Polyhedra are special cases of semialgebraic sets where all pis are of first degree. Such sets arise in program analysis and optimization. Important questions are: is S empty, and, given a polynomial (or polynomial template) p, is p positive in S? A succession of recent results, starting with a paper by Krivine [14], has provided answers to some of these questions. Theorem 1 (Handelman [12]). Let S be a compact polyhedron as defined by (1), where all pi are of first degree. A polynomial p is strictly positive in S if and only if it can be represented as p(x) = λ0 + X ~e∈INn λ~ep e1 1 (x). . . p en n (x), (2) where the λ~e are non-negative and not all of them are zero. One should notice that Farkas lemma is the special case of this result when p is affine. Theorem 2 (Schweighofer [16]). Assume now that some of the pi in (1) are polynomial of higher degree. A polynomial p is strictly positive in S if it has a representation (2), provided that the pi of degree one define a compact polyhedron. 1In the words of Schweighofer, the representation (2) is valid “if there are enough polynomials of degree one” in S. Their formal similarity notwithstanding, these results have a different status than Farkas lemma. In the later case, one knows exactly to which terms the sum in (2) extends, and if no solution exists, one may assert that p is not positive in S. If no solution is found when applying Theorem 1 or 2, it may be that p is not positive, or that the sum (2) has not been extended far enough. From a pragmatic point of view, if a representation (2) has been found, it can be checked by elementary algebra, and acquires the same status as the elementary identities we all learned in high-school, whether the hypotheses of either theorem are satisfied or not. If no solution is found, one can either conclude conservatively that p may not be positive in S, or try to increase the number of terms in (2), or reformulate the problem, e.g. by trying to prove that −p or p + a, a a constant, is positive. 3. IMPLEMENTATION It is easy to see that, when p and the set of products in (2) are given, the solution can be found by Linear Programming: solving a system of linear equations in positive unknowns, the λs. The usefulness of the method can be augmented by the following trick: instead of a polynomial p, use a polynomial template, i.e. a polynomial which depends on additional parameters. To fit into the above method, parameters must occur linearly in p. The parameters can then be considered as additional unknowns in the LP problem, and solved for at the same time. The corresponding algorithm is not only able to prove that a polynomial is positive in a given set, but also to find a polynomial of a given shape that is positive. Algorithm H 1. Given • A set of polynomials P = {p1(x), . . . , pn(x)} on d variables x = (x1, . . . , xd), including the trivial polynomial 1. • a template p(µ, x) depending linearly on a set of parameters µ. • an “order” M 2. Generate all products of M polynomials from P. 3. Compute the “master equation”: E = p(µ, x) − X ~e∈INn, Pn i=1 ei=M λep e1 1 (x). . . p en n (x) = 0 4. In the fully distributed form of E, each monomial x f1 1 . . . x fd d may occur several times with coefficients linear in the λ and µ. Sum these coefficients and equate the result to zero. 5. Solve the resulting system for the λ and µ by any convenient LP software. In step 2, since multiplication is commutative, one should be careful to avoid duplicate products. Notice also that since polynomials can be multiplied whatever their degree, this algorithm covers both the Handelman and Schweighofer cases. A proof-of-concept implementation of this algorithm has been realized, using a home-made algebraic library which is part of the Syntol1 project and the LP tool PIP2 . The examples in the following section have been solved by writing, for each use case, a front end which sets up the list of the pi and the unknown polynomial p, call algorithm H, and edit the result in proper form. 4. USE CASES 4.1 Dependences Dependence testing requires to decide whether two array accesses touch the same memory cell or not. This is usually formulated as deciding if a set of constraints built from the iteration domains of two (not necessarily distinct) statements, an execution order predicate, and the equality of two subscript vectors is empty or not. If subscripts are affine in the surrounding loop counters, the answer can be obtained by linear programming. However, in some cases, subscripts are polynomials. For instance, a many dimensional array may have been linearized, either by an overeager compiler, or by the programmer because there is no way in C to dynamically allocate a multidimensional array. In other cases, several mathematical objects with disjoint supports may have been compacted in only one array. Consider for instance the following code: for(i=0; i HAL Id: hal-01092040 https://hal.archives-ouvertes.fr/hal-01092040 Submitted on 8 Dec 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.Minkowski sum of polytopes defined by their vertices Vincent Delos∗ and Denis Teissandier∗∗ University of Bordeaux CNRS, National Center for French Research I2M, UMR 5295 Talence, F-33400, France ∗E-mail: v.delos@i2m.u-bordeaux1.fr ∗∗E-mail: d.teissandier@i2m.u-bordeaux1.fr Abstract Minkowski sums are of theoretical interest and have applications in fields related to industrial backgrounds. In this paper we focus on the specific case of summing polytopes as we want to solve the tolerance analysis problem described in [1]. Our approach is based on the use of linear programming and is solvable in polynomial time. The algorithm we developped can be implemented and parallelized in a very easy way. keywords: Computational Geometry, Polytope, Minkowski Sum, Linear Programming, Convex Hull. 1 Introduction Tolerance analysis is the branch of mechanical design dedicated to studying the impact of the manufacturing tolerances on the functional constraints of any mechanical system. Minkowski sums of polytopes are useful to model the cumulative stack-up of the pieces and thus, to check whether the final assembly respects such constraints or not, see [2] and [3]. We are aware of the algorithms presented in [4], [5], [6] and [7] but we believe that neither the list of all edges nor facets are mandatory to perform the operation. So we only rely on the set of vertices to describe both polytope operands. In a first part we deal with a “natural way” to solve this problem based on the use of the convex hulls. Then we introduce an algorithm able to take advantage of the properties of the sums of polytopes to speed-up the process. We finally conclude with optimization hints and a geometric interpretation. 2 Basic properties 2.1 Minkowski sums Given two sets A and B, let C be the Minkowski sum of A and B C = A + B = {c ∈ R n, ∃a ∈ A, ∃b ∈ B/c = a + b} 2.2 Polytopes A polytope is defined as the convex hull of a finite set of points, called the V-representation, or as the bounded intersection of a finite set of half-spaces, called the H-representation. The Minkowski-Weyl theorem states that both definitions are equivalent. 13 Sum of V-polytopes In this paper we deal with V-polytopes i.e. defined as the convex hull of a finite number of points. We note VA, VB and VC the list of vertices of the polytopes A, B and C = A + B. We call VC the list of Minkowski vertices. We note k = Card(VA) and l = Card(VB). 3.1 Uniqueness of the Minkowski vertices decomposition Let A and B be two R n-polytopes and VA, VB their respective lists of vertices. Let C = A+B and c = a+b where a ∈ VA and b ∈ VB. c ∈ VC ⇔ the decomposition of c as a sum of elements of A and B is unique (1) We recall that in [4], we see that the vertex c of C, as a face, can be written as the Minkowski sum of a face from A and a face from B. For obvious reasons of dimension, c is necessarily the sum of a vertex of A and a vertex of B. Moreover, in the same article, Fukuda shows that its decomposition is unique. Reciprocally let a ∈ VA and b ∈ VB be vertices from polytopes A and B such that c = a + b is unique. Let c1 ∈ C and c2 ∈ C such as c = 1 2 (c1 + c2) = 1 2 (a1 + b1 + a2 + b2) = 1 2 (a1 + a2) + 1 2 (b1 + b2) = a + b with a = 1 2 (a1 + a2) and b = 1 2 (b1 + b2) because the decomposition of c in elements from A and B is unique. Given that a and b are two vertices, we have a1 = a2 and b1 = b2 which implies c1 = c2. As a consequence c is a vertex of C. 3.2 Summing two lists of vertices Let A and B be two R n-polytopes and VA, VB their lists of vertices, let C = A + B. C = Conv({a + b, a ∈ VA, b ∈ VB}) (2) We know that VC ⊂ VA + VB because a Minkowski vertex has to be the sum of vertices from A and B so C = Conv(VC ) ⊂ Conv({a + b, a ∈ VA, b ∈ VB}). The reciprocal is obvious as Conv({a + b, a ∈ VA, b ∈ VB}) ⊂ Conv({a + b, a ∈ A, b ∈ B}) = C as C = A + B is a convex set. At this step an algorithm removing all points which are not vertices of C from VA + VB could be applied to compute VC . The basic idea is the following: if we can build a hyperplane separating (au + bv) from the other points of VA + VB then we have a Minkowski vertex, otherwise (au + bv) is not an extreme point of the polytope C. The process trying to split the cloud of points is illustrated in Figure 1. To perform such a task, a popular technique given in [8] solves the following linear programming system. In the case of summing polytopes, testing whether the point (au + bv) is a Minkowski vertex or not, means finding (γ, γuv) ∈ R n × R from a system of k × l inequalities:    < γ, ai + bj > −γuv ≤ 0 ; ∀(i, j) ∈ {1, .., k} × {1, .., l} ; (i, j) 6= (u, v) < γ, au + bv > −γuv ≤ 1 f ∗ = max(< γ, au + bv > −γuv) So if we define the matrix Γ =   a1,1 + b1,1 · · · a1,n + b1,n −1 . . . . . . . . . . . . ak,1 + bl,1 · · · ak,n + bl,n −1 au,1 + bv,1 · · · au,n + bv,n −1   then Γ  γ γuv ≤   0 . . . 0 1   2Figure 1: Computing the vertices of the sum of two V-polytopes through a convex hull algorithm The corresponding method is detailed in Algorithm 1. Now we would like to find a way to reduce the size of the main matrix Γ as it is function of the product k × l. Algorithm 1 Compute C = A + B with A and B two R n-polytopes Require: A V-representation: list of vertices VA Require: B V-representation: list of vertices VB for all au ∈ VA and bv ∈ VB do Compute f ∗ = max(< γ, au + bv > −γuv) with Γ  γ γuv ≤   0 ... 0 1   , Γ ∈ R k×l × R n+1 if f ∗ > 0 then (au + bv) ∈ VC else (au + bv) ∈ V / C end if end for 3.3 Constructing the new algorithm In this section we want to use the basic property 1 characterizing a Minkowski vertex. Then the algorithm computes, as done before, all sums of pairs (au, bv) ∈ VA × VB and checks whether there exists a pair (a 0 , b0 ) 6= (au, bv) with a 0 ∈ A, b 0 ∈ B such as (a 0 + b 0 ) = (au + bv). If it is the case then (au + bv) ∈ V / C , otherwise (au + bv) ∈ VC . a 0 = X k i=1 αiai with ∀i, αi ≥ 0 and X k i=1 αi = 1 3b 0 = X l j=1 βj bj with ∀j, βj ≥ 0 and X l j=1 βj = 1. We get the following system:    X k i=1 αiai + X l j=1 βj bj = au + bv X k i=1 αi = 1 X l j=1 βj = 1 ∀i, αi ≥ 0 ∀j, βj ≥ 0 That is to say with matrices and under the hypothesis of positivity for both vectors α and β:   a1,1 a2,1 · · · ak,1 b1,1 b2,1 · · · bl,1 a1,2 a2,2 · · · ak,2 b1,2 b2,2 · · · bl,2 . . . . . . . . . . . . . . . . . . . . . . . . a1,n a2,n · · · ak,n b1,n b2,n · · · bl,n 1 1 · · · 1 0 0 · · · 0 0 0 · · · 0 1 1 · · · 1     α1 . . . αk β1 . . . βl   =   au,1 + bv,1 au,2 + bv,2 . . . au,n + bv,n 1 1   We are not in the case of the linear feasibility problem as there is at least one obvious solution: pu,v = (α1, · · · , αk, β1, · · · , βl) = (0, · · · , 0, αu = 1, 0, · · · , 0, 0, · · · , 0, βv = 1, 0, · · · , 0) The question is to know whether it is unique or not. This first solution is a vertex pu,v of a polyhedron in R k+l that verifies (n + 2) equality constraints with positive coefficients. The algorithm tries to build another solution making use of linear programming techniques. We can note that the polyhedron is in fact a polytope because it is bounded. The reason is that, by hypothesis, the set in R k of convex combinations of the vertices ai is bounded as it defines the polytope A. Same thing for B in R l . So in R k+l the set of points verifying both constraints simultaneously is bounded too. So we can write it in a more general form: P  α β  =   au + bv 1 1   , P ∈ R n+2 × R k+l , α ∈ R k +, β ∈ R l +, au ∈ R n, bv ∈ R n where only the second member is function of u and v. It gives the linear programming system:    P  α β  =   au + bv 1 1    α β  ≥ 0 f ∗ = max(2 − αu − βv) (3) Thanks to this system we have now the basic property the algorithm relies on: au ∈ VA, bv ∈ VB,(au + bv) ∈ VC ⇔ f ∗ = 0 (4) f ∗ = 0 ⇔ there exists only one pair (αu, βv) = (1, 1) to reach the maximum f ∗ as Pk i=1 αi = 1 and Pl j=1 βj = 1 ⇔ the decomposition of c = (au + bv) is unique ⇔ c ∈ VC It is also interesting to note that when the maximum f ∗ has been reached: αu = 1 ⇔ βv = 1 ⇔ f ∗ = 0 4Algorithm 2 Compute C = A + B with A and B two R n-polytopes Require: A V-representation: list of vertices VA Require: B V-representation: list of vertices VB for all ai ∈ VA and bj ∈ VB do Compute f ∗ = max(2 − αi − βj ) with P  α β  =   ai + bj 1 1   P ∈ R n+2 × R k+l and  α β  ≥ 0 if f ∗ = 0 then (ai + bj ) ∈ VC else (ai + bj ) ∈ V / C end if end for 3.4 Optimizing the new algorithm and geometric interpretation The current state of the art runs k×l linear programming algorithms and thus is solvable in polynomial time. We presented the data such that the matrix P is invariant and the parametrization is stored in both the second member and the objective function, so one can take advantage of this structure to save computation time. A straight idea could be using the classical sensitivity analysis techniques to test whether (au + bv) is a Minkowski vertex or not from the previous steps, instead of restarting the computations from scratch at each iteration. Let’s switch now to the geometric interpretation, given a ∈ VA, let’s consider the cone generated by all the edges attached to a and pointing towards its neighbour vertices. After translating its apex to the origin O, we call this cone CO(a) and we call CO(b) the cone created by the same technique with the vertex b in the polytope B. The method tries to build a pair, if it exists, (a 0 , b0 ) with a 0 ∈ A, b 0 ∈ B such that (a + b) = (a 0 + b 0 ). Let’s introduce the variable δ = a 0 − a = b − b 0 , and the straight line ∆ = {x ∈ R n : x = tδ, t ∈ R}. So the question about (a + b) being or not a Minkowski vertex can be presented this way: a ∈ VA, b ∈ VB,(a + b) ∈ V / C ⇔ ∃∆ = {x ∈ R n : x = tδ, t ∈ R} ⊂ CO(a) ∪ CO(b) (5) The existence of a straight line inside the reunion of the cones is equivalent to the existence of a pair (a 0 , b0 ) such that (a + b) = (a 0 + b 0 ) which is equivalent to the fact that (a 0 + b 0 ) is not a Minkowski vertex. This is illustrated in Figure 2. The property becomes obvious when we understand that if (a 0 , b0 ) exists in A × B then (a 0 − a) and (b 0 − b) are symmetric with respect to the origin. Once a straight line has been found inside the reunion of two cones, we can test this inclusion with the same straight line for another pair of cones, here is the geometric interpretation of an improved version of the algorithm making use of what has been computed in the previous steps. We can resume the property writing it as an intersection introducing the cone −CO(b) being the symmetric of CO(b) with respect to the origin. a ∈ VA, b ∈ VB,(a + b) ∈ VC ⇔ CO(a) ∩ −CO(b) = {O} (6) 4 Conclusion In this paper, our algorithm goes beyond the scope of simply finding the vertices of a cloud of points. That’s why we have characterized the Minkowski vertices. However, among all the properties, some of them 5Figure 2: (a2 + b4) is not a vertex of C=A+B as ∆ ⊂ CO(a2) ∪ CO(b4) are not easily exploitable in an algorithm. In all the cases we have worked directly in the polytopes A and B, i.e. in the primal spaces and only with the polytopes V-descriptions. Other approaches use dual objects such as normal fans and dual cones. References can be found in [6], [7] and [9] but they need more than the V-description for the polytopes they handle. This can be problematic as obtaining the double description can turn out to be impossible in high dimensions, see [4] where Fukuda uses both vertices and edges. Reference [6] works in R 3 in a dual space where it intersects dual cones attached to the vertices, and it can be considered as the dual version of property 6 where the intersection is computed with primal cones. It actually implements Weibel’s approach described in [9]. Such a method has been recently extended to any dimension for HV-polytopes in [7]. 5 Special thanks We would like to thank Pr Pierre Calka from the LMRS in Rouen University for his precious help in writing this article. References [1] Denis Teissandier and Vincent Delos and Yves Couetard, “Operations on Polytopes: Application to Tolerance Analysis”, 6th CIRP Seminar on CAT, 425-433, Enschede (Netherlands), 1999 [2] Lazhar Homri, Denis Teissandier, and Alex Ballu, “Tolerancing Analysis by Operations on Polytopes”, Design and Modeling of Mechanical Systems, Djerba (Tunisia), 597:604, 2013 [3] Vijay Srinivasan, “Role of Sweeps in Tolerancing Semantics”, in ASME Proc. of the International Forum on Dimensional Tolerancing and Metrology, TS172.I5711, CRTD, 27:69-78, 1993 [4] Komei Fukuda, “From the Zonotope Construction to the Minkowski Addition of Convex Polytopes”, Journal of Symbolic Computation, 38:4:1261-1272, 2004 6[5] Komei Fukuda and Christophe Weibel, “Computing all Faces of the Minkowski Sum of V-Polytopes”, Proceedings of the 17th Canadian Conference on Computational Geometry, 253-256, 2005 [6] Denis Teissandier and Vincent Delos, “Algorithm to Calculate the Minkowski Sums of 3-Polytopes Based on Normal Fans”, Computer-Aided Design, 43:12:1567-1576, 2011 [7] Vincent Delos and Denis Teissandier, “Minkowski Sum of HV-Polytopes in R n”, Proceedings of the 4th Annual International Conference on Computational Mathematics, Computational Geometry and Statistics, Singapore, 2015 [8] Komei Fukuda, “Frequently Asked Questions in Polyhedral Computation”, Swiss Federal Institute of Technology Lausanne and Zurich, Switzerland, 2004 [9] Christophe Weibel, “Minkowski Sums of Polytopes”, PhD Thesis, EPFL, 2007 7 Effective Reproducible Research with Org-Mode and Git Luka Stanisic, Arnaud Legrand To cite this version: Luka Stanisic, Arnaud Legrand. Effective Reproducible Research with Org-Mode and Git. 1st International Workshop on Reproducibility in Parallel Computing, Aug 2015, Porto, Portugal. . HAL Id: hal-01083205 https://hal.inria.fr/hal-01083205 Submitted on 16 Nov 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´esLuka Stanisic and Arnaud Legrand firstname.lastname(à)imag.fr In the last decades, both hardware and software of modern computers became so complex that even experts have troubles fully understanding their behavior. Therefore, it could be argued that these machines are no longer deterministic, especially when measuring execution times of programs running on a large distributed computer systems or hybrid platforms. Controlling every relevant sophisticated component during such measurements is almost impossible, making the full reproduction of the experiments extremely difficult. Consequently, studying computers has become very similar to studying a natural phenomena and it should thus use the same principles as other scientific fields that had them defined centuries ago. Although many conclusions are based on experimental results in this domain of computer science, surprisingly articles generally poorly detail the experimental protocol. Left with insufficient information, readers have generally trouble to reproduce the study and possibly build upon it. Yet, as reminded by Drummond [1], reproducibility of experimental results is the hallmark of science and there is no reason why this should not be applied to computer science as well. Hence, a new movement promoting the development of reproducible research tools and practices has emerged, especially for computational sciences. Such tools generally focus on replicability of data analysis [5]. Although high performance computing or distributed computing experiments involve running complex codes, they do not focus on execution results but rather on the time taken to run a program and on how the machine resources were used. These requirements call for different workflows and tools, since such experiments are not replicable by essence. Nevertheless in such cases, researchers should still at least aim at full reproducibility of their work.There are many existing solutions partially addressing these issues, but none of them was completely satisfying our needs and therefore we developed an alternative approach that is based on two well-known and widely-used tools: Org-mode and Git. We present our contributions in Section 3, where we first describe a specific use of Org-mode for doing the provenance tracking of the entire projects. Then, we propose a unique way to use Git for keeping synchronized experiment results and code that generated them. Finally, it will be demonstrated in Section 4 how the proposed methodology helped us conducting two very different studies in the High Performance Computing (HPC) domain. We will also state limits of our approach, together with some open questions. ✷ ❘❡❧❛t❡❞ ❲♦r❦ In the past few years, the field of reproducibility research tools has been very active, various alternatives emerging to address diverse problematic. However, in the HPC domain most of them are concentrated on platform accessibility, setting up environments and running the experiments on large clusters. Even though such tools are very useful in general, we could not benefit from them due to the specific nature of our research projects. The machines we needed to study are recent prototypes, with ever-changing libraries, set up by expert administrators and we do not have neither the permission nor the interest to do any modifications to the environment. However, when conducting experiments and analysis, there are more aspects that need to be considered. We detail the ones related to software, methodology and provenance tracking, which are often neglected by researchers in our community. Accessibility It is widely accepted that tools like Git or svn are indispensable in everyday work on software development. Additionally, they help at sharing the code and letting other people contribute. Making data accessible, file hosting services, such as Dropbox, Google Drive and many others, became very popular among all scientists that want to collaborate. There is another group of services that is more oriented on making data publicly available and easily understandable to everyone, e.g., figshare✶ . Provenance tracking Knowing how data was obtained is a complex problem. The first part involves collecting meta-data, such as system information, experimental conditions, etc., and it is often managed by experimental engines. The second, frequently forgotten in our domain, part is to track any applied transformation to the data, i.e., moving the objects from one state to another. Moreover, there is a question of storing both data and meta-data. Classical approach to solve these issues involves using a database. However, this solution has its limits, as managing source codes or comments in a database is not convenient and is handled in much better way by using version control systems and literate programming. ✶ ❤tt♣✿✴✴✜❣s❤❛r❡✳❝♦♠Documenting While provenance tracking is focused on how data was obtained, it is not concerned with why the experiments were run and what the observations on the results are. These things have to be thoroughly documented, since even the experimenters tend to quickly forget all the details. One way is to encourage users to keep notes when running experiment (e.g., in Sumatra [5, chap. 3]), while the other one consists in writing a laboratory notebook (e.g., with IPython✷ ). Extendability It is hard to define good formats for all project components in the starting phase of the research. Some of the initial decisions are likely to change during the study, so system has to be flexible. In such a volatile context, integrated tools with databases, such as Sumatra, are too cumbersome for everyday extentions and modifications. Replicable analysis Researchers should only trust figures and tables that can be regenerated from raw data. Therefore, ensuring replicable analysis is essential to any study. Popular solution nowadays for this problem is to rely on open-source statistical software like R and knitr that simplify figure generation and embedding in final documents [5, chap. 1]. To address the previous problems, we propose to rely on a minimalist set of simple, lightweight, and well-known tools. We use Org-mode [2], initially an Emacs mode for editing and organizing notes, that is based on highly hierarchical plain text files which are easy to explore and exploit. Org-mode has also been extended to allow combining plain text with small chunks of executable code (Org-babel snippets). Such features follow the literate programming principles introduced by Donald Knuth three decades ago, and for which there is a renewed interest in the last years. In addition, for version control system we decided to rely on Git, a distributed revision control tool that has an incredibly powerful branch management system. ✸ ❚✐♣s ❛♥❞ ❚r✐❝❦s ❢♦r ❘❡♣r♦❞✉❝✐❜❧❡ ❘❡s❡❛r❝❤ In this section, we provide guidelines on best practices and hints on pragmatic ways to implement them. First, we illustrate how to handle provenance tracking issues with literate programming, in particular with Org-mode. The approach we propose is lightweight, to make sure the experiments are performed in a clean, coherent and hopefully reproducible manner without being slowed down by a rigid framework. However, it is tempting to sometimes break one of these rules, which hinders reproducibility in the end. This is why we harden these guidelines with a particular usage of Git that forces the user to keep data and code synchronized. 3.1 Provenance Tracking Through Literate Programming As described in Section 2, there are many tools that can help to automatically capture environment parameters, to keep track of experimentation process, to ✷ ❤tt♣✿✴✴✐♣②t❤♦♥✳♦r❣organize code and data, etc. However, it is not easy to understand how they work exactly, and additionally each of them creates new dependencies on specific libraries and technologies. Instead, we propose a solution based on plain text files, written in the spirit of literate programming, that are self-explanatory, comprehensive and portable. We do not rely on a huge cumbersome framework, but rather on a set of simple, flexible scripts, that address the following challenges. Environment Capture Environment capture consists in getting all the details about the code, used libraries and system configuration. It is necessary to gather as much useful meta-data as possible, to allow to compare experiment results with the previous ones and inspect if there were any changes to the experimental environment. This process should not be burdensome, but automatic and transparent to the researcher. Additionally, it should be easy to extend or modify, since it is generally difficult to anticipate relevant parameters before performing numerous initial experiments. Once meta-data is captured, it can be stored either individually or accompanying results data. Some prefer keeping these two separated, making their primary results unpolluted and easier to exploit, but they soon run into diffi- culties when they need to retrieve information from meta-data. Therefore, we strongly believe that the experiment results should stay together with the information about the system they were obtained on. Moreover, keeping them in the same file makes the access straightforward and simplifies the project organization, as there are less objects to handle. Consequently, even if data sustains numerous movements and reorganizations, one would never doubt which environment setup corresponds to which results. In order to permit users to easily examine any of their information, these files have to be well structured. The Org-mode format is a perfect match for such requirements as its hierarchical organization is simple and can be easily explored. A good alternative might be to use the yaml format, which is typed and easy to parse but we decided to stay with Org-mode (which served all our needs) to keep our framework minimalist. A potential issue of this approach is raised by large files, typically containing several hundreds of MB and more. Opening such files can temporary freeze a text editor and finding a particular information can then be tedious. We haven’t yet met with such kind of scenario, but obviously it would require some adaptations to the approach. Note that all the data and meta-data are gathered automatically using scripts, finally producing a read-only Org-mode document. Why the experiments were performed and what are the observations on its results is stored elsewhere, more precisely in a laboratory notebook of the project. Laboratory Notebook A paramount asset of our methodology is the laboratory notebook (labbook), similar to the ones biologist, chemists and scientist from other fields use on a daily basis to document the progress of their work. For us, this notebook is a single file inside the project repository, shared between allcollaborators. The main motivation for keeping a labbook is that anyone, from original researchers to external reviewers, can later use it to understand all the steps of the study and potentially reproduce and improve it. This self-contained unique file has multiple purposes. Indeed, the labbook should not only serve as journal but also play the following software development roles to ensure that it can be exploited by others: 1. README: The labbook should explain ideas behind the whole project purpose and methodology, i.e., what the workflow for doing experiments is and how the code and data are organized in folders. It should state the conventions on how the labbook should be used. This part serves as a starting point for newcomers and is also a good reminder for experienced users. 2. Documentation: The labbook should detail what are the different programs and scripts, and what is their purpose. This documentation concerns source code for the experimentation as well as tools for manipulating data and analysis code for producing plots and reports. Additionally, there should be explanations on the revision control usage and conventions. 3. Examples: The labbook should contain example usages of how to run scripts, displaying the most common arguments and format. Although such information might seem redundant with the previous documentation part, in practice such examples are indispensable even for everyday users, since some scripts require lots of environment variables, arguments and options. 4. Log: It is important to keep track of big changes to the source code and the project in general inside a log section. Since all modifications are already captured and commented in Git commits, the log section should offer a much more coarse grain view of the code development history. There should also be a list with descriptions of every Git tag in the repository as it helps finding the latest stable, or any other specific, version of the code. 5. Experiment results: Every set of experiment should be carefully noted here, together with the key input parameters, the motivation for running such experiment and finally observations on the results. Inside the descriptive conclusions, Org-mode allows to use both links and git-links connecting the text to the actual files in the Git repository. These hyperlinks point to the crucial data and the analysis reports that illustrate a newly discovered phenomena. Managing efficiently all these different information in a single file requires a solid hierarchical structure, which once again motivated our use of Org-mode. We also took advantage of the Org-mode tagging mechanism, which allows to easily extract information, improving labbook’s structure even further. Org tags can be used to distinguish which collaborator conducted a given set of experiments or to list expertise requests. Although many of these information may already be present in the experiment files, having it at the journal level revealed very convenient. Experiments can also be tagged to indicate on which machine they were performed and whether the results were important or not. Again, although such tagging is not required it is very handy in practice and make the labbook much easier to understand and exploit.Several alternatives exist for taking care of experiment results and progress on a daily basis. We think that a major advantage of Org-mode compared to many other tools is that it is just a plain text file that can thus be read and modified on any remote machine without requiring to install any particular library. Using a plain text file is also the most portable format across different architectures and operating systems. Data File Organization Having a clear, coherent and hierarchical organization of all the files is a good practice for a proper scientific work, especially when external collaborators are involved. Once again, the approach we propose is lightweight and flexible but is motivated by the three following important points: 1. There should never be any critical information in file organization. Important information should be in the files themselves. Indeed, we could as well have blobs rather than files but managing data and extracting important information would probably not be very convenient. Thus, we do not recommend to impose much on file organization so that users can organize their data in a way that is natural to them. We think this lack of rules is not an issue as long as this organization is explained in the labbook. 2. The file organization should be flexible enough to be changed and adapted as the experimental data set grows. Such reorganization could seemingly break the labbook hyperlinks. However, as we briefly mentioned, we recommend to use git-links in the labbook, which are Org-mode hyperlinks that store links to specific revisions of files (typically when they were created). So reorganizing the data files will not break the labbook information. 3. The naming convention should not impede the activity of the researcher, so here we used almost no convention at all. According to our experience, all experiment results could simply be saved in folders, each of them representing one set of measurements and having a unique characteristic name, e.g., the name of the machine on which it was performed. Inside a folder, file names could be prefixed by additional key characteristics of the experiment set, followed by an ordinal number indicating in which order experiments were run. This idea seemed the most natural one to adopt, but we are reconsidering alternatives for the future projects. Conclusion The approach we described implicates a partial redundancy of some data and meta-data, typically saved in both experiment result files and in the laboratory notebook. However, such information are never entered twice manually. Most data should always be automatically tracked, although when some data convey key information, they should be manually added to other places as well, since it provides a better overview of the whole project. We think that following the proposed guidelines is sufficient to conduct a clean, comprehensible and reproducible research while having a very fluid work- flow. However, not all scientists are rigorous enough to always follow such conventions and even those who are, occasionally have the need to bend the rulesin order to quickly get some results in a dirty way. This sometimes pollutes the whole project organization, often breaking the chains of the workflow processes and making some parts incoherent. In order to force researchers to be more disciplined and help them doing their work in a reproducible manner, we propose to combine the previous approach with a particular usage of Git. 3.2 Using Git for Improving Reproducible Research Even when the project is well organized, meta-data tracked, all the collaborators follow the conventions and take notes in the laboratory notebook, several practical issues may still arise: 1. Although a svn revision or a Git sha1 of the source code is captured, this does not guarantee that the experiment was run correctly and that the results can easily be reproduced. There could exist some uncommitted differences between the tracked and the current version of the code or the compilation could be out-of-date, i.e., code was compiled with an old revision. A solution proposed for example by Davison [5, chap. 3] and which we applied as well, is to force recompilation and systematically verify that everything is fully committed before running any experiment. The only exception to this rule are the tests performed to validate the workflow. 2. Even with the complete and correct meta-data and code revisions, it is not always easy to reconstruct the experimental setup, especially if it consists of the code from numerous external repositories. Multiplying repositories hinders provenance tracking, coherency and experimental reproduction. The solution we propose is to increase the reproducibility confidence level by using only revision control and a collection of simple scripts that automatically track information. Additionally, we suggest to store both code and experimental data in the same Git repository, so that they are always perfectly synchronized, which eases the obtainment of the code that produced a particular data set. Nevertheless, this introduced the following new challenges. 3. Unlike source code, data files can be large, thus keeping them together in the same repository can rapidly increase its size. Moreover, doing code modifications, analysis and experiments in the same Git branch complicates its history and makes experimental setup reproduction slightly ambiguous. 4. Another difficulty comes from managing several external beta source codes that should now coexist in the same repository. Since these codes are also under development, they are regularly upgraded by their developers and these changes need to be propagated to local project as well. Additionally, these codes typically have their own revision control, which rises many issues with potential local code modifications and commits that concern now both local and external projects. Proposal To solve aforementioned problems we propose an approach that uses Git with two parallel interconnected branches, displayed in Figure 1. The firstsrc data exp1 ✭❛✮ ❉❡✈❡❧♦♣♠❡♥t src data exp1 Adding data Analysis ✭❜✮ ❊①♣❡r✐♠❡♥t❛t✐♦♥ src data exp2 exp1 ✭❝✮ ▼❡r❣✐♥❣ r❡s✉❧ts ❋✐❣✳ ✶✳ ❉✐✛❡r❡♥t ♣❤❛s❡s ✐♥ ❣✐t ✇♦r❦✢♦✇ branch, named src, includes only the source code, i.e., code and scripts for running the experiments and the analysis. The second, data, branch consists of all the source code as well as all the data and analysis reports (statistical analysis results, figures, etc.). These two branches live in parallel and are interconnected through a third type of branches, the exp# branches, where the experimentation is performed. All these together form a "ladder like" Git repository, depicted in Figure 1(c). We now explain the typical workflow usage of such branching scheme: 1. Development phase: Researchers work on a code development inside the src branch, committing the changes, as shown on Figure 1(a). These modifications can impact local or external code, analysis or even the scripts for running the experiments. Later, such modifications should be tested and the correctness of the whole workflow should be validated. Only then can one start doing real useful experiments. 2. Experimentation phase: Researcher creates a new branch from the src branch containing and a new folder to store the results. We used the convention that these two (branch and directory) should always have equal names, which eases the usage of both Git and labbook. In the example of Figure 1(a), this new branch for doing the measurements is called exp1. Next, new experiments are executed running the scripts and generate results. The resulting data, together with the captured environment meta-data, are then committed to the Git. After that, one might want to do some basic analysis of the data, investigating the results, which may later trigger another round of experimentation and so on, as it is showed on the Figure 1(b). Finally, only when all desired measurements are finished, exp1 will be merged with the data branch. 3. Merging and reports phase: All experimental exp# branches are in the end merged with data, as it can be seen on Figure 1(c). In addition, result observations for each exp# branch are written to the labbook. Afterwards, comparison of different experiments can be performed by generating figures, tables and clear explanations, to describe the newly discovered phenomena. Since the changes to the source code from src branch are also propagated through exp#, the head of the data branch will always contain the latest code together with all the data. Nevertheless, the older version of code responsiblefor producing a particular data or analysis can always be found in the Git history. A peculiar situation occurs when there are source modifications inside the experimental branches. They have to be committed (as measurements are never done with an uncommitted code), even though in most cases they represent an ad hoc change, specific to an individual machine and its installation. These minor, local hacks would pollute the data branch and thus it has to be ensured that they are not propagated. It is done by using a special script for merging the branches instead of classical Git merge command. At the end of the exp# branch, all source code changes (not the data) have to be invalidated by using git revert, i.e., the "anti-commit" of all the previously committed modifications inside that branch. This way modifications remain local for that exp# branch and the experimental setup can still be reproduced by pulling the revision before the revert operation, i.e., the one used to generate the data. If the researcher eventually realizes that some of the source code modifications done inside exp# branch could be useful for the whole project, there are two ways to inserted them in the src branch. The first one involves rewriting Git history and it is not advised as it leads to incoherences between Git repositories. The second option is to cherry-pick the desired commits. Although this approach produces some redundancy, it is very easy and safe and keeps the Git history clear and coherent. External software One more challenge arises when there are external software repositories imported inside a local project. For example, one could have external source code B that is a part of a bigger local project A. Since B is also under development, one occasionally needs to pull the updates from its server, which can cause conflicts with local modifications to the code. Resolving these conflicts manually can sometimes be very tedious. Even bigger problem occurs if one wants to push such local changes, as they can be committed to either our project A, or external project B, or even to both of them together. We decided to propagate, by default, these modifications only to the project A, keeping the Git sha1 of A always valid and up-to-date. Later if necessary, they can be pushed to B as well, but this has to be done by explicitly calling the necessary commands. Dealing with described challenges is error-prone, thus we started using git-subrepo tool for cleaner and semi-automated management of external Git projects inside our local one. However, we still have to do everything manually when working with codes that are using other version control systems, notably svn.