Ci-dessous, les différences entre deux révisions de la page.
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:22] Francesco Beretta [Exploration du contenu encodé] |
td_histoire_numerique:exercice_4 [2016/01/05 18:27] Francesco Beretta [Exploration du contenu encodé] |
||
---|---|---|---|
Ligne 54: | Ligne 54: | ||
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: | 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(3)</code> | + | <code html>SELECT vues.transformation_xml(36)</code> |
qui produit le texte xml dans le champs "texte_xml". | 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> | ||