FR 3087279 A1 20200417 FR 1871194 A 20181016 - 1 - RECHERCHE ET ANALYSE RAPIDES SUR DES SOURCES DE DONNÉES HÉTÉROGÈNES MULTIPLES La présente invention concerne le domaine de la gestion de données et, plus particulièrement, la. gestion. de données provenant de multiples sources de données hétérogènes. Une base de données est une collection de données organisée et un système de gestion de base de données 10 SGDE ou DEMS (DataBase Management System) est souvent utilisé pour créer, mettre à jour, effacer, interroger et généralement administrer la base de données. Pour permettre d'interroger correctement une base de données ou une source de données, les données contenues dans la 15 base de données sont organisées et indexées selon la convention préférée. Il existe actuellement de nombreuses formes de modèles de bases de données qui indiquent comment les données sont organisées dans la. base de données, telles que les feuilles de calcul, les 20 bases de données relationnelles basées sur le Langage d'Interrogation Structuré SQL (Structured Query Language), les bases de données nNoSQL", les bases de données "Not Only SQL" (pas seulement SQL"), les bases de données d'objets, etc. Dans ces modèles de bases de 25 données, le schéma utilisé pour organiser les données différera d'un modèle à un autre, et des schémas de type RDF, objet, tabulaire, tuple, triplestores, graphe, etc. peuvent être utilisés. D'une autre manière, des fichiers de données peuvent être stockés sans aucune mesure 30 d'organisation spécifique et peuvent simplement inclure des fichiers JE-ON, des fichiers XML, des fichiers texte, des feuilles de calcul ou des données multimedia telles que des, images, de la vidéo, de l'audio, etc., sans aucun schéma d'organisation. - 2 - Les bases de données tabulaires (relationnelles, NoSQL, etc.) utilisent des index et des tables logiques pour montrer la structure relationnelle entre les éléments de la base de données. De telles bases de données sont utiles pour trouver rapidement des résultats mais sont limitées par le schéma selon. lequel la base de données a été construite. Une base de données orientée graphe est un type spécifique de base de données gui est modelé sur la base de la théorie de graphes et dams lequel les données sont représentées d'une manière non tabulaire. Les données sont stockées sous la forme de noeuds, qui définissent les entités, et d'arêtes, qui définissent les relations entre ces entités. Les éléments d'une base de données orientée graphe sont donc connectés les uns avec les autres de manière à décrire comment ces éléments sont liés aux autres éléments de la base de données. Une base de données orientée graphe est utile pour déterminer les relations complexes entre des éléments et peut être utile pour développer aisément de nouveaux schémas ; cependant, les bases de données orientées graphe sont considérablement plus complexes que les bases de données relationnelles. La manière dont un utilisateur final interroge une base de données dépend du type de base de données qui est. interrogée. Les bases de données, et plus spécifiquement les bases de données relationnelles, utilisent le plus souvent le langage SQL pour permettre la recherche de données qui sont stockées dans des tableaux. D'autre part, il n'existe actuellement pas de langage d'interrogation universellement accepté pour l'interrogation de bases de données orientées graphe, bien que le système de description de ressources RDF' (Resource Description Framework) soit communément utilisé dans de nombreux cas. Grâce aux progrès dans le traitement du langage naturel NLP (Patural Language - 3 - Processing), des approches d'interrogation plus simples, permettant des recherches moins structurées impliquant des documents de type texte, sont maintenant utilisées. De plus, on notera qu'une requête peut être différente 5 selon que l'utilisateur final souhaite interroger les métadonnées des données ou les instances des données. Avec la quantité de types différents de bases de données et de données associées, due aux bases de données patrimoniales ou se fondant sur le type de données 10 requis, il existe souvent de multiples bases de données hétérogènes dans de grands systèmes informatiques fédérés et disparates, répartis sur plusieurs organisations. De plus, avec l'arrivée des applications à mégadonnées ("big datan), il est fréquent de devoir 15 effectuer des interrogations séparées pour différents types de données pour une seule application. Non seulement des interrogations séparées sont requises, mais très souvent, pour avoir une valeur pour la requête, les noeuds ou index d'une base de données préconstruite 20 nécessitent des noeuds ou index additionnels se fondant sur de nouvelles connaissances. Par conséquent, l'utilisateur final doit soit passer un. temps considérable à effectuer plusieurs interrogations sur plusieurs types de données ou passer un temps 25 considérable à organiser et indexer des données selon. un nouveau schéma. unique, qu'il est difficile de prévoir à l'avance. Le stockage et l'analyse de fichiers de données selon une organisation de base de données spécifique imposent donc d'importantes limitations aux applications 30 à métadonnées, telles que l'apprentissage automatique, car les données ayant des mesures organisationnelles différentes ne peuvent pas être aisément comparées. Des formes de réalisation de la présente invention s'adressent aux insuffisances de la. technique en ce qui 35 concerne la gestion de multiples bases de données hétérogènes et mettent à disposition. un procédé, un système et un produit de programme informatique nouveaux et non évidents pour la recherche et l'analyse rapides sur de multiples sources de données hétérogènes. Dans , une forme de réalisation de l'invention, un. procédé de recherche et d'analyse rapides sur de multiples sources de données hétérogènes est revendiqué. Le procédé comprend la réception d'une spécification concernant plusieurs sources de données différentes sur un.e 10 interface utilisateur d'un. moteur de recherche et d'analyse, l'établissement de liaisons de communication entre le moteur et chacune spécifiée des sources de données et l'identification, pour l'une correspondantes des sources de données, via l'une respective des liaisons 15 de communication, d'un type de source de données et de champs de données correspondants stockant des données respectives. Le procédé comprend en outre la spécification, sur l'interface utilisateur, d'une requête orientée parcours de graphe multi-sauts ,:, impliquant des données réparties sur les multiples sources de données différentes, la décomposition de la requête en éléments constitutifs et la mise en correspondance de chacun des éléments constitutifs avec l'une correspondante des sources de données en fonction 25 des champs de données correspondants identifiés de chacune des sources de données. Le procédé comprend. même en outre la formulation d'une requête spécifique pour ...flaque source correspondante des sources de données mise en correspondance avec l'un. des éléments constitutifs, 30 la transmission de chaque requête spécifique formulée a l'une correspondante des sources de données, la réception, en réponse, d'un ensemble de résultats et l'intégration, dans un seul graphe de connaissance, de chaque ensemble de résultats reçu pour chaque requête 5 spécifique transmise à l'une correspondante des sources de données. Selon un aspect de la forme de réalisation, le procédé comprend en outre le stockage de données relationnelles entre les différentes sources de données, et la mise en correspondance se fonde sur les données relationnelles stockées. Selon un autre aspect de la forme de réalisation, le procédé comprend en outre le stockage de données de traduction entre la requête orientée parcours 10 de graphe multi-sauts et les types de sources de données des différentes sources de données, et les données de traduction sont utilisées pour formuler les requêtes spécifiques. Selon encore un autre aspect de la. forme de réalisation, le procédé comprend en outre le stockage de 15 données relationnelles de requête entre des requêtes précédentes et des ensembles de résultats précédents correspondants, et la mise en correspondance se fonde sur des règles apprises, déterminées à partir des données relationnelles stockées. Selon encore un autre aspect de 20 la forme de réalisation, le procédé comprend en outre la détermination d'un modèle d'utilisation d'un. profil. d'utilisateur et la sélection uniquement des sources de données correspondantes en fonction du modèle d'utilisation du profil d'utilisateur effectuant la 25 requête, ou selon un modèle d'utilisation pour des utilisateurs similaires. Selon un aspect final de la forme de réalisation, le procédé comprend en outre la surveillance de changements dans les données de chacune des sources de données qui a été spécifiée, la 30 détermination de règles à partir des changements surveillés dans les données des différentes sources de données, et la mise en correspondance se fonde sur les règles entre les différentes sources de données. Selon une autre forme de réalisation de l'invention, un 35 système de traitement de données configuré pour une _ 5 _ recherche et une analyse rapides sur de multiples sources de données hétérogènes est revendiqué. Le système comporte une plateforme de calcul hôte comprenant un ou plusieurs ordinateurs, ayant chacun une mémoire et au moins un processeur, plusieurs sources de données différentes communiquant avec la. plateforme de calcul hôte sur un réseau, et un moteur de recherche et d'analyse s'exécutant dans la mémoire de la plateforme de calcul hôte. Le moteur inclut un code de programme 10 activé lors de l'exécution dans la plateforme de calcul. hôte pour recevoir, sur une interface utilisateur d'un moteur de recherche et d'analyse, une spécification des multiples sources de données différentes, établir des liaisons de communication, chacune entre le moteur 15 chacune des sources de données qui a été spécifiée, identifier, pour l'une correspondante des sources de données, via L une respective des liaisons de communication, un type de source de données et des champs de données correspondants stockant des données 20 respectives. Le code de programme est en outre activé pour spécifier, sui. l'interface utilisateur, une requête orientée parcours de graphe multi-sauts impliquant des données réparties sur les multiples sources de données différentes, décomposer la requête en éléments 25 constitutifs et mettre en correspondance chacun des éléments constitutifs avec l'une correspondante des sources de données en fonction des champs de données correspondants identifiés de chacune des sources de données. Le code de programme est même en outre activé 30 pour formuler une requête spécifique pour chaque source correspondante des sources de données mise en correspondance avec l'un des éléments constitutifs, transmettre chaque requête spécifique formulée à l'une correspondante des sources de données, recevoir., en réponse, un ensemble de résultats et intégrer, dans un seul graphe da connaissance, chaque ensemble da résultats reçu pour chaque requête spécifique transmise à l'une correspondante des sources de données. Des aspects additionnels de l'invention seront. en partie définis dans la description ci-après, et seront en. partie évidents à. la lecture de la description, ou pourront être appris par la mise en pratique de l'invention. Les aspects de l'invention seront réalisés et atteints au moyen. des éléments et combinaisons particulièrement 10 mentionnés dans les revendicationa.-jointes. On. comprendra que la description générale ci-dessus et la description détaillée ci-après ne sont fournies qu'à titre d'exemple et d'explication et ne sont pas restrdctives de l'invention, telle que revendiquée. 15 Les dessins joints, qui sont incorporés dans la présente description et qui en font partie, illustrent des formes de réalisation de l'invention et, associés à la description, permettent d'expliquer les principes de l'invention. Les formes de réalisation illustrées dans 20 le présent document sont actuellement préférées, étant cependant entendu qua l'invention n'est pas limitée aux arrangements et instruments précis représentés. Dans les dessins la Figure 1 est une illustration schématique d'un 25 processus de recherche et analyse rapides sur da multiples sources de données hétérogènes ; la Figure 2 est une illustration schématique d'un système de traitement de données configuré pour une recherche et une analyse rapides sur de multiples 30 sources de données hétérogènes ; et la Figure 3 est un organigramme illustrant un processus de recherche et analyse rapides sur de multiples sources de données hétérogènes. Des formes de réalisation de l'invention. permettent une recherche et une analyse rapides sur de multiples sources - 8 - de données hétérogènes. Selon. une forme de réalisation. de l'invention, un moteur de recherche et d'analyse peut être connecté, sur un réseau, à de multiples sources de données hétérogènes. Les sources de données peuvent être complètement fédérées. Un utilisateur final peut ensuite effectuer une recherche sur des données stockées dans les multiples sources de données hétérogènes différentes via une requête orientée parcours de graphe multi-sauts. cette fin, lorsque l'utilisateur final soumet la 10 requête au moteur d'analyse, le moteur d'analyse détermine automatiquement les sources de données à interroger en fonction de balises de métadonnées stockées et de relations de métadonnées entre les sources de données, telles que définies par des noeuds et des 15 arêtes d'un unique graphe de connaissance. Le moteur d'analyse formule ensuite une requête spécifique pour chacune des sources de données pertinentes pour la requête d'origine et traduit la requête en fonction du schéma spécifique ou d'un schéma personnalisé pour 20 chacune des sources de données. Le moteur d'analyse intègre ensuite chacun. des résultats dans un seul. ensemble de résultats et renvoie les résultats dans le graphe de connaissance. De cette manière, un unique graphe de connaissance rempli de métadonnées 25 correspondent des données contenues dans plusieurs sources de données graphiques et/ou. non graphiques, fédérées, hétérogènes et aux relations entre les données est utilisé pour générer des résultats de requête a partir des sources de données hétérogènes tandis que les 30 données réelles restent au niveau. des sources. Ceci est accompli sans nécessiter de modèle de données maitre global, comme on le voit souvent dans un indexage d'un Entrepôt de Données, ou d'index maitre comme on le voit souvent dans des lacs de données, - 9 - Optionnellement, en plus des traductions prédéfinies entre schémas, le moteur d'analyse peut traduire la requête en fonction d'un schéma de traduction appris entre différents schémas de données. En outre, en plus des relations prédéfinies entre des sources de données et des schémas et espaces de noms respectifs, le moteur analytique peut stocker des relations apprises de manière logique ou statistique et (1.,=s relations probables suggérées entre différents ensembles de 10 données dans les bases de données hétérogènes afin d'offrir de meilleurs ensembles de résultats pour une requête, des ensembles de résultats recommandés pour la requête et d'optimiser les stratégies de parcours du moteur analytique. La traduction et les données 15 relationnelles peuvent être des relations de métadonnées concernant les jonctions entre des sources de données tant orientées graphe que tabulaires S.,. à base d'image stockées à travers les sources de données. Un apprentissage automatique et un raisonnement logique 20 peuvent être utilisés en combinaison pour développer les capacités de traduction. entre les différents schémas et relations recommandées entre des ensembles de données hétérogènes. Le moteur d'analyse peut également stocker des relations prédéfinies et apprises entre données et. 25 sources de données, auxquelles chaque utilisateur ou groupe d'utilisateurs est le plus susceptible d'accéder selon son rôle respectif identifié lors de l'ouverture de session, ou ses requêtes, afin d'optimiser stratégies de recommandations et de parcours du moteur 30 analytique. Par conséquent, lorsqu'un utilisateur utilise le moteur, la stratégie de parcours d'utilisateur qui lui est associée est chargée afin d'optimiser sa recherche. De manière similaire, les relations entre un utilisateur ou un groupe d'utilisateurs et des données peuvent être utilisées - 1C) - pour recommander dés ensembles de résultats liés pour des utilisateurs ou groupes d'utilisateurs similaires. Par conséquent, les sources de données correspondantes peuvent être sélectionnées selon un modèle d'utilisation d'utilisateurs similaires (une communauté d'intérêts, si l'on veut), où des recommandations peuvent être effectuées à partir de ces apprentissages. Comme autre option, le moteur analytique peut surveiller les changements dans les données stockées dans les 10 multiples sources de données hétérogènes afin de développer des règles d'inférence en logique floue entre des changements dans des données associées. En particulier, les règles d'inférence en logique floue déterminent de manière probabiliste les relations entre 15 des points de données et peuvent de manière similaire être stockées dans des structures de données cognitives, de telle sorte que, lorsqu'un utilisateur change une partie de données, la partie de données associée puisse être automatiquement changée ou que l'utilisateur puisse 20 être notifié des données associées à changer. Toutes ces règles peuvent être des règles prédéfinies, des règles apprises de manière dynamique ou une combinaison de celles-ci, afin d'optimiser les résultats de la recherche. 25 selon encore une autre option, le référentiel de métadonnées qui stocke les métadonnées correspondant aux données stockées dans les bases de données hétérogènes et organisées par le graphe de connaissance peut être automatiquement fusionné et trié de manière à optimiser 30 les résultats de recherche. Lorsque les métadonnées sont lues depuis les sources de données respectives, le moteur analytique peut utiliser l'implémentation de tri respective de la source de données connectée puis exécuter une fusion sur ou hors disque dans le référentiel de données. De plus, les résultats d'une requête peuvent être automatiquement fusionnés et triés pour optimiser les résultats de recherche avec les relations respectives entre les sources de données. En outre, l'utilisateur final peut. définir des scripts ou des langages spécifiques de domaines pour planifier et exécuter automatiquement des requêtes dans le moteur analytique. Dans une autre illustration, la Figure 1 montre de manière schématique un processus de recherche et 10 d'analyse rapides sur de multiples sources de données hétérogènes. Tel que représenté sur la Figure 1, un moteur de recherche et d'analyse 130 communique avec plusieurs sources de données hétérogènes 180A, 180E, 1800, 180N. Les liaisons de communication peuvent être 15 virtualisées. Le moteur de recherche et d'analyse 130 reçoit une spécification de chacune des multiples sources de données hétérogènes 180A, 180E, 1800, 180N. Les sources de données 180A, 180E, 1800, 180N peuvent être complètement fédérées. Le moteur de recherche et 20 d'analyse 130 est capable d'identifier les types de sources de données, schémas, espaces de noms, etc, pour les champs de données correspondants de chacune des sources de données 180A, 180E, 1800, 180N. Le moteur de recherche et d'analyse 130 est piloté par un graphe de 25 connaissance 14.0 qui définit les noeuds et arêtes des métadonnées stockées dans le référentiel de métadonnées 150 qui correspond aux données stockées dans chacune des sources de données 180A, 180E, 1800, 180N. Par conséquent, les relations entre les sources de données 30 sont définies dans un graphe de connaissance 140 et stockées dans le référentiel de métadonnées 150. Afin de maintenir la nature fédérée des données, le moteur de recherche et d'analyse 130 peut lire dans les sources de données 180A, 180E, 1800, 180N et lire/écrire les données - 12 - dans le graphe de connaissance 140 et le référentiel de métadonnées 150. Un utilisateur final 110 peut soumettre ou programmer automatiquement une requête 120 dans le moteur de recherche et d'analyse 130. La requête 120 peut être une requête orientée parcours de graphe multi-sauts afin. d'appliquer une requête orientée graphe à des sources de données orientées graphe et non-orientées graphe. En outre, un utilisateur final peut soumettre un type de 10 requête différent, tel qu'une requête orientée graphe, une requête relationnelle, une requête en langage naturel, etc., et le moteur de recherche et d'analyse 130 peut traduire le requête pour le type de requête requis en utilisant la traduction respective ou une 15 technique de traitement du langage naturel. Par conséquent, un utilisateur peut soumettre son format de requête souhaité et le moteur de recherche et d'analyse 30 sera encore capable d'exécuter une requête orientée parcours de graphe multi-sauts sur des sources de données 20 orientées graphe et non-orientées graphe. Après la. traduction dé la requête 120 de l'utilisateur final en une requête orientée parcours de graphe multisauts, la requête est décomposée en ses éléments constitutifs de la requête d'origine et mise en 25 correspondance avec chacun des types de données respectifs des champs de données dans chacune des sources de données pertinentes 180A, 130E, 1800, 180N. Comme on peut le voir, dans l'exemple présenté sur la Figure 1, une requête 120 est décomposée et mise en correspondance 30 avec la source de données A 180A et la source de données C 1800, ce qui produit des sous-requêtes 160A et 1600. Ainsi, le processus ne s'arrête pas sur la source de données B 180B, et le reste dés sources de données 180N, ce qui produit un processus d'interrogation plus efficace. La mise en correspondance de la requête - 1:3 - décomposée avec les sources de données respectives se fonde sur les relations prédéfinies et apprises entre les sources de données, telles que contenues dans le référentiel de métadonnées 150 et définies par le graphe de connaissance 140. La mise en correspondance de la requête avec les sources de données respectives peut être fondée sur des règles relationnelles et de parcours requête-source de données prédéfinies et apprises, ainsi que sur des règles 10 relationnelles et de parcours utilisateur-source de données prédéfinies et apprises. Les règles requête-source de données peuvent se fonder sur les relations entre les sources de données 180A, 180B, 180C, 180N telles que stockées dans le graphe de connaissance 140 15 et le référentiel de métadonnées 150. De plus, les règles requête-source de données peuvent être des règles apprises à. partir de requêtes précédentes et d'ensembles de données résultants. En outre, les règles requête-source de données peuvent se fonder sur des règles à 20 logique floue qui développent une corrélation entre des changements surveillés dans des ensembles de données associés. Les régies utilisateur-source de données peuvent être des règles prédéfinies se fondant sur un profil utilisateur de l'utilisateur final 110, ou un 25 profil pour un groupe d'utilisateurs, et peuvent inclure des informations telles que le type de travail et les sources de données disponibles. Les règles utilisateur-source de données peuvent également se fonder sur des modèles appris de l'utilisateur ou groupe 30 d'utilisateurs. Par conséquent, lors de l'utilisation de règles relationnelles et de parcours requête-source de données et de réales relationnelles et de parcours utilisateur-source de données, le moteur de recherche et d'analyse peut produire un filtrage collaboratif de sources de données dans lesquelles effectuer la - 14 - recherche, des recommandations de données associées, ainsi que des stratégies générales de parcours de sources de données spécifiques. Comme on peut le voir, en fonction des relations entre 5 l'utilisateur 110 soumettant la requête, la requête 120, les sources de données 180A, 180B, 1800, 180N telles que contenues dans le référentiel de métadonnées 150 et définies par le graphe de connaissance 140, les éléments constitutifs sont mis en correspondance avec chaque type 10 de données respectif des champs de données des sources de données 180A et 1800, ce qui produit les sous-requêtes 160A et 1600. Le moteur de recherche et d'analyse 130 peut traduire automatiquement les requêtes pour. les types de données, schéma, espace de noms respectif, etc., 15 des sources de données 180A et 1800, ou bien les sous requêtes 160A et. 1600 peuvent être envoyées à un adaptateur de source de données 170A et 1700 pour la traduction de La requête. La traduction des sous-requêtes 160A et 1600 peut se fonder sur des règles de 20 traduction prédéfinies ou apprises. Les règles de traduction peuvent se fonder sur des traductions prédéfinies entre type de données, schéma, espace de noms, etc., qui spécifient logiquement la traduction entre différentes structures de données dans les sources 25 de données hétérogènes. En tant que tel, l'adaptateur de source de données 170A, 170B, 1700, 170N peut être défini. pour un stockage de données personnalisé. Les règles de traduction peuvent également se fonder sur des règles de traduction. apprises à partir d'ensembles de résultats de 30 requêtes précédentes, tels que déterminés à partir du graphe de connaissance 140 et du référentiel de métadonnées 150. Par conséquent, la formulation de requêtes spécifiques par traduction des requêtes permet des requêtes sur un. seul ou su.r plusieurs espaces de 35 noms différents. En outre, si le type de données inclut - 15 - des données multimedia, telles que des données audio, vidéo ou images, un système de vision artificielle et de traitement du langage naturel peut être utilisé pour rechercher ou interroger tout type de données. En outre, les adaptateurs de source de données 170A, 170E, 1700 et 170N permettent aux sous-requêtes d'être exécutées indépendamment, ainsi qu'aux réponses ultérieures aux sous-requêtes d'être retraduites dans le schéma souhaité et affiché à l'utilisateur final. Cela 10 permet au moteur de recherche et d'analyse 130 de recevoir, traduire et afficher les résultats de différentes architectures de traitement de données sous-jacentes des sources de données hétérogènes. Par exemple, la source de données. A 180A peut permettre un. 15 traitement sous une architecture Lambda et la source de données C 1800 peut permettre un traitement sous une architecture Kappa. Pans ce cas, l'adaptateur de source de données 170A peut agir comme un adaptateur de lecture pour la couche de traitement par lot ("batch layer") et 20 peut également à son tour afficher les résultats de la couche de traitement en temps réel ("speed layer") dans un ensemble de résultats 190 à travers une couche de desserte ("serving laver") tandis que les données sont encore en cours de traitement. Comme le moteur de 25 recherche et d'analyse 130 autorise plusieurs couches de desserte, la couche de traitement par lot n'a pas besoin d'être un seul magasin de données et il est possible d'avoir différents niveaux de vitesses d'accès aléatoires et de traitement de données en parallèle, 30 Après la transmission des sous-requêtes traduites 160A. et 1600 à chaque source de données respective 180A et 180C, un ensemble de résultats est reçu pour chaque sous-requête et les ensembles de résultats sont intégrés dans un seul résultat de requête 190. Le résultat de requête 35 190, avec les ensembles de résultats des requêtes - 16 - précédentes et suivantes, est introduit dans le graphe de connaissance 140 et stocké dans le référentiel de métadonnées 150 et utilisé pour piloter l'index de recherche. Par conséquent, les résultats de la requête spécifique sont stockés dans une seule ontologie du graphe de connaissance 140, de telle sorte que les résultats puissent être encore traités sous l'uniQue ontologie. Le graphe de connaissance définissant les noeuds et arêtes du référentiel de métadonnées 150 offre 10 un moyen efficace d'utiliser l'architecture de graphe de calcul pour l'application de l'apprentissage automatique aux données contenues dans les sources de données 180A, 180E, 1800, 180N fédérées. L'ensemble de résultats 190 peut inclure des données des sources de données 180A, 15 180E, 1800, 180N, des métadonnées des données, des informations d'instance persistante, ou tout résultat de la requête 120, des sous-requêtes 160A et 1600 ou un.e vue en temps réel de ceux-ci. Les ensembles de résultats sont traduits, sur la base de règles de traduction LI similaires telles que mentionnées ci-dessus, en un schéma d'ensemble de résultats souhaité pour l'utilisateur final. Le schéma souhaité peut être sous forme tabulaire ou sous forme de graphe. Les résultats de requête 190 de la requête 120 qui incluent les 25 résultats des différentes sous-requêtes 160A et 1600 sont affichés à l'utilisateur final. Finalement, tous les résultats mentionnés ci-dessus sont renvoyés au moteur de recherche et. d'analyse 130 afin d'optimiser le moteur de rechercha et d'analyse 130. 30 Le processus décrit en lien avec la Figure 1 peut être mis en oeuvre dans un système de traitement de données. Selon encore une autre illustration, la Figure 2 présente de manière schématique un. système de traitement de données configuré pour une recherche et une analyse 35 rapides sur de multiples sources de données hétérogènes. - 17 - Le système peut inclure un système informatique 210 d'un ou plusieurs serveurs ayant chacun une mémoire et au moins un processeur, configurés collectivement pour prendre en charge l'exécution d'un système de traitement de données qui communique avec plusieurs sources de données hétérogènes 240A, 240E, 240M et qui est susceptible de les surveiller. Les sources de données hétérogènes 240A, 240E, 240N peuvent être fédérées et avoir leurs propres serveurs respectifs 230A, 230E, 230M 10 ou peuvent être directement connectées au système informatique hôte 210. Les sources de données 240A, 24013, 240M peuvent également résider dans des serveurs de réseau qui communiquent avec le système informatique hôte 210 sur l'Internet. Le système informatique du 15 serveur hôte 210 peut être configure pour être couplé en communication avec différents ordinateurs clients 250 sur un réseau. de communication. informatique 220, de telle sorte que des demandes d'accès au système de traitement de données puissent être reçues dans le système LI informatique hôte 210 en provenance d'applications s'exécutant sur certains respectifs des ordinateurs clients 210. De manière importante, un moteur de recherche et d'analyse 300 peut. être couplé au système de traitement. 25 de données 210. Le moteur de recherche et d'analyse 300 communique avec les sources de données 240A, 240E, 240M via le système informatique hôte 210, Le moteur de recherche et d'analyse 300 peut également surveiller des changements de données survenant dans les sources de 30 données 240A, 240E, 240N via le système informatique hôte 210. Le moteur de recherche et d'analyse 300 tient à jour une spécification des sources de données hétérogènes 240A, 240E, 240M et tient également à jour des données relationnelles entre les sources de données. 17. Les données relationnelles peuvent être des règles - 18 - prédéfinies ou des règles apprises entre les données des sources de données 240A, 240B, 240N, les requêtes et les utilisateurs finaux, tels que stockés dans un graphe de connaissance d'un référentiel de métadonnées 260. Le moteur. de recherche et d'analyse 300 reçoit une requête d'un utilisateur final, soumise via une interface utilisateur d'un ordinateur client 250. Le moteur de recherche et. d'analyse 300 traduit la requête puis la décompose en ses éléments constitutifs et met 10 les éléments constitutifs en correspondance avec chacun des types de données des sources de données 240A, 240B, 240N respectives, en fonction des relations stockées dans le référentiel de métadonnées 260. Le moteur de recherche et d'analyse 300 peut ensuite formuler une 15 requête spécifique pour chaque type de données des sources de données 240A, 240B, 240N, transmettre chaque requête spécifique à chaque source de données, et recevoir un ensemble de résultats en provenance de chaque source de données en réponse à la requête spécifique. Le 20 moteur de recherche et d'analyse 300 intègre chacun des résultats en un seul ensemble de résultats pour l'utilisateur final et peut afficher les résultats de la recherche à l'utilisateur final sur une interface utilisateur de l'ordinateur client 250. Les résultats de 25 la requête sont stockés dans le graphe de connaissance dans le référentiel de métadonnées 260 afin d'optimiser 1P moteur de recherche et d'analyse 300. Le moteur de recherche et d'analyse 300 peut également être connecté à un gestionnaire de fonction définie par 30 l'utilisateur UDF (User-Defined Fauction) 270. La requête d'un utilisateur final peut être soumise via une interface utilisateur d'un ordinateur client 250 au moteur de recherche et d'analyse n directement, via le gestionnaire UDF 270, ou peut être programmée 17. automatiquement via le gestionnaire UDF 270. La requête - 19 - soumise via le gestionnaire 1313F 270 peut être en. communication avec le moteur de recherche et d'analyse 300 directement ou avec une ou plusieurs interfaces de Programmation d'Application ("APIs') ou scripts ou plugins internes 280 pour la soumission de la requête au moteur de recherche et d'analyse 300. Les APIs ou scripts ou, plugins internes 280 peuvent être en communication avec le moteur de recherche et d'analyse 300 directement ou avec le référentiel de métadonnées 260 directement 10 pour optimiser la requête et/ou les résultats et sélectionner les sources de données à interroger en fonction des spécifications souhaitées de la requête. Le gestionnaire UDF 270 peut également être étendu avec des APIs ou scripts ou plugins externes 290 pour permettre 15 à l'utilisateur final d'optimiser sa requête et/ou les résultats au moyen des APIs ou scripts ou plugins externes. Les APIs ou scripts ou. plugins externes 290 peuvent être en communication avec le moteur de recherche et d'analyse 300 ou le référentiel de métadonnées 260 20 directement pour optimiser la requête et sélectionner les sources de données à interroger directement. Par conséquent, des APIs ou. scripts ou plugins internes et externes 280 et 290 peuvent être utilisés via le gestionnaire UDF 270 de telle sorte qu'un utilisateur 25 final puisse optimiser et concevoir des requêtes selon les spécifications qu'il souhaite. Selon encore une autre illustration du processus exécuté par le code de programme du moteur de recherche et d'analyse 300, la Figure 3 présente sous forme 30 d'organigramme un processus de recherche et analyse rapides sur de multiples sources de données hétérogènes. En commençant au. bloc 310, le moteur de recherche et d'analyse surveille les changements dans les sources de données et tient à jour une spécification de chacune des 35 sources de données définissant le schéma, les types de - 20 - données, les espaces de noms et les métadonnées des données de chacune des sources de données, Au bloc 320, une requête d'utilisateur est reçue, traduite en une requête orientée parcours de graphe multi-sauts et, au bloc 330, la requête est décomposée en ses éléments constitutifs. Au bloc 340; les règles de parcours prédéfinies et apprises pour la requête, les sources de données et l'utilisateur effectuant la requête sont déterminées. Au. bloc 350, les relations prédéfinies et 10 apprises entre la requête; les sources de données et l'utilisateur effectuant la requête sont déterminées. En appliquant les règles des blocs 340 et 350, au bloc 350, les sources de données à interroger sont sélectionnées. Au bloc 370, les éléments constitutifs de la requête 15 d'origine sont mis en correspondance avec les sources de données sélectionnées. Au bloc.. 380, la première source de données est sélectionnée pour être interrogée et, au bloc 390, les règles de traduction prédéfinies et apprises pour le 20 type de données de cette source de données sont déterminées. Au bloc 400, la requête est traduite pour les données de la source de données et, au bloc 410, une requête spécifique est formulée pour cette source de données. En réponse à cette requête spécifique, au bloc 25 420, un ensemble de résultats provenant de cette source de données est reçu; traduit et intégré dans un seul ensemble de résultats au bloc 430. Au bloc 440, s'il y a encore des sources de données, le processus se répète partir du bloc 380 jusqu'à ce qu'il n'y ait plus de 30 sources de données à interroger. Après que les requêtes spécifiques pour toutes les sources de données ont été achevées, au bloc 450, les résultats de recherche peuvent. être affichés à l'utilisateur final. Il est aussi possible de fournir à l'utilisateur une vision en. temps 35 réel des résultats de recherche tandis que les requêtes - 21 - sont traitées à différentes vitesses d'accès aléatoire. Finalement, au bloc 460, les résultats des requêtes sont stockés dans un référentiel de métadonnées sous la forme d'un unique graphe de connaissance afin d'optimiser le moteur de recherche et d'analyse. La présente invention peut être mise en oeuvre dams un système, un procédé, un produit de programme informatique ou toute combinaison de ceux-ci. Le produit de programme informatique peut comprendre un ou 10 plusieurs supports de stockage lisibles par ordinateur contenant des instructions de programme lisibles par ordinateur pour faire en sorte qu'un processeur exécute des aspects de la présente invention. Le support de stockage lisible par ordinateur peut être un dispositif 15 tangible qui peut retenir et stocker des instructions à utiliser par un dispositif d'exécution d'instructions. Le support de stockage lisible par ordinateur peut, par exemple, mais sans y être limité, être un dispositif de stockage électronique , un dispositif de stockage 20 magnétique, un dispositif de stockage optique, un dispositif de stockage électromagnétique, un. dispositif de stockage à semi-conducteurs, ou toute combinaison. appropriée de ceux-ci. instructions de programme lisibles par ordinateur 25 décrites dans le présent document peuvent être téléchargées dans des dispositifs de calcul/traitement respectifs depuis un support de stockage lisible par ordinateur ou vers un ordinateur externe ou un dispositif de stockage externe, via un réseau. Les instructions de 30 programme lisibles par ordinateur peuvent s'exécuter entièrement sur l'ordinateur de l'utilisateur, partiellement sur l'ordinateur de l'utilisateur, sous la forme d'un programme logiciel autonome, partiellement sur l'ordinateur de l'utilisateur et partiellement sur 35 un ordinateur distant ou entièrement sur l'ordinateur ou serveur distant. Des aspects de la. présente invention sont décrits ici en liaison avec des illustrations en organigrammes et/ou des schémas fonctionnels de procédés, d'appareils (systèmes) et de produits de programmes informatiques selon des formes de réalisation de l'invention_ On comprendra que chaque bloc des organigrammes et/ou des schémas fonctionnels, et des combinaisons des blocs des organigrammes et/ou des schémas fonctionnels peuvent être mis en oeuvre par des 10 instructions de programme lisibles par ordinateur. Ces instructions de programme lisibles par ordinateur peuvent être fournies à un processeur d'un ordinateur d'usage général, un ordinateur d'usage spécial, ou un autre appareil de traitement de données programmable 15 pour produire une machine, de telle sorte que les instructions, qui s'exécutent via le processeur de l'ordinateur ou. un autre appareil de traitement de données programmable, créent des moyens de mise en oeuvre des fonctions/actions spécifiées dans le ou les blocs 20 des organigrammes et/ou des schémas fonctionnels. Ces instructions de programme lisibles par ordinateur peuvent également être stockées dans un support de stockage lisible par ordinateur qui peut commander un ordinateur, un appareil de traitement de données 25 programmable et/ou d'autres dispositifs afin qu'ils fonctionnent d'une manière particulière, de telle sorte que le support de stockage lisible par ordinateur sur lequel sont stockées des instructions comprenne un article manufacturé incluant des instructions aul. 30 mettent en oeuvre des aspects de la. fonction/ action. spécifiée dans le ou les blocs des organigrammes et/ou des schémas fonctionnels. Les instructions de programme lisibles par ordinateur peuvent être chargées sur un ordinateur, un autre 17. appareil de traitement de données programmable, ou un - 2:3 - autre dispositif pour faire en sorte qu'une série d'étapes opérationnelles soient exécutées sur l'ordinateur, un autre appareil programmable ou un autre dispositif pour produire un processus mis en oeuvre par ordinateur, de telle sorte que les instructions aui s'exécutent sur l'ordinateur, un autre appareil programmable, ou un autre dispositif, mettent en oeuvre les fonctions/actions spécifiées dans le ou les blocs des organigrammes et/ou des schémas fonctionnels. 10 L'organigramme et les schémas fonctionnels des Figures illustrent l'architecture, la fonctionnalité et le fonctionnement de mises en oeuvre possibles de systèmes, procédés et produits de programmes informatiques selon différentes formes de réalisation de la présente 15 invention. À cet égard, chaque bloc de l'organigramme ou des schémas fonctionnels peut représenter un module, un segment ou une portion. des instructions, qui comprend une ou plusieurs instructions exécutables pour la mise en oeuvre d'une ou plusieurs fonctions logiques 20 spécifiées. Dans certaines autres formes de réalisation, les fonctions notées dans le bloc peuvent être exécutées dans un autre ordre que celui qui est noté sur les figures. Par exemple, deux blocs présentés à la suite l'un de l'autre peuvent, en fait, être exécutés 25 essentiellement en même temps, ou. bien les blocs peuvent parfois être exécutés dans l'ordre inverse, selon la fonctionnalité en jeu. On notera également que chaque bloc des schémas fonctionnels et/ou de l'organigramme, et des combinaisons de blocs des schémas fonctionnels 30 et/ou. de l'organigramme peuvent être mis en oeuvre par des systèmes matériels à usage spécial qui exécutent les fonctions ou actions spécifiées ou des combinaisons d'instructions de matériel à. usage spécial et informatique. 4 - Finalement, la terminologie utilisée ici a pour seul objet de décrire des formes de réalisation particulières et n'est pas destinée a limiter l'invention. Telles qu'utilisées ici, les formes au singulier de "un", "une", "le" et "la" sont destinées à. inclure également les formes au pluriel, sauf mention contraire. On comprendra que les termes "comprend" et/ou "comprenant", tels qu'utilisés ici, spécifient la présence de caractéristiques, de nombres entiers, d'étapes, 10 d'opérations, d'éléments et/ou de composants mentionnés, mais n'excluent pas la présence ou l'ajout d'une ou plusieurs autres caractéristiques, nombres entiers, étapes, opérations, éléments et/ou composants, et/ou des groupes de ceux-ci, 15 Les structures, matériaux, actions et équivalents correspondants de tous les moyens ou étapes at éléments fonctionnels mentionnés dans les revendications ci-après sont destinés à inclure tous et toutes structures, matériaux ou actions pour l'exécution de la fonction en combinaison avec d'autres éléments revendiqués, tels que spécifiquement revendiques. La description de la présente invention a été donnée à titre d'illustration. et de description, mais n'a pas pour objet d'être exhaustive ou de limiter l'invention à la forme décrite. 25 De nombreuses modifications et variantes seront évidentes po= l'homme du métier sans sortir du cadre et de l'esprit de l'invention. La forme de réalisation a été choisie et décrite afin de mieux expliquer les principes de l'invention. et l'application pratique, et 30 de permettre à d'autres personnes du métier de comprendre l'invention pour différentes formes de réalisation ayant différentes modifications telles qu'appropriées à l'utilisation particulière envisagée. L'invention. ayant ainsi été décrite en détail et en référence à ses formes de réalisation, il sera bien - 2 5 - évident que des modifications et variantes sont possibles sans sortir du cadre de l'invention tel, REVENDICATIONS1. Procédé de recherche et d'analyse rapides sur de multiples sources de données hétérogènes, caractérisé en ce qu'il comprend : la réception, sur une interface utilisateur d'un moteur de recherche et. d'analyse (130), d'une spécification concernant plusieurs sources de données différentes (1807, 180E, 180C, 180N) 10 l'établissement de liaisons de communication. entre le moteur et chacune spécifiée des sources de données (180A, 180E, 1800, 180N) ; l'identification, pour l'une correspondantes des sources de données, via. l'une respective des liaisons de 15 communication, d'un type de source de données de champs de données correspondants stockant des données respectives ; la. spécification, sur l'interface utilisateur, d'une requête orientée parcours de graphe multi-sauts 20 impliquant des données réparties sur les multiples sources de données différentes la décomposition de la requête en éléments constitutifs et la mise en correspondance de chacun des éléments constitutifs avec l'une correspondante des sources de 25 données en. fonction des champs de données correspondants identifiés de chacune des sources de données la formulation d'une requête spécifique pour chaque source correspondante des sources de données mise en correspondance avec l'un des éléments constitutifs ; 30 la transmission de chaque requête spécifique formulée à l'une correspondante des sources de données, la réception, en réponse, d'un ensemble de résultats ; et l'intégration, dans un seul graphe de connaissance (140), de chaque ensemble de résultats reçu pour chaque - 27 - requête spécifique transmise à l'une correspondante des sources de données. 2. Procédé selon la revendication 1, comprenant. en 5 outre : le stockage de données relationnelles entre les différentes sources de données, et dans lequel la mise en correspondance se fonde sur les données relationnelles stockées. 10 3. Procédé selon la revendication 1, comprenant en outre le stockage de données de traduction entre la requête orientée parcours de graphe muiti-sauts et les types de 15 sources de données des différentes sources de données, et dans lequel les données de traduction sont utilisées pour formuler les requêtes spécifiques. 4. Procédé selon la revendication 1, comprenant en 20 outre le stockage de données relationnelles de requête entre des requêtes précédentes et des ensembles de résultats précédents correspondants, et dans lequel la mise en correspondance se fonde sur des règles apprises, 25 déterminées à. partir des données relationnelles stockées, 5. Procédé selon la revendication 1, comprenant en outre : 30 la détermination d'un modèle d'utilisation d'un profil d'utilisateur et la sélection uniquement des sources de données correspondantes en fonction du modèle d'utilisation du profil d'utilisateur effectuant la requête. - 28 - 6. Procédé selon la revendication 1, comprenant en outre : la surveillance des changements dans les données de chacune des sources de données qui a été spécifiée, la détermination de règles à partir des changements surveillés dans les données des différentes sources de données, et dans lequel la mise en correspondance se fonde sur les règles entre les différentes sources de données. 10 7. Système de traitement de données configure' pour une recherche et une analyse rapides sur de multiples sources de données hétérogènes, caractérisé en ce qu'il comprend : 15 une plateforme de calcul hôte (210) comprenant un ou plusieurs (250) ordinateurs, ayant chacun une mémoire et au moins un processeur plusieurs sources de données différentes (240A, 240E, 240N) communiquant avec la plateforme de calcul hôte (210) sur un réseau (220) et un moteur de recherche et d'analyse (300) s'exécutant dans la. mémoire de la plateforme de calcul hôte, le moteur comprenant un code de programme activé lors de l'exécution dans la. plateforme de calcul hôte pour 25 recevoir, sur une interface utilisateur d'un moteur de recherche et d'analyse, une spécification des multiples sources de données différentes (240A, 240E, 240N), établir des liaisons de communication, chacune entre le moteur et chacune des sources de données qui a été 30 spécifiée, et identifier pour l'une correspondante des sources de données, via l'une respective des liaisons de communication, un type de source de données et des champs de données correspondants stockant des données respectives, spécifier, sur l'interface utilisateur, une 35 requête orientée parcours de graphe multi-sauts - 29 - impliquant des données réparties sur les multiples sources de données différentes, décomposer la requête en éléments constitutifs et mettre en correspondance chacun des éléments constitutifs avec l'une correspondante des sources de données en fonction. des champs de données correspondants identifiés de chacune des sources de données, formuler une requête spécifique pour chaque source correspondante des sources de données mise en correspondance avec l'un des éléments constitutifs, 10 transmettre chaque requête spécifique formulée à. l'une correspondante des sources de données et recevoir, en réponse, un ensemble de résultats et intégrer, dans un seul graphe de connaissance, chaque ensemble de résultats reçu pour chaque requête spécifique transmise 15 à l'une correspondante des sources de données. 8. Système selon la revendication 7, dans lequel le code de programme est en outre activé poux stocker des données relationnelles entre les différentes sources de données, 20 et la mise en correspondance se fonde sur les données relationnelles stockées. 9. Système selon la revendication 7, dans lequel le code de programme est en outre activé pour stocker des données 25 de traduction entre la requête orientée parcours de graphe multi-sauts et les types de sources de données des différentes sources de données, et les données de traduction sont utilisées pour formuler les requêtes spécifiques. -RO 10. Système selon la revendication 7, dans lequel le code de programme est en outre activé pour stocker des données relationnelles de requête entre des requêtes précédentes et des ensembles de résultats précédents 35 correspondants, et la mise en correspondance se fonde - 3C) - sur des règles apprises, déterminées à partir des données relationnelles stockées. 11. Système selon la revendication 7, dans lequel le code de programme est en outre activé pour déterminer un modèle d'utilisation d'un profil d'utilisateur et sélectionner uniquement les sources de données correspondantes en fonction du modèle d'utilisation du profil d'utilisateur effectuant la requête. 10 12. Système selon la revendication 7, dans lequel le code de programme est en outre activé pour surveiller des changements dans les données de chacune des sources de données qui a été spécifiée, déterminer des règles à 15 partir des changements surveillés dans les données des différentes sources de données, et la mise en correspondance se fonde sur les règles entre les différentes sources de données. 13. Produit de programme informatique pour une recherche et une analyse rapides sur de multiples sources de données hétérogènes, le produit de programme informatique comprenant un support de stockage lisible par ordinateur contenant des instructions de programme, 25 caractérisé en ce que les instructions de programme sont exécutables par un dispositif pour faire en sorte que le dispositif exécute un procédé comprenant : c la réception, sur une interface utilisateur d'un moteur de recherche et d'analyse (130), d'une spécification 30 concernant plusieurs sources de données différentes (180A, 180B, 180n, 120N) ; l'établissement de liaisons de communication entre le moteur et chacune spécifiée des sources de données (180A, 180E, 180(2, 180N) ; - 31 - l'identification, pour l'une correspondantes des sources de données, via l'une respective des liaisons de communication, d'un type de source de données et de champs de données correspondants stockant des données respectives ; la spécification, sur l'interface utilisateur, d'une requête orientée parcours de graphe multi-sauts impliquant des données réparties sur les multiples sources de données différentes 10 la décomposition de la requête en éléments constitutifs et la mise en correspondance de chacun des éléments constitutifs avec l'une correspondante des sources de données en fonction des champs de données correspondants identifiés de chacune des sources de données ; 15 la formulation d'une requête spécifique pour chaque source correspondante des sources de données mise en correspondance avec l'un des éléments constitutifs ; la. transmission de chaque requête spécifique formulée à l'une correspondante des sources de données, la 20 réception, en réponse, d'un ensemble de résultats ; et l'intégration, dans un seul graphe de connaissance (140), de chaque ensemble de résultats reçu pour chaque requête spécifique transmise à l'une correspondante des sources de données. 25 14. Produit de programme informatique selon la revendication 13, dans lequel le procédé comprend en outre le stockage de données relationnelles entre les 30 différentes sources de données, et dans lequel la mise en correspondance se fonde sur les données relationnelles stockées. - 32 - 15. Produit de programme informatique selon. la revendication 13, dans lequel le procédé comprend en outre le stockage de données de traduction entre la requête orientée parcours de graphe multi-sauts et les types de sources de données des différentes sources de données, et dans lequel les données de traduction sont utilisées pour formuler les requêtes spécifiques. 16. Produit de programme informatique selon la revendication 13, dans lequel le procédé comprend en outre le stockage de données relationnelles de requête entre des requêtes précédentes et des ensembles de résultats précédents correspondants, et dans lequel la mise en correspondance se fonde sur des règles apprises, déterminées à partir des données relationnelles stockées, 17. Produit de programme informatique selon la revendication 13, dans lequel le procédé comprend en outre la détermination d'un modèle d'utilisation d'un profil d'utilisateur et la sélection uniquement des sources de données correspondantes en fonction du modèle d'utilisation du profil d'utilisateur effectuant la requête. 18. Produit de programme informatique selon la 30 revendication 13; dans lequel le procédé comprend. en. outre : la surveillance des changements dans les données de chacune des sources de données qui a été spécifiée, la détermination de règles à partir des changements 35 surveillés dans les données des différentes sources de - 3:3 - données, et dans lequel la mise en correspondance se fonde sur les règles entre les différentes sources de données.