Fabriquer une base De données Astronomique Sans - OV

publicité
SAADA
Fabriquer une base
De données Astronomique
Sans programmer
Team:
Patrick MILLAN Laurent MICHEL
Christian MOTCH
Ngoc Hoan NGUYEN
F. Xavier PINEAU Funded by
Supported by
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
1
L'objectif de SAADA…
Virtual Observatory
WEB
spectre
plots
Liste spectre
plots
spectre
d’objets
images
Liste plots
Liste Liste plots
d’objets
images
d’objets
spectre
d’objets
Liste images
images
plots
d’objets Liste d’objets
Analysis Software
Courtesy of Hergé
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
2
… Suite
• SAADA se propose de donner aux astronomes le moyen de mettre leurs données individuelles dans de vraies bases de données: les SaadaDBs.
– Les SaadaDBs sont conçues pour les données astronomiques
– Les SaadaDBs sont dédiées aux astronomes
– Les SaadaDBs sont auto­configurables – Pas de code à écrire ­
• SAADA est un outil pour faire de la Science.
– Des données sont archivées et sélectionnées en suivant des considérations scientifiques.
– Les données peuvent être associées entre elles par des liens permanents.
– Les données peuvent être manipulées par une API Java.
• Saada est un outil pour exposer ses données.
– Interface Web
– Publication dans l'Observatoire Virtuel
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
3
Le principe de base: Un générateur de base de données
• Saada est un générateur de base de données
– Saada crée une base de données (une SaadaDB) vide suivant un canevas prédéfini
– Une fois la SaadaDB créée, Saada ne sert plus à rien sinon à créer une autre SaadaDB.
• La SaadaDB est autonome
– Elle possède ses propres outils.
– Elle possède ses propres bibliothèques.
– Elle possède sa propres base SQL
– Elle possède sa propre URL d'accès
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
4
Principe de création d'une SaadaDB
Web
VO
API Java
SaadaDB opérationnelle
Règles de configuration
Téléchargement + installation
SaadaDB générique
Fichiers FITS (VOTables )
JDBC
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
5
Organiser la SaadaDB suivant des critères scientifiques
1 tiroir = 1 collection
OHP
XMM
ARCHIVES
Spectres
Images
Listes des sources
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
6
Etapes de création d'une SaadaDB
Classification
des produits
Autoconf module
OBSERVED SIMULATED
API
WWW/VO
Autoconf module
OBSERVED
SIMULATED
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
Saada­DB
SIMULATED
Saada­DB
OBSERVED
on s
sti uit
ge d
In pro
s
de
de Def
s c ini
ol tio
lec n t io
ns
http://amwdb.u­strasbg.fr/saada
Images
Listes d'objets
Simulations
Images
Spectres
Listes de Sources Saada­DB
Observations
7
Organisation des données: La collection
• La collection est une entité nommée
• Le contenu d'une collection est défini par l'opérateur
– Données d'un même instrument
– Données d'un même modèle
– .....
• La collection contient
– Une liste de spectres
– Une liste d'images
– Une liste de tables avec les entrées associées
– Une liste de « plots » • La collection est utilisée pour définir la portée des requêtes
– Requêtes sur une ou plusieurs collections
– Tous les produits d'une même catégorie ont des attributs communs déduits des mots clés originaux
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
8
Organisation des données: La classe de produits
• Les données hétérogènes dans une même collection sont groupées par classes
• Une classe est constituée du plus petit sur­ensemble de tous les attributs des produits qui la constituent.
– L'opérateur doit être vigilant quant à la fusion de produits hétérogènes dans une même classe
• La classification des produits est semi­automatiques
– Règles données par l'opérateur
– Les classes peuvent être modifiées en cours de chargement
• On peut poser des contraintes sur les attributs d'une classe à condition que la requête ne porte que sur cette classe
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
9
Sélectionner des données hétérogènes dans une collection
Les données présentent deux interfaces pour les requêtes
1.
2.
Une Interface commune pour les sélections simples
Les données natives pour les requêtes plus sélectives
Les deux interfaces peuvent être utilisées dans la même requête
Données d'une collection
Product A1
Product A2
Product A3
SaadaQL
Product B1
Product B2
SaadaQL/CS/SIA/SSA
Product B3
Product B4
Product C1
Données originales
• Hétérogènes
Interface commune de données (données de collection)
• Homogènes
• Recopiées et formatées à partir des données originales
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
10
Structure d'une SaadaDB
Outils nécessaires
• Java 1.5
• J2EE 1.3 (jar)
• Axis 1.2
• Ant 1.6
•Tomcat 5
• PSQL 8
Chargeur de
données
Données relationnelles
Code natif
Vont être intégrés dans la distribution
Application utilisateur
Code spécifique ou généré
Serveur VO
Servlet
API
Moteur de requêtes
Cache objets
Couche d'accès aux données (JDBC)a
SQL
OIDs/data
RDBMS
•Meta­donnnées Saada
•Données Saada
•Données orginales
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
11
SAADA
DEMO
Team:
Patrick MILLAN Laurent MICHEL
Christian MOTCH
Ngoc Hoan NGUYEN
F. Xavier PINEAU Funded by
Supported by
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
12
Principe de création d'une SaadaDB
Web
VO
API Java
SaadaDB opérationnelle
Règles de configuration
Téléchargement + installation
SaadaDB générique
Fichiers FITS (VOTables )
JDBC
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
13
Démo 1
• Création de la base SQL
– La base SQL (PSQL 8) est créée vide: host> createdb ASOV
• Edition du fichier de configuration – Utilisation d'un installeur (next/next/finish)
• Création de la SaadaDB vide –
–
–
–
commande host> $SAADA_HOME/bin/NewSaadaDB
Identification de la SaadaDB
Identification du système de gestion de bases de données relationnelles
Identification des répertoires de la base et du repository
– Définition du système de coordonnées spatiales.
– Définition des coordonnées spectrales
• Construction des servlets
– host> saadadbs/ASOV/bin/build_servlet
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
14
Organisation des données dans une SaadaDB Ensemble hétérogène de produits
1
En sortie: une SaadaDB
en entrée: des fichiers FITS
Collection
spectrum
plots spectre vectors
table
spectrum
images
vectors
Liste vectors
tabled’objets
table
spectre images
table
image
Organisation en collections
2
spectre
spectre
spectre
spectrum
plots
vectors
image
table
table
table
table
table
SAADA
image vectors
Collection spectre
spectre
spectrum
plots
plots
plots
vectors
images
image
table
table
Requêtes sur des données hétérogènes 4
Gestion de relations permanentes
3
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
15
Organisation des données: La configuration de produits
• Le configuration de produit est définie par l'opérateur pour charger les données
– Identification des fichiers relevant de la configuration
– Choix de la méthode de classification
– Collection d'affectation.
– Mapping des attributs obligatoires (position p.e.)
• Les utilisateurs ne voient pas les configurations.
– Ils ne voient que les classes et les collections.
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
16
Démo 2: Chargement des données
• Définir les collections
– De nouvelles collections peuvent être ajoutées à tout moment
• Définir les configurations
– Une configuration ne peut plus être modifiée depuis l'interface graphique une fois enregistrée.
– La modification manuelle reste possible mais avec d'éventuel effets de bord.
• Charger les produits
– Les produits peuvent être chargés en plusieurs fois
– Le schéma de classe s'adapte en cours de chargement Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
17
L'interface graphique
• L'interface graphique est basée sur des servlets Java
– Compilation des servlets lors de la création de la base
– Déploiement manuel après chaque nouveau chargement
• Accès aux données:
– Par produit (OID)
– Par classe de produits
– par collection
– Sur requêtes
– Par protocoles VO
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
18
Démo 3:
• Déploiement de l'interface graphique
– %> buildservelt
– %> DeployTomcat
• Présentation des principales pages
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
19
Le langage de requêtes SaadaQL
• Pourquoi un langage propre
– Sélection de données hétérogène
– Utilisation des collection dans les requêtes
– Contraintes sur les motifs de corrélations
• SaadaQL n'est pas un vrai langage...
– Ni le temps ni les compétences pour développer un vrai langage comme OQL
• Grammaire complexe
• Moteur de requêtes
• ... mais une sorte de langage créole
– Mélange d'expressions propres et d'expressions SQL
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
20
Le langage de requêtes SaadaQL
On ne précise que la catégorie de produits recherchés, pas les colonnes
SPECTRUM
IMAGE2D
*
*
TABLE From Class1
Select
In Coll1
ENTRY
Class1,Class2
Coll1, Coll2
PLOT
La portée de la requête est définie par rapport aux collection et aux classes
WherePosition {
isInCircle("M31"
,0.1,J2000,FK5),
isInCircle("12:23:56 -1:2:3.5",0.2,J2000,FK5),
isInCircle("12.23 -34.87"
,0.2,J2000,FK5),
}
WhereAttributeSaada {
namesaada = 'M31'
Supporte les recherches multi­positions
}
Clause WHERE SQL ne pouvant contenir que
des contraintes sur les attributs de collection
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
21
Requêtes SaadaQL sur une seule classe
La requête porte sur une seule classe, donc sur une seule collection.
SPECTRUM
IMAGE2D
TABLE From Class1 In Coll1
Select
ENTRY
PLOT
WhereAttributeClass {
Clause WHERE SQL ne pouvant contenir que
_Vmag > 8
des contraintes sur les attributs de la classe
}
WherePosition {
isInCircle("M31"
,0.1,J2000,FK5),
isInCircle("12:23:56 -1:2:3.5",0.2,J2000,FK5),
isInCircle("12.23 -34.87"
,0.2,J2000,FK5),
}
WhereAttributeSaada {
namesaada = 'M31'
}
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
22
Les relations permanentes
• Saada sait gérer des liens entre enregistrements
– Relations persistantes
– Liens qualifiés
• Intérêt des liens persistants
– Modélisation de la connaissance
– Orientation fouille de données
• Utilisation des liens
– Navigation entre objets associés
– Sélection de d'objets par la nature des objets associés et la nature des liens eux­même
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
23
Les relations permanentes: Exemple 1
• Les données XMM­Newton
– Un corpus de données à ingérer
– Cross corrélations faites dans le pipeline
• Corrélation entre les sources XMM et 202 catalogues
– Liens de corrélation sont stockés dans la base
• L'unicité des sources d'archive est restaurée.
– X1 vue dans l'observation O1
– X2 vue dans l'observation O2
– A figurera dans les produit de O1 et de O2
O1
X1
A
X2
O2
• Sélection de sources X par des contraintes sur les contre­parties
– Identification d'objets rares: outlayers et autres moutons à 5 pattes
– Sélection de classes d'objets
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
24
Les relations permanentes: Exemple 2
OBSERVATION
spectres
entrées
images
SIMULATION
entrées
Liens qualifiés par v
v√
=
( v
2
x
+
vy2 +
vz2)
image
• Liens entre données simulées et données d'expérience
– Association par des paramètres autres que la position (vitesse, brillance...)
– Validation manuelle des liens
– Annotation des liens (vraisemblance, indicateur de qualité)
• Utilisation
– Sélection des données simulées validées ou non
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
25
Les relations permanentes: Exemple 3
• Archivage de modes d'extractions
– Les sources sont liées aux images où elles ont été détectée
– Les liens représentent les algorithmes de détection et leurs paramètres
Algorithme 1
paramètre: p11 p12
Algorithme 1
paramètre: p14 p12
Algorithme 1
paramètre: p11 p18
Algorithme 2
paramètre: p14 p12
Algorithme 2
paramètre: p11 p18
Source 1
Source 2
Source 3
Source 4
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
26
Définition d'une relation permanente dans Saada
• La relation permanente est une entité nommée dans Saada
– Elle relie potentiellement toutes les données d'une certaine catégorie dans une collection donnée avec tous les objets d'une certaine catégorie dans une collection donnée.
• Exemple: toutes les images de la collection HST avec tous les spectres de la collection OHP
– Les liens composant la relation sont définis par des qualificateurs • Valeur affectées au lien.
– Saada fournit une classe Java template pour mettre à jour la relation. Elle doit être complétée par l'opérateur.
• La relation peut être mise à jour par toute autre méthode.
• Les relations permanentes ont leur propre système d'indexation afin d'éviter les jointure SQL lourdes dans les requêtes
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
27
Démo 4: création d'une relation
• Création de la relation permanente SpectraToImage liant les spectres avec les images ou ils ont été vus.
– Les liens sont qualifiés par la position RA/DEC du spectre
• Des algorithmes standards seront bientôt proposés.
– distance
– écart à une valeur pivot
– comparaison d'attributs
– ...
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
28
Utilisation des relations dans les requêtes
• Utilisation des motifs de corrélation pour sélectionner les objets
– Nombre de liens (cardinalité)
– Valeur de qualificateurs
– Attributs des objets pointés par les liens
• Besoin d'un opérateur spécifique dans le langage de requête
– Justification de SaadaQL
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
29
Expression des motifs de corrélation dans SaadaQL
WhereRelation {
matchPattern {« relation »
Cardinality(« [] », 1, 2)
Qualifier(« RA », « [] », 12, 245)
Qualifier(« DEC », « [] », -20 +20)
AssObjAttSaada(« namesaada like 'K%' »)
AssObjClass(« class1 », ...)
AssObjAttClass(« _Vmag > 8 »)
}
}
Contrainte sur les attributs de classe de la contrepartie (si une seule classe spécifiée)
Contrainte sur la classe de la contrepartie
Contrainte sur les attributs Saada de la contrepartie
Contraintes sur les valeurs des qualificateurs
Nombre de liens devant satisfaire les conditions qui suivent
Relation sur laquelle s'applique le motif
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
30
Saada et le VO
• Saada permet publier des données locales dans le VO
– Implémentation des services
• Données de Saada visibles par les outils VO
• Chargement dans une SaadaDB de données extraites d'autres centres de données
– Possibilité de confronter les donner de la SaadaDB avec d'autres données
• Crossmatch
• Images multiplans
• Images multibandes
• Services implémentés
– Simple Image Access Protocole (SIAP)
– Cone Search
– Simple ADQL
– Simple Spectra Access Protocole (SSAP)
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
31
Saada et le VO: Déploiement des services
• L'interface graphique dispose d'une page VOPortal donnant accès aux services VO
• SIA et le Cone Search sont automatiquement déployés lors de la mise en service de l'interface graphique
• Le Web Service ADQL doit être installé manuellement
– Installation du gestionnaire de WS Axis dans Tomcat
– Installation du WS ADQL
• La déclaration de la SaadaDB dans un registry doit être faite manuellement
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
32
Demo 6: VO
• Utilisation de SIA
• Utilisation de CS
• Accès par Aladin
•
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
33
Les UCDs dans SaadaQL
• Selection dans toute la base d'entrées ayant une vitesse radiale et une magnitude V dans une certaine echelle.
Select ENTRY From * In *
WhereUCD {
[src.veloc.hc]
> 10[km/sec]
and [src.veloc.hc]
< 100[km/sec]
and [phot.mag;em.opt.V] < 20
}
Specific SaadaQL ‘where’ statement
UCDs used as attributes
Unit associated with range values
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
34
Validation: The result
Select ENTRY From * In EPIC
WhereRelation {
matchPattern{«EpicSrcToArchSrc»
,AssUCD([src.redshift] > 0.001
and [src.redshift] < 5)
}
}
Looks good !
2047 sources X sélectionnées.
Les flux X sont convertis en luminosité en appliquant un modèle d'univers plat. Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
35
Team:
Fin Patrick MILLAN Laurent MICHEL
Christian MOTCH
Ngoc Hoan NGUYEN
F. Xavier PINEAU Funded by
Supported by
Tutoriel 01/06/2006 IAS [email protected]­strasbg.fr http://amwdb.u­strasbg.fr/saada
36
Téléchargement