Querying Papyrus with dynamic links and OAI-PMH (fr)
Dernière mise-à-jour : mardi, 26 octobre 2020
Pour
1. insérer dans une de pages web un lien qui effectuera une
recherche de façon dynamique dans Papyrus ou
2. pour interroger Papyrus pour extraire et réutiliser
des métadonnées portant sur certains documents ou collections de documents,
trois façons distinctes sont possibles :
1. Interrogation via des liens dynamiques (utilisation du moteur de recherche interne) (Solr de la fondation Apache) de Papyrus. La requête est incluse dans un lien hypertexte ou encore un formulaire web, ce qui permet d'effectuer une recherche dynamique dans le dépôt. On peut effectuer la recherche dans tous les index (ce qui inclut les différentes métadonnées et le plein texte des documents) ou dans un index particulier (auteur, titre, sujet, date). La recherche peut être faite dans tout le contenu de Papyrus, dans le contenu des collections d'une communauté donnée, ou encore dans une collection donnée. Dans tous les cas les résultats de la requête sont affichés dans l'interface de Papyrus.
2. Par utilisation du protocole Open Access Initiative - Protocol for Metadata Harvesting (OAI-PMH). Ceci permet d'interroger Papyrus pour obtenir les métadonnées relatives à différents sous-ensembles de Papyrus. Ce protocole n'est pas conçu pour une interrogation directe mais plutôt pour effectuer une "récolte" de métadonnées, lesquelles, puisque rendues sous une forme structurée (XML), peuvent être facilement réutilisées de façon dynamique ou non, dans d'autres systèmes documentaires (par exemple des bases de données, des sites web, etc.). Papyrus supporte également la norme Open Access Initiative - Object Reuse and Exchange (OAI-ORE) qui permet quant à elle de définir la structure d'objets complexes de sorte que cette information puisse être exploitée par d'autres systèmes ou encore que ces objets puissent être échangés entre des systèmes.
3. Par utilisation du format XML de Dspace. Ceci permet d'interroger Papyrus pour obtenir les métadonnées relatives à une recherche ou à un document. Ce procédé n'est pas conçu pour une interrogation directe, mais plutôt pour effectuer une "récolte" de métadonnées sous une forme structurée (XML) permettant leurs réutilisations aisées de manière dynamique dans d'autres systèmes documentaires (par exemple des bases de données, des sites web, etc.).
1. Interrogation via des liens dynamiques (utilisation du moteur de recherche interne)
1.1 Syntaxe de liens hypertextes
1.1.1 Recherche dans tout le dépôt:
La recherche peut se faire dans tous les index (métadonnées et plein texte).
Exemples de requêtes:
- 'sous-traitance' dans tous les index :
https://papyrus.bib.umontreal.ca/xmlui/discover?query=sous-traitance - 'médecine' et 'éthique' dans tous les index :
https://papyrus.bib.umontreal.ca/xmlui/discover?query=médecine+AND+éthique - 'foetus' ou 'embryon' dans tous les index :
https://papyrus.bib.umontreal.ca/xmlui/discover?query=foetus+OR+embryon - L'expression "code civil" dans tous les
index :
https://papyrus.bib.umontreal.ca/xmlui/discover?query="code+civil"
[Notez que les caractères diacritiques et de ponctuation doivent être
encodés en hexadécimal, en UTF-8, pour leur passage dans l'URL. Un
moyen simple et pratique de voir comment se code un caractère en
UTF-8 est de rechercher ce caractère dans Google. Le navigateur fera
l'encodage de l'URL résultant en hexadécimal UTF-8 ce qui permet de
voir les octets des caractères encodés dans l'URL de la réponse à la
requête, ainsi la recherche de 'dépôt institutionnel' donnera l'URL
suivant:
http://www.google.com/search?q=d%C3%A9p%C3%B4t+institutionnel]
1.1.2 Recherche uniquement dans une collection / communauté
Pour faire effectuer la recherche uniquement dans les documents d'une collection ou d'une communauté donnée, soit par exemple l''École d'optométrie', modifier le lien hypertexte pour inclure l'identifiant handle unique de la communauté, soit ici "2922" (1866 est l'identifiant handle du dépôt Papyrus). Cet identifiant figure dans la barre d'adresse de votre navigateur lorsque vous êtes positionnés sur la page d'accueil de la collection ou la communauté (dans cet exemple: École d'optométrie):
- 'proprioception' dans tous les index :
https://papyrus.bib.umontreal.ca/xmlui/handle/1866/2922/discover?query=proprioception
1.1.3 Pointer vers la page affichant les titres d'un auteur donné / d'un directeur de recherche donné
- auteur 'Larivière, Vincent' :
https://papyrus.bib.umontreal.ca/xmlui/browse?value=Larivière,%20Vincent&type=author - directrice de recherche 'Larivière, Vincent' :
https://papyrus.bib.umontreal.ca/xmlui/browse?value=Larivière,%20Vincent&type=advisor
[Note: il ne s'agit pas ici d'une recherche d'un terme mais simplement de l'URL d'un auteur dans la liste des auteurs dans Papyrus. Ceci implique cependant que le nom de l'auteur soit TOUJOURS entré de la même façon car il n'a pas de contrôle d'autorité strict dans Papyrus (comme dans les catalogues de bibliothèques par ex.).]
1.2 Formulaire web
1.2.1 recherche dans tout le dépôt:
La recherche se fait dans tous les index et le plein texte, dans tout le dépôt Papyrus.
Pour obtenir cette boîte de recherche, couper/coller le code du formulaire HTML (élément form) suivant (ajuster au besoin le texte et le style CSS désiré):
<form action="https://papyrus.bib.umontreal.ca/xmlui/discover" method="post"> <p>Entrer des termes de recherche dans la case ci-dessous pour rechercher dans les documents du dépôt Papyrus.</p> <fieldset> <input name="query" type="text" value="" /> <input name="submit" type="submit" value="Aller" /> </fieldset> </form>
1.2.2 Recherche uniquement dans les documents d'une communauté ou d'une collection donnée:
Dans cet exemple la recherche s'effectue uniquement dans les documents de la communauté 'École d'optométrie', donc l'identifiant handle unique de la communauté est "2922" (1866 est l'identifiant handle du dépôt Papyrus) :
Pour obtenir cette boîte de recherche, couper/coller le code du formulaire HTML (élément form) suivant (ajuster au besoin le texte et le style CSS désiré). L'identifiant figure dans la barre d'adresse de votre navigateur lorsque vous êtes positionnés sur la page d'accueil de la collection ou la communauté (dans cet exemple: École d'optométrie):
<form action="https://papyrus.bib.umontreal.ca/xmlui/handle/1866/2922/discover" method="post"> <p>Entrer des termes de recherche dans la case ci-dessous pour rechercher dans les documents de l'École d'optométrie du dépôt Papyrus.</p> <fieldset> <input name="query" type="text" value="" /> <input name="submit" type="submit" value="Aller" /> </fieldset> </form>
2. Interrogation par utilisation du protocole OAI-PMH
Le protocole Open Access Initiative - Protocol for Metadata Harvesting (OAI-PMH) est une norme qui permet de mettre en place des infrastructures d'interopérabilité pour des informations documentaires. Cette norme facilite l’échange de données entre des fournisseurs de données (par exemple des bibliothèques) et un fournisseur de service (qui peut être une autre bibliothèque, un centre de documentation, un site web, un portail thématique, etc.) désirant réutiliser ces données.
Le protocole OAI-PMH est très simple et s'articule autour des normes HTTP et XML. Le protocole HTTP est utilisé pour le transfert des données entre un dépôt et un moissonneur (harvester). Le format XML est utilisé pour représenter les données échangées de façon structurée. Ainsi vous pouvez à l'aide d'un simple navigateur Web interroger un dépôt OAI tel Papyrus et récupérer le fichier XML résultant pour un traitement subséquent.
Une requête OAI est en fait une requête HTTP et est toujours constituée d'un URL de base propre à un dépôt. Cet URL de base est complété par une liste d'arguments sous la forme de paires nom=valeur. Le protocole OAI définit justement quelles peuvent être ces paires nom=valeur.
Une réponse OAI (réponse faite par un dépôt suite à une requête effectuée par un moissonneur) est toujours en format XML, sous la forme d'un document XML unique et bien formé.
Le protocole OAI est composé de six instructions (verb). Le tableau suivant décrit ces instructions, en mentionnant les paramètres qui peuvent être associés. Un paramètre suivi d'un astérisque(*) indique qu'il est obligatoire.
Instruction | Paramètre | Description |
---|---|---|
Identify | Informations à propos du dépôt | |
ListMetadataFormats | identifier | Liste des formats disponibles |
ListSets | resumptionToken | Liste des ensembles (set) disponibles dans un dépôt. |
ListIdentifiers | from until metadataPrefix* set resumptionToken | Liste des identifiants des documents d'un dépôt. Peut être limité par date et par ensemble (set). |
ListRecords | from until metadataPrefix* set resumptionToken | Liste des enregistrements d'un dépôt peut être limité par date et par ensemble (set). |
GetRecord | identifier* metadataPrefix* | Demande un enregistrement spécifique |
La syntaxe pour utiliser ces instructions et paramètres dans une requête OAI-PMH
est de la forme suivante :
[URL de base du
dépôt]?verb=[instruction]&[paramètre]=valeur&[paramètre]=valeur
Les spécifications du protocole sont en ligne à l'adresse suivante:http://www.openarchives.org/OAI/openarchivesprotocol.html
L'URL de base de Papyrus est: http://papyrus.bib.umontreal.ca/oai/request
Exemples de requêtes:
- Lister les formats des métadonnées disponibles:
https://papyrus.bib.umontreal.ca/oai/request?verb=ListMetadataFormats - Lister les ensembles (qui correspondent aux
collections) du dépôt:
https://papyrus.bib.umontreal.ca/oai/request?verb=ListSets - Lister uniquement les identifiants des documents de
l'ensemble "Faculté de l'aménagement – Thèses et mémoires"
(identifiant "col_1866_2593" obtenu dans la réponse à la requête précédente)
https://papyrus.bib.umontreal.ca/oai/request?verb=ListIdentifiers&metadataPrefix=oai_dc&set=col_1866_2593 - Obtenir les métadonnées, selon le schéma de
métadonnées Dublin Core, du document portant l'identifiant
"oai:papyrus.bib.umontreal.ca:1866/15932" (chapitre de livre par Gilles Dupuis):
https://papyrus.bib.umontreal.ca/oai/request?verb=GetRecord&metadataPrefix=oai_dc&identifier=oai:papyrus.bib.umontreal.ca:1866/15932 - Obtenir les métadonnées, selon le schéma de
métadonnées ETDMS, du document portant l'identifiant
"oai:papyrus.bib.umontreal.ca:1866/23952" (mémoire de maîtrise):
https://papyrus.bib.umontreal.ca/oai/request?verb=GetRecord&metadataPrefix=etdms&identifier=oai:papyrus.bib.umontreal.ca:1866/23952 - Obtenir les métadonnées, selon le schéma de
métadonnées MARC21, du document portant l'identifiant
"oai:papyrus.bib.umontreal.ca:1866/23952" (mémoire de maîtrise):
https://papyrus.bib.umontreal.ca/oai/request?verb=GetRecord&metadataPrefix=marc21&identifier=oai:papyrus.bib.umontreal.ca:1866/23952 - Obtenir les métadonnées, selon le schéma OpenAire v4.
du document portant l'identifiant
"oai:papyrus.bib.umontreal.ca:1866/12289" (article avec embargo):
https://papyrus.bib.umontreal.ca/oai/request?verb=GetRecord&metadataPrefix=oai_openaire&identifier=oai:papyrus.bib.umontreal.ca:1866/12289 - Pour une récolte périodique par exemple, lister
uniquement les métadonnées des enregistrements déposés/modifiés depuis le 20
juin 2020 :
https://papyrus.bib.umontreal.ca/oai/request?verb=ListRecords&metadataPrefix=oai_dc&from=2020-06-20T00:00:00Z - À partir d'un shell Unix lancer une requête OAI
(préciser le numéro du port):
curl -s "http://papyrus.bib.umontreal.ca:80/oai/request?verb=Identify"
2.1 OAI-ORE
OAI-ORE (Open Access Initiative - Object Reuse and Exchange), qui constitue en quelque sorte une extension au protocole OAI-PMH sans toutefois le remplacer, est une norme développée par l'OAI pour représenter des objets complexes qui se présentent sous forme de regroupement de ressources sur le web (appelés Aggregation). Ce regroupement est décrit par un document unique et obligatoire, la Resource Map. Cette Resource Map est constituée d'un ensemble de triplets RDF, qui décrivent le regroupement lui-même, les ressources regroupées, et les relations qui existent entre elles et avec des entités extérieures. Ces Aggregations peuvent consister en de multiples ressources de types différents, de formats différents, de localisations différentes, et présentant des relations hiérarchiques et logiques diverses. Par exemple une thèse en 3 volets, existant à la fois en format MS Word et en format PDF, avec un ensemble de données brutes, répliqué sur 2 serveurs différents, et avec une fiche signalétique décrivant cette ressource (métadonnées bibliographiques). Les spécifications techniques de la norme définissent comment les informations de la Resource Map peuvent être exprimées dans un fil de syndication ATOM-XML, ce qui est bien pratique pour les applications qui ne sont pas compatibles OAI-PMH.
Pour sa part Papyrus peut servir la Resource Map de l'ensemble des ressources du dépôt, soit en réponse à une requête OAI-PMH (en suivant la syntaxe décrite plus haut):
- Ex.:
https://papyrus.bib.umontreal.ca/oai/request?verb=GetRecord&metadataPrefix=ore&identifier=oai:papyrus.bib.umontreal.ca:1866/15879
(metadataPrefix=ore)
Soit encore en fil de syndication ATOM-XML en suivant la syntaxe: https://papyrus.bib.umontreal.ca/xmlui/metadata/handle/[handle]/ore.xml
Les spécifications de la norme sont en ligne à l'adresse suivante: https://www.openarchives.org/ore/
3. Interrogation par utilisation du format XML propre à DSpace
À partir des résultats d'une recherche dans l'interface de Papyrus, ajouter à la suite de l'adresse URL https://papyrus.bib.umontreal.ca/xmlui/ l'élément DRI/.
Exemple :
https://papyrus.bib.umontreal.ca/xmlui/discover?...
https://papyrus.bib.umontreal.ca/xmlui/DRI/discover?...
Vous obtiendrez dans la section referenceSet du XML ( / document / body / div / referenceSet ), la liste des URL relatives pour obtenir les métadonnées de chaque document qui vous interesse, ce qui permet de traiter les résultats comme un document XML et de leur donner le rendu désiré, comme des listes bibliographiques par auteur dans le site d'un département, par exemple.
Exemple :
<referenceSet id="aspect.discovery.SimpleSearch.referenceSet.search-results-repository" rend="repository-search-results" n="search-results-repository" type="summaryList"> <reference repositoryID="1866" type="DSpace Item" url="/metadata/handle/1866/16092/mets.xml"/> <reference repositoryID="1866" type="DSpace Item" url="/metadata/handle/1866/16091/mets.xml"/> </referenceSet>
Puis en faisant https://papyrus.bib.umontreal.ca/xmlui/metadata/handle/1866/16092/mets.xml, on obtiendra les données du document sous forme structurée.