Difference: RegistryVizieRPython (5 vs. 6)

Revision 62019-08-27 - AlexisGuyot

 
META TOPICPARENT name="WebHome"

Refonte du registry VizieR

Cahier des charges

L'objectif est de revoir l'ensemble de l'architecture du Registry VizieR. Actuellement, les enregistrements sont générés à la volée en fonction des requêtes OAI-PMH : récupération d'une resource, des dernières modifiées, ou harvesting de l'ensemble des resources.

Le projet comporte plusieurs volets :

  • Faire le code qui permet de créer et stocker les resources sous forme de fichiers XML statiques et lisibles
  • Développer quelques outils pour faciliter la validation et la mise à jour des resources
  • Déployer une nouvelle interface OAI-PHM
Le code actuellement en PERL ne sera pas conservé, et pour une meilleure pérennité, on passe en Python.
Added:
>
>

Documentation

Documentation_Registry.pdf

 

Existant

  • Standards IVOA dans la section ReR, en particulier VOResource, Registry interfaces.
  • Schemas XSD utilisés pour le format XML IVOA. Voir Registry and extensions.
  • Code local en PERL
  • Interface OAI-PMH

Metadonnées

Les différents éléments utilisés pour les métadonnées sont extraits de plusieurs endroits:

  • Fichiers ReadMe
  • Tables META en base de données
  • Certaines resources locales statiques sont codées en dur
Interface pour accéder au contenu des ReadMe, exemple sortie JSON : http://cdsarc.u-strasbg.fr/viz-bin/ReadMe/V/147?tex=true

Exemple pour le catalogue I/325

Création des fichiers XML des resources et stockage

Code pour produire à la demande le contenu XML des resources pour les nouveaux catalogues VizieR.

Organisation des fichiers conservés.

Génération des classes à partir des schémas XSD de l'IVOA

Outil utilisé : PyXB

Pour convertir un fichier XSD en classe python : pyxbgen -u <Fichier.xsd> -m <FichierSortieSansExtension>

Exemple : pyxbgen -u VOResource-v1.1.xsd -m VOResource

Erreurs constatées dans les schémas de l'IVOA :

  • Dans VOSpace-v2.1.xsd :
Ligne 9, l'attribut "version" est déclaré deux fois.

XSD de départ :

<xs:schema targetNamespace="http://www.ivoa.net/xml/VOSpace/v2.0" elementFormDefault="qualified"
attributeFormDefault="unqualified"
version="2.1-PR-20170924"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:vos="http://www.ivoa.net/xml/VOSpace/v2.0"
xmlns:uws="http://www.ivoa.net/xml/UWS/v1.0"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="2.1">

XSD corrigé :

<xs:schema targetNamespace="http://www.ivoa.net/xml/VOSpace/v2.0" elementFormDefault="qualified"
attributeFormDefault="unqualified"
version="2.1-PR-20170924"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:vos="http://www.ivoa.net/xml/VOSpace/v2.0"
xmlns:uws="http://www.ivoa.net/xml/UWS/v1.0"
xmlns:xlink="http://www.w3.org/1999/xlink">

  • Dans VORegistry-1.0.xsd :
Lignes 69-70, deux annotations sont imbriquées dans un xs:element alors qu'une seule est autorisée.

XSD de départ :

<xs:element name="tableset" type="vs:TableSet" minOccurs="0">
<xs:annotation>
<xs:documentation>
For registry interfaces with a user-visible table
structure, tableset allows its declaration.
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>
In case protocols implemented in different capabilities
have conflicting requirements on tableset, the two
capabilities should be considered belonging to separate
resources.
</xs:documentation>
</xs:annotation>
</xs:element>

XSD corrigé :

<xs:element name="tableset" type="vs:TableSet" minOccurs="0">
<xs:annotation>
<xs:documentation>
For registry interfaces with a user-visible table
structure, tableset allows its declaration.
</xs:documentation>
<xs:documentation>
In case protocols implemented in different capabilities
have conflicting requirements on tableset, the two
capabilities should be considered belonging to separate
resources.
</xs:documentation>
</xs:annotation>
</xs:element>

  • Dans SSA-v1.2.xsd :
En bas du fichier, on trouve des restes des précédentes versions du schéma, notamment un type basé sur "ssap:SSACapRestriction" qui n'existe plus depuis la 1.0.

Validation, synchronisation, mise à jour

Code pour pouvoir régénérer les fichiers, et comparer les différences avec les versions exposées.

Harvesting, interface OAI-PMH

Interface publique répondant à la norme OAI-PMH pour le harvesting des resources par les registry extérieurs.

S'appuyer sur la librairie pyoai pour implémentation coté serveur, et tests avec des clients?

Pour améliorer l'interface oai_dc : https://guidelines.readthedocs.io/en/latest/literature/use_of_oai_dc.html

-- SebastienDerriere - 2019-06-21

Added:
>
>
META FILEATTACHMENT attachment="Documentation_Registry.pdf" attr="" comment="" date="1566917385" name="Documentation_Registry.pdf" path="Documentation_Registry.pdf" size="340070" user="AlexisGuyot" version="2"
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback