- Ressources utiles pour les cours du 22 novembre 2023
- Ressources utiles pour les cours du 29 novembre 2023
- Ressources utiles pour les cours du 6 décembre 2023
- Ressources utiles pour les cours du 13 décembre 2023
- Ressources utiles pour les cours du 10 janvier 2024
- Ressources utiles pour les cours du 17 janvier 2024
- Ressources utiles pour les cours du 24 janvier 2024
- Ressources utiles pour les cours du 31 janvier 2024
Exemples des Githubes Pages des étudiants du cours "Analyse et visualisation de données" des années précédantes :
- Julien : https://caiusjuliuscaesar.github.io/Examen-Dataviz/
- Mélanie : https://melanief11.github.io/examen_ACourtin_datavisualisation__2022/
- Romain : https://romain241.github.io/Examen/
- Maryna : https://maryna-stetsenko.github.io/examen_datavisualisation/
- Hafsa : https://hs-95.github.io/projetDataviz_M2_DEFI_2023_SALKA/
- Visionner la conférence TedX de Samuel Goëta intitulée Pour une culture critique des données
- Visionner la conférence TED de Tim Berners-Lee de 2009
- édition collaborative du répertoire des plateformes territoriales de données
- Datactivist - Recensement des données ouvertes des communes
- Accéder à la plateforme opendata du Ministère de la culture
- Accéder à la plateforme open data nationale
- Breve
- WTF CSV
- Accéder à Transformy : petit outil en ligne pour modifier le format d'un jeu de données (fonctionne plus 😩 )
- tutoriel de l'utilisation de regex dans openOffice : https://www.lucaswillems.com/fr/articles/25/tutoriel-pour-maitriser-les-expressions-regulieres
- vidéo en français : https://www.youtube.com/watch?v=dinW2QTSNl4&t=220s
- PLateforme pour tester des regex : https://regex101.com/
- Télécharger le fichier pour l'exercice n°1 sur la qualité des données
- Télécharger à la version allégée du sprint qualité (faire un export)
- Télécharger une grille des 120 points de contrôls du sprint qualité (faire un export)
- Télécharger le guide qualité complet
- Guide qualité d'Etalab : https://guides.etalab.gouv.fr/qualite/
- Plateforme http://schema.data.gouv.fr/
- Pour valider des fichiers à partir de schémas nationaux proposés par Etalab et qui permet de créer un fichier CSV en vous assurant qu'il est conforme à un schéma, c'est-à-dire que ses données sont complètes, valides et structurées : https://publier.etalab.studio/
- Accès aux jeux de données de référence : https://www.data.gouv.fr/fr/pages/spd/reference/
- Gallery of Physical Visualizations, liste chronologique et contributive de visualisations physiques de données qui expose les artefacts tangibles réalisés depuis les mésopotamiens
- Data Humanism, the Revolution will be Visualized, une critique des dataviz par Giorgia Lupi
- Data visualization and the modern imagination, exposition virtuelle de la librairie de Stanford
- Mickaël Friendly, Milestones in the history of thematic cartography,statistical graphics, and data visualization
- Grandjean, Martin "La visualisation de données, entre usages démonstratifs et heuristiques", in Bohet, Baptiste et Pringuet, Virginie, Les devenirs numériques des patrimoines, Editions de la Maison des sciences de l'homme, Paris, 2022, pp. 199-217. https://serval.unil.ch/resource/serval:BIB_5AE22468AE80.P001/REF.pdf
- D'ou vient la visualisation de données : http://www.corp-lab.com/researchsabatier/wp-content/uploads/2016/03/PosterHistoireDatavizHD.jpg
- Infoviz Vintage > board pinterest : https://fr.pinterest.com/antoinecourtin/infoviz-vintage
- Tufte's Rules : les 10 règles d'Edward Tufte (en flash 😱)
- Ressources/catalogues de visualisation de données
- 2 exemples pour l'émergence dataviz depuis 2015
- Quelques exemples sur des donnée culturelles de l'INHA
- Vidéos courtes
- David McCandless, The Beauty of data visualization, conférence TED, 2010
- Giogia Lup, How we can find ourselve in data conférence TED, 2017
- Vidéos longues :
- David Bianic, l'art des données, des données comme médium, Conférence Lundis Numérique, 2019
- Marian Dörk, Watch & Wander: Interactive Visualizations of Cultural Heritage Data, Conférence Lundis Numérique, 2019
- Autres vidéos :
- Martin Grandjean, Historical Network Analysis - An Introduction
- Data Journalism: Build Trust in Media - Breakout sessions, workshop de Karen Bastien, 2020
- exemple de répertoire vide : https://github.com/antoinecourtin/exemplePagesDEFI2022 / https://antoinecourtin.github.io/exemplePagesDEFI2022/
- Page de Gihtub Pages : https://pages.github.com/
- liste des thèmes supportés : https://pages.github.com/themes/
- la documentation complète : https://docs.github.com/en/pages
- Documentation syntaxe markdown : https://docs.github.com/fr/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#task-lists
- Comprendre Git en 7 minutes : https://www.jesuisundev.com/comprendre-git-en-7-minutes/
- Vidéo pour créer un 8 min une première page ave Github Pages : https://www.youtube.com/watch?v=BA_c3bGQXlQ
Pour la semaine prochaine : avoir tous un répertoire github avec un fichier index.md avec le titre de votre projet (même fictif) et un fichier .yml
- pour accéder à l'application : http://hdlab.stanford.edu/palladio-app/#/upload
- Palladio et cartes anciennes
- Rectifier des cartes avec Mapwraper
- exemple d'URL Tiles : https://mapwarper.net/maps/tile/35217/{z}/{x}/{y}.png ; https://mapwarper.net/maps/tile/35854/{z}/{x}/{y}.png ;
- tutoriel pour geomapper une carte ancienne numérisée et l'utiliser dans palladio
- Palladio et wikidata :
- URL du SPARLEndpoint de Wikidata pour utiliser Palladio https://query.wikidata.org/bigdata/namespace/wdq/sparql
- exemple de requête que l'on peut jouer de wikidata dans Palladio :
SELECT distinct ?creator ?creatorLabel ?datebirth ?datedeath ?placebirthLabel (CONCAT(STR(?lat),", ",STR(?long)) as ?lat_long) ?placedeathLabel (CONCAT(STR(?lat_2),", ", STR(?long_2)) as ?lat_long_2)
WHERE {
?creator wdt:P106 wd:Q1028181;
p:P570/psv:P570 [
wikibase:timeValue ?date;
wikibase:timePrecision ?precision
].
FILTER("1500-12-31"^^xsd:dateTime < ?date && ?date < "1600-00-00"^^xsd:dateTime).
FILTER(?precision >= 9).
BIND(YEAR(?date) AS ?year).
?creator wdt:P19 ?placebirth. # lieu de naissance
?creator wdt:P569 ?datebirth.
?creator wdt:P570 ?datedeath.
?placebirth wdt:P625 ?coord.
?placebirth p:P625 ?declaration.
?declaration psv:P625 ?coord_geo.
?coord_geo wikibase:geoLatitude ?lat.
?coord_geo wikibase:geoLongitude ?long.
?creator wdt:P20? ?placedeath.
?placedeath wdt:P625 ?coord_death.
?placedeath p:P625 ?declaration2.
?declaration2 psv:P625 ?coord_geo_2.
?coord_geo_2 wikibase:geoLatitude ?lat_2.
?coord_geo_2 wikibase:geoLongitude ?long_2.
SERVICE wikibase:label {
bd:serviceParam wikibase:language "fr,en"}
}
- jeux de tests :
- télécharger le paquet json : data_RETIF_HdF_2017_all_Palladio.json
- télécharger un fichier csv : Export_EnvoisdeRome_oeuvres_20190325.csv
- télécharger un fichier csv des oeuvres vidéo conservées aux MOMA : corpus_moma_video_US.csv
- Lien de téléchargement : openrefine
- plugins
- Par défaut OpenRefine utilisera 1,4 Go de mémoire vive au maximum. Si la machine dispose d’assez de mémoire il est fortement conseillé d’augmenter ce seuil en modifiant un fichier de configuration. Sous Windows : dans le fichier refine.ini, modifier la ligne REFINE_MEMORY, Sous Mac : ouvrir le fichier ‘/Applications/OpenRefine.app/Contents/info.plist’ et modifier la valeur -Xmx1400 (par ex: -Xmx4000 pour doubler la mémoire maximale)
- La bible : https://openrefine.org/docs
- Mathieu Saby, Tutoriel OpenRefine 3.4 : nettoyer, préparer et transformer des données - 06/11/2020
- Les supports de cours de Mathieu Saby sur Slideshare https://fr.slideshare.net/27point7/nettoyer-et-prparer-des-donnes-avec-openrefine
- L'article en ligne de Maïwenn Bourdic, régulièrement mis à jour (voir le sommaire à la fin de l'article) https://patrimoine-et-numerique.fr/tutoriels/52-36-openrefine-excel-aux-hormones-pour-nettoyage-de-donnees
- Tuto sur bibliopedia https://www.bibliopedia.fr/wiki/OpenRefine_:_exemples
- Adresse pour paramétrer l'outil de réalignement avec wikidata dans OpenRefine https://tools.wmflabs.org/openrefine-wikidata/fr/api
- APrès un alignement, pouvoir créer dans une colonne dédié l'id ou le name : cell.recon.match.id / cell.recon.match.name
- Télécharger le fichier de la démonstration : export de la base de collection du Powerhouse Museum de Sydney pour les catégorie models
- Jeux de données pour openrefine : chocolat.csv
- Autres corpus : https://github.com/Humanistica/ArtDesignDH/tree/master/corpus
- Et bien sur tout les jeux de données des plateforme OpenData !
- rajouter une valeur fixe à une table : "valeur que tu veux ajouter" + cells['nom_delacolone'].value`
- exemple pour faire un rechercher/remplacer :
value.replace("MotRecherché","MotLeRemplaçant")
- effectuer plusieurs modifications en un seul passage :
value.replace("~", "").replace(",","")
value.replace("\"", "")
. Le caractère \ est un caractère d'échappement, il permet d'indiquer à OpenRefine qu'il doit utiliser le guillemet comme caractère à remplacer et non pas comme élément de la fonction value.replace.- Enlever tout sauf les chiffres" :
replace(value,/[[a-z],[A-Z],(é|è|à|ù),\,\;\:\.\?\/\!\=\+\"\'\-\(\)\[\]]/,"")
- Extraction d'une date de type aaaa :
value.match(/.*(\d{4}).*/)[0]
- Supprimer les contenus semblables dans une même cellule :
value.split(", ").uniques().join(", ")
- comparer les valeurs de 2 colonnes :
- via "Add column" >
if(cells["a"].value == cells["b"].value, "Yes", "No")
- via une construction de facet dans Facet > Custom text facet avec l'expression
value == cells["b"].value
- via "Add column" >
- géocodage avec adresse.data.gouv.fr > https://goo.gl/P3sqsB
- Calculer des longueurs de chaînes :
value.length()
- Récupérer les info des parenthèses dans une chaine de charactère :
value.match(/.*(\(.*\)).*/)[0]
- Compter les mots d'une chaîne :
value.split(/\b/).length()
- Supprimer les espaces superflus d'une chaîne :
value.trim()
- L'apostrophe est un caractère utilisé dans les formules ; lorsqu'il est utilisé dans du contenu, il faut utiliser un "caractère d'échappement" pour qu'il soit correctement considéré, en l'occurrence le faire précéder de \ value.replace('d'honorable','de ')
- Comparer les valeurs de 2 colonnes en insérant une colonne Yes/No : ajouter une colonne en fonction de cette colonne
if(cells["site officiel"].value == cells["website_url"].value, "Y", "N")
- Ajouter un numéro incrémenté avec un préfix :
Clic sur une colonne / Ajouter une colonne en fonction de cette colonne / "numid__" + rowIndex
- Transformer des caractères spéciaux HTML (ex: é) : Edit cells > Common transform > Unescape HTML entities
- extration des parenthèse :
value.match(/.*(\(.*\)).*/)[0]
- extraction d'une date de type "12 janvier 1987" :
value.match(/.*(\d{2} [a-z]* \d{4}).*/)[0]
- Enlever tous les chiffres dans les cellules :
replace(value, /\d/, '')
- appeler une API via la fonction Fetching URL:
"http://maps.google.com/maps/api/geocode/json?sensor=false&address=" + escape(value, "url")"
- Extraitre une info dans un json (lattitude) issue d'une requête à une API :
value.parseJson().results[0].geometry.location.lat
- Extraire l'id (ou le nom du Q) de wikidata après le réalignement:
cell.recon.match.id / cell.recon.match.name
- Template pour croiser 2 jeux de données =
cell.cross(otherProject, columnToMatch)[0].cells[columnToAdd].value
- Template pour croiser 2 jeux de données mais avec x valeurs à récupérer pour un même id :
forEach(cell.cross("Fichier1", "cle"),r,forNonBlank(r.cells["colonnearecuperer"].value,v,v,"")).join("|")
. Dans cet exemple, le pipe est le séparateur - Pour récupérer le label natif d'un élément Qwikidata après reconciliation : native label
- pour exporter en geojson : https://gist.github.com/psychemedia/53e30d3d151fea23af68
- pour appeler une API tel que geonames : http://api.geonames.org/search?name=paris&country=FR&maxRows=3&username=formationbulac1
- Télélcharger le jeux de données (fichier à corrgier/reconcilier et le fichier de référence) : https://filesender.renater.fr/?s=download&token=7410568d-6b8f-4fa7-9563-ee3b431f02c8
- Télécharger http://okfnlabs.org/reconcile-csv/
- placer le fichier .jar dans un répertoire avec votre jeux de données en csv de référence
- lancer la commande dans le terminal : java -Xmx2g -jar reconcile-csv-0.1.2.jar query.csv cityLabel population
- Dans OP, ajouter un service de reconciliation : http://localhost:8000/reconcile
- Lancer la reconciliaton, vérifier le matching
- pour récupérer une info : cell.recon.match.id
- TUTO : “Reconcilier” une liste de nom d’architectes avec Wikidata en utilisant OpenRefine : https://medium.com/@seeksanusername/reconcilier-une-liste-darchitecte-avec-wikidata-en-utilisant-openrefine-16819fbb2903
- TUTO : Exploiter/visualiser/explorer un corpus issue de l’OAI-PMH grâce au duo OpenRefine/Palladio https://medium.com/@seeksanusername/exploiter-visualiser-explorer-un-corpus-issue-de-loai-pmh-gr%C3%A2ce-au-couple-openrefine-palladio-1241323cf626
- Exploiter des cartes anciennes numérisées - Trucs et astuces (avec du Mapwarper, Palladio, umaps) https://medium.com/@seeksanusername/exploiter-des-cartes-anciennes-num%C3%A9ris%C3%A9es-99d4ffc7788a
- Télécharger le fichier de la démonstration : export de la base de collection du Powerhouse Museum de Sydney pour les catégorie models
- Jeux de données pour openrefine : chocolat.csv
- Mathieu Saby, Tutoriel OpenRefine 3.4 : nettoyer, préparer et transformer des données - 06/11/2020
- Exemple de process à partir du fichier LieuxRepOrsay2-peinture-extract-csv.csv pas à pas
- Objectif : à partir d'un export d'une base de collection du musée d'Orsay de visualiser sur une carte quels sont les lieux qui ont été représentés.
- wikidata : https://www.wikidata.org/wiki/Wikidata:Main_Page
- SPARQLendpoint : https://query.wikidata.org/
- Mix'n'Match : https://tools.wmflabs.org/mix-n-match/#/
- reasonator : https://tools.wmflabs.org/reasonator/
- exemple d'item wikidata avec des sources identifiées :
- Les hommes politiques qui ont un père musicien : http://tinyurl.com/y9qwo3pw
- Quel est le nom de politiciens dans le monde entiers qui sont décédés d’un cancer ? : tinyurl.com/ydgg8rsb
- les cancers les plus meurtriers pour les politiciens français : tinyurl.com/y7zda83s
- Récupérer les différentes langues et identifiants pour des architectres : https://w.wiki/4e2A
- les cancers les plus meurtriers pour les politiciens français : http://tinyurl.com/y7zda83s
- exemple d'identifiant qui possède des déclarations positionnées sur une image : https://www.wikidata.org/wiki/Q14619165
- URL de base : https://tools.wmflabs.org/mirador/?manifest=https://tools.wmflabs.org/wd-image-positions/iiif/Q???/P18/manifest.json
- Mettre à la place de ???, 'élément d'une oeuvre de votre choix pour qui P18 a été renseignée * Dans Mirador, cliquer sur les petites bulles pour les zones
- exemple de Q à utiliser : 1231009 ; 14619165 ; 21013224
- outil qui permet de d'avoir les positions de zones de l'image pour ensuite alimenter wikidata https://zone47.com/crotos/lab/cropper/
- exemple pour afficher les motifs avec coordonnées IIIF (le baiser) : https://zone47.com/crotos/lab/cropper/p180iiif.php?q=7307
- requête SPARQL pour afficher les céramiques grecques antiques du musée Saint-Raymond ayant un id d'objet dans AGORHA
select DISTINCT ?objet ?objetLabel ?img ?idAgorha
where {
?objet wdt:P31/wdt:P279* wd:Q738680. #que de la céramique grecque antique
?objet wdt:P195 wd:Q1376. #conservé au Musée Saint-Raymond
?objet wdt:P2344 ?idAgorha. #et un identifiant AGORHA
OPTIONAL { #en option
?objet wdt:P18 ?img. #avec une image
}
SERVICE wikibase:label { #pour récuéprer les labels
bd:serviceParam wikibase:language "fr,en"}
}
- requête SPARQL pour afficher lar architectes américains
PREFIX bd: <http://www.bigdata.com/rdf#>
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
select distinct ?personneLabel
where {
?personne wdt:P31 wd:Q5 . #pour chercher des personnes humaines
?personne wdt:P106 wd:Q42973 . #qui occupe la fonction d'architecte
?personne wdt:P27 wd:Q30 . #qui sont américains
SERVICE wikibase:label {
bd:serviceParam wikibase:language "fr,en"}
}
- afficher sous forme de timeline les oeuvres du projet Europeana280
#defaultView:Timeline
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
SELECT ?itemLabel ?image ?creatorLabel ?datecreation ?placebirthLabel where {
?item wdt:P31/wdt:P279* wd:Q838948 . # œuvre d’art et ss-classe
?item wdt:P608 wd:Q20980830. # du projet Europeana 280
OPTIONAL {
?item wdt:P571 ?datecreation. # date de création, utile pour l'affichage timeline
?item wdt:P170 ?creator. # créateur
?item wdt:P18 ?image. #pour l'image
?creator wdt:P19 ?placebirth. # lieu de naissance
?placebirth wdt:P625 ?geoloc . #coordonnées géo, utile pr l'affichage carto
}
SERVICE wikibase:label {
bd:serviceParam wikibase:language "fr,es,en" .
}
}
- Lister uniquement l'id de éléments des oeuvres de Klimt
SELECT *
WHERE
{
?item wdt:P31 wd:Q3305213 .
?item wdt:P170 wd:Q34661 .
}
- Afficher sous forme de grille d'images toutes les oeuvres attribuées au Caravage
#defaultView:ImageGrid
SELECT DISTINCT ?item ?itemLabel (YEAR(?date) AS ?year) ?dimensions ?locationLabel ?countryLabel ?image WHERE {
{ ?item wdt:P170 wd:Q42207 . } UNION { ?item wdt:P1773 wd:Q42207 }
OPTIONAL { ?item p:P276 ?statement . ?statement ps:P276 ?location . FILTER NOT EXISTS { ?statement pq:P582 ?x } OPTIONAL { ?location wdt:P17 ?country } }
OPTIONAL { ?item wdt:P18 ?image }
OPTIONAL { ?item wdt:P2048 ?length }
OPTIONAL { ?item wdt:P2049 ?width }
OPTIONAL { ?item wdt:P571 ?date }
BIND (CONCAT(STR(?length),"×",STR(?width)) AS ?dimensions)
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . }
} ORDER BY ?itemLabel
- Les groupes de personnages de l’univers Marvel sous forme de graphe de relation
#defaultView:Graph
SELECT ?char ?charLabel ?group ?groupLabel ("7FFF00" as ?rgb)
WHERE {
?group wdt:P31 wd:Q14514600 ; # group of fictional characters
wdt:P1080 wd:Q931597. # from Marvel universe
?char wdt:P463 ?group # member of group
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".}
}
- Afficher sous forme de liste toutes les céramiques grecques du Metropolitan Museum pour lesquelles la base AGORHA possède des informations de provenance.
select DISTINCT ?item ?itemLabel ?img ?idAgorha
where {
?item wdt:P31/wdt:P279* wd:Q738680 . # pottery of ancient Greece
?item wdt:P18 ?img.
?item wdt:P276 wd:Q160236.
?item wdt:P2344 ?idAgorha.
SERVICE wikibase:label {
bd:serviceParam wikibase:language "fr,en"}
}
- Afficher sous la forme d'une timeline, les propriétaires des céramiques grecques du MET
#defaultView:Timeline
select DISTINCT ?item ?itemLabel ?eventLabel ?img ?proprietairesLabel ?datedebut ?datefin
where {
?item wdt:P31/wdt:P279* wd:Q738680 . # pottery of ancient Greece
?item wdt:P18 ?img.
?item wdt:P276 wd:Q160236.
?item p:P127 ?declaration_proprietaires.
?declaration_proprietaires ps:P127 ?proprietaires.
OPTIONAL
{?declaration_proprietaires pq:P580 ?datedebut.
FILTER(!(STRSTARTS(?datedebut, 't')))}
OPTIONAL
{?declaration_proprietaires pq:P582 ?datefin.
FILTER(!(STRSTARTS(?datefin, 't')))}
SERVICE wikibase:label {
bd:serviceParam wikibase:language "fr,en"}
}
- Afficher sous forme de carte toutes les sculptures publiques dans Paris
#defaultView:Map{"layer": "?matiereLabel"} # genre : choisir une variable comme layer
SELECT DISTINCT ?item ?Titre ?createur ?matiereLabel (year(?date) as ?AnneeCreation) ?image ?coord
WHERE {
?item wdt:P31/wdt:P279* wd:Q860861. # sculpture
?item wdt:P136 wd:Q557141 . # genre : art public
?item wdt:P186 ?matiere. # et récupérer la technique/matière
{?item wdt:P131 wd:Q90.} # ... située dans Paris
UNION
{?item wdt:P131 ?arr. # ... ou dans un arrondissement de Paris
?arr wdt:P131 wd:Q90. }
?item rdfs:label ?Titre filter (lang(?Titre) = "fr"). # Titre
OPTIONAL {?item wdt:P170 ?createur. # créateur/créatrice (option)
?Qcreateur rdfs:label ?createur filter (lang(?createur) = "fr") .}
OPTIONAL {?item wdt:P571 ?date.} # date de création (option)
OPTIONAL {?item wdt:P18 ?image.} # image (option)
OPTIONAL {?item wdt:P625 ?coord.} # coordonnées géographiques (option)
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr". }
}
- Qui fête son anniversaire aujourd'hui
#Qui fête son anniversaire aujourd'hui ?
#Whose birthday is today?
SELECT ?entityLabel (YEAR(?date) as ?year)
WHERE
{
BIND(MONTH(NOW()) AS ?nowMonth)
BIND(DAY(NOW()) AS ?nowDay)
?entity wdt:P569 ?date .
FILTER (MONTH(?date) = ?nowMonth && DAY(?date) = ?nowDay)
SERVICE wikibase:label {
bd:serviceParam wikibase:language "en" .
}
}
LIMIT 10
- Classement général des causes de décès sous forme de BubbleChart
#Classement général des causes de décès
#defaultView:BubbleChart
#TEMPLATE={"template":"Overall causes of death ranking of ?thing ","variables":{"?thing": {"query":"SELECT ?id (COUNT(?id) AS ?count) WHERE { ?sub wdt:P509 ?y. ?sub wdt:P31 ?id. } GROUP BY ?id "} } }
SELECT ?cid ?cause (COUNT(*) AS ?count) WHERE {
BIND(wd:Q5 AS ?thing)
?pid wdt:P31 ?thing;
wdt:P509 ?cid.
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". ?cid rdfs:label ?cause}
}
GROUP BY ?cid ?cause
ORDER BY DESC(?count) ?cause
- Nombre de films par an et par genre sous forme d'un scatterplot avec animation
#Nombre de films par an et par genre
#defaultView:ScatterChart
SELECT ?year (COUNT(?_genre) AS ?count ) (SAMPLE(?_genreLabel) AS ?label ) (?year as ?year_shown) WHERE {
?item wdt:P31 wd:Q11424.
?item wdt:P577 ?_publication_date.
?item wdt:P136 ?_genre.
?_genre rdfs:label ?_genreLabel.
BIND(str(YEAR(?_publication_date)) AS ?year)
FILTER((LANG(?_genreLabel)) = "en")
FILTER (?_publication_date >= "2000-00-00T00:00:00Z"^^xsd:dateTime)
}
GROUP BY ?_genreLabel ?year
HAVING (?count > 30)
- Évolution du nombre d'œuvres par "Genre" entre 1500-1600.
#defaultView:BarChart
SELECT ?year (COUNT(?_genre) AS ?count ) (SAMPLE(?_genreLabel) AS ?label ) (?year as ?year_shown) WHERE {
?item wdt:P31 wd:Q3305213.
?item wdt:P170 ?creator.
?item wdt:P571 ?_creation_date.
?item wdt:P136 ?_genre.
?_genre rdfs:label ?_genreLabel.
BIND(str(YEAR(?_creation_date)) AS ?year)
FILTER((LANG(?_genreLabel)) = "fr")
FILTER (?_creation_date >= "1500-00-00T00:00:00Z"^^xsd:dateTime)
FILTER (?_creation_date <= "1600-00-00T00:00:00Z"^^xsd:dateTime)
}
GROUP BY ?_genreLabel ?year
HAVING (?count > 1)
- Afficher sur une carte, les villes en France dont le nom se termine par "ac"
#Communes françaises dont le nom fini par ac
#added before 2016-10
#defaultView:Map
SELECT ?item ?itemLabel ?coord
WHERE
{
?item wdt:P31/wdt:P279* wd:Q484170;
wdt:P17 wd:Q142;
rdfs:label ?itemLabel;
wdt:P625 ?coord;
FILTER (lang(?itemLabel) = "fr").
FILTER regex (?itemLabel, "ac$").
FILTER not exists { ?item wdt:P131 wd:Q33788 } # excluding Koumac, New Caledonia...
}
😉 Pour les linguistes : Œuvres d’Art dont le titre est une allitération
#added before 2016-10
SELECT DISTINCT ?work ?title
WHERE
{
?work wdt:P31/wdt:P279* wd:Q838948;
wdt:P1476 ?title.
FILTER(REGEX(STR(?title), "^(\\p{L})\\w+(?:\\W+\\1\\w+){2,}$", "i")).
}
ORDER BY STR(?title)
- Lister juste les identifiants des peintures de Monet
- reprendre la requête précédante mais en ajoutant les labels (via le service wikibase:label) et les images associées
- reprendre la requête précédante mais en ajoutant en option (via OPTIONAL) les collections/lieux de conservation
- Toujours pour les peintures de Monet, compter le nombre de Monet dans chaque collection/lieux de conservation et les afficher par odre décroissant
- Afficher sous forme de grille d’images, les tableaux qui dépeignent un lion.
- Nom de 100 villes dont la population dépasse le 1 millions de personnes.
- Afficher sur une carte, tous les lieux où l’on conserve des peintures en indiquant pour chaque lieu le nombre de peinture.
-
Quelques outils en ligne :
-
Où trouver des jeux de données :
- Le répertoire des plateformes territoriales de données
- Accéder à la plateforme opendata du Ministère de la culture
- Plateforme open data nationale
- Figshare
- Les différentes instances de Dataverse : https://dataverse.org/ (exemple avec celle d'Harvard : https://dataverse.harvard.edu/
- Zenodo
- Agrégateur de données issus des platefomes utilisant OpenDataSoft
- wikidata (page d'accueil) : https://www.wikidata.org/wiki/Wikidata:Main_Page
- SPARQLendpoint : https://query.wikidata.org/
- QueryBuilder : https://query.wikidata.org/querybuilder/?uselang=fr
- Afficher une page wikidata d'un item avec reasonator : https://tools.wmflabs.org/reasonator/
Le tutoriel officiel de base : https://www.wikidata.org/wiki/Wikidata:SPARQL_tutorial La bible/référence avec des centaines de requêtes : https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples/fr La documentation pour les subtilités des modes d'affichage / Visualisation des résultats d'une requête: https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/Wikidata_Query_Help/Result_Views/fr Bon à savoir : 10 useful things about Wikidata & SPARQL that I wish I knew earlier : https://alexasteinbruck.medium.com/10-useful-things-about-wikidata-sparql-that-i-wish-i-knew-earlier-b0e0ef63c598
# Récupérer le texte de description d'un item et dans la langue de son choix
?item schema:description ?itemdescription.
FILTER(LANG(?itemdescription) = "fr")
# récupérer l'ensemble des items des sous-classes de la nature de l'élément souhaité
wdt:P31/wdt:P279*
# Pour tester vos requêtes, limitez toujours vos résultats afin de ne pas trop surcharger le requêteur
LIMIT 100
# Rajouter un titre à votre requête
#Titre de votre requête qui sera généré lorsque vous partagez vos résultats (ou encapsulez les résultats) d'une requête
# Choisir un mode de représentation visuelle des résultats :
#defaultView (et faire control+espace pour avoir la liste des visualisations
# Récuéprer les labels dans la langue de votre choix (ne pas oublier d'ajouter ?nomdevotrevariableLabel dans le SELECT
SERVICE wikibase:label {bd:serviceParam wikibase:language "fr,en"}
# UNION permet de faire un ET entre 2 triplets
{?person wdt:P106 wd:Q188094} UNION {?person wdt:P106 wd:Q1792450}
- gabarit page HTML vide
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link rel="shortcut icon" type="image/ico" href="img/favicon.gif" />
<link rel="stylesheet" type="text/css" href="style.css" />
<title> titre </title>
</head>
<body>
</body>
</html>
- accès à l'outil : https://www.datawrapper.de/
- voir les tutoriels : https://academy.datawrapper.de/
- voir les dernières visualisations réalisées avec datawrapper pour avoir des idées : https://app.datawrapper.de/river
- Les plus : visualisations dynamiques ; quelques options pour traiter des données ; ajout d'annotation dans la visualisation
- Les moins : nécessite un compte utilisateur pour faire des exports ; export image de qualité moyenne avec un compte gratuit)
- exemple :
REPLACE_REGEX(city, ":[a-z]*:", '')
;(SPLIT(city, " "))[0]
- https://app.rawgraphs.io/
- https://www.datawrapper.de/
- Démonstration et exercice
- utiliser les jeux de données de test des 2 outils ou prendre ce jeu de données (* Jeu de données : Fréquentation des Musées de France )
- pour datawrapper, voir les tutoriels : https://academy.datawrapper.de/
- pour rawgraph, voir les tutoriels : https://rawgraphs.io/learning
- https://help.flourish.studio/category/10-flourish-basics
- Rawgraph et wikidata
SELECT ?year (COUNT(?items) AS ?count)
WHERE {
?items wdt:P31 wd:Q215380 . # get things that are bands
?items wdt:P571 ?date . # get the date when the band was founded
BIND( year(?date) as ?year ) # aggregate data by year
FILTER (?year > 1900) #filter on the last century
SERVICE wikibase:label {
bd:serviceParam wikibase:language "en" . #get labels in english.
#with this service, you can add "Label" suffix to any variable.
}
}
GROUP BY ?year
#Frise chronologique des maires d’Amsterdam, aux Pays-Bas au XIXe
select ?mayor ?mayorLabel ?start (year(?start) as ?startyear) (year(?end) as ?endyear) ?end where {
?mayor p:P39 ?position.
?position ps:P39 wd:Q13423495;
pq:P580 ?start;
pq:P582 ?end.
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl,en". }
FILTER (?start >= "1900-00-00T00:00:00Z"^^xsd:dateTime)
FILTER (?start <= "2000-00-00T00:00:00Z"^^xsd:dateTime)
}
- accès à l'outil : https://app.flourish.studio/projects
- voir les tutoriels : https://help.flourish.studio/category/10-flourish-basics
- Les plus : visualisations dynamiques ; option d'éditorialisation avec "Story"
- Les moins : certains visualisations sont uniquelment dans l'offre payante
- utiliser les jeux de données de test des 2 outils ou prendre ce jeu de données (* Jeu de données : Fréquentation des Musées de France )