Querying Papyrus with dynamic links and OAI-PMH (fr)

Dernière mise-à-jour: vendredi, 6 janvier 2017

Si vous désirez insérer dans une de vos pages web un lien qui effectuera une recherche de façon dynamique dans Papyrus ou encore si vous souhaitez interroger Papyrus pour extraire et réutiliser des métadonnées portant sur certains documents ou collections de documents, il vous est possible d'interroger Papyrus à distance de trois façons distinctes:

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:

[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 le 'Département de kinésiologie', modifier le lien hypertexte pour inclure l'identifiant handle unique de la communauté, soit ici "2923" (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: Département de kinésiologie):

1.1.3 Pointer vers la page affichant les titres d'un auteur donné / d'un directeur de recherche donné

[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.), encore moins d'identifiants uniques aux différentes personnes.]

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é 'Département de kinésiologie', donc l'identifiant handle unique de la communauté est "2923" (1866 est l'identifiant handle du dépôt Papyrus) :

Entrer des termes de recherche dans la case ci-dessous pour rechercher dans les documents du Département de kinésiologie 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: Département de kinésiologie):

<form action="https://papyrus.bib.umontreal.ca/xmlui/handle/1866/2923/discover" method="post">
    <p>Entrer des termes de recherche dans la case ci-dessous pour rechercher dans les documents du Département de kinésiologie 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:

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):

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.