Newer
Older
web-services / affiliations-rnsr / README.md
# affiliations-rnsr

> ⚠️ Ce service web a été intégré à [affiliations-tools](../affiliations-tools/README.md).
> Il est maintenant obsolète.

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"
                    ]
                }
            ]
        }
    ]
}]
```