Salut les zamis, je ne sais pas trop comment s’appelle ce que je cherche, donc je vais plutôt vous expliquer les fonctionnalités attendues, vous me direz si vous avez connaissance d’un tel outil.
J’ai des tas de fichiers de diverses sortes (textes, photos, vidéos, audio, pdf), concernant une même thématique bien particulière, auxquels j’aimerais pouvoir attacher des méta données pour les regrouper, classer, retrouver, etc. : date, auteur, sujet ou mots-clés…
Mettons que ce sont des fichiers sur la cuisine, si je recherche « pizza », je voudrais que l’outil me présente un tri daté de tous les documents étiquetés pizza, que ce soit un fichier audio de Bocuse parlant de pizza ou un pdf de recette de pizza aux anchois.
Est-ce que c’est de la GED Gestion Électronique de Documents ?
J’utilise très habituellement 2 script de ma fabrication depuis plus de 15 ans.
Le 1er, «setcl <fichier> "commentaire"» ajoute un commentaire qui peut donc servir de cléf de tri, le 2eme s’appelle lscl et liste les fichiers avec leurs commentaires.
C’est rustique, bourré de défauts et d’insuffisance, mais ça fait juste ce travail.
$setcl -h
Syntaxe de setcl :
setcl [h|r|u] fichier "Le commentaire"
Options:
-r rééditer un commentaire existant= l'effacer.
-u undo = (faire -ru) récupérer le commentaire précédemment effacé (1)
-h help = cet écran d'aide
Le commentaire supprimé est stocké dans ./tmp/<fichier>_setclbkpcomment.txt
(1) En cas de commentaire irrécupérable, le chercher dans /tmp/
La commande cp -a préserve les attributs étendus, donc les commentaires setcl
.
$ lscl -h
Syntaxe: lscl [-a --all -n --nocolor -h --help] liste de fichiers
"liste de fichiers" peut être:
- Un nom de fichier ( alpha_num , sinon, avec guillemets )
- Des patrons ( jockers * et ?, liste entre accolades.. )
- Une liste séparée par des espaces
-a --all Liste aussi les fichiers sans commentaire.
-n --nocolor Sortie en noir et blanc.
-h --help Affiche cette aide.
BUG: -na -an ne fonctionnent pas, il faut ecrire -a -n (ou -n -a )
LIMITES:
lscl explore toute l'arborescence.
mais
=>l'option -a n'affiche les fichiers sans commentaire
que dans le répertoire courant (répertoire d'appel).
=>lscl -a rep/ n'affiche pas les fichiers sans commentaire
=>lscl -a rep/* affiche les fichiers sans commentaire de ce répertoire,
sans ceux de son arborescence.
Les scripts sont certainement très améliorables:
caractères UTF8 pas toujours pris en charge, nécessite de se passer parfois d’accent (bug apparemment aléatoire que je n’ai pas su régler)
prise en compte uniquement de toute l’arborescence, évidemment génant
tri et affichage comme ls: rien de tout cela n’est possible avec lscl
J’ai du renommer setcl en setcl.bkp pour le «gzipper» et setcl.bkp.gz en setcl.bkp.gz.txt, idem pour lscl, pour qu’ils soient acceptés ici.
Évidemment si vous avez des améliorations, elles seront les bienvenues. Évidemment si des outils existent déja, j’en serai le premier heureux de les connaître.
Pour ma bibliothèque numérique, j’ai adopté calibre. Je m’en sers aussi pour gérer ma bibliothèque papier.
Je renseigne par exemple les métadonnées des PDF avec exiftool, puis je les importe dans calibre. J’ai ajouté des colonnes personnalisées pour localiser les bouquins, ajouter le statut (prêt, achat, etc.).
Est-ce que c’est un mécanisme de méta données « universel », en ce sens que les mettra données sont incluses au fichier, copiées avec, utilisable dans d’autres OS ?
La GED (Gestion Électronique de Document) commence dès que l’on conçoit ou que l’on utilise un outil (script ou application) visant à retrouver plus facilement des documents.
Votre besoin exprimé est un grand classique visant à compenser et à aller au delà des gestionnaires de fichiers pour retrouver facilement et rapidement des documents en fonction de mots clefs. La réponse est cependant moins classique tant il y a de manières de faire. En fonction du type ou du format de fichier, celui-ci contient des données structurées différentes.
Le format exif et ses meta données permet par exemple d’intégrer des données au sein même d’une image. D’autres formats contiennent d’autres données. En deux mots c’est pratique mais avec tant de formats différents, c’est un peu la jungle. Et puis d’un point de vue sécurité, ne vaut-il pas mieux séparer les données de l’image ou du document proprement dit ? Il faut que vous vous posiez cette question en fonction de vos besoins spécifiques ou de vos catégories de documents sachant qu’il y autant de pour que de contre tant le sujet est vaste et donc sujet à troll. En tout cas, mieux vaut être conscient que lorsque vous mettez en ligne une photo vous ne faites généralement pas que la transmettre. Certaines IA peuvent même aller jusqu’à vous accuser de ne pas être à l’origine d’une photo, très certainement faute d’informations utiles comme j’ai pu le constater sur Vinted. En deux mots elle encourage la naïveté et sanctionne l’usage de la sécurité. Au final après plusieurs échanges, j’ai eu gain de cause en reconnaissant « un problème de leur côté ».
Donc si l’on fait abstraction de la sécurité tant le sujet est vaste et discutable tant d’un côté que de l’autre, en se basant uniquement sur l’aspect efficacité et simplicité il apparaît que l’usage d’un SGBDR tel que par exemple MySQL ou PostgreSQL est une excellente solution. Je me permet de la proposer d’autant plus facilement que vous écrivez des scripts et que l’usage du SQL (Structured Query Language, le langage permettant de construire et de dialoguer avec une base de données) vous paraîtra vite un jeu d’enfant.
En premier lieu vous devez définir une table sur le papier. Je m’étais déjà prêté à ce genre d’exercice pour classer des articles rédigés par mes soins mais aussi pour référencés des clichés d’illustrations.
En gros votre table doit se présenter avec les colonnes suivantes:
nom du document
nom du fichier
type de ressource (texte, image, vidéo)
description
mot clef 1
mot clef 2
mot clef 3
lien sur la ressource
En pratique, comme il peut y avoir en théorie un grand nombre de mots clefs, on substituera les colonnes mot clef 1, mot clef 2, mot clef 3 par une référence à une autre table avec une colonne ref_clef. Pour plus de précisions, on se basera sur la jointure de tables avec une liaisons de 1 à plusieurs, sujet largement décrit dans tout ouvrage sur les bases de données qui se respecte. Mais dans un premier temps, entraînez-vous avec une simple table comme celle décrite au paragraphe précédent. Avec le langage SQL vous pouvez notamment:
Créer une base de données
Créer une table
Ajouter des enregistrements
Interroger la table suivant vos propres critères (filtrage)
Une fois la prise en main effectuée, rien ne vous empêche d’employer une interface graphique se superposant à l’ensemble avec une solution un peu plus lourde telle que LAMP (Linux Apache MySQL PHP)
Avec un peu de scripting, vous pouvez aussi exploiter les sorties SQL en texte brut pour sortir des états (résultats de vos requêtes) sous la forme d’une page Web ou sous d’autres formats graphiques (ex: PDF via LaTeX)
Les outils de GED existent mais elles ont autant d’avantages que d’inconvénients que les méthodes ci-dessus. L’avantage principal c’est que l’on dispose d’une solution « complète » prêt à l’emploi. L’inconvénient majeur c’est qu’elles ne sont jamais vraiment complètes et que ce n’est pas forcément à la portée de tous pour les faire évoluer sans même parler de l’interface graphique qui peut être parfois lourde. Si vous êtes habitué à l’écriture de scripts alors ça vaut le coup de se pencher sur l’usage d’une BDD (Base De Données) en SQL !
Merci pour tout ça. Ceci dit, je n’envisage pas de développer l’outil moi-même, je préfère un truc existant, avec une équipe de développement qui traite les rapports de bugs.
Je vais aller un peu plus loin dans les besoins, pour le cas par exemple de fichiers audio ou vidéo, j’aurais besoin de tagguer juste certains passages qui parlent de tel ou tel sujet.
J’ai vu que les métadonnées exif ne s’appliquaient pas à tous les types de fichier, et même si exiftool gère d’autres formats que le exif, c’est trop limité (aucun moyen de mettre des tags sur des fichiers OpenOffice, par exemple).
Je me suis renseigné sur les xattr qui sont un moyen offert par l’OS de mettre des tags sur tous fichiers ET DOSSIERS, mais au final ça me semble limité, et je crois que petit à petit je vais m’orienter vers un système où les métadonnées sont traitées à part.
Oui, exiftool est l’outil le plus puissant et universel de gestion des métadonnées, principalement pour les images.
Tout lecteur compatible avec les standards lira les métadonnées associées à un fichier −dès lors qu’elles respectent elles-même les standards (XML, IPTC, Exif).
Comme déjà dit, les fichiers compagnons sont un bon moyen de viser l’universalité, sans dépendre d’une application.
En fait je crois que ce qu’il me faut, c’est en effet un mécanisme qui permette de stocker des tags (dans des fichiers compagnons ou une base de données), les tags pouvant être placés sur un fichier entier ou une partie d’un fichier (plage de temps sur une vidéo, chapitre d’un texte, zone d’une photo…), et un outil permettant de parcourir ces tags de manière homogène. Est-ce que ça existe ?
Dans un premier temps, un mécanisme manuel pour mettre les tags suffira, et peut-être qu’un jour je pourrai automatiser la création des tags avec divers outils.
@Thierz. Si vous souhaitez faire le minimum ou vous familiariser avant de passer éventuellement à l’utilisation d’un SGBDR, vous pouvez répondre à votre besoin à l’aide d’une simple feuille de tableur.