Avancée

Ajout d’un dépôt au service de découverte du DFDR

Le service de découverte du dépôt fédéré de données de recherche DFDR est conçu pour indexer les dépôts de données de recherche au Canada. Parmi les dépôts indexés par le DFDR, il y a notamment:

Le personnel du DFDR travaille à l’ajout de nouveaux dépôts indexés. Voici certains des critères qui rendent un dépôt plus susceptible d’être priorisé :

Pour plus d’informations, veuillez consulter la politique sur le moissonnage de métadonnées.

Si vous souhaitez ajouter les métadonnées de votre dépôt au DFDR, veuillez communiquer à support@frdr-dfdr.ca pour discuter du processus à suivre.

ProQuest Central Discovery Index

Tous les jeux de données moissonnées par le dépôt fédéré de données de recherche (DFDR) sont maintenant disponibles via le ProQuest Central Discovery Index (CDI). Voici les instructions pour rendre le DFDR découvrable dans les interfaces de ProQuest, y compris Summon, Primo et Alma. En suivant les instructions, vous rendrez toutes les données du DFDR – plus de 117,000 ensembles de données – visible pour vos utilisateurs.

  1. Naviguez au ProQuest Client Center de votre bibliothèque : https://clientcenter.serialssolutions.com/CC/Login/Default.aspx
  2. Rechercher Base de données > Nom contient > FRDR
    ProQuest Client Center
  3. Ouvrez l'enregistrement trouvé (code : MFDEJ). Cliquez sur Modifier et activez l'inclusion dans vos abonnements ProQuest, par exemple Summon.
    ProQuest Subscription
  4. À ce point-ci, tous les enregistrements du DFDR seront visibles pour vos utilisateurs.

Veuillez contacter support@frdr-dfdr.ca si vous avez besoins d’aide.

Nous sommes conscients que les utilisateurs d'Alma ne sont pas en mesure d'ajouter la collection du DFDR en ce moment. De plus amples informations et des instructions mises à jour seront ajoutées dès que possible.

Pour les développeurs

La présente documentation s’adresse aux utilisateurs qui souhaitent développer des applications ou des sites web faisant appel à la technologie du DFDR.

API de recherche

L’outil de découverte du DFDR se base sur la plateforme de recherche de Globus, une application dorsale elle-même basée sur ElasticSearch. Le moissonneur du DFDR parcourt les flux de divers dépôts au Canada, y compris le DFDR lui-même, et crée des entrées dans l’index de recherche du DFDR.

L’API de recherche comporte deux formes. Les requêtes simples (par exemple celles qui ne définissent pas les facettes) peuvent être simplement envoyées à l’aide du formulaire GET. Les requêtes plus complexes peuvent être envoyées à l’aide du formulaire POST pour affiner les exigences de recherche. Dans les deux cas, la forme des résultats est la même.


Méthode GET

URL : https://search.api.globus.org/v1/index/ea384560-88cf-4e6e-b379-956793192fe8/search?q=term

Paramètres de la requête :


Méthode POST

URL : https://search.api.globus.org/v1/index/frdr/search

Paramètre de la requête : Aucun

Paramètres POST :

Exemple de GSearchRequest :

{
  "@datatype": "GSearchRequest",
  "@version": "2016-11-09",
  "q": "(bears AND black) OR (trees AND green)",
  "offset": "20",
  "limit": "10",
  "advanced": true
}

Syntaxe de la requête

Deux formats de syntaxe pour les requêtes sont supportés : standard et avancé. Le format standard ne permet qu’un simple appariement textuel des requêtes. Toutes les requêtes seront traitées et les résultats qui correspondent le mieux au texte saisi seront retournés comme résultats. Ce format est généralement approprié dans les contextes où les usagers proposent leurs propres textes de requête. Le format avancé (utilisé lorsque les valeurs avancées sont configurées à "vrai") permet les plages, les expressions régulières, l’appariement de champs particuliers et d’autres modes plus sophistiqués. La syntaxe avancée est susceptible aux erreurs d’analyse syntaxique, telles que les plages mal formées ou les erreurs de nom de champs. Ainsi, cette méthode est appropriée lorsque les requêtes sont générées par machine ou si on aide un usager à construire une requête. La syntaxe est basée sur la syntaxe de la chaîne de caractères Elastic search avec les exceptions suivantes : 1. Les caractères de remplacement dans les noms de champs ne sont pas pris en charge. Par exemple, la requête « book.*:(quick brown) » n’est pas permise. 2. Les termes de recherche « missing » et « exists » ne sont pas permis.

Dépôt d’éléments

Note : Ces instructions sont pour Linux et Mac. Les instructions sous Windows sont en cours de développement.

Vous pouvez utiliser le Globus Python Client pour interagir avec les services de Globus, y compris le DFDR. Avant de commencer, vous devez vous connecter au DFDR avec le compte que vous utiliserez pour déposer des données et vous assurer d’avoir les autorisations de dépôt.

Installez Python.

Installez Virtualenv :

sudo pip install virtualenv

Installez le module Globus SDK python :

sudo pip install globus-sdk

Obtenez une copie du code client REST API en communiquant avec nous. Actuellement, ce code n’est pas public.

Changez le répertoire où le code client REST API a été téléchargé, puis installez-le :

make install

Pour obtenir la liste des commandes qui vous sont disponibles, exécutez :

./globus-publish-client --help

Exécutez le code client REST API pour la première fois :

./globus-publish-client --service-url "https://demo.frdr-dfdr.ca/v1/api" --list-schemas

Vous devrez copier et coller l’adresse URL dans votre navigateur web. Assurez-vous de vous connecter à partir de votre navigateur avec le compte de l’usager qui déposera les données. Vous pouvez copier le jeton d’authentification à la ligne de commande. Vous obtiendrez un fichier JSON contenant les jetons d’authentification de votre répertoire principal (mode par défaut 0600).

Pour déposer un élément, le flux binaire du jeu de données doit déjà exister sur un point d’extrémité Globus accessible à l’usager connecté. Les métadonnées de l’élément doivent également exister dans le système de fichiers local en format JSON.

Vous devez déterminer dans quel groupe de stockage déposer les éléments. Vous pouvez obtenir la liste avec cette commande :

./globus-publish-client --service-url "https://demo.frdr-dfdr.ca/v1/api" --list-collections

Vous obtiendrez une liste semblable à celle-ci :

[
  {
    "name": "Storage Group 1",
    "id": 3
  },
  {
    "name": "Storage Group 2",
    "id": 5
  }
]

L’identifiant du groupe de stockage est l’élément important; il sera nécessaire pour la commande de soumissions de l’élément. Dans ce cas, nous choisirons l’ID 3.

La commande de soumission de l’élément (tous les arguments illustrés sont nécessaires) se détaille comme suit :

./globus-publish-client \
  --service-url "https://demo.frdr-dfdr.ca/v1/api" \
  --create-submission --collection-id 3 \
  --metadata-file item.json \
  --transfer-data \
  --data-endpoint endpoint-uuid-goes-here --data-directory "/my_data/"

L’UUID doit pointer vers un point d’extrémité Globus Connect valide et actif, le chemin d’accès doit exister et le déposant doit avoir la permission de lire les données à partir du chemin d’accès de ce point d’extrémité.

Cette commande produira un code JSON semblable à ceci :

Dataset record created:
{
  "dc.date.issued": "2018-02-27",
  "dc.contributor.author": "Smith, Jane",
  "globus.shared_endpoint.path": "/1/unpublished/publication_64/",
  "dc.date.accessioned": "2018-02-27",
  "globus.shared_endpoint.name": "49eba39a-9987-11e7-ac63-22000a92523b",
  "id": 64,
  "dc.title": "My Dataset Title",
  "dc.publisher": "University of Somewhere",
  "dc.date.available": "2018-02-27"
}

Transfer request result: {
  "message": "The transfer has been accepted and a task has been created and queued for execution",
  "resource": "/transfer",
  "code": "Accepted",
  "request_id": "qNFY8ByuN",
  "task_link": {
    "resource": "task",
    "title": "related task",
    "DATA_TYPE": "link",
    "rel": "related",
    "href": "task/f25d0050-1cc2-11e8-b718-0ac6873fc732?format=json"
  },
  "submission_id": "f25d0051-1cc2-11e8-b718-0ac6873fc732",
  "DATA_TYPE": "transfer_result",
  "task_id": "f25d0050-1cc2-11e8-b718-0ac6873fc732"
}
id of transfer task is  f25d0050-1cc2-11e8-b718-0ac6873fc732

Vous devez noter l’ID du jeu de données. Dans ce cas, 64. Attendez de recevoir un courriel confirmant le transfert de vos données vers le DFDR et vous pourrez finaliser la soumission avec cette commande :

./globus-publish-client --service-url "https://demo.frdr-dfdr.ca/v1/api" --submission-id 64 --submit --wait

Après le retour de la commande, vous obtiendrez le DOI de la soumission. Attendez 15 minutes pour la résolution du DOI, que vous pourrez copier dans un navigateur web pour voir la soumission dans le DFDR.

Si la commande produit une erreur de délai d’attente, vous pouvez l’ignorer. Cependant, afin de chercher l’élément et d’en déterminer le DOI à cette étape, vous pouvez exécuter cette commande :

./globus-publish-client --service-url "https://demo.frdr-dfdr.ca/v1/api" --dataset-id 64 --display-dataset

Ce n’est qu’après la soumission complète et réussie de l’élément que l’on parle de jeu de données. Ainsi, vous utilisez le même identifiant que précédemment dans la requête, mais cette fois les arguments réfèrent à un jeu de données.

Par ailleurs, plutôt que de procéder à une soumission en 2 étapes distinctes, les indicateurs --submit et --wait peuvent être ajoutés à la commande originale. Cela démarrera le dépôt, le transfert des fichiers du jeu de données, ainsi que la soumission et la finalisation du transfert en une seule transaction. Toutefois, ce faisant, le script ne répondra pas pendant le transfert, ce qui rend cette méthode appropriée uniquement pour les petits jeux de données.