Outils pour utilisateurs

Outils du site


td_histoire_numerique:exercice_4

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
td_histoire_numerique:exercice_4 [2016/01/05 18:20]
Francesco Beretta [Exploration du contenu encodé]
td_histoire_numerique:exercice_4 [2016/01/05 19:03]
Francesco Beretta [Exploration du contenu encodé]
Ligne 53: Ligne 53:
 ===== Exploration du contenu encodé ===== ===== Exploration du contenu encodé =====
  
-En appliquant la méthode présentée dans le [[td_histoire_numerique:​exercice_3#​transformation_des_textes_encodes_en_xml|troisième exercice]], nous avons copié le texte encodé dans le document ​+En appliquant la méthode présentée dans le [[td_histoire_numerique:​exercice_3#​transformation_des_textes_encodes_en_xml|troisième exercice]], nous avons copié le texte encodé dans le document ​"​liste_notices_BNF_annote_lieux_professions.odt"​ et nous l'​avons collé dans l'​objet 36 de la base de données, un objet digital intitulé "​Notices BNF avec annotation sémantique"​. Nous avons ensuite exécuté cette transformation:​ 
 +<code html>​SELECT vues.transformation_xml(36)</​code>​ 
 +qui produit le texte xml dans le champs "​texte_xml"​.
  
 +En combinant les requêtes XPath et SQL, on peut désormais explorer les textes encodés. Avec cette requête, par exemple, on peut chercher tous les concepts encodés, un par personne et année:
 +<code sql>
 +WITH tw1 AS
 +(
 +  SELECT UNNEST(xpath ('/​root/​ud',​t1.texte_xml)) ud,
 +         ​UNNEST(xpath ('/​root/​ud/​dat[1]/​@when',​t1.texte_xml)) annee
 +  FROM objets.objet t1
 +  WHERE t1.pk_objet = 36
 +),
 +tw2 AS
 +(
 +  SELECT ROW_NUMBER() OVER (ORDER BY 1)::INTEGER AS id_ud,
 +         ​(UNNEST(xpath ('//​en/​@ref',​tw1.ud))::​text) en,
 +         annee
 +  FROM tw1
 +)
 +SELECT DISTINCT id_ud,
 +       ​(en::​text)::​integer cle_objet,
 +       ​(annee::​text)::​integer annee,
 +       ​t1.nom
 +FROM tw2
 +  JOIN vues.vm_objet_vue_de_base t1
 +    ON t1.pk_objet = tw2.en::​integer
 +   AND t1.fk_type_objet_param = 4
 +ORDER BY annee,
 +         id_ud
 +</​code>​
 +
 +Les requêtes SQL peuvent être intégrées directement dans des scripts du logiciel R grâce à la bibliothèque "​RPostgreSQL"​. Dans le projet R ci-joint, on trouvera quelques exemples d'​exploration et de visualisation des données. Il faut d'​abord ajouter ses propres paramètres de connexion (adresse de la base de données, login et mot de passe) dans le document "​connexion_postgresql.R",​ puis exécuter ce script afin d'​ouvrir une connexion avec la base de données qui pourra ensuite être appelée depuis les autres scripts.
 +
 +Le script "​exploration_notices.R"​ permet d'​afficher un histogramme qui représente les générations de mathématiciens et astronomes avec un pas de 25 ans.
 +{{ :​td_histoire_numerique:​r_generations.jpg?​300 |}}
 +On constate ainsi que la portion des individus nés avant 1450 est très faible par rapport à l'​ensemble de la population.
td_histoire_numerique/exercice_4.txt · Dernière modification: 2016/03/03 10:26 par Francesco Beretta