Discussion utilisateur:Guillaume.queruel

De Ecole normale de l'an III
Aller à : navigation, rechercher

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.).

Vérifié, dans le cas d'une modification du nom d'une page, qu'un import sur l'ancien nom impact bien la nouvelle...