Précédent : Grands domaines d'application
Remonter : Projet VERSO, Bases de Données
Suivant : Actions industrielles
Participants : Bernd Amann , Sihem Amer-Yahia , Elian
Carsénat , Sophie Cluet , Claude Delobel , Jérôme Siméon , Fanny
Wattez
Mots-clés :
Langage de requêtes, optimisation, index plein-texte,
migration
Résumé : Une des approches proposées pour intégrer des données provenant de sources diverses consiste à utiliser une base de données objet pour centraliser l'information. L'interrogation se fait alors via la base qui maintient les liens avec des sources extérieures. Pour optimiser les temps d'accès, la réplication de certaines données peut être envisagée. Dans ce contexte, les contributions de l'équipe sont de quatre ordres: (i) interrogation graphique des données de la base depuis le Web, (ii) interrogation depuis la base de documents stockés dans des systèmes d'indexation plein-texte, (iii) migration flexible et performante des données provenant de systèmes autres (notamment relationnels), et (iv) optimisation de requêtes.
L'utilisateur n'est pas toujours conscient de la structure des informations contenues dans une base. Cependant, les langages de requêtes bases de données requièrent une parfaite connaissance de cette structure.
Dans le cadre du projet Wire (voir ), nous avons donc conçu et
implanté une interface graphique permettant une interrogation
conviviale des données sans connaissance de leur structure. Cette
interface est accessible à partir d'un navigateur standard comme
Netscape. Une première implantation écrite en Java a montré les
limites d'une représentation graphique de la structure des
données (schéma base de données) pour assister l'utilisateur dans
la génération d'une requête. Un problème essentiel est la
disparité entre la compréhension des données par l'utilisateur et
le schéma de la base.
Nous nous intéressons maintenant à une approche plus orientée utilisateur (à l'opposé d'une approche orientée schéma) pour rendre l'interrogation plus flexible et indépendante du schéma sous-jacent. Ceci nous amène à étudier l'intégration d'autres technologies (comme par exemple les bases de connaissances) pour assister l'utilisateur dans la formulation de requêtes bases de données.
Les systèmes de gestion de bases de données sont mal adaptés à la manipulation de documents. Ils n'offrent que peu de moyens de les interroger et le font souvent de façon inefficace. Or, un serveur d'informations contient généralement de nombreux documents.
Toujours dans le cadre du projet Wire (voir ), nous avons donc proposé une
extension du langage de requêtes OQL (standard ODMG) pour
interroger des documents [57]. Cette extension s'appuie sur les
primitives d'interrogation du système d'indexation plein-texte
TOPIC. Ce système est largement utilisé et propose un ensemble de
primitives similaire à ceux de ses concurrents.
L'intérêt de l'extension proposée est qu'elle rend transparente l'intégration entre le système de bases de données et l'index plein-texte. Le programmeur peut interroger données textuelles et factuelles de façon homogène.
Nous avons implanté ce nouveau langage en étendant l'interprète et l'optimiseur de requêtes du système de gestion de bases de données O2. Pour cela, nous nous sommes reposés sur un couplage O2 - TOPIC réalisé par la société O2 Technology. Cette implantation est efficace et opérationnelle et sera utilisée par nos partenaires du projet Wire.
Dans le cadre de la migration de données du relationnel vers l'objet, nous avions défini un langage permettant d'exprimer aisément des transformations de schéma et de données entre le relationnel et l'objet et d'en dériver une migration de données par défaut. Ce langage était inspiré de nos travaux sur les vues dans les systèmes à objets [2], recherche qui s'achève cette année avec la parution de [47,21].
Le chargement de grands volumes de données augmente le temps de la migration, les risques d'interruption, et le temps de monopolisation des bases relationnelles et objet. Pour pallier ces problèmes, nous avons proposé de décomposer ce processus en plusieurs transactions. En outre, l'utilisateur peut vouloir organiser les objets de la base sur disque de façon à optimiser l'utilisation ultérieure de la base de données objet. Nous avons donc étendu le langage pour exprimer ces contraintes.
Actuellement, nous travaillons sur l'optimisation algébrique de ces transformations. Nous utilisons une nouvelle classe d'équivalences algébriques qui tiennent compte des effets de bord des opérations de création et de mise à jour des objets sur la base de données. Ces réécritures permettent d'optimiser :(i) le temps de communication entre les systèmes, (ii) les volumes de stockage et (iii) le temps d'exécution sur les systèmes relationnel et objet.
Un prototype développé au-dessus du système O2 et du système relationnel MiniSQL a servi à valider nos idées initiales et a été présenté à la dernière conférence française BDA'97 qui s'est tenue en septembre à Grenoble [35]. Nous travaillons maintenant sur l'optimisation de ce prototype et sur son extension à d'autres systèmes relationnels en utilisant le standard ODBC.
Depuis sa création, nous collaborons avec la société O2 Technology sur l'optimisation de requêtes. Cette collaboration s'est traduite par l'implantation d'un optimiseur de requêtes OQL sur lequel nous continuons à travailler régulièrement. Notamment, nous avons cette année implanté des algorithmes d'optimisation des requêtes imbriquées, requêtes très fréquemment générées par les outils de connection avec le Web ou les systèmes relationnels.
Nous avons conçu et implanté une nouvelle technique de réécriture de requêtes consistant à utiliser des index plein-texte pour optimiser des requêtes ne portant pas nécessairement sur des documents [17]. Une base quelconque peut être transformée en un document SGML qui est indexé plein-texte. L'index peut ensuite être utilisé pour retrouver les chemins inverses de ceux maintenus par la base de façon à optimiser les requêtes booléennes portant sur des chemins potentiellement longs.
Dans [30], nous considérons le problème de l'optimisation de requêtes quand la bases de données consiste en la fusion virtuelle de données provenant dans de nombreuses sources disponibles sur le réseau.
Enfin, nous travaillons à l'évaluation des différentes techniques d'optimisation objet sur des bases réelles. D'ici la fin de l'année, nous espérons obtenir des résultats de test grandeur nature qui nous permettront d'analyser l'intérêt de telle ou telle optimisation en fonction des contextes. Ceci nous permettra d'établir un modèle de coût raisonnable et surtout de comprendre les statistiques qu'il est nécessaire de maintenir afin de pouvoir analyser une situation et choisir la technique appropriée. Eventuellement, ceci nous amènera également à concevoir de nouveaux algorithmes si ceux existants se révèlent inefficaces dans certaines situations.
Participants : Serge Abiteboul , Sophie Cluet , Claude
Delobel , Laurent Mignet , Jerôme Siméon , Katarzyna Smaga ,
Karine Tollu , Anne-Marie Vercoustre , Victor Vianu
Mots-clés : hétérogénéité, intégration, WWW, schémas,
documents, semi-structures, SGML, XML, réutilisation
Document virtuel: Document dont au moins certaines parties
sont générées dynamiquement
Résumé : L'importance croissante du Web comme source d'information rend crucial le traitement de données hétérogènes et leur intégration avec des bases de données. Nous nous sommes intéressés, plus particuliérement, aux données dites semi-structurées, au problème de conversion de données, à la réutilisation de données hétérogènes sous forme de documents virtuels, ainsi qu'à l'amélioration de la recherche d'information sur le Web. Enfin, nous avons essayé de définir un modèle théorique du Web.
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. Un état de l'art sur la gestion de telles données est proposé dans [34]. Les particularités de la gestion de ces données comparées à des données plus classiques de bases de données y sont analysées et les nouveaux problèmes rencontrés présentés.
Nous avons participé au développement, à l'Université de Stanford, d'un système de gestion de données semi-structurées : le système Lore [49]. Les requêtes sont exprimées dans le langage Lorel [15] qui est une extension du standard pour les bases objets (OQL) et s'apparente au langage POQL développé par Verso [11].
Dans le cadre de Lorel et Lore, trois nouveaux sujets ont fait l'objet d'efforts particuliers.
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 [50].
Le second sujet est la spécification de vues sur des données semi-structurées [29]. 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. Le problème principal est celui 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.
Enfin, 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 [41], 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 . 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''.
Les applications nécessitant la réutilisation de données déja existantes sous différentes formes sont de plus en plus nombreuses. En particulier, dans le cadre du projet OPAL, nous nous intéressons à l'intégration de données hétérogènes et distribuées, et à leur conversion vers HTML. Dans [28], nous proposons un modèle de données et des outils permettant d'une part, d'établir les correspondances/liens existant entre des données hétérogènes et d'autre part, de traduire des données d'un format à l'autre. Ce travail se situe dans la continuation de [12]. Le modèle est très simple et flexible, ce qui permet de capturer presque tous les types de formats (SGML, ODMG, STEP, etc.). Cependant, ce modèle ne permet que de décrire les données elles-mêmes et ne permet pas d'utiliser facilement les informations structurelles fournies par la plupart de ces formats.
En nous concentrant sur les aspects liés à la conversion de données, nous avons étendu ce travail dans plusieurs directions. Le modèle proposé dans [28] a été étendu par des descriptions de types bien adaptées à la flexibilité du modèle. Un langage permet de décrire des traductions entre formats de façon déclarative, et fournit de puissantes primitives de restructuration. Les propriétés de typage du modèle sont utilisées dans plusieurs mécanismes facilitant l'écriture de nouveaux programmes de traduction. L'instantiation permet de restreindre automatiquement le domaine d'un programme pour une utilisation plus spécifique. La combinaison en parallèle et la composition en séquence de programmes de traduction permet de réutiliser de façon cohérente les programmes existants. Ce travail a fait l'oeuvre d'une implantation dans le cadre du projet OPAL. Le prototype est écrit en Objective CAML et peut être utilisé pour la spécification de traductions entre de nombreux formats. Une interface réalisée en JAVA permet de spécifier graphiquement les programmes de traductions. Nous travaillons à adapter notre approche pour des architectures plus complexes, distribuées et où les données peuvent rester virtuelles.
De plus, de façon paralèlle et dans le cadre du contrat AFIRST
(voir ) de collaboration avec
l'université de Tel Aviv, nous avons travaillé à l'extension du
système de gestion de bases de données O2 de façon à permettre une intégration facile
et optimisée de données provenant de sources hétérogènes
[58]. L'implantation repose
sur l'existence d'une classe générique capturant les données
provenant de sources extérieures. Cette classe possède une
méthode de chargement des données. Nous avons redéfini les
fonctions d'accès du système O2
de façon à importer les données extérieures lorsqu'elles sont
intérrogées, et à n'importer que les parties nécessaires à
l'évaluation de la requête. Nous travaillons maintenant à une
extension de l'optimiseur qui permettra de pousser certaines
requêtes sur les sources externes.
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 [52] . Notre approche propose de partir d'un modèle du document à générer et de définir le contenu du document comme le résultat de requêtes à une ou plusieurs sources de données. Cette approche permet de définir des documents personnalisés et adaptés à la réutilisation, sans duplication d'informations. Ceci inclut éventuellement la génération de rapports ou de pages Web à partir des bases de données, mais l'objectif est plus large et l'approche plus centrée ``document''.
Notre premier résultat est la définition d'un language, appelé
RIO (Reuse of Information Objects) permettant de définir des
documents virtuels pour intégrer et restructurer l'information.
Nous appelons prescription du document virtuel la
spécification d'un document dans ce language [53]. 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
() pour la traduction de
données.
Un document virtuel défini dans le language RIO est un document SGML/HTML/XML décoré d'instructions (utilisant le mécanisme de process instructions de SGML). Une prescription de document virtuel se compose de :
Ce travail est réalisé en étroite collaboration avec le CSIRO-DMIS, à Melbourne (Australia) où un interprète du langage a été implémenté en Java [51] . Un prototype a été réalisé qui permet de créer des documents virtuels intégrant des données provenant d'une base de données SQL, une base de données objet (POET), des pages HTML, ainsi qu'une base de référence bibliographique en Latex. Un démonstrateur est accessible depuis lle Web . Le langage RIO peut aussi être utilisé pour interroger des documents XML et nous avons montré dans [54] comment interroger et suivre les liens typés definis en XML. Une extension du language plus adaptée aux liens y est proposée.
Nous avons également commencé l'extension de l'éditeur Thot (Grif, version INRIA) pour en faire un éditeur de document virtuel. Le but est d'avoir un outil pour la mise au point incrémentale de documents virtuels, avec une aide à l'expression de requêtes grâce à la visualisation de l'arbre générique d'intégration des réponses. L'incrémentalité intervient à deux niveaux : d'une part, l'utilisateur peut définir et évaluer incrémentalement les instructions en RIO, d'autre part l'interpréteur peut réutiliser les résultats des requêtes précédentes sans systématiquement envoyer les requêtes aux bases sources distribuées [51].
De plus, nous avons étudié l'application des documents virtuels à la synthèse de vidéo, en collaboration également avec le CSIRO [48].
Le Web regroupe une telle quantité d'informations que l'utilisateur a du mal à trouver celle qui l'intéresse. Des moteurs de recherche existent mais répondent souvent de façon peu satisfaisante. La réponse à une requête est une liste potentiellement très importante de Uniform Resource Locator (URLs) assortie de commentaires (généralement les premières lignes du document correspondant). Ces URLs correspondent, en règle générale, à des documents contenant les mots-clés spécifiés lors de la requête. Le critère de tri des documents dans la réponse est souvent inapproprié et ne permet pas à l'utilisateur de juger de la pertinence des réponses retournées. L'utilisateur doit alors ``naviguer'' à partir des réponses obtenues, ce qui peut prendre un temps considérable et n'aboutir à aucun résultat.
Pour résoudre ce problème, certains proposent une redéfinition
des moteurs de recherche ou des systèmes d'indexation qu'ils
utilisent. D'autres cherchent à fournir des vues thématiques et
structurées (voir ). Dans le cadre d'une
collaboration informelle avec l'équipe IASI du Laboratoire de
Recherche en Informatique de l'Université de Paris XI, nous avons
étudié une troisième solution consistant à étendre les différents
moteurs de recherche existants en combinant leur capacité et en
fournissant une interface de visualisation des réponses plus
facilement interprétable.
L'interface que nous avons conçue et implantée [56] fournit une information plus précise et plus pertinente qui devrait faciliter le choix de l'URL à laquelle accéder pour trouver l'information recherchée. Elle repose sur la construction d'un graphe décoré de réponses traduisant les connexions par hyper-liens existants entre les différents documents sélectionnés. Le graphe peut être étendu aux documents référencés directement ou indirectement par les premières réponses fournies. Les arêtes du graphe sont annotées par des informations sémantiques simples extraites d'une analyse rapide (et pour l'instant sommaire) du contenu des documents visités.
Avec le Web, les applications sont de plus en plus amenées à
gérer des informations distribuées et dont la structure est
irrégulière et à priori inconnue. On peut voir, en première
approximation, cette information comme un graphe étiqueté (voir
). Les noeuds représentent les
pages du Web et les arcs les liens hypertextes. Les langages de
requêtes se doivent de combiner des approches de style
navigation, recherche d'information et des aspects plus standards
en bases de données utilisant ce que l'on sait de l'organisation
des données.
Un aspect essentiel est de spécifier des expressions de chemins dans ce graphe en utilisant des expressions régulières. Dans [32], nous étudions une évaluation distribuée de ces chemins basée sur des agents distribués. Nous considérons l'optimisation de cette évaluation utilisant des contraintes sur ces chemins qui seraient disponibles. Techniquement, cela revient à étudier l'implication de contraintes de chemin, un problème qui se situe à la confluence de la théorie des langages, des systèmes de réécriture et de la logique.
Dans [31], une approche de
nature plus exploratoire est suivie. Il s'agit de voir le Web
comme un graphe infini pour modéliser l'impossibilité essentielle
de le parcourir dans sa totalité pour répondre à une requête. On
dégage deux modes de calcul dominants : l'utilisation de moteurs
de recherche et de navigateur. Ces deux modes de calcul sont
modélisés de manière formelle. On étudie en particulier des
restrictions de langages logiques (FO, Datalog, Datalog)
basés exclusivement sur de la navigation. Le but de ces travaux
est de pouvoir fournir des fondements théoriques pour l'accès à
l'information dans ces graphes gigantesques comparables à ceux
qui existent pour l'accès à l'information dans les bases de
données traditionnelles.
Mots-clés
: spatio-temporel, contrainte, topologie, cartographie
Participants : Serge Abiteboul , Stéphane Grumbach ,
Laurent Herr , Michel Scholl , Luc Ségoufin , Victor Vianu
Résumé : Les bases de données contenant des informations scientifiques, du type géométrique, temporel, géographique, etc. posent des problèmes particuliers que nous abordons dans le projet sous différents angles. Nous étudions le modèle de bases de données avec contraintes, qui connaît un intérêt grandissant dans la communauté, et que nous utilisons pour l'élaboration d'un prototype en cours de développement pour les bases de données géographiques.
Les données spatiales et temporelles posent des problèmes
fondamentaux aux systèmes de gestion de bases de données, non
seulement à cause de la taille considérable et en croissance
constante de ces données, mais aussi à cause de la complexité des
relations qu'entretiennent ces données entre elles. Comme exemple
de relation complexe entre objets, on peut citer les relations
géométriques et topologiques pour les données
spatiales [45].
Nous nous sommes plus spécifiquement intéressés dans le projet à la définition de modèles de données et de langages de requêtes de haut niveau d'abstraction pour le temps et l'espace et à leur validation par un prototype. Le cas du temps seul diffère fortement de celui de l'espace, puisqu'il bénéficie d'une longue tradition de formalisation en logique. Plus précisément, quatre thèmes de recherche ont été poursuivis : (i) l'interrogation de données temporelles, (ii) l'utilisation du modèle de bases de données contraintes pour la représentation et l'interrogation de données spatiales, (iii) la réalisation du prototype DEDALE de SGBD pour les bases de données spatiales basé sur le modèle avec contraintes et enfin (iv) l'étude de requêtes topologiques sur une base de données spatiales.
Les bases de données temporelles offrent la possibilité de stocker des données datées (date de saisie). Elles sont utilisées entre autres dans les domaines financiers et médicaux, ainsi que dans les systèmes temps-réel. Il y a deux façons d'interroger une base de données temporelle. On peut utiliser le temps de manière explicite, par exemple lorsque l'on demande les données qui sont datées du 2 Janvier 1995. Le langage le plus utilisé pour ce type d'interrogation est la logique du premier ordre FO. On peut aussi utiliser le temps de manière implicite lorsque, par exemple, on demande les données qui datent de la veille. Un langage typique de ce mode d'interrogation est la logique temporelle TL. Nous étudions les pouvoirs expressifs de ces deux modes d'interrogation des bases de données, pour les comparer entre eux et pour les améliorer. Dans [10,13], nous résolvons l'un des problèmes ouverts fondamentaux du domaine, à savoir la séparation de FO avec temps explicite et de TL.
Les données multidimensionnelles et en particulier les données spatiales conduisent à des représentations infinies (e.g. sous-espace du plan réel) mais admettant une représentation effective finie. De telles données peuvent être représentées à l'aide de contraintes sur des domaines numériques, par exemple les contraintes polynomiales sur les réels, ou les contraintes linéaires sur les rationnels. Les bases de données avec contraintes généralisent les bases de données relationnelles et un certain nombre d'outils du modèle relationnel peuvent être utilisés dans ce contexte étendu. C'est le cas des langages de requêtes. Dans [19], nous proposons des fondements théoriques au modèle de bases de données avec contraintes, et montrons certaines similarités avec la théorie des modèles finis. Nous étudions le pouvoir d'expression de la logique du premier ordre sur des bases de données contraintes [20], et introduisons de nouvelles techniques pour vérifier la non-définissabilité d'une propriété au premier ordre. Dans [43], nous montrons comment obtenir un langage qui exprime toutes les requêtes gómétriques calculables en temps polynomial.
L'effort principal du projet dans ce domaine est aujourd'hui consacré à la réalisation d'un prototype de base de données spatiales, DEDALE implémenté sur le SGBD O2, en collaboration avec le CNAM (M. Scholl, P. Rigaux) et basé sur le modèle avec contraintes. Les contraintes sont essentiellement restreintes aux contraintes linéaires sur les rationnels, ce qui suffit à la modélisation des données géographiques [46]. Deux applications géographiques tournent déjà avec des données provenant de l'IGN et de Sequoia (un important jeu de données servant de référence pour les données géographiques). DEDALE permet aujourd'hui d'écrire des requêtes spatiales complexes dans un langage déclaratif. Certaines de ces requêtes sont difficilement exprimables dans les systèmes existants. Notre défi actuel est de réaliser l'optimisation de ces requêtes, qui sont exprimées indépendament de leur stratégie de calcul.
La manipulation d'informations spatiales nécessite des contraintes spécifiques sur le langage de requêtes. Dans la plupart des cas, la forme précise des régions est importante, alors que dans d'autres applications, on ne s' intéresse qu' à leurs propriétés topologiques (intuitivement celles qui préservent l'adjacence et la connexité, et qui sont donc invariantes par homéomorphisme). Dans [24,60] on étudie les requêtes topologiques sur des bases de données spatiales en dimension deux, où les régions sont spécifiées par des inégalités polynomiales avec des coefficients entiers. On étudie plus particulièrement (1) les langages permettant d'exprimer des requêtes topologiques, et (2) la représentation de l'information topologique. En ce qui concerne le premier point, plusieurs langages ont été étudiés dans [24] basés sur des relations topologiques bien connues entre paires de régions planaires suivant une classification proposée par Egenhofer et Franzosa. En ce qui concerne le deuxième point, il est possible de montrer que toute l'information topologique peut être regroupée dans une base de données relationnelle finie appelée invariant topologique et vue comme une annotation topologique des données spatiales brutes.
Il est possible de répondre à n'importe quelle requête topologique en utilisant cet invariant topologique. Comme il a généralement une taille bien moins importante que la base de donnée spatiale elle-même, cette méthode induit une stratégie d'évaluation des requêtes topologiques potentiellement plus efficace. La traduction d'une requête sur des données spatiales en une requête équivalente sur l'invariant topologique est examinée dans [60]. Les langages considérés sont la logique du premier ordre sur les données spatiales, et la logique du premier ordre et celle de point fixe (fixpoint) sur l'invariant topologique. En particulier, il est montré que ``fixpoint'' exprime exactement les requêtes topologiques PTIME sur l'invariant topologique. Cela suggère que les invariants topologiques sont des structures particulièrement bien adaptées par rapport à la logique descriptive.
Participants : Serge Abiteboul , Daniel Chan , Stéphane
Grumbach , Victor Vianu
Mots-clés : rêgles de production, base de données active,
parallélisme, déduction, datalog, workflow, commerce
électronique, calcul relationnel, non-déterminisme
Résumé : Nous regroupons dans cette partie des travaux de nature plus exploratoire. Ils se situent souvent dans un cadre relativement théorique. Beaucoup s'appuient sur des systèmes de règles, d'autres démarrés plus récemment, mettent en jeu des aspects de workflow (contrôle de tâches).
On peut distinguer deux grandes approches pour utiliser des règles en bases de données : la déduction et les systèmes de production (voir [26] pour une comparaison entre ces deux approches).
En ce qui concerne les systèmes de production, plusieurs prototypes de bases de données actives sont formellement étudiés dans [25]. Nous proposons un modèle générique qui permet de spécifier le fonctionnement des bases de données actives. Ce modèle permet de factoriser les caractéristiques communes des prototypes considérés. Chaque prototype peut alors être spécifié en instantiant certains paramètres du modèle générique. Les prototypes considérés sont ARDL, HiPAC, Postgres, Starburst, et Sybase. On obtient une classification complète des prototypes par rapport à leur puissance d'expression. Par ailleurs, cette étude permet de distinguer les caractéristiques des prototypes qui sont essentielles à leur fonctionnalité de celles dont le rôle est cosmétique, et permet d'envisager une conception de bases de données actives plus flexible et adaptée aux besoins spécifiques des applications.
Pour ce qui est de la déduction, une nouvelle approche de l'évaluation parallèle de Datalog est étudiée dans [22]. Contrairement à ce qui s'est déjà fait dans le domaine, notre objectif est une bonne performance en moyenne plutôt que dans le pire des cas. On propose une stratégie d'évaluation beaucoup plus simple que des stratégies existantes, qui assure une très bonne performance en moyenne. L'analyse utilise une extension des lois 0-1 de logique. Elle est validée par des expérimentations sur des données générées de manière aléatoire.
De nombreuses applications mêlent des aspects bases de données et des aspects workflow. Un exemple particulièrement important est le commerce électronique. Dans [42], nous modélisons des applications de commerce électronique en utilisant les machines à état abstraites (parfois appelées evolving algebras). Dans ce cadre, une application peut être vue comme une base de données active et distribuée. Les efforts ont porté d'une part, sur une spécification déclarative des applications favorisant la customization et d'autre part, sur une implémentation du système sous Postgres. Ces travaux ont été réalisés en collaboration avec la NASA (Y. Yesha) et le système, implémenté au NIST (Institut National des Standards des Etats-Unis), est utilisé dans des applications de cet institut. Nous envisageons leur développement dans Verso.
Des travaux sur les ordonnancements de tâches et l'utilisation de bases de données comme technologie support ont aussi été entrepris. Un processus de développement de logiciel est vu comme un ordonnancement de tâches avec des spécifications précises. Un modèle a été défini ainsi que son langage de spécification. Des études détaillées sur la spécification, le raisonnement, l'implémentation au-dessus d'une base de données ont été entreprises [40,38,39,36,37]. Cela inclut la gestion des transactions et de la sécurité.
Un modèle de calcul, appelé machine relationnelle, avait été introduit dans [4] pour modéliser le style de calcul en bases de données consistant en un langage de requêtes (e.g., SQL) associé à un langage de programmation (e.g., C). Des résultats importants avaient permis de mieux cerner la puissance et les limites de ce modèle.
Nous étendons cette machine en utilisant la génération dynamique de requêtes, une forme de réflexivité dans le modèle [14]. Nos résultats concernent la puissance des machines obtenues (machines relationnelles reflexives) sous certaines restrictions de ressources en temps et en espace dans des modèles d'exécution parallèle, et suivant des limites sur le nombre de variables autorisées dans les formules logiques.
Les requêtes usuelles sont, en général, déterministes. Elles produisent une unique réponse pour chaque instance de la base. Les requêtes non-déterministes requièrent l'usage d'outils non-déterministes tant pour les exprimer que pour les calculer. Différents formalismes de requêtes non déterministes ont fait l'objet de recherches les années passées dans l'équipe. Dans [18], nous avons étudié les correspondances qui existent entre les notions de non-déterminisme aux niveaux des modèles de calcul (machines de Turing) et des langages de requêtes (différentes extensions de la logique du premier ordre).