Ceci est une ancienne révision du document !
Revenir à l'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'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.
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
Pour les intéressés, une présentation des concepts du web sémantique, dans le contexte du mouvement Open Data, se trouve 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
=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: liste_notices_BNF