UNIVERSITÉ PAUL CÉZANNE AIX
Transcription
UNIVERSITÉ PAUL CÉZANNE AIX
UNIVERSITÉ PAUL CÉZANNE AIX-MARSEILLE III Faculté des Sciences et Techniques de Saint-Jérôme No 2008AIX30050 THÈSE pour obtenir le grade de DOCTEUR DE L’UNIVERSITÉ PAUL CÉZANNE Discipline : Informatique présentée et soutenue publiquement par François-Marie Colonna le 08 Décembre 2008 TITRE : Intégration de données hétérogènes et distribuées sur le Web et applications à la biologie Directeur de Thèse : Omar Boucelma École Doctorale 184 - Mathématiques et Informatique JURY Mokrane Bouzeghoub Professeur à l’Université de Versailles (Président) Marie-Dominique Devignes Chargée de Recherches au CNRS (Rapportrice) Thérèse Rouge-Libourel Professeur à l’Université de Montpellier II (Rapportrice) Jacques Le Maitre Professeur à l’Université du Sud Toulon-Var (Examinateur) Omar Boucelma Professeur à l’Université Paul Cézanne (Directeur) ANNÉE : 2008 UNIVERSITÉ PAUL CÉZANNE AIX-MARSEILLE III Faculté des Sciences et Techniques de Saint-Jérôme No 2008AIX30050 THÈSE pour obtenir le grade de DOCTEUR DE L’UNIVERSITÉ PAUL CÉZANNE Discipline : Informatique présentée et soutenue publiquement par François-Marie Colonna le 08 Décembre 2008 TITRE : Intégration de données hétérogènes et distribuées sur le Web et applications à la biologie Directeur de Thèse : Omar Boucelma École Doctorale 184 - Mathématiques et Informatique JURY Mokrane Bouzeghoub Professeur à l’Université de Versailles (Président) Marie-Dominique Devignes Chargée de Recherches au CNRS (Rapportrice) Thérèse Rouge-Libourel Professeur à l’Université de Montpellier II (Rapportrice) Jacques Le Maitre Professeur à l’Université du Sud Toulon-Var (Examinateur) Omar Boucelma Professeur à l’Université Paul Cézanne (Directeur) ANNÉE : 2008 École doctorale 184 Département Mathématiques Informatique et Systèmes Intégration de données distribuées et hétérogènes sur le Web et applications à la biologie THÈSE présentée et soutenue publiquement le 08 Décembre 2008 pour l’obtention du Doctorat de l’Université Paul Cézanne - Aix-Marseille III (Spécialité Informatique) par François-Marie Colonna Composition du jury Président : Mokrane Bouzeghoub (Professeur, Université de Versailles) Rapporteurs : Marie-Dominique Devignes Thérèse Libourel (Chargée de recherches au CNRS) (Professeur, Université de Montpellier II) Examinateurs : Jacques Le Maitre Omar Boucelma (Professeur, Université du Sud Toulon-Var) (Professeur, Université Paul Cézanne) Laboratoire des Sciences de l’Information et des Systèmes – UMR CNRS 6168 Région Provence - Alpes Côte d’Azur Mis en page avec la classe thloria. Remerciements – Merci à Omar Boucelma d’avoir encadré ma thèse. – Merci à Thérèse Rouge-Libourel et Marie-Dominique Devignes d’avoir accepté d’évaluer cette thèse. – Merci à Jacques Le Maitre et Mokrane Bouzeghoub d’avoir accepté de faire partie de mon jury. – Merci à la Région PACA de m’avoir soutenu financièrement au travers de l’ADER, ainsi qu’à la société Cosmosbay∼Vectis pour avoir rendu cette convention tripartite possible. – Merci également à ceux qui m’ont fait confiance en tant que vacataire et ATER. – Merci aux auteurs respectifs de LATEX, d’Emacs et Subversion, qui m’ont permis de gérer la rédaction du manuscrit on ne peut plus proprement. – Merci à tous ceux et celles rencontrés au fil de ces années, et qui m’ont connu et apprécié. – Un grand merci enfin à ma famille pour m’avoir soutenu moralement (et financièrement !) pendant toutes ces années. i ii En informatique, la majeure partie des bugs se situent entre la chaise et le clavier. Auteur inconnu. iii iv Table des matières Table des figures ix Liste des tableaux xi Liste des algorithmes xiii Notes au lecteur 1 Des données géographiques aux données biologiques 3 Introduction générale 5 1 Problématique et motivations . . . . . . . . . . . . . . . . . . . . . . . 2 Objectifs et contributions . . . . . . . . . . . . . . . . . . . . . . . . . 11 3 Structuration du document . . . . . . . . . . . . . . . . . . . . . . . . 12 Partie I 6 Hétérogénéité et intégration de données : état de l’art 15 Chapitre 1 Introduction 19 1.1 Intégrer des données : pour qui ? pourquoi ? . . . . . . . . . . . . . . . 20 1.2 Des différences multiples . . . . . . . . . . . . . . . . . . . . . . . . . . 21 1.2.1 Variété des données . . . . . . . . . . . . . . . . . . . . . . . . . 21 1.2.2 De l’hétérogénéité... . . . . . . . . . . . . . . . . . . . . . . . . 22 1.2.3 1.2.2.1 ...au niveau syntaxique : . . . . . . . . . . . . . . . . . 23 1.2.2.2 ...au niveau sémantique . . . . . . . . . . . . . . . . . 23 1.2.2.3 ...au niveau qualitatif . . . . . . . . . . . . . . . . . . 26 Autonomie et capacités d’interrogation . . . . . . . . . . . . . . 27 v Chapitre 2 Classification des approches d’intégration 29 2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.2 L’entrepôt de données . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.3 La navigation entre les sources . . . . . . . . . . . . . . . . . . . . . . 38 2.4 Les accès par les portails et les plateformes logicielles . . . . . . . . . . 39 2.5 La fédération de données . . . . . . . . . . . . . . . . . . . . . . . . . . 40 2.6 L’approche multi-agents . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2.7 La médiation de données . . . . . . . . . . . . . . . . . . . . . . . . . . 42 2.8 L’intégration P2P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 2.9 Wrapper les sources, un problème commun à toutes les approches . . . 47 2.10 Synthèse et discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.11 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Partie II Automatisation de recoupements manuels de données 53 Chapitre 3 Partage de références entre sources biologiques 57 3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 3.2 Objectifs et exemple illustratif . . . . . . . . . . . . . . . . . . . . . . . 58 3.3 Formulaires Web et interrogations limitées . . . . . . . . . . . . . . . . 60 3.4 Exploitation des références croisées . . . . . . . . . . . . . . . . . . . . 62 Chapitre 4 Intégration par union de jointures 69 4.1 Formalisation des descriptions des sources . . . . . . . . . . . . . . . . 70 4.2 Représentation des patterns d’accès par des termes d’attributs . . . . . 72 4.2.1 Identification des différents types de patterns . . . . . . . . . . 72 4.2.2 Description du formalisme et exemple illustratif . . . . . . . . . 73 4.2.3 Expression des requêtes . . . . . . . . . . . . . . . . . . . . . . 80 4.3 Traitement des requêtes d’intégration de données . . . . . . . . . . . . 81 4.3.1 Choix des vues initiales . . . . . . . . . . . . . . . . . . . . . . 82 4.3.2 Algorithme de calcul des chemins de jointure 4.3.3 Algorithme de traitement des requêtes . . . . . . . . . . . . . . 86 . . . . . . . . . . 84 4.4 Prototypage et illustration par l’exemple . . . . . . . . . . . . . . . . . 88 vi 4.4.1 Format XML des termes d’attributs . . . . . . . . . . . . . . . 88 4.4.2 Extraction des données avec Lixto . . . . . . . . . . . . . . . . 89 4.4.3 Prototype développé, tests et performances . . . . . . . . . . . 92 4.5 Applications sur des données biologiques . . . . . . . . . . . . . . . . . 99 4.5.1 Intégration de données et prédiction de gènes candidats . . . . . 99 4.5.2 Construction d’un méta-moteur de recherche de gènes candidats 100 4.5.3 Complétion et vérification de données de puces à ADN . . . . . 103 4.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 Partie III Médiation de données biologiques du Web Chapitre 5 Atouts et insuffisances des solutions actuelles 111 115 5.1 Contexte de nos travaux . . . . . . . . . . . . . . . . . . . . . . . . . . 116 5.2 Ecueils des approches classiques de médiation . . . . . . . . . . . . . . 117 5.2.1 Médiation de schéma . . . . . . . . . . . . . . . . . . . . . . . . 117 5.2.2 Médiation de contexte . . . . . . . . . . . . . . . . . . . . . . . 121 5.3 Médiation et réseaux pair à pair . . . . . . . . . . . . . . . . . . . . . . 122 5.4 Fédération lâche et langages multi-bases . . . . . . . . . . . . . . . . . 124 5.5 Une architecture BGLAV basée sur XML et XQuery . . . . . . . . . . 125 5.5.1 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 5.5.2 Travaux liés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Chapitre 6 Réécriture de requêtes biologiques BGLAV 6.1 Intégration BGLAV de données biologiques 131 . . . . . . . . . . . . . . . 132 6.1.1 Exemple illustratif et taxonomie des conflits . . . . . . . . . . . 133 6.1.2 Formalisation du système d’intégration de données . . . . . . . 138 6.1.3 Identification et correspondance des éléments XML . . . . . . . 140 6.1.3.1 Restrictions d’accès et valuation obligatoire de nœuds 140 6.1.3.2 Clefs d’un schéma XML . . . . . . . . . . . . . . . . . 141 6.1.3.3 Association entre requêtes de correspondance et clefs XML144 6.2 Décomposition et recomposition des requêtes . . . . . . . . . . . . . . . 145 6.2.1 Classification des types de requêtes . . . . . . . . . . . . . . . . 148 6.2.2 Algorithme de réécriture BGLAV adapté aux sources Web . . . 150 6.2.2.1 Choix des sources participantes . . . . . . . . . . . . . 150 vii 6.2.2.2 6.2.3 Génération d’un plan de requêtes . . . . . . . . . . . . 153 Extensibilité du système . . . . . . . . . . . . . . . . . . . . . . 156 6.3 Prototypage, tests et performances . . . . . . . . . . . . . . . . . . . . 156 6.4 Application sur des données biologiques . . . . . . . . . . . . . . . . . 157 6.4.1 Intégration de données tirées de la base Ensembl . . . . . . . . 158 6.5 Conclusion et ouvertures . . . . . . . . . . . . . . . . . . . . . . . . . . 165 Conclusions et perspectives 167 1 Résumé des contributions . . . . . . . . . . . . . . . . . . . . . . . . . 167 2 Ouverture et pistes de recherche . . . . . . . . . . . . . . . . . . . . . . 168 Annexes Annexe A Projets d’intégration de données biologiques 173 Annexe B Approches d’intégration et prototypes associés 177 Annexe C Index des méthodes d’extraction de données Web 179 Annexe D Schéma XSD des termes d’attributs 181 Glossaire 185 Bibliographie 189 Index 217 viii Table des figures 1 2 3 Nombre d’entrées de la base EMBL (en millions) . . . . . . . . . . . . . . . 6 Nombre d’entrées de la version 56.5 de la base UniProtKB/Swiss-Prot (×103 ) 7 Evolution du nombre de bases de données ouvertes sur le Web . . . . . . . 8 1.1 Micro-réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 1.2 Réseau de régulation génétique . . . . . . . . . . . . . . . . . . . . . . . . 22 1.3 Divers formats pour les mêmes données . . . . . . . . . . . . . . . . . . . . 24 2.1 2.2 2.3 2.4 2.5 Classification des approches d’intégration (de Organigramme des systèmes d’intégration . Architecture d’un entrepôt de données . . . Fédération de bases de données . . . . . . . Architecture de médiation DARPA I3 . . . . 0 / faible à 5 / fort) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 32 34 41 42 3.1 Phases de l’étude d’une zone d’intérêt sur le chromosome 5 . . . . . . . . . 59 3.2 Exemple de partage de références entre des sources . . . . . . . . . . . . . 63 3.3 Liens présents entre plusieurs sources . . . . . . . . . . . . . . . . . . . . . 65 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 Formulaire de requête... . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 ...et terme d’attributs associé . . . . . . . . . . . . . . . . . . . . . . . . . 75 Hypergraphe des sources bibliographiques . . . . . . . . . . . . . . . . . . 78 Contenu des vues exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Chemins de jointures entre les sources S1 , S2 , S3 et S4 . . . . . . . . . . . . 79 Ensembles de sources contenant les vues utilisées pour traiter les requêtes . 82 Notation classique d’un FT . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Notation XML d’un FT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Exemple de règles Elog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Cycle d’interrogation entre plusieurs sources . . . . . . . . . . . . . . . . . 91 Chemins de jointure entre les sources bibliographiques . . . . . . . . . . . . 95 Interface graphique pour l’intégration de données basée sur le partage de références 96 ix 4.13 4.14 4.15 4.16 4.17 4.18 4.19 4.20 Parcours effectué par le premier scénario . . . . . . . . . . . . . . . . Gènes prioritaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sources utilisée par le méta-moteur . . . . . . . . . . . . . . . . . . . Formulaire proposé par la source Suspects . . . . . . . . . . . . . . . Formulaire proposé par la source PosMed . . . . . . . . . . . . . . . . Interface graphique du métamoteur de recherche de gènes candidats . Références croisées sur des données Affymetrix . . . . . . . . . . . . . Interface graphique du détecteur de conflits pour les puces Affymetrix . . . . . . . . . . . . . . . . . . . . . . . . 99 99 101 102 102 104 106 107 5.1 Intégrations GAV et LAV . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 Schémas exportés par les sources distantes . . . . . . . . . . . . . . . . . . 134 Schéma global sur lequel vont s’apparier les sources locales . . . . . . . . . 135 Taxonomie des conflits entre schémas locaux et schéma global . . . . . . . 136 Expression de correspondances avec XQuery . . . . . . . . . . . . . . . . . 137 Nœuds XML à valuation obligatoire . . . . . . . . . . . . . . . . . . . . . . 140 Exemples de clefs des éléments d’un schéma XML (en gras) . . . . . . . . . 142 Couvertures possibles d’un élément du schéma métier par les schémas dérivés149 Traitement des requêtes par le médiateur BGLAV . . . . . . . . . . . . . . 151 Interface graphique du médiateur BGLAV . . . . . . . . . . . . . . . . . . 157 x Liste des tableaux 1.1 Références croisées de sources différentes concernant le gène IL12B . . . . . 25 1.2 Provenance des données : Chercheurs(C), Publications(P), Autres bases(BD) 26 2.1 Entrepôts commerciaux et entrepôts biologiques . . . . . . . . . . . . . . . 35 3.1 Deux déroulements possibles . . . . . . . . . . . . . . . . . . . . . . . . . . 64 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15 Syntaxe des termes d’attributs . . . . . . . . . . . . . . . . Compatibilités entre les patterns associés à un attribut . . Quatre sources bibliographiques . . . . . . . . . . . . . . . Détails du prototype . . . . . . . . . . . . . . . . . . . . . Patterns d’accès des vues sélectionnées . . . . . . . . . . . Contenu de la vue V17 . . . . . . . . . . . . . . . . . . . . Contenu de la vue V22 . . . . . . . . . . . . . . . . . . . . Contenu de la vue V23 . . . . . . . . . . . . . . . . . . . . Contenu de la vue V20 . . . . . . . . . . . . . . . . . . . . Contenu de la vue V25 . . . . . . . . . . . . . . . . . . . . Sources intermédiaires utilisées pour compléter les chemins Descriptif des jeux de données générés . . . . . . . . . . . Résultats des tests . . . . . . . . . . . . . . . . . . . . . . Durée de la phase d’intégration de données . . . . . . . . . Résultats de la phase d’analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 76 77 93 93 94 94 94 94 94 95 97 98 108 108 6.1 Conflits entre les schémas XML locaux et globaux . . . . . . . . . . . . . . 135 xi xii Liste des algorithmes 1 2 3 4 5 6 ChercherVuesInitiales(S , Iv) . . . . . . . . . . . . . . . . . . . . . . . . ChercherCheminComplet(C, S, EChemins) . . . . . . . . . . . . . . . . . . TraiterRequete(Q ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S2 (T ) : sélection des sources candidates . . . . . . . . . . . . . . . . . Réécriture d’une requête (1/2) : GenerePlanPartiel(Q(TG)) . . . . . . Réécriture d’une requête (2/2) : CompletePlanPartiel(P , SAV ,CSAVMin ) xiii . . . . . . . . . . . . 83 85 86 152 154 155 xiv Notes au lecteur Dans la suite du document, les termes marqués par 1 ⋆ seront définis dans le glossaire. 2 Des données géographiques aux données biologiques Dans la partie introductive de cette thèse, avant d’aborder dans le détail nos travaux, il nous semble important d’effectuer un bref rappel de nos recherches passées, qui ont concerné le domaine de l’intégration de données géographiques. Bien que se distinguant clairement du domaine d’expertise des sciences de la vie, autour duquel s’articule ce mémoire, les réflexions que nous avons menées dans le domaine géographique ont influencé fortement le développement des éléments constitutifs de cette thèse. Nos travaux dans le domaine applicatif géographique ont eu pour objectif de développer une architecture d’intégration de données virtuelle destinée à intégrer des données cartographiques, dans le cadre du projet RNTL1 VirGIS2 [BCE04, ECBB06]. Les deux éléments principaux de ce médiateur sont le moteur de requêtes GQuery [BC04a, BC04b], qui étend les capacités du langage XQuery en y ajoutant des opérateurs géographiques, et le module de réécriture de requêtes [BEL02, EBCL04, Ess05], qui décompose et réécrit la requête posée par l’utilisateur en un ensemble de requêtes envoyées aux sources de données distribuées et hétérogènes. L’accès aux sources s’avère simplifié dans le domaine géographique, grâce à un effort conséquent visant à la standardisation des échanges, mené par le consortium OpenGIS [Ope03]. Ces travaux ont été une source d’enrichissement à deux niveaux : d’une part, afin de circonscrire la problématique de l’intégration de données du Web ; et d’autre part, ils ont constitué un apprentissage des étapes à suivre lors de l’opérationalisation d’une démarche théorique. 1 Réseau 2 National des Technologies Logicielles. Virtual Geographic Information System. 3 4 Intégration de données sur le Web : Etude générale et applications au domaine biologique En seulement une centaine d’années, un pas de géant a été franchi en médecine depuis les découvertes essentielles de Pasteur, Koch, ou Hoffmann datant de la fin du XIXème siècle. La révélation de la structure en double hélice de l’ADN⋆ par Watson et Crick en 1953 [WC53] a ensuite ouvert des champs de recherche dont nous avons encore peine à imaginer les limites. Les investigations dans le domaine biologique ont connu un essor sans précédent au cours des vingt dernières années. La première phase s’est produite lors du passage des expérimentations menées uniquement in vitro ou in vivo par l’homme, à l’automatisation de ces dernières, par la mise au point des machines de séquençage automatique, et ce dès 1986 [SSK+ 86]. Les sciences du vivant ont ensuite connu une deuxième impulsion, par le développement de l’informatique, qui a donné naissance au domaine de la bioinformatique. Ces avancées n’auraient jamais eu l’ampleur que nous leur connaissons aujourd’hui sans l’extension mondiale du réseau internet. Il peut sembler banal de le préciser tant cet outil est devenu d’utilisation courante dans le domaine de la recherche, mais il nous semble indispensable de le rappeler, avec d’autant plus de force que nos travaux se situent dans le cadre des bases de données hétérogènes et distribuées sur le Web 3 . De leur isolement des origines, ces dernières se sont ouvertes sur le monde, résolvant par là même le problème de leur accès parfois difficile ou impossible, mais en posant un autre 3 Dans la suite de ce document, les expressions source de données, base de données, ou source d’information désigneront indistinctement “un ensemble de données non indépendantes interrogeables par le contenu [...] selon n’importe quel critère”, et pour lesquelles “il doit être aussi possible de retrouver leur structure”, conformément à la définition donnée par Georges Gardarin [Gar03]. 5 plus crucial aujourd’hui, celui de leur interopérabilité. Fig. 1 – Nombre d’entrées de la base EMBL (en millions) 1 Problématique et motivations Les pratiques concernant le stockage et la mise à disposition des données produites par les laboratoires de recherche ont évolué au cours du temps. Au début du stockage informatisé des données, les résultats produits étaient sauvegardés localement, dans des bases de données développées et maintenues en interne, destinées uniquement à un usage interne. L’accent était uniquement mis sur la sauvegarde rapide et fiable des résultats. La prise en compte d’une ouverture future sur le monde (donc sur le Web) n’étant pas envisagée, les problématiques des accès et des modifications concurrentes, ainsi que la documentation destinée à l’utilisateur étaient souvent laissées de côté. En l’absence de consensus sur le modèle de données à utiliser, ou le langage de requêtes destiné à exploiter les enregistrements, les solutions individuelles se sont multipliées : formats binaires, fichiers plats, bases de données relationnelles, ou plus récemment encore, bases de données objet et natives XML [HM04]. Associés à ces bases de données, nous trouvons pêle-mêle les langages Perl [Wal00], SQL [Lan89], OQL [ASL89], XQuery [KCD+ 03], ou simplement des adresses Web, qui à base de couples clefs-valeurs sont parfois - trop souvent - le seul moyen d’extraire les informations qui intéressent le chercheur. Cette façon de procéder nous a amené à la situation que nous connaissons aujourd’hui avec des bases de données qui proposent certes souvent un format d’exportation commun (XML par exemple), mais dont les schémas sont hétérogènes, et les langages de requêtes incompatibles. La syntaxe et 6 la sémantique⋆ diffèrent d’une base à l’autre, ce qui oblige l’utilisateur à un apprentissage préalable multiple : tant sur la signification des données enregistrées et des opérateurs que l’on peut leur appliquer, que sur la façon d’y accéder, par le biais de formulaires Web ou par une connexion directe au SGBD⋆. De nos jours, la masse formidable de données produites par les centres de recherche atteint des quantités de plusieurs gigaoctets par jour, entreposés dans une multitude de systèmes, répartis dans le monde entier ; à titre d’exemple, la version 168 de GenBank [BBLO97] occupe 371 giga-octets, et la version 51 d’Ensembl [CCCR04] 713 giga-octets. Cette accumulation d’informations a engagé la biologie dans une phase de transition d’une science expérimentale à une science de plus en plus orientée par les données [Com05]. Les histogrammes présentés en Figure 1 et en Figure 2 montrent respectivement l’évolution du nombre d’entrées des bases EMBL et UniProtKB/Swiss-Prot. Fig. 2 – Nombre d’entrées de la version 56.5 de la base UniProtKB/Swiss-Prot (×103 ) L’enregistrement des séquences brutes, de la cartographie des chromosomes, des données structurales ou d’expression des gènes ont obligé à apporter une attention toute particulière aux sources de données qui les contiennent. La connexion au Web ouvre ces sources à un nombre d’utilisateurs potentiellement illimité, même si en pratique, il est rare de dépasser le cap de plusieurs milliers de connexions simultanées. Cet état de fait oblige leurs concepteurs à une réflexion approfondie en amont, afin d’éviter l’asphyxie rapide du 7 Fig. 3 – Evolution du nombre de bases de données ouvertes sur le Web système, causée par la redondance, des structures de données inadaptées ou une mauvaise optimisation4 qui font s’écrouler les performances lors d’un grand nombre d’accès. La majeure partie des sources sont basées sur des technologies éprouvées et robustes, comme des serveurs Oracle [ATLB03] ou MySQL [SR04] (souvent montées en cluster⋆ ), donc aptes à répondre à une telle montée en charge. 5 L’un des principaux problèmes auxquels sont confrontés les biologistes aujourd’hui ne concerne donc plus la consultation individuelle d’une seule et unique source, mais plutôt l’interopération de plusieurs. Nous ne considérons dans la suite de cette introduction et la présentation de nos travaux que les sources de données qui correspondent aux critères décrits chaque année dans le journal Nucleic Acid Research [Gal07], à savoir les banques de données ouvertes au public sans installation de logiciels complémentaires, et qui autorisent l’exploration du contenu stocké sans compensation financière6 . Le graphique présenté en 4 La plupart des tables de la base Ensembl ont un index dont la taille dépasse celle des données ellesmêmes. La rapidité d’accès a été privilégiée - sciemment et avec succès - au détriment de l’espace de stockage [Col06]. 5 Au 13 Juillet 2006, le serveur MySQL de la base de données Ensembl [CCCR04], démarré depuis 30 jours, avait exécuté 505 602 993 commandes et reçu 224 625 322 requêtes SELECT, soit une moyenne de 7 millions par jour. Toutes opérations confondues, le serveur a répondu en moyenne à 229 requêtes/sec, avec des pointes à 855. 6 Des restrictions d’accès peuvent néanmoins exister afin de n’autoriser que certains types de requêtes. 8 Figure 3, tiré des classements opérés par ce journal [Gal08], témoigne de l’évolution du nombre de sources au fil des ans. La liste s’est accrue de façon considérable depuis la fin du siècle dernier, avec une augmentation moyenne de 20,83% par an. Une des problématiques centrales des biologistes d’aujourd’hui consiste donc à rassembler les données extraites de plusieurs de ces sources, de la façon la plus automatisée possible. Dans le cadre de nos travaux, nous nous sommes intéressés uniquement aux problèmes posés par l’intégration de données, que nous allons détailler un peu plus loin dans la suite de cette introduction. Un bon moyen de se rendre compte des difficultés éprouvées aujourd’hui pour la collecte de données consiste à s’intéresser à un scénario typique, résolu manuellement. Considérons une question biologique simple à propos de la nomenclature de localisation⋆ des chromosomes : “Quelles sont les publications concernant la région q31 du chromosome 5 ? ” Une réponse possible à cette question met en œuvre deux sources : UCSC [KBD+ 03] (contenant la cartographie du génome humain) et PubMed [Nat06] (base de données bibliographique). La première étape consiste à extraire les listes de gènes depuis UCSC, et à reporter ensuite les références obtenues dans le formulaire de requête proposé par le site de PubMed. Le croisement manuel des informations fournies individuellement nous apporte donc un ensemble de résultats, qui ne constitue qu’une partie des réponses possibles, puisque d’autres sources disponibles sur le Web nous auraient permis de répondre à cette même question7 . Le travail demandé pour ce faible nombre de sources est déjà fastidieux, et prend des proportions qui deviennent difficiles à gérer à partir de cinq ou dix sources. Des simplifications existent, puisque des liens hypertexte permettent souvent de basculer d’une source à l’autre selon la valeur d’un paramètre ; c’est notamment le cas dans les bases de données les plus connues telles que GenBank [BBLO97], ou SwissProt [OMG+ 02]. D’un point de vue informatique, ces hyperliens entre objets hébergés dans des sources distribuées permettent d’obtenir une jointure, mais ces solutions bien que très utiles pour collecter rapidement des données, sont insuffisantes : l’intervention humaine reste prépondérante ; de plus, l’expressivité de la requête est très limitée, pour ne pas dire inexistante. Comme nous venons de l’évoquer, la diversité des formats, des interfaces, des langages de requêtes rend l’intégration de données (biologiques ou non) sur le Web difficile. Des solutions ont été proposées pour la collecte centralisée de données au travers d’une inter7 Cette problématique fait partie de celles que nous avons abordées dans nos travaux présentés en Partie II. 9 face unique : soit en exploitant les liens entre sources (intégration navigationnelle), soit dans le cadre des approches d’intégration matérialisées (entrepôt de données) ou virtuelles (architectures de médiation). L’intégration navigationnelle consiste à regrouper les bases de données entre elles à partir des identifiants qu’elles partagent. Il s’agit de la méthode la plus simple, accessible à tous les utilisateurs sans apprentissage préalable. Elle reprend le principe appliqué lors de l’extraction manuelle, en sélectionnant les attributs à extraire de chacune des sources demandées. Les deux dernières approches, la construction d’un entrepôt de données ou l’intégration de données virtuelle à l’aide de vues ont besoin toutes les deux d’un modèle de données commun afin de représenter les données extraites des sources locales. La démarche de création d’un entrepôt consiste à traduire massivement les données extraites des sources locales, afin de les rendre compatibles avec le modèle de données proposé à l’utilisateur. Cette adaptation des données présente un certain nombre d’inconvénients, tels que l’espace nécessaire au stockage et la mise à jour qui est très coûteuse en temps et en trafic sur le réseau. Le système offre généralement un langage de requêtes qui permet d’appliquer des opérateurs d’extraction de données pour vérifier des hypothèses, ou bien réaliser des expérimentations in silico. Hammer et Schneider [HS03] vont jusqu’à préconiser la mise en place d’une seule et gigantesque base de données, qui serait selon eux l’unique solution aux problèmes d’intégration de données biologiques8 . Cette proposition s’apparente à de la science-fiction : l’espace physique occupé serait trop important, tant par les données que la conservation de leur traçabilité 9 , et les phases de mises à jour occuperaient la majorité du temps de fonctionnement du système. La médiation de données permet d’intégrer uniquement les données souhaitées par l’utilisateur, qui exprime ses besoins au travers d’une requête posée sur un schéma global préalablement défini. Les données sont à jour en permanence, puisque relues à chaque fois qu’une nouvelle demande parvient au système. L’espace démandé pour stocker les données est faible, et dédié au mécanisme de mise en cache des requêtes s’il a été mis en place par les concepteurs. Les difficultés majeures de la médiation reposent essentiellement sur la transformation de requêtes destinées aux sources de données locales, et la facilité d’évolution du schéma global en cas d’ajout ou de retrait d’une source, ce qui se produit très fréquemment sur le Web. Les deux approches que nous venons d’évoquer se rejoignent par le fait que dans 8 Voir également à ce propos l’article de Lincoln Stein [Ste03]. importante pour les biologistes, la provenance des données a un impact sur leur qualité et le crédit qui leur est accordé. SwissProt [Swi06], manuellement annotée par 51 curateurs (effectif de l’année 2006), est ainsi très estimée, et sert de socle à la création d’autres bases. 9 Très 10 certains cas, les instances du schéma défini pour la médiation servent d’étape de transformation préalable au peuplement d’un entrepôt de données [CGM98]. 2 Objectifs et contributions L’intégration de données dans le cadre relationnel, objet ou semi-structuré avec XML, s’est exprimée ces dernières années au travers de projets d’intégration génériques [KLSS95, CGMH+ 94, ACV+ 00], ou orientés vers un domaine précis, qu’il s’agisse de la géographie [BCE04, SM04] ou de la biologie [DCB+ 01, SBB+ 00, DW03]. Nos travaux dans le domaine de l’intégration de données sur le Web ont été appliqués à la biologie et se sont articulés autour de deux axes majeurs : 1. la collecte de données entre sources aux capacités d’accès limitées, ce qui est le cas d’un très grand nombre de sources biologiques ouvertes sur internet 2. l’intégration de données flexible, basée sur la philosophie lecture seule de la médiation, et proposant un langage de requêtes évolué, tout en s’affranchissant des difficultés posées par la construction et la maintenance du schéma global inhérente à l’utilisation d’un médiateur Nous nous sommes placés dans le cadre biologique, mais les approches et les méthodes présentées dans ce mémoire de thèse peuvent être adaptées et utilisées sur n’importe quelle thématique autre que celle des sciences de la vie. Le premier aspect que nous avons traité est destiné à répondre au besoin de regroupement de données formulé par les biologistes, sans nécessité d’apprentissage de langage, ni de construction d’un schéma métier. Nous sommes partis du constat que l’approche manuelle consiste pour l’essentiel, à partir d’un petit nombre de paramètres et d’une liste de sources, à extraire des tuples de certaines des sources, puis d’en réinterroger d’autres à partir du résultat fourni. Nous avons donc automatisé l’exécution manuelle de cette tâche fastidieuse, à partir d’un formalisme simple basé sur la logique des attributs, modélisant les paramètres d’entrée, les sources de données, et l’ensemble des références partagées entre les sources. Cette approche a été validée par la réalisation d’un logiciel d’intégration utilisant des descriptions des capacités des sources basées sur le modèle semi-structuré proposé par le langage XML10 . 10 Le modèle relationnel avait été mis en œuvre dans la première version de l’outil développé. 11 Le deuxième aspect de nos travaux traite de l’intégration flexible de données sur le Web. Notre réflexion a été guidée par les conclusions tirées de nos précédentes recherches dans le domaine de la médiation de données [BC04b, BL02], mais aussi sur les difficultés présentées par le traitement des requêtes portant sur un schéma global [CLL01, LMS95]. Dans le domaine du Web, l’intégration de données devient de fait très complexe quand le nombre de sources augmente, et les difficultés rencontrées sont accentuées par leur volatilité. De plus, le langage de requêtes proposé à l’utilisateur doit être riche pour permettre l’expression simple de requêtes complexes. Nous avons donc privilégié une solution qui s’affranchit des difficultés de construction de schéma rencontrées habituellement, puisque l’utilisateur définit préalablement le schéma métier, indépendamment des sources, puis se contente d’associer à ce schéma tout ou partie des sources qui selon lui présentent un intérêt. À partir de méta-données décrivant les capacités des sources ainsi que les préférences de l’utilisateur, la phase de réécriture sélectionne uniquement les sources pouvant produire des résultats ; s’ensuit alors une phase d’extraction, puis de de fusion des tuples renvoyés, phase qui détecte et résout les éventuelles incohérences entre les données. Cette approche d’intégration a également été validée par le développement d’un prototype destiné à illustrer sa mise en œuvre sur plusieurs exemples. 3 Structuration du document Dans la première partie de cette thèse, nous présentons les problèmes généraux rencontrés en intégration de données. Notre état de l’art comporte une description des différents niveaux d’hétérogénéité entre les sources, et une présentation des réponses théoriques apportées par la communauté pour faciliter leur intégration. Nous illustrons chacune des approches par les descriptions de quelques-unes des solutions logicielles majeures qui y sont associées, qu’elles soient prototypiques ou commerciales. Nous discutons également les forces et les faiblesses de nos travaux précédents, qui ont justifié les orientations de nos recherches. Dans la seconde partie, nous présentons une contribution apportée à la problématique de collecte de données sur le Web, dans le cadre de sources aux capacités d’accès limitées. Cette approche se justifie par le constat que la très grande majorité des sources aujourd’hui disponibles [Gal07] ne le sont qu’au travers d’interfaces rudimentaires, majoritairement des formulaires en langage de balisage HTML. Ces interfaces demandent peu de paramètres en entrée, et en renvoient beaucoup en résultat ; les paramètres supplémentaires obtenus peuvent donc à leur tour être utilisés pour adresser une nouvelle requête, et ainsi réaliser de proche en proche une jointure entre toutes les sources. La méthode que 12 nous avons mise en œuvre raisonne sur les capacités des sources à l’aide de la logique des attributs. Elle permet d’automatiser ce qui est fait aujourd’hui encore manuellement. De plus, la confrontation de données tirées de plusieurs jointures permet de complèter des informations partielles, ou de mettre en évidence des incohérences entre les données de plusieurs sources. Enfin, la troisième partie de ce mémoire propose un formalisme mixte de construction de schéma global adapté au modèle semi-structuré, afin d’aboutir à une intégration flexible de données, qui s’affranchit des limitations actuelles des systèmes basés sur l’intégration de schémas utilisant les approches GAV11 ou LAV12 . Forts de l’expérience tirée de recherches que nous avons menées précédemment [BCE04], nous avons suivi une approche inspirée de celle définie par Xu et Embley [XE04], en y associant un algorithme de réécriture de requêtes apte à résoudre les conflits rencontrés lors de la fusion des données intégrées. Dans le dernier chapitre, nous résumons les contributions de nos recherches et concluons en ouvrant des perspectives sur nos travaux futurs. 11 Global-As-View, 12 qui définit les relations dans le schéma global comme des vues sur les sources locales. Local-As-View, qui définit les relations dans les sources locales comme des vues sur le schéma global. 13 14 Première partie Hétérogénéité et intégration de données : état de l’art 15 Dans la première partie de cette thèse, nous nous appliquons à dresser l’état de l’art de l’hétérogénéité des données biologiques disponibles sur le Web, et des différentes approches théoriques qui visent à leur intégration. Nous illustrons ces descriptions par la présentation de solutions proposées par la communauté pour chacune des approches. Enfin, à partir de la discussion des forces et des faiblesses des solutions existantes et des travaux que nous avons menés, nous introduisons les deux axes majeurs de nos travaux, répondant chacun à une classe précise de problèmes, et les contributions que nous avons apportées à leur résolution. 17 18 Chapitre 1 Introduction Dans ce premier chapitre, nous rappelons brièvement la définition de l’intégration de données, puis nous présentons les grandes dimensions de variation des données, qui se situent au niveau de leur syntaxe, de leur sémantique et de leur qualité. Nous illustrons notre propos par des exemples tirés de sources de données biologiques, et concluons en explicitant les problèmes supplémentaires causés par la grande autonomie des sources et leurs capacités d’interrogation limitées. Sommaire 1.1 Intégrer des données : pour qui ? pourquoi ? . . . . . . . . 20 1.2 Des différences multiples . . . . . . . . . . . . . . . . . . . . 21 1.2.1 Variété des données . . . . . . . . . . . . . . . . . . . . . . 21 1.2.2 De l’hétérogénéité... . . . . . . . . . . . . . . . . . . . . . . 22 1.2.3 Autonomie et capacités d’interrogation . . . . . . . . . . . 27 19 1.1 Intégrer des données : pour qui ? pourquoi ? Dans la partie introductive de l’ouvrage Introduction to algorithms [CLRS01], à la question “Quels sont les types de problèmes susceptibles d’être résolus par des algorithmes ? ”, la première réponse fournie par les auteurs est “identifier les 100000 gènes de l’ADN humain [...] stocker ces informations dans des bases de données et développer des outils d’analyse de données”. Cette remarque va dans le sens de notre argumentation présentée à l’aide de chiffres et d’exemples dans la partie liminaire de cette thèse : intégrer les données biologiques issues des laboratoires et proposées sur internet est devenu une préoccupation majeure de l’informatique d’aujourd’hui. La recherche sur les gènes, les protéines, ou les publications scientifiques - à des fins d’annotation ou de prédiction - amène souvent les chercheurs à soumettre des requêtes multiples sur des sources de données hétérogènes disponibles sur le Web. Plusieurs études ont démontré l’apport de l’intégration de différents types de données en recherche. Ainsi, Mootha et al. ont découvert un des gènes responsables du syndrome de Leigh 13 , en intégrant des données d’expression, des données génomiques et de localisation sub-cellulaire [MLM+ 03]. Stuart et son équipe ont déduit des fonctions de gènes à partir de données de puces à ADN disponibles sur plusieurs espèces [SSKK03]. D’autre part, Kaplan a souligné l’intérêt de confronter des données génomiques, protéiques, épidémiologiques ainsi que des outils d’analyse génétique pour la compréhension des maladies polygéniques et le développement de nouveaux outils de diagnostic et thérapeutiques [Kap02]. La complexité de la tâche d’intégration repose tout à la fois sur l’obligation pour le chercheur de maı̂triser une palette d’outils informatiques et de langages dédiés, et sur la collecte manuelle et fastidieuse - voire dans certains cas impossible - des fragments de réponse à recombiner. Le but de l’intégration est d’offrir à l’utilisateur un accès uniforme et transparent aux données, le système se chargeant de la répartition des requêtes aux sources qui participeront à la construction du résultat. Le problème de combinaison de sources de données hétérogènes sous une seule interface de requête n’est pas récent : le développement rapide des bases de données dans les années 70 a naturellement fait surgir le besoin de partager et d’intégrer les données déjà entreposées. 13 Le syndrome de Leigh est une maladie rare (1 cas sur 40 000 naissances en Europe) qui génère des lésions au niveau du thalamus et du tronc cérébral et entraı̂ne des symptômes neurologiques et musculaires, mortels à brève échéance. 20 En biologie (mais aussi plus généralement dans le monde industriel 14 et des domaines différents tels que la géographie ou les sciences physiques...), les défis à relever pour parvenir à un résultat intégré sont nombreux, et conséquences directes des caractéristiques des données et des systèmes destinés à leur stockage. 1.2 Des différences multiples À l’image d’une tendance générale transdisciplines scientifiques, le nombre de sources de données et d’outils à la disposition des biologistes sur le Web n’a cessé de croı̂tre ces dernières années. Cette augmentation colossale de la masse de données disponibles a généré une grande variété d’interfaces d’accès, mais aussi et surtout une profonde hétérogénéité syntaxique, sémantique et qualitative. Jusqu’à présent, les recoupements effectués par les biologistes entre plusieurs sources de données étaient réalisés à la main, au cas par cas. Les interrogations des sources devaient se faire une à une, puis dans l’ensemble de résultats obtenus, il fallait faire la part des redondances et des complémentarités, ainsi que des éventuelles inconsistances. Désormais, la compréhension des processus globaux des phénomènes vitaux doit faire appel à une automatisation des traitements. Cet objectif, pour être atteint, nécessite la résolution des incompatibilités intersources. 1.2.1 Variété des données Une des particularités du domaine biologique est son étendue. Ce sujet très vaste est morcellé en de nombreuses sous-disciplines (comme la biochimie, la cytologie⋆ , la génétique des populations) en fonction du niveau auquel se situent les observations (respectivement moléculaire, microscopique, et populationnel). Ce découpage a conduit à une grande diversité des données stockées. Nous pouvons en distinguer deux classes : d’une part des données alpha-numériques (séquences ADN, descriptions des structures tri-dimensionnelles des protéines, informations phénotypiques, publications médicales...) et d’autre part des données spécifiques au domaine (images [BAD+05, KGKN02], graphes...). La variété des contenus a une influence directe sur la variété des contenants ; l’information à stocker a souvent dicté les choix de conception ou de solutions logicielles : l’image de micro-réseau⋆ tirée de la base SMD [GBB+ 03] et représentée sur la Figure 1.1 est en pratique plus facilement enregistrable et manipulable en tant que type binaire dans un serveur Oracle [ATLB03] qu’en tant que lien XLink [WL02a] dans un fichier semi-structuré. 14 Une entreprise gère en moyenne 40 bases de données et consacre 35% de ses investissements informatiques à leur intégration [KK02]. 21 À l’inverse, un réseau de régulation génétique⋆ tel que celui de la Figure 1.2, (tiré d’un article de Gambin et al. [GLR06]) aux interactions nombreuses et souvent bi-directionnelles, peut être aussi bien représenté suivant le modèle relationnel qu’à l’aide d’un schéma XML. Les conflits qui surviennent entre les données résultent des différences de perception, de modélisation et d’interprétation des entités du monde réel par les concepteurs des systèmes d’information15 . Fig. 1.1 – Micro-réseau 1.2.2 Fig. 1.2 – Réseau de régulation génétique De l’hétérogénéité... En évoluant indépendamment, les sources ont adopté chacune leur propre modèle de données, leur langage de requêtes, et leur format d’exportation, que la littérature a détaillés à de nombreuses reprises [HK04, DOB95, FB02, OJ03]. La résolution de ces conflits est l’objectif de nombreuses approches qui diffèrent par les méthodes et les moyens qu’elles mettent en œuvre. La taxonomie⋆ des conflits peut être définie suivant trois grandes dimensions de variation, mais celles-ci ne sont pas spécifiques et limitées au domaine biologique, 15 Le fait que le point du vue du concepteur ait un poids prépondérant sur la modélisation est appelé relativisme sémantique par Parent et Spaccapietra [PS96]. 22 puisque des problématiques similaires se retrouvent également en géographie par exemple [Bis98, AMR06]. Précisons que même lors de l’utilisation d’applications informatiques strictement identiques, des différences au niveau de l’implantation physique des données schématisées, de leur typage ou du choix d’une modélisation structurelle différente16 introduisent une difficulté supplémentaire pour permettre à au moins deux systèmes de s’échanger des données de manière cohérente. 1.2.2.1 ...au niveau syntaxique : L’hétérogénéité syntaxique est causée par les différences entre plateformes logicielles, et les formats qu’elles manipulent. Des informations identiques peuvent donc être enregistrées soit en utilisant des notations formelles telles qu’ASN 1.0 [ASN] ou Fasta [NCB06a], soit du XML, du HTML ou des SGBD relationnels ou objets. Ainsi, nous pouvons voir sur la Figure 1.3 un même gène modélisé selon quatre formats de représentation différents. L’utilisation de fichiers plats est encore aujourd’hui le standard de facto, ce qui nécessite une phase d’extraction de données afin de retrouver la structure des données originelles. Le développement du langage XML et des technologies qui y sont liées (notamment autour du langage Java avec par exemple les API⋆ JAXP [Gri05], JAXB [McL02], ou le médiateur XQuare [Odo05]) permet de plus en plus de simplifier les échanges de données biologiques [AVB01]. L’interprétation de l’information intégrée reste malgré tout un problème crucial à résoudre. 1.2.2.2 ...au niveau sémantique L’hétérogénéité sémantique peut être considérée à deux niveaux, décrits par Bishr [Bis98] : ☞ au niveau cognitif, elle révèle les visions conceptuelles opposées qu’ont les communautés de recherche à propos d’entités du monde réel à modéliser. Un des exemples les plus marquants sur les différences de conceptualisation concerne l’entité gène. Steffen Schulze-Kremer [SK98] en compare deux définitions : dans la base de données GDB [Int06], un gène est un brin d’ADN qui peut être transcrit et traduit en protéine ; dans GenBank [NCB06b] et GSDB [KBC+ 96], un gène est un fragment d’ADN d’intérêt biologique, portant un nom précis et qui est vecteur d’un trait génétique ou phénotypique particulier. Cette dernière définition prend donc en compte des morceaux d’ADN qui n’interviennent pas dans la constitution d’une protéine, et il en ressort une contradiction avec la première définition. même gène de souris est identifié par un locus⋆ dans la base MGD [MGD06] et par l’aggrégation de plusieurs exons⋆ dans GenBank [NCB06b]. 16 Un 23 HTML <table border="0" width="100%" cellpadding="1" cellspacing="1"> <tr> <td nowrap="nowrap">Entry name</td> <td width="100%"> <b>IL12B_HUMAN</b> </td> </tr> <tr> <td nowrap="nowrap">Primary accession number</td> <td> <b>P29460</b> </td> </tr> <tr> <td nowrap="nowrap">Integrated into Swiss-Prot on</td> <td>April 1, 1993</td> </tr> </table> ASN 1.0 Seq-entry : := set { descr {title "Interleukin-12 subunit beta" , update-date std {year 1991 ,month 5 ,day 17} , source { org {taxname "Homo sapiens" , common "human" , db {db "taxon" , tag id 9606}}} }} FASTA >IL12B|chr5|-|158674369|158690059 GATTACAAAGAAGAGTTTTTATTAGTTCAGCCTCAGAATGCAAAAATAAA ATACATTACTTAAAAGTAGCACCTTCATGGAGCCATATTTTCTGGTCATA... XML <SNPPER-RPC SOURCE="*RPCSERV-NAME*" VERSION="$Revision : 1.38$" GENOME="hg17" DBSNP="123"> <GENEINFO> <GENEID>16348</GENEID> <NAME>IL12B</NAME> <CHROM>chr5</CHROM> <STRAND>-</STRAND> <TRANSCRIPT><START>158674369</START><END>158690059</END></TRANSCRIPT> </GENEINFO> </SNPPER-RPC> Fig. 1.3 – Divers formats pour les mêmes données 24 ☞ au niveau de la nomenclature, elle se manifeste par des entités équivalentes identifiées par ou contenant des valeurs17 différentes. La Table 1.1 en montre un exemple, où un même objet peut se trouver associé à des identifiants distincts. À l’inverse, un seul et unique identifiant peut désigner plusieurs entités différentes. Cette situation peut également se produire au sein d’une seule et unique source, introduisant des contradictions qui impactent la qualité de la source et la confiance qui lui est accordée. La dénomination d’une information est une cause de conflit sémantique (synonymie⋆ , homonymie⋆ ...), et engendre une incompréhension entre sources ayant choisi des taxonomies distinctes. Un morceau d’ADN peut ainsi être indistinctement associé aux termes brin ou séquence. De la même façon, les conflits de valeurs associées à un attribut peuvent fausser les interprétations : ceci se produit dans le cas où les domaines de valeurs sont disjoints, si des différences linguistiques ou des conflits d’échelle existent entre les sources, ou si l’échantillonnage d’une même donnée s’est fait de façon continue ou discrète. SwissProt Accession Number P29460 EMBL M65272, M65290 AY008847, AF180563 AF512686 GeneW HGNC : 5970, IL12B GeneCard IL12B Prosite PS50853, PS01354 PS50835 Tab. 1.1 – Références croisées de sources différentes concernant le gène IL12B Les conflits sémantiques sont donc dûs à la présence de données sujettes à des interprétations différentes, en fonction du contexte local dans lequel elles ont été utilisées. Le contexte regroupe l’ensemble des informations implicites et explicites qui ont été prises en considération lors de la phase de conceptualisation du monde réel, il a un impact direct sur la qualité des données. 17 Des tentatives d’uniformisation des identifiants utilisés par les bases de données bioinformatiques voient peu à peu le jour ; le Consensus CDS [CCD06] s’est constitué autour de l’EBI [EBI06], du NCBI [NCB06c], du WTSI [WTS06], et de la base UCSC [KBD+ 03] afin d’identifier un ensemble de régions codant des protéines dans le génome humain, dont l’annotation serait de grande qualité. Les gènes intégrés à l’ensemble CCDS se voient attribuer un identifiant unique, qui est désormais incorporé sur plusieurs bases de données biologiques telles qu’Entrez Gene et Ensembl. 25 1.2.2.3 ...au niveau qualitatif La différence de qualité entre les sources est une notion subjective, puisque liée à l’intérêt que portent les utilisateurs aux données. Elle s’explique par l’attention accordée au raffinement des informations brutes directement issues des laboratoires. Les bases de données biologiques peuvent être séparées en deux familles : ☞ les primaires contenant les données de base, typiquement ce sont des séquences de gènes ou de protéines découvertes par des laboratoires de séquençage (Swiss-Prot [Swi06], EMBL [EMB07], GenBank [NCB06b], DDBJ [DDB06]). ☞ les secondaires, des banques plus spécialisées, contenant des données raffinées soit sur des domaines tels que la localisation d’un gène [Loc06], la structure d’une protéine [RSC06], le phénotype⋆ [OMI06], soit sur des espèces telles que la mouche [Fly06] ou la souris [MGD06], soit des références sur des publications médicales [Med06, Nat06]. Les bases primaires constituent la matière première à partir de laquelle la bioinformatique va produire les données des bases secondaires et construire de nouvelles connaissances. Le Tableau 1.2, tiré d’un article de Lambrix et Jakoniene [LJ03], nous montre les provenances diverses et variées de données disponibles dans plusieurs sources. “La traçabilité des données leur apporte une plus value non négligeable”, comme l’ont souligné Simmhan, Plale et Gannon [SPG05], mais le raffinement d’informations en provenance d’une autre base de données peut aussi entraı̂ner la répercussion d’une erreur d’une base à l’autre. Source de données C GenBank EMBL DDBJ ENZYME PDB MMDB PROSITE PRINTS BLOCKS SwissProt × × × × × P BD × EMBL, DDBJ GenBank, DDBJ EMBL, GenBank IUBMB × × × × × × PDB SwissProt SwissProt InterPro GenBank, EMBL, DDBJ Tab. 1.2 – Provenance des données : Chercheurs(C), Publications(P), Autres bases(BD) 26 Le crédit accordé à une source n’est pas le même suivant que l’information qu’elle contient a été curée manuellement ou de façon automatique18 ; de même, le niveau de détail varie d’une source à l’autre. La coopération entre deux sources de qualités différentes mais traitant du même domaine peut aboutir à une incohérence dans le résultat si les données sont contradictoires. L’utilisateur d’un système d’intégration, s’il a le choix entre plusieurs sources à interroger, optera plus certainement pour celles qui offrent le meilleur rapport entre qualité et coût d’exécution de la requête. L’indépendance des sources les unes visà-vis des autres et leur politique d’administration système (avec la plupart du temps la mise en place de restrictions d’accès aux données) sont également deux autres facteurs importants à prendre en compte. 1.2.3 Autonomie et capacités d’interrogation La majorité des sources disponibles sur internet fonctionnent en mode totalement autonome. Autrement dit, les administrateurs et curateurs de ces sources sont tout à fait libres de modifier leur schéma ou de mettre à jour leur contenu (ces sources fonctionnent souvent sur le principe de mises à jour régulières, comme SwissProt [Swi06] par exemple) sans en faire état préalablement aux utilisateurs. Aucune source ne tient compte des éventuelles références dont elle est l’objet ; or, en intégration de données, l’indisponibilité d’une source pendant sa maintenance va influer plus ou moins fortement sur la qualité et la complétude du résultat d’une requête, problème qu’un outil d’intégration de données du Web doit prendre en compte et résoudre, ou tout au moins signaler à l’utilisateur. La seule solution afin d’avoir en permanence les données intégrées les plus à jour, est d’accéder à celles-ci lors de l’exécution des requêtes. Un facteur d’inconsistance supplémentaire des sources de données orientées Web est leur grande dépendance vis-à-vis du réseau. Les performances des transferts sur internet étant imprévisibles, “n’importe quel système d’intégration qui accède à des données du Web hérite de cette imprévision” comme l’ont souligné Jagadish et Olken [JO03]. Les accès aux données peuvent être effectués via un navigateur HTTP ou un logiciel client FTP, par connexion directe sur la base de données (client dédié ou JDBC [Ree01] par exemple), ou plus récemment encore via des appels de services Web. Concernant les interfaces hommemachine, chaque source propose ses propres fonctionnalités, ce qui suppose et impose à l’utilisateur une phase d’apprentissage pour chacune des interfaces qu’il devra utiliser. Des restrictions d’accès existent sur les sources, et certaines requêtes ne peuvent tout simplement pas être exécutées. Ces limitations empêchent dans certains cas l’extraction 18 Ensembl est annotée automatiquement [CEA+ 04] et SwissProt possède une équipe de curateurs + [OMG 02]. 27 d’informations pertinentes, même si les données pour y répondre sont disponibles [Suj01]. Les motivations de ces choix s’expliquent : ☞ soit par la volonté d’assurer une qualité de service identique à tous les utilisateurs : il n’est donc pas envisageable qu’un seul d’entre eux mobilise des heures durant la puissance de calcul d’une source par une requête trop complexe ☞ soit pour des raisons de droits de copie des données : l’extraction massive d’informations est alors limitée volontairement par les propriétaires de la source Souvent, les langages de requêtes proposés n’en sont pas réellement : le système d’interrogation est constitué uniquement d’un index de taille plus ou moins importante, et via des formulaires accessibles dans des pages HTML, va chercher dans une ou plusieurs sources les valeurs associées aux attributs choisis. Des langages de plus haut niveau plus expressifs sont également utilisés, tels que SQL ou OQL. L’intégration ne doit d’ailleurs pas simplement concerner les données brutes, mais aussi permettre l’utilisation de ressources biologiques, telles que Blast⋆ [AGM+ 90], ou Fasta⋆ [LP85]. Ces opérateurs peuvent être disponibles ou non sur une source, et à l’instar des données sur lesquelles ils s’appliquent, ne pas être équivalents en fonction de la source considérée19 . L’autonomie des sources les unes par rapport aux autres, l’hétérogénéité de leurs représentations, mais aussi les interfaces d’accès différentes et aux capacités d’interrogation inégales rendent difficile, voire impossible leur utilisation combinée par des biologistes. Les procédures permettant de collecter les données doivent autant que possible être automatisées, et c’est cette tâche qui échoit au système d’intégration, avec plus ou moins de facilité en fonction de l’approche suivie. 19 Ceci se produit en fonction de l’implémentation qui en a été faite : Blast par exemple existe en deux versions, NCBI-Blast2 (développé au NCBI) et WU-Blast2 (développé à l’Université de Washington). Des outils utilisant la première version de l’algorithme sont encore utilisés. 28 Chapitre 2 Classification des approches d’intégration Dans ce second chapitre, nous présentons un état de l’art articulé autour des différentes techniques d’intégration de données proposées jusqu’à aujourd’hui, et illustré par la présentation d’architectures et de prototypes issus des recherches menées par les communautés informatiques et bio-informatiques. À partir de cette présentation et de la synthèse de nos expériences précédentes, nous introduisons les choix qui nous ont orienté vers les travaux présentés dans les deuxièmes et troisièmes parties de cette thèse. Sommaire 2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.2 L’entrepôt de données . . . . . . . . . . . . . . . . . . . . . 32 2.3 La navigation entre les sources . . . . . . . . . . . . . . . . 38 2.4 Les accès par les portails et les plateformes logicielles . . 39 2.5 La fédération de données . . . . . . . . . . . . . . . . . . . . 40 2.6 L’approche multi-agents . . . . . . . . . . . . . . . . . . . . 41 2.7 La médiation de données . . . . . . . . . . . . . . . . . . . . 42 2.8 L’intégration P2P . . . . . . . . . . . . . . . . . . . . . . . . 45 2.9 Wrapper les sources, un problème commun à toutes les approches 47 2.10 Synthèse et discussion . . . . . . . . . . . . . . . . . . . . . 48 2.11 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 29 2.1 Introduction À propos de l’évolution des méthodes d’analyse d’information, les auteurs de l’outil d’intégration GeneCards [RCCPL98] avaient constaté, dès 1998, que la biologie moderne est passée de l’époque“un gène, un post-doc”, à la manipulation de plusieurs milliers d’entités simultanément, ce qui “nécessite le développement de méthodes d’intégration efficaces”. La classification des méthodes d’intégration peut se faire suivant plusieurs dimensions, résumées sur la Figure 2.1. Deux axes20 principaux correspondent à ceux décrits par Susan Davidson [DOB95] : le degré d’intégration des données, et la matérialisation ou non du résultat intégré. Il faut ajouter à ces deux critères le temps de réponse, l’évolutivité du système, et la fraı̂cheur des données intégrées. Les méthodologies adoptées prennent souvent en compte la particularité des données biologiques (Kleisli [DW03] par exemple utilise des types de données dédiés), mais seraient également de nature - moyennant quelques adaptations - à résoudre des problèmes d’intégration dans des domaines différents de celui des sciences de la vie21 . Détaillons tout d’abord les degrés de variation suivant le degré d’intégration en Figure 2.1. Une approche faiblement couplée se contente d’unir uniquement l’ensemble des schémas locaux sous-jacents en un seul schéma. Les systèmes basés sur la collecte de données via des hyperliens suivent ce principe. L’utilisateur doit dans ce cas faire la part des données complémentaires et redondantes : les étapes de nettoyage et de transformation manuelles réclament donc un effort d’intégration humain supplémentaire. A contrario, l’intégration fortement couplée de données nécéssite que les schémas locaux aient été transformés en un modèle commun, et les correspondances résolues jusqu’au niveau sémantique ; typiquement, la construction d’un entrepôt valide ces étapes : dans ce cas, l’intervention de l’utilisateur est minimale. Relativement aux niveaux d’hétérogénéité définis en Section 1.2.2, différents niveaux d’intégration sont donc possibles. L’intégration de données peut se faire uniquement au niveau syntaxique, ou bien aller jusqu’au niveau sémantique. L’intégration syntaxique 20 Un troisième axe est évoqué dans l’article que nous référençons, qui prend en compte le caractère autonome ou coopératif du développement des sources de données ; il ne nous apparaı̂t plus utile d’en tenir compte ici, puisque depuis 1995, date de parution de l’article, la coopération entre sources reste un phénomène que l’on pourrait qualifier d’anecdotique. 21 Les Annexes A et B présentent respectivement un tableau récapitulatif des différents projets d’intégration de données biologiques, et un tableau comparatif des approches détaillées dans notre état de l’art. 30 Fig. 2.1 – Classification des approches d’intégration (de 0 / faible à 5 / fort) procède par l’emploi d’adaptateurs22 et consiste à convertir l’ensemble des données des sources (qui peuvent suivre un modèle semi-structuré, relationnel, objet ou ne pas avoir de structure particulière) dans le modèle unique choisi. À l’issue de cette phase, le schéma global est uniquement constitué de l’union des schémas des sources. Il est question dans ce cas d’intégration légère ou lâche23 . Si les sources offrent chacune des informations sur des entités différentes, cette intégration est suffisante pour n’avoir aucune redondance au niveau du schéma global. Mais si l’on souhaite intégrer plusieurs sources offrant des informations sur une même entité, une intégration sémantique avec correspondance de schémas est nécessaire pour faire disparaı̂tre toute redondance au niveau du schéma global. L’intégration sémantique est fondée sur la construction d’un schéma global intégrateur (DTD⋆, schéma XML, schéma relationnel ou objet) et vise à convertir suivant ce schéma les données des sources. Il est alors question d’intégration forte ou serrée24 . Elle peut se faire selon deux axes : intégration horizontale ou verticale, appelées également intentionelle ou extensionnelle 25. D’une part, l’intégration horizontale vise à intégrer les données en créant une correspondance entre le schéma des sources locales et celui intégré. 22 L’anglicisme wrappers est également fréquemment utilisé. loose coupling est utilisée dans la littérature anglo-saxonne traitant de ce sujet. 24 L’expression anglo-saxonne consacrée dans ce cas est tight coupling. 25 Les notions de sémantique intentionnelle et de sémantique extensionnelle se retrouvent chez Goh et Bressan [GBMS99] sous les dénominations de knowledge-level et data-level, ainsi que chez Colomb [Col97] sous les dénominations de fundamental semantic et structural semantic. 23 L’expression 31 Systèmes d’intégration ... es pié co t re n s so les do e né nn ée sn es on n o sd le ... matérialisés Base de données universelles tp as co pié es ... virtuels Entrepôt de données (Meta) moteurs de recherche Bases de données fédérées Médiateurs P2P Fig. 2.2 – Organigramme des systèmes d’intégration D’autre part, l’intégration verticale vise à intégrer les données en identifiant la présence des mêmes objets dans les sources ; ils sont donc regroupés cette fois-ci entre eux. Le deuxième élément de distinction des approches d’intégration repose sur le fait que les données sont ou ne sont pas matérialisées, comme le montre la Figure 2.2. À une extrémité de l’arbre, nous trouvons donc les médiateurs de données, qui se contentent de décrire les règles de transformation entre les schémas locaux et globaux, règles qui seront utilisées lors de l’exécution des requêtes. Les seules instances accessibles à l’utilisateur sont dans ce cas celles qui correspondent à la question posée au système. À l’extrémité opposée se trouvent les entrepôts de données, qui produisent une copie physique des données intégrées. Faire évoluer le système est une manœuvre plus ou moins simple en fonction de l’approche choisie ; restructurer un entrepôt est plus coûteux qu’un simple changement effectué dans l’index des pages d’un outil d’intégration navigationnelle. Enfin, le temps de réponse et la fraı̂cheur des données varient ensemble mais inversement selon que l’approche privilégie l’accès aux sources, ou les recopie localement ; ainsi la médiation offre des données mises à jour mais le temps d’exécution de la requête peut en pâtir, a contrario d’un entrepôt de données, qui accélère les traitements, mais est mis à jour moins souvent. 2.2 L’entrepôt de données Construire un entrepôt consiste à matérialiser localement les données récupérées sur les sources, les transformer afin de les rendre compatibles avec le schéma global préalablement défini, faire la part des redondances et des complémentarités, puis exécuter des requêtes sur les données consolidées. L’entrepôt de données, ou datawarehouse, est un concept spécifique de l’informatique décisionnelle, issu du constat suivant : les données de l’informatique de production (également appelée “informatique transactionnelle”) ne 32 se prêtent pas à une exploitation dans un cadre d’analyse décisionnelle. Les systèmes de production sont en effet construits dans le but de traiter des opérations individuelles qui peuvent impliquer différents métiers du laboratoire ou de l’entreprise, et surtout, ne se préoccupent pas de leur compilation ou de leur historisation dans le temps. À l’inverse, les systèmes décisionnels doivent permettre l’analyse par sujets ou par métiers et le suivi dans le temps d’indicateurs calculés ou agrégés. Il est donc souvent indispensable de séparer ces deux mondes et de repenser les schémas de données, ce qui implique l’unification des différents gisements de données en un entrepôt de données global (datawarehouse) ou dédié à un sujet ou un métier (datamart). Père du concept, Bill Inmon dans son livre “Building the Data Warehouse” [Inm02], le décrit ainsi : “L’entrepôt de données est une collection de données orientées sujet, intégrées, non volatiles et historisées, organisées pour le support d’un processus d’aide à la décision.” Le datawarehouse n’est pas une simple copie des données de production. Il est organisé et structuré, et se caractérise par des données : ☞ ☞ ☞ ☞ ☞ orientées métier présentées selon différents axes d’analyse, appelés les dimensions non volatiles : stables, en lecture seule, non modifiables intégrées en provenance de sources hétérogènes ou d’origines diverses historisées et donc datées : avec une conservation de l’historique et de son évolution pour permettre les analyses comparatives (d’une année sur l’autre, par exemple) Ces données sont conservées dans le datawarehouse : ➱ de préférence sous forme élémentaire et détaillée si la volumétrie le permet ➱ éventuellement sous forme agrégée selon les axes ou dimensions d’analyse prévus (mais ces agrégations sont plutôt réalisées dans les datamarts que dans les datawarehouses proprement dits). Les données élémentaires présentent des avantages évidents (conservation de la profondeur et du niveau de détail, possibilité d’appliquer de nouveaux axes d’analyse et même de revenir a posteriori dans le passé) mais représentent un plus grand volume et nécessitent donc l’utilisation de matériels plus performants. Les données agrégées présentent d’autres avantages (facilité d’analyse, rapidité d’accès, moindre volume) mais il n’est pas toujours possible de retrouver le détail et la profondeur des indicateurs une fois ceux-ci agrégés : les données risquent d’être figées suivant une certaine vue, selon les axes d’agrégation retenus, et il ne sera plus possible de revenir plus tard sur ces critères si le détail n’en a pas été conservé. La Figure 2.3 détaille les différentes couches d’une architecture d’entrepôt de données. 33 Sources hétérogènes et distribuées Sources OLAP Extraire Transformer Charger Mettre à jour OLAP Data Warehouse Analyse Requêtes Rapports OLAP Data Marts OLAP Intégration Stockage OLAP Fig. 2.3 – Architecture d’un entrepôt de données La mise en place d’un système d’alimentation fiable du datawarehouse est souvent le poste budgétaire le plus coûteux dans un projet d’informatique décisionnelle. Le datawarehousing est donc un processus en perpétuelle évolution. L’entrepôt de données peut être vu comme une architecture décisionnelle capable à la fois de gérer l’hétérogénéité et le changement, et dont l’enjeu est de transformer les données en informations directement exploitables par les utilisateurs du métier concerné. Comparativement aux données classiques, la construction d’un entrepôt biologique pose des problèmes spécifiques, que résume le Tableau 2.1 tiré d’un article de Dubitzky, Krebs et Eils [DKE01]. Avantages et inconvénients de la construction d’un entrepôt Construire un entrepôt nécessite d’abord une étude des sources à intégrer pour en dégager les informations pertinentes à stocker, puis une phase d’extraction des données. L’insertion des données dans l’entrepôt est souvent précédée d’une série de nettoyages et de filtrages visant à supprimer les redondances et possibles incohérences des données des sources. Ces trois phases sont explicitées par la Figure 2.3. L’architecture entrepôt est très utilisée dans le domaine biomédical ; elle est bien adaptée à certains besoins du domaine, et motivée par l’un au moins des trois points suivants : 1. certains domaines de recherche imposent une complète confidentialité des requêtes et un contrôle total des données où l’accès distribué est alors impossible 2. les recherches biomédicales font souvent appel à des traitements nouveaux ou trop complexes pour être effectués sur des données non rapatriées localement 34 Données classiques Données biologiques Grand nombre de requêtes sur des données connues a priori Pré-agrégation facile puisque les processus sont évidents, stables et connus Changements fréquents des requêtes causés par de nouvelles hypothèses Pré-agrégation difficile car les connaissances évoluent vite et se compliquent Données stockées sur des systèmes propriétés de multiples organisations Structures de données complexes difficilement réductibles à de faibles dimensions Vue temporelle importante mais plus complexe Données propriétaires Construction de N-cubes de dimensions simples Vue temporelle des données Tab. 2.1 – Entrepôts commerciaux et entrepôts biologiques 3. l’architecture entrepôt, lorsqu’une intégration sémantique est effectuée, permet de n’accéder qu’à des données nettoyées et sur lesquelles la confiance accordée apporte une valeur ajoutée Posséder une copie locale des données autorise un accès direct aux informations, l’exécution des requêtes s’en trouve facilitée et accélérée, car il n’y pas de risques d’engorgement du réseau, ce qui peut se produire lors d’une connexion à des sources distantes. Le schéma est adaptable suivant les besoins de l’utilisateur, et la création de vues concrètes optimise les traitements des données fréquemment utilisées. Des cubes de données peuvent être construits pour extraire les connaissances, en fonction des aspects à explorer ; ils peuvent être retravaillés à la discrétion de l’utilisateur ; ces modifications, même si leur utilité peut être avérée, ne seront évidemment pas répercutées sur les sources locales. Néanmoins, la construction [Kim96, AH96] et la maintenance d’un entrepôt posent de nombreuses difficultés [ECL03, AASY97, DLW00]. Tout d’abord, la recopie des données des sources a un coût matériel, donc financier. Une nécessité est d’être capable de maintenir à jour les copies par rapport à des sources qui évoluent très rapidement, ce qui est particulièrement le cas dans le domaine biomédical. Les changements intervenus sur les données doivent être détectés et répercutés, rendant la mise à jour de l’entrepôt difficile et souvent longue, même si elle se fait de façon incrémentale. Il faut aussi être capable de prévoir un processus de rafraı̂chissement des annotations et des résultats des traitements en fonction de l’évolution des données des sources. L’ajout d’une source ou le remplacement d’une source obsolète obligent à recommencer la phase de construction. Les 35 entrepôts sont surtout basés sur le modèle relationnel et OLAP26 , qui sont peu adaptés à la variabilité des données en biologie ; l’extraction de cubes peut s’avérer délicate car les données y sont difficilement réductibles à de faibles dimensions. Enfin, les droits de copie peuvent ne pas être acquis sur toutes les données servant à alimenter l’entrepôt. Quelques exemples d’entrepôts GEDAW Gene Expression DAta Warehouse [GMB+ 05] est un entrepôt de données développé au sein de l’équipe bioinformatique de l’INSERM U522 (Régulations des équilibres fonctionnels du foie normal et pathologique) en collaboration avec l’IRISA de Rennes. Il est spécialisé dans les données du transcriptome⋆ hépatique et dédié à l’analyse des données générées par son étude. Ces données sont de natures et d’origines variées, dont une bonne partie se trouve disséminée dans des sources biomédicales sur le Web très disparates (au niveau des contenus et des structures), qu’il faut intégrer. La finalité de GEDAW est de fournir une aide à la décision permettant d’orienter les recherches biologiques. La fouille précise des données expérimentales enrichies par les données intégrées est destinée à émettre des hypothèses qui vont ainsi guider la recherche sur le foie. GEDAW utilise des techniques d’intégration à partir de sources de données structurées ou semi-structurées uniquement (GenBank au format XML, GeneOntology, UMLS, et le Transcriptome au format relationnel). GEDAW propose des règles de correspondance pour regrouper plusieurs fiches de GenBank qui décrivent une même instance biologique, en l’occurrence un même gène. Ces règles de correspondance peuvent être définies en utilisant des alignements de séquences (si un BLAST entre deux séquences renvoie un fort score de similarité alors les deux séquences sont relatives au même gène), ou encore en utilisant l’inclusion de séquences (la séquence contenue dans une fiche est incluse dans celle contenue dans une autre). Par son expertise, le chercheur biologiste peut lui aussi émettre des règles de nettoyage des données. Dans GEDAW, l’intégration se fait donc au niveau des schémas, essentiellement les schémas de GenBank (définis par des DTDs), mais surtout au niveau des instances elles mêmes avec une intégration horizontale et verticale. Dans le premier cas, des techniques de détection des analogies structurelles et des correspondances ont été mises en place afin de transformer les structures des sources vers une forme canonique (le schéma global). Dans le second cas, la réconciliation des données se fait par regroupement d’entrées pour identifier 26 Online Analytical Processing désigne les bases de données multidimensionnelles (aussi appelées cubes ou hypercubes) destinées à des analyses complexes. Ce terme a été défini par Ted Codd en 1993 [CCS93] au travers de 12 règles que doit respecter une base de données si elle veut adhérer au concept OLAP. 36 les instances. Cette identification se fait donc à l’aide de l’expression de critères pour faire correspondre les entrées et éliminer les redondances et les divergences des informations. GUS L’entrepôt GUS (Genomics Unified Schema [DCB+ 01, GUS05]) est le premier grand entrepôt de données biologiques, et il est encore à l’heure actuelle le plus important. GUS est une plate-forme générique de gestion de données sur les organismes modèles ou sur les maladies. GUS intègre des données très diverses, depuis les données génomiques aux protéomiques en passant par les données transcriptomiques. Il offre en outre un support pour l’annotation semi-automatique, le nettoyage des données, la fouille de données et l’analyse de requêtes complexes. GUS a un schéma générique. Il est en effet utilisé pour stocker des données diverses : du génome complet (Plasmodb.org [BBC+ 02]) aux données biomédicales liées au pancréas (EPConDB [MBG+ 07]). Le schéma de GUS comporte plus de 180 tables divisées en 5 domaines distincts (provenance des données, ontologies utilisées pour annoter les données, séquences et annotations, données d’expression, données de régulation des gènes). GUS intègre de nombreuses sources, notamment GenBank, SwissProt, Prodom, InterPro, GO, dbEST et dbSNP. Le schéma de GUS est constitué de l’union des schémas des sources mais il possède aussi un ensemble de tables fortement intégrées où les données sont le résultat d’une série d’algorithmes qui permettent l’unification des instances. Une sous-partie des données de GUS est donc intégrée au niveau sémantique. C’est là la particularité de GUS : chaque utilisateur peut définir des traitements sur les données de l’entrepôt et choisir de regrouper les entrées de son choix, il contribue ainsi un peu plus à l’intégration verticale. gRNA genomic Research Network Architecture [LBC+ 02] est un environnement dédié au développement d’outils destinés à l’intégration de sources biologiques. Son originalité vient du fait que l’entrepôt est peuplé par des adaptateurs XML, qui transforment selon des DTDs dédiées les données extraites des sources locales. Les données récupérées au niveau des sources sont stockées dans une base de données relationnelle, interrogée grâce au langage XomatiQ27 [BCL03] couplé à un transformateur de requêtes en SQL. Le résultat est renvoyé à l’utilisateur après traduction des données relationnelles en XML. Deux points négatifs sont à souligner : d’une part, les transformations de données qui ajoutent une lourdeur importante aux traitements, et les DTDs de transformation des données qui doivent être écrites à la main. 27 Ce langage est basé sur XQuery [KCD+ 03]. 37 2.3 La navigation entre les sources Cette approche s’inspire de ce que font habituellement les utilisateurs lors d’une recherche d’information sur le Web, qui implique une recherche de page en page par clic de souris. Elle ne nécessite aucun apprentissage particulier d’un langage de requêtes dédié et permet de choisir les sources à utiliser. Le schéma global présenté à l’utilisateur est facile à construire, car il se contente d’unir ceux des sources entre eux. Les données des banques sont ensuite intégrées en se basant sur leurs références croisées. En pratique, les requêtes sont générées à partir de formulaires sur le Web, dont les paramétrages choisis sont transformés en expressions de chemin. Les résultats fournis par une première requête peuvent être utilisés comme point de départ pour de nouvelles interrogations, qui peuvent ainsi s’enchaı̂ner en cascade, à l’image de ce que proposent SRS [EUA96], DBGET/LinkDB [FGM+ 98], ou Entrez [WBB+ 05]. Notons que comparé au nombre important de sources de données actuellement disponibles sur le Web, nombre qui a atteint 1078 selon les critères de Michael Galperin dans son référencement publié chaque année dans le journal Nucleic Acids Research [Gal08], le nombre de références croisées est faible. Les sources les plus importantes partagent des identifiants, mais nombreuses sont celles, plus petites, qui soit adoptent un système d’identification propriétaire, soit ne proposent que partiellement des références partagées. Les systèmes basés sur le partage de références souffrent d’un manque de flexibilité lors de l’ajout d’une source ; le calcul de toutes les interconnexions fait surgir le problème N 2 [Mor03]. L’intégration navigationnelle atteint donc rapidement ses limites lorsque le nombre de sources qui intéressent l’utilisateur augmente, et peut mener à des problèmes de désorientation et de surcharge cognitive [Mar96]. L’expression des vues et des jointures est difficile, puisque souvent limitée par le manque d’expressivité inhérent aux formulaires de requêtes utilisés sur internet. Malgré ses défauts, l’intégration navigationnelle peut avoir des avantages pour interroger rapidement des sources hétérogènes et distribuées et confronter leurs informations. Elle ne nécessite pas d’apprentissage, et se présente comme un moyen simple d’accélérer ce qui est fait encore aujourd’hui manuellement. Quelques exemples d’outils navigationnels SRS Sequence Retrieval System [EUA96, ZLAE02] s’apparente à un outil de recherche basé sur des mots clefs, et non à un réel système d’intégration. SRS parcourt des fichiers plats ou des bases de données, afin de créer un index des données, et les récupérer plus rapidement lors de l’exécution des requêtes posées au système. Le résultat obtenu est une liste de documents et de liens en relation avec les mots clefs fournis par l’utilisateur. SRS utilise un modèle orienté objet, et propose l’interrogation de 130 bases de données, à l’aide 38 du langage Icarus (Interpreter of Commands And Recursive Syntax [MM97]). GeneCards GeneCards [RCCPL98] est un outil d’intégration navigationnelle qui emprunte également un peu à l’approche entrepôt, puisqu’il stocke localement une partie des données extraites des sources. GeneCards est dédié au regroupement d’informations sur les gènes liés à des maladies humaines. Les pages Web qui présentent le résultat intégré sont générées à la volée, par des scripts CGI28 qui accèdent à la fiche (card ) souhaitée et la renvoient à l’utilisateur. L’extraction automatique d’informations à partir de plusieurs sources est délicate sans vocabulaire standardisé ; forts de ce constat, les auteurs ont basé le système sur l’utilisation d’une nomenclature standard issue des travaux du consortium HGNC (HUGO Gene Nomenclature Committee [EDS+ 06]). GeneCards n’intègre d’ailleurs que les sources facilement interrogeables via les termes de cette nomenclature, au moyen de scripts CGI/Perl, regroupés dans le paquetage PLUK (Package for Locating Useful Knowledge). Les sources intégrées29 ont été sélectionnées pour leur fiabilité, et les facilités d’extraction de données qu’elles offrent. Afin de générer une fiche concernant un gène, des scripts ad hoc procèdent à l’extraction de données à partir de copies textuelles des bases concernées, ou via leur interface Web, à l’aide de la librairie dédiée LWP30 [Bur02]. Les données ainsi obtenues sont ensuite vérifiées semi-automatiquement, et les faux-positifs sont éliminés de l’ensemble. L’utilisation intensive de scripts différents pour chaque source, et la lourde tâche de vérification manuelle du résultat intégré contrastent avec la volonté de simplification à l’origine du choix d’un vocabulaire commun. 2.4 Les accès par les portails et les plateformes logicielles Contrairement à l’intégration navigationnelle, les portails tels que Genera [LBié], Expasy [GGH+ 03], GenomeNet [KS99] ou Ensembl [BAB+ 04], ne font pas partie des systèmes multi-bases, et se contentent de donner accès, au travers d’interfaces plus ou moins évoluées, à une ou plusieurs sources de données. La couche logicielle destinée à les interroger peut être constituée d’une page Web statique ou dynamique ; des restrictions sont imposées aux utilisateurs, notamment pour l’exécution de requêtes qui sont jugées trop 28 Common Gateway Interface (“Interface passerelle commune”) est une interface normalisée utilisée par les serveurs HTTP. 29 GDB, MGD, OMIM, SwissProt, HGMD, Genatlas, et Doctor’s Guide. 30 Abréviation de libwwww-perl, ensemble de modules Perl dédiés à l’accès au Web. 39 coûteuses, comme celles contenant des jointures multiples, ou faisant appel à de nombreux opérateurs. Une autre forme d’accès aux données peut se faire via des plateformes logicielles telles que Iogma/Genostar [Gen02] ou Imagene [MRDV99], qui fournissent des fonctions d’accès aux données et une panoplie d’outils d’analyse. L’approche d’intégration utilisant des clients lourds a été délaissée ces dernières années ; l’accent est aujourd’hui plutôt mis sur l’utilisation de briques logicielles élémentaires, composables en fonction des besoins de l’utilisateur. 2.5 La fédération de données D’après Sheth et Larson [SL90], une base de données fédérée est “un système de bases de données distribuées, hétérogènes et autonomes”. En se basant sur ce principe, ils ont proposé un schéma d’architecture à cinq niveaux, qui reprend et augmente l’architecture à trois niveaux ANSI/SPARC originelle [Dat03]. Une base de données fédérée est obtenue en considérant l’interopérabilité des différents systèmes de bases de données, appelés composants. La Figure 2.4 en détaille les cinq niveaux : 1. le schéma local est celui d’une source attachée au système 2. le schéma de composant est le produit de la transformation d’un schéma local vers un modèle commun de données préalablement choisi 3. le schéma d’exportation est un sous-ensemble du schéma de composant accessible à la fédération 4. le schéma fédéré résulte de l’intégration de plusieurs schémas d’exportation 5. le schéma externe définit un schéma destiné à un utilisateur ou une application particulière Batini, Lenzerini et Navathe [BLN86] présentent plusieurs méthodes d’intégration des schémas des sources afin d’aboutir à la construction du schéma commun ; cette phase d’intégration peut être découpée en 4 étapes détaillées par Zisman et Kramer [ZK95] : pré-intégration, comparaison des schémas, mise en conformité des schémas, et étape de fusion/restructuration. Plusieurs projets d’intégration de données biologiques ont adopté l’approche fédérée : ENQUire [JMS96], Docking-D [Abe95], GDB [Fas94] ou TINet [EKJ01]. Ce dernier projet utilise une approche de type base de données fédérée inspirée des travaux de Heimbigner et McLeod [HM85]. Basé sur le modèle objet OPM [CM95], TINet propose un langage 40 ... ... Processeur de filtrage Processeur de filtrage Modèle de données commun Schéma externe ... Schéma externe ... ... Modèle utilisateur Schéma externe Processeur de filtrage Schéma fédérateur Schéma fédérateur Schéma fédérateur Processeur de construction Processeur de construction Processeur de construction Schéma d’exportation Schéma d’exportation Schéma d’exportation Processeur de filtrage Processeur de filtrage Processeur de filtrage Schéma de composant Schéma de composant Schéma de composant Processeur de transformation Processeur de transformation Processeur de transformation Schéma local ... Schéma local ... Schéma local Modèle local BD ou Composant BD ou Composant BD ou Composant Fig. 2.4 – Fédération de bases de données de requêtes proche de SQL, ainsi que la possibilité de stocker les résultats d’opérations bioinformatiques, telles que des comparaisons BLAST. 2.6 L’approche multi-agents Cette approche a été utilisée dans le cadre des projets ISYS et IGD-GIS. Le projet ISYS (Integrated SYStem) [STF+ 01] offre une architecture “plug and play” orientée agents, grâce à laquelle les biologistes peuvent manipuler les données et les outils de leur choix. Ces outils peuvent avoir été développés et être maintenus indépendamment les uns des autres. Les composants échangent des informations sans avoir connaissance les uns des autres, mais en s’adressant uniquement à des médiateurs en charge de diffuser leurs messages. La manipulation des composants enregistrés auprès du système se fait à la discrétion de l’utilisateur ; ISYS se contente uniquement de suggérer les composants offrant les traitements les plus adaptés aux données sélectionnées. Dans IGD-GIS (Integrated Genomic Database - Genome Information System) [BLR97], l’architecture proposée fait appel à un réseau d’agents communiquant entre eux via Corba [GGM99] et KQML [FFMM94]. Tous ont une fonction bien précise, tel que l’agent EIA 41 (External Interface Agent) qui gère l’interface utilisateur, ou l’agent SCA (Selector Composer Agent) qui s’occupe de décomposer la requête globale en sous-requêtes destinées aux sources de données locales. C’est une approche très modulaire et facilement extensible. 2.7 La médiation de données Sources Médiateurs Clients La médiation de données a été présentée pour la première fois par Wiederhold [Wie92] qui en a donné la définition suivante : “un médiateur est une brique logicielle qui exploite des connaissances sur des ensembles de données afin de créer de l’information pour les applications des couches supérieures”.31 Un médiateur présente à l’utilisateur un schéma global et un langage de requêtes qui lui donnent l’illusion de manipuler une seule et unique source de données. Application Interface graphique Navigateur Facilitateur Facilitateur Médiateur interaction coordination intégration Médiateur Adaptateur Adaptateur Adaptateur Source de données Source de données Source de données traduction accès Fig. 2.5 – Architecture de médiation DARPA I3 L’architecture de médiation de référence DARPA I3 représentée sur la Figure 2.5 comprend trois niveaux distincts : ☞ les sources de données : chaque source est couplée à un adaptateur qui assure la communication avec les couches supérieures. L’adaptateur propose une vue homogène de la source à laquelle il est rattaché, et transforme les données afin qu’elles correspondent au modèle de données commun utilisé par le médiateur. Son fonctionnement se résume à trois actions principales : accepter une requête exprimée 31“A mediator is a software module that exploits encoded knowledge about some sets or subsets of data to create information for a higher layer of applications.” 42 dans le langage compris par le médiateur, la traduire dans le langage de la source, puis renvoyer le résultat calculé suivant le modèle de données du médiateur. ☞ les médiateurs : ils œuvrent à l’intégration de l’ensemble des sources de données disponibles en présentant à l’utilisateur une vue globale des sources hétérogènes et distribuées ; c’est le schéma global, ou virtuel, ou encore de médiation. Le médiateur32 est la pièce du système qui doit réécrire la requête globale en requêtes locales destinées aux adaptateurs. ☞ les applications clientes : elles peuvent être de différentes natures, tels que des clients lourds, des applications Web, ou bien un autre médiateur. L’utilisation d’un médiateur pour intégrer les sources de données s’appuie sur une transformation des requêtes lors de l’exécution. Une première phase, dite de réécriture transforme l’expression de la requête globale en termes des sources locales, à partir de règles de correspondance inter-schémas33 . Une fois les requêtes locales obtenues à partir de la requête globale, le médiateur génère un plan d’exécution. Les réponses produites par ce plan sont filtrées pour éliminer les éventuelles incohérences, puis retournées à l’utilisateur. L’étape la plus importante lors de l’utilisation d’un médiateur est la création du schéma global, et l’établissement des correspondances (mapping) avec les schémas locaux. Contrairement à l’entrepôt de données, ici le mapping concerne les relations qui existent entre le schéma global et les sources locales. La spécification de ces correspondances - selon la méthode utilisée - déterminera la difficulté de reformulation des requêtes, ainsi que la facilité d’ajout ou de suppression de sources au sein du système. Deux méthodes sont couramment utilisées afin d’établir le schéma global. Soit les sources locales sont considérées comme des vues34 sur le schéma global (LAV - Local-As-View), soit, à l’inverse, le schéma global est considéré comme une vue sur les sources locales (GAV - Global-As-View). Dans l’approche GAV [GMPQ+ 97, ACPS96], les relations du schéma global sont constituées à partir de celles des sources locales, et dans ce cas, la réécriture de requêtes s’avère très simple, puisqu’il suffit de réaliser un simple chaı̂nage arrière sur les relations des sources. Par contre, l’inconvénient majeur réside dans l’ajout ou la suppression d’une source, puisque cela oblige à revoir le schéma global dans sa totalité. Afin d’éviter ce genre de problème, l’approche LAV [LRO96a, FW97] définit chaque source comme une vue sur le schéma global, ce qui facilite grandement l’ajout ou le retrait d’une source, mais complique la réécriture de requêtes. En fait, ces deux approches ne sont pas 32 Au niveau de la couche de coordination présentée en Figure 2.5 peuvent se trouver également des facilitateurs, modules qui réalisent des rapprochements sémantiques, l’unification ou la réconciliation de contextes, ou des conversions de formats. 33 Ces règles sont des méta-données fournies par l’utilisateur ou bien générées semi-automatiquement à partir de la comparaison des schémas [RB01, RDM04]. 34 Une vue est une relation virtuelle définie par une requête. 43 opposées, mais complémentaires, tout dépend du problème qui doit être résolu. Pour intégrer peu de sources, dont la plupart sont stables, mieux vaut utiliser la méthode GAV. Par contre, dans le cadre d’une intégration à grande échelle, la méthode LAV est préférable, car un changement important au niveau d’une source locale aura peu ou pas d’impact sur le schéma global. Pour dépasser les limites des approches précédentes et combiner les avantages de chacune, des variantes ont été proposées par la communauté. Par exemple l’approche BAV (BothAs-View ) [MP03], qui utilise un ensemble de règles de transformation séquentielles bidirectionnelles entre les schémas, ou l’approche GLAV (Global-Local-As-View ) [FLM99], qui associe à un ensemble de relations présentes dans les sources locales, un ensemble de relations présentes dans le schéma de médiation. Commme nous venons de le voir, quelle que soit l’approche adoptée pour l’établissement des correspondances, la construction et l’évolution du schéma global est parfois ardue. La phase cruciale de réécriture devient dans certains cas compliquée : NP-difficile si l’opérateur de différence peut être utilisé dans la requête globale, ou si l’opérateur d’union peut être utilisé dans la définition des vues [AD98, Hal01]. Enfin, la médiation accédant aux sources locales lors de chaque requête, la charge nécessaire au transfert des données sur le réseau peut être très importante, obligeant rapidement à la mise en place de techniques de mise en cache [AKS98, HN96]. Quelques exemples de médiateurs K2/Kleisli À l’origine, BioKleisli [DOTW97] intégrait des bases de données en proposant un médiateur qui utilisait un langage de requêtes fonctionnel dédié appelé CPL [Won94]. CPL manipule des types de données complexes bien adaptés à la biologie, et possède des librairies de fonctions spécialisées. La nouvelle version de BioKleisli, appelée K2 [DCB+ 01] est une API qui permet d’interroger des sources de données génomiques via le langage de requêtes OQL [CBB+ 00], en utilisant un modèle de données objet. L’utilisateur a la possibilité de définir ses propres types de données en K2MDL, un langage qui combine les syntaxes d’ODL et OQL afin de spécifier les transformations de données en provenance de multiples sources vers une seule cible. Tambis Tambis [SBB+ 00] est un système d’intégration de données en temps réel basé sur l’utilisation d’une ontologie de domaine pour la biologie moléculaire et la bioinformatique. Il propose une architecture de médiation et permet un accès transparent aux bases de données. Etant construit sur une ontologie, il permet un classement automatique des 44 concepts grâce à l’utilisation d’une logique de description nommée GRAIL35 [RBG+ 97]. Son langage de requêtes est simple, car induit par l’ontologie, ce qui permet une uniformité quant à la dénomination et la signification des entités manipulées. Tambis utilise des adaptateurs issus du projet BioKleisli afin d’accéder aux sources locales. DiscoveryLink Ce projet d’IBM résulte de la fusion de Garlic [RS97] et de DataJoiner [GL94] (qui lui-même était basé sur DB2 [Cha98]) et utilise une architecture de médiation et des wrappers afin de proposer une couche intermédiaire d’accès aux données de plusieurs sources biologiques. DiscoveryLink [HSK+ 01] utilise le modèle de données relationnelobjet ; il résout les problèmes d’hétérogénéité syntaxique, mais ne prend pas en compte les différences sémantiques. Les requêtes sont soumises en SQL sur le schéma global, un plan d’exécution est généré puis optimisé ; l’utilisateur n’a pas à se préoccuper des sources locales, dont l’accès est géré par les adaptateurs. DiscoveryLink a désormais changé son nom en Information Integrator [Are03], mais fonctionne toujours selon le même principe. BACIIS Biological And Chemical Information Integration System [BMLL+ 04] est un médiateur utilisant une base de connaissances ; celle-ci contient une ontologie de domaine qui est utilisée comme schéma global. La base de connaissances contient également le mapping des sources locales vers l’ontologie. BACIIS intègre des bases de données traditionnelles mais également des sources de données Web ; les wrappers sont créés et maintenus à jour par un système d’induction semi-automatique [MMD+ 05]. BioHavasu BioHavasu est une version biologique de Havasu [KNNV02]. Suivant l’approche Local-As-View, il intègre les bases de données UniGene, OMIM et Entrez-PubMed, créées par le NCBI. Il s’apparente à un système d’agrégation de données, puisqu’il travaille surtout sur des sources contenant toutes l’information souhaitée, plutôt que des informations complémentaires. Le processus de sélection entre les sources est basé sur celui de BibFinder [NKH03, NFKWié]. 2.8 L’intégration P2P Les systèmes d’intégration actuellement les plus répandus proposent tous un schéma global au travers duquel sont interrogées les sources de données. Ces architectures donnent de bons résultats, mais passent relativement mal à l’échelle. La limitation principale concerne le schéma métier, qui si les données sont très variées peut être difficile à construire, 35 GALEN (Generalised Architecture for Languages, Encyclopedia and Nomenclatures in medicine) Representation and Integration Language. 45 mais aussi le fait que de nombreux utilisateurs souhaitent partager leurs données sans avoir à en référer à un médiateur central. La médiation de données dans des systèmes pair à pair (Peer Data Management Systems ou PDMS) est fondée sur une architecture décentralisée constituée d’un ensemble de pairs, qui présentent chacun tout ou partie des données qu’ils contiennent. Les mappings sont établis entre petits ensembles de pairs. Les systèmes P2P sont une généralisation des systèmes de médiation, puisque certains pairs jouent le rôle de médiateurs vis-à-vis des autres. Dans un système pair à pair, chaque participant est à la fois consommateur (client) et producteur (serveur) de ressources et de services. De manière à fournir aux usagers un accès uniforme aux sources de données, il faut être capable de traiter les requêtes émises sur un tel réseau. Les besoins pour un PDMS sont à l’intersection de ceux des systèmes distribués et des bases de données. Les problématiques introduites par les PDMS par rapport aux SGBD classiques concernent la localisation des données, la médiation dynamique (avec intégration de schémas et réécriture de requêtes), ainsi que la volatilité des sources et l’évolution de la taille du système. Quelques exemples de PDMS biologiques Promethea Ce projet présenté par Claypool et Madria [CM06] classe les pairs constituant le réseau en deux catégories : les permanents et les passagers. Les nœuds permanents doivent se conformer à une ontologie globale, PrOnto. Les nœuds passagers sont par contre tenus de fournir les règles de correspondance entre leurs ontologies locales et l’ontologie globale. N’importe lequel des pairs attachés au système peut être utilisé comme destinataire d’une requête. The SEED Partis du constat que l’analyse comparée des génomes fait appel à des données publiques, privées36 et personnelles, Overbeek, Disz et Stevens ont créé et distribué SEED [ODS04]. Cette suite d’outils est destinée à faciliter le travail collaboratif des chercheurs. Chaque instance de SEED permet aux utilisateurs d’accéder, de mettre à jour et d’étendre la base de données d’annotations, tout en travaillant localement avec leurs propres données, qui ne seront pas obligatoirement partagées avec le reste des pairs. 36 Mais dans de nombreux cas tout de même accessibles sous licence aux chercheurs. 46 2.9 Wrapper les sources, un problème commun à toutes les approches Quelles que soient les approches que nous ayons considérées dans les sections qui précèdent, un problème apparaı̂t quant à l’utilisation d’adaptateurs. Au niveau des couches les plus basses des architectures, matérialisées ou non, les wrappers sont directement au contact des sources et vont, dans l’ordre : 1. traduire les requêtes provenant du système et les rendre compréhensibles par la source 2. traduire les données provenant de la source pour les rendre compatibles avec le système En biologie, nous sommes la plupart du temps confrontés à des sources de données ouvertes sur le Web, qui ne proposent pas de format de communication commun. Or, que ce soit pour remplir un entrepôt de données, ou servir d’interface de communication entre un médiateur et les sources qu’il intègre, les adaptateurs jouent un rôle prépondérant dans l’une et l’autre de ces architectures. Dans le cas d’un entrepôt de données, le fonctionnement du système est articulé autour de la traduction des données, afin de les adapter au format de la base qui va les intégrer. L’adaptateur joue dans ce cas le rôle d’intermédiaire dont la fonction consiste à extraire massivement les données de la source concernée. Ceci n’est pas le cas dans une architecture de médiation, puisque les adaptateurs jouent le rôle de transformateurs des requêtes provenant du système vers les sources de données locales, et en retour fournissent au médiateur les données dans un format précis, tel que le HTML, le CSV ou le XML. De façon pragmatique, la première solution envisageable consiste à écrire manuellement des adaptateurs pour chaque source attachée au système. Cette phase de développement, possible pour un nombre restreint de sources, devient rapidement irréalisable lorsque le nombre de sources de données augmente fortement. Le développement d’adaptateurs dédiés à chaque source nécessite au préalable d’en faire une étude approfondie : les deux objectifs d’une telle étude étant tout à la fois de comprendre le fonctionnement des moyens d’interrogation disponibles sur la source, mais également le format dans lequel les données seront renvoyées au système, puisqu’il faudra définir les règles de traduction de ce format vers celui utilisé dans le schéma global. La génération entièrement manuelle d’adaptateurs n’est pas une solution à privilégier dans le cadre de l’intégration, mais actuellement, l’écriture de wrappers ad hoc reste pourtant la solution la plus généralement mise en œuvre. 47 De nombreux travaux sur la mise au point automatique d’adaptateurs ont pourtant vu le jour depuis plusieurs années37 ; une présentation globale de ces solutions peut être trouvée dans un article de Kuhlins et Tredwell [KT03], et dans un tutoriel donné par Sarawagi [Sar02]. L’Annexe C présente un tableau récapitulatif des différents projets existants. Le but de ces méthodes est dans la majorité des cas de reconstruire à partir des données accédées tout ou partie de la structure contenue dans la base de données sous-jacente, afin d’en extraire plus facilement les données ; cette approche est suivie par exemple par le projet RoadRunner [CMM01]. Les techniques utilisées se basent principalement : ☞ sur l’apprentissage automatique à partir d’un ensemble de documents exemples ou d’annotations fournies par l’utilisateur [MMK01, KWD97] ☞ sur l’identification de motifs répétitifs [BLP01a, EJN99] ☞ sur la création d’adaptateurs semi-automatisée, par l’utilisation d’expressions régulières [CL01] Ces approches ne conviennent toutefois pas pour un grand nombre de bases biologiques. C’est le cas notamment si elles font appel à des techniques d’apprentissage et que les ensembles exemples ne sont pas disponibles, ou impossibles à constituer car les sources n’ont pas assez de points communs pour en extraire une généralisation. Certaines sources fournissent les données avec une absence complète de structure ; or la plupart des méthodes nécéssitent une structure pré-existante et exploitent dans leur grande majorité la hiérarchie des balises HTML ou XML. D’autres approches semi-automatiques destinées aux sources du Web, telles que l’outil d’extraction de données interactive Lixto [GKB+04] semblent les plus prometteuses car plus faciles à mettre en œuvre : un adaptateur est généré à partir des sélections opérées visuellement par l’utilisateur sur la source de son choix. Il est ensuite possible de le réutiliser dans d’autres pages à la structure similaire, ce qui suppose malgré tout une certaine stabilité quant au formatage des résultats renvoyés par la source. De façon synthétique, nous pouvons noter que l’extraction de données à partir des sources reste en règle générale problématique, même dans le cadre de travaux d’intégration de données du Web très récents [EBG+ 07]. 2.10 Synthèse et discussion Nous avons discuté dans cet état de l’art des principales architectures issues de la recherche ou du monde industriel, et qui sont soit de réels systèmes d’intégration, matérialisée ou non (par la création d’entrepôts ou d’architectures de médiation), soit des 37 Ces travaux ne concernent pas spécifiquement le domaine biologique, mais sont génériques, et peuvent donc s’y adapter. 48 accès aux bases de données via des portails sur le Web. L’intégration réalisée par ces projets est soit horizontale, soit verticale, selon que les données considérées se complètent ou se chevauchent. Leur spécialisation respective les rend complémentaires, et aucun ne peut prétendre s’imposer comme la solution universelle au problème d’intégration de données biologiques. L’utilisateur doit donc faire son choix en fonction de la complexité du problème qu’il a à traiter. Malgré les spécificités de chacune des approches disponibles, il est possible d’extraire un certain nombre de caractéristiques communes que doivent présenter les outils d’intégration de données sur le Web. Nos réflexions ont été alimentées par les retours d’expérience et les conclusions que nous avons tirées de travaux précédents, qui traitaient respectivement : ☞ de la construction d’un médiateur de données géographiques en XML [BCE04] ☞ de l’alimentation d’un entrepôt biologique basé sur le modèle relationnel [Rog04] Dans le premier cas, le modèle de données standardisé GML (Geography Markup Language) proposé par le consortium OpenGIS [Ope03], et très largement adopté par les acteurs du domaine, a permis de simplifier les échanges en uniformisant le dialecte de communication. Sur cette syntaxe XML a été développé un protocole de services Web géographiques nommé WFS (Web Feature Service), qui facilite l’intégration syntaxique des données. Nous avons donc mis en œuvre les langages GML et WFS pour construire une architecture de médiation. Le modèle de données semi-structuré s’est avéré suffisament riche et flexible, tant pour l’expression du schéma global que pour l’échange de données. Les requêtes écrites dans le langage GQuery [BC04a] basé sur XQuery [KCD+ 03] permettent d’exprimer de façon simple des questions très complexes. Cependant, cette approche présente plusieurs inconvénients. En cause tout d’abord l’expressivité limitée du langage WFS, qui oblige à rapatrier une quantité importante de données au niveau du médiateur, pour leur appliquer opérateurs et traitements. Ensuite la difficulté de construction et de maintenance du schéma global sur lequel s’appuie le médiateur ; l’ajout ou le retrait d’une source oblige soit à le revoir entièrement (dans le cas de l’approche GAV), soit à ajouter un certain nombre de règles de correspondance (dans le cas de l’approche LAV), qui risquent de compliquer d’autant la phase de réécriture de requêtes. Dans le second cas, nous avons été confrontés à des sources de données biologiques dont les modélisations sont très différentes, et pour lesquelles aucun standard d’échange n’a été adopté. Les accès aux données par un navigateur Web ou une API dédiée et les langages de requêtes (s’il en existe sur la source considérée) sont très différents et compliquent la tâche d’intégration syntaxique. Le modèle relationnel n’est pas suffisamment flexible pour s’adapter facilement aux changements de structure éventuels. Le langage SQL, très performant pour les requêtes sur des données alpha-numériques, manque d’opérateurs dédiés au domaine biologique, et il est difficile de lui en adjoindre. 49 Ces éléments de réflexion, accompagnés de contraintes spécifiques à la biologie, comme la flexibilité dans le choix des sources, la traçabilité de la provenance des données, ou la prise en compte de leur qualité, plaident pour une mise en œuvre flexible de l’intégration de données, en laissant une grande marge de manœuvre à l’utilisateur. Les systèmes d’intégration ne prennent pas ou peu en compte le problème crucial de l’ajout et du retrait des sources participantes. Dans la majorité des cas, l’ensemble de sources utilisé est fixe. Les choix sont donc limités au niveau de la sélection de sources lors de l’écriture d’une requête adressée au système. Or, la présence ou l’absence d’une source est un problème important qu’il faut prendre en compte, sans pour autant avoir à reconstruire complètement le système. Un modèle répandu comme le modèle objet-relationnel autorise l’utilisation d’une grande diversité de types de données et de requêtes. Il a été utilisé avec succès dans des domaines tels que la géographie. Le domaine biologique manipule des structures de données très variées. Cette variété va du simple entier identifiant une séquence jusqu’au graphe modélisant les influences mutuelles d’un groupe de gènes au sein d’une cellule. Il est facile de stocker des graphes dans un SGBDRO, mais difficile d’exprimer des requêtes qui testeraient l’isomorphisme 38 de deux graphes. Le modèle de données relationnel utilisé par Rogier [Rog04] permet d’interroger le système par des requêtes complexes écrites en SQL, mais il est difficile d’y intégrer des outils de calcul de similarités de séquences par exemple. Le choix du modèle de données utilisé par le système d’intégration conditionne la richesse d’expression des requêtes et les possibilités de faire évoluer les capacités du système par extension de ce modèle. Le contenu d’une source de données est un paramètre à utiliser, en plus de la connaissance de son schéma ; si le schéma de la source existe mais qu’elle ne contient aucune donnée pertinente pour la requête à traiter, il n’est pas intéressant de la faire participer au processus d’intégration. L’utilisation de méta-données associées aux sources est un impératif dans la phase de traitement des requêtes. Les fonctionnalités offertes par l’outil d’intégration doivent s’accompagner également d’un certain nombre de contraintes à respecter, qui sont caractéristiques du domaine biologique. La possibilité de sélectionner les sources est une caractéristique souhaitée, de même que la traçabilité du résultat, qui doit également être conservée. Les références partagées entre les sources doivent être utilisées dans la phase d’intégration afin d’identifier leurs éléments communs plus facilement, et ainsi mettre en évidence les éventuelles incohérences 38 L’isomorphisme est une bijection qui permet de passer des arêtes de l’un à celles de l’autre ; typiquement cette opération est utilisée lors de la recherche de motifs dans les réseaux de régulation génétique, qui modélisent les interactions entre gènes d’un organisme. 50 entre données d’origines diverses. La recherche de l’efficacité est un objectif majeur à atteindre, puisque les volumes de données à traiter sont très importants. Les requêtes adressées aux sources de données doivent utiliser leurs caractéristiques, telles que la capacité à traiter des requêtes évoluées, ou leur puissance de calcul. Concernant la qualité des données, la biologie a ceci de particulier que des résultats peuvent s’avérer intéressants, même si preuve est faite de leur incomplétude. Cet état de fait plaide pour l’utilisation d’un modèle de données semi-structuré, qui permet une plus grande flexibilité. 2.11 Conclusion Nous avons rédigé dans cette première partie un état de l’art des problèmes actuels, et présenté une liste exhaustive des solutions proposées jusqu’à présent pour l’intégration de données, en particulier biologiques. L’objectif de l’intégration est de combler le fossé qui existe entre créateurs et utilisateurs de données, mais vouloir intégrer l’ensemble des bases de données actuellement disponibles et en partie listées par Galperin annuellement [Gal08] ne serait ni raisonnable, ni crédible. Les sections précédentes ont mis en évidence qu’il est important de proposer des solutions d’intégration suffisamment génériques et flexibles, capable de faciliter l’ajout et le retrait des sources et des ressources attachées au système. Il ressort de nos différents constats une demande de plus en plus pressante de la part des biologistes pour le développement de méthodes et d’outils capables d’automatiser ce qui est réalisé manuellement aujourd’hui, mais aussi capables de joindre de façon simple les informations extraites de plusieurs sources. Nous traitons ce problème dans la première partie de cette thèse, en proposant un formalisme de description des sources associé à une méthode de calcul des jointures entre les données qu’elles partagent. Le problème d’hétérogénéité syntaxique entre les sources est le plus simple à résoudre, alors que l’hétérogénéité sémantique demeure difficile à identifier et à traiter. C’est à cette problématique que nous nous attaquons dans la deuxième partie de cette thèse, en proposant une architecture d’intégration des sources basée sur XQuery, où l’utilisateur définit lui-même l’association entre les sources et le système, le tout accompagné d’un algorithme de réécriture de requêtes prenant en compte l’hétérogénéité sémantique. 51 52 Deuxième partie Automatisation de recoupements manuels de données 53 Dans la deuxième partie de cette thèse, nous nous intéressons à l’utilisation des références croisées entre des sources qui limitent les interrogations possibles sur leur contenu. Nous présentons un formalisme de description des capacités des sources de données du Web, qui est ensuite associé à une méthode de résolution basée sur la logique des attributs destinée à calculer l’ensemble des jointures qui peuvent être établies entre les sources qui partagent certains de leurs paramètres. Nous mettons ces méthodes en œuvre afin d’automatiser la collecte de données dans le cadre de la recherche de gènes impliqués dans des maladies multi-factorielles et la vérification croisée de données contenues dans des puces à ADN. 55 56 Chapitre 3 Partage de références entre sources biologiques Dans ce chapitre, nous présentons la première problématique d’intégration de données que nous avons abordée, tirée d’un besoin concret soumis par des biologistes. Notre approche vise à l’intégration maximale des données présentes, à partir d’un petit nombre de paramètres d’entrée fournis et d’une liste de sources visées. Les sources biologiques présentent des capacités d’interrogation limitées, tout en partageant de nombreuses références les unes avec les autres. Nous montrons comment l’utilisation de ces liens syntaxiques peut mettre en relation des données distribuées, et permet de contourner dans certains cas le problème posé par les restrictions d’accès. Nous exposons comment, faute de pouvoir trouver une référence commune entre deux sources, l’utilisation de sources intermédiaires est nécessaire et suffisante afin d’y récupérer des références supplémentaires, et ainsi poursuivre la phase d’intégration. Sommaire 3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 3.2 Objectifs et exemple illustratif . . . . . . . . . . . . . . . . 58 3.3 Formulaires Web et interrogations limitées . . . . . . . . . 60 3.4 Exploitation des références croisées . . . . . . . . . . . . . 62 57 3.1 Introduction Nous avons été amenés à nous intéresser à la conception d’un outil d’intégration de données, capable de confronter rapidement des informations extraites de sources du Web, en réponse à un problème posé par des biologistes à propos de la malaria. Cette maladie parasitaire demeure l’une des plus dangereuses, responsable de la mort de 2 millions de personnes par an, et de l’infection de 300 à 500 millions d’autres. Il s’agit d’un problème de santé majeur, non seulement parce qu’un tiers des humains vit dans des zones impaludées, mais aussi parce que le réchauffement climatique actuel déplace les maladies tropicales sous d’autres latitudes. 3.2 Objectifs et exemple illustratif La malaria dépend de plusieurs facteurs, tels que des structures de santé inadaptées, des conditions socio-économiques difficiles, l’environnement, et les caractéristiques génétiques de l’hôte et du parasite : il s’agit très clairement d’une maladie multi-factorielle. Par analyse de liens génétiques au Burkina Faso, deux groupes de gènes probablement impliqués ont été découverts sur deux zones chromosomiques. La première est en 5q31-q33 sur le chromosome 5 [FKA+ 03, RTA+ 98], et la seconde en 6p21-p23 sur le chromosome 6 [RAT+ 98]. Ces régions contiennent respectivement 400 et 700 gènes, déjà connus ou non. Les zones d’intérêt sur les chromosomes ont donc été clairement circonscrites, mais il existe trop de sources de données pour prédire manuellement quel gène est plus qu’un autre susceptible d’être impliqué dans l’évolution de cette parasitose. Nous avions abordé un exemple typique mettant en œuvre cette succession de manipulations dans des travaux menés précédemment [Rog04, Dai04], et avions mis en pratique une première fois nos réflexions à l’aide du médiateur de données Médience [Méd03], qui utilise le modèle relationnel. Puis nous avions fait évoluer notre outil afin de privilégier la médiation de données semi-structurées avec XML [CSB06]. Vu la complexité de ce problème et l’évolutivité des sources, il existe donc toujours une demande forte afin d’établir des listes de gènes prioritaires en leur attribuant un score et guider les études des généticiens. La maladie étant multi-factorielle, les sources à intégrer peuvent être très nombreuses, mais dans le cadre de notre scénario, nous nous sommes limités aux sources de données biologiques proposées par nos collaborateurs. Il serait très facile d’étendre la liste à d’autres sources de données, par exemple traitant des habitudes alimentaires, et qui pourraient mettre en évidence un facteur de résistance jusque-là passé inaperçu. La découverte de gènes impliqués dans une maladie multi-factorielle est l’un des pro58 blèmes typiques que l’intégration de données peut aider à résoudre. Cette question biologique a été le point de départ de notre réflexion. Chromosome 5 Phase 1 Collecte de données Liste complete Phase 2 Calcule des scores Liste prioritaire Phase 3 Vérifications expérimentales 5q31−q33 Fig. 3.1 – Phases de l’étude d’une zone d’intérêt sur le chromosome 5 L’approche de collecte39 que nous présentons ici répond à une problématique simple : confronter rapidement des données, pour ensuite leur appliquer des méthodes de prédiction et d’extraction d’information. L’outil de regroupement a donc pour but d’être utilisé afin d’alimenter en données un logiciel ou un entrepôt, qui leur appliqueront des opérateurs d’analyse de données définis par l’utilisateur. Ces différentes étapes sont présentées en Figure 3.1, nos travaux s’intéressant particulièrement à la première phase. Les difficultés sont grandes et les contraintes à prendre en compte nombreuses : les sources et ressources biologiques du Web sont multiples, réparties, redondantes, évolutives, contradictoires et de fiabilité parfois difficile à estimer. Les données renvoyées par le système doivent ensuite être traitées afin d’éliminer les éventuelles incohérences qui peuvent exister. Nous n’aborderons pas complètement ce problème dans les sections suivantes, puisque les phases de curation et de prédiction se rattachent à d’autres thématiques de recherche, et non uniquement à l’intégration de données. Le formalisme de description que nous avons défini, associé à la méthode d’appariement des sources que nous proposons va permettre à l’utilisateur, à partir d’un ensemble d’attributs fournis, et des sources de son choix, d’obtenir un nombre d’éléments maximal en relation avec ses paramètres d’entrée. Notre objectif est donc d’automatiser la join39 Nous utiliserons indifféremment les termes collecte et intégration dans les sections suivantes. 59 ture de proche en proche. Dans le cas où le résultat provenant d’une source ne peut pas servir à interroger la source suivante, notre système ajoutera une (ou plusieurs) source(s) intermédiaire(s) afin de compléter le parcours, et ainsi mener la phase d’intégration à son terme. Notre démarche a donc été de proposer une solution qui prenne en compte les capacités d’interrogation limitées des sources, mais qui tire également parti du partage de références afin de rassembler un maximum de données. Nous détaillons successivement ces deux aspects dans les sections qui suivent. 3.3 Formulaires Web et interrogations limitées Extraire des données à partir de sources ouvertes sur le Web se fait habituellement au travers d’un interfaçage qui permet à l’utilisateur d’accéder aux SGBD sous-jacents, et d’en obtenir un ensemble de tuples d’intérêt. Dans la littérature, la limitation de capacité des sources est une problématique qui a été abordée suivant deux interprétations. La première fait référence au fait que de nombreuses sources nécessitent que certains paramètres leur soient impérativement fournis [YLGMU99]. La seconde considère les capacités comme l’ensemble des requêtes que la source peut exécuter conformément à un langage de requêtes [VP02]. Dans nos travaux, nous ne considérons que la première signification, puisque les capacités ainsi que l’expressivité des requêtes sont étroitement liées aux formulaires dédiés à l’interrogation. Jusqu’à présent, exceptées les sources d’importance majeure telles que SwissProt [OMG+ 02], EMBL [EMB07], ou GenBank [BBLO97], la majorité des sources biologiques librement accessibles sur le Web, listées par Galperin [Gal07] chaque année ne proposent que des interfaces d’accès rudimentaires, et de fait leurs capacités d’interrogation se trouvent limitées. Cette situation est causée par les politiques de partage des données mises en œuvre par les instituts de recherche, dont des exemples peuvent être trouvés dans les rapports de Genome Canada [Can05] ou du Wellcome Trust [Tru03]. L’utilisateur est en droit de se demander pourquoi les sources présentent de telles restrictions ; les raisons sont multiples et peuvent être justifiées : ☞ simplement par le choix de fournir une interface d’accès simplifiée même si des requêtes complexes peuvent être traitées par le système ☞ par la volonté de masquer certains attributs ☞ parce que l’administrateur souhaite que soient interrogées uniquement les données sur lesquelles ont été mis en place des mécanismes d’optimisation d’accès, tels que des index ☞ par le manque de moyens qui peuvent être mis en œuvre afin de proposer et main60 tenir une méthode d’accès plus évoluée, situation très fréquente dans les petits laboratoires Cette somme de motivations a été résumée en une phrase par Jamison [Jam03] : “publier des données sur internet au travers d’une interface d’accès limitée est de loin le compromis habituel entre la protection de la propriété intellectuelle et l’accès libre”.40 Plusieurs projets d’intégration de données du Web ont pris en compte les limitations d’accès. Dans Information Manifold [LRO96b], les limitations d’accès aux sources sont enregistrées dans des empreintes de capacité 41 ; les auteurs justifient leur utilisation par le fait que les “sources d’information ne permettent en général qu’un sous ensemble de requêtes sur leurs relations”, il faut donc s’assurer que les “plans de requête générés puissent être exécutés” effectivement. Les vues de recherche 42 présentées par Zoé Lacroix [Lac02] représentent les “capacités des sources grâce à leurs attributs”, qui forment “un ensemble de points d’entrée dans un script CGI, [...] une requête doit donc correspondre à l’un de ces points d’entrée”. Quant au médiateur TSIMMIS [YLGMU99, LC00, LC01], développé à l’université de Stanford, il utilise les capacités d’interrogation des sources afin de prendre en compte le fait que les requêtes supportées par le système sont directement affectées par leurs limitations. Les sources de données du Web présentent des capacités d’interrogation limitées, ce qui peut rendre le traitement des requêtes, même les plus simples, compliqué à mettre en œuvre. Elles ne proposent comme informations sur leurs points d’entrée que la consultation d’un formulaire Web dans lequel l’utilisateur insère un ou plusieurs paramètres. Les limitations des capacités d’interrogation empêchent le plus souvent d’obtenir massivement les données : il est nécessaire de fournir impérativement des valeurs pour certains paramètres afin de pouvoir obtenir les enregistrements voulus. Dans le cas où les sources de données ne peuvent pas directement répondre aux requêtes de l’utilisateur à cause de ces restrictions, l’interrogation de sources intermédiaires peut donc s’avérer nécessaire. Illustration par l’exemple : si nous considérons deux sources bibliographiques, MedLine qui donne accès aux résumés des articles et DBLP qui liste les conférences. Supposons qu’elles proposent respectivement des recherches par [titre ou auteur] et [conférence ou auteur ou date]. Une recherche directe sur MedLine des résumés de la conférence DILS’05 impose de connaı̂tre au moins l’un des deux critères. Il est donc plus simple d’interroger d’abord la source DBLP sur le seul critère conférence, puis de reporter la liste des auteurs obtenus dans le formulaire du site MedLine. Des sources qui ne sont 40“WWW interfaces are by far the most common means of compromising between the need for IP protection and making an algorithm freely available”. 41 Capability records. 42 Search views. 61 pas mentionnées dans la requête peuvent donc contribuer au résultat ; inversement, des sources qui sont demandées peuvent ne rien apporter au résultat. Nous exploitons donc une des caractéristiques particulières des sources biologiques sur le Web, le partage de références communes, afin de pouvoir intégrer complètement les données souhaitées en contournant les restrictions d’accès. 3.4 Exploitation des références croisées En biologie, joindre les résultats des travaux de plusieurs laboratoires se fait aujourd’hui encore la plupart du temps par extractions successives à partir des interfaces simplistes présentées en Section 3.3. 43 . L’association entre les éléments de chacun des ensembles obtenus se fait ensuite de façon manuelle. Considérons par exemple une question biologique simple à propos de la nomenclature de localisation⋆ des chromosomes : “Quelles sont les publications concernant la région q31 du chromosome 5 ? ” Plusieurs réponses sont possibles en fonction du choix, fait par le biologiste, des sources à interroger. Une réponse typique à cette question met en œuvre deux sources : UCSC [KBD+ 03] (contenant la cartographie du génome humain) et Pubmed [Nat06] (base de données bibliographiques). La première étape consiste à extraire les listes de gènes depuis UCSC, et à reporter ensuite les références obtenues dans le formulaire de PubMed. Le croisement manuel des résultats nous apporte donc l’ensemble des résultats accessibles sur ces sources, en fonction des paramètres qui ont été fournis. Le travail demandé pour ce faible nombre de sources est déjà fastidieux, et prend des proportions qui deviennent difficiles à gérer à partir de cinq ou dix sources, surtout lorsque l’utilisateur doit composer avec les limitations d’accès aux données que nous avons déjà évoquées. Des simplifications existent, puisque des liens hypertextes permettent souvent de basculer d’une source à l’autre selon la valeur d’un paramètre ; c’est notamment le cas dans les bases de données les plus connues telles que GenBank, ou SwissProt, que nous avons citées précédemment. Quels que soient les objectifs de l’approche suivie, collecter sur internet des données de proche en proche est possible et se trouve facilité dans le domaine biologique grâce à un partage très important de références qui existe entre les sources. Même s’il est vrai que les habitudes ou les enjeux financiers font que parfois “les scientifiques préfèreraient échanger leurs sous-vêtements que leurs nomenclatures”44, la plupart des sources font référence à des identifiants communs sur lesquels il est possible de s’appuyer afin de rassembler les 43 Le plus souvent, il s’agit d’un formulaire dans le langage HTML, associé à un langage de script hébergé sur le serveur. 44 Cette expression est attribuée à Keith Yamamoto, professeur de biochimie à l’Université de San Francisco. 62 données. Les liens que nous considérons sont purement syntaxiques, basés sur la présence d’un nom d’attribut commun entre deux sources, comme le montre l’exemple de la Figure 3.2. En cela, nous suivons la définition associée par Ullman [Ull90] aux relations universelles : “différents attributs partageant le même nom dans différentes relations ont la même signification”. Nous ne prendrons pas en compte ces liens afin d’établir une relation sémantique entre des entités biologiques hébergées sur des sites distants, l’interprétation des données intégrées et la résolution des incohérences éventuelles restant à la charge de l’utilisateur. Source2 Source1 id2 référence auteur id3 id4 id1 date gène id2 Source3 Source4 id3 description date id1 id2 id4 publication année id5 Fig. 3.2 – Exemple de partage de références entre des sources Regardons en détail les brèves descriptions des quatre sources présentées dans l’exemple de la Figure 3.2 ; nous voyons que chacune possède un identifiant unique pour les données qu’elle contient (indiqué en gras), mais aussi des références aux identifiants des autres sources (indiquées en italique). Sur notre exemple illustratif, plusieurs chemins peuvent être empruntés pour obtenir les mêmes données. Supposons par exemple que l’utilisateur souhaite intégrer la description, la référence et l’identifiant d’un gène à partir de l’attribut date de découverte qu’il connaı̂t, en utilisant les sources Source1, Source2 et Source3 ; deux possibilités se présentent à lui : ☞ soit en interrogeant Source1, puis Source2 grâce à id2, et enfin Source3 grâce à id3 ☞ soit en interrogeant d’abord Source3, pour ensuite réutiliser les identifiants qu’elle possède afin d’interroger Source1 et Source2 La Tableau 3.1 synthétise les deux scénarios possibles. La collecte s’arrête dès qu’une 63 boucle apparaı̂t dans le parcours des sources. Collecte de données entre S1, S2 et S3 à partir d’une date Scénario 1 Requ^ ete avec une date sur S1 Scénario 2 Requ^ ete avec une date sur S3 ➩ ➩ Requ^ ete sur S2 à partir de id2 tiré de S1 Requ^ ete sur S1 et S2 à partir de id1 et id2 tirés de S3 ➩ Requ^ ete sur S3 Tab. 3.1 – Deux déroulements possibles Il faut noter que contrairement aux clefs étrangères des bases de données relationnelles, rien ne garantit entre sources du Web que la valeur de l’identifiant référençant correspond bien à une valeur présente dans la source référencée45 . Aucun mécanisme d’intégrité référentielle n’est mis en œuvre entre sources distribuées ; ceci peut être la cause d’incohérences dans le résultat intégré. Cet exemple simple nous a permis de mettre en évidence qu’il existe plusieurs chemins possibles pour obtenir les attributs demandés. Dans le cas d’un scénario réel, une difficulté supplémentaire apparaı̂t à cause de la présence de façon certaine ou non d’un identifiant entre deux sources, et par le fait que cet identifiant partagé le soit sous la forme d’un hyperlien ou non. Cette incertitude influe directement sur la cardinalité du résultat obtenu. En fonction des sources utilisées pour la collecte, et par conséquent le chemin parcouru pour intégrer les données, l’ensemble résultat sera donc différent. Dans le cadre de notre approche, nous avons choisi de prendre en compte la totalité des chemins qui existent entre les sources. Dans un certain nombre de cas, il est impossible de satisfaire la requête de l’utilisateur simplement à partir des sources qu’il a choisies. Cette situation est provoquée par les limitations d’accès que nous avons présentées en Section 3.3. Sur notre exemple précédent, ce cas de figure apparaı̂t si l’on souhaite extraire les publications de la source Source4 associées à des gènes extraits de la source Source1. Il est impossible de joindre les données de ces deux sources sans passer par une source intermédiaire. La source Source2 doit donc être utilisée alors qu’elle ne fait pas partie du choix de l’utilisateur, et qu’elle n’apporte aucune information supplémentaire. 45 Un nom de gène par exemple peut avoir plusieurs dizaines de synonymes. 64 La Figure 3.3 montre la complexité des liens entretenus par des sources de données dans un cadre réel ; cet exemple illustratif ne considère que quelques-unes des sources les plus connues. Le nombre de liens n’est bien sûr pas aussi important en fonction de la popularité de celles choisies par l’utilisateur ; nous donnerons les définitions des différents types de liens que nous avons considérés en Section 4.1. OMIM PubMed UCSC SNPper LocusLink SwissProt dbSNP HGVbase direct permanent indirect permanent direct potentiel indirect potentiel Fig. 3.3 – Liens présents entre plusieurs sources L’exploitation des références partagées entre les sources biologiques afin d’intégrer les données a déjà été le centre d’intérêt de plusieurs projets. Dans GenMapper [DR04], Do et Rahm proposent une architecture basée sur un entrepôt qui enregistre en plus des données intégrées leurs références croisées, qui sont utilisées ultérieurement pour associer la sémantique des différentes sources. Basés sur XML, les projets XMap [DSS02] et XProm [DS04] ont pour objectif de formaliser le processus de collecte de données en une succession d’étapes constituées par l’interrogation de ressources distantes ou locales. L’utilisateur a la liberté de choisir les sources dont il a besoin ou bien celles qu’il préfère lors de la définition du scénario de collecte ; ces spécifications sont ensuite utilisées afin d’exécuter l’étape d’extraction de données, puis l’utilisation des données extraites pour interroger la source suivante du scénario ainsi programmé. De proche en proche, cette démarche produit le résultat intégré attendu. XMap fonctionne en deux versions ; l’une interactive, nécessite l’intervention de l’utilisateur pour spécifier le choix de la source, et réaliser l’extraction de 65 données, alors que la version automatique ne considère que la meilleure source (selon les préférences fournies par l’utilisateur) et extrait automatiquement les données des pages Web rencontrées. Proposé par Mork et Halevy [MSHTH02], le langage PQL (“pickle”) est utilisé pour exprimer le plus simplement possible les types de chemins à suivre entre les sources, sans les énumérer tous explicitement. Ces expressions de chemins sont utilisées dans le projet d’intégration GeneSeek [MHTH01] afin de générer les plans d’exécution de requêtes. Enfin, les travaux présentés par Lacroix [LMNR04, LPV+ 05] utilisent les URLs⋆ et les clef étrangères afin d’établir des relations logiques entre des objets scientifiques hébergés dans des sources distribuées et hétérogènes. Le graphe formé par ces références partagées est mis à profit afin d’estimer le coût d’exécution obtenu en fonction du parcours effectué entre les sources. Les cardinalités des liaisons entretenues par les sources sont utilisées afin d’estimer la taille des résultats intermédiaires et finaux, et ainsi orienter en amont l’écriture de requêtes. Dans un domaine applicatif non plus biologique mais générique, les pages liées par des références partagées sont regroupées sous forme de data webs dans l’article de Friedman et Levy [FLM99] qui présente l’approche de médiation GLAV ; obtenir les données nécessite donc de naviguer entre les pages considérées en suivant un chemin précis. Le projet Sight [AMJR04] encapsule quant à lui les sites Web à l’intérieur d’agents logiciels, et crée des workflows d’intégration de données en connectant la réponse provenant d’un agent aux champs de requête d’un autre, de proche en proche. Les propositions précédentes ont toutes exploité les références croisées entre sources de données. Il s’agit à l’heure actuelle du moyen le plus simple et efficace, au vu des contraintes rencontrées46 afin de mettre en relation des données biologiques distantes sur le Web. Les attentes des biologistes étant de rassembler ces données et de leur appliquer des méthodes de prédiction dont le but final est de détecter de nouvelles corrélations, de mettre en évidence des relations biologiques encore inconnues, et d’ouvrir de nouvelles pistes de recherche. Le manque de documentation sur les sources accédées ainsi que leur multiplicité constituent souvent un handicap pour trouver où adresser les requêtes. Cette situation particulière peut devenir avantageuse quand il s’agit de complèter ou vérifier une information, tout en prenant en compte le fait que des données contradictoires peuvent exister dans des sources concurrentes. Néanmoins, les différentes approches que nous avons évoquées ne prennent pas en 46 Des interfaces d’accès très hétérogènes, pas de méthode d’extraction de données générique, et un traitement des requêtes limité. 66 compte plusieurs contraintes. En premier lieu, la possibilité qui existe qu’une source ait plusieurs patterns d’accès différents sur un seul et même formulaire de requête, en fonction de la combinaison opérée par l’utilisateur sur les paramètres obligatoires et facultatifs. D’autre part, l’évaluation de tous les chemins qu’il est possible de suivre, en appliquant deux méthodes : ☞ par le calcul des jointures possibles entre toutes les sources choisies par l’utilisateur ☞ si une jointure n’est pas possible, par l’utilisation le cas échéant de sources intermédiaires qui ne participent pas à la construction de la réponse, mais qui vont permettre de propager la jointure entre deux sources Nous présentons dans le chapitre suivant nos choix quant à la formalisation de ce problème, basée sur la représentation des patterns d’accès aux sources par des termes de la logique des attributs. Puis nous exposons un algorithme de calcul du parcours à effectuer entre les sources. Nous suivons une approche orientée source : à partir d’une requête posée, nous utilisons les caractéristiques des sources afin de générer des plans d’exécution susceptibles de participer à la construction du résultat. Notre démarche s’inscrit dans le cadre de l’intégration de données sans apprentissage d’aucune notion particulière en programmation, ni construction de schéma intégré, ce qui lui confère une plus grande flexibilité. 67 68 Chapitre 4 Intégration par union de jointures Nous avons vu que les sources biologiques du Web présentent deux caractéristiques principales : le partage de références communes, et des capacités d’interrogation limitées. Forts de ces constats, nous proposons dans ce chapitre un formalisme de description des capacités et une méthode de calcul du parcours à effectuer entre les sources. Nous présentons ensuite le prototype développé, destiné à automatiser la collecte de données. Sommaire 4.1 Formalisation des descriptions des sources . . . . . . . . . 4.2 Représentation des patterns d’accès par des termes d’attributs 72 4.3 4.4 4.5 4.6 70 4.2.1 Identification des différents types de patterns . . . . . . . . 72 4.2.2 Description du formalisme et exemple illustratif . . . . . . 73 4.2.3 Expression des requêtes . . . . . . . . . . . . . . . . . . . . 80 Traitement des requêtes d’intégration de données . . . . . 81 4.3.1 Choix des vues initiales . . . . . . . . . . . . . . . . . . . . 82 4.3.2 Algorithme de calcul des chemins de jointure . . . . . . . . 84 4.3.3 Algorithme de traitement des requêtes . . . . . . . . . . . . 86 Prototypage et illustration par l’exemple . . . . . . . . . . 88 4.4.1 Format XML des termes d’attributs . . . . . . . . . . . . . 88 4.4.2 Extraction des données avec Lixto . . . . . . . . . . . . . . 89 4.4.3 Prototype développé, tests et performances . . . . . . . . . 92 Applications sur des données biologiques . . . . . . . . . . 99 4.5.1 Intégration de données et prédiction de gènes candidats . . 99 4.5.2 Construction d’un méta-moteur de recherche de gènes candidats100 4.5.3 Complétion et vérification de données de puces à ADN . . 103 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 69 4.1 Formalisation des descriptions des sources L’un des objectifs principaux de l’intégration est d’offrir un accès simple et transparent aux sources de données. Les sources biologiques auxquelles nous nous intéressons dans cette deuxième partie se situent dans un contexte précis, dont nous avons détaillé les éléments centraux en Sections 3.3 et 3.4 : ☞ les requêtes ne sont exprimées qu’au travers de formulaires Web, et il est souvent impossible d’accéder à une source uniquement à l’aide du critère fourni par l’utilisateur ☞ le partage de références entre les sources permet de contourner les limitations imposées par les interfaces Afin de formaliser le problème posé, nous allons tout d’abord préciser quelques définitions concernant les sources, leurs contenus, et les différents liens virtuels induits par le partage de références. Définition 4.1.1 (Source de données) Une source de données S est une URL accessible sur le Web. Elle exporte vers l’utilisateur un ensemble de vues sur les données qu’elle contient, qui seront notées Vi , i ∈ [1, m]. Une source de données contiendra donc une ou plusieurs vues. Nous avons préféré utiliser le terme vue plutôt que le terme relation afin d’une part de ne pas prêter à confusion avec la dénomination propre aux SGDB relationnels, mais aussi pour insister sur le fait que les données accessibles peuvent être restructurées par rapport à leur format original sous-jacent. Définition 4.1.2 (Vue appartenant à une source) Une vue V dans une source de données S est une entité scientifique définie par un ensemble d’attributs, et notée V (a1 , ..., an). Pour chaque vue V , il existe i ∈ [1, n] tel que ai soit l’identifiant unique de chaque tuple de la vue V . Pour tout j ∈ [1, n], j 6= i, a j peut ne pas avoir de valeur. Nous noterons l’absence de valeur à l’aide du symbole ⊥. Comme nous l’avons détaillé en Section 3.4, la prise en compte du partage des références entre sources est fondamentale pour la problématique de collecte de données que nous avons abordée. Nous définissons un lien entre deux vues comme suit : 70 Définition 4.1.3 (Lien entre vues) Un lien existe entre deux vues V1 et V2 appartenant à la même source S ou à deux sources distinctes S1 et S2 si les deux vues possèdent un attribut en commun. Cette définition seule ne saurait suffire à prendre en compte la variété des liens qui existent entre les sources. Nous complétons donc la définition précédente en précisant plusieurs cas particuliers. Définition 4.1.4 (Lien direct permanent) Soient une vue VA (a1 , a2 , ...an) et une vue VB (b1 , b2 , ..., bm), avec a1 et b1 leurs identifiants uniques. Le lien L entre VA et VB est qualifié de direct permanent si et seulement si, ∃ i ∈ [2; n], j ∈ [1; m], ∀ T un tuple extrait de VA , ai = b j , et un hyperlien permettant de passer directement de la page résultat de la source contenant VA à la page résultat de la source contenant VB . Définition 4.1.5 (Lien indirect permanent) Soient une vue VA (a1 , a2 , ...an) et une vue VB (b1 , b2 , ..., bm), avec a1 et b1 leurs identifiants uniques. Le lien L entre VA et VB est qualifié d’ indirect permanent si et seulement si, ∃ i ∈ [2; n], j ∈ [1; m], ∀ T un tuple extrait de VA , ai = b j . Cet attribut ai pourra être utilisé afin d’interroger la source contenant VB . Les liens permanents garantissent la possibilité de passer d’une source à l’autre en collectant des données de façon certaine. Il est donc possible d’estimer la cardinalité du résultat obtenu. A contrario, la présence de liens potentiels dont nous donnons la définition ci-après introduit une incertitude sur la présence d’une valeur pour l’attribut concerné et va jouer sur la cardinalité du résultat. Le fait que le lien soit direct ou non est pris en compte uniquement lors de la phase d’extraction de données. Définition 4.1.6 (Lien direct potentiel) Soient une vue VA (a1 , a2 , ...an) et une vue VB (b1 , b2 , ..., bm), avec a1 et b1 leurs identifiants uniques. Le lien L entre VA et VB est qualifié de direct potentiel si et seulement si, ∃ i ∈ [2; n], j ∈ [1; m], et ∃ au moins un tuple T extrait de VA tel que ai = b j , et un hyperlien permettant de passer directement de la page résultat de la source contenant VA à la page résultat de la source contenant VB . 71 Définition 4.1.7 (Lien indirect potentiel) Soient une vue VA (a1 , a2 , ...an) et une vue VB (b1 , b2 , ..., bm), avec a1 et b1 leurs identifiants uniques. Le lien L entre VA et VB est qualifié d’ indirect potentiel si et seulement si, ∃ i ∈ [2; n], j ∈ [1; m], et ∃ au moins un tuple T extrait de VA tel que ai = b j . Cet attribut ai pourra être utilisé afin d’interroger la source contenant la vue VB . Les tuples de ces vues ne peuvent pas être extraits sous n’importe quelles conditions, puisqu’existent des limitations d’accès, dont nous avions exposé les raisons de la mise en place en Section 3.3. Ces limitations d’accès aux données peuvent être modélisées à l’aide de patterns d’accès47 . Nous avons choisi de représenter ces patterns en utilisant le formalisme proposé par la logique des attributs. 4.2 Représentation des patterns d’accès par des termes d’attributs Nous devons représenter par des patterns d’accès les limitations imposées par l’utilisation des formulaires destinés à interroger les sources de données. Or, plusieurs types de patterns d’accès peuvent être attachés à une seule et même vue, dans le cas où plusieurs combinaisons peuvent exister entre attributs obligatoires ou facultatifs par exemple ; chaque pattern représente donc une méthode d’interrogation de la vue. D’autre part, il nous faut une méthode de comparaison entre patterns associés à deux vues distinctes, afin de pouvoir déterminer si elles partagent des attributs, et si la valeur d’un attribut extrait de la première source peut être utilisée pour interroger la seconde. Afin de prendre en compte ces contraintes, notre choix s’est porté sur la logique des attributs. Ce formalisme a déjà été mis en œuvre dans des approches d’intégration de données utilisant le contexte telle que celle proposée par Mott [MR99], mais nous l’avions également utilisée dans des travaux précédents, mais uniquement en ce qui concernait la description et la composition de services [SCB06]. 4.2.1 Identification des différents types de patterns Un pattern d’accès sur une vue spécifie les attributs qui doivent être fournis ou non à un formulaire afin d’obtenir les tuples correspondant à cette vue. Nous considérons dans la suite qu’un pattern d’accès modélisera non seulement les champs obligatoires 47 Binding patterns. 72 et facultatifs d’un formulaire Web, mais également les attributs qui seront renvoyés à l’utilisateur dans la réponse. Nous associons à un attribut d’une vue la lettre v s’il doit être impérativement valué, la lettre l s’il est libre (facultatif dans la requête mais pouvant être utilisé afin d’imposer plus de contraintes sur les résultats renvoyés) et la lettre o s’il est potentiellement obtenable, c’est à dire faisant partie ou non du résultat sans qu’il soit évidemment possible de préciser sa valeur lors de la requête. Un pattern d’accès sera donc constitué d’un ensemble de règles de correspondances entre l’ensemble des attributs définissant une vue V et l’ensemble de symboles {v, l, o}. Définition 4.2.1 (Attributs et restrictions d’accès à une vue) Soit une vue V (a1 , a2, ..., an). Nous noterons A (V ) l’ensemble des attributs de cette vue. Pour un pattern d’accès P donné, les ensembles BP (V ), FP (V ) et GP (V ) désigneront respectivement les ensembles des attributs valués, libres et obtenables de cette vue tels que : • BP (V ) ∪ FP (V ) ∪ GP (V ) = A (V ) • BP (V ) ∩ FP (V ) ∩ GP (V ) = ∅ Plusieurs patterns d’accès pourront être associés à une même vue : par exemple, les tuples d’une vue V (a, b, c, d), associée aux patterns d’accès {vvlo} et {llvo} pourront être accédés en fournissant obligatoirement : 1. soit une valeur à l’attribut a, à l’attribut b et facultativement à c 2. soit une valeur à l’attribut c et facultativement aux attributs a et b L’attribut d peut être obtenu dans la réponse, mais ne pourra pas servir de critère discriminant pour la requête envoyée sur la vue. Nous allons maintenant exposer en détails la représentation des patterns d’accès à l’aide de termes d’attributs. 4.2.2 Description du formalisme et exemple illustratif Nous allons présenter brièvement la logique des attributs, dont une description détaillée peut être trouvée dans les articles de Rounds et Carpenter [Rou94, Car92]. La logique des attributs est une logique de description qui inclut la quantification, la disjonction et la négation sur des termes d’attributs, telle que la définit Gert Smolka [Smo92]. Un terme d’attributs48 dénote un ensemble d’objets caractérisés par leurs attributs. Dans leur forme la plus simple, les termes d’attributs consistent en des conjonctions de paires [attribut : valeur ] nommées slots. La valeur d’un attribut peut être un littéral, une variable, ou des termes d’attributs imbriqués. La syntaxe des termes d’attributs est synthétisée dans le 48 Feature term ou FT. 73 Tableau 4.1, où les attributs sont notés par les lettres f, g et h, et les termes d’attributs par les lettres S et T. La logique des attributs capture les bénéfices des logiques de description ainsi que des logiques du premier ordre : quantification, disjonction, intersection, union, négation sur les attributs. Les termes d’attributs forment une algèbre booléenne, la distribution et les lois de Morgan s’y appliquent. Nous choisissons de noter |T | la cardinalité d’un terme d’attributs T ; ceci donnera par exemple |[a1 : v1 , a2 : v2 , a3 : v3 ]| = 3. Notation Nom Interprétation ⊤ ou [] ⊥ ou {} f :⊤ f↑ f↓g f↑g ∽S S⊓T S⊔T S⊒T Top Bottom Existence Indéfini Convergence Divergence Complément Intersection Union Subsomption S =F T Equivalence Univers Ensemble vide, inconsistance L’attribut f est défini L’attribut f n’est pas défini Les attributs f et g sont égaux Les attributs f et g ne sont pas égaux Les termes d’attributs autres que S Attributs communs aux deux termes Union des attributs des deux termes S subsume T (T est une spécialisation de S) Les deux termes d’attributs décrivent le même ensemble d’objets Tab. 4.1 – Syntaxe des termes d’attributs Un terme d’attributs peut être qualifié de : • clos, s’il n’a pas de variables libres • fondamental, s’il est sans variables, convergence, ni divergence • basique, s’il n’a pas de quantificateurs, d’implications, et si les compléments portent uniquement sur les valeurs des attributs • simple, s’il est basique et ne contient pas d’unions • forme normale disjonctive, s’il est de la forme F1 ⊔ ... ⊔ Fn , où les Fi sont des termes d’attributs simples Enfin, deux termes d’attributs seront qualifiés d’orthogonaux s’ils n’ont en commun aucun attribut. Afin de prendre en compte les différentes alternatives d’interrogation qui existent sur un formulaire pour extraire des données, nous représentons l’accès à une vue au travers d’un formulaire par un terme d’attributs en forme normale disjonctive. 74 Définition 4.2.2 (Pattern d’accès à une vue) Un pattern global P d’accès à une vue exportée par une source de données sera noté comme un terme d’attributs en forme normale disjonctive P = {P1 , P2 , ..., Pn}, où chaque Pi est un terme d’attributs décrivant la vue et le caractère obligatoire ou facultatif de ses attributs : ∀i, j ∈ [1, n], i 6= j ⇒ Pi 6= Pj La Figure 4.1 et la Figure 4.2 présentent respectivement un formulaire de requête proposé par la base de données Esther [HRC+ 04], et la représentation d’une interrogation possible de ce formulaire par le formalisme de la logique des attributs. Le pattern d’accès associé est représenté par le terme d’attributs Author={[address :’v’,city :’v’, e_mail :’o’],[address :’o’,city :’o’,e_mail :’v’]}, et la requête décrite en Figure 4.2 demande la liste des adresses email correspondant à une adresse et à une ville. Maintenant que nous avons précisé la syntaxe de description des patterns d’accès aux données, nous pouvons donc aborder l’autre partie de la problématique : comment utiliser ces représentations afin de joindre les données présentes dans plusieurs sources sur le Web ? Puisqu’il nous faut réaliser une jointure de proche en proche, notre objectif est de savoir, en considérant deux sources de données, si le résultat provenant de l’une peut être utilisé afin d’interroger l’autre. Author = { [address:"78 La Canebiere", city:"Marseille", e_mail:⊤ ]} Fig. 4.2 – ...et terme d’attributs associé Fig. 4.1 – Formulaire de requête... Ceci revient à comparer les patterns associés à un même attribut présent dans les deux descriptions des vues considérées. Deux patterns P1 et P2 seront compatibles entre 75 eux uniquement si au minimum tous les attributs marqués v de P2 sont valués par un sous-ensemble des attributs de P1 ; si tous les attributs marqués l de P2 peuvent également prendre leur valeur dans le résultat fourni par P1 , nous dirons que les patterns sont maximalement compatibles. Le Tableau 4.2 définit les compatibilités entre les attributs des patterns d’accès P1 et P2 . P1 P2 Compatibilité Compatibles v v oui l v oui o v oui Compatibles si les attributs v de P2 sont déjà valués v l oui l l oui o l oui Incompatibles v o non l o non o o non Tab. 4.2 – Compatibilités entre les patterns associés à un attribut La logique des attributs s’appuie sur une notion de consistance simple : chaque attribut d’un terme ne peut avoir qu’une valeur. Si nous considérons le terme d’attributs T = [con f erence : V LDB, con f erence : EDBT ], nous pouvons donc dire qu’il est inconsistant. Sa valeur est l’ensemble vide : T = ⊥. L’unification de termes est l’opérateur utilisé pour déterminer la consistance de termes d’attributs. Elle implique que l’intersection de termes dont les attributs communs ont même valeur soit non vide. Pour comparer nos patterns d’accès, nous avons donc besoin d’un opérateur supplémentaire, que nous désignerons par opérateur de compatibilité. Définition 4.2.3 (Opérateur de compatibilité) Soient T1 = [a1 : v1 , a2 : v2 , ..., an : vn ] et T2 = [b1 : w1 , b2 : w2 , ..., bm : wm ]. ⊤ si ∀ j ∈ [1, m], b j : “v”, ∃ i ∈ [1, n], b j = ai (1) T1 ⋓ T2 = ⊤ si (1) et si ∀ j ∈ [1, m], b j :“l”, ∃ i ∈ [1, n], b j = ai ⊥ sinon 76 L’opérateur de compatibilité ⋓ n’est pas commutatif, puisque l’ordre des vues importe, s’agissant pour nous de savoir quelle est celle qui fournit les valeurs d’attributs qui seront utilisées pour interroger la vue qui lui succède immédiatement. Nous mettons en œuvre cet opérateur de compatibilité dans l’algorithme de calcul des liens entre vues, et dans l’implémentation que nous exposons en Section 4.4. Définition 4.2.4 (Vues joignables) Deux vues V1 et V2 de patterns globaux P1 et P2 seront joignables si P1 ⋓ P2 = ⊤. Maintenant que nous avons défini l’opérateur de compatibilité entre patterns d’accès, il ne nous reste plus qu’à résoudre le problème d’intégration de données proprement dit, à savoir qu’à partir d’un ensemble d’attributs dont il connaı̂t la valeur, et d’un ensemble d’attributs qu’il souhaite extraire des vues, l’utilisateur doit établir une jointure entre les vues des sources qu’il a choisies. Considérons les sources présentées dans le Tableau 4.3 et les vues qu’elles contiennent. Pour plus de simplicité, nous associons dans cet exemple une seule vue à chacune des sources, et un seul pattern à chaque vue ; l’extension éventuelle à plusieurs vues par source et plusieurs patterns par vue peut se faire sans difficulté particulière. Source Vue Pattern d’accès S1 S2 S3 S4 V1 (Article,Journal,Année) V2 (Article,Journal) V3 (Journal,Editeur,Prix) V4 (Journal,Editeur,Prix) P1 = {[Article : v, Journal : l, Année : o]} P2 = {[Article : l, Journal : v]} P3 = {[Journal : v, Editeur : l, Prix : l]} P4 = {[Journal : l, Editeur : v, Prix : l]} Tab. 4.3 – Quatre sources bibliographiques Les liens entre les vues créées à partir de l’ensemble des attributs Article, Journal, Editeur, Prix et Année peuvent être modélisés par un hypergraphe dont les nœuds sont les attributs et les hyperarcs les vues, comme le montre la Figure 4.3. Supposons qu’un utilisateur souhaite acheter en ligne un article dont le titre est a1, et qu’il cherche à l’obtenir pour le prix le moins cher. La réponse sera calculée en réalisant l’union des semi-jointures naturelles V1 ⋉V3 , V1 ⋉V4 , V2 ⋉V3 et V2 ⋉V4 , pour lesquelles le titre sera a1. En observant le contenu des vues détaillées en Figure 4.4, nous voyons que l’article a1 est disponible sur les sites des journaux j1, j4, et j5. En examinant le contenu des quatre vues, sans tenir compte de leurs restrictions d’accès, nous pouvons calculer la liste 77 V3 Prix Editeur V2 V4 Journal Article Année V1 Fig. 4.3 – Hypergraphe des sources bibliographiques des différents prix de l’article a1. Il s’agit de l’ensemble de valeurs {6e, 4e, 2e, 1e}, qui constitue la réponse complète à la requête posée par l’utilisateur. Si nous prenons maintenant en compte les capacités d’accès limitées présentes sur les vues, le résultat est bien évidemment totalement différent. D’après le Tableau 4.3, seul le prix de 6e peut être obtenu ; en effet, nous ne possèdons comme point de départ que le titre de l’article, utilisé dans la semi-jointure V1 ⋉ V3 ; nous appellerons ce résultat la réponse minimale, qui n’est obtenue qu’à l’aide des vues participant directement à la réponse. Les autres jointures ne produisent aucun résultat : V1 ⋉V4 requiert l’attribut éditeur, V2 ⋉V3 impose de connaı̂tre le nom du journal, et V2 ⋉ V4 nécessite de fournir les attributs journal et éditeur. En se basant uniquement sur les références disponibles, l’utilisateur n’obtient donc en guise de résultat que le prix le plus élevé. L’utilisation de la vue intermédiaire V3 dans la jointure V1 ⋉V4 aurait pu permettre d’obtenir l’article pour 2e de moins, en utilisant l’affectation supplémentaire Journal =e1 sur la vue V4 . Par l’utilisation de vues intermédiaires, nous obtenons l’ensemble résultat {6e, 4e} que nous appellerons réponse maximale à la requête. La réponse maximale est un sous-ensemble de la réponse complète. V1 a1 a2 j1 j3 V4 V2 2001 1998 a1 a1 a2 V3 j4 j5 j2 j1 j3 e1 e3 6e 5e Fig. 4.4 – Contenu des vues exemples 78 j1 j2 j5 j4 e1 e1 e5 e3 4e 3e 2e 1e C2 S S3 S1 C1 S4 C4 S2 C3 Fig. 4.5 – Chemins de jointures entre les sources S1 , S2 , S3 et S4 Dans le cadre de cet exemple illustratif, nous voyons que la prise en compte de vues présentes dans des sources qui ne font pas partie de la sélection opérée par l’utilisateur peut aider à renvoyer un nombre plus important de résultats. Dans la suite, nous supposerons que les vues sont toutes définies à partir d’un ensemble global d’attributs, et que deux vues peuvent partager le même ensemble d’attributs. Nous appellerons chemin de jointure le parcours qu’il est possible de réaliser entre les vues en fonction de leurs limitations d’accès. Définition 4.2.5 (Chemin de jointure entre les vues) Soient un ensemble S de sources Si , i ∈ [1, n], et l’ensemble V des vues Vi, j , j ∈ [1, m] qu’elles contiennent. Un chemin de jointure C entre ces sources est la liste n ordonnée des vues Vk ∈ V , dont les patterns Pk vérifient ⋓ Pk = ⊤. La vue V1 est appelée vue initiale, et la vue Vn vue finale. k=1 Etant donné un ensemble de sources, il peut exister plusieurs chemins de jointure différents entre leurs vues, en fonction des valeurs initiales que fournit l’utilisateur, et des attributs qu’il souhaite intégrer. Afin d’exprimer une requête sur un ensemble de sources, nous utilisons également le formalisme de la logique des attributs. Notre algorithme de calcul de chemins a pour objectif d’établir toutes les jointures possibles pour peupler le résultat, en considérant la possibilité de rajouter des sources intermédiaires afin de propager la jointure. La Figure 4.5 schématise l’ensemble de sources S1 , S2 , S3 et S4 de notre exemple précédent, et les différents chemins qui peuvent être empruntés pour intégrer les données souhaitées par l’utilisateur. Une vue peut être initiale dans un chemin, et intermédiaire ou finale dans un autre. Notre objectif est de parcourir tous les chemins possibles afin 79 d’intégrer un maximum d’informations, puisque comme nous l’avons vu précédemment dans nos exemples, les données obtenues seront différentes en fonction des patterns d’accès présents sur les sources. 4.2.3 Expression des requêtes Suite à ces définitions préliminaires, nous pouvons maintenant donner la description d’une requête exprimée en utilisant la logique des attributs. Ce formalisme présente l’avantage d’être simple et concis, et correspond précisément aux données que l’utilisateur a en sa possession lorsqu’il souhaite intégrer des données. Définition 4.2.6 (Expression d’une requête) Une requête de collecte de données Q sur un ensemble de sources S sera notée Q =< I , O , S , C >. Ce quadruplet est constitué des éléments : ☞ I = [a1 : {v1,1 , ..., v1,m}, ..., ak : {vk,1 , ..., vk,n}], liste des paramètres fournis par l’utilisateur, sous la forme d’un terme d’attributs où chaque ai peut avoir une ou plusieurs valeurs ☞ O = [ak+1 : ⊤, ak+2 : ⊤, ..., al : ⊤], liste des attributs présents dans les vues et que l’utilisateur souhaite extraire, vérifiant ∀ i ∈ [k + 1, l], ∄ j ∈ [1, k], ai = a j ☞ S : ensemble des sources choisies par l’utilisateur parmi celles connues ☞ C = {C1 ,C2 , ...,Cn} : ensemble des chemins de jointure de la requête Les termes d’attributs I et O vérifient |I ⊓ O | = |I | + |O |. Dans le cas contraire, cela signifiera que les deux termes d’attributs ont un ou plusieurs éléments communs, ce qui va à l’encontre de la Définition 4.2.6 : la requête sera considérée comme non valide. Les chemins de jointure d’une requête Q vérifient deux propriétés supplémentaires qui viennent complèter la Définition 4.2.5 des chemins que nous avons énoncée. Définition 4.2.7 (Chemin de jointure d’une requête) Un chemin de jointure Ci,i∈N∗+ = (V1 ,V2 , ...,Vn) appartenant à l’ensemble C d’une requête Q =< I , O , S , C > est un chemin de jointure vérifiant les deux propriétés suivantes : • un attribut au moins de la vue V1 appartient au terme I , qui lui fournit ses valeurs : ∃ j ∈ [1, k], a j : ⊤ ⊒ V1 et a j : ⊤ ⊒ I • chacun des attributs du terme O est présent dans une des vues Vi , i ∈ [1, n] : ∀ h ∈ [k + 1, l], ∃ Vi,∈[1,n] , ah : ⊤ ⊒ Vi , et n vérifie n ≥ l − k + 1 Les vues qui ne vérifient pas la deuxième condition exposée en Définition 4.2.7 seront appelées des vues intermédiaires. Pour les vues de l’exemple présenté dans le Tableau 4.3, 80 la requête cherchant les prix de l’article a1 sera représentée par Q =< I , O , S , C >, avec I = [Article : {a1}], O = [Prix : ⊤], S = {S1 , S2 , S3 , S4 } et C = {C1 ,C2 , ...,Cn}, où chaque Ci est un chemin de jointure de la requête. Il nous faut raisonner sur le terme I , le terme O et les patterns d’accès aux vues afin de pouvoir calculer le contenu de l’ensemble C de tous les chemins de jointure. Nous avons donc développé un algorithme qui à partir d’une requête posée, essaye de trouver le maximum de réponses possibles : ☞ soit directement à partir des sources choisies, si un chemin de jointure existe entre leurs vues ☞ soit en ajoutant des sources intermédiaires à celles déjà sélectionnées, s’il n’est possible que d’obtenir un chemin de jointure partiel en utilisant seulement les sources initialement choisies Notre objectif est ici de récupérer autant d’informations que possible afin de répondre à la requête de l’utilisateur. Les attributs redondants mais ayant des valeurs différentes entre deux chemins de jointure sont mis à profit afin de confronter les données, et porter à la connaissance de l’utilisateur que des contradictions existent sur certains éléments de la réponse fournie. Le résultat final sera constitué par l’union de toutes les données extraites des sources par le parcours des chemins de jointure, puis de la projection du résultat de cette union sur les attributs appartenant aux termes I et O . 4.3 Traitement des requêtes d’intégration de données À partir des informations fournies par le quadruplet Q =< I , O , S , C >, nous calculons tous les chemins qu’il est possible de suivre pour répondre à la question de l’utilisateur, et la réponse sera l’union des valeurs récupérées sur chacun des chemins parcourus. Le traitement d’une requête se déroule en trois étapes : 1. d’abord le choix des vues initiales possibles parmi les sources que l’utilisateur a sélectionnées 2. ensuite le calcul de proche en proche des chemins de jointures, éventuellement augmentés de sources intermédiaires 3. enfin la fusion des résultats tirés des chemins parcourus Avant de présenter l’algorithme de calcul des chemins, exprimé en pseudo-langage, nous allons détailler les principales étapes de la première phase. 81 SC SI ST ST (ensemble des sources) SC (sources choisies par l’utilisateur) SI (sources intermédiaires potentielles) Fig. 4.6 – Ensembles de sources contenant les vues utilisées pour traiter les requêtes 4.3.1 Choix des vues initiales À partir des valeurs fournies par le terme d’attributs I de la requête Q , nous devons trouver quelles sont les vues qui seront susceptibles d’être les vues initiales des chemins de jointure. Ces vues sont extraites des sources choisies par l’utilisateur, qui font partie de l’ensemble SC sur la Figure 4.6 ; nous avons représenté également l’ensemble SI des sources intermédiaires (qui peuvent être potentiellement utilisées pour joindre deux sources de l’ensemble SC ), et l’ensemble ST , qui contient la totalité des sources connues. Ces trois ensembles vérifient les propriétés : • SC ∪ SI ⊆ ST • SC ∩ SI = ∅ Pour savoir si une vue V peut être une vue initiale, nous devons examiner les attributs communs que la vue possède avec le terme I . Si tous les attributs valués de la vue peuvent être affectés à partir des valeurs fournies par I , alors la vue peut être sélectionnée. Pour détecter les attributs communs aux termes d’attributs respectifs, nous ne pouvons pas nous servir de l’opérateur d’intersection classique fourni par la logique des attributs. En effet, si nous considérons les termes T1 = [a1 : val1 , a2 : val2 ] et T2 = [a2 : val2 ], leur intersection T1 ⊓ T2 = [a1 : val1 , a2 : [val2 , val2 ]] = [a1 : val1 , a2 : val2 ] = [a1 : val1 , a2 : val2 ], car l’opérateur calcule l’intersection des valeurs des termes d’attributs identiques, mais ajoute les termes distincts présents dans les deux membres. T1 ⊓ T2 contient donc l’attribut a1 , ce qui dans notre cas fausserait notre test. Nous avons donc défini un opérateur d’intersection exclusive, qui ne considère que les attributs similaires dans le résultat de l’intersection de deux termes. 82 Définition 4.3.1 (Intersection exclusive de termes d’attributs) Soient T1 = [a1 : v1 , ..., an : vn ] et T2 = [b1 : w1 , ..., bm : wm ] deux termes d’attributs. L’ intersection exclusive des termes T1 et T2 , notée T1 ⊓χ T2 est un terme d’attributs T non vide dont les attributs ai vérifient : ∀ i ∈ [1, n] et j ∈ [1, m], ai = b j ⇒ ai : vi ⊓ b j : w j = ai : vi Si nous appliquons l’opérateur ⊓χ aux termes T1 et T2 de l’exemple précédent, nous obtenons T1 ⊓χ T2 = [a2 : val2 ]. Afin de sélectionner les vues initiales, nous utilisons l’intersection exclusive entre le terme I dont les attributs sont marqués à la valeur v, et les patterns d’accès aux vues. Illustration par l’exemple : soient les termes I = [a1 : v, a2 : v, a3 : v] et V = [a1 : o, a2 : v, a3 : o] ; le terme I ⊓χV = [a2 : v] montre que seul l’attribut a2 peut être utilisé pour interroger la vue V . Le terme d’attribut I dont tous les attributs sont valués à v sera noté I v . Nous présentons ci-dessous l’algorithme de sélection des vues initiales que nous avons développé, mis en œuvre dans la méthode SélectionVuesInitiales. Cette méthode prend en paramètres l’ensemble de sources S d’une requête, et le terme d’attributs I v ; nous obtenons en sortie la liste L I des vues initiales associées à une requête Q . Algorithme 1 ChercherVuesInitiales(S , Iv) Entrées: Un ensemble de sources S et le terme d’attributs I v Sorties: La liste L I de vues initiales de la requête Q LI ⇐ ∅ Tant que S 6= ∅ Faire Choisir une source Si ∈ S Pour toutes les vues Vi contenues dans Si Faire Si Vi ⊓χ I v 6= {} Alors Conserver le pattern d’accès de Vi tel que |Vi ⊓χ I v | soit le plus grand L I ⇐ L I ∪Vi Fin Si Fin Pour S ⇐ S −{Si } Fin Tant que Retourner L I Nous utiliserons les attributs de l’ensemble I v restants afin de valuer des attributs de type libre lors de la phase de parcours des chemins. 83 Analyse de la complexité de l’algorithme Notre algorithme consiste en un parcours de l’ensemble des sources, et une comparaison des patterns d’accès de leurs vues afin de trouver les vues initiales. Si nous désignons par NV le nombre total de vues,la complexité sera de l’ordre de O(NV ). 4.3.2 Algorithme de calcul des chemins de jointure À partir de l’ensemble des vues initiales, nous allons établir tous les chemins de jointure qu’il est possible de tracer entre les sources sélectionnées pour la requête. L’algorithme considère tout d’abord une vue initiale et cherche dans l’ensemble S les vues qui peuvent être interrogées à partir des valeurs que la vue initiale fournit en résultat. Si plusieurs sources peuvent convenir, nous dupliquons le chemin de jointure déjà créé, et ajoutons les deux nouvelles vues respectivement à chacun des chemins. Dans le cas où aucune vue de l’ensemble S ne satisfait, nous cherchons une source intermédiaire capable de nous apporter des valuations d’attributs supplémentaires susceptibles de faire progresser notre jointure. L’Algorithme 2 présente le déroulement de la méthode ChercherCheminComplet, qui à partir d’un chemin de jointure et de l’ensemble de sources, cherche à découvrir tous les chemins de jointure possibles entre la vue finale du chemin et les sources restantes. Le premier appel de cette méthode dans le cadre d’une requête Q est réalisé en fournissant un chemin initialisé avec une vue initiale, et l’ensemble S tiré de la requête. Les vues intermédiaires VI extraites de l’ensemble des sources SI vérifient : V ⋓V = ⊤ si V est la vue finale du chemin de jointure courant F I VI ⋓V = ⊤ F pour au moins une vue V ∈ S Analyse de la complexité de l’algorithme L’algorithme de construction des chemins de jointure énumère tous les chemins qu’il est possible de suivre à partir d’une vue initiale. En désignant par NS le nombre de sources de l’ensemble S, nous voyons que la complexité dans le meilleur des cas se produit lorsqu’il existe une seule vue joignable à chaque étape de l’algorithme ; ceci donne une complexité de l’ordre de O(NV ). Le pire des cas se produit si à chaque étape de l’algorithme, le nombre de vues joignables est égal à la cardinalité de l’ensemble S ; la complexité est alors de l’ordre de O(NV !). Si nous supposons qu’en moyenne, la moitié des vues sont joignables, nous obtenons une complexité aussi élevée que celle dans le pire des cas. En pratique, un très petit nombre de vues seront fortement similaires, nous serons donc toujours plus proches de la complexité dans le meilleur des cas. 84 Algorithme 2 ChercherCheminComplet(C, S, EChemins) Entrées: Un chemin de jointure C contenant sa vue initiale Un ensemble de sources S L’ensemble vide EChemins Sorties: L’ensemble des chemins complets EChemins générés à partir du contenu de C ListeVtmp ⇐ {} Tant que S 6= ∅ Faire VF ⇐ ChercherVueFinale(C) ListeVtmp ⇐ ChercherVuesJoignables(VF , S) Si Cardinalité(ListeVtmp ) = 1 Alors Ajouter la vue de ListeVtmp en fin du chemin C ChercherCheminComplet(C, S − {Vtmp}, EChemins ) Sinon Si Cardinalité(ListeVtmp ) > 1 Alors Pour chacune des vues Vtmp de ListeVtmp Faire Ajouter la vue Vtmp en fin du chemin C ChercherCheminComplet(C, S − {Vtmp}, EChemins ) Retirer la vue Vtmp en fin du chemin C Fin Pour Sinon Chercher une vue intermediaire VI dans l’ensemble des sources ST Si une telle vue VI existe Alors Ajouter la vue VI en fin du chemin C ChercherCheminComplet(C, S, EChemins) Fin Si Fin Si Fin Tant que Ajouter le chemin C complet à EChemins 85 4.3.3 Algorithme de traitement des requêtes Maintenant que nous avons défini les différentes phases nécessaires à la constitution de l’ensemble des vues initiales et au calcul d’un chemin de jointure à partir d’un ensemble de sources, nous pouvons détailler l’Algorithme 3, qui met en œuvre les procédures précédentes afin de traiter complètement la requête Q soumise par l’utilisateur. Nous mettons en œuvre la sélection des vues initiales et le calcul des chemins entre les vues dans cet algorithme plus général, qui s’occupe d’effectuer les jointures de proche en proche, ainsi que d’unir les résultats. Algorithme 3 TraiterRequete(Q ) Entrées: Une requête Q Sorties: Un ensemble de tuples correspondant aux données voulues par l’utilisateur /* L’ensemble de chemins de jointure est vide au début de l’exécution. */ C ⇐ {} L I ⇐ ChercherVuesInitiales(S , I v) Pour toutes les vues VI de L I Faire /* Initialise un chemin de jointure avec la vue passée en paramètre. */ Ctmp ⇐ InitialiserChemindeJointure(VI) EChemins ⇐ ∅ /* Recherche des chemins complets à partir de la vue initiale choisie. */ ChercherCheminComplet(Ctmp, S ,EChemins) /* Si un chemin complet a pu être généré... */ Si EChemins 6= ∅ Alors /* ...on l’ajoute à la liste. */ C ⇐ C ∪ EChemins Fin Si Fin Pour Pour toutes les chemins Ci de C Faire Interroger la vue initiale de Ci à partir des données de I Tant que le chemin Ci n’a pas été parcouru Faire Interroger la vue suivante de Ci avec les tuples obtenus de la vue précédente Fin Tant que Fin Pour Pour chaque ensemble de tuples extrait d’un chemin de jointure Faire Projeter le résultat sur les attributs du terme O Fin Pour Retourner l’ensemble des tuples produits par le parcours des chemins 86 À l’issue de l’exécution de la procédure de traitement d’une requête, l’ensemble résultat peut éventuellement contenir des données redondantes, ce qui doit être pris en compte par l’application de méthodes de filtrage des résultats, à la discrétion de l’utilisateur. 87 4.4 Prototypage et illustration par l’exemple Nous avons mis en œuvre la représentation des patterns d’accès par des termes d’attributs, ainsi que les trois algorithmes présentés dans les Sections 4.3.1 et 4.3.2 en développant un logiciel permettant à l’utilisateur de spécifier les valeurs d’entrée de son choix, les attributs qu’il souhaite obtenir (et qui seront utilisés dans la projection des tuples à la fin de l’Algorithme 3), et les sources à utiliser. L’outil que nous avons développé calcule les différents chemins possibles, et s’occupe de projeter et fusionner les résultats. Nous allons détailler les choix que nous avons opérés concernant les éléments principaux du système, à savoir : • la représentation des patterns d’accès • l’extraction de données des sources du Web de proche en proche • l’union des résultats produits 4.4.1 Format XML des termes d’attributs Nous nous sommes basés sur une représentation des termes d’attributs en langage XML. Cette représentation est fondée sur un schéma XSD normalisé par l’ISO, dont les groupes de travail s’occupent de définir une grammaire pour les structures de traits. Il s’agit de la norme ISO 24610-1-2006, dont le schéma complet est détaillé en Annexe D. Les Figures 4.7 et 4.8 montrent respectivement un terme d’attributs suivant la notation classique utilisée dans les sections précédentes, et sa modélisation en XML. <?xml version="1.0" encoding="UTF-8"?> <fs> <f name="attribut1"> <sym value="valeur1"/> </f> <f name="attribut2"> <sym value="valeur2"/> </f> </fs> [attribut1:valeur1, attribut2:valeur2] Fig. 4.7 – Notation classique d’un FT Fig. 4.8 – Notation XML d’un FT Les modélisations XML sont ensuite lues et transformées en classes Java. Nous avons utilisé une bibliothèque Java proposant les manipulations élémentaires sur les termes d’attributs (création, unification et subsomption). Cette bibliothèque a été développée au 88 sein de l’équipe “Langue & Dialogue”49 du Loria [Dub03]. Nous lui avons ajouté la prise en compte de la disjonction généralisée que nous utilisons pour représenter les patterns d’accès. Nous lui avons également adjoint les opérateurs de compatibilité et d’intersection exclusive qui correspondent aux Définitions 4.2.3 et 4.3.1. Conventionnellement, les fichiers contenant les termes d’attributs portent l’extension .fsml, dont l’acronyme signifie Feature Structure Markup Language. Dans un souci de flexibilité plus important quant à l’évolution du schéma décrivant les termes d’attributs, l’analyseur permettant la transformation des données XML en classes Java est généré directement à partir du schéma XSD, à l’aide de JAXB50 [McL02]. JAXB est une API⋆ fournie par Sun qui permet de créer des classes Java à partir d’un schéma XSD, et inversement de créer un schéma XSD à partir de classes Java. 4.4.2 Extraction des données avec Lixto D’une façon générale, pour qu’une application puisse exploiter les diverses et nombreuses informations disponibles sur le Web, ces informations doivent être extraites et transformées aux formats de représentation avec lesquels elle est compatible. Cette tâche est appelée Extraction d’Information (EI ). D’une manière plus formelle, une tâche d’extraction d’information est définie par ses entrées (documents textes, pages Web, etc.) et par la nature des informations à extraire : des relations entre attributs ou des régularités dans les documents. Il s’agit en général d’une relation entre attributs définie en extension sous forme de k -uplets (enregistrements), où k est le nombre d’attributs. Une méthode d’extraction est appelée “single-slot” (resp. “multiple-slot”) quand k vaut 1 (resp. k > 1). Une page contenant un seul (resp. plusieurs) enregistrements d’intérêt, est appelée page à enregistrement unique51 (resp. page à enregistrements multiples52 ). Le programme permettant d’effectuer la tâche d’extraction d’informations est appelé extracteur, ou plus couramment wrapper . Un wrapper est une procédure fondée sur le principe du “pattern-matching” qui, étant donné un ensemble de règles d’extraction, effectue une recherche de motifs dans des documents. Une manière simple d’effectuer cette opération consiste à décrire manuellement les règles d’extraction pour un ensemble de pages en entrée. Ces méthodes nécessitent généralement une bonne expertise en programmation à l’aide des langages Java ou Perl par exemple. De plus, elles sont souvent inefficaces en temps et sujettes à un taux d’erreurs important. Nous avions déjà mené l’expérience 49 Le projet est disponible sur le site d’Azim Roussanaly, à l’adresse http://www.loria.fr/~azim/. Architecture for XML Binding. 51 Single-Record page. 52 Multiple-Record page. 50 Java 89 1 S w i s s P r o t (X0 , X1) :− 2 n u l l ( , X0 ) , 3 getDocument (X0 , X1 , d e f a u l t ) . 4 Entry name (X0 , X1) :− 5 S w i s s P r o t ( , X0 ) , 6 subelem (X0 , ( . ∗ . body . ∗ . t a b l e . ∗ . t r . ∗ . td . ∗ . p . ∗ . con ten t , 7 [ ( ” e l e m e n t t e x t ” , ” ” , s u b s t r i n g ) ] ) , X1 ) , 8 b e f o r e (X0 , X1 , ( . ∗ . body . ∗ . t a b l e . ∗ . t r . ∗ . td . ∗ . p . ∗ . con ten t , 9 [ ( ” e l e m e n t t e x t ” , ”Entry name ” , s u b s t r i n g ) ] ) , 10 0 . 1 2 8 , 0 . 1 9 2 , X2 , X3 ) . 11 PrimaryAccessionNumber (X0 , X1) :− 12 S w i s s P r o t ( , X0 ) , 13 subelem (X0 , ( . ∗ . body . ∗ . t a b l e . ∗ . t r . ∗ . td . ∗ . p . ∗ . con ten t , 14 [ ( ”elementtext ” , 15 ” [ O, P ,Q] [ 0 − 9 ] [ A−Z , 0 − 9][A−Z , 0 − 9][A−Z , 0 −9][0 −9] ” , r e g e x p ) , 16 ( ”b ” , ” ” , s u b s t r i n g ) , ( ” f o n t −w eigh t ” , ”” , s u b s t r i n g ) ] ) , X1 ) . Fig. 4.9 – Exemple de règles Elog d’écriture d’adaptateurs ad-hoc dans le cadre du projet décrit dans le mémoire de DEA rédigé par Rogier [Rog04] ; nous avions constaté à quel point ce type d’extracteur s’avère fragile, en particulier du point de vue de la prise en compte des modifications des pages ciblées : le moindre changement rend le wrapper inopérant. De multiples approches permettent aujourd’hui d’extraire de l’information, ou plus exactement de générer des wrappers, en intégrant les techniques d’apprentissage (approches semi-automatiques) ou en exploitant les régularités dans les documents (approches automatiques). Ces approches ne nous semblent pas adaptées : • soit parce qu’elles font appel à des techniques d’apprentissage et que les ensembles exemples ne sont pas disponibles, ou impossibles à constituer car les sources n’ont pas assez de points communs pour en extraire une généralisation • soit parce qu’elles cherchent à extraire des données suivant la régularité des pages, et que l’utilisateur doit ensuite filtrer uniquement les informations qui l’intéressent. Nous donnons une classification détaillée des différents outils selon l’approche qu’ils suivent en Annexe C. La seule exception est l’outil Lixto [GKB+04] qui permet de générer des wrappers d’une manière interactive, en assistant l’utilisateur à la création de programmes d’extraction très expressifs. À partir des sélections opérées visuellement par 90 Génération des U RLS x Requête X Query −−−→ Extraction y ←−−− Sauvegarde au f ormat X ML Fig. 4.10 – Cycle d’interrogation entre plusieurs sources l’utilisateur, Lixto génère un ensemble de règles exprimée en langage Elog53 [BFG01]. La Figure 4.9 montre un exemple de wrapper qui extrait de la page Web du site SwissProt la clef primaire des tuples renvoyés par la source de données. Le langage Elog extrait les informations des pages Web à partir des balises englobantes, du contenu, de l’ordre d’apparition dans le document HTML et des concepts sémantiques qui peuvent y être rattachés. Lixto utilise ensuite les règles Elog ainsi définies pour extraire les informations du document HTML et les traduire en format XML. Le document retourné à l’utilisateur peut ainsi être aisément interrogé avec le langage XQuery, enregistré dans une base de données native XML comme eXist [Mei03] ou bien relationnelle avec le transformateur XQuare [Odo05]. Nous avons associé à chaque source de données un extracteur, soit écrit en langage Elog, soit utilisant le protocole HTTP afin de rapatrier localement les résultats fournis par la source au format XML 54 . Afin de générer automatiquement les requêtes adressées à une source de données du Web, nous utilisons la possibilité d’interrogation offerte par les URLs complétées de couples clefs-valeurs. Le cycle de génération de requêtes à l’adresse des sites Web à partir des informations fournies par les données tirées du site précédent est détaillé sur la Figure 4.10. Les différentes étapes de ce cycle correspondent à l’exécution du parcours d’un chemin de jointure entre plusieurs sources. Le double cadre entourant la phase de génération des URLs est là pour signifier que cette étape est amorcée par les attributs fournis par le terme I . L’initialisation se fait donc à l’aide des données fournies par l’utilisateur, puis se poursuit de proche en proche à l’aide des données extraites d’une source qui sont utilisées pour interroger la source suivante. 53 Un langage basé sur des règles Datalog, qui utilise la structure arborescente des documents HTML afin de localiser et extraire les informations. 54 Il est utile de préciser que lors de la phase d’implémentation et de test sur des données réelles, nous avons pu constater combien les fichiers exportés au format XML sont parfois mal structurés, et la difficulté que rencontrent les moteurs de requête XQuery lorsque les fichiers deviennent volumineux. 91 4.4.3 Prototype développé, tests et performances Nous avons développé le logiciel dont l’interface est présentée en Figure 4.12 à l’aide du Java Development Kit 5.0. Nous avons utilisé pour cela la bibliothèque graphique Java SWT55 à partir de laquelle a été développé l’EDI⋆ Eclipse [GB06]. L’utilisation de cette librairie graphique permet d’accéder directement à la gestion des composants graphiques du système d’exploitation sur lequel l’application est exécutée. Ceci permet, sans avoir à rien modifier au niveau du code source, d’obtenir le meilleur rendu visuel disponible56 , puisque les boutons, menus et autres éléments graphiques manipulés seront dessinés à l’écran à partir des modèles du système d’exploitation. Il faut également noter un gain au niveau de la rapidité de l’interface développée par rapport à l’utilisation de la bibliothèque Swing57 . Le Tableau 4.4 montre quelques-uns des chiffres significatifs du prototype développé 58 . Notre outil propose les éléments nécessaires au traitement d’une requête de la forme Q =< I , O , S , C >. L’interface graphique est divisée en 5 zones présentées sur la Figure 4.12, et qui correspondent respectivement à : 1. la sélection des paramètres d’entrée I , des attributs O et de la liste de sources à utiliser 2. la zone de choix des sources que l’utilisateur veut utiliser pour l’intégration de données 3. l’affichage du descriptif de la source de données 4. la liste des chemins de jointure générés 5. la présentation du résultat intégré après le parcours des chemins sélectionnés Le bouton de sélection aléatoire de sources sélectionne un nombre de sources choisi par déplacement du curseur situé en dessous ; les valeurs que peut prendre le curseur varient entre 5 au minimum, et le nombre total de sources disponibles dans la liste complète. Cette fonctionnalité a été utilisée principalement pour tester de façon aléatoire le comportement de notre programme. Exemple illustratif Considérons l’ensemble de sources bibliographiques et les patterns d’accès de leurs vues 55 Standard Widget Toolkit. rencontrer les problèmes de positionnement ou de taille des composants comme lorsqu’une application Java tourne sous Motif ou Windows. 57 Swing produit de multiples objets pour chaque élément graphique affiché, ce qui accroı̂t la lenteur d’exécution ; voir l’ouvrage de Scarpino et al. [SHNM05] pour une discussion des forces et des faiblesses de chacune des approches. 58 Ces statistiques ont été obtenues par le plugin Eclipse Metrics - http://metrics.sourceforge.net/ 56 Sans 92 Lignes de code Méthodes Classes Paquetages 7842 509 67 12 Jours/Homme 30 Tab. 4.4 – Détails du prototype présentées dans le Tableau 4.5. La requête posée au système comprend les termes d’attributs : I = [Article : {“TRDB - The Tandem Repeats Database”, “OLAP over uncertain and imprecise data”}] O = [Auteur : ⊤, Journal : ⊤, Prix : ⊤, Année : ⊤, Rédacteur en che f : ⊤] Les sources choisies par l’utilisateur sont listées dans le Tableau 4.5 ci-dessous : Source Vue Pattern d’accès S17 S22 S23 S20 S25 V17 V22 V23 V20 V25 P = {[Article : v, Journal : o]} P = {[Prix : o, Journal : v, Propriétaire : o, Pays : o]} P = {[Auteurs : v, Année : o, ISSN : o, Editeur : o]} P = {[ISSN : v, Editeur : l, Rédacteur en che f : o, Mois : o]} P = {[Article : v, Pays : v, Auteurs : o]} Tab. 4.5 – Patterns d’accès des vues sélectionnées La requête ainsi exprimée cherche à obtenir les attributs du terme O à partir des titres d’articles fournis dans le terme I . Sans prendre en compte de sources intermédiaires, nous n’obtiendrions que le chemin complet numéro 1, présenté en Figure 4.11. La prise en compte des sources supplémentaires S3 et S34 (encadrées sur le chemin complet numéro 2) nous a permis d’intégrer plus de données et d’obtenir plus de tuples < Auteur, Journal, Prix, Année, Rédacteur en che f >. Les éléments associés à l’article“OLAP over uncertain and imprecise data” sont intégrés au résultat grâce à l’utilisation de ces vues intermédiaires. Nous avons mis en œuvre cet exemple en utilisant un ensemble total de 45 sources de données, comprenant chacune une vue59 contenant en moyenne 5 attributs parmi 20 choix possibles. Nous avons également associé un poids à chaque chemin calculé par le 59 La prise en compte de plusieurs vues ne présente aucune difficulté supplémentaire. 93 Article Journal Genomic sweeping for hypermethylated genes OLAP over uncertain and imprecise data TRDB - The Tandem Repeats Database GCD of Random Linear Combinations Bioinformatics VLDB Journal Nucleic Acids Research Algorithmica Tab. 4.6 – Contenu de la vue V17 Prix Journal Propriétaire Pays 5e 10e 8e 18e Bioinformatics VLDB Journal Algorithmica Nucleic Acids Research Oxford Springer-Verlag Springer Oxford Royaume-Uni Etats-Unis Etats-Unis Tab. 4.7 – Contenu de la vue V22 Auteur Année ISSN Editeur Liang Goh Douglas Burdick Yevgeniy Gelfand Igor Shparlinski 2007 2007 2007 2007 0395-2037 Alex Bateman John Morris Kevin Adam Mike Phillips 0478-1234 0425-8954 Tab. 4.8 – Contenu de la vue V23 ISSN Editeur Rédacteur en chef Mois 0395-2037 0478-1234 Alex Bateman Kevin Adams Alfonso Valencia Mika Jones Janvier Février Tab. 4.9 – Contenu de la vue V20 Article Pays Auteur Genomic sweeping for hypermethylated genes OLAP over uncertain and imprecise data TRDB - The Tandem Repeats Database GCD of Random Linear Combinations Royaume-Uni Allemagne Etats-Unis Etats-Unis Liang Goh Douglas Burdick Yevgeniy Gelfand Igor Shparlinski Tab. 4.10 – Contenu de la vue V25 94 Source Vue Pattern d’accès S34 S3 V34 V3 P = {[Propriétaire : v, Pays : o]} P = {[Editeur : v, Journal : v, ISSN : o]} Tab. 4.11 – Sources intermédiaires utilisées pour compléter les chemins prototype, afin que l’utilisateur choisisse les chemins qu’il souhaite parcourir. Initialisé à la valeur 0, le poids total du chemin est augmenté de 5 lorsque une vue sélectionnée par l’utilisateur y est ajoutée, et diminué de 5 lorsqu’une vue intermédiaire y est insérée pour propager la jointure. Les chemins les plus directs auront donc un poids plus important que ceux présentant de nombreux nœuds intermédiaires. Les chemins 1 et 2 de notre exemple ont respectivement un poids de 25 et 15. Nous avons fixé la valeur 5 arbitrairement, mais il est tout à fait envisageable de fournir une valeur qui illustrerait la fiabilité de la source ou la confiance que lui accorde l’utilisateur. Chemin 1 : 17 −−−→ 22 −−−→ 25 −−−→ 23 −−−→ 20 Chemin 2 : 17 −−−→ 22 −−−→ 34 −−−→ 25 −−−→ 23 −−−→ 3 −−−→ 20 Fig. 4.11 – Chemins de jointure entre les sources bibliographiques Le temps demandé pour calculer les deux chemins complets en Figure 4.11 est de 80ms60 . 60 Pour un AMD Athlon cadencé à 1400Mhz, 512 Mo de RAM, sous Linux. 95 1 2 3 96 4 5 Fig. 4.12 – Interface graphique pour l’intégration de données basée sur le partage de références Génération de jeux de données Nous avons également testé notre outil sur des jeux de données générés automatiquement, en faisant varier plusieurs critères : nombre total de sources, nombre total d’attributs différents, et nombre d’attributs différents par source. La répartition des patterns {“v”, “l”, “o”} a également varié en pourcentage du nombre total d’attributs par vue considérée, tout en respectant le critère qu’au moins un attribut de chaque vue considérée soit associé au pattern “v”. Jeu de test A B C D Nombre de sources 10 25 75 150 Total d’attributs 5 10 10 20 Nombre d’attributs par vue entre 2 et 5 entre 2 et 10 entre 2 et 10 entre 2 et 20 Tab. 4.12 – Descriptif des jeux de données générés Quelques chiffres Nous avons effectué ces tests afin d’estimer plus justement le comportement de notre algorithme de parcours de chemin en fonction du nombre de sources sélectionnées, et du nombre total de sources. Les ensembles considérés sont de différentes sortes, et présentés en détail dans le Tableau 4.12. Pour chaque jeu de données, les patterns d’accès ont été générés avec une répartition aléatoire respectivement de 30% de “v”, 20% de “l”, et 50% de “o” que nous noterons R1 , de 50% de “v”, 20% de “l”, et 30% de “o” que nous noterons R2 , et de 70% de “v”, 10% de “l”, et 20% de “o” que nous noterons R3 . Commentaires Les résultats exposés dans le Tableau 4.13 montrent le comportement du prototype en fonction du type de sources considérées. Les colonnes du tableau représentent respectivement : • le jeu de données considéré, associé aux répartitions R1 , R2 ou R3 • le nombre de sources sélectionnées • le temps d’exécution moyen • le nombre de chemins partiels et complets générés Les résultats des tests sont une moyenne calculée sur 10 essais successifs. Interprétation des résultats Quand le nombre total d’attributs augmente, il devient plus difficile de pouvoir trouver un chemin entre les sources choisies au hasard. Nous constatons le même phénomène 97 Jeu Sélection Tps (ms) Chemins Jeu Sélection Tps (ms) Chemins A.R1 A.R2 A.R3 5 5 5 42.6 29.8 13 1.8 (1.8) 3.8 (0) 2.4 (0) B.R1 B.R2 B.R3 B.R1 B.R2 B.R3 B.R1 B.R2 B.R3 5 5 5 15 15 15 20 20 20 41 13 28 347.6 38.8 75.8 326.6 56.2 69 2.6 (2.6) 1 (0) 2.6 (0) 6 (1) 3.6 (0) 6.2 (0) 7 (1.4) 4.6 (0) 7.4 (0) C.R1 C.R2 C.R3 C.R1 C.R2 C.R3 5 5 5 20 20 20 69.8 105.8 132.4 347.2 329 566.2 2.8 (2.8) 3 (0) 3.2 (0) 6.8 (6.8) 11.6 (0) 11 (0) D.R1 D.R2 D.R3 D.R1 D.R2 D.R3 5 5 5 20 20 20 53 221.6 210.2 342 566.6 1006.6 1 (0) 3 (0) 3(0) 4.4 (0) 7 (0) 8 (0) Tab. 4.13 – Résultats des tests lorsque le nombre d’attributs moyen par vue croı̂t. Il devient impossible de générer des chemins complets lorsque le nombre d’attributs qu’il faut valuer pour interroger une source est important : ceci se produit notamment avec la répartition aléatoire R3 . Quelles que soient les configurations testées, le temps d’exécution de notre programme reste relativement raisonnable. 98 4.5 Applications sur des données biologiques L’exploitation du partage de références entre sources de données biologiques est dans certains cas la seule opportunité qui existe afin de vérifier ou de recouper une information. Nous avons donc mis en œuvre notre approche sur trois cas d’utilisation réels qui ont été définis dans le cadre de notre collaboration avec nos partenaires biologistes61 . 4.5.1 Intégration de données et prédiction de gènes candidats Nous avons mis en œuvre le parcours de chemin afin d’établir des listes de gènes potentiellement impliqués dans la malaria. Pour la première approche développée, la liste des sources de données à intégrer établie par nos collègues biologistes comprenait les sources SwissProt, dbSNP, HGVBase, SNPper, PubMed, UCSC et LocusLink. Les différents chemins possibles entre ces sources sont présentés en Figure 3.3. Parmi tous les chemins qu’il est possible de suivre entre ces sources, nous avons utilisé le parcours présenté en Figure 4.13. Marqueurs UCSC Liste de gènes de l’intervalle S O U R C E S SNPper A T T R I B U T S dbSNP HGV PubMed Identifiant IL12B CYFIP2 IL13 CD14 ETF1 NRG2 IL5 G3BP LocusLink SwissProt SNPs Articles Termes GO Termes IPR Fig. 4.14 – Gènes prioritaires Calcul du score Liste de gènes prioritaires Fig. 4.13 – Parcours effectué par le premier scénario Les données extraites de chacune des sources permettent d’obtenir des identifiants, et 61 Merci à Alexandre Atkinson et Pascal Rihet pour leur aide précieuse. 99 le calcul de l’importance du gène se fait au regard du nombre de réponses obtenues. Résultats obtenus Nous avons suivi une approche de calcul naı̈ve : si le gène est lié à de nombreux articles, à des termes InterPro ou GeneOntology ou possède des SNPs reliés à la malaria, son score sera augmenté de 1. Après stockage des informations extraites dans une base de données, nous avons pu exécuter des requêtes d’agrégation qui nous ont permis d’établir la liste présentée dans le Tableau 4.14. La méthode de calcul utilisée ne se base que sur le nombre de réponses obtenues ; ceci donne néanmoins des résultats intéressants, en particulier les gènes IL12B, IL13 et IL5, qui sont connus pour être impliqués dans la maladie. Mais la liste présente également des résultats tel que G3BP, qui semblent moins pertinents en l’état actuel des connaissances. 4.5.2 Construction d’un méta-moteur de recherche de gènes candidats Comme nous l’avons vu, intégrer directement les sources afin de calculer nous même les scores s’avère difficile, car la méthode utilisée pour prioritiser les gènes est d’une importance capitale pour la pertinence du résultat. Nous nous sommes donc orientés sur d’autres sources de données interconnectées, qui proposent directement des listes de gènes classés par leur degré d’intérêt. Le parcours de chemins est ici mis en oeuvre afin de construire un méta-moteur destiné à établir des listes de gènes candidats. À partir d’une localisation précise sur un chromosome, notre prototype collecte les données extraites de plusieurs outils de prioritisation de gènes, et fusionne les résultats obtenus par les différents chemins parcourus, détaillés sur la Figure 4.15. L’utilisation de ces trois outils nous a confronté aux problèmes détaillés en Section 3.3 : le seul point d’accès pour leur interrogation est un formulaire Web, et l’un des trois outils ne peut pas être interrogé directement à l’aide des paramètres connus par l’utilisateur, il faut utiliser une source intermédiaire. Nous donnons la description et la formalisation des sources accédées dans les paragraphes suivants. Suspects - http://www.genetics.med.ed.ac.uk/suspects/search.shtml Suspects [AAE+ 06] prend en paramètres une pathologie, un numéro de chromosome et un intervalle en paire de bases. À partir de là, il cherche des noms de gènes connus pour être impliqués dans la maladie étudiée. Il compare ensuite la liste de gènes présents dans l’intervalle fourni par l’utilisateur aux autres gènes listés et effectivement liés à la maladie demandée, et établit une liste ordonnée selon leur implication probable croissante. Les 100 Paramètres Pathologie Liste de gènes connus pour être impliqués dans la pathologie Num. Chromosome Suspects Début Intervalle PosMed Fin intervalle Prioritizer Sources BioMart Liste de gènes candidats Liste de gènes candidats Liste de gènes candidats Fusion en une seule liste Fig. 4.15 – Sources utilisée par le méta-moteur limitations d’accès à cette source sont modélisés par le terme d’attributs suivant : Suspects = {[{[Marker1 : v, Marker2 : v], [ChrCoord1 : v,ChrCoord2 : v, NumChr : v], [Band : v, NumChr : v]}, {[Disease : v], [GenesList : v]}, [PeakMarkers : l], [Score : o], [Length : o]], [{[Marker1 : v], [Gene1 : v]}, {[Disease : v], [GenesList : v]}, [PeakMarkers : l], [Score : o], [Length : o]], [{[Description : v], [GeneRIF : v], [Annotation : v], [Implication : v], [GenesList : v]}, {[Disease : v], [GenesList : v]}, [Score : o], [Length : o]]} Le terme d’attributs ci-dessus correspond aux formulaires détaillés en Figure 4.16. PosMed - http://omicspace.riken.jp/ PosMed [THH+ 06] a un fonctionnement similaire à celui de Suspects. La Figure 4.17 présente le formulaire d’accès à PosMed. Son pattern d’accès est détaillé ci-dessous : PosMed = {[Disease : v, NumChr : v,ChrCoord1 : v,ChrCoord2 : v, IdGene : o, EnsemblID : o, Score : o, Length : o]} Prioritizer - http://humgen.med.uu.nl/~lude/prioritizer/ Prioritizer [FBF+06] est un outil auquel il faut fournir 3 régions où le biologiste pense que des gènes sont associés à une même pathologie, contrairement aux deux autres qui n’en demandent qu’une seule. Il récupère ensuite la liste des gènes présents dans les 3 régions, puis leurs protéines correspondantes, et trace un réseau d’interaction entre toutes 101 Fig. 4.16 – Formulaire proposé par la source Suspects Fig. 4.17 – Formulaire proposé par la source PosMed 102 ces protéines. Le principe sous-jacent étant lié au fait que le ou les gènes associés à la pathologie sont en interaction entre eux. Afin de fournir 3 régions à Prioritizer, nous utilisons une source intermédiaire supplémentaire, BioMart. Nous interrogeons BioMart à l’aide des listes de gènes impliqués dans la pathologie fournie par Suspects : avec les identifiants de la base Ensembl62 obtenus, il est ainsi possible d’extraire de BioMart les données nécessaires à Prioritizer. Le pattern d’accès à Prioritizer est le suivant : Prioritizer = {[Disease : v, NumChr : v,ChrCoord1 : v,ChrCoord2 : v, IdGene : o, EnsemblID : o, Score : o, Length : o]} Résultats obtenus Nous avons pu atteindre le principal objectif que nous nous étions fixés, à savoir automatiser un traitement manuel fastidieux, et permettre à des biologistes de confronter rapidement des informations extraites de multiples sources. Afin de simplifier les manipulations, nous avons développé une interface graphique dédiée à la fusion des données de ces 3 sources, présentée en Figure 4.18. Cette interface allégée permet d’affranchir l’utilisateur biologiste de la manipulation des termes d’attributs sous-jacents. Les résultats intégrés mettent en évidence principalement les gènes IL12B, NR3C1, IL13 et NRG2, dont le classement par les trois sources est approximativement identique. Pour de nombreux autres gènes, la différence entre les rangs affectés par chacune des sources met en évidence des divergences assez marquées entre les méthodes de prioritisation utilisées, dont une étude ultérieure approfondie semble indispensable afin de comprendre les critères prédominants à la divergence du classement. Il faut noter que des problèmes imprévus peuvent survenir même si toutes les précautions semblent avoir été prises : ainsi, le fichier XML renvoyé par PosMed est parfois mal formé : des balises XML ouvrantes se trouvent au milieu de données textuelles, ce qui provoque des erreurs lors de l’exécution des requêtes XQuery. 4.5.3 Complétion et vérification de données de puces à ADN Les puces à ADN sont une biotechnologie récente qui permet de quantifier le niveau d’expression des gènes transcrits dans une cellule d’un tissu donné63 , à un stade donné du développement64 et dans un état donné65 . La puce est une plaque de petite taille (1 cm2 ) 62 BioMart (http://www.biomart.org/) est un outil d’exploration de la base Ensembl. le foie ou l’intestin par exemple. 64 Embryon, enfant, adulte. 65 Malade ou sain. 63 Comme 103 Fig. 4.18 – Interface graphique du métamoteur de recherche de gènes candidats 104 sur laquelle sont fixés des brins monocaténaires d’ADN. Les courtes séquences d’ADN connues fixées sur la puce sont mises en présence d’un mélange d’ADN complémentaire (ADNc) qui reflète assez bien la composition en ARN du mélange à analyser puisque synthétisé comme une copie de cet ARN. Cette transcription inverse (de l’ARN vers l’ADNc) est importante car c’est à cette étape que l’on marque l’ADNc (par incorporation de composés fluorescents) en vue de le détecter ultérieurement sur la puce. Le système est conçu de sorte à ne détecter que les paires qui se sont hybridées. Il est donc facile d’en déduire les séquences des ARN présents dans le mélange étudié, et, par mesure de l’intensité des signaux d’hybridation, la quantité respective de chaque espèce d’ARN. Le principe des puces à ADN repose sur la particularité de reformer spontanément la double hélice de l’acide désoxyribonucléique face au brin complémentaire. Les quatre molécules de base de l’ADN (A pour Adénine, T pour Thymine, C pour Cytosine et G pour Guanine) ont en effet la particularité de s’unir deux à deux, A avec T et C avec G. Si un patient est porteur d’une maladie, les brins extraits de son ADN vont s’hybrider avec les brins d’ADN synthétiques représentatifs de la maladie, et ainsi mettre en évidence la pathologie. La société Affymetrix66 propose une liste de correspondances entre les identifiants qu’elle utilise pour les gènes stockés sur ses puces à ADN, et les identifiants utilisés sur des sources de données biologiques telles qu’Ensembl ou sur le site du NCBI67 . Il est difficile de relier ces identifiants propriétaires à des données diffusées sur les sources publiques d’internet, pour au moins deux raisons. D’abord parce que la complétude des informations fournies est partielle : tous les identifiants n’y sont pas, ou bien y figurent à plusieurs reprises. De plus, même si l’outil Biomart68 peut être utilisé pour compléter l’information, il propose parfois plusieurs identifiants Ensembl pour une seule référence fournie par Affymetrix. Nous avons donc mis en oeuvre l’intégration par partage de références afin de résoudre ce problème. La puce utilisée est le modèle HG-U133A, qui fait partie de la série des puces HG-U133. Elle contient 22283 sondes, ce qui rend impossible le croisement manuel des références afin d’identifier précisément les références partagées correctes et incorrectes que fournit le fabricant. Il faut donc confronter les données tirées de plusieurs sources, et utiliser leurs références croisées afin de savoir quel gène présent sur la puce à ADN correspond exactement aux gènes contenus dans les sources de données biologiques accessibles sur le Web. La 66 Fabricant californien de puces à ADN : http://www.affymetrix.com/ Center for Biotechnology Information. 68 http://www.ensembl.org/biomart/martview/ 67 National 105 Ensembl Affymetrix BioMart Ncbi Résultat fusionné RefSeq Entrez Symbole du gène Fig. 4.19 – Références croisées sur des données Affymetrix Figure 4.19 montre les liens que nous avons suivis afin d’une part de compléter le résultat, mais aussi de croiser les informations afin de mettre en évidence la valeur à conserver lors de l’obtention de réponses redondantes. Formalisation des capacités d’interrogation des sources Source de données Affymetrix : A f f ymetrix = {[A f f y ID : v, Public ID : l, Ensembl : o, NCBI : o, Re f Seq : o, Gene Symbol : o, Array ID : o, Gene Title : o]} Source de données BioMart : BioMart = {[A f f y ID : v, Array ID : l, DB Version : l, Organism : l, ID Type : l], [NCBI : v, Array ID : l, DB Version : l, Organism : l, ID Type : l], [Re f Seq : v, Array ID : l, DB Version : l, Organism : l, ID Type : l], [Gene Symbol : v, Array ID : l, DB Version : l, Organism : l, ID Type : l]} Source de données Entrez : Entrez = {[NCBI : v, DB Name : l, Gene Symbol : o, Gene Title : o]} Résultats obtenus Nous avons intégré trois sources de données : Affymetrix, une source locale qui contient les données de notre puce à ADN, Ensembl, une source distante hébergée au RoyaumeUni, et Entrez Gene, hébergée par le NCBI aux Etats-Unis. Nous avons croisé leurs informations afin d’identifier précisément les références fournies par Affymetrix qui sont incohérentes avec les données des sources, ou bien compléter celles qui ne sont fournies que partiellement. L’interface de l’outil que nous avons développé est présentée en Figure 4.20. Les Tableaux 4.14 et 4.15 présentent respectivement le temps nécessaire à l’intégration de données, et les incohérences mises en évidence lors de la phase d’analyse. La phase 106 Fig. 4.20 – Interface graphique du détecteur de conflits pour les puces Affymetrix 107 d’intégration est longue, à cause de l’échange de requêtes HTTP avec les sources distantes qui présente un temps de latence important dû au transfert sur le réseau. Nombre de sondes 100 1000 5000 10000 15000 22283 Durée en secondes 524 5801 31357 65059 98082 131637 Durée en heures 0,145 (≈ 9 mins) 1.61 (≈ 97 mins) 8.71 (≈ 523 mins) 18.07 (≈ 1084 mins) 27.24 (≈ 1634 mins) 36.56 (≈ 2193 mins) Tab. 4.14 – Durée de la phase d’intégration de données À partir du seuil de 5000 sondes, les durées présentées sont des valeurs cumulées : nous avons en effet découpé les identifiants Affymetrix en lots de tailles différentes, contenant respectivement 5000, 5000, et 7283 éléments, afin de pouvoir mener les tests à leur terme en l’espace d’une journée69 . La phase d’analyse a consisté en l’utilisation de vues relationnelles sur les données volumineuses que nous avons stockées dans un serveur MySQL : pour chaque identifiant Affymetrix, nous avons comparé les références croisées fournies par le fabricant à celles réellement trouvées sur les sources distantes, ceci respectivement pour les identifiants Ensembl, GeneBank, RefSeq, EntrezGene et le symbole du gène. Sondes 100 1000 5000 10000 15000 22283 Pourcentage d’incohérences 1% (1/100) 7.3% (73/1000) 7.92% (396/5000) 6.94% (694/10000) 5.87% (881/15000) 5.24% (1169/22283) Pourcentage d’incomplétude 9% (9/100) 10.9% (109/1000) 9.52% (476/5000) 9.81% (981/10000) 8.82% (1324/15000) 8.91% (1986/22283) Tab. 4.15 – Résultats de la phase d’analyse Le pourcentage d’incohérence est calculé à partir des références qui contiennent une ou plusieurs erreurs, celle-ci pouvant provenir du fabricant de puces aussi bien que du fournisseur de données distant : nous voulons simplement faire ressortir la référence des 69 Le test de 7283 sondes n’a jamais excédé 10 heures. 108 sondes pour lesquelles il subsiste un doute, qui pourrait être préjudiciable à l’utilisateur lors de recoupements de données ultérieurs. 109 4.6 Conclusion Nous avons présenté dans ce chapitre notre approche d’intégration de données par parcours de chemins de jointure basée sur la logique des attributs. Nous avons vu avec quelle facilité le raisonnement sur les patterns d’accès aux données permet d’identifier les compatibilités entre les sources et ainsi propager la jointure de proche en proche. En nous basant sur un formalisme bien définit et en lui ajoutant des opérateurs spécifiques, nous avons pu résoudre le problème qui nous était posé en le structurant dans un cadre formel clair. La mise en œuvre à l’aide du prototype développé montre la faisabilité de notre approche dans un contexte réel. L’ajout de compléments d’information associés à la représentation de chaque pattern est directe, et ne présente aucune difficulté majeure : il suffirait d’inclure ces informations dans le terme d’attributs pour les prendre ensuite en compte dans le raisonnement sur les sources. Un des avantages du parcours de chemins est qu’il permet de conserver la trace du mode opératoire qui a permis d’aboutir au résultat intégré, ce qui garantit un niveau de transparence conséquent à l’utilisateur. Cependant, quelques difficultés résident encore au niveau de la création et la maintenance des adaptateurs destinés à rapatrier les données des sources 70 . Nous nous sommes pour l’instant basés sur un accès aux données relativement classique à l’aide d’extraction de données des pages Web, mais l’extensibilité de notre approche à un contexte orienté service est tout à fait envisageable. Plusieurs projets tendent aujourd’hui à développer les services Web biologiques, BioMoby [WL02b] et GBIF71 [GHL07] par exemple. Nous pourrons mettre en œuvre notre approche dans ce contexte dès que le nombre de services Web dédiés à la biologie sera devenu plus conséquent. De plus, l’émergence du standard XForms [W3C07] 72 permettra à la fois le processus d’intégration de services à partir d’interfaces Web, mais aussi la procédure inverse, donnant ainsi naissance à un Web toujours accessible à l’homme, mais aussi de mieux en mieux accessible à la machine. 70 Ces problèmes ont été présentés par Lincoln Stein [Ste02] dans un article où l’auteur compare le screen scraping à une torture moyenâgeuse et plaide pour la mise en œuvre de solutions à base de services Web. 71 Global Biodiversity Information Facility : http: // www. secretariat. gbif. net/ portal/ index. jsp 72 XForms remplacera à terme les formulaires HTML traditionnels. 110 Troisième partie Médiation de données biologiques du Web 111 Dans la troisième partie de cette thèse, nous présentons une approche d’intégration de données hétérogènes et distribuées non matérialisée et flexible, destinée à intégrer des sources thématiquement proches. Nos travaux dans le domaine de l’intégration nous ont montré que c’est à cause des phases de construction et de maintenance de la vue unifiée des données qu’apparaissent ensuite les difficultés majeures de l’intégration sur le Web, lors de la phase de traitement des requêtes. En conséquence, nous basons notre architecture sur une approche mixte d’intégration de données, puisque le schéma global est défini indépendamment des schémas locaux, qui sont eux-mêmes mis en correspondance avec le schéma global indépendamment les uns des autres. Nous présentons ensuite les deux étapes de décomposition et de recomposition de requêtes, détaillons le prototype développé, ainsi qu’un exemple concret d’application. 113 114 5 Atouts et insuffisances des solutions actuelles Dans ce premier chapitre, nous présentons un bref rappel des approches d’intégration non matérialisées les plus connues basées sur l’intégration de vues, la médiation de contexte, les réseaux pair à pair ou les langages multi-bases. Nous montrons pourquoi la plupart de ces approches ne sont pas adaptées au besoin de flexibilité et d’évolutivité imposé par l’intégration de données biologiques sur le Web, et pourquoi les spécificités des bases de données dans ce domaine nous imposent d’accorder à l’utilisateur la possibilité de choisir et de structurer selon ses besoins et ses préférences les éléments qu’il souhaite intégrer. Sommaire 5.1 Contexte de nos travaux . . . . . . . . . . . . . . . . . . . . 116 5.2 Ecueils des approches classiques de médiation . . . . . . . 117 5.2.1 Médiation de schéma . . . . . . . . . . . . . . . . . . . . . 117 5.2.2 Médiation de contexte . . . . . . . . . . . . . . . . . . . . . 121 5.3 Médiation et réseaux pair à pair . . . . . . . . . . . . . . . 122 5.4 Fédération lâche et langages multi-bases . . . . . . . . . . 124 5.5 Une architecture BGLAV basée sur XML et XQuery . . 125 5.5.1 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . 126 5.5.2 Travaux liés . . . . . . . . . . . . . . . . . . . . . . . . . . 128 115 5.1 Contexte de nos travaux Comme nous l’avons détaillé dans l’état de l’art présenté en Partie I de ce mémoire, les approches d’intégration de données sur le Web sont diverses et variées. Intuitivement, l’exploitation des références croisées entre sources de données biologiques nous a amené à développer les travaux que nous avons présentés en Partie II. Bien que donnant de bons résultats, les limitations de cette démarche se situent au niveau de l’expressivité des formulations et la difficulté de détection et de traitement des conflits en amont de l’exécution de la requête. De plus, il est difficile pour l’utilisateur d’exprimer des contraintes complexes entre des ensembles de données distincts. Les requêtes s’apparentent plus à celles exprimables par un moteur de recherche qu’à celles que peut proposer un langage de requêtes de haut niveau associé à un outil d’intégration. Parcourir des chemins afin de joindre les données de proche en proche peut également s’avérer être une opération coûteuse alors que parfois l’utilisateur ne souhaite qu’une projection sur quelques attributs tirés du résultat de la jointure 73 . Enfin, mis à part pour la requête amorçant le parcours, toutes les autres dépendent de celle qui les précède, ce qui restreint l’utilisation de cet outil à des cas bien précis, tels que ceux détaillés dans le cadre des tests de notre prototype. Dans la troisième partie de ce mémoire, nous présentons une démarche qui prend en compte les spécificités des sources du Web, qui sont majoritairement accessibles en lecture seule, avec des capacités d’interrogation limitées et qui peuvent apparaı̂tre ou disparaı̂tre à tout moment, tout en proposant un langage de requêtes suffisamment expressif afin d’intégrer facilement aussi bien les sources que les ressources biologiques, en laissant la plus grande marge de manœuvre possible à l’utilisateur. Pour faire face au dynamisme imposé par le contexte du Web, nous nous sommes naturellement orientés vers une approche d’intégration de données non matérialisée 74 : dans cette catégorie d’architectures, les systèmes, fondés dans un premier temps sur la fédération de données [HM85] ont évolué vers la médiation de données. Sur le Web, la médiation de données est l’une des techniques qui a jusqu’à présent été privilégiée afin d’intégrer virtuellement les données, et dont “le Web sémantique devrait tirer largement bénéfice”, comme l’ont souligné Laublet et Reynaud [LRC02]. Telle qu’elle a été introduite par Wiederhold [Wie92], la médiation consiste à proposer à l’utilisateur un schéma intégré d’un ensemble de schémas de sources de données distribuées, autonomes et hétérogènes. Ce schéma est un schéma virtuel donnant l’illusion d’une unique source de 73 Notre approche n’est pas basée sur le modèle relationnel, mais le vocabulaire qui y est associé illustre parfaitement la problématique. 74 Les différentes architectures existantes sont détaillées en Partie I. 116 données homogène. Un système de médiation doit donc posséder un langage de requêtes unique et un modèle de données commun. La principale difficulté lors de l’utilisation d’un médiateur réside justement en la construction puis l’évolution du schéma virtuel, qui constitue un obstacle majeur à l’extensibilité du système. Nous avons donc réfléchi à la mise en place d’une architecture d’intégration non matérialisée flexible afin de contourner les principales limitations des méthodes mises en œuvre par les techniques de médiation. 5.2 Ecueils des approches classiques de médiation Dans les approches de médiation, deux composants sont chargés de résoudre les différents conflits à la place de l’utilisateur : l’adaptateur qui s’occupe des conflits syntaxiques, et le médiateur qui résout les conflits sémantiques. L’adaptateur fournit juste un moyen d’accès homogène aux sources d’information, assure la traduction de la requête, des données, et un éventuel changement de représentation. Le médiateur peut assurer la conversion d’unités, de structures, la traduction de noms et les regroupements sémantiques. La plupart des auteurs distinguent deux catégories fondamentales de médiations pour la résolution des conflits sémantiques : la médiation de schéma qui est une extension directe de l’approche fédérée et la médiation de contexte reposant sur la distance sémantique et l’unification de contextes [Jou00]. 5.2.1 Médiation de schéma La médiation de schéma est essentiellement une évolution de l’architecture fédérée fortement couplée. Le rapprochement à effectuer entre un traducteur et un adaptateur et entre un intégrateur et un médiateur est que les premiers sont directement les ancêtres des seconds. À l’origine, les chercheurs travaillant sur l’approche fédérée fortement couplée ont simplement décidé d’adapter leur vocabulaire à celui de Wiederhold. Il existe dans cette approche, comme dans l’approche fédérée fortement couplée, un schéma conceptuel global, auquel doivent s’apparier les différents schémas locaux : il y a donc intégration des schémas locaux au schéma global. De plus, comme dans l’approche de fédération fortement couplée, la construction du schéma global repose en général sur l’analyse préalable des schémas locaux et ceux-ci sont intégrés d’une manière statique au schéma global. Les phases de préintégration, de recherche des correspondances, d’intégration et de restructuration doivent être réalisées comme dans l’approche fédérée. Ces systèmes se distinguent par contre d’une approche d’intégration par fédération fortement couplée en résolvant certains problèmes comme l’indisponibilité des sources 117 et la combinaison des informations d’une manière plus flexible, en offrant un ensemble d’outils de haut niveau permettant de combiner et de restructurer les informations dans le schéma de médiation. Comme pour toute architecture de médiation, le système est normalement en lecture seule, bien que le passage à une solution en lecture-écriture puisse être dans certains cas théoriquement possible 75 . Le médiateur a pour rôle de transformer une requête exprimée sur le schéma global en fonction des termes des schémas des sources réelles. Cette tâche est basée essentiellement sur le modèle d’intégration adopté qui décrit le schéma global et les articulations qui le relient aux schémas des sources réelles. Selon la façon dont les correspondances entre les schémas globaux et locaux sont spécifiées, il existe principalement deux approches opposées pour définir le modèle d’intégration. L’approche GAV (Global-As-View) [GMPQ+ 97, ACPS96] définit le schéma global comme une vue sur les schémas des sources locales. Chaque relation du schéma global est alors décrite par une règle76 de la forme suivante : g(X) : − l1 (X 1 ), . . ., l j (X j ) où g est une relation du schéma global et les l j représentent des relations des schémas des sources réelles. X, X 1 , . . . , X n sont des tuples composés de variables et de constantes, vérifiant X ⊂ X 1 ∪ . . . ∪ X n . L’approche GAV suppose que toutes les sources sont connues au moment de la définition du schéma global, et que l’union des données se trouvant dans les sources constitue l’ensemble des données interrogées. À l’inverse, l’approche LAV (Local-As-View ) [LRO96a, FW97] impose que le schéma global soit défini indépendamment des sources. La définition de ce dernier se fait donc par rapport à un centre d’intérêt, à la discrétion de l’utilisateur. Les sources réelles sont ensuite décrites comme des vues locales sur le schéma global préalablement conçu. Une relation du schéma d’une source réelle est alors décrite par une règle de la forme suivante : l(X) : − g1 (X 1 ), . . . , g j (X j ) où l est une relation d’une source locale et les g j représentent des relations définies dans le schéma global. Dans l’approche GAV, la transformation des requêtes revient simplement à remplacer les vues utilisées par leurs définitions. Dans le cas d’une approche LAV, elle est plus compliquée. En effet, les règles doivent être combinées pour reformuler les requêtes en fonction des termes des schémas des sources locales. 75 Bien que cela pose ensuite des problèmes similaires à ceux rencontrés lors de la mise à jour de vues dans les bases de données relationnelles. 76 La syntaxe utilisée est celle de Datalog [GM78]. 118 La modification d’une source locale (ajout ou suppression d’une source, modification du schéma d’une source) dans une approche GAV, entraı̂ne la reconsidération complète du schéma global. Ainsi, cette approche n’est pas conseillée quand il s’agit d’un système intégrant un grand nombre de sources autonomes (dont la stabilité est donc incertaine) contrairement à l’approche LAV qui favorise ce genre de systèmes. Cet avantage vient du fait que chaque source locale est décrite indépendamment des autres. La Figure 5.1 résume les deux méthodologies principales de construction du schéma global : GAV peut être qualifiée d’approche bottom-up 77 , alors que LAV est une approche top-down 78 . Intégration de données GAV LAV Schéma global Schéma global Vues complexes sur l’ensemble des sources Processeur de requêtes LAV Description de la source Description de la source Description de la source Description de la source Source structurée Source semi−structurée Source structurée Source semi−structurée Fig. 5.1 – Intégrations GAV et LAV Notons que, dans une approche LAV, le schéma global doit contenir l’ensemble des attributs partagés par l’ensemble des sources réelles même si l’application d’intégration ne s’y intéresse pas. Dans une approche GAV, toutes les relations existantes dans les sources réelles doivent être représentées par des relations du schéma global ou par des requêtes conjonctives sur ces dernières. Pour compenser les limites et insuffisances de l’une et l’autre de ces approches, des solutions mixtes ont été développées. Par exemple, l’approche GLAV (Global-Local-As-View) [FLM99] utilise la puissance expressive des deux approches LAV et GAV, permettant ainsi une définition de schéma flexible et indépendante des détails propres aux sources. Elle consiste à exprimer un ensemble de relations du schéma global comme une vue sur un ensemble de relations des schémas des sources réelles. 77 De 78 bas en haut. Du haut vers le bas. 119 Les règles de correspondance GLAV prennent alors la forme suivante : g1 (X 1 ), . . ., g j (X j ) : − L(X ) où les g j sont des relations du schéma global et L est une conjonction de relations des schémas des sources réelles. Friedman et Levy [FLM99] montrent que la complexité du problème de réécriture en utilisant l’approche GLAV ne dépasse pas celle utilisant l’approche LAV. Dans l’approche BAV (Both-As-View) [MP03], les schémas sont transformés de façon incrémentale en leur appliquant une séquence de transformations primitives t1 , t2 , . . . , tn . Chaque ti apporte un changement ∆ sur le schéma en ajoutant, supprimant ou renommant un élément. Les correspondances entre le schéma global et les schémas locaux sont exprimées à l’aide de chemins composés de transformations primitives bi-directionnelles. Une relation g du schéma global peut donc être décrite en fonction d’une relation l d’une source locale par une règle de la forme suivante : g(X) : − tn o tn−1 o . . . o t1 (l(Y )) et inversement, une relation l présente dans une source locale peut être décrite en fonction d’une relation g tirée du schéma global par une règle de la forme : l(Y ) : − t1−1 o t2−1 o . . . o tn−1 (g(X)) Parmi les avantages de cette approche figurent les possibilités offertes par les primitives de transformation pour faire évoluer les schémas locaux et le schéma global. Mais l’inconvénient majeur de la méthodologie BAV réside dans le fait que les schémas intermédiaires rendent le processus d’intégration plus difficile. Cette approche a été utilisée dans le système AutoMed [BKL+ 04]. Enfin, l’approche BGLAV (BYU-Global-Local-As-View)79 [XE04] a pour objectif de combiner l’extensibilité de l’approche LAV et la facilité de réécriture de l’approche GAV. Chaque source est décrite en fonction du schéma global en associant à chaque élément dérivé du schéma de la source, un élément du schéma global. Un élément du schéma global correspond donc à l’union des éléments des sources locales qui lui sont associés : g(X) : − f1 (l1 (X 1 )) g(X) : − f2 (l2 (X 2 )) ... g(X) : − fn (ln (X n )) 79 BYU est l’acronyme de Brigham Young University. 120 où chaque fi est une opération de transformation qui crée à partir d’une relation li une relation dérivée li′ , possédant une correspondance directe avec la relation g appartenant au schéma global. Cette approche a deux avantages principaux : ☞ la réécriture de requêtes est un simple dépliement des correspondances : sa complexité est donc de l’ordre de celle de l’approche GAV. ☞ l’ajout, la modification et la suppression des sources n’ont pas de conséquences sur le schéma global : seules les correspondances de la source concernée avec le schéma cible, qui lui reste fixe, doivent être mises à jour. Les approches d’intégration mettant en oeuvre la médiation de schéma sont très concernées par les problèmes de scalabilité à l’échelle du Web. D’une part parce que la création et la maintenance du schéma global est problématique quand le nombre de sources est variable, mais aussi, comme l’a montré Goasdoué [Goa01], à cause de la complexité de la phase de réécriture des requêtes. 5.2.2 Médiation de contexte La médiation de contexte a été proposée dans le but d’adapter la médiation de schéma à des environnements ouverts et dynamiques tels que le Web, environnement dans lequel l’intégration d’informations issues d’une multitude de sources susceptibles d’évoluer, d’apparaı̂tre, ou de disparaı̂tre à tout moment devient vite irréalisable. La médiation de contexte est caractérisée par une prise en charge automatisée de la sémantique grâce aux mécanismes d’unification ou de réconciliation des contextes. La distinction fondamentale entre une médiation de schémas et une médiation de contextes est que, dans la médiation de contextes, aucune information d’intégration statique n’est nécessaire, les liens entre adaptateurs et médiateurs sont établis dynamiquement lors de la résolution d’une requête. Dans le cas où la sémantique des informations contenues dans les sources est unique, il est donc possible de les comparer directement.Le médiateur peut se contenter de faire appel à une seule ontologie. Si le médiateur intègre des sources décrites chacune à partir d’un univers conceptuel spécifique, il est nécessaire de mettre en place des règles de correspondance sémantique entre les différentes interprétations. Il existe essentiellement deux sous-catégories de systèmes de médiation de contextes : 1. La médiation de contexte à sémantique non-stricte Ces systèmes utilisent des métadonnées (structurées ou non), aux formats disparates et aucune ontologie explicite. Les systèmes à sémantique non-stricte se basent en général sur des calculs de distances sémantiques (le rapprochement sémantique) et la 121 réconciliation de contextes pour intégrer les informations. Ces systèmes retournent des résultats qui peuvent s’avérer non conformes à la requête initiale, en fonction du calcul de distance qui a été opéré par le système. 2. La médiation de contexte à sémantique stricte Ces systèmes utilisent des métadonnées exprimées dans le même format et la même ontologie, ou dans plusieurs ontologies mais avec des liens explicites entre elles permettant leur traduction de l’une à l’autre. L’unification de contextes est le mécanisme utilisé par les systèmes à sémantique stricte ; ce mécanisme utilise des règles de logique formelle pour manipuler les contextes. Ces systèmes retournent des résultats toujours conformes à la requête initiale. Les déductions logiques permettent de s’assurer de la correction des correspondances qui ont été établies. Comme le soulignent Benslimane et al. [BJL+ 99], la médiation de contexte est l’approche qui prend en compte le plus de critères d’interopérabilité. Cependant, elle apparaı̂t comme une solution en partie satisfaisante dans le domaine biologique, où les interprétations peuvent être sujettes à une grande variabilité. De plus, il n’existe pas d’ontologie suffisamment complète qui puisse englober l’ensemble des relations qui existent entre toutes les entités biologiques. Comme l’a montré Garcia-Solaco [GSSC95], la sémantique des données intégrées est de toute façon relative, et il serait illusoire de penser qu’une ontologie universelle résoudrait tous les problèmes, puisque des différences de langue entre les termes subsisteront toujours, et que de nouvelles relations apparaissent sans cesse au gré des progrès de la recherche et de l’évolution des connaissances scientifiques. La médiation de contexte est une approche qui doit donc faire face à deux limitations : ☞ si elle est basée sur une seule ontologie, elle semble difficile à mettre en oeuvre. Vu le degré de disparité des données biologiques sur le Web, utiliser un seul référentiel pour la signification des entités manipulées est difficilement envisageable. ☞ si plusieurs significations des mêmes objets doivent coexister, l’exploitation des liens inter-ontologiques oblige à réaliser de la médiation d’ontologies, ce qui nous ramène aux limitations rencontrées lors de la mise en œuvre de l’intégration de schémas. 5.3 Médiation et réseaux pair à pair Dans un contexte dynamique et à large échelle tel que le Web, la médiation basée sur des réseaux pair à pair à pris ces dernières années une place de plus en plus grande. L’orientation vers ces nouvelles architectures s’explique par le manque de scalabilité du modèle client-serveur n-tiers traditionnel : face aux demandes d’un grand nombre de clients, la charge de calcul devient trop lourde et la bande passante offerte insuffisante. 122 L’idée est donc de répartir les tâches tout en masquant la distribution, la localisation et l’hétérogénéité des sources. Trois typologies différentes coexistent : ☞ non structurée : les pairs sont tous égaux et se découvrent soit par interrogation d’un serveur central, soit par diffusion de la requête de proche en proche. ☞ structurée : comme pour les architectures non structurées, les pairs sont tous égaux, mais une table de hachage distribuée permet de router la requête de proche en proche en un nombre d’étapes qui est logarithmique par rapport au nombre de nœuds. ☞ hybride : les pairs ne sont plus égaux entre eux, et certains se distinguent des autres en devenant de super-pairs, qui gèrent des index sur les données contenues par les pairs. Le P2P, partant du principe que le schéma global s’avère être le goulot d’étranglement des systèmes basés sur l’intégration de vues, le supprime, et permet donc de s’affranchir de sa création et sa maintenance. Mais la qualité de service offerte par les typologies pair à pair et leur capacité à répondre de manière fiable aux requêtes posées est très variable. L’approche non structurée n’offre par exemple aucune garantie quant au temps nécessaire au traitement et à la qualité d’une requête. La traçabilité des éléments constitutifs de la réponse est difficile à conserver, et la diffusion des requêtes à tout ou partie80 des pairs augmente la charge sur le réseau. La localisation des informations pertinentes à l’aide d’une table de hachage distribuée81 dans une typologie structurée est difficile à mettre en oeuvre en biologie, à cause des difficultés à identifier précisément les données proposées par le pair, mais aussi à cause de la limitation qu’entraı̂ne une indexation à l’aide de clés, qui pour être efficace suppose un consensus sur les dénominations utilisées. Enfin, l’approche hybride fait ressurgir les problèmes de robustesse dûs à la centralisation, et l’opacité du regroupement des pairs en grappe selon la proximité de leurs contenus rend difficile l’identification de la provenance des données formant le résultat. Dans le domaine biologique, l’utilisation d’un SGBD pair à pair82 masque trop les spécificités de chaque nœud. Il est difficile d’exprimer des opérateurs complexes entre les données de plusieurs sources, puisque l’un des objectifs des systèmes pair à pair est justement de dissimuler les différences entre les sources. L’organisation en clusters des nœuds du réseau ne résout pas tous les problèmes : l’opacité de la grappe ainsi constituée ne laisse plus apparaı̂tre à l’utilisateur que le schéma unifié exporté par les pairs. 80 Les techniques d’inondation (flooding) peuvent être volontairement restreintes aux noeuds situés à une certaine distance de l’instigateur de la requête. 81 THD. 82 Système de Gestion de Bases de Données pair à pair : Peer Data Management System. 123 5.4 Fédération lâche et langages multi-bases Les approches d’intégration multi-bases [LMR90, HDRK97] ont été proposées afin d’atteindre l’objectif d’interopérabilité entre bases de données à un niveau intermédiaire : chaque utilisateur est libre de définir sa vision unifiée et persistante de l’ensemble des données accessibles, en agglomérant tout ou partie des schémas locaux. Appartenant à la catégorie des approches d’intégration faiblement couplées, un système multi-base considère la fédération à manipuler comme une collection nommée de bases de données autonomes. L’utilisateur connaı̂t l’existence de toutes les sources attachées au système, mais leur localisation précise demeure transparente. Une des caractéristiques des fédérations lâches multi-bases est de ne pas masquer à l’utilisateur les problèmes schématiques et sémantiques, mais de s’appuyer sur un langage suffisamment expressif et qui puisse fournir les primitives qui permettent de les résoudre. Une grande partie des facilités apportées par les langages multi-bases relationnels MSQL [LAZ+ 89] ou MDSL [LA87] ne peuvent pas être adaptées au contexte du Web : en particulier la création et la manipulation de types de données et de relations, ou l’importexport de données entre plusieurs multi-bases. Ceci s’explique par le fait que les sources ne supportent pas l’interrogation de leur contenu selon n’importe quel critère, et qu’elles sont accessibles en lecture uniquement. Un possible accès en écriture ne changerait rien : leurs éloignements respectifs sur le réseau, et l’absence de toute contrainte qualitative quant au temps de réponse rendrait difficile la mise en place d’un protocole de validation à deux phases traditionnel. D’autre part, le fait de se baser sur le langage SQL limite les possibilités d’évolution des requêtes et de restructuration des résultats. Dans le domaine semi-structuré et orienté Web, les travaux de Nachouki et al. [NQC05] proposent un regroupement des schémas des sources et des conflits qui existent entre elles sous la seule arborescence d’une description de l’organisation des sources, définie par une DTD. Cette approche distingue des sources actives et passives, selon que celles-ci proposent ou non des opérateurs en plus de l’accès aux données. Le langage d’interrogation du schéma fédéré ainsi constitué est une extension de XQuery, permettant d’affranchir l’utilisateur de l’écriture de multiples requêtes d’extraction de données sémantiquement liées. Bien que proposant des pistes intéressantes pour le domaine biologique, comme le regroupement thématique des sources, cette solution ne s’accompagne pas d’un algorithme de réécriture qui prenne en compte les limitations d’accès aux sources de données et la composition de services afin de résoudre l’hétérogénéité sémantique. Pour un même ensemble de sources, il existe une multitude de schéma fédérés possibles83 , ce qui pose 83 Puisque l’utilisateur est seul en charge de constituer son schéma, le regroupement des sources est 124 des problèmes quant à la qualité du regroupement : il n’y a pas de critères définis afin de juger de la proximité de deux sources regroupées sous un même nœud. Enfin, l’intégration d’un grand nombre de sources au système produit un schéma fédéré de taille imposante, ce qui peut conduire aux problèmes de désorientation et de surcharge cognitive que nous avions évoquée en Section 2.3 à propos de l’outil d’intégration SRS [EUA96]. 5.5 Une architecture BGLAV basée sur XML et XQuery Proposer un système d’intégration de données biologiques simple à interroger, évolutif, et couplé à un langage de requêtes expressif n’est pas chose aisée dans le domaine du Web. Pour guider nos choix de conception, nous sommes tout d’abord partis d’un double constat, basé d’une part sur les retours d’expérience de nos collaborations avec des biologistes (notamment les problématiques des sources exposées dans l’état de l’art en Partie I, et l’absence de consensus sur la signification des données hébergées), et d’autre part de notre expérience84 dans le domaine de l’intégration de données : nous avons voulu éviter en particulier les écueils existant en intégration de schémas85 , tout en bénéficiant des avantages que peut proposer une telle approche pour la facilité d’expression de requêtes complexes sur des ensembles de données répartis et hétérogènes. Nous nous sommes focalisés sur plusieurs points afin d’offrir un moyen simple pour intégrer des données complexes : ☞ donner aux utilisateurs la possibilité de manipuler une vision unifiée stable des données ☞ prendre en compte les capacités limitées des sources ☞ simplifier la phase de réécriture de requêtes ☞ proposer une solution d’intégration qui soit exploitable sur la majorité des sources de données actuelles À partir des forces et des faiblesses des approches d’intégration exposées dans les Sections 5.2 à 5.4 précédentes, nous nous sommes orientés vers une solution d’intégration de schémas basée sur le modèle BGLAV proposé par Xu et Embley [XE04]. Cette méthodologie de construction d’une vue intégrée des données permet de s’affranchir des limitations classiques rencontrées par l’intégration de schéma, qu’il s’agisse de la phase de réécriture trop complexe, ou de la maintenance difficile du schéma global. totalement subjectif. 84 Nous avions utilisé pour deux de nos prototypes une approche GAV basée sur le modèle relationnel, et une approche GLAV basée sur le modèle XML. 85 Naveen Ashish [HAB+ 05] qualifie la gestion de multiples schémas provenant de sources hétérogènes de chaos schématique (“schema-chaos”). 125 5.5.1 Contributions Le modèle BGLAV a été initialement basé sur le modèle relationnel, et utilisé pour le projet TIQS 86 [Xu03]. Dans ce contexte, les extensions apportées par Xu et Embley à l’algèbre relationnelle ont servi de support à la mise en œuvre de techniques de détection d’équivalences afin de pouvoir spécifier les correspondances entre les schémas sources et le schéma global de façon semi-automatique [XE06, XE03]. Une architecture conçue suivant BGLAV fait bénéficier aux utilisateurs d’un schéma clairement défini, dont les entités manipulées sont identifiées sans ambiguı̈té, tout en réduisant la réécriture de requêtes à un simple dépliement de vues. L’ajout ou la suppression de sources n’est donc plus un problème comme dans le cas de GAV. Nous avons repris et augmenté cette vision alternative de l’intégration de schémas afin de la mettre en œuvre dans le cadre de sources de données biologiques sur le Web. Nos principales contributions se situent au niveau : ☞ de la possibilité pour l’utilisateur de créer sa vision stable et unifiée des éléments qu’il souhaite extraire des sources ☞ de l’utilisation de XML et du langage XQuery afin de simplifier l’expression des requêtes ☞ d’un algorithme de réécriture de requêtes qui prend en compte les limitations d’accès imposées par les sources distantes dans la constitution du plan d’exécution de la requête ☞ de la prise en compte des préférences de l’utilisateur lors de l’union de résultats conflictuels extraits des sources Nous voulons proposer une grande flexibilité quant à la définition du schéma manipulé par l’utilisateur, tout en permettant d’identifier les correspondances entre les sources locales et le schéma cible. Le schéma global est défini indépendamment des sources, et chaque schéma local est associé au schéma global individuellement. Dans un contexte d’intégration sur le Web, tout plaide pour la modularité : selon le modèle BGLAV, si une source locale est ajoutée ou modifiée, il suffit de créer ou modifier les règles de correspondance qui la lient au schéma global. Le schéma global est supposé avoir une certaine stabilité, mais dans le cas où il serait modifié, il suffit d’ajuster les règles concernées par la modification. Le problème de la réécriture de requêtes demeure un problème crucial, qui nécessite dans une première phase de raisonner sur les caractéristiques des sources, et dans une deuxième phase d’analyser les résultats fournis afin de fusionner les réponses locales sans nuire à la qualité de la réponse globale transmise à l’utilisateur. Lors de l’écriture d’une 86 Target-based Integration Query System. 126 requête sur le schéma global, les conflits sont transparents à l’utilisateur, puisqu’ils ont été résolus par les règles de correspondance, mais la phase de réécriture doit malgré tout les prendre en considération afin de les résoudre. Les conflits qu’a à gérer la phase de réécriture peuvent donc être de plusieurs types : ☞ au niveau syntaxique, ils résultent de l’utilisation de modèles de données différents d’un système à l’autre. Des concepts différents sont utilisés pour structurer la même information, au travers d’une relation, d’une classe, ou d’une balise XML. ☞ au niveau schématique, ils résultent d’une structuration et d’une classification différente des informations, et sont liés étroitement aux choix de conception. ☞ au niveau sémantique, ils proviennent des différences d’interprétation des informations partagées entre différents domaines d’application. Plusieurs types de conflits sémantiques peuvent apparaı̂tre : conflits de noms (problèmes taxonomiques et linguistiques), conflits de valeurs (problèmes d’unités ou d’échelles), et conflits cognitifs (signification). Pendant la phase de réconciliation des réponses, quand les données renvoyées par les sources sont conflictuelles, les préférences de l’utilisateur sont prises en compte afin de décider celle qui sera utilisée. Elles peuvent être exprimées de façon simple par des coefficients de qualité attribués par les utilisateurs, comme dans le projet H-KIS [BFL04]. Notre modèle de données est XML. Dans le cas où les sources ne sont pas XML natives, beaucoup aujourd’hui proposent d’exporter les résultats dans ce format, leur adaptation à un format pivot en XML est donc relativement aisée. Si ce type de fonctionnalité n’est pas proposée, des outils tels que XQuare [Odo05] ou Datadirect [CR07] peuvent assurer la phase de traduction du relationnel ou relationnel-objet vers le format XML. Dès 1994, Aberer [Abe94] avait justifié l’utilisation du modèle objet en biologie ; de nos jours, la manipulation de données semi-structurées en biologie présente un grand intérêt puisque les résultats peuvent souvent être incomplets, et qu’un modèle de données XML est très évolutif et auto-descriptif. Notre langage de requêtes est basé sur XQuery : d’une part parce que SQL n’est pas probant dans le cadre de données très évolutives, il est fortement structuré et ne convient pas aux requêtes qui vont générer des réponses contenant beaucoup d’absences de valeur, et d’autre part par l’emploi de plus en plus répandu de XQuery, justifié par la puissance expressive de ce langage, son extensibilité et la facilité d’écriture des requêtes, sans apprentissage préalable compliqué. Nous ne nous occupons pas de l’automatisation de la phase d’appariemment de schémas lors de l’ajout d’une source, ni de la spécification des conflits qui peuvent exister entre les sources, qui l’une et l’autre restent à la charge de l’utilisateur. 127 5.5.2 Travaux liés Ces dernières années, plusieurs pistes de recherche se sont focalisées sur le développement de systèmes d’intégrations plus ou moins faiblement couplés, afin d’assurer scalabilité du système à l’échelle du Web et une plus grande liberté de conception d’une vue intégrée pour l’utilisateur. En plus de celles que nous avons exposées dans le Chapitre 2, l’idée d’architectures d’intégration adaptatives qui permettent l’interrogation de vues personnalisées plutôt que définies de façon statique dans le système avait été évoquée par Liu et Pu dans DIOM87 [LP95]. Cependant, ce projet ne proposait qu’un formulaire HTML pour transmettre les requêtes au médiateur, exprimées en langage IQL88 . Dans le cadre du projet MIX89 [BGL+ 99], inspiré de Tsimmis [GMPQ+ 97], Baru et al. ont proposé une architecture de médiation GAV basée sur le format XML ; l’utilisateur a la charge de définir sa propre vue métier, et les requêtes posées sur le médiateur sont exprimées en langage XMAS90 . Maluf et al. ont présenté dans le cadre du projet NETMARK [MBA05] une architecture alliant la scalabilité à une réduction des coûts de maintenance. Cependant, la structuration des données en un modèle commun qui n’est pas formellement imposée au coeur du système est déplacée côté client, et réalisée à la volée, ce qui alourdit la charge de calcul supportée par les utilisateurs. Or, Halevy [HAB+ 05] a très justement souligné que la simplicité d’utilisation et la rapidité de mise en place sont la plupart du temps inversement proportionnelles à la généralité d’un tel système. Dans le domaine pair à pair, les approches hybrides telles que XPeer [SMGC04] ou MediaPeer [DGY05] agrègent les schémas des pairs en un seul super-pair, afin de faciliter le traitement des requêtes, mais la provenance des résultats n’est plus transparente pour l’utilisateur, ce qui pose des problèmes de traçabilité dans le domaine biologique. Plus spécifiquement consacrés au domaine biologique, les travaux de Rahm sur iFuice [RTA+ 05] et de Kirsten sur BioFuice [KR06] exploitent les références partagées entre les sources pour proposer à l’utilisateur une mise en relation des entités hébergées par les sources, afin d’aboutir à un résultat intégré. Cette approche est intéressante afin de contourner la rigidité des solutions traditionnelles, mais elle suppose une grande qualité au niveau des références croisées proposées. BioMediator [MSTH05] permet à l’utilisateur de construire son propre schéma métier, centré autour des entités et des relations qui intéressent le biologiste. Enfin, le projet 87 Distributed Interoperable Object Model. Query Language. 89 Mediation of Information using XML. 90 XML Matching And Structuring language. 88 Interface 128 INDUS91 [CBP+ 05] privilégie une approche d’intégration GAV utilisant des ontologies dans le but de laisser à l’utilisateur la liberté de composer et d’interpréter selon son point de vue les données stockées dans les sources. 91 INtelligent Data Understanding System. 129 130 6 Réécriture de requêtes biologiques BGLAV Dans ce chapitre, nous présentons notre approche d’intégration de données virtuelle, dans laquelle l’utilisateur est en charge de construire sa vision intégrée à partir de tout ou partie des schémas décrivant les sources du Web qu’il souhaite utiliser. Les sources sont associées individuellement au schéma unifié à l’aide de vues qui les transforment et les relient directement aux éléments du schéma global. Nous détaillons la phase de réécriture de requêtes, qui en plus de la décomposition en termes des sources locales, prend également en compte leurs capacités d’accès limitées afin de générer des plans d’exécution valides. Sommaire 6.1 6.2 Intégration BGLAV de données biologiques . . . . . . . . 132 6.1.1 Exemple illustratif et taxonomie des conflits . . . . . . . . 133 6.1.2 Formalisation du système d’intégration de données . . . . . 138 6.1.3 Identification et correspondance des éléments XML . . . . 140 Décomposition et recomposition des requêtes . . . . . . . 145 6.2.1 Classification des types de requêtes . . . . . . . . . . . . . 148 6.2.2 Algorithme de réécriture BGLAV adapté aux sources Web 6.2.3 Extensibilité du système . . . . . . . . . . . . . . . . . . . 156 150 6.3 Prototypage, tests et performances . . . . . . . . . . . . . 156 6.4 Application sur des données biologiques 6.4.1 . . . . . . . . . . 157 Intégration de données tirées de la base Ensembl . . . . . . 158 6.5 Conclusion et ouvertures . . . . . . . . . . . . . . . . . . . . 165 1 Résumé des contributions . . . . . . . . . . . . . . . . . . . 167 2 Ouverture et pistes de recherche . . . . . . . . . . . . . . . 168 131 Pour intégrer et créer des connaissances à partir des données biologiques, Brenton Louie et al. [LMMS+ 07] ont classé les défis à relever en deux grandes catégories : la représentation des connaissances et la mise en relation d’ensembles de données hétérogènes. Bien que la plupart des problèmes d’intégration trouvent leur place dans la seconde catégorie, les auteurs concluent leur étude détaillée par deux constats : aucune solution à l’heure actuelle ne couvre les besoins exprimés par les plus grands domaines de recherche biologique92 , et il reste de nombreux défis à relever (comme nous l’avons vu en Section 5.5) avant de proposer aux biologistes une méthode simple pour exprimer des requêtes complexes. 6.1 Intégration BGLAV de données biologiques Précisons une dernière fois le contexte dans lequel se situent ces travaux : notre objectif n’est pas de proposer une intégration à grande échelle93 (même si nous nous sommes attardés sur la scalabilité du projet), ni d’intégrer massivement des données volumineuses94 . Nous nous plaçons dans l’hypothèse d’un nombre variable mais modéré de sources (50 sources intégrées peut être considéré comme une marge haute raisonnable), qui concernent un domaine d’intérêt précis95 . Nous ciblons les utilisateurs souhaitant principalement poser des requêtes de sélection, de projection et de jointure sur ces sources. Afin de répondre à cette attente, nous avons opté pour une solution d’intégration de données virtuelle puisque plusieurs conditions sont réunies dans le contexte de nos travaux : ☞ les sources sont mises à jour fréquemment ☞ il est impossible de prédire les requêtes de l’utilisateur Dans le domaine biologique, afin de répondre aux contraintes imposées par les sources, une approche d’intégration mixte telle que BGLAV96 est une solution adaptée. La pierre angulaire de ce système, tirant parti de GAV et LAV, repose sur le schéma global défini par l’utilisateur, et les règles de correspondance et de transformation associant individuellement les schémas locaux au schéma global. Nous allons voir au travers d’un exemple comment sont construites ces correspondances, puis nous donnerons une définition formelle de notre système d’intégration. 92 Génétique, pharmacogénétique, puces à ADN, conception de médicaments, suivi médical personnalisé. Les projets qui mettent en œuvre des réseaux de pairs ou des grilles de calcul se focalisent déjà sur ce problème précis. 94 Ce sont des entrepôts de données qui sont à considérer dans ce cas là. 95 Dans le cadre du projet ST X [ABFS02], Amann et al. ont souligné que cette condition est cruciale Y pour le déploiement réussi d’un système d’intégration. 96 BYU(Brigham Young University)-Global-Local-As-View. 93 132 6.1.1 Exemple illustratif et taxonomie des conflits Considérons les schémas XML présentés en Figure 6.1. Ils représentent le schéma exporté par un ensemble de sources distantes, et constituent donc une vue sur les données hébergées par les bases de données sous-jacentes. Notre format pivot est XML, mais les données peuvent également être stockées sous la forme de fichiers plats, ou de bases de données relationnelles : nous supposons qu’une vue semi-structurée des données peut être obtenue à partir de n’importe lequel de ces formats à l’aide d’outils de transformation dédiés 97 . Sur la Figure 6.1, les schémas S1 et S2 correspondent à des sources fournissant des données génomiques. Les schémas S3 et S4 informent respectivement sur des données relatives aux protéines et aux variations de paires de bases, les SNP98 . Enfin, S5 et S6 sont des sources de données bibliographiques, qui permettent respectivement d’obtenir des informations sur les publications relatives à un gène dans des conférences ou des journaux. Les schémas des sources sont structurés de façon plus ou moins complexe selon la profondeur de l’arborescence, et le nombre de nœuds fils associés à un nœud père. Ce que nous pouvons constater en observant les schémas XML qui définissent ces sources, c’est avant tout qu’ils présentent des similitudes, mais qu’en même temps de nombreuses contradictions existent dans la façon dont sont représentées les données similaires : ☞ au niveau des hiérarchies XML, avec par exemple, une date dans S1 qui correspond à la concaténation des 3 champs jour, mois et année dans S2 ☞ au niveau de l’utilisation d’unités de mesure différentes, la longueur dans S1 est exprimée en nombre de codons, alors qu’elle est exprimée en nombre de nucléotides⋆ dans S2 Supposons que nous ayons à associer ces sources au schéma global représenté en Figure 6.2. Ce schéma constitue une vue unifiée des données que souhaite intégrer le biologiste, centrée autour des séquences ADN. Les informations concernant les séquences protéiques, les références des publications et les polymorphismes y sont également partiellement représentées. Le schéma global, défini indépendamment des sources, représente le schéma métier sur lequel le biologiste souhaite poser ses requêtes. Celui qui le définit est donc seul responsable du choix de structuration des données ; dans le cadre de notre exemple, une 97 Halevy [Lev00] avait souligné que le format XML réduirait sensiblement les problèmes de construction d’adaptateurs : “Clearly, the emergence of XML as a standard for data exchange on the WWW will alleviate much of the wrapper building problem”. Bien que XML ne puisse résoudre à lui seul tous les problèmes d’adaptation et d’extraction des données, son utilisation a, il est vrai, nettement facilité les échanges. 98 Single Nucleotide Polymorphisms. 133 S1 brins S2 liste gènes adn∗ id gène∗ date seq brin nom citations∗ prot id journal num brin refs longueur chr article séquence journal∗ date seq séquence longueur chr snps jour snp id∗ mois S4 S3 nom num id séquence longueur chr date localisation seq longueur séquence orig fréquence pop séquence mut num S5 S6 publications id gene nom snp∗ protéine∗ date art année variations protéines identifiant conf∗ journal∗ conférence∗ année publications article+ nom titre numéro auteur+ nom gene id titre article+ titre prénom auteur+ nom prénom Fig. 6.1 – Schémas exportés par les sources distantes 134 papier date dans le schéma global sera représentée par la concaténation du jour, du mois, et de l’année : la correspondance est donc directe entre les dates de S1 et SG , mais une étape de transformation sera nécessaire pour apparier celles de S2 et SG . séquences SG séquence adn∗ protéine id contenu num chr id longueur snps∗ date seq snp id freq publis journal∗ nom article num titre auteurs conférence∗ nom article année titre auteurs Fig. 6.2 – Schéma global sur lequel vont s’apparier les sources locales Nous avons donc d’un côté les schémas des sources locales, et de l’autre côté un schéma unique défini par l’utilisateur. Toute la difficulté de mise en place d’un solution de médiation BGLAV va désormais consister à mettre en relation les schémas sources et le schéma cible, tout en résolvant les conflits existants avec les sources locales, afin de décharger l’utilisateur d’une phase de réconciliation des réponses par trop exigeante. Les conflits que nous considérons sont identiques à ceux d’une taxonomie définie par Lee [LBGR99], et détaillée en Figure 6.3. À titre d’exemple, plusieurs conflits entre les éléments des schémas décrivant les sources S1 , S2 , S4 et S5 et le schéma intégré SG sont listés selon leur type dans le Tableau 6.1 : nous définissons un conflit comme une absence de correspondance directe entre les feuilles de deux sous-arbres appartenant chacun à un schéma. Source Csi CG Conflit S1 S2 S2 S4 S5 /brins/adn/brin/chr /séquence_adn/contenu/num_chr /liste_gènes/gène/brin/date_seq /séquence_adn/contenu/date_seq /liste_gènes/gène/brin/longueur /séquence_adn/contenu/longueur /variations/snp/localisation/num /séquence_adn/publis/journal/num /publication/conférence/année /séquence_adn/publis/conférence/année nommage agrégation échelle confusion intentionnel Tab. 6.1 – Conflits entre les schémas XML locaux et globaux Ces conflits doivent être résolus lors de la définition des correspondances entre les sources et le schéma métier. En effet, la phase la plus importante lors de la construction 135 Conflits de données Conflits sémantiques Conflits de nommage Conflits de graduation ou d’échelle Conflits confondants Conflits schématiques Conflits de types Conflits de labels Conflits d’agrégation Conflits de généralisation Conflits de intentionnels Conflits de domaines Conflits de contraintes d’intégrité Fig. 6.3 – Taxonomie des conflits entre schémas locaux et schéma global d’un système d’intégration basé sur BGLAV repose sur la définition des associations entre les schémas locaux et le schéma global. Dans le cadre de notre exemple, cette phase consiste à établir des relations entre les éléments des sources Si,i∈[1;6] et la source virtuelle SG . Etablir ces règles de correspondance se fait isolément pour chacune des sources. Cette méthodologie de construction des correspondances présente deux avantages : ☞ chaque règle résout les hétérogénéités entre un élément d’un schéma local et son correspondant global ☞ la reformulation des requêtes posées sur le schéma global se ramène à une simple transformation de vues Notre approche se base sur le langage XML pour représenter les données, et sur le langage XQuery pour les interroger. Nous avons donc décidé de profiter de la puissance expressive de ce langage de requêtes afin de spécifier les règles de correspondance. Ces règles définies en langage XQuery, que nous appellerons requêtes de correspondance, seront ou non accompagnées d’un ensemble de contraintes spécifiées en clause WHERE, et destinées à préciser les correspondances entre sous-arbres XML locaux et globaux. La Figure 6.4 détaille la requête associant une date de séquençage dans la source S2 à une date de séquençage dans le schéma global SG , et une longueur de séquence dans la source S1 à une longueur de séquence dans le schéma global SG . Pour chacune des sources de données distantes, un ensemble de requêtes de correspondance associe les éléments sélectionnés dans la source à certains éléments du schéma global. Ces requêtes sont substituées pendant la phase de réécriture aux éléments du schéma global demandés par l’utilisateur. Les requêtes de correspondance ne prennent pas en compte l’intégration horizontale : chaque élément des sources est transformé et 136 1 2 3 4 5 6 7 8 9 10 11 12 13 ( : Règle de c o r r e s p o n d a n c e e n t r e l e s d a t e s d es schémas S2 e t SG : ) <date seq> f o r $x i n c o l l e c t i o n ( ’ S2 ’ )/ l i s t e g è n e s / gène / b r i n / d a t e s e q r e t u r n c o n c a t ( $x/ j o u r , ’ / ’ , $x/ mois , ’ / ’ , $x/ année ) </ date seq> ( : Règle de c o r r e s p o n d a n c e e n t r e l e s l o n g u e u r s dans S1 e t SG : ) <longueur> f o r $x i n c o l l e c t i o n ( ’ S1 ’ )/ l i s t e g è n e s / gène / b r i n / l o n g u e u r r e t u r n $x /3 </longueur> Fig. 6.4 – Expression de correspondances avec XQuery associé à son correspondant dans le schéma global, de façon isolée pour chacun des schémas locaux. L’intégration verticale est quant à elle réalisée lors de la fusion des résultats extraits des sources. La définition préalable d’un schéma global permet de spécifier clairement les entités qui intéressent le biologiste, et ainsi faciliter l’expression des requêtes. Les requêtes de correspondance individuelles résolvent les problèmes de disparition des sources, et évitent une perte d’information. Si nous considérons un schéma global construit selon l’approche GAV, dans lequel l’un des éléments serait le résultat d’une jointure entre des éléments de plusieurs schémas locaux, l’absence de l’une des sources impliquées dans la jointure invalide de fait l’exécution d’une requête portant sur l’élément. Cet écueil est évité en suivant une approche d’intégration BGLAV. Si nous considérons maintenant un schéma global construit selon l’approche LAV, le temps de traitement nécessaire aux requêtes peut être prohibitif99 : le dépliement de vues utilisé dans BGLAV réduit la complexité de la phase de réécriture, et diminue de fait le temps nécessaire à son exécution100 . Sur le Web, un problème d’accès aux données existe : chaque source a des points d’entrée, qui doivent être valués lors de l’accès aux sources, que cet accès soit direct ou se fasse au travers d’adaptateurs [Lac01]. Ces limitations d’accès aux données ont 99 L’algorithme Bucket [LRO96b] par exemple, à partir d’une requête sur le schéma global, crée un tas pour chaque sous-but de cette requête, chacun d’eux contenant les sources à partir desquelles les éléments de ce sous-but peuvent être extraits, puis considère toutes les combinaisons possibles des sources. Pour chaque réécriture candidate obtenue, le test d’inclusion dans la requête initiale est π2p -complet. 100 Le coût de l’exécution d’une requête dans un système d’intégration que nous évoquons ici ne prend pas en compte les éventuels délais de transfert imprévisibles soulignés par Levy [Lev00]. 137 servi de socle à nos travaux présentés dans la seconde partie de ce mémoire, et doivent à nouveau être prises en compte dans ce contexte de médiation, sous peine de rendre impossible la résolution d’une requête posée par l’utilisateur. En effet, la nécessité de fournir impérativement certaines valeurs impose que la phase de décomposition de la requête s’assure que pour chaque source qui sera accédée, ses patterns d’accès soient satisfaits. Au niveau d’un schéma XML, imposer de connaı̂tre la valeur de certains nœuds afin d’obtenir celle d’un ensemble d’autres nœuds instaure une relation de dépendance fonctionnelle entre éléments du document. L’algorithme de réécriture que nous proposons a donc la charge d’organiser les requêtes afin de satisfaire toutes les dépendances fonctionnelles nécessaires pour que le plan de requêtes obtenu après décomposition de la requête posée sur le schéma global puisse s’exécuter effectivement. Nous allons maintenant définir formellement la représentation BGLAV du système d’intégration exposé au travers de l’exemple précédent, pour ensuite nous intéresser précisément aux problèmes posés par l’hétérogénéité sémantique, le déroulement de la phase de réécriture, et la fusion des résultats obtenus. 6.1.2 Formalisation du système d’intégration de données Notre système d’intégration de données est composé d’un schéma global spécifié par l’utilisateur, d’un ensemble de schémas exportés par les sources, et des requêtes de correspondance entre les schémas locaux et le schéma global. Formellement, il peut être défini de la façon suivante : Définition 6.1.1 (Système d’intégration de données) Un système d’intégration de données est constitué d’un triplet I= hG , {Si}, {Mi}i, i ∈ N, 1 ≤ i ≤ n, où respectivement : G est le schéma global défini par l’utilisateur {Si } est un ensemble de schémas sources chaque Mi est un ensemble de requêtes de correspondances entre Si et G Les requêtes de correspondance entre schémas locaux et global sont importantes. Nous en donnons la définition suivante : 138 Définition 6.1.2 (Requête de correspondance) Soient un schéma local Sl , et un schéma global G . Soient TSl et TG deux sous-arbres appartenant respectivement à Sl et G . Une requête de correspondance R est un ensemble d’opérations de transformation appliquées à TSl et produisant un arbre T ′ Sl , dont les feuilles sont en correspondance directe avec celles de TG . Pour un élément donné du schéma global, les requêtes de correspondance peuvent être considérées comme des fonctions surjectives qui associent un élément local à cet élément global. Les requêtes de correspondance reprennent tout en l’augmentant le principe des règles de correspondance de chemins XPath utilisées dans Xyleme [CVV01], mais en établissant cette fois-ci des correspondances entre arbres. L’application de toutes les requêtes de correspondance sur un schéma source produit en résultat un schéma dérivé, dont les feuilles peuvent être associées directement au schéma global : Définition 6.1.3 (Schéma dérivé d’une source) Soit un schéma local Sl et Ml l’ensemble de requêtes de correspondance associant Sl au schéma global défini par l’utilisateur. L’application des requêtes Ml sur le schéma local produit un schéma dérivé, noté Vl , pour lequel les conflits syntaxiques et sémantiques sont résolus, et dont les éléments transformés sont en correspondance directe avec le schéma global. Etablir des correspondances entre les schémas dérivés des sources et le schéma global induit un ensemble de dépendances d’inclusion, dont nous précisons la définition cidessous : Définition 6.1.4 (Dépendance d’inclusion) Soit {Vi,i∈[1;n]} l’ensemble des schémas dérivés des sources et G le schéma global. Pour chaque sous-arbre du schéma global TG correspondant à un ou plusieurs sous-arbres locaux Ti, j , les instances de ces sous-arbres vérifient une dépendance d’inclusion telle que ∀ i ∈ [1; n], I(Ti, j ) ⊆ I(TG ). Les dépendances d’inclusion suivent l’hypothèse du monde ouvert, puisque chaque élément du schéma global est associé à un ou plusieurs éléments extraits de schémas locaux, qui chacun fournissent une partie de l’ensemble des instances attendues. 139 6.1.3 Identification et correspondance des éléments XML Répondre à des requêtes à l’aide d’un moteur de médiation BGLAV intégrant des sources du Web suppose dans notre cas d’identifier précisément deux types de nœuds au niveau des schémas locaux : ☞ d’une part ceux pour lesquels il est nécessaire de fournir impérativement une valeur afin que l’exécution de la requête transmise à la source soit effective ☞ d’autre part ceux utilisés pour identifier précisément les éléments intégrés, ce qui est indispensable lors de la phase de construction de la réponse, afin d’éliminer les doublons inutiles et identifier les données conflictuelles Ces deux types de nœuds peuvent être totalement distincts, ou se confondre dans certains cas. À titre d’exemple, une recherche d’information d’après la date de découverte d’un gène ne permet pas d’identifier de façon unique le gène concerné, alors que la connaissance de son identifiant le permet. 6.1.3.1 Restrictions d’accès et valuation obligatoire de nœuds Dans un système de médiation de données du Web, l’analyse d’une source en vue de son rattachement au système doit prendre en compte ses restrictions d’accès. Dans notre approche, les sources distantes sont vues par le médiateur comme un schéma XML exporté : nous avons fait le choix de considérer les restrictions d’accès comme les nœuds du schéma dont la valuation est obligatoire, quelle que soit la syntaxe du langage de requêtes utilisé. Il découlera donc de cet impératif une restriction sur la structure des requêtes que pourra traiter la source. Considérons la base de données S1 définie précédemment. Les nœuds pour lesquels il est impératif de fournir une valeur sont indiqués en caractères gras sur la Figure 6.5. S1 brins adn∗ id date seq brin prot id citations∗ journal num article séquence longueur chr snps snp id∗ Fig. 6.5 – Nœuds XML à valuation obligatoire 140 Plus précisément, des combinaisons à l’aide d’opérateurs logiques peuvent exister entre les différents paramètres à valuer, comme nous l’avons détaillé en Partie II. Dans le cas de la source S1 , il s’agit de la combinaison entre les éléments date seq ou journal et num. Dans le cadre du projet Information Manifold [KLSS95], Levy a proposé des enregistrements des capacités des sources, associés aux données relationnelles. Dans notre contexte semi-structuré, nous avons choisi de spécifier les capacités comme une disjonction de conjonctions (éventuellement imbriquées) d’expressions de chemins XPath, dont nous donnons la définition suivante : Définition 6.1.5 (Restriction d’accès à une source) Soit un schéma S décrivant le contenu d’une source locale. Les restrictions d’acS cès à cette source sont représentées par un ensemble R = nj=1 C j , où chacun des C j est un ensemble de chemins vers les nœuds du document XML qui doivent être valués de façon simultanée pour qu’une requête puisse être traitée par la source locale. Si nous appliquons cette définition à la source S1 de notre exemple, nous obtenons : R = {[/brins/adn/date seq], [/brins/adn/citations/journal, /brins/adn/citations/num]}. Nous considérons que si aucune restriction n’est précisée, une source pourra être interrogée suivant n’importe quel critère. Dans le cas contraire, la phase de réécriture doit s’assurer que la requête transmise à la source distante affecte bien une valeur aux nœuds qui requièrent une valuation. En pratique, ceci signifie qu’une requête XQuery transmise à la source S1 doit contenir une affectation pour l’un au moins des ensembles de chemins de l’ensemble R . Il faut noter que les restrictions imposées par le concepteur ou l’administrateur d’une source sur son contenu ne peuvent pas forcément aider à déterminer de façon unique les éléments qui en sont extraits. Ainsi dans la source S1 , la valuation des nœuds journal et num ne détermine pas sans ambiguı̈té la valeur des nœuds de l’élément citation, contrairement au nœud id qui peut être utilisé comme clef de l’élément adn. Ajoutons que pour déterminer sans ambiguı̈té un élément citation contenu dans le document, il est nécessaire de connaı̂tre non seulement sa clef article, mais aussi celle de l’élément qui l’englobe directement, c’est à dire l’élément id, qui est la clef de adn. 6.1.3.2 Clefs d’un schéma XML Avant de définir la notion de clefs dans les schémas XML, nous devons rappeller ce que sont les dépendances fonctionnelles entre nœuds d’un document, qui ont été abordées notamment dans les travaux d’Arenas et Libkin [AL04]101 , et ceux de Vincent et Liu 101 Les documents XML sont mis sous forme normale XNF (XML Normal Form), qui généralise la forme normale BCNF au modèle semi-structuré. 141 [VLL04]102 . En règle générale, il existe une dépendance fonctionnelle entre deux nœuds d’un document XML si la connaissance de la valeur du premier détermine de façon précise la valeur du second. Les nœuds d’un document XML appelés nœuds cibles sont alors en dépendance fonctionnelle avec le(s) nœud(s) faisant office de clef et appelés nœuds sources. Ceci nous amène à aborder de façon précise l’identification des éléments d’un document XML. Depuis les travaux de Fang [FHM91] sur les systèmes multi-bases, jusqu’au développement des architectures de médiation, identifier précisément les éléments intégrés a été une préoccupation de premier ordre ; dans le projet Tsimmis [GMPQ+ 97] par exemple, des spécifications exprimées dans le langage MSL103 [PGMU96] définissent des identifiants sémantiques, utilisés lors de la fusion des données. Dans le cadre de notre système de médiation BGLAV, nous devons considérer des clefs présentes à la fois dans les schémas locaux et le schéma global104 . Nous appellerons clefs locales les clefs qui identifient de façon précise les données dans chaque source, et clefs globales celles utilisées afin de distinguer les éléments du schéma métier les uns des autres. De la même façon que les requêtes de correspondance définies précédemment associent un élément d’un schéma local à un élément du schéma global, elles associent également certains éléments locaux à une clef du schéma global. Nous allons dans un premier temps présenter les règles qui définissent une clef, puis nous préciserons comment ces règles sont utilisées par notre système de médiation BGLAV pendant la phase de réécriture de requêtes. S1 brins adn∗ id date seq brin prot id citations∗ journal séquence num article longueur chr snps snp id∗ Fig. 6.6 – Exemples de clefs des éléments d’un schéma XML (en gras) 102 Les dépendances fonctionnelles modélisées sous la forme de documents XFD sont utilisées afin d’obtenir un document XML sous forme normale (XNF). 103 Mediator Specification Language. 104 Les spécifications XML Schema permettent de spécifier des contraintes de clef ou d’unicité à l’aide des balises key et unique. 142 La définition de clef d’un élément XML présentée ci-dessous suit celle proposée dans les travaux de Buneman [BDF+ 03], et déjà utilisée dans le cadre du projet d’intégration de données géographiques VirGIS [EBB06]. La spécification de clef que nous utilisons permet de définir une clef pour chaque nœud d’un document XML. Les opérateurs =v et 6=v signifient respectivement l’égalité et la différence entre les valeurs des nœuds du document. Définition 6.1.6 (Spécification de clef dans un schéma XML) Dans un document XML, un nœud n satisfait une spécification de clef notée K = (Q, {P1, P2 , ..., Pk }), où Q est un chemin partant de la racine du document jusqu’au nœud n, et {P1 , P2 , ..., Pk} est l’ensemble des chemins partant de Q, si pour la même spécification de clef K, ∄ n′ , Q/n′ =v Q/n, pour lequel ∃ i ∈ [1; k], Pin 6=v Pin′ . La clef d’un élément XML e s’écrira Ke = (Q, {e1, ..., en}), où Q est le chemin partant de la racine du document jusqu’à l’élément e, et {e1 , ..., en} l’ensemble des éléments composant la clef. Cette définition peut être étendue de façon directe à un ensemble de nœuds N , dans le cas où la clef serait composite. Toujours dans le cadre de la source S1 donnée en exemple, nous pouvons donc écrire que le nœud id vérifie la spécification de clef K = (/brins/adn, {id}). La clef de l’élément adn s’écrira Kadn = (/brins/adn, {id}). De la même façon, le nœud article vérifie la spécification de clef K = (/brins/adn/citations, {journal,num,article}). La clef de l’élément citations s’écrira Kcitations = (/brins/adn/citations, {article}), puisque le titre de l’article détermine précisément la citation, contrairement au nom du journal et son numéro qui ne le permettent pas. Il peut y avoir plusieurs clefs dans un document XML, en fonction de l’élément et du niveau de profondeur considéré dans le document. De la spécification d’une clef dans un document XML découle directement celle de clef relative, puisque l’imbrication des éléments induit une relation hiérarchique entre les différentes clefs présentes dans le document : Définition 6.1.7 (Clef relative dans un schéma XML) Soit un chemin Q à partir de la racine du document,et K une spécification de clef dans ce document. Une clef K ′ = (Q, K) est une clef relative dans ce document si les nœuds de chemin Q satisfont la spécification de clef K. Dans la source S1 , nous pouvons par exemple définir les clefs relatives : = (/, (/brins, {})), ′ Kbrins 143 ′ Kadn = (/brins/adn, (/brins/adn, {id})), ′ Kcitations = (/brins/adn, (/citations, {journal, num})). Lorsque l’ensemble de chemins d’une clef est vide (noté par des accolades {}), cela signifie que l’élément qui vérifie cette spécification de clef doit être unique : c’est le cas de l’élément brins dans la source S1 . Afin d’identifier précisément un élément dans un document XML, il est nécessaire de connaı̂tre toutes les clefs des éléments qui composent la hiérarchie du document depuis sa racine jusqu’à l’élément considéré ; en effet, un document peut sans problème contenir deux éléments possédant des clefs de valeur identique, à partir du moment où ils sont englobés par des éléments dont les clefs ont des valeurs différentes. La hiérarchie qui existe entre les clefs d’un document XML situées à des profondeurs différentes nécessite donc de définir précisément la notion de précédence entre deux clefs relatives : Définition 6.1.8 (Précédence et succession de clefs) Une clef relative K1 = (Q1 , (Q′1 , S1 )) précède la clef K2 = (Q2 , (Q′2, S2 ), si leurs chemins respectifs verifient Q2 = Q1 /Q′1 . La précédence de la clef K1 par rapport p à la clef K2 sera notée K1 → K2 . De la définition 6.1.8 précédente découle celle de la transitivité d’un ensemble de clefs : Définition 6.1.9 (Transitivité des clefs) Un ensemble de clefs relatives C est transitif, si ∀ K ∈ C , ∃ K ′ ∈ C telle que p K ′ → K. Les clefs des éléments XML sont utiles au médiateur lors de l’intégration des résultats extraits des sources, afin d’une part d’identifier précisément les données, et éventuellement compléter les résultats partiels, en utilisant les clefs lors de la jointure entre l’élément incomplet et une source susceptible de fournir les données manquantes. 6.1.3.3 Association entre requêtes de correspondance et clefs XML Maintenant que nous avons définit ce qu’est une requête de correspondance interschémas et ce qu’est une clef d’un élément XML, nous allons lier ces deux notions à l’aide d’une définition qui impose des contraintes sur la formulation des requêtes de correspondance utilisées par notre médiateur : 144 Définition 6.1.10 (Requête de correspondance valide) Pour tout ensemble Mi,i∈[1;n] d’un système d’intégration I, la requête de correspondance entre un élément el d’un schéma local et un élément eg du schéma global sera valide si elle transforme un ou plusieurs nœud fils de el en la clef de eg . Nous ne considèrerons plus désormais que des requêtes de correspondance valides entre les schémas locaux et le schéma global. Dans notre architecture de médiation, nous avons donc d’un côté les requêtes de correspondance valides qui sont définies intentionnellement, c’est à dire au niveau des schémas, et de l’autre les correspondances au niveau extensionnel, c’est à dire au niveau des données intégrées, qui seront vérifiées lors de la phase de fusion des résultats extraits des sources. Entre les deux, la décomposition de la requête posée sur le schéma global puis la recomposition des résultats extraits des sources vont s’appuyer à la fois sur la description des limitations d’accès et sur les clefs des éléments XML afin d’assurer l’exécution de la requête, puis éliminer les doublons du résultat intégré. 6.2 Décomposition et recomposition des requêtes Dans les sections précédentes, nous avons tout d’abord défini formellement le système d’intégration, puis les correspondances établies entre les schémas locaux et le schéma global. Nous allons nous attacher dans cette section à présenter les procédures mises en œuvre par le système pour répondre aux requêtes posées par l’utilisateur. Nous nous intéressons dans le cadre de nos travaux uniquement à des requêtes conjonctives sur l’ensemble des éléments contenus dans le schéma global. Ces requêtes contiennent des opérations de sélection, de projection, et de jointure105 , dont nous donnons la définition formelle ci-dessous : 105 De type équi-jointure ou théta-jointure. 145 Définition 6.2.1 (Requête sur le schéma global) Une requête Q sur le schéma global est représentée par une règle de la forme Q(T ) : − T1 , T2 , . . . , T p , CQ , où respectivement : G • les Ti,i∈[1;p] sont des sous-arbres du schéma XML global, vérifiant : ∄ i, ∄ j ∈ [1; p], i 6= j, Ti est un sous-arbre de T j • CQ est un ensemble de conditions de la forme : Sp f (a) Θ g(b), où a et b ⊆ i=1 Ti et f et g sont des fonctions du langage de requêtes (y compris l’identité), ou Sp f (a) Θ c, où a ⊆ i=1 Ti , c est une valeur atomique et f est une fonction du langage de requêtes (y compris l’identité), et Θ ∈ {=, 6=, <, >, ≤, ≥} L’ensemble de conditions CQ sera traité de deux façons différentes selon que la partie gauche et la partie droite d’une condition peuvent être extraits ou non de la même source distante : ☞ si une contrainte dans CQ porte sur deux éléments a et b contenus dans la même source, la condition sera intégrée à la requête envoyée à la source ☞ si au contraire, les éléments liés par la condition font partie de deux sources différentes, les données seront rapatriées localement, puis la comparaison sera effectuée par le médiateur Les restrictions que nous avons imposées à la Définition 6.2.1 sur le format des types de requêtes qui peuvent être posées sur le schéma global sont moins importantes que celles d’autres projets d’intégration XML tels que le projet STY X [FABS02] : la clause WHERE de nos requêtes n’est par exemple pas uniquement constituée de simples prédicats comparés à une valeur atomique. Les requêtes posées sur le schéma global vont devoir être réécrites en termes des sources locales, mais ces dernières peuvent ne pas être capables de répondre à des requêtes arbitraires sur leur contenu, à cause des restrictions d’accès qui existent. La phase de réécriture va donc prendre en compte ces limitations, afin de s’assurer que la décomposition de la requête soit exécutable et conforme à la requête posée par l’utilisateur. Avant d’aborder la présentation de l’algorithme associé à notre médiateur BGLAV, nous allons préciser quelques-unes des définitions relatives au domaine de la réécriture de requêtes, qui seront utilisées dans les sections suivantes. 146 Définition 6.2.2 (Inclusion de requêtes) Une requête Q1 est incluse dans une requête Q2 , notée Q1 ⊑ Q2 , si pour toute base de données D, l’ensemble de tuples renvoyés par la requête Q1 est un sousensemble des tuples renvoyés par la requête Q2 , noté Q1 (D) ⊆ Q2 (D). Découlant directement de la définition précédente, nous pouvons écrire la définition de l’équivalence de deux requêtes : Définition 6.2.3 (Equivalence de requêtes) Deux requêtes Q1 et Q2 sont équivalentes si elles vérifient Q1 ⊑ Q2 et Q2 ⊑ Q1 . De façon générale, la requête posée sur le schéma global n’est pas celle qui sera effectivement exécutée par le système, car même dans les cas simples où elle ne porte que sur une entité extraite d’une seule source, l’équivalence entre la requête posée et celle réécrite peut ne pas être exacte. Ceci est causé par la présence de contraintes spécifiques aux données dans chaque source ; ainsi, la requête “quels sont les identifiants des séquences dont la date de séquençage est postérieure au 01/01/2003 ? ” posée sur le schéma SG en Figure 6.2, bien que formulée à l’identique, n’aura pas d’équivalent exact sur S1 , si cette source ne contient que des séquences postérieures au 01/01/2005. Néanmoins, ce sous-ensemble des instances attendues ne contredit pas la contrainte de date spécifiée par l’utilisateur, et sera donc tout de même pertinent. Dans les cas plus complexes, le médiateur produit puis exécute une réécriture équivalente à la requête initiale, dont nous donnons la définition suivante : Définition 6.2.4 (Equivalence de réécritures) Soient une requête Q et un ensemble de requêtes de correspondance {Mi }. ′ Une requête Q est une réécriture équivalente de Q suivant {Mi } si : Q′ est exprimée uniquement en fonction des requêtes de correspondance Q′ est équivalente à Q Alors que l’équivalence de requêtes est plutôt utilisée dans une optique d’optimisation des requêtes, dans un contexte d’intégration de données, il est plus fréquemment question de réécriture maximalement incluse, puisqu’une stricte équivalence est plus difficile à obtenir, tant à cause de l’incomplétude des sources que des spécificités des données évoquées au paragraphe précédent : 147 Définition 6.2.5 (Réécriture maximalement incluse) Soient une requête Q définie dans un langage L et un ensemble de requêtes de correspondance {Mi }. Une requête Q′ est une réécriture maximalement incluse de Q si : Q′ est une requête exprimée dans le langage L en fonction de {Mi } Q′ est incluse dans Q ∄ de réécriture Q′′ exprimée dans le langage L vérifiant Q′ ⊑ Q′′ ⊑ Q et Q′′ 6⊑ Q′ Usuellement, un médiateur doit reformuler la requête posée sur le schéma qu’il présente à l’utilisateur, tout en atteignant deux objectifs106 : ☞ d’une part la reformulation doit apporter une réponse correcte à la requête initiale ☞ d’autre part les réponses extraites des sources doivent être complètes, c’est à dire identiques à ce qu’il aurait été possible d’extraire si le schéma global était une seule et unique source de données Sur le Web, la seconde condition ne peut en général pas être satisfaite, puisque des restrictions d’accès limitent les capacités des sources à traiter des requêtes arbitraires sur leur contenu. Suivant notre approche basée sur une construction de schéma global BGLAV, les types de requêtes que devra être capable de traiter notre médiateur peuvent être distinguées en fonction des correspondances qui existent entre les éléments demandés dans la requête et les sources locales. 6.2.1 Classification des types de requêtes D’après la méthodologie de construction du schéma global suivant l’approche BGLAV, nous sommes confrontés à plusieurs types de requêtes, selon qu’un sous-arbre Ti,i∈[1;p] contenu dans le schéma global, et demandé dans la requête Q(TG ), est respectivement couvert : ☞ totalement par plusieurs sous-arbres appartenant aux schémas dérivés des sources ☞ partiellement par certains sous-arbres dérivés et totalement par d’autres ☞ partiellement par plusieurs sous-arbres dérivés La Figure 6.7 détaille les trois possibilités précédentes en s’appuyant sur notre exemple illustratif basé sur le schéma SG et les schémas des sources Si,i∈[1;6]. Elles correspondent 106 Déjà soulignés par Alon Halevy dans le cadre de la réécriture dans l’approche LAV : “Clearly, we would like the reformulation to be sound and complete.” [Lev00]. 148 chacune à une façon d’aborder la résolution de la requête107 : ☞ dans le premier cas, la réponse obtenue est l’union des réponses locales ☞ dans le second cas, la réponse sera partielle en fonction de la source accédée ☞ enfin dans le troisième cas, les résultats partiels tirés de chaque source seront joints à l’aide des clefs des éléments XML qu’ils ont en commun 1 séquences SG id contenu num chr S1 brins S2 séquence adn∗ protéine longueur snps∗ date seq snp id freq id publis journal∗ id gène∗ date seq brin citations∗ prot id conférence∗ nom journal num article séquence nom article num nom article année titre S1 longueur snps∗ date seq jour S2 id publis journal∗ journal∗ mois art année freq id date seq brin citations∗ prot id conférence∗ nom article num nom article année nom journal num article séquence 3 auteurs titre brin refs longueur chr séquence journal∗ conf∗ jour mois art année nom num nom papier auteurs séquences SG S5 séquence adn∗ protéine longueur snps∗ date seq id S6 publications id gene id contenu num chr papier longueur chr snps snp id∗ titre nom num nom gène∗ date seq snp id conf∗ liste gènes adn∗ protéine longueur chr date seq brins séquence adn∗ id contenu refs auteurs séquences SG num chr auteurs brin séquence longueur chr snps snp id∗ titre 2 liste gènes adn∗ freq gene id publis journal∗ année conférence∗ article+ nom titre snp id publications journal∗ conférence∗ auteur+ nom article num nom article année nom titre auteurs titre prénom numéro titre article+ titre auteur+ nom prénom auteurs Fig. 6.7 – Couvertures possibles d’un élément du schéma métier par les schémas dérivés L’analyse du type de couverture d’un sous-arbre du schéma global par ceux extraits des sources locales va prendre en compte les clefs des éléments XML exposées dans la section précédente, puisqu’elles seront utilisées lors de la jointure des données extraites de plusieurs sources. En présence de clefs partagées, une jointure entre des réponses partielles nous permettra donc de compléter le résultat calculé. Le fait d’associer un élément d’une source locale à un sous-arbre Tl du schéma global lui-même contenu dans l’un des sous-arbres Ti demandés dans la requête peut sembler contradictoire avec la philosophie véhiculée par BGLAV, où l’association des sources au schéma métier se veut individuelle, mais elle ne l’est pas : si la source en correspondance avec le sous-arbre englobé est in107 Dans les trois cas, ceci ne sera possible bien entendu que si les valuations demandées par la source sont satisfaites, ce que vérifiera l’algorithme de réécriture. 149 disponible, la requête fournira un résultat partiel, mais néanmoins exploitable, avec un sous-arbre englobant en partie complet. C’est le cas présenté sur le troisième exemple de la Figure 6.7 ; cet exemple est relativement simple, et pour des cas plus compliqués, où les sous-arbres ont un plus grand nombre d’éléments en commun, il est nécessaire de s’assurer que les clefs successives partagées depuis la racine du sous-arbre englobé ont des valeurs identiques à celles du sous-arbre englobant. Nous allons maintenant pouvoir détailler les procédures qui transforment une requête posée sur le schéma global en un ensemble de requêtes exécutées à la fois directement sur les sources et localement par le médiateur. 6.2.2 Algorithme de réécriture BGLAV adapté aux sources Web La plupart des algorithmes de réécriture de requêtes associés aux architectures de médiation ont été proposés dans les approches GAV et LAV. Ceux utilisés dans l’approche GAV sont les plus simples, puisque leur fonctionnement est basé sur le dépliement de vues, comme dans le système Tsimmis [GMPQ+ 97]. Dans les architectures LAV, les deux familles d’algorithmes existants sont centrées autour des règles inversées, utilisées dans le prototype InfoMaster [DG97], et de Bucket 108 , utilisé dans Information Manifold [LRO96b]. Le prototype TIQS109 [BE03, Xu03] conçu et développé autour de BGLAV et du modèle relationnel n’a pas traité le problème de réécriture de requêtes, puisque son objectif était l’automatisation de la découverte des règles de correspondance inter-schémas. L’avantage de la réécriture BGLAV que nous proposons par rapport à un algorithme tel que Bucket est qu’il est inutile de vérifier pour chaque combinaison des requêtes adressées aux sources locales si le résultat sera inclus ou égal à celui demandé, ce qui évite des tests pour lesquels Pottinger [PH00] a démontré que le coût est excessif. Un autre avantage de la réécriture que nous proposons par rapport à un dépliement de vues tel qu’il est réalisé dans l’approche GAV réside dans le fait que le schéma métier n’a pas à être altéré lors de la modification des sources. La Figure 6.8 synthétise les différentes étapes de traitement d’une requête que nous allons détailler dans les sections qui suivent. 6.2.2.1 Choix des sources participantes Une première étape afin de traiter une requête Q(TG ) posée sur le schéma global consiste à identifier, pour chaque sous-arbre Ti,i∈[1;p] , les requêtes de correspondance associées à ce sous-arbre grâce auxquelles le médiateur va pouvoir extraire les données 108 Duquel 109 dérivent les algorithmes Minicon [PH00], SVB [Mit01], et B [FABS02]. Target-based Integration Query System. 150 Requête sur le schéma métier Résultat intégré final Reformulation en fonction des sources Elimination des doublons Ordonnancement des requêtes adressées aux sources Résolution des conflits Exécution des requêtes Adaptateur Adaptateur ... Résultats partiaux conflictuels Adaptateur ... Fig. 6.8 – Traitement des requêtes par le médiateur BGLAV demandées, par simple remplacement de l’arbre Ti par les requêtes de correspondance trouvées. Cette phase ne se contente pas simplement de constituer la liste des requêtes de correspondance qui permettent d’obtenir une couverture complète du sous-arbre, mais pour les requêtes de correspondance partielles, l’algorithme tente de compléter la couverture à l’aide de requêtes de correspondance associées au sous-arbre non-couvert. Les instances des deux sous-arbres sont ensuite jointes à l’aide des clefs qu’ils partagent et qui définissent sans ambiguı̈té les éléments. L’Algorithme 4 détaille la fonction S2 (Sélection de Sources) prenant en paramètre un sous-arbre demandé dans la requête, et renvoyant une liste de requêtes de correspondance qui remplaceront ce sous-arbre lors de la réécriture de la requête globale. Dans le cas où, suite à un appel récursif, la fonction S2 renvoie l’ensemble LS 7→T qu’elle a reçu en paramètre, les doublons ainsi ajoutés à l’ensemble passé en paramètre ne poseront pas de problème, puisque nous réalisons l’union des deux ensembles. Il est également important de noter que les couvertures partielles que nous prenons en compte sont du type du troisième exemple présenté en Figure 6.7, et non pas des couvertures partielles où les sous-arbres ne partagent pas de clefs communes jusqu’au nœud qu’il est souhaitable de compléter. En conséquence, l’opérateur de jointure ⊲⊳K réalise une jointure entre les sous-arbres selon la valeur des clefs partagées depuis la racine de T . 151 Algorithme 4 S2 (T ) : sélection des sources candidates Entrées: un sous-arbre T du schéma global, un ensemble M contenant n requêtes de correspondance Sorties: une liste LS 7→T de requêtes de correspondance (ou leurs jointures) qui couvrent totalement T /* Au début, la liste est vide */ LS 7→T ⇐ ∅ /* Parcours de l’ensemble des requêtes de correspondance */ Tant que M 6= ∅ Faire Si une requête Mi couvre totalement T Alors LS 7→T ⇐ LS 7→T ∪ Mi M ⇐ M − Mi Sinon Si Mi couvre partiellement T Alors T ′ ⇐ T \ Arbre couvert par Mi /* Rappel récursif de la fonction sur le sous-arbre et la liste de correspondances */ LS 7→T ⇐ LS 7→T ∪ (Mi ⊲⊳K S2 (T ′ , M − Mi )) Sinon /* Suppression de la requête de l’ensemble M */ M ⇐ M − Mi Fin Si Fin Tant que Retourner la liste LS 7→T 152 Analyse de la complexité de l’algorithme Le meilleur des cas se produit lorsque les requêtes de correspondance contenues dans l’ensemble M couvrent totalement ou non, mais jamais partiellement, le sous-arbre T . Si n est le nombre de requêtes de correspondances, la complexité sera ainsi de l’ordre de O(n). Le pire des cas se produira lorsque aucune requête de correspondance ne couvre totalement le sous-arbre T , et s’il est impossible de compléter la couverture par jointure avec d’autres requêtes de correspondance : la complexité à cause des appels récursifs répétés sera donc de l’ordre de O(n!). En pratique, les requêtes de correspondance ont pour objectif d’être définies afin de s’associer à des sous-arbres du schéma global en les couvrant au maximum ; nous pouvons donc affirmer que la complexité moyenne sera en règle générale proche de O(n). 6.2.2.2 Génération d’un plan de requêtes Lorsqu’une requête est posée sur le schéma global, le médiateur vérifie tout d’abord la correction de cette requête par rapport à la Définition 6.2.1, puis l’algorithme de réécriture la décompose et la transforme en une succession de requêtes, qui sont ordonnées de sorte à répondre à la question de l’utilisateur. Ce plan de requêtes est constitué d’une séquence d’accès aux sources de données distantes, entrecoupée d’opérations exécutées localement, telles que des jointures entre des ensembles de données distribuées, ou l’application de fonctions d’agrégation. Notre algorithme de réécriture produit des plans d’exécution de requêtes dont nous donnons la définition ci-dessous : Définition 6.2.6 (Plan d’exécution de requêtes) Un plan de requêtes P , constitué d’étapes Ei,i∈[1;n] sera qualifié d’exécutable si ∀ j ∈ [1; n], les valuations nécessaires à l’exécution de E j sont satisfaites par E j , ou par une étape Ei , avec i < j, à laquelle les valuations nécessaires à E j sont liées par une jointure. La réécriture de requêtes est mise en œuvre dans notre système par les Algorithmes 5 et 6. Le premier prend en entrée une requête sur le schéma global et produit en sortie un plan d’exécution de requêtes dans lequel figurent les éléments dont les valuations sont satisfaites. Ce plan peut s’avérer être partiel, c’est pourquoi le second algorithme prend en paramètre le premier plan d’exécution obtenu, et les sous-arbres de la requête restants s’il y en a, et tente de compléter le plan d’exécution afin de fournir un ensemble de réponses exhaustif. Cette complétion s’obtient en ajoutant des étapes d’extraction de données dont les valuations sont satisfaites à l’aide de valeurs trouvées dans les jointures auxquelles participent les sous-arbres restants. 153 Il est important de noter qu’une requête dont le résultat peut provenir d’une seule source constitue déjà en elle-même un plan de requêtes, et que l’union ou la jointure de deux plans de requêtes est également un plan de requêtes. Algorithme 5 Réécriture d’une requête (1/2) : GenerePlanPartiel(Q(TG)) Entrées: une requête Q(TG ) portant sur le schéma global Sorties: un plan d’exécution de requêtes P P ⇐ ∅ /* Initialisation du plan d’exécution */ SAQ ⇐ T1 , . . . , T p /* Ensemble des sous-arbres demandés dans la requête */ SAV ⇐ ∅ /* Ensemble des sous-arbres dont les valuations ne sont pas satisfaites */ /* Compteur du nombre d’étapes du plan de requêtes */ k⇐1 Tant que SAQ 6= ∅ Faire Vi ⇐ Valuations(Ti) /* Valuations à satisfaire */ Si SatisfaitValuation(Vi ) Alors Ek ⇐ S2 (Ti ) /* Création d’une étape */ L P ⇐P Ek /* Ajout de cette étape au plan d’exécution */ k ⇐ k+1 SAQ ⇐ SAQ \ Ti Sinon S SAV ⇐ SAV Ti SAQ ⇐ SAQ \ Ti Fin Si Fin Tant que Ordonner(P ,CQ ) /* Réordonnancement des sous-requêtes du plan d’exécution */ Retourner P , SAV La fonction Ordonner utilisée dans l’Algorithme 5 prend en paramètre le plan d’exécution des requêtes, et l’ordonne en fonction des jointures qui existent entre les sous-arbres dont les valuations sont satisfaites, de sorte que deux ou plusieurs étapes Ei , E j , . . . et Ek liées par une jointure se succèdent dans le plan d’exécution. Analyse de la complexité de l’algorithme La fonction GenerePlanPartiel effectue un parcours de l’ensemble SAQ , qui contient au maximum n éléments. Sa complexité est donc de l’ordre de O(n). 154 Algorithme 6 Réécriture d’une requête (2/2) : CompletePlanPartiel(P , SAV ,CSAVMin ) Entrées: un plan partiel P , un ensemble SAV de sous-arbres, la cardinalité minimum de SAV Sorties: un plan d’exécution de requêtes P complété au maximum /* Nombre d’étapes dans le plan P */ kMax ⇐ Card(P ) /* Pour tous les arbres T contenus dans l’ensemble SAV */ Pour T ∈ SAV Faire i⇐1 Tant que i ≤ kMax Faire Si ∃ jointure avec Ei à laquelle participe T et satisfaisant ses valuations Alors /* Création d’une étape */ EkMax +1 ⇐ S2 (T ) /* Rappel récursif */ L CompletePlanPartiel(P EkMax +1 , SAV \ T ,CSAVMin ) i ⇐ kMax + 1 Sinon i ⇐ i+1 Fin Si Fin Tant que Fin Pour /* Comparaison de la cardinalité de SAV avec la valeur CSAVMin */ Si |SAV | < CSAVMin Alors Enregistrer P CSAVMin ⇐ |SAV | Fin Si Analyse de la complexité de l’algorithme La complétion du plan partiel n’est effectuée que lorsque l’ensemble SAV n’est pas vide. Dans le meilleur des cas, la plan partiel ne peut être complété par aucun des éléments de l’ensemble SAV . La complexité sera alors de l’ordre de O(|SAV |), puisqu’une seule passe sera réalisée. Dans le pire des cas, il existe |SAV |! possibilités pour compléter le plan de requêtes partiel, la complexité sera alors de l’ordre de O(|SAV |!). Plusieurs plans d’exécution peuvent exister et compter un nombre maximal d’étapes : nous ne nous attachons pas à les comparer, le seul but de l’algorithme étant d’obtenir un plan complété au maximum. 155 Certitude et inclusion maximale des réponses Le plan d’exécution produit par notre algorithme de réécriture de requêtes BGLAV va fournir des réponses certaines et maximalement incluses dans la requête posée sur le schéma global, comme cela a été prouvé pour les règles de correspondance BGLAV utilisées dans le cadre relationnel [XE04]. Dans le cas où aucun réordonnancement des étapes ne permet d’obtenir des valuations pour les éléments de l’ensemble SAV , le plan obtenu ne sera qu’un plan partiel, mais néanmoins exécutable par le médiateur. 6.2.3 Extensibilité du système La complexité du problème de réécriture de requêtes utilisant des vues a été largement abordé par Halevy [Hal01]. Parmi les approches classiques, alors que GAV bénéficie d’une complexité polynomiale puisque basée uniquement sur le remplacement d’une vue par sa définition, dans le cas des approches LAV et GLAV, trouver une réécriture équivalente à une requête devient un problème NP-complet. La décidabilité et la complexité de la phase de réécriture de requêtes sont liées aux règles de correspondance. Dans le cadre de notre approche BGLAV, la complexité est du même ordre que GAV, puisque les sources sont associées au schéma global individuellement. L’architecture d’intégration développée dans le cadre de nos travaux n’a pas comme objectif d’intégrer massivement des centaines de sources à l’image de ce qui a été mis en œuvre dans Information Manifold110 , ou d’atteindre les objectifs fixé par les architectures d’intégration de services ou les applications composites 111 qui visent à combiner ensemble des dizaines de sources ou ressources. Même si son cadre d’utilisation est clairement circonscrit, notre médiateur BGLAV bénéficie néanmoins, du fait de la technologie mise en œuvre, d’une bonne scalabilité à l’échelle du Web. 6.3 Prototypage, tests et performances Nous avons prototypé un outil qui met en œuvre la médiation de données basée sur le modèle d’intégration BGLAV. Le logiciel développé assure les étapes de reformulation, et d’exécution de la requête posée sur le schéma global que nous avons détaillées dans les Algorithmes 4, 5 et 6 ; le médiateur gère également les accès aux sources. L’interface du logiciel présentée en Figure 6.9 a été construite à l’aide de la bibliothèque SWT, dont le rendu à l’écran est plus esthétique et l’affichage plus rapide que celui produit par la librairie SWING utilisée classiquement. La syntaxe de la requête est vérifiée 110 Plus 111 de cent sources intégrées. Mashups. 156 conformément à une grammaire BNF de XQuery définie par le W3C112 , et utilisée par le générateur JavaCC [Proié]. Ceci nous permet d’obtenir une représentation arborescente de la requête que les primitives fournies par le langage Java nous permettent de parcourir ou de modifier. Une fois le plan d’exécution constitué, les requêtes sont exécutées soit par le moteur Saxon [Sax08] dans le cas de requêtes exécutées localement, soit par le moteur XQuare [Odo05] qui nous sert d’interface avec les bases de données relationnelles utilisées pour nos exemples illustratifs, soit par le moteur de requêtes fourni par la base de données eXist [Mei03] dans le cas de données XML natives 113 . Ecriture de la requête sur le schéma métier Choix du schéma global Edition des requêtes de correspondance Affichage de la réponse Fig. 6.9 – Interface graphique du médiateur BGLAV 6.4 Application sur des données biologiques Nous avons utilisé notre prototype et l’algorithme qu’il met en œuvre sur des données biologiques réelles. Le scénario illustratif que nous présentons en Section 6.4.1 est basé sur 112 La page http://www.w3.org/2007/01/applets/ propose des grammaires pour XQuery, XPath et XUpdate. 113 Saxon et eXist passent respectivement à 100% et 99.4% les tests XQTS (XQuery Test Suite) 1.0.2 du W3C qui indiquent le degré de conformité d’une implémentation vis-à-vis de la norme XQuery. 157 des données tirées de la base de données Ensembl [CCCR04], et qui concernent l’ADN. Nous avons défini un schéma métier, découpé les données et introduit des conflits structurels et syntaxiques (dans le cas où ils n’existaient pas) afin de bien mettre en évidence les traitements effectués sur la requête posée sur le schéma global. 6.4.1 Intégration de données tirées de la base Ensembl Cet exemple illustratif utilise les données sur l’ADN du chromosome X humain114 . Ces données sont fournies par la base Ensembl sous la forme de fichiers SQL compatibles avec le SGBD MySQL. Nous les avons réduits en taille, puis découpés afin de simuler des redondances, tout en introduisant des conflits d’échelle et de nommage : nous avons ainsi obtenu trois schémas locaux SL1 , SL2 et SL3 . Les sources ainsi simulées sont de deux types : soit des fichiers XML (obtenus par transformation des données sources), soit des données relationnelles associées à un transformateur relationnel-XML. Schéma global et schémas locaux Le schéma global SG est composé d’éléments EnsemblGeneID, qui contiennent les balises ID (identifiant Ensembl), Description (brève description), GeneStart (zone de début du gène), GeneEnd (zone de fin du gène), AssociatedName (nom du gène), GO_ID (identifiant GO), et Affy (identifiant Affymetrix). 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 < !−− Schéma g l o b a l −−> <?xml version=” 1 . 0 ” e n c o d i n g=”UTF−8”?> <xs :s ch em a x m l n s : x s=” h t t p : //www. w3 . or g /2001/XMLSchema”> <xs:element name=”Gene Chr X”> <xs:element name=”EnsemblGeneID ”> <xs:complexType> <x s : s e q u e n c e> <xs:element name=”ID ” typ e=” x s : s t r i n g ”/> <xs:element name=” D e s c r i p t i o n ” typ e=” x s : s t r i n g ”/> <xs:element name=”Gen eS tar t ” typ e=” x s : i n t e g e r ”/> <xs:element name=”GeneEnd ” typ e=” x s : i n t e g e r ”/> <xs:element name=”AssociatedName ” typ e=” x s : s t r i n g ”/> <xs:element name=”Ids GO ”> <xs:element name=”GO ID” typ e=” x s : s t r i n g ”/> </ xs:element> 114 Nous aurions pu choisir n’importe quel autre chromosome parmi les très nombreuses données fournies par Ensembl. 158 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 <xs:element name=”Af f y ” typ e=” x s : s t r i n g ”/> </ x s : s e q u e n c e> </ xs:complexType> </ xs:element> </ xs:element> </ xs :s ch em a> < !−− Schéma l o c a l 1 −−> <?xml version=” 1 . 0 ” e n c o d i n g=”UTF−8”?> <xs :s ch em a x m l n s : x s=” h t t p : //www. w3 . or g /2001/XMLSchema”> <xs:element name=” L i s t e g e n e s X ”> <xs:element name=”Gene ”> <xs:complexType> <x s : s e q u e n c e> <xs:element name=”ID ” typ e=” x s : s t r i n g ”/> <xs:element name=” D e s c r i p t i o n ” typ e=” x s : s t r i n g ”/> <xs:element name=”Gen eS tar t ” typ e=” x s : i n t e g e r ”/> <xs:element name=”GeneEnd ” typ e=” x s : i n t e g e r ”/> <xs:element name=”AssociatedName ” typ e=” x s : s t r i n g ”/> <xs:element name=”Ids GO ”> <xs:complexType> < x s : a t t r i b u t e name=”GO ID” typ e=” x s : i n t e g e r ”/> </ xs:complexType> </ xs:element> <xs:element name=”Af f y ” typ e=” x s : s t r i n g ”/> </ x s : s e q u e n c e> </ xs:complexType> </ xs:element> </ xs:element> </ xs :s ch em a> < !−− Schéma l o c a l 2 −−> <?xml version=” 1 . 0 ” e n c o d i n g=”UTF−8”?> <xs :s ch em a x m l n s : x s=” h t t p : //www. w3 . or g /2001/XMLSchema”> <xs:element name=” L i s t e ”> <xs:element name=”EnsemblGene ID ”> <xs:complexType> <x s : s e q u e n c e> 159 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 <xs:element name=”ID ” typ e=” x s : s t r i n g ”/> <xs:element name=” D e s c r i p t i o n ” typ e=” x s : s t r i n g ”/> <xs:element name=”Gen eS tar t ” typ e=” x s : i n t e g e r ”/> <xs:element name=”GeneEnd ” typ e=” x s : i n t e g e r ”/> <xs:element name=”AssociatedName ” typ e=” x s : s t r i n g ”/> <xs:element name=”Ids GO ”> <xs:element name=”GO ID” typ e=” x s : s t r i n g ”/> </ xs:element> <xs:element name=”Af f y ” typ e=” x s : s t r i n g ”/> </ x s : s e q u e n c e> </ xs:complexType> </ xs:element> </ xs:element> </ xs :s ch em a> < !−− Schéma l o c a l 3 −−> <?xml version=” 1 . 0 ” e n c o d i n g=”UTF−8”?> <xs :s ch em a x m l n s : x s=” h t t p : //www. w3 . or g /2001/XMLSchema”> <xs:element name=” L i s t e ”> <xs:element name=”EnsemblGeneID ”> <xs:complexType> <x s : s e q u e n c e> <xs:element name=”ID ” typ e=” x s : s t r i n g ”/> <xs:element name=” D e s c r i p t i o n ” typ e=” x s : s t r i n g ”/> <xs:element name=”Gen eS tar t ” typ e=” x s : i n t e g e r ”/> <xs:element name=”GeneEnd ” typ e=” x s : i n t e g e r ”/> <xs:element name=”AssociatedName ” typ e=” x s : s t r i n g ”/> <xs:element name=”Ids GO ”> <xs:element name=”GO ID” typ e=” x s : s t r i n g ”/> </ xs:element> <xs:element name=”Af f y ” typ e=” x s : s t r i n g ”/> </ x s : s e q u e n c e> </ xs:complexType> </ xs:element> </ xs:element> </ xs :s ch em a> 160 Requêtes de correspondance Les requêtes de correspondance spécifient les associations entre éléments des schémas locaux et globaux. Dans le cadre de cet exemple, l’élément EnsemblGeneID (ou une balise de nom différent mais qui soit son équivalent) dans chaque source locale est associé à celui du schéma global. Chacune des requêtes résout les conflits, comme par exemple le conflit d’échelle entre les éléments GeneStart et GeneEnd qui sont en paires de bases dans le schéma global, mais qui sont exprimés en kilo paires de bases dans les schémas locaux SL1 et SL2 , ou le conflit structurel entre GO_ID qui est attribut de l’élément Ids_GO dans le schéma SL1 . 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ( : Requête de c o r r e s p o n d a n c e e n t r e l e s schémas SL1 e t SG : ) f o r $x i n c o l l e c t i o n ( ’ SL1 ’ )/ L i s t e g e n e s X /Gene return <EnsemblGeneID> {$x/ID , $x/ D e s c r i p t i o n , $x/ Gen eS tar t ∗1000 , $x/GeneEnd ∗1000 , $x/ AssociatedName , $x/ Affy , <Ids GO><GO ID>$x/ Ids GO/@GO ID</GO ID></Ids GO>} </EnsemblGeneID> ( : Requête de c o r r e s p o n d a n c e e n t r e l e s schémas SL2 e t SG : ) f o r $x i n c o l l e c t i o n ( ’ SL2 ’ )/ L i s t e / EnsemblGene ID return <EnsemblGeneID> {$x/ID , $x/ D e s c r i p t i o n , $x/ Gen eS tar t ∗1000 , $x/GeneEnd ∗1000 , $x/ AssociatedName , $x/ Affy , $x/ Ids GO} </EnsemblGeneID> ( : Requête de c o r r e s p o n d a n c e e n t r e l e s schémas SL3 e t SG : ) f o r $x i n c o l l e c t i o n ( ’ SL3 ’ )/ L i s t e /EnsemblGeneID return <EnsemblGeneID> {$x/ID , $x/ D e s c r i p t i o n , $x/ GeneStart , $x/GeneEnd , $x/ AssociatedName , $x/ Affy , $x/ Ids GO} </EnsemblGeneID> Restrictions d’accès Pour chacun des schémas locaux, nous avons défini des restrictions d’accès, qui correspondent aux valeurs que la source doit impérativement connaı̂tre afin de pouvoir traiter une requête qui lui est adressée, et qui sont, respectivement : 161 R1 = {[/Liste Genes X/Gene/ID]} pour SL1 . R2 = {[/Liste/EnsemblGene ID/ID]} pour SL2 . R3 = {[/Liste/EnsemblGeneID/GeneStart, /Liste/EnsemblGeneID/GeneEnd]} pour SL3 . Exemples de requêtes Chacun des exemples ci-dessous présente une requête posée sur le schéma global, et les requêtes obtenues après décomposition qui seront adressées aux sources locales. Dans la version actuelle de l’outil développé, les requêtes de recomposition des résultats (qui ne sont pas présentées dans les exemples qui suivent) consistent en l’union des réponses obtenues de chacune des sources. La charge de faire le tri des éléments redondants est donc pour l’instant à la charge de l’utilisateur. 1 Cette première requête cherche à extraire des sources différentes valeurs associées à un gène en fonction des identifiants Ensembl qui y sont associés. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ( : Requête g l o b a l e : ) f o r $x i n c o l l e c t i o n ( ’ SG ’ )/ Gene Chr X/EnsemblGeneID where $x/ID = ’ ENSG00000101849 ’ or $x/ID = ’ ENSG00000146950 ’ return <R e s u l t a t> {$x/ID , $x/ D e s c r i p t i o n , $x/ GeneStart , $x/GeneEnd} </ R e s u l t a t> ( : Requêtes s u r l e s schémas l o c a u x : ) ( : SL1 : ) f o r $x i n c o l l e c t i o n ( ’ SL1 ’ )/ L i s t e g e n e s X /Gene where $x/ID = ’ ENSG00000101849 ’ or $x/ID = ’ ENSG00000146950 ’ return <EnsemblGeneID> {$x/ID , $x/ D e s c r i p t i o n , $x/ Gen eS tar t ∗1000 , $x/GeneEnd ∗1000 , $x/ AssociatedName , $x/ Affy , <Ids GO><GO ID>$x/Ids GO /@GO ID</GO ID></Ids GO>} </EnsemblGeneID> ( : SL2 : ) f o r $x i n c o l l e c t i o n ( ’ SL2 ’ )/ L i s t e / EnsemblGene ID where $x/ID = ’ ENSG00000101849 ’ or $x/ID = ’ ENSG00000146950 ’ 162 24 25 26 27 28 return <EnsemblGeneID> {$x/ID , $x/ D e s c r i p t i o n , $x/ Gen eS tar t ∗1000 , $x/GeneEnd ∗1000 , $x/ AssociatedName , $x/ Affy , $x/ Ids GO} </EnsemblGeneID> Les deux seules sources impliquées dans la construction de la réponse sont SL1 et SL2 car les restrictions d’accès de SL3 ne permettent pas d’obtenir une réponse si les valeurs des éléments GeneStart et GeneEnd ne sont pas fournies. 2 Cette seconde requête cherche à extraire des sources différentes valeurs associées à un gène en fonction de sa localisation spécifiée en paires de bases. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ( : Rèquête g l o b a l e : ) f o r $x i n c o l l e c t i o n ( ’ SG ’ )/ Gene Chr X/EnsemblGeneID where ($x/ Gen eS tar t > 7770303) and ( $x/GeneEnd < 9092647) return <EnsemblGeneID> {$x/ID , $x/ D e s c r i p t i o n , $x/ GeneStart , $x/GeneEnd , $x/ AssociatedName , $x/ Affy , $x/ Ids GO} </EnsemblGeneID> ( : Requêtes s u r l e s schémas l o c a u x : ) ( : SL3 : ) f o r $x i n c o l l e c t i o n ( ’ SL2 ’ )/ L i s t e / EnsemblGene ID where ($x/ Gen eS tar t > 7770303) and ( $x/GeneEnd < 9092647) return <EnsemblGeneID> {$x/ID , $x/ D e s c r i p t i o n , $x/ Gen eS tar t ∗1000 , $x/GeneEnd ∗1000 , $x/ AssociatedName , $x/ Affy , $x/ Ids GO} </EnsemblGeneID> La seule source qui puisse participer au résultat est dans ce cas précis la source SL3 , puisque les valuations nécessaires à l’interrogation de SL1 et SL2 ne peuvent pas être satisfaites. 3 163 Cette troisième requête cherche à extraire des sources différentes valeurs associées à un gène en fonction de son identifiant Ensembl ou de sa localisation spécifiée en paires de bases. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 ( : Rèquête g l o b a l e : ) f o r $x i n c o l l e c t i o n ( ’ SG ’ )/ Gene Chr X/EnsemblGeneID where ( $x/ID = ’ ENSG00000101849 ’ ) or ( ( $x/ Gen eS tar t > 7770303) and ( $x/GeneEnd < 9 0 9 2 6 4 7 ) ) return <EnsemblGeneID> {$x/ID , $x/ D e s c r i p t i o n , $x/ GeneStart , $x/GeneEnd , $x/ AssociatedName , $x/ Affy , $x/Ids GO } </EnsemblGeneID> ( : Requêtes s u r l e s schémas l o c a u x : ) ( : SL1 : ) f o r $x i n c o l l e c t i o n ( ’ SL1 ’ )/ L i s t e g e n e s X /Gene where ( $x/ID = ’ ENSG00000101849 ’ ) return <EnsemblGeneID> {$x/ID , $x/ D e s c r i p t i o n , $x/ Gen eS tar t ∗1000 , $x/GeneEnd ∗1000 , $x/ AssociatedName , $x/ Affy , <Ids GO><GO ID>$x/Ids GO /@GO ID</GO ID></Ids GO>} </EnsemblGeneID> ( : SL2 : ) f o r $x i n c o l l e c t i o n ( ’ SL2 ’ )/ L i s t e / EnsemblGene ID where ( $x/ID = ’ ENSG00000101849 ’ ) return <EnsemblGeneID> {$x/ID , $x/ D e s c r i p t i o n , $x/ Gen eS tar t ∗1000 , $x/GeneEnd ∗1000 , $x/ AssociatedName , $x/ Affy , $x/Ids GO } </EnsemblGeneID> ( : SL3 : ) f o r $x i n c o l l e c t i o n ( ’ SL3 ’ )/ L i s t e / EnsemblGeneID where ( ( $x/ Gen eS tar t > 7770303) and ( $x/GeneEnd < 9 0 9 2 6 4 7 ) ) return 164 37 38 39 40 <EnsemblGeneID> {$x/ID , $x/ D e s c r i p t i o n , $x/ GeneStart , $x/GeneEnd , $x/ AssociatedName , $x/ Affy , $x/ Ids GO} </EnsemblGeneID> Les trois sources peuvent être impliquées dans la composition du résultat final, puisque toutes les valeurs à fournir sont présentes dans la requête posée sur le schéma global. 6.5 Conclusion et ouvertures Nous avons présenté dans cette partie une approche d’intégration de schémas suivant le modèle BGLAV, adaptée au modèle XML. Cette méthodologie de construction du schéma métier manipulé par l’utilisateur donne de bons résultats en biologie. L’utilisation du langage XML offre de grands avantages : il permet de représenter les données indépendamment de leur modélisation et de leur stockage. Cependant, il ne permet pas d’éviter les problèmes de conflits structurels et sémantiques, c’est pourquoi nous avons proposé une formalisation de l’intégration destinée à résoudre ce type de conflits, en amont de la phase de réécriture de requêtes, et de façon transparente pour l’utilisateur. L’algorithme de réécriture associé au système permet de décomposer la requête posée sur le schéma global, puis de réconcilier les réponses sans que l’utilisateur n’ait à assumer une charge cognitive supplémentaire. Au niveau des améliorations que nous avons à apporter au système, l’une des pistes de recherche à explorer est celle ayant pour but d’automatiser la phase de rapprochement entre schémas locaux et schéma global. Générer des requêtes de correspondance de façon semi-automatique sera possible avec d’autant plus de facilité lorsque les sources proposeront des méta-données suffisamment complètes et dans un format exploitable par la machine. La prise en compte de sous-requêtes corrélées et imbriquées par l’algorithme de réécriture est une amélioration à envisager afin d’augmenter la richesse d’expression des requêtes. Concernant l’exécution du plan de requêtes que nous générons, une amélioration possible consisterait à faire s’exécuter en parallèle des étapes d’extraction qui ne sont pas liées les unes aux autres ; ceci constituerait un gain de temps intéressant, puisque l’extraction de données distantes est la phase la plus chronophage à cause du temps de transit des données sur le réseau. Nous avons pris en compte non seulement des correspondances entre schémas complètes, mais aussi des correspondances partielles, contrairement à ce qui avait été défini pour l’approche BGLAV utilisée dans le modèle relationnel. La modularité de notre approche et la puissance expressive du langage utilisé nous permet d’envisager sereinement 165 son utilisation future sur des services Web biologiques, mais aussi l’intégration simple et rapide de ressources Web existantes, telles que des comparateurs de séquences. Au niveau du prototypage, la version actuelle de l’outil développé afin d’illustrer la mise en œuvre de la médiation BGLAV ne couvre pour l’instant pas toutes les possibilités détaillées dans les définitions que nous avons données. La phase de développement du module d’analyse et de décomposition de requêtes est très délicate, et nécessite d’y apporter encore des améliorations. Ainsi l’analyse de la couverture des éléments globaux par les sources locales n’est pour l’instant opérationnelle que dans le cas où les sources fournissent toutes les informations concernant un élément du schéma global ; la phase de suppression des doublons lors de la recomposition des résultats n’applique pour l’instant qu’une union des résultats locaux, des données dupliquées peuvent donc figurer dans la réponse finale. 166 Conclusions et perspectives Dans cette thèse, nous nous sommes intéressés au problème d’intégration de données sur le Web, en nous focalisant particulièrement sur les problèmes posés par les sources de données biologiques. Les deux parties de ce mémoire s’articulent autour de deux objectifs à la fois distincts et complémentaires : ☞ dans la première partie, nous avons proposé une solution d’intégration basée sur le partage de références entre les sources. ☞ dans la seconde partie, nous avons adapté une méthodologie d’intégration de schémas au domaine semi-structuré, afin de proposer une solution d’intégration à la fois simple et flexible. Pour chacune des solutions exposées, nous avons également développé des outils destinés à les mettre en œuvre et à montrer la faisabilité de nos propositions sur des cas d’utilisation réels. 1 Résumé des contributions Conscients du fait que les sources biologiques aujourd’hui ouvertes sur le Web ne fournissent pas encore les méta-données, ou ne garantissent pas les droits nécessaires à leur exploitation de façon aisée par le biais de procédures (semi-)automatisées, nos travaux se sont concentrés sur la résolution d’une classe de problèmes d’intégration qui se rencontrent principalement à l’échelle individuelle : l’objectif visé étant d’automatiser autant que possible les phases d’interrogation des sources locales et de réconciliation des résultats partiels. Les contributions de nos travaux concernent plusieurs points : Formalisation logique des formulaires d’accès aux sources La majorité des sources de données actuellement disponibles sur le Web diffusent leur contenu en se basant sur le modèle client-serveur classique mettant en œuvre le couple formulaire Web/base de données. Joindre les données de proche en proche est un travail fastidieux, et aisément source d’erreur. Dans ce contexte, automatiser la jointure de données nécessite de pouvoir comparer et combiner les patterns d’accès aux données. En 167 nous basant sur le formalisme bien défini de la logique des attributs et en lui ajoutant des opérateurs de comparaison spécifiques, nous avons pu résoudre le problème qui nous était posé en le structurant dans un cadre formel clair. La définition d’une nouvelle source et son ajout au système d’intégration en langage XML rendent accessible son utilisation même à des utilisateurs non informaticiens. Algorithme de réécriture adapté au modèle BGLAV XML Les architectures de médiation basées sur les modèles GAV ou LAV montrent leurs limites lorsqu’il s’agit d’intégrer des sources de données dont la disponibilité est incertaine et les hétérogénéités nombreuses. Nous avons adapté la médiation BGLAV au modèle XML. Cette méthodologie de construction du schéma métier manipulé par l’utilisateur donne des résultats probants sur des sources de données du Web. L’utilisation du langage XML offre de grands avantages, parmi lesquels celui de représenter les données indépendamment de leur modélisation et du format dans lequel elles sont stockées. Cependant, il ne permet pas d’éviter les problèmes de conflits structurels et sémantiques, c’est pourquoi notre formalisation des données intégrées est tournée vers l’objectif de résoudre les conflits en amont de la phase de rééecriture de requêtes, et de façon transparente pour l’utilisateur. Développement de prototypes La création d’outils destinés à mettre en pratique les structures de données et les algorithmes que nous proposons sont un point fort de nos travaux. Les prototypes créés nous ont permis de valider la faisabilité des approches proposées à l’aide d’un langage de programmation de haut niveau tel que Java, mais nous avons également pu établir un état des lieux précis des technologies actuelles et émergentes en ce qui concerne l’extraction de données du Web. 2 Ouverture et pistes de recherche La récente expansion des sources de données biologiques sur le Web les a mises à disposition d’un nombre sans cesse croissant de chercheurs, ouvrant ainsi de très nombreuses perspectives d’innovation. La biologie a ainsi pris une nouvelle dimension : anciennement divisée en plusieurs disciplines, elle est devenue intégrative et offre désormais de belles perspectives d’appréhension de la complexité du monde vivant. L’intégration de données vise à combler le fossé qui existe entre producteurs et consommateurs de données, particulièrement dans ce domaine. Dans le cadre de cette thèse, nous avons orienté nos recherches afin de rapprocher ces différents acteurs. 168 Nous pensons améliorer à court terme les travaux que nous avons exposés, en nous focalisant sur plusieurs points particuliers : • concernant l’intégration basée sur le partage de références : – intégrer non seulement des sources de données, mais aussi des services Web : cette techonologie s’est grandement développée ces dernières années dans le domaine biologique, et les perspectives offertes semblent très prometteuses – associer notre outil a des méthodes d’analyse et de prédiction plus évoluée que celles que nous avons utilisées pour fouiller et extraire des critères pertinents à partir des données intégrées • concernant l’architecture de médiation BGLAV : – associer des méta-données décrivant plus précisément la confiance accordée à la source et sa qualité estimée115 – améliorer l’algorithme de réécriture afin de permettre le traitement de requêtes plus complexes, acceptant l’imbrication et la corrélation de sous-requêtes sur plusieurs niveaux – automatiser la recherche de correspondances entre éléments des schémas locaux et globaux 115 L’importance de la prise en compte des erreurs avait déjà été soulignée par Brenner [Bre99] et Müller [MN03]. Informer l’utilisateur des incertitudes qui peuvent exister sur les bases qu’il utilise est indispensable, comme l’avait confié Terri Attwood, auteur de la base PRINTS [Att02] : “Nous devons former les chercheurs afin qu’ils sachent que les bases de données qu’ils utilisent ne contiennent pas forcément des informations exactes.” 169 170 Annexes 171 172 A Projets d’intégration de données biologiques 173 Description et articles de référence des principaux projets d’intégration de données biologiques Nom Technologie Modèle de données 174 GEDAW [GMB+ 05] Langage de requêtes ObjetRelationnel gRNA [LBC+ 02] Langage de requêtes ObjetRelationnel GUS [DCB+ 01] Langage de requêtes Relationnel ENQUire [JMS96] Langage de requêtes TINet [EKJ01] Langage de requêtes suite page suivante... Types de sources Apprentissage Entrepôts de données Complémentaires Apprentissage du langage de requêtes Complémentaires Apprentissage du langage de requêtes Complémentaires Apprentissage du langage de requêtes Fédération de données Orienté-objet Complémentaires Aucun apprenou non tissage Orienté-objet Complémentaires Apprentissage du langage de requêtes Transparence Type d’intégration Sources imposées Entrepôt Sources imposées Entrepôt Sources imposées Entrepôt Sources choisies par l’utilisateur Sources imposées Fédération Multibase ...suite de la page précédente ISYS [STF+ 01] Langage de requêtes IGD-GIS [BLR97] Langage de requêtes 175 BioNavigator [Gaë00] Entrez [NCB] Portail Web GeneCards [RCCPL98] SRS [ZLAE02] Portail Web BACIIS [BMLBL03] DiscoveryLink [HSK+ 01] Portail Web Portail Web Langage de requêtes Langage de requêtes suite page suivante... Architectures à base d’agents logiciels Orienté-objet Complémentaires Apprentissage ou non du langage de requêtes Orienté-objet Complémentaires Apprentissage ou non du langage de requêtes Intégration navigationnelle Fichers plats Complémentaires Aucun apprentissage Enregistrements Complémentaires Aucun apprenhyperliés tissage Fichiers plats Complémentaires Aucun apprenindexés tissage Ensemble d’en- Complémentaires Aucune registrements avec quelques connaissance hyperliés redondances requise ObjetRelationnel ObjetRelationnel Médiation de données Complémentaires Interactif Complémentaires avec quelques redondances Apprentissage du langage de requêtes Sources choisies par l’utilisateur Sources choisies par l’utilisateur Agents Choix par l’utilisateur Choix par l’utilisateur Sources imposées Choix par l’utilisateur Navigationnelle Sources imposées Sources imposées Médiation Agents Navigationnelle Navigation / Entrepôt Navigationnelle Médiation K2/BioKleisli [DCB+ 01] Langage de requêtes Semi-structuré Complémentaires Kind [GLM00] Langage de requêtes Semi-structuré Complémentaires TAMBIS [SBB+ 00] Langage de requêtes ObjetRelationnel Complémentaires Apprentissage du langage de requêtes Apprentissage du langage de requêtes Interactif ...suite de la page précédente Choix par l’uti- Médiation lisateur Choix par l’utilisateur Médiation Sources imposées Médiation 176 B Approches d’intégration et prototypes associés 177 Projets et prototypes associés aux approches d’intégration de données biologiques Entrepôt de données Intégration de vues Multi-agents Fédération Collecte de données SRS LinkDB/DBGet Entrez BioNavigator Expasy WebDBGet Genera GenomeNet GUS IGD-I BioMolQuest Gedaw gRNA Genobase InterPro WCS Limbo DataFoundry GIMS Atlas BioKleisli/K2 Pizzkel/Kleisli P/FDM OPM Tambis Semeda ABCKB BioTrifu BACIIS IBM DiscoveryLink KIND BioMediator ISYS IGD-GID GDB Docking-D TinET INDUS Genecards UniProt Enquire 178 Fédération par hyperliens Intégration pair à pair Promethea The SEED BioFuice C Index des méthodes d’extraction de données Web 179 Classification et articles de référence des principales méthodes d’extraction de données du Web Apprentissage supervisé Extraction automatique de régularités Induction interactive WIEN [KWD97] Stalker [MMK01] SoftMealy [HD98] LP2 [CDWP02] RoadRunner [CMM01] IEPAD [CL01] ExALG [AGM03] BYU [ECJ+ 99] MDR [LGZ03] OMINI [BLP01b] Lixto [GKB+ 04] W4F [SA99] NoDoSE [Ade98] WetDL [HQ04] 180 D Schéma XSD des termes d’attributs 181 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 <?xml ve rsi o n=” 1 . 0 ” e n c o d i n g=”UTF−8 ”?> <x s : s c h e m a x m l n s : x s=” h t t p : //www. w3 . o r g /2001/ XMLSchema”> <xs:element name=” f s ”> <x s : c o m p l e x T y p e> < x s : c h o i c e m i n O ccu r s=”0 ” maxOccurs=”unbounded ”> <xs:element r e f=” f ”/> <xs:element r e f=” f A l t ”/> </ x s : c h o i c e> < x s : a t t r i b u t e name=” i d ” t y p e=” x s : I D ”/> < x s : a t t r i b u t e name=”n ” t y p e=” x s : s t r i n g ”/> < x s : a t t r i b u t e name=” t y p e ” t y p e=” x s : s t r i n g ”/> < x s : a t t r i b u t e name=” f e a t s ” t y p e=”xs:IDREFS ”/> < x s : a t t r i b u t e name=” c o p y o f ” t y p e=”xs:IDREF ” /> < x s : a t t r i b u t e name=” r e l ” d e f a u l t=” sb ”> <x s : s i m p l e T y p e> < x s : r e s t r i c t i o n b a s e=” x s : s t r i n g ”> <x s : e n u m e r a t i o n v a l u e=”eq ”/> <x s : e n u m e r a t i o n v a l u e=”ne ”/> <x s : e n u m e r a t i o n v a l u e=”sb ”/> <x s : e n u m e r a t i o n v a l u e=”n s ”/> </ x s : r e s t r i c t i o n> </ x s : s i m p l e T y p e> </ x s : a t t r i b u t e> </ x s : c o m p l e x T y p e> </ xs:element> <xs:element name=” f ”> <x s : c o m p l e x T y p e> < x s : c h o i c e> <xs:element r e f=”sym ”/> <xs:element r e f=” s t r i n g ”/> <xs:element r e f=”number ”/> <xs:element r e f=” b o o l e a n ”/> <xs:element r e f=” d a t e ”/> <xs:element r e f=” v A l t ”/> <xs:element r e f=” f s ” m i n O ccu r s=”0 ” maxOccurs=”unbounded”/> </ x s : c h o i c e> < x s : a t t r i b u t e name=” i d ” t y p e=” x s : I D ”/> < x s : a t t r i b u t e name=”n ” t y p e=” x s : s t r i n g ”/> < x s : a t t r i b u t e name=”name ” t y p e=”xs:NMTOKEN ” u s e=” r e q u i r e d ”/> < x s : a t t r i b u t e name=” l a b e l ” t y p e=” x s : s t r i n g ”/> < x s : a t t r i b u t e name=” o r g ”> <x s : s i m p l e T y p e> < x s : r e s t r i c t i o n b a s e=”xs:NMTOKEN ”> <x s : e n u m e r a t i o n v a l u e=” s i n g l e ”/> <x s : e n u m e r a t i o n v a l u e=” s e t ”/> <x s : e n u m e r a t i o n v a l u e=”bag ”/> <x s : e n u m e r a t i o n v a l u e=” l i s t ”/> </ x s : r e s t r i c t i o n> </ x s : s i m p l e T y p e> </ x s : a t t r i b u t e> < x s : a t t r i b u t e name=” r e l ” d e f a u l t=”eq ”> <x s : s i m p l e T y p e> < x s : r e s t r i c t i o n b a s e=” x s : s t r i n g ”> <x s : e n u m e r a t i o n v a l u e=”eq ”/> <x s : e n u m e r a t i o n v a l u e=”ne ”/> <x s : e n u m e r a t i o n v a l u e=” sb ”/> <x s : e n u m e r a t i o n v a l u e=” n s ”/> </ x s : r e s t r i c t i o n> </ x s : s i m p l e T y p e> </ x s : a t t r i b u t e> < x s : a t t r i b u t e name=” f V a l ” t y p e=”xs:IDREFS ”/> </ x s : c o m p l e x T y p e> </ xs:element> <xs:element name=” f L i b ”> <x s : c o m p l e x T y p e> < x s : c h o i c e m i n O ccu r s=”0 ” maxOccurs=”unbounded ”> <xs:element r e f=” f ”/> <xs:element r e f=” f A l t ”/> </ x s : c h o i c e> < x s : a t t r i b u t e name=” i d ” t y p e=” x s : I D ”/> < x s : a t t r i b u t e name=”n ” t y p e=” x s : s t r i n g ”/> </ x s : c o m p l e x T y p e> </ xs:element> 182 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 <xs:element name=” f s L i b ”> <x s : c o m p l e x T y p e> < x s : c h o i c e m i n O ccu r s=”0 ” maxOccurs=”unbounded”> <xs:element r e f=” f s ”/> <xs:element r e f=” v A l t ”/> </ x s : c h o i c e> < x s : a t t r i b u t e name=” i d ” t y p e=” x s : I D ”/> < x s : a t t r i b u t e name=”n ” t y p e=” x s : s t r i n g ”/> </ x s : c o m p l e x T y p e> </ xs:element> <xs:element name=”sym ”> <x s : c o m p l e x T y p e> < x s : a t t r i b u t e name=” i d ” t y p e=” x s : I D ”/> < x s : a t t r i b u t e name=”n ” t y p e=” x s : s t r i n g ”/> < x s : a t t r i b u t e name=” v a l u e ” t y p e=” x s : s t r i n g ” u s e=” r e q u i r e d ”/> < x s : a t t r i b u t e name=” r e l ” d e f a u l t=”eq ”> <x s : s i m p l e T y p e> < x s : r e s t r i c t i o n b a s e=” x s : s t r i n g ”> <x s : e n u m e r a t i o n v a l u e=”eq ”/> <x s : e n u m e r a t i o n v a l u e=”ne ”/> </ x s : r e s t r i c t i o n> </ x s : s i m p l e T y p e> </ x s : a t t r i b u t e> </ x s : c o m p l e x T y p e> </ xs:element> <xs:element name=” s t r i n g ”> <x s : c o m p l e x T y p e> < x s : a t t r i b u t e name=” i d ” t y p e=” x s : I D ”/> < x s : a t t r i b u t e name=”n ” t y p e=” x s : s t r i n g ”/> < x s : a t t r i b u t e name=” v a l u e ” t y p e=” x s : s t r i n g ” u s e=” r e q u i r e d ”/> < x s : a t t r i b u t e name=” r e l ” d e f a u l t=”eq ”> <x s : s i m p l e T y p e> < x s : r e s t r i c t i o n b a s e=” x s : s t r i n g ”> <x s : e n u m e r a t i o n v a l u e=”eq ”/> <x s : e n u m e r a t i o n v a l u e=”ne ”/> </ x s : r e s t r i c t i o n> </ x s : s i m p l e T y p e> </ x s : a t t r i b u t e> </ x s : c o m p l e x T y p e> </ xs:element> <xs:element name=”number ”> <x s : c o m p l e x T y p e> < x s : a t t r i b u t e name=” i d ” t y p e=” x s : I D ”/> < x s : a t t r i b u t e name=”n ” t y p e=” x s : s t r i n g ”/> < x s : a t t r i b u t e name=” v a l u e ” t y p e=” x s : d o u b l e ” u s e=” r e q u i r e d ”/> < x s : a t t r i b u t e name=” val u eTo ” t y p e=” x s : d o u b l e ”/> < x s : a t t r i b u t e name=” r e l ” d e f a u l t=”eq ”> <x s : s i m p l e T y p e> < x s : r e s t r i c t i o n b a s e=” x s : s t r i n g ”> <x s : e n u m e r a t i o n v a l u e=”eq ”/> <x s : e n u m e r a t i o n v a l u e=”ne ”/> <x s : e n u m e r a t i o n v a l u e=” l t ”/> <x s : e n u m e r a t i o n v a l u e=” l e ”/> <x s : e n u m e r a t i o n v a l u e=” g t ”/> <x s : e n u m e r a t i o n v a l u e=” ge ”/> </ x s : r e s t r i c t i o n> </ x s : s i m p l e T y p e> </ x s : a t t r i b u t e> </ x s : c o m p l e x T y p e> </ xs:element> <xs:element name=” b o o l e a n ”> <x s : c o m p l e x T y p e> < x s : a t t r i b u t e name=” i d ” t y p e=” x s : I D ”/> < x s : a t t r i b u t e name=”n ” t y p e=” x s : s t r i n g ”/> < x s : a t t r i b u t e name=” v a l u e ” t y p e=” x s : b o o l e a n ” u s e=” r e q u i r e d ”/> < x s : a t t r i b u t e name=” r e l ” d e f a u l t=”eq ”> <x s : s i m p l e T y p e> < x s : r e s t r i c t i o n b a s e=” x s : s t r i n g ”> <x s : e n u m e r a t i o n v a l u e=”eq ”/> <x s : e n u m e r a t i o n v a l u e=”ne ”/> <x s : e n u m e r a t i o n v a l u e=” l t ”/> <x s : e n u m e r a t i o n v a l u e=” l e ”/> 183 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 <x s : e n u m e r a t i o n <x s : e n u m e r a t i o n </ x s : r e s t r i c t i o n> </ x s : s i m p l e T y p e> </ x s : a t t r i b u t e> </ x s : c o m p l e x T y p e> </ xs:element> v a l u e=” g t ”/> v a l u e=” ge ”/> <xs:element name=” d a t e ”> <x s : c o m p l e x T y p e> < x s : a t t r i b u t e name=” i d ” t y p e=” x s : I D ”/> < x s : a t t r i b u t e name=”n ” t y p e=” x s : s t r i n g ”/> < x s : a t t r i b u t e name=” v a l u e ” t y p e=” x s : d a t e ” u s e=” r e q u i r e d ”/> < x s : a t t r i b u t e name=” r e l ” d e f a u l t=”eq ”> <x s : s i m p l e T y p e> < x s : r e s t r i c t i o n b a s e=” x s : s t r i n g ”> <x s : e n u m e r a t i o n v a l u e=”eq ”/> <x s : e n u m e r a t i o n v a l u e=”ne ”/> <x s : e n u m e r a t i o n v a l u e=” g t ”/> <x s : e n u m e r a t i o n v a l u e=” ge ”/> <x s : e n u m e r a t i o n v a l u e=” l t ”/> <x s : e n u m e r a t i o n v a l u e=” l e ”/> </ x s : r e s t r i c t i o n> </ x s : s i m p l e T y p e> </ x s : a t t r i b u t e> </ x s : c o m p l e x T y p e> </ xs:element> <xs:element name=” f A l t ”> <x s : c o m p l e x T y p e> <x s : s e q u e n c e> < x s : c h o i c e m i n O ccu r s=”2 ” maxOccurs=”unbounded”> <xs:element r e f=” f ”/> <xs:element r e f=” f s ”/> <xs:element r e f=” f A l t ”/> </ x s : c h o i c e> </ x s : s e q u e n c e> < x s : a t t r i b u t e name=” i d ” t y p e=” x s : I D ”/> < x s : a t t r i b u t e name=”n ” t y p e=” x s : s t r i n g ”/> < x s : a t t r i b u t e name=”mutExcl ”> <x s : s i m p l e T y p e> < x s : r e s t r i c t i o n b a s e=”xs:NMTOKEN ”> <x s : e n u m e r a t i o n v a l u e=”Y”/> <x s : e n u m e r a t i o n v a l u e=”N”/> </ x s : r e s t r i c t i o n> </ x s : s i m p l e T y p e> </ x s : a t t r i b u t e> </ x s : c o m p l e x T y p e> </ xs:element> <xs:element name=” v A l t ”> <x s : c o m p l e x T y p e> <x s : s e q u e n c e> < x s : c h o i c e m i n O ccu r s=”2 ” maxOccurs=”unbounded”> <xs:element r e f=”sym ”/> <xs:element r e f=” s t r i n g ”/> <xs:element r e f=”number ”/> <xs:element r e f=” b o o l e a n ”/> <xs:element r e f=” d a t e ”/> <xs:element r e f=” v A l t ”/> <xs:element r e f=” f s ”/> </ x s : c h o i c e> </ x s : s e q u e n c e> < x s : a t t r i b u t e name=” i d ” t y p e=” x s : I D ”/> < x s : a t t r i b u t e name=”n ” t y p e=” x s : s t r i n g ”/> </ x s : c o m p l e x T y p e> </ xs:element> </ x s : s c h e m a> 184 Glossaire ADN : Acide DésoxyriboNucléique. L’ADN est le support de l’hérédité ou de l’information génétique, car il constitue le génome des êtres vivants et se transmet en totalité ou en partie lors des processus de reproduction. L’ADN détermine la synthèse des protéines. La molécule d’ADN est formée de répétitions de nucléosides constitués de quatres bases différentes (adénine, guanine, thymine, cytosine) qui se présentent en simple brin ou en double brin (complémentaires et antiparallèles). API : Application Programming Interface (Interface de programmation publique). Bibliothèque de fonctions destinées à être utilisées par les programmeurs dans leurs applications. Ces fonctions facilitent l’écriture des programmes en fournissant des procédures pour gérer des éléments particuliers : affichage, connexion à une base de données, pilotage de périphériques... BLAST : Basic Local Alignment Search Tool est un algorithme de comparaison de séquences. En fonction du site sur lequel l’utilisateur pose sa requête, l’algorithme utilisé pourra s’avérer différent, donc fournir des résultats divergents. cluster : (grappe en français) Architecture de groupes d’ordinateurs, utilisée pour former de gros serveurs. Chaque machine est un nœud du cluster, l’ensemble est considéré comme une seule et unique machine, permettant d’obtenir une grande puissance de traitement. Ce type d’architecture est utilisé principalement pour le décisionnel, le transactionnel et l’entrepôt de données. cytologie : Partie de la biologie qui étudie la cellule. DTD : Une DTD, acronyme anglais signifiant Document Type Definition, se traduisant par Définition de Type de Document, est un document permettant de décrire un modèle de document SGML ou XML. Une DTD indique les noms des éléments pouvant apparaı̂tre et leur contenu constitué par leurs sous-éléments et leurs attributs. EDI : Environnement de Développement Intégré. Dans ce genre d’environnement, le programmeur dispose, à partir de la même interface, d’outils comme l’éditeur, le 185 compilateur, l’éditeur de liens ou le débogueur. Des exemples d’EDI sont Visual Studio de Microsoft, le projet Eclipse ou VisualAge d’IBM. exon : Chez les organismes eucaryotes, les gènes qui codent pour des protéines sont constitués d’une suite d’exons et d’introns alternés. Par exemple : Exon1-Intron1Exon2-Intron2-Exon3. Après la phase de transcription, l’ARN synthétisé va subir un certain nombre de modifications dont l’épissage, au cours duquel les exons vont être raboutés et les introns vont être excisés de l’ARN. Les exons représentent donc la partie codante de l’ARNm, c’est-à-dire celle qui est traduite en protéine. Les introns ne jouent aucun rôle dans la suite du devenir de l’ARN (protéine pour l’ARNm, ribosome pour l’ARNr, traduction pour l’ARNt) ; leurs fonctions ne sont pas très bien déterminées à ce jour. Le rôle le plus important des introns est de permettre une combinatoire dans le raboutage des exons lors de l’épissage. Ceci permet aux gènes à ARNm de coder pour plusieurs protéines. FASTA : FASTA est un outil d’alignement de séquences ADN ou protéiques proposé par David J. Lipman et William R. Pearson en 1985 dans l’article “Rapid and sensitive protein similarity searches”. Le programme original “FASTP” était destiné à la recherche de similarités entre protéines. homonymie : Caractère d’un mot identique à un autre par la prononciation, mais de sens différent. Des mots homonymes peuvent de plus être homographes : ils se prononcent de la même façon, ont des sens différents, mais s’écrivent de manière identique. Homonymes simples : vers, vert, ver et verre. Homonymes et homographes : sais-tu qu’il s’est tu ? locus : Emplacement d’un gène sur un chromosome. micro-réseau : Un micro-réseau (ou micro-array) est une matrice dans laquelle sont placés un ensemble de gènes ; chaque case qui s’illumine indique qu’un gène s’y est exprimé. Les micro-réseaux sont utilisés afin de détecter le développement des maladies, en fonction des gènes exprimés chez le patient. nomenclature de localisation : Les chromosomes adoptent presque tous une forme en X et ont le plus souvent 2 bras courts et 2 bras longs. Grâce à des colorations effectuées en laboratoire, il est possible de diviser chaque bras en zones appelées régions, qui sont subdivisées elles-mêmes en bandes et en sous-bandes. Ceci a été fixé arbitrairement à la convention de Paris en 1971. Elles correspondent à la localisation d’informations sur les chromosomes. Ainsi, “5q31q33” signifie “chromosome 5”, “grand bras” (désigné par la lettre q, p pour le petit), entre les zones “31” et “33” (plus le chiffre est grand, et plus l’on s’éloigne du centromère). 186 nucléotides : Les nucléotides sont des acides désoxyribonucléiques pour l’ADN et ribonucléiques pour l’ARN. Ils sont conventionnellement représentés par les lettres A,T,C,G pour l’ADN, et A,U,C,G pour l’ARN. réseau de régulation : Les réseaux de régulation concernent des ensembles d’entités en relation pouvant interagir les unes avec les autres et avec elles-mêmes. Il s’agit de systèmes complexes, notamment en présence de boucles de rétroaction. En sciences de la vie, notamment en biologie, les réseaux de régulation sont à la base de modèles en plein développement, permettant de mieux comprendre le fonctionnement des organismes vivants. L’approche la plus traditionnelle est celle des voies métaboliques, auxquelles sont intégrées les interactions entre protéines et/ou substrats. Cependant, des travaux récents se concentrent sur les gènes euxmêmes. sémantique : La sémantique est, dans les sciences du langage, opposée à la syntaxe. La syntaxe concerne les règles formelles, alors que la sémantique concerne la signification. Dans le domaine informatique, le but du “Semantic Web” est de permettre aux machines d’échanger des informations en utilisant le sens des mots comme dans les langages naturels. Cet objectif ambitieux nécessite un travail important sur les langages, la structure des systèmes, et les ontologies. SGBD : Système de Gestion de Bases de Données. synonymie : Relation sémantique entre des mots ou des expressions dont les sens sont identiques ou très proches. Le synonyme d’un mot appartient nécessairement à la même catégorie grammaticale que celui-ci. La synonymie absolue, qui fait que deux mots sont interchangeables dans tous les contextes, est très rare. Dans la majorité des cas, la synonymie est relative ou partielle et les deux mots ne sont interchangeables que dans certains contextes. taxinomie : (ou taxonomie) Science, lois, ou principes de classification systématique qui permettent la division en groupes ordonnés ou en catégories. transcriptome : Le transcriptome est l’ensemble des ARN messagers (molécules servant de matrice pour la synthèse des protéines) issu de l’expression d’une partie du génome d’un tissu cellulaire ou d’un type de cellule. La caractérisation et la quantification du transcriptome dans un tissu donné et dans des conditions données permet d’identifier les gènes actifs, de déterminer les mécanismes de régulation d’expression des gènes et de définir les réseaux d’expression des gènes. URL : Cet acronyme signifie Uniform Resource Locator, qui se traduit littéralement par localisateur uniforme de ressource, et désigne une chaı̂ne de caractères (codée en 187 ASCII, donc utilisant l’alphabet anglais, ce qui signifie qu’elle ne présente aucun accent comme é ou ı̂) qui est utilisée pour adresser les ressources du World Wide Web telles que des documents HTML, des images ou des sons. 188 Bibliographie [AAE+ 06] Euan A. Adie, Richard R. Adams, Kathryn L. Evans, David J. Porteous, et Ben S. Pickard. SUSPECTS : enabling fast and effective prioritization of positional candidates. Bioinformatics, 22(6) pages 773–774, 2006. [AASY97] Divyakant Agrawal, Amr El Abbadi, Ambuj K. Singh, et Tolga Yurek. Efficient view maintenance at data warehouses. Dans Joan Peckham, éditeur, Proceedings of the 1997 ACM SIGMOD International Conference on Management of Data (SIGMOD ’97), pages 417–427, New York, Etats-Unis, 1997. ACM Press. [Abe94] Karl Aberer. The Use of Object-oriented Data Models in Biomolecular Databases. Dans Proceedings of the 1st International Workshop on ObjectOriented Computing in the Natural Sciences (OOCNS’94), Heidelberg, Allemagne, 22–25 Novembre 1994. [Abe95] Karl Aberer. The Use of Object-oriented Data Models in Biomolecular Databases. Dans Proceedings of the 2nd International Workshop on Object-Oriented Computing in the Natural Sciences (OOCNS’95), Grenoble, France, 21–24 Novembre 1995. [ABFS02] Bernd Amann, Catriel Beeri, Irini Fundulaki, et Michel Scholl. Querying XML Sources Using an Ontology-Based Mediator. Dans Proceedings of the On the Move (OTM) Conferences : Confederated International Conferences on Distributed Objects and Applications (DOA), Cooperative Information Systems (CoopIS) and Ontologies, Databases and Applications of Semantics (ODBASE) 2002, pages 429–448, Londres, Royaume-Uni, Octobre 2002. Springer-Verlag. [ACPS96] Sibel Adali, Kasim Selçuk Candan, Yannis Papakonstantinou, et Venkatramanan Siva Subrahmanian. Query Caching and Optimization in Distributed Mediator Systems. Dans H. V. Jagadish et Inderpal Singh Mumick, éditeurs, Proceedings of the 1996 ACM SIGMOD International Conference on Management of Data (SIGMOD ’96), pages 137–148. ACM Press, Juin 1996. 189 [ACV+ 00] Vincent Aguilera, Sophie Cluet, Pierangelo Veltri, Dan Vodislav, et Fanny Wattez. Querying XML documents in Xyleme. Rapport de recherche, Technical Report 182, Verso/INRIA, 2000. [AD98] Serge Abiteboul et Oliver M. Duschka. Complexity of answering queries using materialized views. Dans Proceedings of the 17th ACM Special Interest Group on Algorithms and Computation Theory (SIGACT), Management Of Data (SIGMOD) and Artificial Intelligence (SIGART) Symposium on Principles of Database Systems (PODS ’98), pages 254–263, New York, Etats-Unis, 1998. ACM Press. [Ade98] Brad Adelberg. NoDoSE - a tool for semi-automatically extracting structured and semistructured data from text documents. Dans Proceedings of the 1998 ACM SIGMOD International Conference on Management of Data (SIGMOD ’98), pages 283–294, New York, Etats-Unis, 1998. ACM Press. [AGM+ 90] Stephen F. Altschul, Warren Gish, Webb Miller, Eugene W. Myers, et David J. Lipman. Basic Local Alignment Search Tool. Journal of Molecular Biology, 215(3) pages 403–410, Octobre 1990. [AGM03] Arvind Arasu et Hector Garcia-Molina. Extracting structured data from Web pages. Dans Proceedings of the 2003 ACM SIGMOD International Conference on Management of Data (SIGMOD ’03), pages 337–348, New York, Etats-Unis, 2003. ACM Press. [AH96] Karl Aberer et Klemens Hemm. A Methodology for Building a Data Warehouse in a Scientific Environment. Dans Proceedings of the 1st IFCIS International Conference on Cooperative Information Systems (CoopIS’96), pages 90–101, 1996. [AKS98] Naveen Ashish, Craig A. Knoblock, et Cyrus Shahabi. Intelligent Caching for Information Mediators : A KR Based Approach. Dans Alexander Borgida, Vinay K. Chaudhri, et Martin Staudt, éditeurs, Proceedings of the 5th International Workshop on Knowledge Representation Meets Databases : Innovative Application Programming and Query Interfaces (KRDB ’98), volume 10 of CEUR Workshop Proceedings, pages 3.1–3.7. CEUR-WS, Mai 1998. [AL04] Marcelo Arenas et Leonid Libkin. A normal form for XML documents. ACM Transactions on Database Systems, 29(1) pages 195–232, Mars 2004. [AMJR04] Frank Lehmann-Horn Audrius Meskauskas et Karin Jurkat-Rott. Sight : automating genomic data-mining without programming skills. Bioinformatics, 20(11) pages 1718–1720, Juillet 2004. 190 [AMR06] Koen Aerts, Karel Maesen, et Anton Van Rompaey. A Practical Example of Semantic Interoperability of Large-Scale Topographic Databases Using Semantic Web Technologies. Dans Proceedings of the 9th AGILE Conference on Geographic Information Science, pages 35–42, Visegrád, Hongrie, 2006. [Are03] Andrew D. Arenson. Software review : Federating data with Information Integrator. Briefings in Bioinformatics, 4(4) pages 375–381, Décembre 2003. [ASL89] A. M. Alashqur, Stanley Y. W. Su, et Herman Lam. OQL : A Query Language for Manipulating Object-oriented Databases. Dans Peter M. G. Apers et Gio Wiederhold, éditeurs, Proceedings of the 15th International Conference on Very Large Data Bases (VLDB ’89), pages 433–442. Morgan Kaufmann, 22–25 Août 1989. [ASN] ASN.1. Abstract Syntax Notation One. http://asn1.elibel.tm.fr/en/. [ATLB03] Mike Ault, Madhu Tumma, Daniel Liu, et Don Burleson. Oracle Database 10g New Features : Oracle10g Reference for Advanced Tuning and Administration. Rampant TechPress, 2003. [Att02] Terri K. Attwood. The PRINTS database, a resource for identification of protein families. Briefings in Bioinformatics, (3(3)) pages 252–263, Mars 2002. [AVB01] Frédéric Achard, Guy Vaysseix, et Emmanuel Barillot. XML, bioinformatics, and data integration. Bioinformatics, 17(2) pages 115–125, 2001. [BAB+ 04] Ewan Birney, T. Daniel Andrews, Paul Bevan, Mario Cáccamo, Graham Cameron, Yuan Chen, Laura Clarke, G. Coates, Tony Cox, James A. Cuff, Val Curwen, Tim Cutts, Thomas Down, Richard Durbin, Eduardo Eyras, X. M. Fernandez-Suarez, P. Gane, B. Gibbins, J. Gilbert, Martin Hammond, H. Hotz, V. Iyer, Andreas Kähäri, K. Jekosch, Arek Kasprzyk, Damian Keefe, S. Keenan, Heikki Lehväslaiho, Graham P. McVicker, Craig Melsopp, Patrick Meidl, Emmanuel Mongin, Roger Pettett, S. Potter, Glenn Proctor, M. Rae, S. Searle, Guy Slater, Damian Smedley, James Smith, W. Spooner, Arne Stabenau, Jim Stalker, R. Storey, Abel Ureta-Vidal, Cara Woodwark, Michele E. Clamp, et Tim J. P. Hubbard. Ensembl 2004. Nucleic Acids Research, Database Issue, 32 pages 468–470, 2004. [BAD+05] Catherine A. Ball, Ihab A. B. Awad, Janos Demeter, Jeremy Gollub, Joan M. Hebert, Tina Hernandez-Boussard, Heng Jin, John C. Matese, Michael Nitzberg, Farrell Wymore, Zachariah K. Zachariah, Patrick O. Brown, et Gavin Sherlock. The Stanford Microarray Database accommodates additional 191 microarray platforms and data formats. Nucleic Acids Research, 33 pages 580–582, 2005. [BBC+ 02] Amit Bahl, Brian Brunk, Ross L. Coppel, Jonathan Crabtree, Sharon J. Diskin, Martin J. Fraunholz, Gregory R. Grant, Dinesh Gupta, Robert L. Huestis, Jessica C. Kissinger, Philip Labo, Li Li, Shannon K. McWeeney, Arthur J. Milgram, David S. Roos, Jonathan Schug, et Christian J. Stoeckert Jr. PlasmoDB : the Plasmodium genome resource. An integrated database providing tools for accessing, analyzing and mapping expression and sequence data (both finished and unfinished). Nucleic Acids Research, 30(1) pages 87–90, Janvier 2002. [BBLO97] Dennis A. Benson, Mark S. Boguski, David J. Lipman, et James Ostell. GenBank. Nucleic Acids Research, 25(1) pages 1–6, 1997. [BC04a] Omar Boucelma et François-Marie Colonna. GQuery : A Query Language for GML. Dans Elfriede Fendel et Massimo Rumor, éditeurs, Proceedings of the 24th Urban Data Management Symposium (UDMS 2004), pages 23–32, Chioggia, Italie, 27–29 Octobre 2004. [BC04b] Omar Boucelma et François-Marie Colonna. Mediation for Online Geoservices. Dans Proceedings of the 4th Web and Wireless Geographical Information Systems International Workshop (W2GIS 2004), pages 81–93, Hang Kong, Corée, 2004. Springer. [BCE04] Omar Boucelma, François-Marie Colonna, et Mehdi Essid. The VirGIS Geographic Integration System. Dans Actes des Vingtièmes Journées Bases de Données Avancées (BDA 2004), Montpellier, France, 19–22 Octobre 2004. [BCL03] Sourav S. Bhowmick, Pedro Cruz, et Amey V. Laud. XomatiQ : Living With Genomes, Proteomes, Relations and a Little Bit of XML. Dans Proceedings of the 19th International Conference on Data Engineering (ICDE 2003), pages 857–868, 2003. [BDF+ 03] Peter Buneman, Susan Davidson, Wenfei Fan, Carmem Hara, et WangChiew Tan. Reasoning about keys for XML. Information Systems, 28(8) pages 1037–1063, 2003. [BE03] Joachim Biskup et David W. Embley. Extracting information from heterogeneous information sources using ontologically specified target views. Information Systems, 28(3) pages 169–212, 2003. [BEL02] Omar Boucelma, Mehdi Essid, et Zoé Lacroix. A WFS-based mediation system for GIS interoperability. Dans Proceedings of the 10th ACM Internatio192 nal Symposium on Advances in Geographic Information Systems (ACM-GIS 2002, pages 23–28, McLean, Virginie, Etats-Unis, 8–9 Novembre 2002. [BFG01] Robert Baumgartner, Sergio Flesca, et Georg Gottlob. The Elog Web Extraction Language. Dans Proceedings of 8th International Conference on Logic for Programming, Artificial Intelligence and Reasoning (LPAR 2001), volume 2250 of Lecture Notes in Computer Science, pages 548–560, Londres, Royaume-Uni, 3–7 Décembre 2001. Springer-Verlag. [BFL04] Sarah Cohen Boulakia, Christine Froidevaux, et Séverine Lair. Interrogation de sources biomédicales : prise en compte des préférences de l’utilisateur. Dans Actes des 4èmes journées Extraction et Gestion des Connaissances (EGC’2004), Revue des Nouvelles Technologies de l’Information, pages 53– 64, Clermont-Ferrand, France, 20–23 Janvier 2004. Cépaduès-Éditions. [BGL+99] Chaitan Baru, Amarnath Gupta, Bertram Ludäscher, Richard Marciano, Yannis Papakonstantinou, Pavel Velikhov, et Vincent Chu. XML-based information mediation with MIX. SIGMOD Records, 28(2) pages 597–599, 1999. [Bis98] Yaser A. Bishr. Overcoming the Semantic and Other Barriers to GIS Interoperability. International Journal of Geographical Information Science, 12(4) pages 299–314, 1998. [BJL+ 99] Djamal Benslimane, Fabrice Jouanot, Robert Laurini, Kokou Yétongnon, Nadine Cullot, et Marinette Savonnet. Interopérabilité de SIG : un état de l’art. Revue Internationale de Géomatique, 9(3) pages 279–316, 1999. [BKL+ 04] Michael Boyd, Sasivimol Kittivoravitkul, Charalambos Lazanitis, Peter McBrien, et Nikos Rizopoulos. AutoMed : A BAV Data Integration System for Heterogeneous Data Sources. Dans Proceedings of the 16th International Conference on Advanced Information Systems Engineering (CAiSE 2004), volume 3084 of Lecture Notes in Computer Science, pages 82–97, Riga, Lettonie, 7–11 June 2004. Springer. [BL02] Omar Boucelma et Zoé Lacroix. Mediation-based Integration of Heterogeneous Biological Resources. Dans Proceedings of the 13th ISMIS Workshop on Bioinformatics (ISMIS 2002), Lyon, France, Juin 2002. [BLN86] Carlo Batini, Maurizio Lenzerini, et Shamkant B. Navathe. A comparative analysis of methodologies for database schema integration. ACM Computing Survey, 18(4) pages 323–364, 1986. [BLP01a] David Buttler, Ling Liu, et Calton Pu. A Fully Automated Object Extraction System for the World Wide Web. Dans Proceedings of the 21st 193 International Conference on Distributed Computing Systems (ICDCS ’01), page 361, Washington, Etats-Unis, 2001. IEEE Computer Society. [BLP01b] David Buttler, Ling Liu, et Carlton Pu. A Fully Automated Object Extraction System for the World Wide Web. Dans Proceedings of the 2001 International Conference on Distributed Computing Systems (ICDCS’01), pages 361–370, Phoenix, Arizona, Mai 2001. [BLR97] Ekard Burger, Johannes Link, et Otto Ritter. A Multi-Agent Architecture for the Integration of Genomic Information. Dans Proceedings of the 1st International Workshop on Intelligent Information Integration (III’97), Fribourg, Allemagne, Septembre 1997. [BMLBL03] Zina Ben-Miled, Nianhua Li, Mark Baumgartner, et Yang Liu. A Decentralized Approach to the Integration of Life Science Web Databases. Informatica, 27(1) pages 3–14, 2003. [BMLL+ 04] Zina Ben-Miled, Nianhua Li, Yang Liu, Yue He, Eric Lynch, et Omran A. Bukhres. On the Integration of a Large Number of Life Science Web Databases. Dans Proceedings of the 1st Database Integration in the Life Sciences Workshop (DILS 2004), pages 172–186, 25–26 Mars 2004. [Bre99] Steven E. Brenner. Errors in genome annotation. Trends in Genetics, 15 pages 132–133, 1999. [Bur02] Sean M. Burke. Perl and LWP : fetching Web pages, parsing HTML, writing spiders and more. O’Reilly, 2002. [Can05] Génome Canada. Politique sur la diffusion des données et le partage des ressources. Rapport de recherche, Génome Canada, Juillet 2005. [Car92] Robert L. Carpenter. The Logic of Typed Feature Structures. Cambridge University Press, Nomvembre 1992. [CBB+ 00] Roderic G. G. Cattell, Douglas K. Barry, Mark Berler, Jeff Eastman, David Jordan, Craig Russell, Olaf Schadow, Torsten Stanienda, et Fernando Velez. The Object Data Standard : ODMG 3.0. Morgan Kaufmann, Janvier 2000. [CBP+ 05] Doina Caragea, Jie Bao, Jyotishman Pathak, Adrian Silvescu, Carson M. Andorf, Drena Dobbs, et Vasant Honavar. Information Integration from Semantically Heterogeneous Biological Data Sources. Dans Proceedings of the 16th International Workshop on Database and Expert Systems Applications (DEXA 2005), pages 580–584, Copenhague, Danemark, 22–26 Août 2005. [CCCR04] James A. Cuff, Guy M.P. Coates, Tim J.R. Cutts, et Mark Rae. The Ensembl Computing Architecture. Genome Research, 14(5) pages 971–975, Mai 2004. 194 [CCD06] CCDS. Consensus CDS http://www.ncbi.nlm.nih.gov/CCDS/, 2006. protein set. [CCS93] Edgar Frank Codd, Sharon B. Codd, et Clynch T. Salley. Providing OLAP (On-line Analytical Processing) to User-Analysts : An IT Mandate. Rapport de recherche, 1993. [CDWP02] Fabio Ciravegna, Alexiei Dingli, Yorick Wilks, et Daniela Petrelli. Adaptive information extraction for document annotation in amilcare. Dans Proceedings of the 25th Annual International ACM SIGIR Conference on Research and Development in information retrieval (SIGIR ’02), pages 451–451, New York, Etats-Unis, 2002. ACM Press. [CEA+ 04] Val Curwen, Eduardo Eyras, Daniel T. Andrews, Laura Clarke, Emmanuel Mongin, , Steven M. Searle, et Michele Clamp. The Ensembl Automatic Gene Annotation System. Genome Research, 14(5) pages 942–950, Mai 2004. [CGM98] Terence Critchlow, Madhavan Ganesh, et Ron Musick. Automatic Generation of Warehouse Mediators using an Ontology Engine. Dans Knowledge Representation Meets Databases, Proceedings of the 5th KRDB Workshop (KRDB ’98), pages 8.1–8.8, Seattle, Etats-Unis, 31 Mai 1998. [CGMH+ 94] Sudarshan Chawathe, Hector Garcia-Molina, Joachim Hammer, Kelly Ireland, Yannis Papakonstantinou, Jeffrey D. Ullman, et Jennifer Widom. The TSIMMIS Project : Integration of heterogeneous information sources. Dans Proceedings of the 16th Meeting of the Information Processing Society of Japan, pages 7–18, Tokyo, Japon, 1994. [Cha98] Don Chamberlin. A Complete Guide to DB2 Universal Database. Morgan Kaufmann Publishers, San Francisco, Californie, 1998. [CL01] Chia-Hui Chang et Shao-Chen Lui. IEPAD : information extraction based on pattern discovery. Dans Proceedings of the 10th International World Wide Web Conference (WWW 10), pages 681–688, Hong Kong, Chine, 1–5 Mai 2001. [CLL01] Diego Calvanese, Domenico Lembo, et Maurizio Lenzerini. Survey on methods for query rewriting and query answering using views. Rapport de recherche D1.R5, Université de Rome ”La Sapienza”, Rome, Italie, Avril 2001. [CLRS01] Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, et Clifford Stein. Introduction to Algorithms. MIT Press, Octobre 2001. [CM95] I-Min A. Chen et Victor M. Markowitz. An overview of the object protocol 195 model (OPM) and the OPM data management tools. Information Systems, 20(5) pages 393–418, 1995. [CM06] Kajal T. Claypool et Sanjay Madria. A P2P Integration Architecture for Protein Resources. Dans Proceedings of the 17th International Conference on Database and Expert Systems Applications (DEXA ’06), pages 717–721, Washington, Etats-Unis, 2006. IEEE Computer Society. [CMM01] Valter Crescenzi, Giansalvatore Mecca, et Paolo Merialdo. RoadRunner : Towards Automatic Data Extraction from Large Web Sites. Dans Proceedings of the 27th International Conference on Very Large Data Bases (VLDB ’01), pages 109–118, 2001. [Col97] Robert M. Colomb. Impact of Semantic Heterogeneity and Federating Databases. The Computer Journal, 40(5) pages 235–244, 1997. [Col06] François-Marie Colonna. Communication personnelle avec Bert Overduin du service Ensembl Helpdesk, Juin 2006. [Com05] Committee on Frontiers at the Interface of Computing and Biology. Catalyzing Inquiry at the Interface of Computing and Biology. National Research Council of the National Academies, Washington, Etats-Unis, 2005. [CR07] Marc Van Cappellen et Jonathan Robie. White Paper : Performance Tips for DataDirect XQuery. DataDirect Technologies, 2007. [CSB06] François-Marie Colonna, Yacine Sam, et Omar Boucelma. Database Integration for Predisposition Genes Discovery. Dans Challenges and Opportunities of Healthgrids, Proceedings of 4th HealthGrid Annual Conference, volume 120 of Studies in Health Technology and Informatics. IOS Press, 7–9 Juin 2006. [CVV01] Sophie Cluet, Pierangelo Veltri, et Dan Vodislav. Views in a Large Scale XML Repository. Dans Proceedings of the 27th International Conference on Very Large Data Bases (VLDB, pages 271–280, Rome, Italie, 11–14 Septembre 2001. [Dai04] Fabrice Daian. Fouille et intégration de données génomiques. Mémoire de Master, DEA Informatique, Faculté des Sciences de Luminy, Marseille, 2004. [Dat03] Christopher J. Date. An Introduction to Database Systems. Addison Wesley Longman, 2003. [DCB+ 01] Susan B. Davidson, Jonathan Crabtree, Brian P. Brunk, Jonathan Schug, Val Tannen, G. Christian Overton, et Christian J. Stoeckert Jr. K2/Kleisli and GUS : experiments in integrated access to genomic data sources. IBM Systems Journal, 40(2) pages 512–531, 2001. 196 [DDB06] DDBJ. DNA Data Bank of Japan. http://www.ddbj.nig.ac.jp, 2006. [DG97] Oliver M. Duschka et M R. Genesereth. Query Planning in Infomaster. Dans Proceedings of the 12th ACM Symposium on Applied Computing (SAC ’97), pages 109–111, San José, Etats-Unis, 28 Février–2 Mars 1997. ACM Press. [DGY05] Florin Dragan, Georges Gardarin, et Laurent Yeh. MediaPeer : A Safe, Scalable P2P Architecture for XML Query Processing. Dans Proceedings of the 16th International Workshop on Database and Expert Systems Applications (DEXA 2005), pages 368–373, Copenhague, Danemark, 22–26 August 2005. IEEE Computer Society. [DKE01] Werner Dubitzky, Olga Krebs, et Roland Eils. Minding, OLAPing, and mining biological data : towards a data warehousing concept in biology. Dans Proceedings of the 1st Network Tools and Applications in Biology (NETTAB 2001), CORBA and XML : Towards a Bioinformatics Integrated Network Environment, pages 78–82, 2001. [DLW00] Susan B. Davidson, Hartmut Liefke, et Limsoon Wong. Creating and Maintaining Curated View Databases. Rapport de recherche, World Scientific Publishing Company, Juin 2000. [DOB95] Susan B. Davidson, G. Christian Overton, et Peter Buneman. Challenges in Integrating Biological Data Sources. Journal of Computational Biology, 2(4) pages 557–572, 1995. [DOTW97] Susan B. Davidson, G. Christian Overton, Val Tannen, et Limsoon Wong. BioKleisli : A Digital Library for Biomedical Researchers. International Journal on Digital Libraries, 1(1) pages 36–53, 1997. [DR04] Hong Hai Do et Erhard Rahm. Flexible Integration of Molecular-Biological Annotation Data : The GenMapper Approach. Dans Proceedings of the 9th International Conference on Extending Database Technology (EDBT 2004), volume 2992 of Lecture Notes in Computer Science, pages 811–822. Springer, 14–18 Mars 2004. [DS04] Marie-Dominique Devignes et Malika Smaı̈l. Integration of biological data from web resources : Management of multiple answers through metadata retrieval. Dans Proceedings of 12th International Conference on Intelligent Systems for Molecular Biology - 3rd European Conference on Computational Biology (ISMB-ECCB 2004), Août 2004. [DSS02] Marie-Dominique Devignes, André Schaaff, et Malika Smaı̈l. Collecte et intégration de données biologiques hétérogènes sur le web. Ingénierie des Systèmes d’Information, 7(1-2) pages 45–61, 2002. 197 [Dub03] Nicolas Dubois. Package Feature Structure : Rapport de stage. Equipe Langue & Dialogue, LORIA, Août 2003. [DW03] Susan Davidson et Limsoon Wong. The Kleisli Approach to Data Transformation and Integration. Dans The Functional Approach to Data Management : Modeling, Analyzing, and Integrating Heterogeneous Data, chapitre 6, pages 135–165. Springer-Verlag, Septembre 2003. [EBB06] Mehdi Essid, Omar Boucelma, et Stéphane Bressan. Answering Queries in the Presence of XML Keys. Dans Proceedings of the 17th International Workshop on Database and Expert Systems Applications (DEXA 2006), pages 476–481, Cracovie, Pologne, 4–8 Septembre 2006. IEEE Computer Society. [EBCL04] Mehdi Essid, Omar Boucelma, François-Marie Colonna, et Yassine Lassoued. Query Processing in a Geographic Mediation System. Dans 12th ACM International Workshop on Geographic Information Systems (ACM-GIS 2004), pages 101–108, Washington DC, Etats-Unis, 12–13 Novembre 2004. ACM. [EBG+ 07] Robert Ennals, Eric A. Brewer, Minos N. Garofalakis, Michael Shadle, et Prashant Gandhi. Intel Mash Maker : join the web. SIGMOD Record, 36(4) pages 27–33, Décembre 2007. [EBI06] EBI. European Bioinformatics Institute. http://www.ebi.ac.uk/, 2006. [ECBB06] Mehdi Essid, François-Marie Colonna, Omar Boucelma, et Abdelkader Bétari. Querying Mediated Geographic Data Sources. Dans Advances in Database Technology - EDBT 2006, 10th International Conference on Extending Database Technology (EDBT 2006), volume 3896 of Lecture Notes in Computer Science, pages 1176–1181, Munich, Allemagne, 26–31 Mars 2006. Springer. [ECJ+ 99] David W. Embley, Douglas M. Campbell, Y. S. Jiang, Stephen W. Liddle, Deryle W. Lonsdale, Yiu-Kai Ng, et Randy D. Smith. Conceptual-modelbased data extraction from multiple-record Web pages. Data & Knowledge Engineering, 31(3) pages 227–251, 1999. [ECL03] Henrik Engström, Sharma Chakravarthy, et Brian Lings. Maintenance policy selection in heterogeneous data warehouse environments : a heuristics-based approach. Dans Proceedings of the 6th ACM International Workshop on Data warehousing and OLAP (DOLAP ’03), pages 71–78, New York, EtatsUnis, 2003. ACM Press. [EDS+ 06] Tina A. Eyre, Fabrice Ducluzeau, Tam P. Sneddon, Sue Povey, Elspeth A. 198 Bruford, et Michael J. Lush. The HUGO Gene Nomenclature Database, 2006 updates. Nucleic Acids Research, 34 pages 319–321, 2006. [EJN99] David W. Embley, Y. S. Jiang, et Yiu-Kai Ng. Record-Boundary Discovery in Web Documents. Dans Alex Delis, Christos Faloutsos, et Shahram Ghandeharizadeh, éditeurs, Proceedings of the 1999 ACM SIGMOD International Conference on Management of Data (SIGMOD ’99), pages 467–478. ACM Press, 1–3 Juin 1999. [EKJ01] Barbara A. Eckman, Anthony S. Kosky, et Leonardo A. Laroco Jr. Extending traditional query-based integration approaches for functional characterization of post-genomic data. Bioinformatics, 17(7) pages 587–601, 2001. [EMB07] EMBL. Nucleotide Sequence Database. http://www.ebi.ac.uk/embl/, 2007. [Ess05] Mehdi Essid. Intégration des données et applications hétérogènes et distribuées sur le Web. Thèse de doctorat, Université de Provence, Marseille, France, 2005. [EUA96] Thure Etzold, Anatoly Ulyanov, et Patrick Argos. SRS : Information Retrievat System for Molecular Biology Databanks. Methods in Enzymology, 266 pages 114–128, 1996. [FABS02] Irini Fundulaki, Bernd Amann, Catriel Beeri, et Michel Scholl. STYX : Connecting the XML World to the World of Semantics. Dans Proceedings of the 8th International Conference on Extending Database Technology (EDBT 2002), Prague, République Tchèque, Mars 2002. [Fas94] Ken Fasman. Restructuring the Genome Data Base : A model for a federation of biological databases. Journal of Computational Biology, 1(2) pages 165–171, 1994. [FB02] Christine Froidevaux et Sarah Cohen Boulakia. Intégration de Sources de Données Génomiques du Web. Dans Actes électroniques des Journées scientifiques du Web Sémantique, Sorbonne, Paris, 2002. [FBF+06] Lude Franke, Harmvan Bakel, Like Fokkens, Edwin D. de Jong, Michael Egmont Petersen, et Cisca Wijmenga. Reconstruction of a Functional Human Gene Network, with an Application for Prioritizing Positional Candidate Genes. The American Journal of Human Genetics, 78(6) pages 1011–1025, 2006. [FFMM94] T. Finin, R. Fritzson, D. McKay, et R. McEntire. KQML as an Agent Communication Language. Dans N. Adam, B. Bhargava, et Y. Yesha, éditeurs, 199 Proceedings of the 3rd International Conference on Information and Knowledge Management (CIKM ’94), pages 456–463, Gaithersburg, Etats-Unis, 1994. ACM Press. [FGM+ 98] Wataru Fujibuchi, Susumu Goto, Hiroshi Migimatsu, Ikuo Uchiyama, Atsushi Ogiwara, Yutaka Akiyama, et Minoru Kanehisa. DBGET/linkDB : an integrated database retrieval system. Dans Proceedings of the 3rd Pacific Symposium on Biocomputing, pages 681–692, 1998. [FHM91] Douglas Fang, Joachim Hammer, et Dennis McLeod. The identification and resolution of semantic heterogeneity in multidatabase systems. Dans Proceedings of International Workshop on Interoperability in Multidatabase Systems, pages 136–143, Kyoto, Japon, 7–9 Avril 1991. [FKA+ 03] Laurence Flori, Brice Kumulungui, Christophe Aucan, Christelle Esnault, Alfred S. Traoré, Francis Fumoux, et Pascal Rihet. Linkage and association between Plasmodium falciparum blood infection levels and chromosome 5q31-q33. Genes and Immunity, 4(4) pages 265–268, 2003. [FLM99] Marc Friedman, Alon Levy, et Todd Millstein. Navigational plans for data integration. Dans Proceedings of the 16th National Conference on Artificial Intelligence (AAAI ’99) and the 11th Innovative Applications of Artificial Intelligence Conference (IAAI ’99), pages 67–73, Menlo Park, Californie, Etats-Unis, 1999. American Association for Artificial Intelligence. [Fly06] FlyBase. A database of the http://flybase.bio.indiana.edu, 2006. [FW97] Marc Friedman et Daniel S. Weld. Efficiently Executing InformationGathering Plans. Dans Proceedings of the 15th International Joint Conference on Artificial Intelligence (IJCAI ’97), pages 785–791, 1997. [Gal07] Michael Y. Galperin. The Molecular Biology Database Collection : 2007 update. Nucleic Acids Research, Database Issue, 35, 2007. [Gal08] Michael Y. Galperin. The Molecular Biology Database Collection : 2008 update. Nucleic Acids Research, 36(1) pages 2–4, 2008. [Gar03] Georges Gardarin. Bases de données. Eyrolles, Août 2003. [Gaë00] Bruno André Gaëta. BioNavigator : an integrated web front-end for bioinformatics analysis. Australasian Biotechnology, 10(2), 2000. [GB06] Erich Gamma et Kent Beck. Eclipse : Principes, patterns et plug-in. Campus Press, 2006. 200 Drosophila Genome. [GBB+03] Jeremy Gollub, Catherine A. Ball, Gail Binkley, David B. Finkelstein Janos Demeter, Joan M. Hebert, Tina Hernandez-Boussard, Heng Jin, Miroslava Kaloper, John C. Matese, Mark Schroeder, Patrick O. Brown, David Botstein, et Gavin Sherlock. The Stanford Microarray Database : data access and quality assessment tools. Nucleic Acids Research, 31(1) pages 94–96, 2003. [GBMS99] Cheng Hian Goh, Stéphane Bressan, Stuart Madnick, et Michael Siegel. Context interchange : new features and formalisms for the intelligent integration of information. ACM Transactions on Information Systems, 17(3) pages 270–292, 1999. [Gen02] Consortium Genostar. Genostar : an integrated bioinformatics platform for exploratory genomics. http://www.genostar.com/, 2002. [GGH+03] Elisabeth Gasteiger, Alexandre Gattiker, Christine Hoogland, Ivan Ivanyi, Ron D. Appel, et Amos Bairoch. ExPASy : The proteomics server for indepth protein knowledge and analysis. Nucleic Acids Research, 31(13) pages 3784–3788, Juillet 2003. [GGM99] Jean-Marc Geib, Christophe Gransart, et Philippe Merle. concepts à la pratique. InterEditions, 1999. [GHL07] Robert P. Guralnick, Andrew W. Hill, et Meredith Lane. Towards a collaborative, global infrastructure for biodiversity assessment. Ecology Letters, 10(8) pages 663–672, Août 2007. [GKB+04] Georg Gottlob, Christoph Koch, Robert Baumgartner, Marcus Herzog, et Sergio Flesca. The Lixto data extraction project : back and forth between theory and practice. Dans Proceedings of the 23rd ACM Special Interest Group on Algorithms and Computation Theory (SIGACT), Management Of Data (SIGMOD) and Artificial Intelligence (SIGART) Symposium on Principles of Database Systems (PODS ’04), pages 1–12, New York, EtatsUnis, 2004. ACM Press. [GL94] Piyush Gupta et Eileen Lin. DataJoiner : a practical approach to multidatabase access. Dans Proceedings of the 3rd International Conference on Parallel and Distributed Information Systems (PDIS ’94), pages 264–264, Los Alamitos, Californie, Etats-Unis, 1994. IEEE Computer Society Press. [GLM00] Amarnath Gupta, Bertram Ludascher, et Maryann E. Martone. KnowledgeBased Integration of Neuroscience Data Sources. Dans Proceedings of the 12th International Conference on Scientic and Statistical Database Manage201 Corba, des ment (SSDBM), pages 39–52, Berlin, Allemagne, Juillet 2000. IEEE Computer Society. [GLR06] Anna Gambin, Slawomir Lasota, et Michal Rutkowski. Analyzing stationary states of gene regulatory network using Petri nets. In Silico Biology, 6 pages 93–109, 2006. [GM78] Hervé Gallaire et Jack Minker, éditeurs. Proceedings of the Symposium on Logic and Data Bases, Advances in Data Base Theory, Centre d’études et de recherches de Toulouse, 1978. Plemum Press. [GMB+ 05] Emilie Guérin, Gwenaëlle Marquet, Anita Burgun, Olivier Loréal, Laure Berti-Equille, Ulf Leser, et Fouzia Moussouni. Integrating and Warehousing Liver Gene Expression Data and Related Biomedical Resources in GEDAW. Dans Proceedings of the 2nd Database Integration in the Life Sciences Workshop (DILS 2005), pages 158–174, 20–22 Juillet 2005. [GMPQ+ 97] Hector Garcia-Molina, Yannis Papakonstantinou, Dallan Quass, Anand Rajaraman, Yehoshua Sagiv, Jeffrey Ullman, Vasilis Vassalos, et Jennifer Widom. The TSIMMIS Approach to Mediation : Data Models and Languages. Journal of Intelligent Information Systems, 8(2) pages 117–132, 1997. [Goa01] François Goasdoué. Réécriture de requêtes en termes de vues dans CARIN et intégration d’informations. Thèse de doctorat, Université de Paris XI, Orsay, 2001. [Gri05] Arthur Griffith. Java, XML, and the JAXP. Wiley, 2005. [GSSC95] Manuel Garcı́a-Solaco, Fèlix Saltor, et Malú Castellanos. Semantic heterogeneity in multidatabase systems. pages 129–202. Prentice Hall International Ltd., Hertfordshire, Royaume-Uni, 1995. [GUS05] GUS. GUS platform for functional genomics - Release 3.5.1. http://www.gusdb.org, 2005. [HAB+ 05] Alon Y. Halevy, Naveen Ashish, Dina Bitton, Michael Carey, Denise Draper, Jeff Pollock, Arnon Rosenthal, et Vishal Sikka. Enterprise information integration : successes, challenges and controversies. Dans Proceedings of the 2005 ACM SIGMOD international conference on Management of data (SIGMOD ’05), pages 778–787, New York, Etats-Unis, 2005. ACM. [Hal01] Alon Y. Halevy. Answering queries using views : A survey. VLDB Journal, 10(4) pages 270–294, 2001. [HD98] Chun-Nan Hsu et Ming-Tzung Dung. Generating finite-state transducers for semi-structured data extraction from the Web. Information Systems, 23(9) pages 521–538, 1998. 202 [HDRK97] Sean Hamill, Maurice Dixon, Brian J. Read, et John R. Kalmus. Interoperating Database Systems : Issues and Architectures. Rapport de recherche TR97-063, Council for the central laboratory of the research councils, RoyaumeUni, 1997. [HK04] Thomas Hernandez et Subbarao Kambhampati. Integration of biological sources : current systems and challenges ahead. SIGMOD Records, 33(3) pages 51–60, 2004. [HM85] Dennis Heimbigner et Dennis McLeod. A federated architecture for information management. ACM Transactions on Information Systems, 3(3) pages 253–278, 1985. [HM04] Eliot Rusty Harold et William Scott Means. XML in a Nutshell, Third Edition. O’Reilly Media, Inc., Octobre 2004. [HN96] Joseph M. Hellerstein et Jeffrey F. Naughton. Query execution techniques for caching expensive methods. Dans Proceedings of the 1996 ACM SIGMOD International Conference on Management of Data (SIGMOD ’96), pages 423–434, New York, Etats-Unis, 1996. ACM Press. [HQ04] Benjamin Habegger et Mohamed Quafafou. Building Web Information Extraction Tasks. Dans Proceedings of the 2004 IEEE/WIC/ACM International Conference on Web Intelligence, pages 349–355, Washington, Etats-Unis, 2004. IEEE Computer Society. [HRC+ 04] Thierry Hotelier, Ludovic Renault, Xavier Cousin, Vincent Negre, Pascale Marchot, et Arnaud Chatonnet. ESTHER, the database of the alpha/betahydrolase fold superfamily of proteins. Nucleic Acids Research, 32(1) pages 145–147, 2004. [HS03] Joachim Hammer et Markus Schneider. Going Back to Our Database Roots for Managing Genomic Data. OMICS, 7(1) pages 117–120, 2003. [HSK+ 01] Laura M. Haas, Peter M. Schwarz, Prasad Kodali, Elon Kotlar, Julia E. Rice, et William C. Swope. DiscoveryLink : a system for integrated access to life sciences data sources. IBM Systems Journal, 40(2) pages 489–511, 2001. [Inm02] William H. Inmon. Building the Data Warehouse, Third Edition. John Wiley & Sons, Inc., New York, Etats-Unis, 2002. [Int06] RTI International. The http://www.gdb.org, 2006. [Jam03] D. Curtis Jamison. Open Bioinformatics. Bioinformatics, 19(6) pages 679– 680, 2003. 203 GDB Human Genome Database. [JMS96] D. Curtis Jamison, Brad Mills, et Bruce Schatz. An extensible network query unification system for biological databases. Computer Applications In the Biosciences, 12(2) pages 145–150, 1996. [JO03] H. V. Jagadish et Frank Olken. Data Management for the Biosciences, Report of the NSF/NLM Workshop on Data Management for Molecular and Cell Biology. Rapport de recherche LBNL-52767, Lawrence Berkeley National Laboratory, Novembre 2003. [Jou00] Fabrice Jouanot. Un modèle sémantique pour l’interopération de systèmes d’information. Dans Actes du XVIIIème Congrès INFORSID, pages 347– 364, Lyon, France, 16–19 Mai 2000. [Kap02] Jean-Claude Kaplan. Genomics and medicine : hopes and challenges. Gene Therapy, 9(11) pages 658–661, Juin 2002. [KBC+ 96] Gifford Keen, Jillian Burton, David Crowley, Emily Dickinson, Ada Espinosa-Lujan, Ed Franks, Carol Harger, Mo Manning, Shelley March, Mia McLeod, John O’Neill, Alicia Power, Maria Pumilia, Rhonda Reinert, David Rider, John Rohrlich, Jolene Schwertfeger, Linda Smyth, Nina Thayer, Charles Troup, et Chris Fields. The Genome Sequence DataBase (GSDB) : meeting the challenge of genomic sequencing. Nucleic Acids Research, 24(1) pages 13–16, 1996. [KBD+ 03] Donna Karolchik, Robert Baertsch, Mark Diekhans, Terrence S. Furey, Angie Hinrichs, Y. T. Lu, K. M. Roskin, M. Schwartz, C. W. Sugnet, D. J. Thomas, R. J. Weber, D. Haussler, et W. J. Kent. The UCSC Genome Browser Database. Nucleic Acids Research, 31(1) pages 51–54, Janvier 2003. [KCD+ 03] Howard Katz, Don Chamberlin, Denise Draper, Mary Fernández, Michael Kay, Jonathan Robie, Michael Rys, Jérôme Siméon, Jim Tivy, et Philip Wadler. XQuery from the Experts : A Guide to the W3C XML Query Language. Addison Wesley, Août 2003. [KGKN02] Minoru Kanehisa, Susumu Goto, Shuichi Kawashima, et Akihiro Nakaya. The KEGG databases at GenomeNet. Nucleic Acids Research, 30(1) pages 42–46, Janvier 2002. [Kim96] Ralph Kimball. The Data Warehouse Toolkit : Practical Techniques for Building Dimensional Data Warehouses. John Wiley, 1996. [KK02] Craig Knoblock et Subbarao Kambhampati. Information Integration on the Web, AAAI Tutorial. Rapport de recherche DOC 95/11, Association for the Advancement of Artificial Intelligence (AAAI), Juillet 2002. 204 [KLSS95] Thomas Kirk, Alon Y. Levy, Yehoshua Sagiv, et Divesh Srivastava. The Information Manifold. Dans C. Knoblock et A. Levy, éditeurs, Working Notes of the 4th Artifical Intelligence Spring Symposium on Information Gathering from Heterogeneous, Distributed Environments, pages 85–91, Université de Stanford, Californie, 1995. [KNNV02] Subbarao Kambhampati, Ullas Nambiar, Zaiqing Nie, et Sreelakshmi Vaddi. Havasu : A Multi-Objective, Adaptive Query Processing Framework for Web Data Integration. Rapport de recherche CSE TR-02-005, Arizona State University, Avril 2002. [KR06] Toralf Kirsten et Erhard Rahm. BioFuice : Mapping-Based Data Integration in Bioinformatics. Dans Proceedings of the 3rd Database Integration in the Life Sciences Workshop (DILS 2006), volume 4075 of Lecture Notes in Computer Science, pages 124–135. Springer, 20–22 Juillet 2006. [KS99] Takao Kataoka et Kenji Satou. A Full-Text Search System Covering the Whole GenomeNet. Dans Proceedings of the 10th Workshop on Genome Informatics (GIW ’99), volume 10, pages 308–309, Tokyo, Japon, 1999. Universal Academy Press. [KT03] Stefan Kuhlins et Ross Tredwell. Toolkits for Generating Wrappers. Dans Revised Papers from the 3rd International Conference NetObjectDays on Objects, Components, Architectures, Services, and Applications for a Networked World (NODe ’02), pages 184–198, Londres, Royaume-Uni, 2003. Springer-Verlag. [KWD97] Nickolas Kushmerick, Daniel S. Weld, et Robert B. Doorenbos. Wrapper Induction for Information Extraction. Dans Proceedings of the 15th International Joint Conference on Artificial Intelligence (IJCAI ’99), pages 729–737, Nagoya, Japon, 23–29 Août 1997. [LA87] Witold Litwin et Abdelaziz Abdellatif. An overview of the multi-database manipulation language MDSL. Proceedings of the IEEE, 75 pages 621–632, Mai 1987. [Lac01] Zoé Lacroix. Retrieving and Extracting Web Data with Search Views and an XML engine. Dans Proceedings of the First International Data Integration over the Web Workshop (DIWeb 2001), pages 76–90, Les Entrelacs, Suisse, 4 Juin 2001. [Lac02] Zoé Lacroix. Biological Data Integration : Wrapping Data and Tools. IEEE Transactions on Information Technology in Biomedicine, 6(2) pages 123– 128, 2002. 205 [Lan89] Rick F. Van Der Lans. The SQL standard : a complete guide reference. Prentice Hall International Ltd., Hertfordshire, Royaume-Uni, 1989. [LAZ+ 89] Witold Litwin, Abdelaziz Abdellatif, Abdelmalek Zeroual, Bertrand Nicolas, et Philippe Vigier. MSQL : A Multidatabase Language. Information Sciences, 49 pages 59–101, 1989. [LBié] Stanley Ian Letovsky et Mary B. Berlyn. Genera : A specification driven Web/database gateway tool. 1994 (non publié). [LBC+ 02] Amey V. Laud, Sourav S. Bhowmick, Pedro Cruz, Dadabhai T. Singh, et George Rajesh. The gRNA : A Highly Programmable Infrastructure for Prototyping, Developing and Deploying Genomics-Centric Applications. Dans Proceedings of the 28th International Conference on Very Large Data Bases (VLDB ’02), pages 928–939, Hong Kong, Chine, 20–23 Août 2002. [LBGR99] Mong Li Lee, Stéphane Bressan, Cheng Hian Goh, et Raghu Ramakrishnan. Integration of Disparate Information Sources : A Short Survey. Dans Proceedings of the Workshop on Logic Programming and Distributed Knowledge Management, Londres, Royaume-Uni, Avril 1999. [LC00] Chen Li et Edward Y. Chang. Query Planning with Limited Source Capabilities. Dans Proceedings of the 16th International Conference on Data Engineering (ICDE 2000), pages 401–412, 2000. [LC01] Chen Li et Edward Y. Chang. On Answering Queries in the Presence of Limited Access Patterns. Dans Proceedings of the 8th International Conference on Database Technology (ICDT 2001), pages 219–233, 2001. [Lev00] Alon Y. Levy. Logic-based techniques in data integration. pages 575–595, 2000. [LGZ03] Bing Liu, Robert Grossman, et Yanhong Zhai. Mining data records in Web pages. Dans Proceedings of the 9th ACM SIGKDD International Conference on Knowledge Discovery and Data mining (KDD ’03), pages 601–606, New York, Etats-Unis, 2003. ACM Press. [LJ03] Patrick Lambrix et Vaida Jakoniene. Towards transparent access to multiple biological databanks. Dans Proceedings of t(e 1st Asia-Pacific Bioinformatics Conference 2003 (APBC ’03), pages 53–60, Darlinghurst, Australie, 2003. Australian Computer Society, Inc. [LMMS+ 07] Brenton Louie, Peter Mork, Fernando Martin-Sanchez, Alon Halevy, et Peter Tarczy-Hornoch. Data integration and genomic medicine. Journal of Biomedical Informatics, 40 pages 5–16, Février 2007. 206 [LMNR04] Zoé Lacroix, Hyma Murthy, Felix Naumann, et Louiqa Raschid. Links and paths through life sciences data sources. Dans Proceedings of the 1st Database Integration in the Life Sciences Forum (DILS 2004), pages 203–211, 25–26 Mars 2004. [LMR90] Witold Litwin, Leo Mark, et Nick Roussopoulos. Interoperability of Multiple Autonomous Databases. ACM Computing Surveys, 22(3) pages 267–293, 1990. [LMS95] Alon Y. Levy, Alberto O. Mendelzon, et Yehoshua Sagiv. Answering queries using views. Dans Proceedings of the 14th ACM Special Interest Group on Algorithms and Computation Theory (SIGACT), Management Of Data (SIGMOD) and Artificial Intelligence (SIGART) Symposium on Principles of Database Systems (PODS ’95), pages 95–104, New York, Etats-Unis, 1995. ACM Press. [Loc06] LocusLink. Information about Genetic http://www.ncbi.nlm.nih.gov/projects/LocusLink/, 2006. [LP85] David J. Lipman et William R. Pearson. Rapid and sensitive protein similarity searches. Science, 227(4693) pages 1435–1441, 1985. [LP95] Ling Liu et Carlton Pu. The DIOM Approach to Large-scale Interoperable Database Systems. Rapport de recherche TR95-16, Department of Computing Science, University of Alberta, 1995. [LPV+ 05] Zoé Lacroix, Kaushal Parekh, Maria-Esther Vidal, Marelis Cardenas, et Natalia Marquez. Bionavigation : Selecting optimum paths through biological resources to evaluate ontological navigational queries. Dans Proceedings of the 2nd Database Integration in the Life Sciences Forum (DILS 2005), pages 275–283, 20–22 Juillet 2005. [LRC02] Phlippe Laublet, Chantal Reynaud, et Jean Charlet. Sur quelques aspects du Web Sémantique. Dans Actes des Assises du GDR I3, Nancy, France, 2002. Editions Cépadues. [LRO96a] Alon Y. Levy, Anand Rajaraman, et Joann J. Ordille. Query-Answering Algorithms for Information Agents. Dans Proceedings of the 13th National Conference on Artificial Intelligence (AAAI ’96) and the 8th Innovative Applications of Artificial Intelligence Conference (IAAI’ 96), pages 40–47, Menlo Park, Californie, Etats-Unis, 1996. AAAI Press / MIT Press. [LRO96b] Alon Y. Levy, Anand Rajaraman, et Joann J. Ordille. Querying Heterogeneous Information Sources Using Source Descriptions. Dans Proceedings of 207 Loci. the 22nd International Conference on Very Large Data Bases (VLDB ’96), pages 251–262, 1996. [Mar96] Philippe Martin. Exploitation de graphes conceptuels et de documents structurés et hypertextes pour l’acquisition de connaissances et la recherche d’informations. Thèse de doctorat, Université de Nice Sophia Antipolis, Nice, France, 1996. [MBA05] David A. Maluf, David G. Bell, et Naveen Ashish. Lean middleware. Dans Proceedings of the 2005 ACM SIGMOD international conference on Management of data (SIGMOD ’05), pages 788–791, New York, Etats-Unis, 2005. ACM. [MBG+ 07] Joan M. Mazzarelli, John Brestelli, Regina K. Gorski, Junmin Liu, Elisabetta Manduchi, Deborah F. Pinney, Jonathan Schug, Peter White, Klaus H. Kaestner, et Christian J. Stoeckert Jr. EPConDB : a web resource for gene expression related to pancreatic development, beta-cell function and diabetes. Nucleic Acids Research, 35(suppl 1) pages 751–755, Janvier 2007. [McL02] Brett McLaughlin. Java & XML Data Binding. O’Reilly & Associates, Inc., 2002. [Med06] MedLine. MedLine. http://www.ncbi.nlm.nih.gov, 2006. [Mei03] Wolfgang Meier. eXist : An Open Source Native XML Database. Dans Revised Papers from the NODe 2002 Web and Database-Related Workshops on Web, Web-Services, and Database Systems, volume 2593 of Lecture Notes in Computer Science, pages 169–183, Londres, Royaume-Uni, 2003. SpringerVerlag. [MGD06] MGD. Mouse Genome Database. http://www.informatics.jax.org/, 2006. [MHTH01] Peter Mork, Alon Halevy, et Peter Tarczy-Hornoch. A model for data integration systems of biomedical data applied to online genetic databases. Dans Proceedings of the 25th American Medical Informatics Association Annual Symposium (AMIA 2001), pages 473–477, Novembre 2001. [Mit01] Prasenjit Mitra. An algorithm for answering queries efficiently using views. Dans Proceedings of the 12th Australasian database conference (ADC ’01), pages 99–106, Washington, Etats-Unis, 2001. IEEE Computer Society. [MLM+ 03] Vamsi K. Mootha, Pierre Lepage, Kathleen Miller, Jakob Bunkenborg, Michael Reich, Majbrit Hjerrild, Terrye Delmonte, Amelie Villeneuve, Robert Sladek, Fenghao Xu, Grant A. Mitchell, Charles Morin, Matthias Mann, 208 Thomas J. Hudson, Brian Robinson, John D. Rioux, et Eric S. Lander. Identification of a gene causing human cytochrome c oxidase deficiency by integrative genomics. Proceedings of the National Academy of Sciences, 100(2) pages 605–610, 2003. [MM97] David May et Henk L. Müller. Icarus language definition. Rapport de recherche CSTR-97-007, Department of Computer Science, University of Bristol, Janvier 1997. [MMD+ 05] Zina Ben Miled, Malika Mahoui, Mindi Dippold, Ali Farooq, Nianhua Li, et Omran Bukhres. A Wrapper Induction Application with Knowledge Base Support : A Use Case for Initiation and Maintenance of Wrappers. Dans Proceedings of the 5th IEEE Symposium on Bioinformatics and Bioengineering (BIBE ’05), pages 65–72, Washington, Etats-Unis, 2005. IEEE Computer Society. [MMK01] Ion Muslea, Steven Minton, et Craig A. Knoblock. Hierarchical Wrapper Induction for Semistructured Information Sources. Autonomous Agents and Multi-Agent Systems, 4(1-2) pages 93–114, 2001. [MN03] Heiko Müller et Felix Naumann. Data Quality in Genome Databases. Dans Proceedings of the 8th International Conference on Information Quality (IQ 2003), pages 269–284, Novembre 2003. [Mor03] Stephen Morris. Network Management, MIBs and MPLS : Principles, Design and Implementation. Prentice Hall Professional Technical Reference, 2003. [MP03] Peter McBrien et Alexandra Poulovassilis. Data Integration by BiDirectional Schema Transformation Rules. Dans Proceedings of the 19th International Conference on Data Engineering (ICDE 2003), pages 227–238, 2003. [MR99] Peter Mott et Stuart Roberts. A Formalism for Context Mediation Based on Feature Logic. International Journal of Cooperative Information Systems, 8(4) pages 255–274, Décembre 1999. [MRDV99] Claudine Médigue, François Rechenmann, Antoine Danchin, et Alain Viari. Imagene : an integrated computer environment for sequence annotation and analysis. Bioinformatics, 15(1) pages 2–15, 1999. [MSHTH02] Peter Mork, Ron Shaker, Alon Halevy, et Peter Tarczy-Hornoch. PQL : A Declarative Query Language over Dynamic Biological Schemata. Dans Proceedings of the 26th American Medical Informatics Association Fall Symposium (AMIA 2002), pages 533–537, 2002. 209 [MSTH05] Peter Mork, Ron Shaker, et Peter Tarczy-Hornoch. The Multiple Roles of Ontologies in the BioMediator Data Integration System. Dans Bertram Ludäscher et Louiqa Raschid, éditeurs, Proceedings of the 2nd Database Integration in the Life Sciences Workshop (DILS 2005), volume 3615 of Lecture Notes in Computer Science, pages 96–104, San Diego, Californie, Juillet 20– 22 2005. Springer. [Méd03] Médience SA. Médience Server : Guide de l’utilisateur, Version 1.0. INRIA et Médience SA, Décembre 2003. [Nat06] National Library of Medicine of United States. PubMed : National Library of Medicine’s search service. http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=PubMed, 2006. [NCB] NCBI. Entrez, The Life Sciences Search Engine. http://www.ncbi.nlm.nih.gov/gquery/gquery.fcgi?itool=toolbar. [NCB06a] NCBI. FASTA format. http://www.ncbi.nlm.nih.gov/blast/fasta.shtml, 2006. [NCB06b] NCBI. GenBank. http://www.ncbi.nlm.nih.gov/Genbank/, 2006. [NCB06c] NCBI. National Center for http://www.ncbi.nlm.nih.gov/, 2006. [NFKWié] Zaiqing Nie, Jianchun Fan, Subbarao Kambhampati, et Garrett Wolf. BibFinder : A Computer Science Bibliography Mediator. 2007 (non publié). [NKH03] Zaiqing Nie, Subbarao Kambhampati, et Thomas Hernandez. BibFinder/StatMiner : Effectively Mining and Using Coverage and Overlap Statistics in Data Integration. Dans Proceedings of the 29th International Conference on Very Large Data Bases (VLDB ’03), pages 1097–1100, 9–12 Septembre 2003. [NQC05] Gilles Nachouki, Mohamed Quafafou, et Marie-Pierre Chastang. MDSManager : A System Based on Multidatasource Approach for Data Integration. Dans Proceedings of the 4th Web Intelligence Conference (WI 2005), pages 438–441, Compiègne, France, 19–22 Septembre 2005. [Odo05] Odonata. XQuare Bridge and Fusion Documentation, Version 1.1.1. Objectweb Consortium, Septembre 2005. [ODS04] Ross Overbeek, Terry Disz, et Rick Stevens. The SEED : a peer-to-peer environment for genome annotation. Communications of the ACM, 47(11) pages 46–51, 2004. 210 Biotechnology Information. [OJ03] Frank Olken et H. V. Jagadish. Data Management for Integrative Biology. OMICS, 7(1) pages 1–2, 2003. [OMG+ 02] Claire O’Donovan, Maria Jesus Martin, Alexandre Gattiker, Elisabeth Gasteiger, Amos Bairoch, et Rolf Apweiler. High-quality protein knowledge resource : SWISS-PROT and TrEMBL. Briefings in Bioinformatics, 3(3) pages 275–284, 2002. [OMI06] OMIM. Online Mendelian Inheritance in Man. http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=OMIM, 2006. [Ope03] OpenGIS. Geographic http://www.opengeospatial.org, 2003. [PGMU96] Yannis Papakonstantinou, Hector Garcia-Molina, et Jeffrey D. Ullman. Medmaker : A mediation system based on declarative specifications. Dans Stanley Y. W. Su, éditeur, Proceedings of the 12th International Conference on Data Engineering, pages 132–141. IEEE Computer Society, 26 Février - 1er Mars 1996. [PH00] Rachel Pottinger et Alon Y. Halevy. A Scalable Algorithm for Answering Queries Using Views. Dans Proceedings of the 26th International Conference on Very Large Data Bases (VLDB ’00), pages 484–495, Le Caire, Egypte, 10–14 Septembre 2000. Morgan Kaufmann. [Proié] JavaCC Project. JavaCC : Documentation Index. 2008 (non publié). [PS96] Christine Parent et Stefano Spaccapietra. Intégration de bases de données : Panorama des problèmes et des approches. Ingénierie des Systèmes d’Information, 4(3) pages 45–61, 1996. [RAT+ 98] Pascal Rihet, Laurent Abel, Yves Traoré, Thérèse Traoré-Leroux, Christophe Aucan, et Francis Fumoux. Human malaria : Segregation analysis of blood infection levels in a suburban area and a rural area in Burkina Faso. Genetic Epidemiology, 15(5) pages 435–450, 1998. [RB01] Erhard Rahm et Philip A. Bernstein. A survey of approaches to automatic schema matching. The VLDB Journal, 10(4) pages 334–350, 2001. [RBG+97] A.L. Rector, Sean Bechhofer, Carole Goble, Ian Horrocks, W.A. Nowlan, et W.D. Solomon. The GRAIL Concept Modelling Language for Medical Terminology. Artificial Intelligence in Medicine, 9 pages 139–171, 1997. Markup Language. [RCCPL98] Michael Rebhan, Vered Chalifa-Caspi, Jaime Prilusky, et Doron Lancet. GeneCards : a novel functional genomics compendium with automated data mining and query reformulation support. Bioinformatics, 14(8) pages 656–664, 1998. 211 [RDM04] Erhard Rahm, Hong-Hai Do, et Sabine Mabmann. Matching large XML schemas. SIGMOD Records, 33(4) pages 26–31, 2004. [Ree01] George Reese. O’Reilly, 2001. [Rog04] Odile Rogier. Un outil pour la recherche de gènes candidats impliqués dans le paludisme. Mémoire de Master, DEA BBSG, Faculté des Sciences de Luminy, Marseille, 2004. [Rou94] William C. Rounds. Feature Logics. Dans Johan van Benthem et Alice ter Meulen, éditeurs, Handbook of Logic and Language, pages 475–533. Elsevier Science, Amsterdam, 1994. [RS97] Mary Tork Roth et Peter M. Schwarz. Don’t Scrap It, Wrap It ! A Wrapper Architecture for Legacy Data Sources. Dans Matthias Jarke, Michael J. Carey, Klaus R. Dittrich, Frederick H. Lochovsky, Pericles Loucopoulos, et Manfred A. Jeusfeld, éditeurs, Proceedings of 23rd International Conference on Very Large Data Bases (VLDB ’97), pages 266–275. Morgan Kaufmann, 25–29 Août 1997. [RSC06] RSCB. Protein Data Bank. http://www.rcsb.org/pdb/, 2006. [RTA+ 98] Pascal Rihet, Yves Traoré, Laurent Abel, Christophe Aucan, Thérèse TraoréLeroux, et Francis Fumoux. Malaria in Humans : Plasmodium falciparum Blood Infection Levels Are Linked to Chromosome 5q31-q33. The American Journal of Human Genetics, 63 pages 498–505, 1998. [RTA+ 05] Erhard Rahm, Andreas Thor, David Aumueller, Hong Hai Do, Nick Golovin, et Toralf Kirsten. iFuice - Information Fusion utilizing Instance Correspondences and Peer Mappings. Dans Proceedings of the 8th International Workshop on the Web & Databases (WebDB 2005), pages 7–12, 16–17 Juin 2005. [SA99] Arnaud Sahuguet et Fabien Azavant. Building Light-Weight Wrappers for Legacy Web Data-Sources Using W4F. Dans Proceedings of the 25th International Conference on Very Large Data Bases (VLDB ’99), pages 738–741, San Francisco, Californie, Etats-Unis, 1999. Morgan Kaufmann Publishers Inc. [Sar02] Sunita Sarawagi. Tutorial on Automation in Information Extraction and Data Integration. Dans Proceedings of the 28th International Conference on Very Large Data Bases (VLDB ’02), 20–23 Août 2002. [Sax08] Saxonica. SAXON - The XSLT and XQuery processor. 2008. JDBC et Java - Guide du programmeur, 2ème édition. 212 [SBB+ 00] Robert Stevens, Patricia Baker, Sean Bechhofer, Gary Ng, Alex Jacoby, Norman W. Paton, Carole A. Goble, et Andy Brass. Tambis : Transparent Access to Multiple Bioinformatics Information Sources. Bioinformatics, 16(2) pages 184–185, 2000. [SCB06] Yacine Sam, François-Marie Colonna, et Omar Boucelma. CustomizableResources Description, Selection, and Composition : A Feature Logic Based Approach. Dans Proceedings of the On the Move (OTM) Conferences : Confederated International Conferences on Distributed Objects and Applications (DOA), Cooperative Information Systems (CoopIS) and Ontologies, Databases and Applications of Semantics (ODBASE) 2006, Lecture Notes in Computer Science, pages 377–390, Montpellier, France, Novembre 2006. Springer-Verlag. [SHNM05] Matthew Scarpino, Stephen Holder, Stanford Ng, et Laurent Mihalkovic. SWT/JFace in action. Manning Publications, 2005. [SK98] Steffen Schulze-Kremer. Ontologies for Molecular Biology. Dans Proceedings of the 3rd Pacific Symposium on Biocomputing, pages 705–716, 1998. [SL90] Amit P. Sheth et James A. Larson. Federated database systems for managing distributed, heterogeneous, and autonomous databases. ACM Computing Survey, 22(3) pages 183–236, 1990. [SM04] Genoveva Vargas Solar et José Luis Zechinelli Martini. SPatial data Integration from Distributed and HEteRogeneous Sources (SPIDHERS). e-Gnosis, Journal of Universidad de Guadalajara, 2 pages 1–6, 2004. [SMGC04] Carlo Sartiani, Paolo Manghi, Giorgio Ghelli, et Giovanni Conforti. XPeer : A Self-Organizing XML P2P Database System. Dans Current Trends in Database Technology - EDBT 2004 Workshops Revised Selected Papers, volume 3268 of Lecture Notes in Computer Science, pages 456–465, Heraklion, Grèce, 14–18 Mars 2004. Springer. [Smo92] Gert Smolka. Feature-constrained logics for unification grammars. Journal of Logic Programming, 12 pages 51–87, 1992. [SPG05] Yogesh L. Simmhan, Beth Plale, et Dennis Gannon. A Survey of Data Provenance in e-Science. SIGMOD Records, 34(3) pages 31–36, Septembre 2005. [SR04] Jon Stephens et Chad Russell. Beginning MySQL Database Design and Optimization. Springer-Verlag, New York Inc., 2004. [SSK+ 86] Lloyd Smith, Jane Sanders, Robert Kaiser, Peter Hugues, Chris Dodd, Charles Connell, Cheryl Heiner, Stephen Kent, et Leroy Hood. Fluores213 cence detection in automated DNA sequence analysis. Nature, 321 pages 674–679, 1986. [SSKK03] Joshua M. Stuart, Eran Segal, Daphne Koller, et Stuart K. Kim. A Gene Co-Expression Network for Global Discovery of Conserved Genetic Modules. Science, 302(5643) pages 249–255, Octobre 2003. [Ste02] Lincoln Stein. Creating a bioinformatics nation. Nature, 417(6885) pages 119–120, Mai 2002. [Ste03] Lincoln D. Stein. Integrating Biological Databases. Nature Review Genetics, 4(5) pages 337–345, Mai 2003. [STF+ 01] Adam C. Siepel, Andrew N. Tolopko, Andrew D. Farmer, Peter A. Steadman, Faye D. Schilkey, Dawn Perry, et William D. Beavis. An integration platform for heterogeneous bioinformatics software components. IBM Systems Journal, 40(2) pages 570–591, 2001. [Suj01] Walter Sujansky. Heterogenous Database Integration in Biomedecine. Methological Review, Journal of Biomedical Informatics, 34 pages 285–298, 2001. [Swi06] Swiss Institute for BioInformatics. Swiss-Prot : Protein KnowledgeBase. http://us.expasy.org/sprot/, 2006. [THH+ 06] Tetsuro Toyoda, Naohiko Heida, Noriko Hashida, Norio Kobayashi, Hiroshi Masuya, Yoshiyuki Sakaki, Shigeharu Wakana, et Toshihiko Shiroishi. PosMed : an inferential method connecting mouse resources and molecular functions. Experimental Animals, 55(3), 2006. [Tru03] Wellcome Trust. Sharing Data from Large-scale Biological Research Projects : A System of Tripartite Responsibility. Rapport de recherche, Wellcome Trust Institute, Janvier 2003. [Ull90] Jeffrey D. Ullman. Principles of Database and Knowledge-Base Systems : Volume II : The New Technologies. W. H. Freeman & Co., New York, EtatsUnis, 1990. [VLL04] Millist W. Vincent, Jixue Liu, et Chengfei Liu. Strong functional dependencies and their application to normal forms in xml. ACM Transactions on Database Systems, 29(3) pages 445–462, Septembre 2004. [VP02] Vasilis Vassalos et Yannis Papakonstantinou. Expressive Capabilities Description Languages and Query Rewriting Algorithms. Journal of Logic Programming, 43(1) pages 75–122, Avril 2002. 214 [W3C07] W3C. Xforms 1.1 - w3c working draft. http://www.w3.org/TR/xforms11/, 2007. [Wal00] Larry Wall. Programming Perl. O’Reilly & Associates, Inc., Sebastopol, Californie, Etats-Unis, 2000. [WBB+ 05] David L. Wheeler, Tanya Barrett, Dennis A. Benson, Stephen H. Bryant, Kathi Canese, Deanna M. Church, Michael DiCuccio, Ron Edgar, Scott Federhen, Wolfgang Helmberg, David L. Kenton, Oleg Khovayko, David J. Lipman, Thomas L. Madden, Donna R. Maglott, James Ostell, Joan U. Pontius, Kim D. Pruitt, Gregory D. Schuler, Lynn M. Schriml, Edwin Sequeira, Steven T. Sherry, Karl Sirotkin, Grigory Starchenko, Tugba O. Suzek, Roman Tatusov, Tatiana A. Tatusova, Lukas Wagner, et Eugene Yaschenko. Database resources of the National Center for Biotechnology Information. Nucleic Acids Research, 33 pages 39–45, 2005. [WC53] James D. Watson et Francis H. C. Crick. A Structure for Desoxyribose Nucleic Acid. Nature, 171 pages 737–738, Avril 1953. [Wie92] Gio Wiederhold. Mediators in the Architecture of Future Information Systems. IEEE Computer, 25(3) pages 38–49, 1992. [WL02a] Erik Wilde et David Lowe. XPath, XLink, XPointer, and XML : A Practical Guide to Web Hyperlinking and Transclusion. Pearson Education, 2002. [WL02b] Mark D. Wilkinson et Matthew Links. BioMOBY : An open source biological web services proposal. Briefings in Bioinformatics, 3(4) pages 331–341, 2002. [Won94] Limsoon Wong. Querying Nested Collections. Thèse de doctorat, Department of Computer and Information Science, University of Pennsylvania, Philadelphie, Etats-Unis, 1994. [WTS06] WTSI. The Wellcome Trust Sanger Institute. http://www.sanger.ac.uk/, 2006. [XE03] Li Xu et David W. Embley. Discovering Direct and Indirect Matches for Schema Elements. Dans Proceedings of the 8th International Conference on Database Systems for Advanced Applications (DASFAA ’03), pages 39–46, Kyoto, Japon, 26–28 Mars 2003. IEEE Computer Society. [XE04] Li Xu et David W. Embley. Combining the Best of Global-as-View and Local-as-View for Data Integration. Dans Proceedings of the 3rd International Conference on Information Systems Technology and its Applications (ISTA’2004), pages 123–136, Salt Lake City, Utah, Etats-Unis, 15–17 June 2004. 215 [XE06] Li Xu et David W. Embley. A composite approach to automating direct and indirect schema mappings. Information Systems, 31(8) pages 697–732, 2006. [Xu03] Li Xu. Source Discovery and Schema Mapping for Data Integration. Thèse de doctorat, Brigham Young University, 2003. [YLGMU99] Ramana Yerneni, Chen Li, Hector Garcia-Molina, et Jeffrey Ullman. Computing capabilities of mediators. Dans Proceedings of the 1999 ACM SIGMOD International Conference on Management of Data (SIGMOD ’99), pages 443–454, New York, Etats-Unis, 1999. ACM Press. [ZK95] Andrea Zisman et Jeff Kramer. Towards interoperability in heterogeneous database systems. Rapport de recherche DOC 95/11, Department of Computing, Imperial College of Science Technology and Medicine, 1995. [ZLAE02] Evgeni M. Zdobnov, Rodrigo Lopez, Rolf Apweiler, et Thure Etzold. The EBI SRS server recent developments. Bioinformatics, 18(2) pages 368–373, 2002. 216 Index accès limités, 12, 60 adaptateurs, 42, 46, 89 ADN, 5, 21 puces à, 103 agents, 41, 66 augmentation des volumes, 9 automatisation, 9 autonomie, 27 base de données, 6 BAV, 44, 120 BGLAV, 120, 125, 126, 132, 135, 140 cluster, 8 conflits, 22 sémantiques, 25 contexte, 25 cube de données, 35 curateurs, 10 dépendance d’inclusion, 139 entrepôt de données, 10, 32, 47 fédération de données, 40 fichiers plats, 23 fichiers plats, 38 GAV, 43, 49, 118, 150 GLAV, 44, 66, 119 hétérogénéité des données, 21 sémantique, 23, 51 syntaxique, 23 HTML, 48 hyperliens, 30 intégration de données, 9, 11, 58 flexible, 11 forte, 31 fortement couplée, 30 horizontale, 31, 48 lâche, 31 multi-bases, 124 navigationnelle, 10, 32, 38 niveaux d’, 30 pair à pair, 45 sémantique, 31 syntaxique, 30 verticale, 32, 48 virtuelle, 10 intégrité référentielle, 64 intéropération, 8 internet, 5 interopérabilité, 6 jointure, 51, 67 calcul des chemins de, 81 chemin de, 79 LAV, 43, 49, 118, 150 liens hypertexte, 9, 62 Lixto, 48 logique des attributs, 67, 72, 73, 76 217 médiateur, 32, 42, 43, 47, 117 médiation, 10, 42, 58, 116 de contexte, 117, 121 de schéma, 117 méthodes d’intégration, 30 modèle relationnel, 58 montée en charge, 8 multi-agents, 41 XML, 6, 48 clef d’un document, 142 XQuery, 49, 51, 126, 136 pattern d’accès, 67 portails, 39 qualité de service, 28 des données, 26 réécriture de requêtes, 43, 126, 145 complexité de la, 156 références croisées, 38, 62, 65 restrictions d’accès, 27, 60, 140 séquençage, 5 séquence ADN, 133 scénario de collecte, 9 schéma global, 10, 43 intégré, 67 métier, 11 schéma dérivé, 139 stockage, 6 taxonomie des conflits, 22 termes d’attributs, 74 format XML des, 88 unification de, 76 Web, 7, 125 workflows, 66 wrapper, 46, 89 218 Résumé Depuis une vingtaine d’années, la masse de données générée par la génomique et la biologie a cru de façon exponentielle. L’accumulation de ces informations, publiques ou propriétés privées des laboratoires, a conduit à une hétérogénéité syntaxique et sémantique importante entre les sources que l’ouverture sur Internet a rendues accessibles au plus grand nombre, mais qui sont incapables de communiquer entre elles : les formats d’accès aux données, les schémas qui les modélisent, et les langages de requêtes varient d’une base à une autre. Intégrer ces données distribuées et hétérogènes est donc devenu un des champs principaux de recherche en bases de données, puisque l’écriture de requêtes complexes, sur tout ou partie de ces bases, joue un rôle important, en médecine prédictive par exemple. À partir des forces et des faiblesses des approches existantes, les travaux présentés dans cette thèse se sont orientés autour de deux axes principaux, répondant chacun de façon théorique - par une formalisation précise - et pratique - par le développement de prototypes illustratifs - à une classe de problèmes. Le premier axe de nos travaux s’intéresse à la jointure de données de source en source, et automatise les extractions manuelles habituellement destinées à recouper les données. Cette méthode est basée sur une description des capacités des sources à l’aide de la logique des attributs. Le deuxième axe de nos travaux s’articule autour du développement d’une architecture de médiation BGLAV basée sur le modèle de données semi-structuré, dans le but d’intégrer les sources de façon simple et flexible, tout en associant au système un langage de requêtes évolué et évolutif, le langage XQuery. Mots-clés: bases de données, BGLAV, biologie, logique des attributs, médiation, réécriture de requêtes, Web, XML, XQuery. 219 220 Abstract Over the past twenty years, the volume of data generated by genomics and biology has grown exponentially. Interoperation of publicly available or copyrighted datasources is difficult due to syntactic and semantic heterogeneity between them. Thus, integrating heterogeneous data is nowadays one of the most important field of research in databases, especially in the biological domain, for example for predictive medicine purposes. The work presented in this thesis is organised around two classes of integration problems. The first part of our work deals with joining data sets across several datasources. This method is based on a description of sources capabilities using feature logics. The second part of our work is a contribution to the development of a BGLAV mediation architecture based on semi-structured data, for an effortless and flexible data integration using the XQuery language. Keywords: databases, BGLAV, biology, feature logics, mediation, query rewriting, Web, XML, XQuery. 221 222 223 RÉSUMÉ en français Depuis une vingtaine d’années, la masse de données générée par la génomique et la biologie a cru de façon exponentielle. L’accumulation de ces informations, publiques ou propriétés privées des laboratoires, a conduit à une hétérogénéité syntaxique et sémantique importante entre les sources que l’ouverture sur Internet a rendues accessibles au plus grand nombre, mais incapables de communiquer entre elles : les formats d’accès aux données, les schémas qui les modélisent varient d’une base à une autre. Intégrer ces données est donc devenu un des champs principaux de recherche en bases de données, puisque l’écriture de requêtes complexes, sur tout ou partie de ces bases, joue un rôle important, en médecine prédictive par exemple. À partir des forces et des faiblesses des approches existantes, les travaux présentés dans cette thèse se sont orientés autour de deux axes principaux, répondant chacun à une classe de problèmes. Le premier axe de nos travaux s’intéresse à la jointure de données de source en source, qui automatise les extractions manuelles habituellement destinées à recouper les données. Cette méthode est basée sur une description des capacités des sources à l’aide de la logique des attributs. Le deuxième axe de nos travaux s’articule autour du développement d’une architecture de médiation BGLAV basée sur le modèle de données semi-structuré, dans le but d’intégrer les sources de façon simple et flexible, tout en associant au système un langage de requêtes évolué et évolutif, le langage XQuery. TITRE en anglais Integration of distributed and heterogeneous data on the Web and applications to biological datasources RÉSUMÉ en anglais Over the past twenty years, the volume of data generated by genomics and biology has grown exponentially. Interoperation of publicly available or copyrighted datasources is difficult due to syntactic and semantic heterogeneity between them. Thus, integrating heterogeneous data is nowadays one of the most important field of research in databases, especially in the biological domain, for example for predictive medicine purposes. The work presented in this thesis is organised around two classes of integration problems. The first part of our work deals with joining data sets across several datasources. This method is based on a description of sources capabilities using feature logics. The second part of our work is a contribution to the development of a BGLAV mediation architecture based on semi-structured data, for an effortless and flexible data integration using the XQuery language. DISCIPLINE Informatique MOTS-CLÉS bases de données, BGLAV, biologie, logique des attributs, médiation, réécriture de requêtes, Web, XML, XQuery INTITULÉ ET ADRESSE DU LABORATOIRE : Laboratoire des Sciences de l’Information et des Systèmes - UMR CNRS 6168 Domaine Universitaire de Saint-Jérôme, Avenue Escadrille Normandie-Niemen, 13397 Marseille CEDEX 20