Investigation sur des corpus ISTEX sous Unix
La bibliothèque Dilib contient des commandes qui permettent de manipuler des flux de documents XML. Elles peuvent se combiner avec des commandes de base d'Unix. Cette approche s'applique naturellement à des corpus ISTEX.
Sommaire
Extraction de corpus, la commande IstexGetCorpus
La commande IstexGetCorpus
permet de lancer des requêtes vers l'API ISTEX et de récupérer des ensembles de métadonnées.
Connaître le nombre de documents pertinents
rappel pour utiliser les commandes Dilib, faire :
. ~/Dilib/init.sh
Dans sa forme la plus simple, La commande IstexGetCorpus
permet de connaître le nombre de documents pertinents pour une requête donnée. Par exemple :
IstexGetCorpus -q rabelais
permet de récupérer un ensemble de 10 documents de métadonnées d'ISTEX. Plus précisément le résultat est de la forme (format JSON) :
5254 bytes retrieved { "total": 537, "hits": [ { "id": "a1886225a67f15e5da0b8ce6d494c2e9941632e8", "metadata": [ { "type": "mods", "mimetype": "application/mods+xml", "original": false, "uri": "https://api.istex.fr/a1886225a67f15e5da0b8ce6d494c2e9941632e8/metadata/mods" }, { "type": "xml", "mimetype": "application/xml", "original": true, "uri": "https://api.istex.fr/a1886225a67f15e5da0b8ce6d494c2e9941632e8/metadata/xml" } ] }, ...
Pour ne retenir que le nombre total, il suffit de combiner avec une commande grep. Par exemple :
IstexGetCorpus -q "rabelais" | grep total
Le résultat apparait ainsi
"total": 537,
Il est possible de sélectionner un éditeur, par exemple :
IstexGetCorpus -q "rabelais" -e springer | grep total
Voir aussi : Utilisation des opérateurs booléens dans les requêtes ISTEX
Vérification de la pertinence d'un corps, la commande IstexFlashCorpus
Pour permettre d'évaluer rapidement la pertinence d'un corpus une commande IstexFlashCorpus
est disponible.
Cette commande est documentée sur Wicri/Outils.
Création d'un serveur d'exploration de première approche, la commande IstexExplorCorpus
Cette commande est documentée sur Wicri/Outils.
Traitement avancé d'un corpus
Téléchargement
Pour extraire un corpus de métédonnées, il suffit d'ajouter l'option -t qui permet de préciser le type. A l'heure actuelle, l'option qui permet de réaliser des exploitations ultérieures est le format mods. Exemple :
IstexGetCorpus -q rabelais -t mods -s 500 | SgmlIndent | more
Reformatage en Sxml puis en TEI
La bibliothèque Dilib propose un ensemble d'outils bien adaptés à un environnement Unix. Pour cela, nous avons introduit une spécialisation de la norme XML, les streams XML (flux XML) ou Sxml.
La commande Dilib/Unix IstexModsToSxml
permet de rendre un flux compatible avec la norme Sxml. Pour cela il suffit de la « piper » à la suite de la commande d'extraction. Ainsi la ligne suivante :
IstexGetCorpus -q rabelais -t mods -s 500 | IstexModsToSxml | wc
permet de vérifier le nombre de références effectivement importées.
La commande IstexModsToTei
permet de reformater les notices mods en TEI. Il est alors possible d'appliquer des filtres de séléction. Par exemple pour connaître les dates les plus anciennes d'un corpus extrait de Springer, il faut appeler la commande SgmlFast[1] :
IstexGetCorpus -q rabelais -t mods -s 500 -e springer | IstexModsToSxml \
| IstexModsToTei | SgmlFast -nS date | sort -u | more
On obtient alors :
1874 1880 1882 1883 1884 1885 1896 1898 ...
Curation des noms de pays
On peut ensuite appeler des commandes liées à la curation. Par exemple IstexAffiliationSetPays
applique des règles de normalisation des noms de pays d'affiliation.
La suite de commande
IstexGetCorpus -q rabelais -t mods -s 500 | IstexModsToSxml | IstexModsToTei \
| IstexAffiliationSetPays | SxmlRecordPutKey | SgmlFast -ns country | sort -u \
| IndexBuildRec | SgmlSelect -g idx/k# -g idx/f# -p @g2 -p @g1 | sort -rn
donne par exemple la liste des pays d'affiliation par fréquence décroissante. On obtient alors :
96 France 52 États-Unis 10 Pays-Bas 8 Canada 7 Royaume-Uni 7 Allemagne 6 Pologne 6 Espagne 4 Italie 4 Brésil 2 Sénégal 2 Suisse 2 Portugal 2 Hongrie 2 Belgique
Voir aussi
- Notes
- ↑ La bibliothèque Dilib repose sur une première étape (Ilib) qui a été initialement développée en 1991 autour de la norme SGML. Toutes les commandes n'ont pas été complètement adapées au spécifications Sxml et conservent leur ancienne dénomination.