Title: XML et donnes semistructures
1XML et données semi-structurées
- Serge Abiteboul
- Serge . Abiteboul _at_inria . Fr
- http//www-rocq.inria.fr/abitebou/DEA-III
- Data on the Web Abiteboul, Buneman, Suciu,
Morgan Kaufmann
2Plan
- Introduction semi-structuré
- XML
- Contexte et cahier des charges
- Héritage et principes fondamentaux
- Avantages de XML
- Zoom sur le langage
- Typage rapidement
- Quelques gadgets importants
- Exemple dapplications
- Conclusion pour aujourdhui
- Plan du cours
3Contexte et cahier des charges
4La révolution du Web
- Depuis dix ans, Internet révolutionne
l'informatique grand public - HTML est le langage du Web
- Même si on trouve aussi du .doc, .ps, .pdf et
des images (jpg, gif), du son, de la vidéo - Des milliards de pages existent actuellement
- public/privé, statique/dynamique, visible/caché
- Support naturel pour linformation distribuée
- À destination dêtres humains et
- de plus en plus, pour des applications
5Distribution de données sur le Web les
applications arrivent
- Exemples
- B2C (commerce électronique)
- B2B (achats groupés)
- Bibliothèques et fonds documentaires en ligne
- G2C (impôts)
- HTML n'est pas adapté pour ces applications
- Ces applications (programmes) ont besoin de
typage pour représenter la structure des données
6Constat1
- Pour écrire des programmes, il faut du typage
- On ne peut pas se contenter dobtenir des
ensembles de pages HTML comme avec les moteurs de
recherche du Web - Les modèles documentaires à la HTML ne proposent
pas assez de structure - Quel modèle et quelles structures?
- Un typage à la bases de données ?
7Particularités différences avec SGBD
- On ne connaît pas bien la structure
- Dans un SGBD, on connaît la structure des tables
et la sémantique des colonnes pas sur le Web - La structure est irrégulière
- Données manquantes, ou en plus (annotations)
- Variations de type dollars, euros
- Standards différents sur les adresses
- La structure peut être implicite
- Il faut parser pour la découvrir
- La structure peut nêtre que partielle
- Une partie des données est sas structure plein
texte, images, son - Le typage peut nêtre quindicatif
- On tolère des données non strictement conforme
8Particularités différences avec SGBD
- Le schéma est souvent a posteriori
- On a des données et on en déduit un type
- Le schéma est souvent gros et complexe
- Le schéma est parfois ignoré par les requêtes
- Requête par mots clé et broutage
- Le type dune information peut dépendre du
contexte - An objet MyBib est dabord une chaîne de
caractères, puis un fichier BibTex après
analyse/classification, il peut obtenir un
propriétaire une date_création peut devenir
ensuite un ensemble de Références après analyse
syntaxique - Le schéma évolue très rapidement
- Souvent une raison de ne pas choisir un SGBD
9Constat2
- Les modèles bases de données classiques proposent
une structure trop rigide - Ni modèle documentaire, ni modèle base de
données, on va prendre un modèle de données
semi-structuré qui marrie les deux
10Deux mondes se rejoignent dans les modèles
semi-structurés
XML
11Le spectre de linformation et les données
semi-structurées
Structured Data
Meta data
Hierarchy
Systèmes Relationnels
Systèmes Documentaire
Books Contracts Catalogs Bank
accounts Emails Financial Reports Insurance
Policies Economical Analysis
Derivatives Inventory Political
analysis Insurance Claims Financial
News Sports News Resumes
12Données semi-structurées XML
- Cible la gestion du champ le plus large possible
de contenus - SGBD
- Données textuelles
- Données documentaires
- Data eXchange Formats
- ASN1, BibTex, EDI
- Architecture
- Client/serveur
- médiateurs or entrepôts
- P2P
13Accès à de telles données
- Requêtes aspects principaux
- Bases de données style SQL/OQL
- Navigation (style broutage Web)
- Mots clés (style moteur recherche Web) et pattern
matching (style grep) - Requêtes sans connaître la structure des données
interroger données et structure simultanément - Requêtes tenant compte du temps, requêtes sur des
versions, archives, requêtes sur les changement - Appui linguistique synonymes, correction de
fautes dorthographe
14A la découverte de XML
15XML eXtensible Markup Language
- Un format universel pour les documents et données
(semi-) structurés sur le Web - Une version simplifiée de SGML (ISO 8879)
- Lespéranto du Web qui va remplacer HTML
- Beaucoup de bruit pour rien du marketing
- Une famille de standards en train de naître
- XLink, XPointer, XSchema, DOM, SAX, Xpath, XSL,
XQuery, SOAP, WSDL, - Un modèle de données fondé sur des arbres et un
langage de représentation basé sur le balisage
( bannières )
16Exemple
La structure est dans les bannières La sémantique
aussi ltagtlt/agt
- ltfichegt
- ltnomgt
- ltfngtSergelt/fngt
- ltlngtAbiteboullt/lngt
- lt/nomgt
- ltjob naturerecherche"gt
- INRIA
- ltadressegt
- ltvillegtLe Chesnaylt/villegt
- ltzipgt92310lt/zipgt
- lt/adressegt
- ltemailgtserge_at_inria.frlt/emailgt
- lt/jobgt
- ltmissiongtJaime enseigner ? ?
- lt/missiongt
- lt/fichegt
fiche
Syntaxe
mission
nom
job
nature
fn
ln
adresse
email
INRIA
Jaime
recherche
fn
ville
zip
Serge
Abiteboul
serge_at_inria.fr
92310
Le Chesnay
Éléments Attributs Données
fn
nature
92310
17Remarques
- XML fournit une syntaxe, pas de sémantique a
priori - Les balises n'ont pas de présentation ou de
signification définie par le langage mais elles
peuvent bien sûr avoir un sens pour les
applications - ltnomgtjeanlt/nomgt
- ltmatièregtjeanlt/matièregt
- XML ne définit que la structure et le contenu
d'un document, pas son comportement ni son
traitement
18Remarques
- Développement et promotion par W3C
- Industriels tous les poids lourds, notamment
Oracle, IBM, Compaq, Xerox, Microsoft, etc.. - Laboratoires de recherche MIT (représentant les
US), INRIA (Europe), université Keio au Japon
(Asie) - Sur Internet publication et échange
dinformation - Simplicité
- Production
- Lecture, analyse syntaxique, compréhension
- Les mêmes données (avec différentes feuilles de
style) disponibles pour de nombreux supports (pc,
pda) et de nombreuses applications
19XML est un univers impitoyableLes standards
naissent et meurent
- XML données
- DTD,Xschema typage
- Les documents doivent être bien formés mais le
typage ( valide ) nest pas obligatoire - XSL/T, Xquery transformation et requêtes
- XPATH chemins
- XLink liens entre documents
- DOM Application programing interface
- SOAP distributed computing
- WebDAV distributed authoring and versioning
- Plus des tas dautres et de logiciels
20Héritage et principes fondamentaux
21XML successeur de HTML
- HTML Hypertext Markup Language.
- Un ensemble prédéfini et limité de balises
surtout de présentation, défini par une norme
(HTML 2.0, 3.2, 4.0). - Sémantiques des balises
- h1,..,h6, title, address, donnent des
indications structurelles - center,hr,b,i,big,small, ne servent qu'à décrire
une mise en page - Tim Berners-Lee (le créateur de HTML) a lui-même
prêché pour un successeur. Pourquoi?
22Exemple de html
Des méta données Surtout de la présentation
23Problèmes liés à HTML
- L'affichage d'un document est fortement dépendant
de l'interprétation qu'en fait le navigateur - Il est nécessaire de disposer de plusieurs
versions du document en fonction du média de
rendu - L'indexation de documents ne peut se faire que
sur la partie textuelle - Document et pas donnée
24SGML et le balisage structurel
- Il fallait passer dun de balisage de
présentation à un BALISAGE STRUCTUREL - XML comme SGML dont il est un descendant
utilisent un balisage structurel - SGML Standardized Generalized Markup Language
- Très utilisé en documentation technique
- Airbus la doc doit être précise et non ambiguë
- SGML vocabulaire contrôlé ontologie
- Ce sont des métalangages de description et
déchange de documents structurés - Métalangage possibilité de définir des
dialectes dans des domaines particuliers
25XML contre SGML
- SGML norme ISO 88791986
- Très utilisé dans l'industrie pour de grandes
documentations techniques. - Trop complexe pour une utilisation grand
public ou dans des domaines moins exigeants sur
la précision - SGML trop de trucs compliqués et inutiles
- XML utilise 10 de SGML pour représenter
efficacement la plupart des besoins des
applications
26Exemple de document
Logo
En-tête
Objet
Date
Salutation
Destinataire
Formule de politesse
Corps
Signature
Pied de page
27Représentation XML
ltdategt 30 Nivose 2004 lt/dategt ltsalutationgt
Monsieur, lt/salutationgt ltcorpsgt ltparagt
Ici le premier paragraphe lt/paragt ltparagt
et là le deuxième lt/paragt lt/corpsgt lt/lettregt
ltlettregt ltentetegt ltlogo loc"logo-graph.vml"/gt
ltadressegt abrev-adresse
lt/adressegt lt/entetegt ltdestinatairegt ltnomgt Mr
Schnock lt/nomgt ltadressegt ltruegt rue
des églantiers lt/ruegt ltvillegt
Saint Glin lt/villegt lt/adressegt lt/destinatai
regt ltobjetgt bla bla lt/objetgt
28Points importants
- La représentation de cette lettre en XML ne
comporte aucune indication sur sa mise en page - Les aspects graphiques ou typographiques sont
absentes du source XML - Ces aspects seront définis par l'intermédiaire
d'une feuille de style - Une feuille de style est un ensemble de règles
pour spécifier la réalisation concrète d'un
document sur un média particulier
29Principe de fonctionnement des feuilles de style
30Exemples dapplications
31Principe général
- Pour une application particulière
- On se définit une syntaxe un dialecte XML
- On définit la sémantique de ce dialecte
- Pour me demander un rendez-vous, il faut
menvoyer le document xml-rdv du type suivant - ltrdvgtltdgtltngtxlt/ngtltpgtylt/pgtlt/dgt
- lth232gtzlt/h232gtltpgtplt/pgtlt/rdvgt
- Où x est votre nom, y votre prénom, z la date
et lheure du rdv au format ISO et p optionnel,
un lieu de rdv.
32Exemples de dialectes XML
- XHTML
- MathML
- SVG
- XSL
- SOAP
- WSDL
- XML Schema
33XHTML HTML avec un syntaxe XML
- Reformulation de HTML en tant qu'application XML
- En gros on ferme ce quon a ouvert
- Intérêt
- Syntaxe plus rigoureuse
- Importation de fragments de documents d'autres
domaines nominaux - Possibilité d'utiliser les applications XML
standard
34MathML les maths en XML
- Permettre l'échange et le traitement
d'expressions mathématiques sur le Web - Insertion aisée d'expressions mathématiques dans
des documents HTML ou XML - Communication d'expressions entre applications au
plan sémantique
35SVG le graphique 2D en XML
- Langage de description de graphiques 2D
- Graphiques vectoriels
- Interactifs et dynamiques
- Animations déclaratives
- Programmation ECMAScript
- Recommandation du 04/09/2001
36SOAP calcul distribué en séchangeant du XML
- Simple Object Access Protocol
- SOAP 1.1 soumission au W3C du 08/05/2000
- Protocole d'échange de données entre applications
distantes - Adapté pour être utilisé au-dessus du protocole
HTTP (méthode POST) - Structure d'un message SOAP
- Enveloppe Envelope Entête Header
- Corps Body
37Exemple
ltevpEnvelope xmlnsevp'http//schemas.xmlsoap.or
g/soap/envelope/' evpencodingStyle'http//schema
s.xmlsoap.org/soap/encoding/'gt ltevpHeadergt
lttTransaction xmlnst'http//stock.org/regi
stry/updPriceList/'gt evpmustUnderstand'1'gt
5 lt/tTransactiongt lt/evpHeadergt
ltevpBodygt ltmGetLastTradePrice
xmlns'http//stock.org/registry/updPriceList'gt
ltsymbolgtDEFlt/symbolgt ltcompanygtDEF
Corplt/companygt lt/mGetLastTradePricegt
lt/evpBodygt lt/evpenvelopgt
38Avantages de XML
39Echange et partage dinformation
- En XML, une communauté d'auteurs invente
librement les balises qui lui paraissent utiles
pour représenter les informations quils comptent
échanger ou partager - Exemple diverses façons de représenter une date
- ltdategt 5 Janvier 2000 lt/dategt
- ltdategt
- ltagt2000lt/agtltmgt01lt/mgtltjgt05lt/jgt
- lt/dategt
- ltdate format'ISO-8601'gt 2000-01-05 lt/dategt
- Exemples
- Commandes en commerce électronique ou toute
transaction - Publication et recherche dinformation dans un
domaine industriel comme lindustrie des
biotechnologies
40Interopérabilité des outils de traitement
- Existence doutils pour données XML
- Parseurs, éditeurs, browser
- Conséquences
- Un serveur de documents XML est susceptible de
répondre à l'ensemble des besoins d'une
organisation. - Un seul éditeur permet de traiter l'ensemble des
données d'une organisation.
41Modularité et réutilisation
- Chaque utilisateur est libre de définir ses
propres structures de document - Il peut aussi se conformer à des structures
types, appelées DTD - Chaque communauté peut ainsi proposer des
structures normalisées - La conformité à une DTD permet l'automatisation
des traitements et assure une possibilité de
contrôle de validité
42Accès à des sources d'information hétérogènes
- L'interrogation et l'échange de données entre
systèmes d'information hétérogènes est souvent
complexe - XML contribue à résoudre ce problème
- format d'échange normalisé indépendant de toute
plateforme - L'indexation et l'interrogation de grosses bases
documentaires - informations structurelles en plus d'informations
textuelles.
43Zoom sur le langage
44Exemples de documents XML
ltdocument/gt
ltdocumentgt lt/documentgt
ltdocumentgt Bonjour! lt/documentgt
ltdocumentgt ltsalutationgt Bonjour! lt/salutationgt
lt/documentgt
lt?xml version"1.0" standalone"yes" ?gt
ltdocumentgt ltsalutationgt Bonjour! lt/salutationgt
lt/documentgt
45Structure d'un élément
XML 1.0
- Un élément est de la forme
- ltnom attr'valeur'gt contenu lt/nomgt
- ltnomgt est la balise d'ouverture
- lt/nomgt est la balise de fermeture
- éléments vides, indifféremment ltnomgt lt/nomgt ou
lt/nomgt - contenu est le contenu d'un élément ?
- composé dune liste (peut-être vide) de texte,
d'autres éléments, d'instructions de traitement
et de commentaires - attr'valeur' représente un ensemble
éventuellement vide d'attributs, c'est à dire de
paires (nom,valeur). Un élément ne peut posséder
qu'un seul attribut de nom donné
46Exemples déléments
- ltagtlt/agt lt/agt
- ltagtBonjour comment va?lt/agt
- ltagtltbgtlt/bgtltbgtlt/bgtltagtlt/agtlt/agt
- ltagtltbgtlt/bgtBonjourltbgtlt/bgtSalutlt/agt
- Contenu dun élément Forêt déléments ou de
texte - Texte UNICODE peut représenter nimporte quel
alphabet (russe, hébreu, arabe, japonais,
chinois)
47Contrainte sur les noms (détail)
XML 1.0
- Un nom d'élément ou dattribut est une suite non
vide de caractères pris parmi - les caractères alphanumériques le tiret-souligné
(undescore) le signe moins le point le
caractère deux-points () sens particulier - qui doit satisfaire les contraintes suivantes
- le premier caractère doit être alphabétique ou un
tiret-souligné - les trois premiers caractères ne doivent pas
former une chaîne dont la représentation en
lettres minuscules est "xml".
48Syntaxe des attributs
XML 1.0
- Un attribut est une paire nom'valeur' qui permet
de caractériser un élément. Un élément peut avoir
plusieurs attributs. Dans ce cas, les paires
nom'valeur' seront séparées par un espace. - ltrapport langue'fr' dern-modif'08/07/99'gt
- ltannuaire generator'SQL2XML V2.0'
update'07.08.99'gt - La valeur d'un attribut est une chaîne encadrée
par des guillemets (") ou des apostrophes simples
('). Une valeur d'attribut ne doit pas contenir
les caractères , et . - Un élément a un ensemble d attributs (ordre na
pas de sémantique pour les attributs)
49Document bien formé
XML 1.0
- Un document XML doit représenter un arbre
d'éléments - Il existe dans un document un et un seul élément
père qui contient tous les autres. C'est la
racine du document. - Un élément distinct de la racine est totalement
inclus dans son père - ltpgt ltbgt bla bla lt/pgt bla lt/bgt NON!
- On dit quun document XML doit être bien formé
50Typage de XML
51Structure dun document
- Un document XML se compose
- dun prologue, éventuellement vide
- dun arbre déléments
- de commentaires et dinstructions de traitement,
facultatifs
lt?xml version"1.0" standalone"yes" ?gt
ltdocumentgt ltsalutationgt Bonjour! lt/salutationgt
lt/documentgt
52Le prologue contient
- Une déclaration XML, facultative
- lt?xml version"1.0" encoding"ISO-8859-1"
standalone"yes"gt - indique au processeur qui va traiter le document
- la version du langage XML utilisée
- le codage de caractères utilisé
- l'existence de déclarations extérieures au
document - Une déclaration de type de document, facultative
- lt!DOCTYPE exemple SYSTEM "exemple.dtd"
déclarations gt - indique la structure particulière à laquelle doit
se conformer un document
53Document bien formé sans typage
- Exemple
- lt?xml version"1.0" standalone"yes" ?gt
- ltdocumentgt
- ltsalutationgt
- Bonjour!
- lt/salutationgt
- lt/documentgt
54Documents valides
- Un document est dit valide si
- son prologue contient une déclaration de type de
document - son arbre d'éléments respecte la structure
définie par la déclaration de type - lt?xml version"1.0" encoding"ISO-8859-1"
standalone"yes" ?gt - lt!DOCTYPE document
- lt!ELEMENT document (salutation)gt
- lt!ELEMENT salutation (PCDATA)gt
- gt
- ltdocumentgt
- ltsalutationgt Bonjour! lt/salutationgt
- lt/documentgt
55Exemple de DTD simple
lt?xml version"1.0" encoding"ISO-8859-1"
standalone"yes" ?gt lt!DOCTYPE document SYSTEM
"accueil.dtd"gt ltdocumentgt ltsalutationgt Bonjour!
lt/salutationgt lt/documentgt
lt!- fichier accueil.dtd. Exemple de DTD simple
--gt lt!- Auteur --gt lt!- Date --gt lt!-
la déclaration XML n'est pas obligatoire dans une
DTD --gt lt!- permet de s'assurer que les
documents qui la référence --gt lt!- utilisent la
même version de XML --gt
lt?xml version"1.0" encoding"ISO-8859-1"
standalone"yes" ?gt lt!- Définition de l'élément
racine --gt lt!ELEMENT document (salutation)gt lt!-
Un élément salutation ne contient que du texte
--gt lt!ELEMENT salutation (PCDATA)gt
56Une autre DTD un peu plus compliquée
lt!ELEMENT note (to, from, heading, body)gt
lt!ELEMENT to (PCDATA)gt lt!ELEMENT from
(PCDATA)gt lt!ELEMENT heading (PCDATA)gt
lt!ELEMENT body (PCDATA)gt Pour chaque élément,
on définit une expression régulière qui définit
le langage des sous éléments
57La même chose en XML schema cest du XML
lt?xml version"1.0"?gt ltxsschema
xmlnsxs"http//www.w3.org/2001/XMLSchema"gt
ltxselement name"note"gt ltxscomplexTypegt
ltxssequencegt ltxselement name"to"
type"xsstring" minOccurs'1'
maxOccurs'1'/gt ltxselement name"from"
type"xsstring"/gt ltxselement
name"heading" type"xsstring"/gt
ltxselement name"body" type"xsstring"/gt
lt/xssequencegt lt/xscomplexTypegt
lt/xselementgt lt/xsschemagt
58Quelques gadgets importants autour de XML
59DOM
- Document Object Model DOM
- modèle de document
- interface de programmation indépendante du
langage et des plates-formes - Permet d'accéder
- la structure des documents (HTML et XML)
- le contenu des documents
- Exemple Premier-Enfant, Premier-Enfant(Section)
- Suivant, Parent, Attribut(ID)
- API définie pour trois langages
- OMG IDL, Java, ECMAScript
60XPath
- Langage d'expressions de chemin
- adresser des parties de documents XML
- Une expression élémentaire XPath contient
- un axe qui spécifie la relation structurale
fils, descendants, ancêtres, frères,
attributs,... - un test qui spécifie le type de noeud
- des prédicats pour raffiner la sélection
- Brique de base d'autres applications XML
- Xlink, XSLT, Xquery,
61XLink
- XML Linking Language
- Hypertexte avancé
- permet d'insérer dans les documents XML de quoi
décrire les liens entre ressources Web - Liens simples unidirectionnels à la HTML
- Liens hors document
- Liens multidirectionnels
- Comportement des liens
- XLink utilise XPath pour adresser l'intérieur des
structures XML
62Si on ajoute des références cela devient un
graphe
personne
personne
père
époux
époux
nom
prénom
nom
prénom
adam
eve
personne
personne
filsde
filsde
nom
prénom
nom
prénom
filsdadam
filsdadam
cain
abel
63Transformation de documents
- Le Web présente de multiples cas de
transformation - Formatage
- Réutilisation de document
- Adaptation aux outils de présentation
- Conversion de format, par exemple XML vers HTML
- Trois approches
- Des programmes utilisant le DOM
- Les feuilles de transformation XSLT
- Le langage de requêtes XQuery
64XSLT
- Langage de transformation
- le Perl de XML
- Une feuille de transformation XSLT contient un
ensemble de règles pattern/template - Pattern
- Contexte structurel dans l'arbre source
- Expression XPath
- Template
- Un fragment du résultat à produire pour le
pattern correspondant - Principe
- Quand le pattern est reconnu dans le document
source, le template correspondant est engendré
dans le document résultat
65XQuery
- le SQL de XML
- Pas complètement fixé
- Les requêtes XQuery
- Peuvent sélectionner des documents entiers ou des
sous-arbres qui répondent à la requête - Peuvent construire des documents nouveaux fondés
sur ce qui est sélectionné
66Exemple de XQuery
- FLW prononcer "flower"
- Dans le style du SFW de SQL
- Exemple
- FOR p IN document("bib.xml")//publisher
- LET b document("bib.xml)//bookpublisher
p - WHERE count(b) gt 100
- RETURN p
- p parcourt la séquence des éléments publisher
- b contient la séquence des book associés à p
- WHERE filtre la liste des tuples (p,b)
- RETURN construit pour chaque tuple le résultat
67XML et traitement de données
- On voit arriver des processeurs XQuery
- SGBD relationnelles adaptées pour XML
- Oracle a maintenant un XML-Box, IBM
- SGBD objets refaits à la mode XML
- Excellon vient de Object Design
- SGBD natif XML
- Tamino de Software AG (recyclage?)
- Repository XML natif
- Xyleme on verra peut-être
68A quoi cela sert?
69Applications
- Commerce électronique et aussi administration
électronique - Gestion documentaire
- Bibliothèque numérique, documentation, sites Web,
portail - Gestion de données distribuées
- Entrepôt de contenu
- Gestion de données personnelles
- Domotique, informatique embarquée, gestion de
réseau
70Gestion de données personnelles demain matin -)
- Adresse, agendas, photos, musique, films, reçus,
comptes bancaires - Où sont-elles?
- PDA, téléphone cellulaire (et autres), PC maison,
PC portable (et autres PC), home cinéma (et
autres domotique), voiture, Web - Intégration de données de la maison (époux,
enfants), de lentreprise (patron, assistants,
clients, fournisseurs), du Web - Protocole pour intégrer/synchroniser ces données
les services Web - Format de ces données XML
71Gestion de ces données Exemple de nouveaux
services
- Je veux passer un message à Mme Michu
- Je me moque du media par téléphone (son
portable, sa secrétaire), boite vocale (sur son
portable, son PC), courriel, sms - Suivant son profile et son activité et qui je
suis, un choix de livraison est choisi - On cherche un restaurant avec des copains
- Le système choisi suivant notre localisation, nos
profiles (nos goûts), notre budget
72Content warehouse (vs. Relational warehouse)
- A general concept
- A precise example in mind Xyleme
73Warehouse
- Goal to provide an integrated access to
heterogeneous, autonomous, distributed sources of
information - Main functionalities acquire, transform, filter,
clean and integrate data, support for queries - Centralized access to information
- Warehouse vs. mediation
- Warehouse information is acquired in advance
- ? Mediation information acquired when needed
74Content vs. data warehouse
75Warehouse
- Import data from many sources
- Add value to it without interfering with
operational data - Export integrated views of it
76Functionalities
Exploiting
GUI, Web services, reporting
Feeding
Web
77Functionalities Feeding
- Loading from the Web (Internet and Intranet)
- Web search
- Web crawl
- Access Web data via forms or Web services
- Plug-ins to load from
- File systems, document management systems
- Data bases, LDAP
- Newsgroup, emails
- Other applications
- Extraction and transformation
- XSL-T or Xquery mappings for XML sources
- XML-izers to load data from other formats
- Monitoring of the feeding
78Functionalities More feeding
- User feeding
- Document editing
- Meta data editing
- Publication
- API SOAP and WebDAV
-
79Functionalities Storage
- Storage of (massive volume of) XML (terabytes)
- Indexing of (massive volume of) XML
- By structure
- By full-text
- Linguistic support multi language, stemming,
synonyms, etc. - Very efficient XML query processing
- Importance ranking
- Monitoring of the warehouse (support for
subscriptions) - Access control and security
- Versioning, archiving
- Recovery
- Possibly transaction mechanism
80Functionalities Enrichment
- Global organization
- Global schema management
- Management of collections
- Incorporate domain ontologies and thesauri
- Document classification
- Cleaning by filtering out documents from
collections, etc. - Document enrichment
- Concept extraction and tagging
- Cleaning inside de document
- Summarization, etc.
- Relationships between documents
- Tables of contents
- Tables of index
- Cross referencing, etc.
81Functionalities View integration
- View management
- Document restructuring/mapping
- Schema to schema mapping
- Semantic integration
- Manual for complex ones and (semi-) automatic for
simple ones - Tools to analyze a set of schemas
- Tools to integrate them
- Processing for queries on integration view
- Management of virtual data in a mediator style
-
-
82Functionalities Exploitation
- Access to the warehouse
- Browsing
- Querying by keywords, XPaths or Xquery
- Temporal queries
- Query subscription
- Reporting
- Generation of complex reports with pointers to
documents, counts, abstracts - Organized by collections, content, domains
- By GUI or from programs (Web service-based API)
83Conclusion
84 Ce quil faut retenir
- Semi-structuré mariage des systèmes
documentaires et des systèmes de gestion de bases
de données - XML
- Des arbres ordonnes étiquetés et des liens
- La sémantique et le typage est dans les bannières
- Format d échange de données XML
- Protocole pour échanger des données les services
Web
85 Et avec quelle technologie
- La techno base de données
- Arbre-B, hachage, optimisation de requêtes
- La techno documentaire
- Indexe plein texte, classification
- La techno réseau
- Requêtes distribuées, table hachage dynamique
- La techno XML propre
- Automate, automate darbres
86Plan du cours
- Modele de donnees Serge Abiteboul
- Modeles de requetes Ioana Manolescu
- Typage Serge
- Xquery Ioana
- Optimisation de requetes Ioana
- Web information management Serge
- Active XML Serge et Ioana
- Présentation de papier par les élèves avec Serge
87Examen pas encore final
- Par présentation de papiers
- Control continu
- Présence obligatoire participation et absences
notées - Résumé et critique individuelle dun module du
cours - Résumé de ½ page
- Critique de ½ page
88Mercisil reste du temps Xyleme
89Construction of a dynamic Warehouse from Web data
90Xyleme in short
- The Xyleme project
- Initiated at INRIA
- Joint work with researchers from Orsay, Mannheim
and CNAM-Paris universities - The Xyleme company www.xyleme.com
- Started in 2000
- About 20 people now
- Mission Deliver a new generation of content
technologies to unlock the potential of XML - Here focus on the Xyleme project
91Goal of the Xyleme project
- Focus is on XML data (but also handle HTML)
- Semantic
- Understand tags, partition the Web into semantic
domains, provide a simple view of each domain - Dynamicity
- Find and monitor relevant data on the web
- Control relevant changes in Web data
- XML storage, index and queries
- Manage efficiently millions of XML documents and
process millions of simultaneous queries
92The goal of Xyleme project XML Dynamic
Datawarehouse
- Many research issues
- Query Processor
- Semantic Classification
- Data Monitoring
- Native Storage
- XML document Versioning
- XML automatic or user driven acquisition
- Graphical User Interface through the Web
93Functional Architecture
Query Processor
Repository and Index Manager
94Architecture
-------------------- I N T E R N E T
-----------------------
95Prototype main choices
- Network of Linux PCs
- (Also works with SUN servers)
- C on the server side
- Corba for local communications between PCs
- HTTP SOAP for external communications
- Direct communications for query processing
- For performance reasons
96Scaling
- Parallelism based on
- Partitioning
- XML documents
- URL table
- Indexes (semantic partitioning)
- Memory replication
- Autonomous machines (PCs)
- Caches are used for data flow
97Change control
98Research on Data Acquisition
- Xyleme crawler visits the HTML/XML web
- Management of metadata on pages
- Sophisticate strategy to optimize network
bandwidth - importance ranking of pages
- change frequency and age of pages
- publications (owners) subscriptions (users)
- Each crawler machine visits about 4M page/day
- Each index machine indexes 1M page/day
99Research on Change Management
- The Web changes all the time
- Data acquisition
- automatic and via publication
- Monitoring subscriptions
- Monitoring continuous queries
- Versioning mechanism
- Based on Deltas between consecutive vers
100Subscription
- Users can subscribe to certain events, e.g.,
- changes in all pages of a certain DTD or of a
certain semantic domain - insertion of a new product in a particular
catalog or in all catalogs with a particular DTD
- They may request to be notified
- at the time the event is detected by Xyleme
- regularly, e.g., once a week
101Continuous Queries
- Queries asked regularly or when some events are
detected - send me each Monday the list of movies in
Pariscope - send me each Monday the list of new movies in
Pariscope - each time you detect that a new member is added
to the Stanford DB-group, send me their lists of
publications from their homepages
102Versions and Deltas
- Store snapshots of documents
- For some documents, store changes (deltas)
- storage last version sequence of deltas
- complete delta reconstruct old versions
- partial delta allow to send changes to the user
and allow refresh - Deltas are XML documents
- so changes can be queried as standard data
- Temporal queries
- List of products that were introduced in this
catalog since January 1st 2002
103The Information Factory
Web
loaders
subscription processor
send notification
change detection
documents and deltas
continuous queries
time
Repository
results
version queries
104Results
- Very efficient XML Diff algorithm
- Computes difference between versions
- Best but didnt test yet the new MS package
- Representation of deltas based on an original
naming scheme for XML elements - one element is assigned a unique identifier for
its entire life - compact way of representing these IDs
- Efficient versioning mechanism
105Results
- Sophisticate monitoring algorithm
- Detection of simple patterns (conjunctions) at
the document level - Detection of changes between consecutive versions
of the same documents - Scale to dozens of crawlers loading each millions
of documents per day for a single monitor
106Issues languages for monitoring
- In the spirit of temporal languages for
relational databases - But
- Data model is richer (trees vs. tables)
- Context is richer versions, continuous queries,
monitoring of data streams
107Semantic Data Integration
108Data Integration
- One application domain -- Several schemas
- heterogeneous vocabulary and structure
- Xyleme Semantic Integration
- gives the illusion that the system maintains an
homogeneous database for each domain - abstracts a set of DTDs into an abstract DTD a
hierarchy of pertinent terms for a particular
domain
109Technology in short
- Cluster DTDs into application domains
- Business, culture, tourism, biology,
- For an application domain semi-automatically
- Organize tags into a hierarchy of concepts using
thesauri such as Wordnet and other linguistic
tool - This provides the abstract DTD for the particular
domain - Generate mappings between concrete DTDs and the
abstract one
110Query Processing
111Xyleme Query Language
- A mix of OQL and XQL, will use the W3C standard
when there will be one - Select product/name, product/price
- From doc in catalogue,
- product in doc/product
- Where product//components contains flash
- and product/description contains camera
112Principle of Querying
query on abstract DTD
Union of concrete queries (possibly with joins)
catalogue/product/price ? d1//camera/price ?
d2/product/cost catalogue/product/description
? d1//camera/description ?
d2/product/info, ref ? d2/description
MAPPINGS between concrete and abstract DTDs
113Query Processing
- Partial translation, from abstract to concrete,
to identify machines with relevant data - Algebraic rewriting, linear search strategy based
on simple heuristics in priority, use in memory
indexes and minimize communication - Decomposition into local physical subplans and
installation - Execution of plans
- If needed, Relaxation
114Query processing
- Essential use of a smart index combining
full-text and structure
115Repository
116Storage System Xyleme Store
- Efficient storage of trees in variable length
records within fixed length pages - Balancing of tree branches in case of overflow
- minimize the number of I/O for direct access and
scanning - good compromise compaction / access time
117Tree Balancing in Xyleme Store
Record 1
Overflow more children in other page
Overflow Sub-tree in other page
Record 3
Record 2
Record 4