# affiliations-rnsr L'instance `affiliations-rnsr` utilise l'application ezmaster [`lodex-workers`](https://github.com/Inist-CNRS/lodex-workers). Elle offre un service qui déduit de l'adresse d'une affiliation d'auteur et d'une date de publication (l'année suffit) zéro, un ou plusieurs identifiants RNSR (correspondant à une ou plusieurs structures de recherche française(s)). Cet appariement suit des [règles certaines](https://github.com/Inist-CNRS/ezs/blob/master/packages/conditor/README.md#r%C3%A8gles-certaines). ## Configuration Il faut préciser dans le fichier de configuration de l'instance qu'elle utilise des paquets nodes: - `@ezs/basics` - `@ezs/conditor` Bien sûr, les dernières versions sont préférables. Exemple: ```json { "packages": [ "@ezs/basics@1.13.2", "@ezs/conditor@2.2.2" ] } ``` ## Utilisation - [v1/csv](#v1%2fcsv) - [v1/json](#v1%2fjson) - [v1/conditor](#v1%2fconditor) ### v1/csv Prend un fichier CSV, avec des colonnes nommées `Adresse` et `Année`, et renvoie un CSV avec la colonne supplémentaire `RNSR`. Les colonnes doivent être séparées par des tabulations, des points-virgules ou des virgules. ### Exemple CSV ```bash cat <<EOF | curl -X POST --data-binary @- "https://affiliations-rnsr.services.inist.fr/v1/csv" Année,Adresse 2015,CNRS UMR AMAP MONTPELLIER FRA 2015,IRD UMR AMAP MONTPELLIER FRA 2015,"University of Bordeaux, IMS, CNRS UMR5218, Talence, F-33405, France" 2015,"CENBG, CNRS/IN2P3, Chemin du Solarium B. P. 120, Gradignan, F-33175, France" EOF ``` Sortie: ```csv Année;Adresse;RNSR 2015;CNRS UMR AMAP MONTPELLIER FRA;200317641S 2015;IRD UMR AMAP MONTPELLIER FRA;200317641S 2015;University of Bordeaux, IMS, CNRS UMR5218, Talence, F-33405, France;200711887V 2015;CENBG, CNRS/IN2P3, Chemin du Solarium B. P. 120, Gradignan, F-33175, France;199512079F ``` ## v1/json Prend un fichier JSON, avec des champs nommés `id` (pour l'identifiant) et `value` (pour l'adresse), et renvoie un JSON avec le ou les identifiant RNSR dans le champ `value`. > *Remarque : Quand aucun identifiant n'est trouvé, un tableau vide est > renvoyé.* ### Paramètres de v1/json | nom | description | | ------ | -------------------------------------------------- | | indent | `true` ou `false`, indente le JSON résultat ou non | ### Exemple JSON ```bash cat <<EOF|curl -X POST --data-binary @- "https://affiliations-rnsr.services.inist.fr/v1/json?indent=true" [ { "id":1, "value": "CNRS UMR AMAP MONTPELLIER FRA" }, { "id":2, "value": "IRD UMR AMAP MONTPELLIER FRA" }, { "id":3, "value": "University of Bordeaux, IMS, CNRS UMR5218, Talence, F-33405, France" }, { "id":4, "value": "CENBG, CNRS/IN2P3, Chemin du Solarium B. P. 120, Gradignan, F-33175, France" }, { "id":5, "value": "Nulle part" } ] EOF ``` Sortie: ```json [ { "id":1, "value": ["200317641S"] }, { "id":2, "value": ["200317641S"] }, { "id":3, "value": ["200711887V"] }, { "id":4, "value": ["199512079F"] }, { "id":5, "value": [] }, ] ``` ## v1/conditor Prend une notice Conditor minimale (contenant au moins des auteurs (`authors`) et leurs affiliations (`affiliations`) avec au moins une adresse (`address`)), et tente de trouver le/les identifiant(s) RNSR correspondant. Ajoute un champ `conditorRnsr` au niveau du champ `address`. ### Exemple conditor ```bash cat <<EOF|curl -X POST --data-binary @- "https://affiliations-rnsr.services.inist.fr/v1/conditor" [ { "xPublicationDate": ["2012-01-01"], "authors": [{ "affiliations": [{ "address": "GDR 2989 Université Versailles Saint-Quentin-en-Yvelines, 63009" }] }] } ] EOF ``` Sortie: ```json [{ "xPublicationDate": [ "2012-01-01" ], "authors": [ { "affiliations": [ { "address": "GDR 2989 Université Versailles Saint-Quentin-en-Yvelines, 63009", "conditorRnsr": [ "200619958X" ] } ] } ] }] ```