Outils pour utilisateurs

Outils du site


td_histoire_numerique:exercice_2

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_2 [2015/09/22 18:21]
Francesco Beretta
td_histoire_numerique:exercice_2 [2015/09/28 19:05]
Francesco Beretta [Annotation manuelle]
Ligne 1: Ligne 1:
 Revenir à la [[:​td_histoire_numerique:​accueil|page d'​accueil]]. Revenir à la [[:​td_histoire_numerique:​accueil|page d'​accueil]].
  
-===== Création du document à annoter =====+\\ 
  
-**Document ​à télécharger pour l'​exercice de mardi 22 septembre**:​ {{:​td_histoire_numerique:​liste_notices_bnf.ods|liste_notices_BNF}}+===== Documents ​à annoter =====
  
-==== Requête dans les données de la Bibliothèque nationale ​====+==== Création du deuxième document à annoter ​==== 
 +**Document à télécharger pour l'​exercice de mardi 29 septembre**:​ {{:​td_histoire_numerique:​liste_notices_bnf.ods|liste_notices_BNF.ods}}
  
-On interroge le point d'​accès SPARQL de la Bibliothèque nationale de France pour créer un ensemble de données tirées des notices d'​autorité. Ouvrir l'[[http://​data.bnf.fr/​sparql/​|Editeur SPARQL de data.bnf.fr]] et coller dans l'​espace Rêquete la requête qui suit, tout en laissant le format de sortie par défaut: HTML. Le résultat de la requête est ainsi mis en forme et peut être parcouru.+Les indications concernant ​la production du document se trouvent sur  **[[td_histoire_numerique:creation_liste_notices_bnf|cette page]]**.
  
-<​file>​ +Il s'agit maintenant le créer le document en format texte que nous allons annoter en introduisant une indexation sémantique. 
-PREFIX egr: <​http://​rdvocab.info/​ElementsGr2/>​+  * ouvrez le document '​liste_notices_BNF.ods'​ 
 +  * sélectionnez toutes les cellules de la colonne '​notice'​ sauf la première (qui contient le nom de la colonne). Pour sélectionner les cellules sélectionnez la première, appuyez sur la touche majuscule puis sélectionnez la dernière. 
 +  * collez le contenu du presse-papier dans un document texte vide (Writer) 
 +  * sauvegardez ce document sous le nom '​**liste_notices_BNF.odt**'
  
-SELECT DISTINCT ?s ?na ?fn ?annee ?pb ?gd ?bio+\\
  
-WHERE+Nous disposons donc de <​html><​span style="​color:​red;​font-weight:​bold;">​deux documents à annoter</​span></​html>​ : {{:​td_histoire_numerique:​liste_notices_bnf.odt|celui que nous venons de produire}} et celui que nous avons téléchargé pour le premier exercice (il est {{:​td_histoire_numerique:​notices_texte_brut.odt|téléchargeable ici}}).
  
-{ { { SELECT DISTINCT ?s ?bio+\\
  
-WHERE+===== Principes d'​annotation =====
  
-{ { ?s egr:biographicalInformation ?bio+L'​annotation sémantique des textes utilise les principes de l'​[[https://​fr.wikipedia.org/​wiki/​Extensible_Markup_Language|encodage en format XML]], selon les recommandations de la [[http://​www.tei-c.org/​|Text encoding initiative]],​ en les appliquant de manière simplifiée.
  
-FILTER ( contains(?​bio,​ "​mathém"​) || contains(?​bio,​ "​Mathém"​) )+==== Balises ====
  
-}+|{ud0}TTT{/ud} |  unité documentaire |  tei:div |Au dessus du niveau paragraphe, enveloppe un paragraphe | 
 +|  {eud}TTT{/​eud} |  en-tête d'​unité documentaire |  tei:head |A placer toujours au début d'une unité documentaire pour disposer d'un titre | 
 +|  {seg}TTT{/​seg} |  segment |  tei:seg |Au dessous du niveau paragraphe, toujours à l'​intérieur d'un paragraphe, regroupe en règle générale plusieurs propositions. | 
 +|  {co0}TTT{/​co} |  contenu |  tei:seg | Identifie dans le texte une unité de connaissance de type '​contenu'​ | 
 +|  {in0}TTT{/​in} |  information |  tei:seg |Identifie dans le texte une unité de connaissance de type '​information'​ | 
 +|  {en0}TTT{/​en} |  entité nommée |  tei:name |Identifie dans le texte une chaîne de caractères qui représente le nom d'un objet  | 
 +|  {ro0}TTT{/​ro} |  référence à un objet |  tei:rs |Identifie dans le texte une chaîne de caractères qui se réfère à un objet sans être son nom  | 
 +|  {dat}TTT{/​dat} |  date |  tei:date |Une chaîne de caractéres qui représente une date dans n'​importe quel format ​ |
  
-UNION+Dans l'​espace de noms du TD, le nom des balises possède deux caractères si la balise est susceptible d'​être associée à un objet de la base de données, trois si cette possibilité est exclue. ​   \\ Pour les balises à deux lettres, un 0 est ajouté si la référence à un objet dans la base de données est omise. Au cas contraire, on remplace le 0 par l'​identifiant de l'​objet dans la base de données.
  
-{ ?s egr:​biographicalInformation ?bio+==== Types ====
  
-FILTER ( contains(?​bio"​astrono"​) || contains(?​bio"​Astrono"​) )+On peut ajouter un sigle sur deux caractères aux balises '​en'​ et '​ro'​après le 0 ou l'​identifiant numérique de l'​objetqui indique quel est le type de l'​objet visé.
  
-}+|  ai |  Acteur [individuel] | 
 +|  ac |  Acteur collectif | 
 +|  oa |  Objet abstrait | 
 +|  cs |  Caractère social | 
 +|  om |  Objet matériel | 
 +|  bi |  Bibliographie | 
 +|  ud |  Unité documentaire | 
 +|  od |  Objet digital | 
 +|  li |  Lieu | 
 +|  im |  Immeuble |
  
-}+Par exemple: {en0cs}mathématicien{/​en}
  
-}+\\ 
 +Si on souhaite spécifier un type sous forme d'un objet abstrait qu'on crée dans la base de données, on ajoutera l'​identifiant de l'​objet après un tiret bas.
  
-?s egr:dateOfBirth ?bd+Par ex.:\\ 
 +{seg_23}Érudit et collectionneur français{/​seg}
  
-OPTIONAL+Dans la base de données, l'​objet 23 serait defini en tant que '​notice biographique succincte'​. Avec ce procédé on peut indexer et qualifier au point de vue sémantique toute portion de texte.
  
-{ ?s <​http://​xmlns.com/​foaf/​0.1/​name>​ ?na }+\\ 
 +==== Dates ====
  
-OPTIONAL+Nous utilisons pour les dates le [[https://​fr.wikipedia.org/​wiki/​ISO_8601|format ISO 8601]]. ​   \\ 
 +On saisira les dates sous forme de texte au format ISO 8601, ce qui permet de traiter les dates tronquées (seulement l'​année,​ ou seulement l'​année et le mois, etc.)
  
-?s <​http://​xmlns.com/​foaf/​0.1/familyName>​ ?fn }+ \\ Mise en forme des dates :    \\  \\ {dat20001101} le premier novembre de la dernière année du siècle précédent{/dat}
  
-OPTIONAL+\\
  
-{ ?s egr:​placeOfBirth ?pb }+=== Types de dates ===
  
-OPTIONAL+On peut ajouter après la date, en la séparant par un tiret bas, une précision sous forme de sigle à deux caractères qui indique quel est le type de date:
  
-{ ?s <​http://​xmlns.com/​foaf/​0.1/​gender>​ ?gd }+|  dd |  Date de début | 
 +|  df |  Date de fin | 
 +|  di |  Date intermédiaire | 
 +|  du |  Date unique |
  
-}+\\
  
-BIND(strbefore(strafter(str(?​bd),​ "​http://​data.bnf.fr/​date/"​),​ "/"​) AS ?annee)+=== Incertitude concernant les dates ===
  
-FILTER ( ( ?annee> "​1100"​ ) && ( ?annee <"​1761"​ ) )+On peut ajouter également, à la suite de la date, un caractère qui indique le degré de précision de la date
  
-}+|  [e] |  Date exacte | Ce caractère est omis car il s'agit de degré de précision par défaut | 
 +|  r |  Date reconstituée |Date qu'on a pu reconstituer à partir du contexte | 
 +|  p |  Date postulée | Date qu'on fixe pour disposer d'un point d'​ancrage dans le temps à défaut d'en savoir plus |
  
-ORDER BY ?annee +Il était en fonction au {dat20001115r_di} milieu du mois de novembre de la dernière année du siècle précédent{/dat}.
-</file>+
  
-Pour les intéressés,​ une présentation des concepts du web sémantique,​ dans le contexte du mouvement //Open Data//, se trouve [[http://​phn-wiki.ish-lyon.cnrs.fr/​doku.php?​id=thatcamp_2014:​session_thatcamp2014|sur cette page]].+\\
  
-=== Création et nettoyage du fichier à encoder ​===+===== Annotation de documents =====
  
-    * Revenir à la page de la '​Requête'​ et changer le '​Format du résultat'​ à CSV (comma-separated values) 
-    * Reexécuter al requête, sélectionner toute la page du résultat et la copier dans le presse-papier 
-    * Ouvrir une nouvelle feuille de calcul dans le logiciel de tableur (Calc pour LibreOffice/​OpenOffice;​ Excel dans la suite Microsoft) 
-    * Coller avec collage spécial dans la première cellule de la feuille de calcul: A1 et choisir 'Texte non formaté'​. 
-      * Dans la boîte de dialogue mettre '​Virgule'​ comme séparateur 
-      * Mettre le 'Type de colonne':'​Texte'​ pour la colonne '​annee'​ 
-      * Importer et vérifier le résultat 
-    * Sauvegarder le nouveau fichier avec le nom '​liste_notices_BNF'​ au format .ods ou .xls 
- 
-    * Ajouter une colonne avant la colonne '​annee'​ qu'on va appeler '​nom'​ 
-    * Dans la première cellule qui contient les données insérer la formule: =SI(ESTVIDE(B2);​C2;​B2) 
-    * Copier-coller cette formule dans toutes les cellules de la colonne sauf la première ligne 
-    * Ajouter une colonne annee_mediane après la colonne année 
-    * Insérer dans toutes les cellules de cette colonne la formule =SI(ESTERREUR(CHERCHE("​-";​E2)) ; E2; CONCATENER(GAUCHE(E2;​2);"​51"​)) 
-    * Ajouter une colonne '​naissance'​ avant la colonne '​gd'​ (gender) et mettre cette formule dans toutes les cellules: =SI(ESTVIDE(G2);​F2;​CONCATENER(G2;",​ ";F2)) 
-    * Ajouter une colonne '​notice'​ après la colonne '​bio'​ et mettre dans toutes les cellules cette formule: =CONCATENER(D2;"​ (";​H2;"​) ";​J2;"​ [";​A2;"​]"​) 
-    * Trier les données d'​après les colonnes '​annee_mediane'​ et '​nom'​ 
- 
-On obtient ce résultat: {{:​td_histoire_numerique:​liste_notices_bnf.ods|liste_notices_BNF}} 
- 
-===== Annotation du document ===== 
  
 ==== Fonctionnalité '​Rechercher et remplacer'​ ==== ==== Fonctionnalité '​Rechercher et remplacer'​ ====
Ligne 106: Ligne 113:
     * [[https://​books.google.com/​ngrams/​graph?​content=Galileo+Galilei,​Cartesio,​Descartes,​Copernico,​Copernicus,​Kopernik&​year_start=1800&​year_end=2000&​corpus=22&​smoothing=3&​share=&​direct_url=t1;,​Galileo Galilei;,​c0;​.t1;,​Cartesio;,​c0;​.t1;,​Descartes;,​c0;​.t1;,​Copernico;,​c0;​.t1;,​Copernicus;,​c0;​.t1;,​Kopernik;,​c0|Google NGram viewer]] – explication : [[https://​fr.wikipedia.org/​wiki/​Ngram_Viewer|Ngram Viewer]]     * [[https://​books.google.com/​ngrams/​graph?​content=Galileo+Galilei,​Cartesio,​Descartes,​Copernico,​Copernicus,​Kopernik&​year_start=1800&​year_end=2000&​corpus=22&​smoothing=3&​share=&​direct_url=t1;,​Galileo Galilei;,​c0;​.t1;,​Cartesio;,​c0;​.t1;,​Descartes;,​c0;​.t1;,​Copernico;,​c0;​.t1;,​Copernicus;,​c0;​.t1;,​Kopernik;,​c0|Google NGram viewer]] – explication : [[https://​fr.wikipedia.org/​wiki/​Ngram_Viewer|Ngram Viewer]]
  
-==== Principes d'​annotation ====+\\
  
-Le principe de l'​[[https://​fr.wikipedia.org/​wiki/​Extensible_Markup_Language|encodage en format XML]] mais de manière simplifiée.+==== Annotation manuelle ====
  
-=== Balises ===+Une pratique efficace :​ 
 +  * sélectionner le texte à annoter, par ex. une entitée nommée 
 +  * ouvrir la boîte de dialogue Chercher/​Remplacer et activer les expressions régulières 
 +  * entourer la chaîne recherchée avec une parenthèse ronde : ( ) 
 +  * utiliser les chaînes de remplacement précédemment utilisées, tout en mettant le bon objet, par ex. {en789}$1{/​en}
  
-|{ud0_}TTT{/​ud} |  unité documentaire |  tei:div |  Au dessus du niveau paragraphe, enveloppe un paragraphe | 
-|  {eud}TTT{/​eud} |  en-tête d'​unité documentaire |  tei:head |  A placer toujours au début d'une unité documentaire pour disposer d'un titre | 
-|  {seg}TTT{/​seg} |  segment |  tei:seg |  Au dessous du niveau paragraphe, toujours à l'​intérieur d'un paragraphe, regroupe en règle générale plusieurs propositions. | 
-|  {co0}TTT{/​co} |  contentu |  tei:seg |  | 
-|  {in0}TTT{/​in} |  information |  tei:seg |  | 
-|  {en0}TTT{/​en} |  entité nommée |  tei:name |  | 
-|  {ro0}TTT{/​ro} |  référence à un objet |  tei:rs |  | 
-|  {dat}TTT{/​dat} |  date |  tei:date |  | 
  
-Dans l'​espace ​de noms du TD, le nom des balises possède deux caractères si la balise est susceptible d'​être associée à un objet de la base de données, trois si cette possibilité est exclue. ​  \\ Pour les balises à deux lettres, un 0 est ajouté si la référence à un objet dans la base de données est omise.+=== Chercher toutes les annotations afin de les mettre en couleur ou de les supprimer ===
  
-=== Types ===+  * Rechercher: ​ \{[a-zA-Z_/​0-9]*\} 
 +  * Rechercher: ​ (\{[a-zA-Z0-9_/​]*\}) – Remplacer: $1 [avec indication du format dans le champs remplacer]
  
-On peut également ajouter un sigle sur deux caractères indiquant le type d'​objet après le chiffre.+\\
  
-|  ai |  Acteur [individuel] | +==== Annotation semi-automatique ====
-|  ac |  Acteur collectif | +
-|  oa |  Objet abstrait | +
-|  cs |  Caractère social | +
-|  om |  Objet matériel | +
-|  bi |  Bibliographie | +
-|  ud |  Unité documentaire | +
-|  od |  Objet digital | +
-|  li |  Lieu | +
-|  im |  Immeuble |+
  
-Par exemple: {en0cs}mathématicien{/​en} 
- 
-=== Dates === 
- 
-Nous utilisons pour les dates le [[https://​fr.wikipedia.org/​wiki/​ISO_8601|format ISO 8601]]. ​  \\ 
-On saisira les dates sous forme de texte au format ISO 8601, ce qui permet de traiter les dates tronquées (seulement l'​année,​ ou seulement l'​année et le mois, etc.) 
  
- \\ Mise en forme des dates :   ​\\ ​ ​\\ ​{dat20001101le premier novembre de la dernière ​année du siècle précédent{/​dat}+  * Créer ​des unités documentaires,​ une par notice 
 +     * Chercher   ​Remplacer : ​\n{/ud}\n{ud0}\n 
 +     * Ajouter la première et la dernière ​balise
  
-|  dd |  Date de début | +  * Annoter les dates de naissance 
-|  ​df |  Date de fin | +     * Chercher : (,\s|\()(\d{4})(\)) ​ Remplacer : ​ $1{dat$2}$2{/dat}$3 
-|  di |  Date intermédiaire | +     * Avec cette expression on devrait trouver presque exclusivement les dates de naissance
-|  du |  Date unique | +
- +
-|  [e] |  Date exacte | +
-|  r |  Date reconstituée | +
-|  p |  Date postulée | +
- +
-Il était en fonction au {dat20001115r_dimilieu du mois de novembre de la dernière année du siècle précédent{/dat}. +
- +
-\\+
  
 +  * Chercher les lieux de naissance
 +     * Chercher : ​ (\s\()([\w\s\(\),'​\?​]*)(,​\s\{) ​ Remplacer :​ $1{en0li}$2{/​en}$3
td_histoire_numerique/exercice_2.txt · Dernière modification: 2019/10/07 09:15 par Francesco Beretta