web-dumps / conditor-dumps /
@akremer akremer authored 18 days ago
..
01-query no default query 1 year ago
02-download feat(conditor-dumps): create and first request 2 years ago
03-enrich Optimisation globale du process 1 month ago
04-report Optimisation globale du process 1 month ago
.gitignore chore(conditor-dumps): Git ignore 01-query/*.txt 1 year ago
02-download.ini Fix: corrected typo breaking function and moved filter function 18 days ago
03-enrich.ini Fix: corrected typo breaking function and moved filter function 18 days ago
03.1-enrich-rnsrByYear.ini Optimisation globale du process 1 month ago
03.2-enrich-docType.ini Optimisation globale du process 1 month ago
03.3-enrich-source.ini Optimisation globale du process 1 month ago
03.4-enrich-publisher.ini Optimisation globale du process 1 month ago
Makefile Optimisation globale du process 1 month ago
README.md Optimisation globale du process 1 month ago
README.md

Conditor-dumps

Collecte, restructuration et enrichissement de données Conditor.

Les fichiers fournis sont au format JSON Lines (.jsonl)

📗 Tant qu'une étape n'est pas terminée, le fichier résultant est suffixé par .crdownload.

Étapes

01-query

Dépôt d'un fichier NOM_DU_FICHIER.txt (requête) dans le répertoire 01-query. Pour effectuer des études sur les instituts CNRS et utiliser le loader approprié (qui filtre sur l'année et l'institut en question) veuillez nommer les champs de la façon suivante : IN2P3_2017_juin.txt soit l'institut, l'année interrogée et le mois où le dump est effectué.

02-download

Téléchargement de données via la requête sur l'api Corhal.

Création/modification des champs suivants :

  • abstract Ă  partir du champ abstract.default
  • title Ă  partir du champ title.default
  • halClassification Ă  partir du champ classifications.enrichments.hal.fr
  • keywordsAuthorsAndMesh qui regroupe les mots clĂ©s en anglais des mots clĂ©s auteurs et Mesh.
  • conferenceDetails qui concatène les donnĂ©es name, date, place et country du champ host.conference
  • volumeIssueAndPages qui concatène les donnĂ©es volume, issue et pages.range du champ host.conference
  • issn, eissn, isbn et language tous issus du champ host
  • publicationYear Ă  partir de donnĂ©es existantes dans le json (publicationDate et electronicPublicationDate).
  • isFunded qui indique si le champ funders est vide ou non.
  • funders Ă  partir du champ funders.fullname
  • codesRnsr qui rĂ©cupère tous les rnsr prĂ©sents Ă  diffĂ©rents niveaux d'imbrication : authors/affiliations/rnsr, authors/affiliations/enrichments/rnsret authors.rnsr

    À noter: 4 RNSR sont systématiquement enlevés (200612821P, 200018571R, 199812965F, 201523784S).

  • sourceUidChain Ă  partir du champ business.sourceUidChain

  • Modification du champ enrichments.openAccess.unpaywall.oaLocations qui, s'il est vide, est enrichi d'une clĂ© hostType Ă  laquelle est associĂ©e la valeur "OA - Inconnu".
  • Le champ authors est dĂ©pouillĂ© de toutes les propriĂ©tĂ©s n'Ă©tant pas utiles afin d'allĂ©ger sa taille.
  • Enfin tous les champs n'Ă©tant pas ou plus utiles (car exploitĂ©s) sont supprimĂ©s, toujours pour rĂ©duire la taille des fichiers.

03-enrich

Appel du web service Hal afin de récupérer les RNSR manquants. Ceux-ci peuvent manquer pour 2 raisons :

  • la notice n'est pas pertinente, elle a pu ĂŞtre rĂ©cupĂ©rĂ©e par exemple car la recherche du terme "INEE" renvoie des notices avec le terme "engineering" dans les affiliations.
  • les RNSR figurent dans la notice Hal, mais ils sont perdus lors de la crĂ©ation la notice unifiĂ©e car Hal n'est pas la source prioritaire. Ainsi, on isole toutes les notices oĂą le champ codesRnsr est vide. On remplace le tableau vide par le DOI, puis on lance le web service sur ces notices uniquement. Les rĂ©sultats sont stockĂ©s dans un champ provisoire nommĂ© wsHal. A l'aide d'un script on rĂ©cupère tous les RNSR prĂ©sents Ă  diffĂ©rents niveaux de l'objet dans le champ retrieveHalRnsr. Enfin, on ajoute ces RNSR dans le champ codesRnsr et on supprime les 2 autres champs.

Appel du web service Loterre - Structures de recherche pour créer les champs suivants :

  • laboIntitule
  • delegationsRegionales (les codes des DR sont verbalisĂ©s selon un dictionnaire dĂ©fini dans l'instruction [ENV]. Les anciens codes ont Ă©tĂ© ajoutĂ©s et rattachĂ©s Ă  leur dĂ©lĂ©gation actuelle.)
  • isCnrs Ă  partir du champ institut. Renvoie "Non" si le champs est vide, "Oui" s'il ne l'est pas.

Appel des web services (OpenAlex, Crossref). Ces web services prenant des DOI en entrée, des instructions ont été ajoutées afin de ne pas traiter les documents qui n'en possèdent pas. Cela évite d'envoyer des milliers de données qui ne renverront de toute façon pas de réponse.

  • l'appel d'OpenAlex permet de crĂ©er le champ isRetracted et de rĂ©cupĂ©rer les oa status "diamond" qui enrichiront plusieurs champs portant sur l'Open Access.
  • l'appel de Crossref permet de rĂ©cupĂ©rer des donnĂ©es sur les Ă©diteurs Ă  partir de la racine des DOI. Ces donnĂ©es sont utilisĂ©es plus tard pour crĂ©er le champ publisher

Les web services de mapping étant voués à disparaître, plusieurs enrichissements se font désormais via des tables de correspondance hébergées sur un serveur EZmaster. Les traitements sont réalisés par des sous-flux dédiés et définis dans des fichiers externes pour créer les champs suivants :

  • institutCnrs gĂ©nĂ©rĂ© Ă  partir du fichier 03.1-enrich-rnsrByYear.ini. Le champ est ensuite divisĂ© en deux champs distincts : institutsPrincipaux et institutsSecondaires
  • documentType gĂ©nĂ©rĂ© Ă  partir du fichier 03.2-enrich-docType.ini. HomogĂ©nĂ©isĂ© Ă  partir du champ originalGenre. Si l'homogĂ©nĂ©isation renvoie un "n/a" alors on rĂ©cupère la valeur d'origine.
  • source gĂ©nĂ©rĂ© Ă  partir du fichier 03.3-enrich-source.ini. RĂ©cupĂ©ration du champ host/title. Si vide, alors rĂ©cupĂ©ration du champ host/conference/name. HomogĂ©nĂ©isation des sources, si rĂ©sultat "n/a", conservation de la valeur d'origine (host/title ou host/conference/name).
  • publisher gĂ©nĂ©rĂ© Ă  partir du fichier 03.4-enrich-publisher.ini. Champ d'origine host.publisher et par dĂ©faut on rĂ©cupère un Ă©diteur Ă  partir de la racine du champ doi. Si le champ doi renvoie un "n/a" alors on rĂ©cupère le champ d'origine host.publisher.

Appel de web services (adresses, Loterre - Pays) pour créer les champs suivants :

  • ApilWSCodeISO rĂ©cupĂ©rĂ© Ă  partir du champ Authors.affiliation.address.
  • ApilWSCountry rĂ©cupĂ©rĂ© Ă  partir du champ Authors.affiliation.address.

04-report

Cette étape sert à générer un fichier par requête, contenant le nombre de lignes du fichier (et donc le nombre de notices) et le nom du fichier correspondant dans le répertoire 03-enrich.

Configuration

⚠️ Attention: utilisez au moins la version 1.0.4 de lodex-makefile et la version 14 de node.

S'assurer d'avoir les versions suivantes :

"packages": [
    "@ezs/core@2.4.3",
    "@ezs/basics@1.23.3",
    "@ezs/conditor@2.10.3",
    "@ezs/analytics@2.0.21"
  ]

Reste de la configuration :

{
    "environnement": {
        "EZS_VERBOSE": false,
        "EZS_PIPELINE_DELAY": 3600
    },
    "files" : {
        "zip": "https://gitbucket.inist.fr/tdm/web-dumps/archive/conditor-dumps/conditor-dumps@1.15.4.zip"
    }
}

Trello : https://trello.com/b/wJoKuJXZ/conditor-m%C3%A9trie