Dilib, module Istex, commande IstexGetCorpus

De Wicri Outils
LogoDilib.gif
Panneau travaux.png
Bibliothèque Dilib (ressources numériques)
Module Istex

Cette page décrit la commande IstexGetCorpus qui permet de télécharger des corpus Istex pour alimenter un flot de traitement.

 

Présentation

La commande IstexGetCorpus permet de télécharger un corpus à partir de l'API ISTEX. Elle assure l'automatisation des requêtes nécessaires :

  • détermination du nombre de résultats,
  • constitution de la liste de documents,
  • téléchargement et consolidation de chaque document pour alimenter le flot de de sortie (stdout).

Elle constitue généralement la première étape de traitements plus complets (voir IstexFlashCorpus et IstexExplorCorpus), mais elle peut être utilisée indépendamment du contexte LorExplor.

IstexGetCorpus.png

Consolidation dans un contexte hétérogène

A partir d'un document ISTEX fournit par les éditeurs, la plateforme ISTEX donne accès à un ensemble de ressources fortement hétérogènes, et plus particulièrement :

  • un document de synthèse qui rassemble des métadonnées et la liste des ressources disponibles associées à ce document. Il est codé en JSON et les ressources sont repérées par des URL,
  • un document de métadonnées en XML, avec la DTD MODS,
  • un document de métadonnées en XML fournit par l'éditeur, avec sa propre DTD et une codification des caractères qui n'est pas forcément Unicode.
  • un document TEI, créé par l'INIST qui donne accès au plein texte,
  • des enrichissements.

La commande IstexGetCorpus, associée à la commande IstexToSxml assure la consolidation de cet ensemble de ressources dans un seul document, compatible avec les recommandations des flots de données Sxml.

Synopsis

IstexGetCorpus -amMx -q query [ -f from ] [ -i id ] [ -j outputSpec ] [ -J outputSpec ] [ -p password ] [ -s size ] [ -t type] [-e editor ] [ -b blocSize ] [-T traceLevel] [-u url]

Options

Requête et paramètres associés

-q query
Cette option (obligatoire) introduit la requête d'extraction du corpus.
-b blocSize
Cette option précise la taille des blocs de pagination conformes à l'api (valeur implicite 100)
-f from
Cette option précise le rang de départ, compté à partir de 0, du premier document à télécharger. La valeur implicite est 0, début du corpus sélectionné.
-s size
Cette option donne la taille du corpus à télécharger (valeur implicite 10).
-e editor
Cette option permet de sélectionner un éditeur (ecco ou springer [1])

Type de résultat

-a (pour all)
Cette option entraine la constitution d'un document intégrant toutes les métadonnées d'un document ISTEX (Voir aussi -M et -o)
-A (pour all with fulltext)
Cette option, en cours de développement, entraine la constitution d'un document intégrant toutes les métadonnées d'un document ISTEX et la version fulltext TEI.
-M (pour Mods étendu)
Cette entraine la constitution d'un document intégrant les métadonnées de base (json) et celles en format MODS (Voir aussi -a)
-m (pour Mods réduit)
Cette option limite la sortie aux URLs des métadonnées MODS
-j (pour 'json) listeChamps
Cette option, disponible depuis la version V0.6.04, renvoie les données JSON correspondant à la liste donnée en paramètre. Le format est celui demandé par l'API avec le paramètre output.
-J (pour 'json sxml) listeChamps
Cette option, disponible depuis la version V0.6.04, renvoie les données json correspondant au format donné en paramètre et converties en Sxml.
-o type
Cette option, depuis la version V0.6.04, précise le type de métadonnées à télécharger (mods ou xml)
-O type
Cette option, à partir de la version V0.6.04, précise le type de fulltext à télécharger (tei)
-x
Cette option donne la réponse à la requête en format XML

User Id et Password

à partir de la version V0.6.12

-i id
Cette option introduit l'identification de l'utilisateur
-p password
Cette option introduit le mot de passe de l'utilisateur
-t token

Divers

-T traceLevel
Cette option précise le niveau de trace.
-u url
Cette option précise l'URL d'accès.
La valeur implicite est : https://api.istex.fr
Une autre valeur utile en phase de test est : http://api-v1.istex.fr

Exemples

Première application

Sur Wicri/Bois, un des premiers serveurs (sur le frêne) avait été généré en utilisant cette commande pour extraire un corpus.

Plus précisément, sur la page wicri-bois.fr:Wicri:FraxinusV4, le téléchargement du corpus se faisait à l'aide de la commande.

 IstexGetCorpus -q fraxinus -s3000 -e springer -t mods > FraxinusV4/Import/istexResult.xml

Deux pages de paramètres sur la génération des données et de l'interface permettent de générer le serveur de code Fraxinus V4.

Ensuite, pour créer un serveur d'exploration standard (sans fulltext) les métadonnées Json et mods ont été nécessaires, la procédure est alors :

IstexGetCorpus -q fraxinus -s3000 -e springer -M > FraxinusV4/Import/istexResult.xml

Pour travailler sur un petit corpus fulltext, la procédure conseillée est :

IstexGetCorpus -q fraxinus -s3000 -A > FraxinusV4/Import/istexResult.xml

Corpus volumineux

Au delà de 2000 documents, dans l'état actuel de développement de l'API ISTEX et des outils DILIB, nous recommandons de procéder par paquets de 2000 à 4000 documents.

De même dans la plateforme de curation et d'exploration, une notion de « repository full text » est introduite. Elle est gérée par une arborescence HFD avec un fichier par document (voir la commande HfdBuild avec l'option -b). Il lui correspond une structure HFD réduite aux métadonnées dans laquelle les clés sont alignées avec le repository.

Un exemple est visible sur Wicri/Linguistique avec le ( LogoWicriWicriFrMars2010.png ) Serveur d'exploration sur la philologie, et plus précisément la version VM2 (wicri-linguistique.fr:Wicri:PhilologieVM2).

Chaque paquet est envoyé dans un HFD dédié qui contient un document par fichier. Par exemple, les 1000 documents à partir du rang 1000 sont acquis et rangés ainsi :

IstexGetCorpus -q "philolog*" -s 1000 -f 1000 -A \
      | IstexToSxml     \
      | HfdBuild -bh CorpusIstexVM2.A/f1000s1000

Cette façon de faire permet de vérifier la conformité de la procédure de téléchargement. Ainsi une commande comme :

HfdCat CorpusIstexVM2.A/f1000s1000.hfd | wc

doit donner 1000 lignes si les traitements préliminaires ont été corrects.

Pour constituer le répertoire de consolidation, il suffit ensuite de faire :

HfdCat CorpusIstexVM2.A/*.hfd | SgmlFast -c1 | HfdBuild -bh $EXPLOR_AREA/Import/IstexRepository

On peut alors effacer les HFD de téléchargement, et créer la hiérarchie biblio de l'étape Corpus du flux ISTEX.

HfdCat $EXPLOR_AREA/Import/IstexRepository.hfd   \
    | IstexCleanFullText                         \
    | SgmlFast -c1                               \
    | IstexModsToTei                             \
    | TeiPutRefToIdno -t wicri:Area/Istex/Corpus \
    | HfdBuild -h $EXPLOR_AREA/Import/IstexMetadata

Dans le paramétrage du serveur d'exploration (voir wicri-linguistique.fr:Wicri:PhilologieVM2/Paramètres, data), il faut introduire l'option Istex:linkCorpus pour déclarer celui-ci.

type rubrique valeur
Istex:linkCorpus Area/Istex/Corpus $EXPLOR_AREA/Import/IstexMetadata.hfd

Base d'entraînement sur Charlemagne

Sur Wicri/France, voir Serveur d'exploration sur la Chanson de Roland

Voir aussi

Notes
Sur ce wiki