![]()
Précédent : Bases de données à objets
Remonter : Résultats nouveaux Suivant :
Données
spatiales et temporelles
Participants : Serge Abiteboul, Bernd Amann, Ireni
Fundulaki, Sophie Cluet, Claude Delobel, Boris Gonnot, Stéphane
Grumbach, Laurent Mignet, Jerôme Siméon, Anne-Marie Vercoustre,
Victor Vianu.
Mots clés : hétérogénéité, intégration, WWW, schémas, documents, semi-structurés, SGML, XML, réutilisation .
Glossaire :
Document virtuelDocument dont au moins certaines parties sont générées dynamiquement
Les données accessibles sur le réseau vont du très structuré dans des bases relationnelles au totalement non structuré dans des fichiers de texte. De plus, l'intégration de données est aussi souvent source d'irrégularité, des données similaires étant souvent représentées avec des structures différentes dans des sources indépendantes. On utilise le terme semi-structuré pour ces données qui ne sont pas vraiment structurées mais qui présentent, pourtant, une certaine structure même si celle-ci est souvent peu régulière et implicite.
Nous avons travaillé sur trois sujets complémentaires :
Le premier est l'extraction de structure. Dans un monde semi-structuré, on considère que les données consistent en un graphe étiqueté. Toute la sémantique est exprimée dans les étiquettes. Le typage de ces données est donc minimaliste. Cependant, les utilisateurs préfèrent voir des données avec plus de structure. Cela facilite leur compréhension du contenu de la base et la formulation de requêtes. Différents modules du système préfèrent aussi plus de structure et notamment l'optimiseur pour pouvoir maintenir et utiliser des chemins d'accès, par exemple, des index. Comme cette structure existe souvent de manière implicite, on peut chercher à la découvrir. Des techniques de data mining sont utilisées dans ce but dans [[36]].
Par ailleurs, de nombreux sites contiennent des données assez structurées mais dont la structure n'est pas directement accessible. C'est le cas, par exemple, des bases de données accessibles via le web. Dans [[30]], on étudie sous quelles conditions la structure des données peut être reconstruite à partir de données sous forme HTML, par exemple.
Le second sujet est la spécification et l'utilisation de vues. Il s'agit de pouvoir réorganiser des données semi-structurées pour en offrir une vue (peut-être plus structurée) mieux adaptée aux besoins de l'utilisateur ou des programmes d'applications. Dans [[19]], on considère le problème de la maintenance incrémentale de telles vues matérialisées, c'est-à-dire la propagation des modifications de la base de données dans ces vues sans avoir à les recalculer.
Le dernier sujet concerne l'introduction du temps dans ce modèle. Ces données évoluent dans le temps et cette évolution mérite autant d'être étudiée pour elle-même que pour la valeur des données à un instant précis. Dans [[28]], on propose un modèle et un langage permettant de poser des requêtes temporelles. Ce langage s'apparente aux langages considérés dans la section VERSO resultatsespacetemps. Une implémentation dans Lore est à la base d'un système de souscription de requêtes. Une souscription est par exemple : ``envoyez-moi, une fois par semaine, la liste de toutes les nouveaux romans que vous pourrez trouver dans les sources de données suivantes ... si l'auteur est sud-américain''.
Enfin, le problème plus spécifique de l'optimisation de requêtes pouvant mettre en jeu des données sur de très nombreuses sources est considéré dans [[20]].
Dans le cadre du projet européen OPAL (voir 7.2.1), nous avons développé un outil d'intégration/conversion d'un ou plusieurs formats de données quelconques vers un autre. Cet outil, appelé YAT, repose sur une architecture médiateur/adaptateurs. Le modèle de données intermédiaire est de type semistructuré (de simples graphes) et supporte un langage de conversion déclaratif [[29],[40]]. L'originalité du modèle tient à un mécanisme d'instanciation qui lui permet de capturer différents niveaux d'abstraction des données (données brutes, types/schéma ou méta-schéma).
Cette année, nous nous sommes plus particulièrement intéressés à l'interrogation de données intégrées et à l'exploitation des capacités opérationnelles des sources sous-jacentes afin d'optimiser les temps de réponse. Pour ce faire, nous avons ajouté au médiateur un optimiseur/évaluateur de requêtes et un modèle opérationnel. Ce modèle est suffisamment riche pour capturer des langages de requêtes de type OQL ou SQL. Il permet à des sources arbitraires de spécifier de façon générique (c.a.d. au niveau d'un système plutôt que d'une application) leur capacité d'interrogation. Ceci se fait soit par raffinement des opérations existantes (leur signature peut être instanciée de façon à restreindre leur domaine d'application), soit par extension (on peut rajouter de nouvelles opérations non connues du médiateur, les intégrer dans le langage de requêtes et, éventuellement, spécifier les liens sémantiques existants avec d'autres opérations). Des techniques d'optimisation adaptées à ce contexte ont été développées.
Nous voyons les documents virtuels comme un moyen d'intégrer et de réutiliser des données venant des bases de données ou d'autres sources d'information semi-structurées, comme le Web, des documents SGML ou Latex. Ceci permet par exemple la génération de rapports ou de pages Web à partir de bases de données ou d'autres pages HTML[[37]] avec une approche centrée ``document''.
Nous utilisons un modèle générique d'arbres étiquetés pour assurer l'intégration des données hétérogènes. Ce modèle est semblable à celui défini en (5.2.2) pour la traduction de données.
Nous avons montré dans [[42]] comment utiliser notre langage RIO pour interroger des documents XML et suivre les liens (faiblement) typés définis en XML. Une extension du language pour permettre des requêtes plus déclaratives sur liens y est proposée.
Nous avons également étudié une optimisation de l'interprèteur permettant de ne réévaluer que les parties de document correspondant à des changements soit du modèle, soit des sources de données[[38]]. Cela permet d'économiser l'accès aux sources distribuées, en particulier pendant la phase d' édition et de mise au point du document virtuel.
Ce travail est réalisé en étroite collaboration avec le CSIRO-CMIS, à Melbourne (Australie) où un interprète du langage a été implémenté en Java [[38]].
De plus, nous avons étudié l'application des documents virtuels à la synthèse de vidéo, en collaboration également avec le CSIRO [[35]]. Un algorithme de chaînage permet de générer une séquence de vidéo à partir de segments de vidéo décrits et stockés dans une base de données. La séquence genérée peut, par exemple, suivre un personnage dans différents lieux, ou au contraire, suivre consécutivement divers personnages dans un même lieu[[34]].
Dans un premier temps, nous avons étudié les possibilités d'utilisation de structures sémantiques (ontologies, thesauri) existantes pour la spécification de médiateurs spécialisés dans un domaine d'application (par exemple, un médiateur pour ``la poterie Française du XVIIIe siècle''). Nous avons défini un modèle d'intégration entre ontologies et thesauri et sommes en train d'étudier différentes applications de ce modèle pour la spécification de médiateurs à partir de la description sémantique et structurelle des sources.
De nombreuses transactions commerciales s'effectuent maintenant via le Web. Cependant, il est encore très difficile à un usager de trouver les sites proposant le produit qu'il recherche. En collaboration avec M.C. Rousset de l'université Paris XI, nous avons conçu et développé un outil d'aide à la recherche d'articles sur le Web. Le prototype est construit au-dessus du système à base d'agents MAGE-IV. Le système offre à l'utilisateur plusieurs domaines de recherche (par exemple, livres ou ordinateurs). Une fois le domaine choisi, le système propose un formulaire d'interrogation, dont les champs sont facultatifs et que l'utilisateur peut enrichir à loisir. Une fois le formulaire rempli, le système va automatiquement interroger de façon adéquate les sites pertinents sur le Web, analyser et afficher les réponses obtenues. Les interactions de l'utilisateur avec le système permettent au système de s'améliorer grâce à des fonctions d'apprentissage et à une base de cas.