Le module co-normalizer
est un module permettant de normaliser des champs texte.
Par exemple, le champ titre va être modifié ainsi :
- suppression des espaces et autres caractères invisibles
- suppression des accents
- passage en minuscule de tous les caractères
- suppression des signes de ponctuation
Les champs requis dans le JSON d'entrée sont les suivants :
{
....
"titre": {
"value" : "..."
},
"auteur": {
"value" : "..."
} ,
"auteur_init":{
"value" : "..."
},
"doi":{
"value": "...."
},
"issn":{
"value":"1234-5678"
},
"numero":{
"value":"n°1"
},
"volume":{
"value":"v123"
},
"page":{
"value":"page 1234"
}
....
}
Pour chacun des champs d'entrée (voir ci-dessus), une sous-entrée normalized
contenant la valeur normalisée est ajoutée. Par exemple :
{
....
"titre" : {
"value" : "Mon titre préféré.",
"normalized" : "montitreprefere"
},
"issn" : {
"value" : "1234-5678",
"normalized" : "12345678"
},
"numero" : {
"value":"n°1",
"normalized" : "1"
},
noespace
: suppression des espaces et autres caractères invisiblesnoaccent
: suppression des accentslowcase
: passage en minuscule de tous les caractèresnopunctuation
: suppression des signes de ponctuationalphanum
: suppression de tous les caractères non-alphanumériquesnum
: suppression de tous les caractères non-numériquesfirstnum
: conservation de la première séquence numérique uniquement
La liste des pré-traitements appliqués à chaque champ est définie dans le fichier de configuration config.normalize.json.
co-normalizer
effectue ses traitements dans une fonction doTheJob()
dédiée.
Dans notre cas minimal, le module effectue les opérations suivantes :
- récupération en entrée d'un
docObject
(objet JSON avec un champidIstex
), ainsi que d'une callbackcb
. - normalisation des champs définis dans le fichier config.normalize.json
- Les éventuelles erreurs sont renvoyées en paramètre de la callback
cb
Dépendances système :
- NodeJS 4.0.0+
Commande d'Installation :
npm install
Commande d'exécution des tests unitaires :
npm test
Comme pour tous les modules, la présente partie métier n'est pas destinée à être exécutée directement, puisqu'elle consiste uniquement à mettre à disposition une fonction doTheJob
.
L'exécution se fera donc en appelant cette fonction depuis une instanciation dli-canvas
ou indirectement depuis les tests unitaires.
.
├── index.js // Point d'entrée, contenant la fonction doTheJob()
├── node_modules // Modules NPM
│ ├── ...
├── package.json // No comment
├── README.md
└── test // Fichiers nécessaires aux TU
├── dataset // rép de données de tests
│ └── in
| └── test.json // contient 2 docObjects pris en entrée des TU
├── run.js // point d'entrée des TU
└──