Outils pour utilisateurs

Outils du site


td_histoire_numerique:creation_liste_notices_bnf

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 Les deux révisions suivantes
td_histoire_numerique:creation_liste_notices_bnf [2015/09/22 21:49]
Francesco Beretta
td_histoire_numerique:creation_liste_notices_bnf [2015/09/22 21:50]
Francesco Beretta
Ligne 1: Ligne 1:
-Revenir à l'​[[td_histoire_numerique:​exercice_2|exercices ​2]]+Revenir à l'​[[td_histoire_numerique:​exercice_2|exercice ​2]] 
 + 
 + 
 + 
 +==== Requête dans les données de la Bibliothèque nationale ==== 
 + 
 +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. 
 + 
 +<code sparql>​ 
 +PREFIX ​ egr:  <​http://​rdvocab.info/​ElementsGr2/>​ 
 + 
 +SELECT DISTINCT ​ ?s ?na ?fn ?annee ?pb ?gd ?bio 
 +WHERE 
 +  { { { SELECT DISTINCT ​ ?s ?bio 
 +        WHERE 
 +          {   { ?s egr:​biographicalInformation ?bio 
 +                FILTER ( contains(?​bio,​ "​mathém"​) || contains(?​bio,​ "​Mathém"​) ) 
 +              } 
 +            UNION 
 +              { ?s egr:​biographicalInformation ?bio 
 +                FILTER ( contains(?​bio,​ "​astrono"​) || contains(?​bio,​ "​Astrono"​) ) 
 +              } 
 +          } 
 +      } 
 +      ?s egr:​dateOfBirth ?bd 
 +      OPTIONAL 
 +        { ?s <​http://​xmlns.com/​foaf/​0.1/​name>​ ?na } 
 +      OPTIONAL 
 +        { ?s <​http://​xmlns.com/​foaf/​0.1/​familyName>​ ?fn } 
 +      OPTIONAL 
 +        { ?s egr:​placeOfBirth ?pb } 
 +      OPTIONAL 
 +        { ?s <​http://​xmlns.com/​foaf/​0.1/​gender>​ ?gd } 
 +    } 
 +    BIND(strbefore(strafter(str(?​bd),​ "​http://​data.bnf.fr/​date/"​),​ "/"​) AS ?annee) 
 +    FILTER ( ( ?annee > "​1100"​ ) && ( ?annee < "​1761"​ ) ) 
 +  } 
 +ORDER BY ?annee 
 +</​code>​ 
 + 
 +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 === 
 + 
 +    * 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 <​code>​=SI(ESTERREUR(CHERCHE("​-";​E2)) ; E2; CONCATENER(GAUCHE(E2;​2);"​51"​))</​code>​ 
 +    * 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}} 
td_histoire_numerique/creation_liste_notices_bnf.txt · Dernière modification: 2015/09/25 07:19 par Francesco Beretta