CNRS-LACITO / Pangloss_website

Tools for the Pangloss Collection, an online archive of under-documented languages
https://pangloss.cnrs.fr/
MIT License
6 stars 1 forks source link

Intégration de OutilsPangloss au site : permettre le téléchargement des fichiers par lots #57

Open alexis-michaud opened 6 years ago

alexis-michaud commented 6 years ago

Oliver Adams (chercheur en informatique) relève :

"the requirement of writing a script to download all the files or manually downloading is enough friction to turn some people off."

Merci à lui de nous en avoir fait part : d'autres tourneraient simplement les talons sans nous faire part du problème :-)

Il faut comprendre ce point de vue : celui d'utilisateurs informaticiens qui veulent récupérer des lots de données d'un coup, pour leurs finalités de recherche à eux, qui parfois n'ont vraiment rien à voir avec les nôtres.

A réfléchir : comment ça marcherait, le téléchargement par langue (voire par pays, par groupe de langues...), et où mettre un lien vers ça sur l'interface.

La philosophie plus générale c'est de faire l'effort de comprendre la diversité des utilisateurs et voir dans quelle mesure on peut répondre à leurs attentes. On peut imaginer 3 façons typiques de consulter : celle de linguistes qui consultent 1 document après l'autre (=système actuel), celle d'informaticiens qui veulent récupérer par lots, et celle d'un grand public qui consulterait les documents en mode "dépaysement/détente".

(Ensuite il y a aussi les interfaces pour 1 communauté qui veut enseigner la langue, mais ça ce serait plutôt à voir langue par langue?)

Wasson, Christina, Gary Holton & Heather S. Roth. 2016. Bringing user-centered design to the field of language archives. Language Documentation and Conservation 10. 641–681.

alexis-michaud commented 6 years ago

Mise à jour d'avril 2018 : un collègue américain, Graham Neubig, nous sollicite pour cette même demande. Si ça pouvait être mis en place pour l'ensemble de la base Cocoon, ça serait vraiment très, très opportun...

alexis-michaud commented 6 years ago

Réponse de Michel Jacobson : ça peut se faire commodément via Cocoon.

Tout est fait dans Cocoon pour ça puisse être fait facilement par quelqu'un qui s'y connait un peu en informatique.

Toutes les métadonnées sont exposées sur le principe du web de données. Elles sont exprimées en RDF en suivant le modèle d'Europeana (EDM). Il est possible d'interroger ces métadonnées avec le standard SPARQL dont le point d'accès public est https://cocoon.huma-num.fr/sparql.

1) La première étape consiste par exemple à lister toutes les URL des enregistrements d'une langue particulière (ici le Yuanga; code ISO: nua = http://lexvo.org/id/iso639-3/nua ). Ca donne la requête suivante:

PREFIX edm: <http://www.europeana.eu/schemas/edm/>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT DISTINCT ?file WHERE {
   ?cho a edm:ProvidedCHO;
        dc:language <http://lexvo.org/id/iso639-3/nua>.
   ?aggregation edm:aggregatedCHO ?cho;
                edm:hasView ?view.
   ?view  dc:type "master";
           foaf:primaryTopic ?file.
} 
LIMIT 100

La requête est un peu minimale. Elle ne liste que les enregistrements au format de conservation, et pas ceux dans un format de diffusion ni les transcriptions. Elle ne se préoccupe pas non plus de savoir si la donnée est librement accessible ou pas... Elle demanderait surement à être raffinée pour coller aux besoins.

Le résultat de cette requête (que vous pouvez facilement exécuter vous-même en faisant un copier/coller dans le point d'accès) est:

file http://cocoon.huma-num.fr/data/archi/masters/145144.wav http://cocoon.huma-num.fr/data/archi/masters/234684.wav http://cocoon.huma-num.fr/data/archi/masters/234686.wav

2) Comment télécharger de tous les fichiers de la liste?. Une solution simple est par exemple de passer cette liste en paramètre à un outil comme "wget".

D'autres outils doivent certainement exister.

3) Comment automatiser le processus de bout en bout? Ci-dessous un script bash (à ne pas mettre entre toutes les mains) qui enchaîne toutes ces actions:

#!/bin/bash
ENDPOINT='https://cocoon.huma-num.fr/sparql'
REQUEST='
    PREFIX edm: <http://www.europeana.eu/schemas/edm/>
    PREFIX dc: <http://purl.org/dc/elements/1.1/>
    PREFIX foaf: <http://xmlns.com/foaf/0.1/>
    SELECT DISTINCT ?file WHERE {
       ?cho a edm:ProvidedCHO;
            dc:language <http://lexvo.org/id/iso639-3/nua>.
       ?aggregation edm:aggregatedCHO ?cho;
                    edm:hasView ?view.
       ?view  dc:type "master";
               foaf:primaryTopic ?file.

    } 
    LIMIT 100
'
wget "$ENDPOINT?query=$REQUEST&format=csv" -O liste.csv
sed 's/"//g' liste.csv| wget -i -

4) Il n'est pas prévu dans un futur proche qu'on cherche à faciliter ce type de fonctionnalité sur le portail web de Cocoon mais comme indiqué en préambule "Tout est fait dans Cocoon pour ça puisse être fait facilement par quelqu'un qui s'y connait un peu en informatique".

alexis-michaud commented 6 years ago

Pour récupérer non seulement les enregistrements (au format master) mais aussi les transcriptions :

PREFIX edm: <http://www.europeana.eu/schemas/edm/>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dcterms: <http://purl.org/dc/terms/>
SELECT DISTINCT ?file WHERE {
   ?cho a edm:ProvidedCHO;
        dc:language <http://lexvo.org/id/iso639-3/nua>.
   ?aggregation edm:aggregatedCHO ?cho;
                edm:hasView ?view.
   ?view  ?prop ?file FILTER regex(str(?file), "/masters/").
   VALUES (?prop) {(foaf:primaryTopic) (dcterms:isFormatOf)}

} 
LIMIT 100
alexis-michaud commented 6 years ago

@sguillaume : la tâche à réaliser côté Pangloss devient donc : à quel endroit du site pourrait-on signaler aux informaticiens d'aller sur le site web de Cocoon pour les opérations techniques telles que celle-ci.

alexis-michaud commented 4 years ago

Orientation confirmée : téléchargement ressource par ressource sur le site Pangloss, et renvoi vers Cocoon (avec indications précises) pour téléchargements par lots.

alexis-michaud commented 3 years ago

A noter : réalisation par Benjamin Galliot en 2020 d'un script pour le téléchargement par langue, en bon ordre: retriever.py

alexis-michaud commented 3 years ago

Souci pour retriever.py : la vitesse de téléchargement est extrêmement lente. Il faut 2 mois montre en main pour un téléchargement complet, hum... La recherche de solutions se poursuit. Ca serait super de ne pas trop trop tarder car il y a des collègues qui attendent...

alexis-michaud commented 1 year ago

L'outil créé par @BenjaminGalliot pour le téléchargement par lots est maintenant fonctionnel :

Outils Pangloss

@EdouardSombie @sguillaume comment procéder à son intégration sur le site ?

alexis-michaud commented 1 year ago

Idée de @EdouardSombie : le téléchargement de corpus entiers (de l'ordre de 3 Go pour le japhug, par exemple) ne s'intègre pas dans un flux de navigation web, du fait du temps de calcul serveur. Pour le téléchargement d'un corpus entier, passer par un formulaire : "Renseignez votre adresse courriel. Vous recevrez un lien de téléchargement." Échelonner en fonction de la charge. Lance le processus de génération et stocke provisoirement. (Il faut trouver de la place pour cette fonctionnalité. Sur le serveur Huma-Num, là où se trouve le site Pangloss ?)

alexis-michaud commented 1 year ago

Prévision : un espace de 100 Go. L'utilisateur a demandé, a reçu un courriel ; garanti pour 72h ; après 48h on envoie un mail de relance ; après 72h on marque que le corpus peut être effacé pour utiliser l'espace de stockage pour d'autres demandes.

alexis-michaud commented 1 year ago

Bilan : 4 formes d'export : 1) par document, en asynchrone : récupérer le PDF d'une annotation, stocké (1 PDF par annotation). Le PDF contient toutes les infos du XML. 2) par document, à la volée, sur la base des options d'affichage saisies dans le lecteur Eastling. Bouton depuis la page de consultation d'une ressource, parmi les options de téléchargement de fichiers. Export PDF + LaTeX. 3) par phrase, à la volée. Export LaTeX seulement. Sur la base des options d'affichage saisies dans le lecteur Eastling. Bouton depuis la page de consultation d'une ressource, à côté du bouton DOI de la phrase concernée ? (granularité de niveau 1) 4) par corpus, à la volée. Choix des ressources, puis création d'un PDF (et d'une version LaTeX).

alexis-michaud commented 7 months ago

À signaler : "OLAC Grabber", un outil en Python.

Ca s'utilise en ligne de commande, ça n'est donc pas la même chose qu'une intégration de OutilsPangloss au site, qui rendrait service et reste donc d'actualité. @m8nli9ht est-ce que ça serait à programmer (pardon : planifier !) pour après l'important dossier des livrets ?