mardi 30 octobre 2012

Installation de ICA-Atom pour y importer des IR en CSV…



Dans le cadre d’une formation que je dois dispenser dans un service d’archives départementales, le chef de service me propose, entre autres, de prévoir une séance de démonstration d’un import d’un instrument de recherche (IR) sous forme tabulaire ou CSV sous ICA-Atom (j’avais déjà évoqué ICA-Atom dans un précédent billet).

Proposition louable mais combien délicate. Déjà, sur le site démonstration de ICA-Atom, dans les choix des imports possibles, on nous propose soit une instance XML soit un CSV. Jusqu’à là, tout va bien, sauf qu’il est impossible d’importer quoique ce soit ! le message suivant apparaît:
«Oops! An Error Occurred, The server returned a "500 Internal Server Error". Sorry something went wrong. Try again a little later or ask in the discussion group. What's next. Back to previous page»…
On est bien avancé…

Pour essayer notre cher import CSV, la solution idéale consisterait donc à installer ICA-Atom en local et tester l’import en espérant qu’il y ait un exemple de fichier CSV…mais mille fois hélas, il n’y pas de modèle de fichier CSV ! j’en ai créé un de tout part et essayé l’import…

Exemple de mon fichier CSV : les données de chaque ligne sont séparées par un point-virgule correspondant aux séparations entre les colonnes dans un tableau dont la première ligne serait les éléments de EAD (j’y ai mis les éléments obligatoires genre ead, archdesc, etc., deux niveaux de description)
ead;eadheader;filedesc;archdesc;did;origination;unitid;unitttle;unitdate;unitid;unitttle;unitdate;physdesc;unitid;unitttle;unitdate;physdesc;scopecontent
;;;;;;Z/3/2 à Z/3/23;1er tribunal criminel provisoire;;;;;;;;;;
;;;;;;;;;Z/3/2 et Z/3/3;Minutes de jugements;Avril 1791 à août 1792;594 pièces;;;;;
;;;;;;;;;;;;;Z/3/4;Affaires à parties civiles;8 juin 1791-18 août 1792;;
;;;;;;;;;;;;;Z/3/4, Dossier 1;Appointements;sans date;1 pièce;
;;;;;;;;;;;;;Z/3/4, Dossier 2;Choix des tribunaux d'appel;28 décembre 1791-25 février 1792;2 pièces;

;;;;;;;;;;;;;Z/3/8;Dossiers de procédure;19 février-31 mai 1791;23 dossiers;Pièces de forme (procès-verbal d'arrestation;

;;;;;;;;;;;;;Z/3/8, Dossier 1;Durand (François);19 février 1791;17 pièces;vol d'une montre en or;
;;;;;;;;;;;;;Z/3/8, Dossier 2;Galant (Françoise), femme Mercier, chiffonnière;11 avril 1791;17 pièces;vol d'une redingote;
Mais macache bonnot, ça ne fonctionne pas ! J’en ai parlé à Jean-François Moufflet (j’avais déjà évoqué son nom dans un précédent billet), qui est l'un des rares et excellents spécialistes francophones en ICA-Atom, il m’a aussi laissé entendre que ce manque d’exemple sur le site demo n’est pas très confortable.

Mais commençons par le début. J’ai profité de la présence de Jean-François Moufflet pour installer la nouvelle version de ICA-Atom (1.3) en local sur mon poste. À ce sujet, voici quelques astuces avant de l’installer :

Comme vous le savez, il faut d’abord installer Wamp avant ICA-Atom.
Wamp se trouve sur http://www.wampserver.com/
ICA-Atom sur https://www.ica-atom.org/

0- mais auparavant, pour éviter d'avoir ce message très méchant en installant Wamp :
Aestan Tray Menu a rencontré un problème et doit fermer. Nous vous prions de nous excuser...
AppName : Wampmanager ModName : kernel32.dll AppVer : 1.6.1.33 ModVer : 5.1.2600.5781 OffSet : 00012afb

1.- assurez-vous que votre ordinateur dispose du dernier Service Pack (le 3) et des dernières mises à jour critiques Windows XP (si vous l’utilisez), et pour vous procurer les dernières mises à jour de sécurité, visitez le site Windows Update (procédez à une installation sur XP 32 bits si vous n’êtes pas sûr que vous êtes sur 64 bits).

2.- ensuite, assurez-vous que sur votre Windows XP sont correctement installés Visual C++ 2008 et Visual C++ 2010 (je n’avais installé que ce dernier et Jean-François Moufflet m’a conseillé d’installer les deux)...pour installer ces "Redistributable Package" aller sur :
http://www.microsoft.com/download/en/details.aspx?id=29 (x86)
http://www.microsoft.com/download/en/details.aspx?id=15336 (x64)

3.- installez également dotNetFx40_Client_setup.exe (personne ne le conseille et pourtant ce .exe est spécialement conçu pour exécuter des applications clientes et n’est pas, d’une manière innée, présente sur les postes).

4.- et puis n’oubliez pas qu’il est toujours recommandé d'installer les applications à la racine d'une partition (ici ce sera C:\Wamp) et de ne pas utiliser un nom de dossier comportant des espaces ou des caractères accentués.

5.- s’assurez aussi de laisser le port 80 libre (Skype l’utilise souvent, aussi si vous avez Skype sur votre poste, alors dans les Options de Skype aller sur Outils -> options -> Paramètres avancés -> Connexion et décocher la case "Utiliser les ports 80 et 443 comme alternative." et par la même occasion, vérifiez que le Firewall (parefeu) autorise (et n'interdit pas) les mêmes accès.

6.- souvent, notre anti-virus bloque les accès à l’installation de Wamp, aussi pensez à «autoriser» tous les fichiers Wamp (wamp\wampmanager.exe) ainsi que ceux des Apache et autres Mysql.

7.- si précédemment Wamp avait été désinstallé, alors toujours vérifier que les deux services wampapache et wampmysqld sont supprimés avant d'installer une nouvelle version (pour supprimer un service : Démarrer, Exécuter, Tapez : "SC DELETE " (sources : forum.wampserver.com/).

Donc une fois Wamp correctement installé, place à la nouvelle version de ICA-Atom (1.3), ici pas de difficultés majeures. En suivant le manuel que Jean-François Moufflet a rédigé, il suffit juste d'installer AtoM 1.3 dans le répertoire C:\wamp\www puis de décompresser 2 fois. Une première fois par un clic droit «Extraire ici...» et après apparition d’une deuxième archive au format TAR, la décompressez de la même manière. Résultat : deux autres fichiers, «ICA-Atom 1.3» et «package.xml», à laisser sur C:\wamp\www 

Paramétrer ensuite la base de données d’AtoM par clic gauche sur l’icône du serveur Wamp en bas à droite sur la barre des tâches, et sélectionnez : «php my admin», sur «Bases de données» en haut de l’écran à gauche, on renseignera deux champs : le nom de la base (il est conseillé de mettre «qubit», mais on est libre semble-t-il, de choisir un autre nom) et le codage de caractères dans la base (ici sélectionnez «utf8_unicode_ci») puis cliquez sur «Créer».

Extrait du manuel que Jean-François Moufflet a rédigé

Une fois la base créée, cliquez sur «Vérifier les privilèges» dans la ligne de la base qubit dans le tableau et y «ajouter un utilisateur» pour lequel on s’accorde évidemment tous les droits d’administration sur la base d’AtoM. Enfin, entrer un nom d’utilisateur ainsi que le mot de passe (par deux fois) et indiquer que l’utilisateur est un client «Local» (c’est important sinon AtoM ne fonctionnera pas) dans le menu déroulant.

Après avoir accorder à l’utilisateur tous les droits grâce au bouton «Tout cocher», on validera en cliquant sur «Exécuter» et en refermant le navigateur.

Le paramétrage de la base est terminé. Sur l’icône du serveur (dans la barre des tâches en bas à droite), on sélectionne : «Localhost» et la page d’accueil du serveur s’ouvre dans le navigateur. Les programmes que le serveur peut exécuter apparaissent sous la rubrique : «Your projects» et on y retrouve notre «Atom 1.3».
On suit les instructions (par validations successives, etc.), cela peut prendre un certain temps mais surtout ne toucher à rien pendant cette phase, et n’actualisez pas non plus la page même si l’étape semble longue (ce temps est nécessaire à Atom pour charger les données). Vient ensuite la page «ouverture de session» où on y entre les identifiants administrateur saisis plus haut lors du paramétrage.

Revenons maintenant à notre import CSV. Mon exemple de fichier CSV dont la première ligne était les éléments obligatoires de EAD n’a pas fonctionné. Nous sommes allés à la recherche d’un autre exemple sur un wiki de Qubit https://www.qubit-toolkit.org/wiki/CSV_import (c’est en anglais) où on explique qu’on doit au préalable normaliser les noms correspondant à ceux de AtoM. Et on nous fournit des exemples de fichiers disponibles. On se dit chic ! voilà qui mettra fin à notre essai d’import.

Je télécharge donc ce fichier CSV fourni par le wiki, il se présente sous forme zip (Example_information_objects_isad_csv.zip) et effectivement l'ordre des colonnes dans ce fichier semble être du même ordre que celui dans l'interface AtoM, à savoir les noms corrects dans des valeurs des cellules de la première ligne ce qui permet à AtoM pour importer des valeurs dans chaque colonne pour les champs AtoM.

legacyId;parentId;qubitParentSlug;identifier;title;creators;creatorHistories;creatorDates;creatorDatesStart;creatorDatesEnd;creatorDateNotes;levelOfDescription;extentAndMedium;repository;archivalHistory;acquisition;scopeAndContent;appraisal;accruals;arrangement;accessConditions;reproductionConditions;language;script;languageNote;physicalCharacteristics;findingAids;locationOfOriginals;locationOfCopies;relatedUnitsOfDescription;publicationNote;generalNote;subjectAccessPoints;placeAccessPoints;nameAccessPoints;descriptionIdentifier;institutionIdentifier;rules;descriptionStatus;levelOfDetail;revisionHistory;languageOfDescription;scriptOfDescription;sources;archivistNote;publicationStatus;physicalObjectName;physicalObjectLocation;physicalObjectType;culture
1;;;F1;Example Fonds;Test Creator 1|Test Creator 2;History of Test Creator 1|History of Test Creator 2;Dates for Creator 1|Dates for Creator 2;2000|2010;2001|2011;Date notes for Test Creator 1|Date notes for Test Creator 2;fonds;Example Fonds extent and medium;Example Repository;Example Fonds archival history;Example Fonds acquisition source;Example Fonds scope and content;Example Fonds appraisal;Example Fonds accruals;Example Fonds arrangement;Example Fonds conditions governing access;Example Fonds reproduction conditions;en|fr;en;Example Fonds language note;Example Fonds physical characteristics;Example Fonds finding aids;Example Fonds location of originals;Example Fonds location of copies;Example Fonds related units of description;Example Fonds publication note;Example Fonds general note;Subject 1|Subject 2;Place 1|Place 2;Name 1|Name 2;Example Fonds description identifier;Example Fonds institution identifier;Example Fonds rules and conventions;Final;Full;Example Fonds dates of creation, revision, and deletion;en|fr;;Example Fonds sources;Example Fonds archivist's notes;Published;Example Shelf;Example Shelf Location;Shelf;en

Le legacyId (première colonne) est soit disant utilisé pour associer des données existantes spécifiques aux données d’Atom en spécifiant les héritages (pour les relations parent/enfant) dans les cas où les données sont importées à partir de sources multiples et pour ne pas entrer en conflit (donc élément obligatoire).
Les autres éléments, parentId, qubitParentSlug, etc. sont propres aux erreurs lors de l'importation d’après le wiki...

On nous propose de créer une ligne vierge après la ligne du haut et remplir avec les valeurs de ce test.
Je teste une importation avec cet exemple et…pareil : macache bonnot !

Je crois que je vais laisser tomber l’import d’un CSV sur ICA-Atom à moins que quelqu’un d’entre vous n'y arrive, auquel cas je lui serai très reconnaissant de me montrer la tactique du gendarme.

Aucun commentaire: