Expérimentation en Python pour accéder à ISTEX

ISTEX a pour ambition de « construire le socle de la bibliothèque scientifique numérique nationale. » Il s’agit d’une initiative dans le cadre des « Investissements d’Avenir » soutenus par l’Etat français.

ISTEX acquiert et structure de grandes quantités de documents scientifiques pour les rendre accessibles.

Nous nous intéressons ici à l’accès aux ressources d’ISTEX via une API.

API ISTEX

Les informations concernant l’API ISTEX se trouvent à l’adresse https://api.istex.fr/documentation/. Certaines ressources sont en accès libre, d’autres nécessitent une authentification.

L’API propose plusieurs modes d’authentification. Nous allons utiliser l’authentification par clé (token d’identification). La méthode décrite (https://api.istex.fr/documentation/access/) est en deux étapes: création du token, accès à l’API à l’aide du token.

La création du token nécessite de s’identifier à l’adresse https://api.istex.fr/token/ soit par son établissement d’enseignement/recherche en le sélectionnant dans une liste, soit en utilisant un CRU -Compte Réseau Universel- que l’on peut créer en ligne. Une fois cette authentification réalisée, un accès à la même adresse renvoie une structure JSON telle que:

Le champ « _accessToken » de la structure JSON obtenue est le token qui pourra être utilisé lors des accès suivants à l’API. J’ai sauvé la structure JSON dans un fichier tokenIstex.json.

Exemple de requête à ISTEX

Un code minimal pour interroger ISTEX est alors par exemple

Vous devez renseigner votre token.

La requête proprement dite est la valeur du paramètre q. Ici, j’indique que je veux chercher suivant le critère author.name qui doit avoir la valeur Moissinac.

La réponse est une structure JSON sur le modèle fictif suivant:

On y trouve le nombre total de réponse, par défaut les 10 premières réponses dans le champ hits, les urls de la page suivante, de la première et de la dernière page de réponses. Pour chaque réponse, on a le titre, un identifiant de ressource ISTEX -que nous utiliserons dans d’autres requêtes- et un score -qui évalue une pertinence de la réponse?.

La composition des requêtes est décrite ici:

https://api.istex.fr/documentation/search/

La requête suivante

donnera les documents contenant le mot semantic dans un des champs indexés.

et la requête

donnera le document dont l’identifiant ISTEX est 982F365ECC48B450E090EC595C09C8472DE784CF.

Pour avoir plus d’informations sur ce document, il suffit d’utiliser cet identfiant pour la requête

qui renvoie une structure JSON avec notamment le titre, les auteurs et leur affiliation….

Précautions

De façon classique lorsqu’on utilise une API, il faut éviter de surcharger le serveur en envoyant des salves de requêtes générées par un logiciel.

Vous devez utiliser une des méthodes permettant d’appeler une fonction chaque N secondes. La méthode appelée consomme à chaque fois une requête placée dans une liste de requêtes. J’ai ainsi sollicité ISTEX par une requête toutes les 5 secondes.

Résultats

Sur cette base, j’ai cherché les publications de Telecom ParisTech.

La requête

donne 479 références. Tandis que la requête

donne 225 références.

 

À propos de Moissinac

Maitre de conférence à Télécom ParisTech, Département Signal et Image, Groupe Multimédia Jean-Claude Moissinac mène des recherches sur les techniques avancées pour la production, le transport, la représentation et l’utilisation des documents multimédia. Principaux axes de recherche actuel : représentations sémantiques, adaptation de documents multimédias à des contextes variés d’utilisation ; utilisation du multimédia pervasif
Ce contenu a été publié dans Données publiques, SemBib, Uncategorized. Vous pouvez le mettre en favoris avec ce permalien.