Investigation sur des corpus ISTEX sous Unix : Différence entre versions

De Wicri Manuel
imported>Jacques Ducloy
(Extraction de corpus, la commande IstexGetCorpus)
imported>Jacques Ducloy
m (28 révisions importées)
 
(25 révisions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
La bibliothèque Dilib contient des commandes qui permettent de manipuler des flux de documents XML.
+
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]].
  
Elles peuvent se combiner avec des commandes de base d'Unix.
+
==Extraction de corpus, la commande <code>IstexGetCorpus</code>==
  
==Extraction de corpus, la commande <code>IstexGetCorpus</code>==
+
La commande <code>[[Dilib, module Istex, commande IstexGetCorpus|IstexGetCorpus]]</code> permet de lancer des requêtes vers l'API ISTEX et de récupérer des ensembles de métadonnées.
  
La commande <code>IstexGetCorpus</code> 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===
  
Dans sa forme la plus simple, elle permet de connaître le nombre de documents pertinents. Par exemple :
+
''rappel pour utiliser les commandes Dilib, faire : ''
 +
<source lang="sh">
 +
. ~/Dilib/init.sh
 +
</source>
 +
 
 +
Dans sa forme la plus simple, La commande <code>IstexGetCorpus</code> permet de connaître le nombre de documents pertinents pour une requête donnée. Par exemple :
 
<source lang=sh>
 
<source lang=sh>
IstexGetCorpus -q Rabelais
+
IstexGetCorpus -q rabelais
 
</source>
 
</source>
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 :
+
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 ([[JavaScript Object Notation|format JSON]]) :
 
<pre>
 
<pre>
 
5254 bytes retrieved
 
5254 bytes retrieved
Ligne 44 : Ligne 49 :
 
   "total": 537,
 
   "total": 537,
 
</pre>
 
</pre>
 +
 +
Il est possible de sélectionner un éditeur, par exemple :
 +
<source lang="sh">
 +
IstexGetCorpus -q "rabelais" -e springer | grep total
 +
</source>
 +
 +
Voir aussi : [[Utilisation des opérateurs booléens dans les requêtes ISTEX]]
 +
 +
==Vérification de la pertinence d'un corps, la commande <code>IstexFlashCorpus</code>==
 +
Pour permettre d'évaluer rapidement la pertinence d'un corpus une commande <code>IstexFlashCorpus</code> est disponible.
 +
 +
Cette commande est documentée sur [[wicri-outils.fr:Dilib, module Istex, commande IstexFlashCorpus|Wicri/Outils]].
 +
==Création d'un serveur d'exploration de première approche, la commande <code>IstexExplorCorpus</code>==
 +
Cette commande est documentée sur [[wicri-outils.fr:Dilib, module Istex, commande IstexExplorCorpus|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 :
 +
<source lang="sh">
 +
IstexGetCorpus -q rabelais  -t mods -s 500 | SgmlIndent | more
 +
</source>
 +
====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 [[Stream XML (Dilib)|streams XML]] (flux XML) ou Sxml.
 +
 +
La commande Dilib/Unix '''<code>IstexModsToSxml</code>''' 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 :
 +
<source lang="sh">
 +
IstexGetCorpus -q rabelais  -t mods -s 500 | IstexModsToSxml | wc
 +
</source>
 +
permet de vérifier le nombre de références effectivement importées.
 +
 +
La commande '''<code>IstexModsToTei</code>''' 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<ref>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.</ref> :
 +
<source lang="sh">
 +
IstexGetCorpus -q rabelais  -t mods -s 500 -e springer | IstexModsToSxml  \
 +
  | IstexModsToTei | SgmlFast -nS date | sort -u | more
 +
</source>
 +
On obtient alors :
 +
<pre>1874
 +
1880
 +
1882
 +
1883
 +
1884
 +
1885
 +
1896
 +
1898
 +
  ...
 +
</pre>
 +
 +
===Curation des noms de pays===
 +
On peut ensuite appeler des commandes liées à la curation. Par exemple <code>'''IstexAffiliationSetPays'''</code> applique des règles de normalisation des noms de pays d'affiliation.
 +
 +
La suite de commande
 +
<source lang="sh">
 +
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   
 +
</source>
 +
donne par exemple la liste des pays d'affiliation par fréquence décroissante. On obtient alors :
 +
<pre>
 +
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
 +
</pre>
 +
 +
==Voir aussi==
 +
;Notes:
 +
<references/>

Version actuelle datée du 24 juin 2017 à 18:09

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.

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
  1. 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.