====== TP découverte de l'API OAI-PMH ====== OAI-PMH est un protocole d'interrogation de données documentaires. Il permet l'interrogation d'un //entrepôt// via une API WEB. Il y a plusieurs interrogations possibles (les //verb//) * ''ListSets'' pour obtenir la liste des ensembles de documents * ''ListRecords'' pour obtenir les métadonnées de documents * ... Voir des explication détaillées ici [[https://fr.wikipedia.org/wiki/Open_Archives_Initiative_Protocol_for_Metadata_Harvesting|la description ici]] ou [[https://www.bnf.fr/fr/protocole-oai-pmh|à la BFN]] Le résultat d'une intérrogation est sous la forme de XML. Le forma de description des document peut parfois être choisi, les plus utilisés sont ''lom'' (le plus complet) ou ''oai_dc'' ou Dublin Core (le plus courant). ===== Utilisation directe de l'API ===== Vous allez testez l'api de openedition [[https://www.openedition.org/8883|ici]] * Suivez les liens ''Lister les enregistrements'' et ''Lister les sets''. En regardant l'URL, comment choisit-on ce qui est demandé ? * Combien y a-t-il d'enregistrements ? Comment faire pour avoir les suivant ? Faites la requête pour avoir la seconde page. * Listez les enregistrements du premier journal présenté dans les ''sets''. ===== Utilisation d'un client python ===== Il est possible de lire directement les résultats du dépots OAI_PMH mais cela suppose de traiter le XML ce qui n'est pas simple. C'est pourquoi, nous allons utiliser la librairie [[https://sickle.readthedocs.io/en/latest/|sickle]] qui permet l'interrogation et le traitement des données Dublin Core * Installez la librairie via pip * Utilisez la librairie pour afficher les titres des 20 premiers documents du dépôt. * Interrogez ''openedition'' pour avoir la liste des documents de cette année. Combien y en a-t-il ? ==== Récupération des dates d'un journal ==== Vous devez faire un script python qui récupère tous les articles de la revue ''XVII-XVIII'' "revue de la société d’études anglo-américaines des XVIIe et XVIIIe siècles". Qui compte le nombre d'article par an et le nombre d'article en accès ouvert. Pour vous aider: * les dates de parution peuvent se lire dans le champ ''datestamp'' de l'entête, * l'accès de l'article est dans le champs ''dc:rights'' des métadonnées.