Inist-CNRS / web-services

Web services at Inist-CNRS
https://services.istex.fr
5 stars 1 forks source link

Le service d'enrichissement OpenAlex par Doi ne fonctionne pas pour tous les documents #175

Closed AnaelKremer closed 2 weeks ago

AnaelKremer commented 2 months ago

Des enrichissements échouent en raison de l'abstract disponible dans la notice Openalex, qui contient des caractères spéciaux. L'abstract est formaté en inverted index ce qui fait des clés contiennent des . ou $ qui ne sont pas acceptés par MongoDB. Quand le ws a été créé Openalex ne fournissait d'abstract sous aucune forme.

[Error]: The dollar ($) prefixed field '$n=10$' in 'openAlex.abstract_inverted_index.$n=10$' is not valid for storage.

Pour interroger l'API depuis Lodex en contournant ce problème, j'avais recréé l'abstract dans le loader via ce script :

path = abstract
value = get("abstract_inverted_index").flatMap((values, key) => {return values.map(value => `${key}:${value}`) }).map(item => item.split(":")).map(([first, second]) => [first, parseInt(second, 10)]).map(item => item.reverse()).sort((a, b) => a[0] - b[0]).map(item => item.slice(1)).flatMap().join(' ')

est-il possible d'ajouter ce script dans le web-service ?

parmentf commented 2 months ago

À ajouter après la récupération des données OpenAlex: https://github.com/Inist-CNRS/web-services/blob/3ee6faab1c6a2d516adb212c8e09683138c5c7c4/services/biblio-tools/v2/openalex/works/expand.ini#L42

Ne pas oublier d'enlever le champ abstract_inverted_index pour éviter l'erreur Mongo.