Newer
Older
web-dumps / conditor-dumps / README.md
# Conditor-dumps

Collecte, restructuration et enrichissement de données
[Conditor](https://corhal-api.inist.fr/api-docs/).

Les fichiers fournis sont au format JSON Lines (`.jsonl`), ce qui veut dire que le *loader* utilisé pour LODEX doit être adapté.

> 📗 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`.

### 02-download

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

Création des champs suivants :

- `ApilPublicationDate` à partir de données existantes dans le json (`publicationDate` et `electronicPublicationDate`).
- `ApilFinancement` à partir du champ `funders`
- `ApilRnsr` au niveau `authors/affiliations`, à partir du champ
  `authors/affiliations/rnsr` et s'il n'est pas présent à partir du champ
  `authors/affiliations/enrichments/rnsr`.  
  À noter: 4 RNSR sont systématiquement enlevés (200612821P, 200018571R,
  199812965F, 201523784S).

> Note: l'étape 03 a été intégrée à l'étape 2.
>
> Note 2: on préserve le champ `sourceUidChain` à la racine de la notice.

### 04-enrich

Appel de web services ([Loterre - Structures de recherche](https://openapi.services.inist.fr/?urls.primaryName=loterre-resolvers%20-%20R%C3%A9solveurs%20pour%20des%20terminologies%20Loterre#/loterre-resolvers/post-v1-2XK-identify), [instituts CNRS](https://openapi.services.inist.fr/?urls.primaryName=mapping-tools%20-%20Utilisation%20de%20tables%20de%20correspondance#/mapping/post-v1-rnsr-year-instituts-cnrs)) pour créer les champs suivants :

- `ApilWsIsCnrs`
- `ApilWsLaboSigle` (indisponible depuis la version 1.13.0)
- `ApilWsLaboIntitule`
- `ApilRnsr` à la racine, à partir des champs `authors/affiliations/ApilRnsr` dédoublonnés.
- `ApilWsInstitutCnrs` à partir du champ `ApilRnsr`
- `ApilWsSigleLaboIntitule` (indisponible depuis la version 1.13.0)

Appel de plusieurs web services de mapping ([documentType](https://openapi.services.inist.fr/?urls.primaryName=mapping-tools%20-%20Utilisation%20de%20tables%20de%20correspondance#/mapping/post-v1-homogenize-document-type-json), [source](https://openapi.services.inist.fr/?urls.primaryName=mapping-tools%20-%20Utilisation%20de%20tables%20de%20correspondance#/mapping/post-v1-homogenize-source-json), [publisher](https://openapi.services.inist.fr/?urls.primaryName=mapping-tools%20-%20Utilisation%20de%20tables%20de%20correspondance#/mapping/post-v1-homogenize-publisher-json)) et d'outils bibliographiques ([crossref](https://openapi.services.inist.fr/?urls.primaryName=biblio-tools%20-%20Outils%20pour%20r%C3%A9f%C3%A9rences%20bibliographiques#/biblio-tools/post-v1-crossref-prefixes-expand)) pour créer les champs suivants :

- `ApilWsTypeDoc` 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
  `originalGenre`.
- `ApilWsSource` 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`).
- `ApilWsPublisher` 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](https://openapi.services.inist.fr/?urls.primaryName=affiliations-tools%20-%20Structuration%20%26%20enrichissements%20d%27affiliations#/adresses/post-v1-addresses-parse), [Loterre - Pays](https://openapi.services.inist.fr/?urls.primaryName=loterre-resolvers%20-%20R%C3%A9solveurs%20pour%20des%20terminologies%20Loterre#/loterre-resolvers/post-v1-9SD-identify)) 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`.

### 05-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 `04-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 :

```json
"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](../conditor-dumps-config.json) :

```json
{
    "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>