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 18:27]
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>​
  
td_histoire_numerique/exercice_4.txt · Dernière modification: 2016/03/03 10:26 par Francesco Beretta