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

Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
td_histoire_numerique:creation_liste_notices_bnf [2015/09/22 21:48]
Francesco Beretta créée
td_histoire_numerique:creation_liste_notices_bnf [2015/09/22 22:32]
Francesco Beretta [Requête dans les données de la Bibliothèque nationale]
Ligne 1: Ligne 1:
-alsdkfj aslédkfj aséldkfj ​+Revenir à l'​[[td_histoire_numerique:​exercice_2|exercice 2]] 
 + 
 + 
 + 
 +==== Requête dans les données de la Bibliothèque nationale ==== 
 + 
 +La Bibliothèque nationale de France (BNF) a retranscrit une partie des informations que contiennent ses notices d'​autorité sous forme de données publiées sur le web avec des technologies dites du [[https://​fr.wikipedia.org/​wiki/​Web_s%C3%A9mantique|web des données ou web sémantique]]. Voir la [[http://​www.bnf.fr/​fr/​professionnels/​innov_num_web_donnees.html|documentation de ce projet]] et une présentation du [[http://​data.bnf.fr/​semanticweb|modèle de données]] adopté par la BNF. 
 + 
 +A titre d'​exemple,​ on peut comparer la [[http://​catalogue.bnf.fr/​ark:/​12148/​cb118976048/​PUBLIC|notice '​Nicolas Copernic'​ du catalogue général]] et celle mise à disposition dans le cadre du [[http://​data.bnf.fr/​11897604/​nicolas_copernic/​|projet web des données]]. 
 + 
 +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]]. 
 + 
 +\\ 
 +Il est donc désormais possible d'​interroger avec le langage SPARQL le point d'​accès des données de la BNF pour créer un ensemble de données tirées des notices d'​autorité.  
 + 
 +Pour ce faire, il faudra 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 présenté sous forme de table 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>​ 
 + 
 + 
 +Avec cette requête nous créons d'​abord une population d'​acteurs dont les notices biographiques de la BNF parlent de mathématiques ou d'​astronomie,​ puis nous ajoutons quelques propriétés de manière optionnelle,​ c'​est-à-dire qu'​elles peuvent être renseignées ou pas, concernant le nom, l'​année et le lieu de naissance. 
 + 
 +Grâce au filtre sur les années de naissance, la période étudiée va du début du 12e siècle jusqu'​à la deuxième moitié du 18e siècle. 
 + 
 +D'​ailleurs,​ sous le champs '​Requête'​ de l'​éditeur SPARQL de data.bnf.fr vous trouverez des exemples d'​autres requêtes qu'on peut effectuer. 
 +\\ 
 + 
 +==== Création et nettoyage du fichier à encoder ==== 
 + 
 +    * Revenez à la page de la '​Requête'​ et changer le '​Format du résultat'​ à CSV (comma-separated values) 
 +    * Re-exécutez la requête. En fonction du navigateur utilisé et de son paramétrage,​ deux cas de figure sont possibles:  
 +      * le texte séparé par virgule s'​affiche:​  
 +         * dans ce cas, sélectionnez toute la page du résultat et copiez-la copier dans le presse-papier 
 +         * ouvrez une nouvelle feuille de calcul dans le logiciel de tableur (Calc pour LibreOffice/​OpenOffice;​ Excel dans la suite Microsoft) 
 +         * collez avec collage spécial dans la première cellule de la feuille de calcul: A1 et choisir 'Texte non formaté'​. 
 +      * le texte du document au format CSV est proposé en téléchargement 
 +         * dans ce cas, enregistrez-le sur votre disque dur, dans un dossier du TD histoire numérique consacré à l'​exercice 2, 
 +    * Dans la boîte de dialogue qui s'​ouvre au moment de coller le contenu du presse-parier,​ ou lors de l'​ouverture du fichier enregistré,​ 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: <​code>​ =SI(ESTVIDE(B2);​C2;​B2)</​code>​ 
 +    * 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: <​code>​=SI(ESTVIDE(G2);​F2;​CONCATENER(G2;",​ ";​F2))</​code>​ 
 +    * Ajouter une colonne '​notice'​ après la colonne '​bio'​ et mettre dans toutes les cellules cette formule: <​code>​=CONCATENER(D2;"​ (";​H2;"​) ";​J2;"​ [";​A2;"​]"​)</​code>​ 
 +    * 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