Serge Abiteboul, Grégory Cobena, Benjamin Nguyen, Antonella Poggi Construction and Maintenance of a SPIN (Set of Pages of Interest) using Active XML Serge Abiteboul, Grégory Cobena, Benjamin Nguyen, Antonella Poggi INRIA-FUTURS, Projet Gemo Email: Firstname.Lastname@inria.fr B. Nguyen BDA 2002
Qui? Travaux au sein de l’ex-projet Verso (Gemo) Serge Abiteboul Grégory Cobena Antonella Poggi Benjamin Nguyen Collaboration au projet RNTL e.dot avec le labo BIA de l’INRA sur le risque alimentaire B. Nguyen BDA 2002
Quoi? Développer une approche: Flexible, générique, déclarative de spécification d’un entrepôt de données du Web Simplifier l’acquisition de ces données du Web + Utilisation de services Proposer une plate-forme de développement d’entrepôts de données. B. Nguyen BDA 2002
Comment? B. Nguyen BDA 2002
Plan de la Présentation 1- Une nouvelle problématique… 2- SPIN Idées de base Architecture Exemple 3- Objectifs futurs B. Nguyen BDA 2002
1- Une nouvelle problématique… B. Nguyen BDA 2002
Problématique générale des entrepôts de données 1/ “The topic of data warehousing encompasses architectures, algorithms and tools for bringing together selected data from multiple databases or other information sources into a single repository, called a Data Warehouse.” J.Widom, Research Problems in Data Warehousing, CIKM 1995 B. Nguyen BDA 2002
Problématique générale des entrepôts de données 2/ Info source Data Warehouse Wrapper INTEGRATOR B. Nguyen BDA 2002
Sujets de Recherche Wrappers/Monitors Integrator Warehouse specification (WHIPS-SIGMOD 1997) Diverses optimisations B. Nguyen BDA 2002
SPIN: Les différences Un travail autour du document plutôt que dans le document Intégration Plus grand nombre de sources (chaque document web/Service) Moins de structure dans chacune des pages Des thèmes très variés Ergonomie et simplicité Une architecture simple et modulaire Une approche pour utilisateur ‘novice’ B. Nguyen BDA 2002
Brefs rappels XML (W3C) WSDL (W3C) ActiveXML Format XML pour décrire des services Orienté document ou procédural Utilisé avec d’autres protocoles (SOAP) ActiveXML B. Nguyen BDA 2002
ActiveXML Travaux en cours: AXML = XML + Appels de services S.Abiteboul, T.Milo, O.Benjelloun, I.Manolescu, A.Bonifati, L.Segoufin…+ équipe SPIN! AXML = XML + Appels de services Langage déclaratif Peer-to-peer Mise en oeuvre très simple de services web B. Nguyen BDA 2002
2- SPIN B. Nguyen BDA 2002
Le projet Une volonté de généricite et de simplicité dans la construction d’un entrepôt Un langage déclaratif permettant de spécifier un SPIN Implémentation des services (modules) constituant la base du système Approche modulaire Implémentation en Java, XML, XSLT (B. Zhu) Spécification ‘haut niveau’ en Active XML (langage ‘data-centric’, calcul distribue) B. Nguyen BDA 2002
Entrepôt=Intention+Extension Définition déclarative a base de services existants (SOAP, WSDL, UDDI… AXML) Écriture de services propres Extension Pages webs stockées dans un répositoire XML Enrichissement continu de l’extension Interrogation via requêtes XOQL (V. Aguillera) B. Nguyen BDA 2002
Architecture Internet Web Service Application AXML Client AXML processor Web Services Crawler XOQL Service XyDiff Xyleme Services SPIN Services Google XOQL Engine Xml repository B. Nguyen BDA 2002
Exemple : Sèvres Un utilisateur veut créer un entrepôt de données sur la ville de Sèvres… Comment faire cela en quelques lignes? B. Nguyen BDA 2002
Fil conducteur Description de l’entête de l’entrepôt Description de l’intention Manière très générale Réutilise comme paramètre Description des services Services génériques Services particuliers a l’entrepôt B. Nguyen BDA 2002
Modèle de données: Entête <spin:warehouse name="Sèvres"> <spin:head> <spin:owner id="Serge" /> <spin:title>Sèvres Warehouse</spin:title> <spin:accessControlList> <spin:access group="friends" mode="call"/> <spin:access group="all" mode="read"/> </spin:accessControlList> </spin:head> <spin:spin name="sevres"> <spin:intension> ... </spin:intension> <spin:extension> ... </spin:extension> <spin:services> ... </spin:services> </spin:spin> <spin:spin name="sevres-sculpture"> ... </spin:spin> </spin:warehouse> B. Nguyen BDA 2002
Modele de données: Intention (‘pur’ XML) <spin:spin name="sevres"> <spin:intension> <spin:bound>3000</spin:bound> <keywords> <keyword>Sèvres</keyword> <keyword>92310</keyword> </keywords> <interestingSites> <site>http://www.ville-sevres.fr/</site> <site>http://www.vertsdesevres.com/</site> </interestingSites> </spin:intension> ... </spin:spin> B. Nguyen BDA 2002
…les services utilisent les données de l’intention <spin:services> % Keyword Query let askGoogle($name) be { for each $X in <axml:sc name="http://www.google.com/googleSearch"> <axml:params> <axml:param name="keyword" xpath="//spin:spin[name=$name]/keywords" /> </axml:params> </axml:sc> do insert (//spin:spin[name=$name]/spin:extension/<spin:url id=$X>) } B. Nguyen BDA 2002
Services (suite) % Interesting sites let crawlInterestingSites($name) be{ for each $X in <axml:sc name="http://www.myservices.com/getSite"> <axml:params> <axml:param name="url" xpath="//spin:spin[name=$name]/spin:intension/interestingSites/site/" /> <axml:param name="depth">5</axml:param> <axml:param name="bound" xpath="//spin:spin[name=$name]/spin:intension/spin:bound/" /> </axml:params> </axml:sc> do insert (//spin[name=$name]/spin:extension/<spin:url id=$X opinion="yes">) } </spin:services> </spin:warehouse> B. Nguyen BDA 2002
Services supplémentaires Classification Annotations de l’utilisateur Évolution temporelle Requêtes (préecrites) sur le document résultat avec XOQL B. Nguyen BDA 2002
Un service avancé: La gestion des M-A-J de manière transparente let aggregate($name, $D1, $D2) be { insert //spin:spin[name=$name]/spin:extension[date=$D1]/ <delta from=$D1 to=$D2> ... %the delta </delta> </spin:extension> //spin:spin[name=$name]/spin:extension[date=$D2]/ <axml:sc name="applyDelta"> <axml:params> <axml:param name="from" xpath="../spin:extension[date=$D1]" /> <axml:param name="delta-loc" xpath="../delta[from=$D1 && tp=$D2]" /> </axml:params> <validity>CLONE VALUE</validity> <refreshPolicy>ON DEMAND</refreshPolicy> </axml:sc> delete //spin:spin[name=$name]/spin:extension[date=$D2]/spin:url} B. Nguyen BDA 2002
Extension (résultat) <spin:extension date="31 jul 2001"> <spin:url id="http://www.mysite.com/mypage.html"> % En utilisant d’autres services <content>...</content> <link>http://www.yahoo.com/</link> <link>http://www-rocq.inria.fr/</link> <type>HTML</type> <last_update>28 jul 2001</last_update> <classification>Resume</classification> <site>http://www.inria.fr/</site> </spin:url> ... </spin:extension> B. Nguyen BDA 2002
Implémentation Bibliothèque de services web ‘génériques’ pour l’aide a la création d’entrepôts Crawler Classification (THESUS) Diff (evolution temporelle de l’entrepôt) Moteur de requêtes Présentation (XSLT) AXML (O. Benjelloun) B. Nguyen BDA 2002
3- Objectifs futurs B. Nguyen BDA 2002
Quelques pistes… Méthodologique: Approche ‘a la UML’ Définition de concepts simples Présentation graphique compréhensible/ ergonomique Solution d’implémentation directe Quel modèle/langage conceptuel? Amélioration des services Plus évolues Plus interdépendants Gestion du travail coopératif Gestion des utilisateurs Problèmes de sécurité B. Nguyen BDA 2002
Questions? B. Nguyen BDA 2002