alignement-pascal-francis / alignement /
@besagni besagni authored on 14 Oct 2021
..
README.md Nouvelle version du README pour matchStan2Istex.pl 4 years ago
matchStan2Istex.pl Premier commit 4 years ago
README.md

Alignement Pascal-Francis / Istex

Programmes d’alignement des notices bibliographiques Inist avec les documents Istex

Ce programme permet d’aligner les bases bibliographiques Pascal et Francis de l’Inist avec la base Istex, c’est-à-dire retrouver dans la base Istex les documents correspondants aux notices bibliographiques des base Pascal ou Francis.

À noter que si ce programme est utilisé à l'Inist, il est recommandé d’éviter de passer par le proxy. Pour cela, il faut supprimer les variables globales le définissant, ce qui se fait avec la commande : unset http_proxy https_proxy no_proxy. Vérifiez également avec la commande env si ces mêmes variables n'existent pas en majuscule. Auquel cas, supprimez les avec la commande : unset HTTP_PROXY HTTPS_PROXY NO_PROXY.

Prérequis

Le programme matchStan2Istex.pl fonctionne sous Unix/Linux ainsi qu’avec Cygwin sous Windows. Il utilise plusieurs modules qui ne sont pas tous dans la distribution standard de Perl. Les modules qu’on peut être amené à installer sont :

  • HTML::Entities
  • HTTP::CookieJar::LWP
  • JSON
  • LWP::userAgent
  • Number::Convert::Roman
  • Text::Unidecode
  • URI::Encode

Usage

    matchStan2Istex.pl -f (fichier|-) [ -d ] [ -v nombre ] [ -r id ]
                       [ -n notices ] [ -c corpus[,corpus]* ]*
    matchStan2Istex.pl -h fichier_HFD [ -d ] [ -v nombre ] [ -r id ]
                       [ -n notices ] [ -c corpus[,corpus]* ]*
    matchStan2Istex.pl -i

Options

    -c  indique le nom du ou des corpus de la base Istex à interroger (on peut soit répéter
        cette option, soit mettre tous les noms de corpus séparés par des virgules, mais sans
        espace)
    -d  active le mode “débogage”
    -f  indique le nom du fichier d’entrée (qui peut être un fichier compressé avec “gzip” ou
        “bzip2”). Pour utiliser l’entrée standard, mettre un tiret “-”
        comme argument
    -h  indique le nom du fichier HFD servant d’entrée au programme
    -i  affiche cette aide.
    -n  indique le nom du fichier contenant les notices Pascal ou Francis modifiées parce
        que les notices originales provoquaient une erreur de syntaxe dans la requête à l’API
        ISTEX (N.B. : l’absence du fichier indiqué n’entraîne pas l’arrêt du programme)
    -r  indique le numéro de la dernière notice Pascal ou Francis traitée précédemment, pour
        permettre la reprise de l’alignement si celui-ci a été prématurément arrêté
    -v  permet de suivre la progression du traitement en affichant sur la sortie erreur l’heure
        de début, l’heure de fin et l’heure chaque fois qu’un lot de notices, correspondant au
        nombre de notices donné en argument, a été traité

Formats d’entrée et de sortie

1 - Notices Inist

Les notices bibliographiques des bases Pascal et Francis sont des documents balisés en SGML (norme ISO 8879:1986). Chaque notice est sur une seule ligne et à chaque balise ouvrante correspond une balise fermante. En dehors des lettres majuscules et minuscules non-accentuées, des chiffres et des signes de ponctuation de base, les caractères sont écrits sous forme d’entité caractère (par exemple, é pour le caractère é). À l’inverse de ce qu’on peut trouver dans XML (qui est un sous-ensemble de SGML), les valeurs d’attribut ne sont pas entre quotes, simples ou doubles et il n'y a pas de balise vide.

La racine du document est l’élément record et il y a deux niveaux de balise correspondant aux zones et sous-zones du format d’échange de notices bibliographiques de la norme ISO 2709 comme on peut le voir dans l’exemple ci-dessous (indenté par souci de lisibilité). La sémantique des noms de zone, préfixés par f en SGML, des noms de sous-zone, préfixés par s en SGML, et de l’attribut dir est défini dans le document « Format INIST Standard 1994 ».

<record label=044710B00002014830004560>
    <fA01 dir=011000>
        <s0>0138-9130</s0>
    </fA01>
    <fA02 dir=010000>
        <s0>SCNTDX</s0>
    </fA02>
    <fA03 dir=001000>
        <s0>Scientometrics : (Print)</s0>
    </fA03>
    <fA05 dir=000000>
        <s2>72</s2>
    </fA05>
    <fA06 dir=000000>
        <s2>2</s2>
    </fA06>
    <fA08 dir=011ENG>
        <s1>Profiling citation impact : A new methodology</s1>
    </fA08>
    <fA11 dir=011000>
        <s1>ADAMS (Jonathan)</s1>
    </fA11>
    <fA11 dir=021000>
        <s1>GURNEY (Karen)</s1>
    </fA11>
    <fA11 dir=031000>
        <s1>MARSHALL (Stuart)</s1>
    </fA11>
    <fA14 dir=010000>
        <s1>Evidence Ltd</s1>
        <s2>Leeds</s2>
        <s3>GBR</s3>
        <sZ>1 aut.</sZ>
        <sZ>2 aut.</sZ>
        <sZ>3 aut.</sZ>
    </fA14>
    ...
    <fC03 dir=17XFRE>
        <s0>Aide d&eacute;cision</s0>
        <s5>18</s5>
    </fC03>
    <fC03 dir=17XENG>
        <s0>Decision aid</s0>
        <s5>18</s5>
    </fC03>
    <fC03 dir=17XSPA>
        <s0>Ayuda decisi&oacute;n</s0>
        <s5>18</s5>
    </fC03>
    <fN21 dir=000000>
        <s1>203</s1>
    </fN21>
</record>

2 - Fichier résultat

Pour chaque notice Inist traitée, et sauf pour 2 exceptions que l’on verra plus loin, on a une première ligne commençant par URI et indiquant la requête envoyée à l’API. La ligne suivante donne le nombre de réponses obtenues.

URI : "https://api.istex.fr/document/?q=(host.title:"Scientometrics" OR host.issn:"0138-9130" OR host.eissn:"0138-9130" 
OR serie.issn:"0138-9130" OR serie.eissn:"0138-9130") AND (publicationDate:2007 OR copyrightDate:2007 OR host.publicationDate:2007 
OR host.copyrightDate:2007 OR serie.publicationDate:2007 OR serie.copyrightDate:2007 OR host.volume:72 OR host.issue:2) AND 
(author.name:("ADAMS" OR "GURNEY" OR "MARSHALL") OR host.pages.first:[325 TO 344] OR host.pages.last:[325 TO 344])
&output=title,author,host,serie,doi,publicationDate,copyrightDate"
     => 68

On peut ensuite trouver d’autres requêtes commençant par ALT, ETC ou RAC. Ces requêtes complémentaires servent soit à tester une autre stratégie de recherche (RAC), soit à essayer différentes valeurs pour la pagination (ETC) ou soit à rechercher un groupe de documents indexé dans une seule notice Inist (ALT). Les requêtes de type ETC et RAC sont suivies d’une ligne indiquant le nombre de réponse renvoyées par l¹API.

Dans le cas le plus général, on a ensuite le résultat sur une ligne avec 22 champs, pas toujjours remplis, séparés par des tabulations. On a respectivement :

  • une note exprimée à l’aide d’astérisques (1 étoile) et de signes plus (½ étoile), de ***** à 0
  • le score, de 5.000 à 0.000, parfois suivi d’un point d’exclamation !
  • le niveau bibliographique : A pour un article et M pour une monographie
  • le numéro Inist de la notice
  • le titre du document
  • le nom de la revue
  • le titre de la monographie
  • ISSN
  • ISBN
  • l’année de publication
  • le n° de volume
  • le n° de fascicule
  • la page de début
  • la page de fin
  • le nom du premier auteur
  • le prénom du premier auteur
  • la liste des auteurs suivants séparés par une barre verticale |
  • l’identifiant Istex
  • l’identifiant pérenne ARK
  • l’identifiant DOI
  • l’identifiant PII
  • l’identifiant PMID

Dans l’exemple suivant, on a rajouté un signe d’exclamation aux champs vides pour permettre de les repérer.

*****    5.000    A    08-0322753    Profiling citation impact : A new methodology    Scientometrics    !    0138-9130    !    
2007    72    2    325    344    ADAMS    Jonathan    GURNEY, Karen|MARSHALL, Stuart    16AA6F7A70CD152792DC04F6D65A673B8B7F2214    
ark:/67375/VQC-DZRDKVN2-2    10.1007/s11192-007-1696-x    !    !

On considère que l'alignement est bon si le score est supérieur ou égal à 3.490. Pour les scores inférieurs à cette valeur, on a parfois un point d’exclamation ! qui indique que les données bibliographiques sur la revue, l’année de publication, la volumaison, la tomaison (si elle existe) et la pagination sont correctes, mais que le reste des données ne correspond pas. Cela peut être dû à des fautes de frappe ou d’OCR dans les noms d’auteur ou dans le titre ou cela peut être dû à une erreur de bulletinage : le document s'est vu attribuer par exemple la pagination d’un autre article du même fascicule. On trouve de tels décalages aussi bien dans les données Inist que dans celles des éditeurs.