Discussion utilisateur:Guillaume.queruel
Sommaire
- 1 Accès Huma-Num
- 2 MAJ des administrateurs
- 3 Petits rappels - notes formation
- 4 Import CSV
- 5 Vérifier si logs d'erreurs d'import
- 6 Menu volet gauche :
- 7 Comment le noms de pages ont-ils été transformés lors de l'import du XML ?
- 8 Etablir un liste précise et correctement encodée des noms de pages (celle tirée du XML n'est pas identique à celle présente sur le WIKI)
- 9 Où sont stockés les lois d'import ?
- 10 Comment importer des propriétés hors "Texte libre" ? Par exemple dans des formulaires ?
- 11 Pour lancer un runJobs
- 12 Pour plus tard:
- 13 Reste à faire
Accès Huma-Num
— lakanal-1795.huma-num.fr
- URL : http://lakanal-1795.huma-num.fr
- SSH/SFTP host: lakanal-1795.huma-num.fr login: lakanal passe: KDrUeEvV42FQDMwd
- Mysql host: mysqltwo.db.huma-num.fr user: lakanal db: lakanal passe: JheC9yLzjsAApvd5
- PhpMyAdmin http://mygrid.huma-num.fr/tools/myadmin_v2/ http://mygrid.huma-num.fr/tools/myadmin_v4/
MAJ des administrateurs
Repérage de la base MySQL de référence. Modification du compte Baciocchi avec droits d'admistration et administration SMW (nécessite semble t-il un délai).
Créer l'utilisateur dominique.julia@sfr.fr
user:Dominique.julia mdp:*******
Bases MySQL
- je n'ai pas touché la base lakanal
- j'ai copié la structure de la base dans lakanal_v1, lakanal_v2, lakanal_v3
- j'ai créé une base vide lakanal_master
- j'ai mis une copie de complète de la base lakanal en lakanal_old
--> On travaille donc sur Database: lakanal_v1 2016-2017
Création d'un identifiant unique pour les notices XML
Fichier DonnéesSemantiques_V2
Appariement des entrées d'index avec la liste prosopographique
Cas particuliers (no matching) Authier de Sisgaud, Jean Baptiste-Alexis d', élève (Le Puy) Benoist-Lamothe, François-Nicolas, élève (Sens) Compin, Antoine-Marie, dit Junius-Chalier, candidat Demurat, François, candidat Glo de Besses, Jean-Antoine de, élève Groote, Martin de, élève (Hazebrouck) Guillain-Desprez, Emmanuel-Marie, élève nommé Guillard de Beaurieu, Gaspard, élève Hennebert, Philippe, élève Le Normand, Germain, élève (Rouen) Leroux, élève (Tours) Lesuisse, élève (Gembloux, Belgique) Magnard, Benoît, élève Maurey, Jacques-Antoine de, élève Mengal, élève (Thuin, Belgique) Sommelier, Charles, élève (Arc/Saint-Jean-de-Maurienne)
Petits rappels - notes formation
Semantik Wiki - 22 septembre 2009
Penser les triplets : Catégories - Propriétés - Valeurs Lister une dizaine d'extensions pertinentes
Balises silencieuses, visibles, clickables ou pas. Coordonnées géographiques - pointage sur la carte Cassini (voir la possible adaptation de Semantik Map)
Réfléchir à la question du pointage sur les pétitions
Vendredi 19 février 2016
-- Wiki + bases de données (structured data)
-- tour de table.
-- présentation générale (dictionnaire des saints bretons)
SMW - une extension parmi d'autres de MW.
Semantiser les données
Commander le livre: Working with Mediawiki
Les propriétés - unité élémentaires. Pas besoin de les créer pour les utiliser.
Hiérarchie: Espace de nom / Catégorie / propriétés
-- question des doublons dans les valeurs des propriétés (property /traduit par: attributs)
--- Notices pour les propriétés à sémantiser.
--- travailler les types de chaque propriété.
Voir les modèle de sémantisation.
Requêter les erreurs.
Droits d'édition, de visualisation,
=== Créer la catégorie Requêtes, Poubelle ...
==== page d'exportation BDD.
==== subcategory = subproperty
==== DrillDown = dans la page de la catégorie.
Lundi 29 février 2016
Requêter les erreurs = à une valeur incorrecte
Importation progressive des propriétés et de leurs noms
Page (slide) 9.
Un modèle = une page dans l'espace de noms modèle. Un nouveau modèle. Créer une page dans l'espace de noms modèles.
Les paramètres nommés.
--- Réfléchir dispersion Elèves / Districts.
--- Valeurs multiples (plusieurs valeurs, séparées par des virgules)
--- Requêtes sur des BDD distantes: ExternalData
-- Liens entre des propriétés de catégories distinctes
ENCODAGE TEXTE DES FICHIERS : UTF-8
Pour les données prosopo cf. "Les propriétés Sémantiques"
Import CSV
Il faut créer un CSV à deux colonnes, la première intitulée "Titre" contenant le titre de la page (donc pour nous ici le nom de l'élève devant correspondre strictement à celui de la notice) et une colonne "Texte libre" dans laquelle on renseigne tous les couples Propriété=Valeur souhaités sous la forme (donc pour nous par exemple ou encore ). Ces couples peuvent être ou non séparés par des espaces ou mis à la suite, cela n'influe pas sur la bonne tenue de l'import et l'édition des propriétés.
Le moteur du SMediaWiki arrive sans problème à coupler les valeurs de la colonne "Titre" avec le titre des pages du CMS. L'ajout des couples "Propriété=Valeur" est invisible en consultation mais lorsqu'on souhaite éditer la page, on constate bien l'ajout des propriétés en toute fin de notice.
Lorsqu'on va à la page "Chercher les propriétés" les propriétés sont correctement listées.
Encodage, préparation du fichier CSV (expressions régulières) et modalités d'import.
Vérifier si logs d'erreurs d'import
Il semble possible de générer un log d'erreur et de le stocker dans l'arborescence du CMS mais je ne suis pas certain qu'il prenne en compte les erreurs d'import. https://www.mediawiki.org/wiki/Manual:How_to_debug/fr
Dans le cas des imports, j'ai l'impression qu'il n'y a que deux cas de figure : soit les données sont formatées correctement et les pages sont créées, soit elles ne le sont pas et l'import échoue en renvoyant un message suivant lequel le script PHP tombe sur autre chose qu'un objet DOM.
Menu volet gauche :
Pour modifier le volet de navigation de gauche, il faut aller à la page : MediaWiki:Sidebar et l'éditer. https://www.mediawiki.org/wiki/Manual:Interface/Sidebar
Comment le noms de pages ont-ils été transformés lors de l'import du XML ?
Dans les dossiers de l'extension DataTransfer, le script PHP DT_XMLParser.php qui transforme les espaces typographiques en underscore ("_"). Cette instruction est réutilisée pour les catégories, les modèles, etc. :
function in_pages( $parser, $name, $attribs ) {
$this->debug( "in_pages $name" ); $page_str = str_replace( ' ', '_', wfMessage( 'dt_xml_page' )->inContentLanguage()->text() ); if ( $name == $page_str ) { $title_str = str_replace( ' ', '_', wfMessage( 'dt_xml_title' )->inContentLanguage()->text() ); if ( array_key_exists( $title_str, $attribs ) ) { $this->mCurPage = new DTWikiPage( $attribs[$title_str] ); xml_set_element_handler( $parser, "in_page", "out_page" ); } else { $this->throwXMLerror( "'$title_str' attribute missing for page" ); return; } } else { $this->throwXMLerror( "Expected <$page_str>, got <$name>" ); }
return; }
Etablir un liste précise et correctement encodée des noms de pages (celle tirée du XML n'est pas identique à celle présente sur le WIKI)
Il semble que le moteur php du SMW remplace simplement les espaces typographiques par des underscores pour générer une url valide : Abadie Jean-Baptise devient Abadie_Jean-Baptiste. Il faudrait un moyen d'exporter toutes les urls du site mais je n'ai pas trouvé pour le moment. Il serait possible d'avoir une idée en éditant un CSV contenant le nom des pages telles que dans le fichier XML et le nom des pages sans espaces mais avec les "_" telles que dans le Wiki.
Où sont stockés les lois d'import ?
Les instructions PHP d'imports XML et CSV sont contenues dans les dossiers includes et specials de l'extension DataTransfer (mediawiki-1.26.?/extensions/DataTransfer) et sont appelées par le fichier maître DataTransfer.php (à la racine du dossier) :
Dans includes :
DT_importJobs.php
DT_Page.php
DT_PageStructure.php
DT_Utils.php
DT_XMLParser.php
Dans specials
DT_ImportCSV.php
DT_ImportSpreadsheet.php
DT_ImportXML.php
DT_ViewXML.php
Il semble possible de générer un log d'erreur et de le stocker dans l'arborescence du CMS mais je ne suis pas certain qu'il prenne en compte les erreurs d'import. https://www.mediawiki.org/wiki/Manual:How_to_debug/fr
Dans le cas des imports, j'ai l'impression qu'il n'y a que deux cas de figure : soit les données sont formatées correctement et les pages sont créées, soit elles ne le sont pas et l'import échoue en renvoyant un message suivant lequel le script PHP tombe sur autre chose qu'un objet DOM.
Comment importer des propriétés hors "Texte libre" ? Par exemple dans des formulaires ?
Je ne suis pas sûr que cela soit possible. Dans les supports de formation qui sont à notre disposition, le fichier XML pour import ne peut que comporter les balises Page, Modèle et Champ. J'ai tenté d'y placer une propriété fictive, ça n'a pas fonctionné.
Comment faire tableau avec propriétés
La création d'une page contenant un tableau des propriétés devra se faire en établissant un fichier XML. La syntaxe wiki des tableaux étant ce qu'elle est, il est compliqué de la générer en CSV (sauf à inclure des balises HTML en mode texte mais le fichier risque alors d'être très difficilement lisible). D'autre part, l'import en XML nous permet de contrôler l'encodage des caractères grâce à la déclaration XML. Il faudra constituer un fichier du type suivant :
<?xml version="1.0" encoding="UTF-8"?> <Pages>
<Page Titre="Tableau des élèves"> <Texte_libre id="1">== Tableau des élèves et de leurs propriétés == {|class="wikitable centre" | Nom de l'élève || Propriété1 || Valeur1 || Propriété2 || Valeur2 || Propriété3 || Valeur3 |--- | Nom de l'élève || Propriété1 || Valeur1 || Propriété2 || Valeur2 || Propriété3 || Valeur3 |} </Texte_libre> </Page>
</Pages>
Les entités HTML sont là pour assurer les sauts de ligne afin de générer la bonne syntaxe Wiki à la création de la page. Le reste peut ne constituer qu'une seule ligne pour peu que chaque champ soit séparé par deux "pipes" || (sur mon clavier Alt Gr + touche 6). Pour le reste de la syntaxe des tableaux, voir cette page : https://fr.wikipedia.org/wiki/Aide:Ins%C3%A9rer_un_tableau_(wikicode,_avanc%C3%A9)
Importation des données dans la Base de données. Le problème était celui de l'encodage. La solution est d'importer des fichiers XML (que sait gérer Access) plutôt que des fichiers CSV où la question de l'encodage est opaque. Trouver un convertisseur: http://www.convertcsv.com/csv-to-xml.htm
Category et Catégorie
Etablir la liste des categories / propreties utiles
Categories: Eleves, Prosopographie, Petitionnaires Districts
Pour lancer un runJobs
À partir d'un système Unix (Mac ou linux)
En ligne de commande, il faut se connecter en SSH à la base lakanal sur Huma-Num avec les identifiants adéquats :
ssh lakanal@lakanal-1795.huma-num.fr
Le mot de passe est demandé. Une fois qu'il est renseigné, nous avons accès aux dossiers du MediaWiki
Il suffit ensuite de naviguer jusqu'au dossier maintenance du CMS avec la commande "cd". La commande "ls" permet de lister les sous-dossier et fichiers présents si le besoin se présente.
À noter que nous ne sommes pas obligés de renseigner tout le chemin manuellement, la touche tab appelle l'autocomplétion (la détection automatique des noms de dossiers/fichiers existants).
cd www/web_main/w/maintenance/
On lance ensuite le script PHP runJobs.php (qui accélère la queue de traitement) avec :
php runJobs.php
À partir de Windows
C'est légèrement plus compliqué, nous renvoyons aux tutoriels et documentations en ligne : http://www.commentcamarche.net/faq/80-se-logguer-a-distance-avec-ssh-windows
Pour plus tard:
Régler la question de l'édition par visual editor du bloc Source (pbm de balise HTML: small)
Reste à faire
Faire une page pour le 17 novembre de requêtes sur des propriétés qui fonctionnent. Par exemple sur les refus. Veiller à l'affichage des résultats (la mise en page).
Constituer un ou deux fichiers (XML+CSV) qui contiennent les données correctement formatées pour import (category, propriétés, etc.).