270 likes | 428 Views
Gestion active de l’entrepôt edot avec ACWare. Revue edot du 29 Juin 2004 Lot 3 : Création de l’entrepôt S. Abiteboul, B.Amann, N. Azis, B. Nguyen , G. Ruberg G. Cobéna, A. Poggi, V. Bensal. Les entrepôts de contenu en bref. But:
E N D
Gestion active de l’entrepôt edot avec ACWare Revue edot du 29 Juin 2004 Lot 3 : Création de l’entrepôt S. Abiteboul, B.Amann, N. Azis, B. Nguyen, G. Ruberg G. Cobéna, A. Poggi, V. Bensal
Les entrepôts de contenu en bref • But: • Permettre un accès intégré vers des sources de données hétérogènes, autonomes et distribuées. • Fonctionnalités principales: • Acquisition • Transformation • Filtrage • Nettoyage et intégration • Requêtes • Accès centralisé vers l’information: Entrepôt vs. Médiateur • Entrepôt : l’information est obtenue à l’avance • Médiation : l’information est obtenue au moment de la requête • Entrepôt actif : • Stockage • Traitement (services webs) • ActiveXML
Organisation • Contexte et Motivations • Le modèle ACWare • Application dans le cadre de e.dot (B. Amann)
Contexte and motivations Entrepôts XML
Etat des lieux : Le Web • Format d’échange universel (XML) • Mariage entre documents et bases de données • Standard de langage de requêtes: XQuery • Services Web (SOAP, WSDL) • Format pour exporter des services sur le Web • Format pour encapsuler des requêtes • Web sémantique (ontologies) • Trouver et utiliser l’information pertinente
XML : Du texte et de la structure Des arbres ordonnés étiquettés dont les feuilles sont du texte Intérêt: Permet une recherche plein texte (mots-clé) et une recherche structurelle (SQL-like)
Services Web • Possibilité d’activer une méthode sur un serveur web distant • Echange d’informations en XML : les entrées et sorties se font en XML • Méthode de calcul XML distribué, par le biais de services Web • Avec XML et les Services Web, il est possible de • Récupérer des informations de n’importe où • Exporter nos données n’importe où
Accès à l’information distante Heterogeneous formats, protocols, etc. Query some data services Food Risk DB Application using food risk DB processing Use some processing services processing processing
Avec des Services Web Uniform access to information Query some data services Web Food Risk DB Application using Food Risk DB processing Use some processing services processing processing
Avantages de l’approche Entrepôt Distribué Elle permet: • Support de requêtes complexes (MIEL++) • Analyse complexe des données (via divers services web) • Enrichissement des données • Monitorage possible des informations • Versionnement, archivage, requêtes temporelles • Une mise en oeuvre facilité de toutes les fonctionalités (Services Web)
Rappel des objectifs • On veut: • Construire des entrepôts de données semi structurées • Utiliser des services web pour enrichir et traiter les données • Comment atteindre ces objectifs ? • Construction du schéma de l’entrepôt basé sur un modèle de conception bien précis • Pas de programmation, conception par le biais de requêtes • Utilisation de standards : XQuery, XUpdate, WSDL
Architecture ACWare ACWare Designer Formal Declarative Description : ACWare Declaration ACWare Compiler ACWare Viewer Supported target platform : ActiveXML : documents+ services XyCrawler, EDotFilter, Thesus, Any2Xtab, Xtab2SML, pdfCrawler … ACWare Manager Warehouse instance Executable Program web services queries
Délivrables • Un langage de spécification pour décrire l’entrepôt, et les entrées/sorties de données concernant les services web • Un compilateur qui transforme la description formelle d’un entrepôt dynamique en une instance d’entrepôt et un ensemble de programmes exécutables • Une plate-forme répondant aux spécifications, sur laquelle tourne l’application : ActiveXML • Une Interface (GUI) pour éditer les spécifications de l’entrepôt • Des outils pour l’interrogation et le pilotage de cet entrepôt dynamique
Modèle • Modèle de données • Schéma de l’entrepôt (dans l’esprit E.A) • Types Semi-Structurés • Clés • Modèle de Services • Entrée • Sortie
Gather Data from Bio-Industry Partners Gather Data from the WWW edot Services: -html clean-up -doc filters -content analysis Warehouse DATA Integration of validated Data Biologist work: -Validation of data -Querying and using data -Manage Web data sources
Modèle de données : Types • Type System: • :: basic complex • basic :: stringintegerfloat … • complex :: composite collection • composite :: [(ℓ1): 1, ℓ2: 2, …, ℓn: n] • collection :: {composite} • Example: <Lab> <name> string </name> <country> string </country> <web-site> string </web-site> <contact> string </contact> <reference> integer </reference> </Lab>
Modèle de données : Schéma Le schéma de l’entrepôt est défini en déclarant des collections, des entités, et les relations entre elles, qui portent la sémantique enrichiPar.
<dataTypes:define datatype="textcontent"> <dataTypes:child type="string" name="value"/> </dataTypes:define> <dataTypes:define datatype="URL"> <dataTypes:child type="string" name="value"/> </dataTypes:define> <dataTypes:define datatype="document"> <dataTypes:child type="URL" name="URL"/> <dataTypes:child type="textcontent" name="content"/> </dataTypes:define> <dataTypes:define datatype="author"> <dataTypes:child type="string"/> </dataTypes:define> <dataTypes:define datatype="authors"> <dataTypes:child type="collection" of="author" key="author.value"/> </dataTypes:define> <Whouse:collection name="TheWarehouse" key="document.URL.value"> <Whouse:entity datatype="document" > <Whouse:entity datatype="authors" /> <Whouse:entity datatype="experiment"> <Whouse:entity datatype="bacteria"/> <Whouse:collection name="measures" key="measure.item"> <Whouse:entity datatype="measure" /> </Whouse:collection> </Whouse:entity> </Whouse:entity> </Whouse:collection> Modèle des données Exemple réel (voir suite)
2. Web Service Call execute/use the service • Input Query • create input data WSDL Compliant Input Web Service (WSDL Definition) Additional Information (e.g. location of data) Warehouse WSDL Compliant Output Update Script Copy of Additional Information 3. Create Update Script apply results to the warehouse Modèle des Services
Requête d’Entrée • Modèle formel : langage XQuery • Implémentation actuelle : XOQL • Méthode : • Cas simple : génération de la requête correspondante • Cas plus complexe : Ecriture de la requête par le gestionnaire de l’entrepôt
SELECT <root> <input> <html-page>$A/crawled-version::text() </html-page> <options> ... </options> </input> <info> <docId> $A/URL </docId> </info> </root> FROM $A IN /biblio/document WHERE not exists ($A/document/clean-version::text()) Requête Xquery (XOQL)
Resultat après l’appel de services <root> <output> <xhtml-page> ... </xhtml-page> <validation> ... </validation> </output> <info> <docId> ... </docId> </info> </root>
Requête de sortie • Script de MAJ: SELECT <xupdate:insert path=“/biblio/document[URL=$A/../info/docId:text]/webpage” > <clean-version> $A/xhtml-page:text() </clean-version> </xupdate:insert> FROM $A IN root/output • Après l’exécution du service, appliquer le scripte de MAJ à l’entrepôt
Implantation : ActiveXML • Plateforme de développement de l’équipe GEMO : intégration de données et services • Entièrement XML ! • Stockage • Vérification de types • Optimisation des appels de services • Appels de services asynchrones • Xpath, Xquery, XSL, XSchema… • www-rocq.inria.fr/gemo/Gemo/Projects/axml/
References http://www-rocq.inria.fr/gemo/projects/spin/