Sparql et Wikidata. Partie 1 : Les personnes, la visualisation des données

Sparql (SPARQL Protocol and RDF Query Language) est un langage dédié à l’interrogation des bases de données du type triplestore. Le mot anglais “Sparkle” peut être traduit par “éclat”, “étincelle”, “scintillement” et le langage de requête ne manque pas d’attirer par ses fonctionnalités l’attention d’un vaste public d’enseignants, de chercheurs et de techniciens. Considéré dès 2007 comme l’une des technologies clés du web sémantique par le W3C, la version 1.0 de Sparql est publiée en 2008. La version 1.1 prend le relai en 2013. Le groupe “RDF Data Access Working Group” (DAWG) du W3C a maintenant cessé ses activités et Sparql ne va plus évoluer. Ce langage permet d’interroger des données structurées en RDF (Resource Description Framework), un format dérivé de XML dédié au stockage et à l’échange de données factuelles liées. Toute base de donnée en RDF peut être fonctionnellement décomposée en une série de triplets qui correspondent à des unités sémantiques atomiques de la forme (“sujet“, “prédicat“, “objet“).

Des exemples de triplets sémantiques sont 1/ (“Bob“, “est âgé de“, “29 ans“), 2/ (“Bob“, “connaît“, “Alice“), 3/ (“Alice“, “est auteur de“, “Grâce et Dénuement“) – le titre d’un livre d’Alice Ferney. Les items tels que “Bob“, “Alice“, “Grâce et Dénuement” de même que les prédicats “est âgé de“, “connaît“, “est auteur de” se trouvent identifiés sur le web par une URL du type IRI (Internationalized Resource Identifier). Les items peuvent alors jouer selon la nature du prédicat le rôle de sujet ou d’objet. Alice par exemple est sujet dans le troisième triplet et objet dans le second. Les triplestores se montrent optimisés pour stocker un grand nombre de triplets et pour permettre la recherche de ceux-ci à l’aide de Sparql. Petite précision de vocabulaire : le “prédicat” est souvent nommé “propriété” et “objet” se trouve dans ce contexte appelé aussi “valeur” si bien que la dénomination (“sujet“, “propriété“, “valeur“) sera ici préférée pour désigner un triplet sémantique quelconque.

Wikidata est une base de connaissance multilingue créée par Wikipedia Deutschland en 2012 qui contient des renseignements factuels en provenance des articles de Wikipédia, notamment des boîtes d’information. Les personnalités publiques, les entreprises et les administrations se montrent particulièrement intéressées par le renseignement des données factuelles qui les concernent dans Wikipédia, ceci dans le but de rendre leurs activités plus visibles. Plusieurs projets intègrent Wikidata dans leur stratégie de diffusion des données. Fait crucial pour le succès de la base, les données peuvent être éditées librement et se trouvent disponibles sous licence CC0, une licence proche du domaine public.

Ce tutoriel montre quelques unes des possibilités de Sparql sur Wikidata et présente des outils dédiés à l’interrogation et à la visualisation des données. Disposer de quelques notions de Sparql se montre intéressant non seulement pour interroger Wikidata mais encore pour explorer d’autres bases de connaissances comme data.bnf.fr (BnF), data.idref.fr (ABES), Science+ (ABES), sparql.HAL (CNRS, INRIA, Université de Lyon, INRAE), data.persee.fr (ENS Lyon), data.istex.fr (INIST), Isidore.sqe (Huma-Num), OpenCitations (Université de Bologne, Oxford), DBpedia (Leipzig University, University of Mannheim), Europeana (Europe), MeSH (NIH), LARHRA (Université de Lyon), henriponcare.fr (LHSP-AHP). Ces bases de données utilisent des ontologies différentes mais peuvent être interrogés avec le même langage. Des requêtes fédérées et croisées se montrent de plus possibles.

Nous allons dans ce premier tutoriel présenter brièvement le web sémantique et son implémentation dans Wikidata. Des requêtes Sparql relatives aux données personnelles sont ensuite posées. Des outils de visualisation apportent des renseignements aussi bien sur la structure des ontologies de Wikidata que sur les aspects temporels, géographiques ou statistiques des contenus.

  • SPARQL 1.1 Overview, 2013 : Lien
  • W3C, All Standards and Drafts, Sparql : Lien
  • Wikidata:Lists/SPARQL endpoints : Lien
Wikidata en 2012 : John Erling Blad, Abraham Taherivand, Tobias Gritschacher, Jeroen De Dauw, Henning Snater, Lydia Pintscher, Daniel Kinzler, Markus Krötzsch, Silke Meyer, Denny Vrandečić, Katie Filbert, Daniel Werner, Jens Ohlig : Lien
  1. A propos de Wikidata
  2. Structure des données de Wikidata
    • 2.1 Le sujet
    • 2.2 La propriété
    • 2.3 La valeur
  3. Requêtes Sparql sur Wikidata
    • 3.1 Éléments de syntaxe
      • 3.1.1 Structure d’une requête
      • 3.1.2 Une première requête
      • 3.1.2 Une deuxième
    • 3.2 Requêtes sur les personnes
      • 3.2.1 Personnes simples
      • 3.2.2 Personnes liées à une personne simple
      • 3.2.3 Listes de personnes
      • 3.2.4 Lieux, événements et activités des personnes
  4. Outils de visualisation des données
    • 4.1 Outils intégrés à Wikidata
      • 4.1.1 Grille d’images
      • 4.1.2 Graphique à bulles
      • 4.1.3 Graphique en barres
      • 4.1.4 Carte géographique
      • 4.1.5 Chronologie
    • 4.2 Wikidata Graph Builder

1. A propos de Wikidata

Les noms de Denny Vrandečić et de Markus Krötzsch, fondateurs en 2005 de Semantic Mediawiki, restent attachés au lancement de Wikidata en 2012. Wikimedia Allemagne leurs confie la direction d’un groupe de développeurs parmi lesquels John Erling Blad, Abraham Taherivand, Jens Ohlig dont la mission est de créer une base de connaissance basée sur les contenus de Wikipédia conforme aux standards du web sémantique. Le financement initial d’un montant total de 1,3 million d’euros provient des dons de l’Allen Institute for Artificial Intelligence, de la Gordon and Betty Moore Foundation, de Google et de Yandex.

Une dimension industrielle est visée car le fonctionnement de services commerciaux est prévu en aval et les serveurs se doivent de répondre de manière fiable. Les développements initiaux sont faits en Allemagne alors que la maintenance de la base doit être assurée par la Wikimedia Foundation, une organisation à but non lucratif localisée à San Francisco. En matière de législation, Wikipédia n’enregistre comme entrée que celles présentant un intérêt publique, dont la validité se montre en général prouvée à l’aide de références bibliographiques. Les aspects éthiques et légaux documentés sur le Wiki de Wikidata concernent principalement les personnes vivantes et les droits de copie.

Au niveau technique, Wikidata fonctionne à l’aide d’un ensemble de logiciels, libres pour la plupart. Le moteur de wiki MediaWiki se trouve augmenté par l’extension Wikibase dédiée à la création des bases de connaissances. D’autres briques de Wikidata assez lourdes à installer et à maintenir sont actuellement maintenues par la Fondation MediaWiki (Tableau 1). Une API permet l’interrogation programmée de la base.

Wikidata est l’instance la plus connue de Wikibase. Plusieurs autres projets ont adopté Wikibase pour construire des bases de connaissance multilingues. Ainsi, “Lingua Libre” mené par Wikimédia France concerne la linguistique et l’enregistrement audiovisuel de locuteurs en différentes langues. Le projet FactGrid mené par le Centre de Recherche de Gotha à l’Université d’Erfurt documente des faits historiques. La base de donnée épigraphique Europeana EAGLE référence les inscriptions latines et grecques européennes.

Du côté des contenus, de leur organisation et de la documentation, des groupes de contributeurs s’associent en projets thématiques visant à apporter une aide sur les pratiques en matière de propriétés et de classes à utiliser préférentiellement, sur des problèmes à résoudre. Les aides et discussions y sont ouvertes et possiblement multilingues. Parmi les domaines concernés le fonctionnement de Wikidata, une variété de domaines scientifiques et techniques. Tout utilisateur souhaitant renseigner Wikidata peut créer un projet éventuellement décliné en français.

Tableau 1 : Architecture informatique de Wikidata : Lien
  • Denny Vrandečić : Lien
  • Markus Krötzsch : Lien
  • Semantic MediaWiki : Lien
  • Wikidata : Lien
  • Wikidata:Personnes vivantes : Lien
  • Wikidata, Help:Copyrights : Lien
  • Wikidata Architecture Overview (diagrams), Addshore, 2018 : Lien
  • Wikipédia, Aide:Infobox Wikidata : page d’aide sur le fonctionnement des infobox : Lien
  • Wikibase : Lien
  • Lingua Libre, Wikimédia France : Lien
  • FactGrid, a database for historians : Lien, Blog
  • Europeana EAGLE project : Lien

Une large sélection de projets thématiques :

  • Wikidata:Portail communautaire, fr : Lien
  • Wikidata:WikiProject Documentation : Lien
  • Wikidata:WikiProject Ontology : Lien
  • Wikidata:WikiProject Philosophy : Lien
  • Wikidata:WikiProjet_Taxinomie, fr : Lien
  • Wikidata:WikiProject Medicine : Lien
  • Wikidata:WikiProject Climate Change : Lien
  • Wikidata:WikiProject Sustainable Development : Lien
  • Wikidata:WikiProjet Physique, fr : Lien
  • Wikidata:WikiProject Mathematics : Lien
  • Wikidata:WikiProject Informatics : Lien
  • Wikidata:WikiProject Maps : Lien
  • Wikidata:WikiProject Maps/Historical map properties : Lien
  • Wikidata:WikiProject Education : Lien
  • Wikidata:WikiProjet Livres, fr : Lien
  • Wikidata:WikiProject Periodicals : Lien
  • Wikidata:WikiProject Museum : Lien
  • Wikidata:WikiProject Citizen Science : Lien
  • Wikidata:WikiProject France : Lien
  • Wikidata:WikiProject France/Politicians : Lien

2. Structure des données dans Wikidata

Toute notice Wikipédia se trouve déclinée en un item/élément Wikidata identifié par un numéro précédé de la lettre Q. L’IRI (Internationalized Resource Identifier) de l’item prend alors la forme “https://www.wikidata.org/wiki/Q#”. Le numéro d’identification peut être récupéré en cherchant une entrée dans Wikipédia en français et en cliquant dans la barre latérale gauche sur “Outils” / “Élément Wikidata” ou bien à l’aide du moteur de recherche de Wikidata. Un libellé préférentiel en anglais rend les choses plus explicites.

Quatre autres informations sont renseignées en différentes langues : le libellé préférentiel en une langue donnée (Label), la description courte (Description) et d’éventuelles appellations alternatives (Also known as). La notice du roman Q3118322Grâce et Dénuement” d’Alice Ferney se montre renseignée dans Wikidata en 8 langues et dans Wikipédia en français uniquement (Tableau 2). Il est possible en se connectant de paramétrer des préférences linguistiques.

Tableau 2 : Notice Wikidata de Q3118322 “Grâce et Dénuement” d’Alice Ferney. La classe de l’objet est identifiée par la valeur de P31 “instance of” / “nature de l’élément“, ici “written work” / “œuvre écrite” : Lien

Les trois éléments du triplet sémantique sous Wikidata sont tout d’abord passés en revue.

2.1 Le sujet

Tout item Q# se montre susceptible d’être sujet. Il peut également et selon la nature de la propriété jouer le rôle de valeur. Ainsi le livre Q3118322 “Grâce et Dénuement” se montre sujet placé en première position du triplet (Q3118322 “Grâce et Dénuement“, P50 “auteur“, Q2836569 “Alice Ferney“) et propriété en troisième position (Q2836569 “Alice Ferney“, P800 “œuvre notable, Q3118322 “Grâce et Dénuement“). D’autres exemples d’items sont Q2 “Terre“, Q3 “vie“, Q4 “mort“, Q5 “être humain“, Q8 “bonheur“, Q8261roman” en français.

Certains items jouent le rôle de classe. Une classe désigne un item de nature générique, susceptible de représenter de manière commune ce que partagent des instanciations de la classe. Ainsi le livre “Grâce et Dénuement” est de la classe Q47461344œuvre écrite“. Les items Q128207planète tellurique du système solaire“, Q60539479émotion positive“, Q223393genre littéraire” désignent des classes qui ont pour instanciations respectives Q2Terre“, Q8bonheur“, Q8261roman“.

Une instanciation et sa classe sont reliés par l’importante propriété P31instance of“, traduit par “nature de l’élément” en français et dont des appellations alternatives sont “est un“, “est une“, “instance de“, “a pour classe“, “est un exemple de“, “type de média“, “quoi“, “nature“. Il devient ainsi aisé de chercher avec Sparql les instanciations d’une classe donnée et de répondre à des questions du genre : “Quelles sont les planètes tellurique du système solaire”, “Quelles émotions positives recense Wikidata”, “Quels sont les genres littéraires enregistrés dans Wikidata”.

2.2 La propriété

Deuxième élément d’un triplet sémantique, les propriétés sont nommées par la lettre P suivie d’un numéro. L’IRI prend la forme “https://www.wikidata.org/wiki/Property:P#”. Wikidata définit actuellement 9162 propriétés. Les propriétés se montrent décrites de la même manière que les items Q#, mais en plus, le champs “Data type” précise le type de la valeur attendu. “Data type” peut prendre un ensemble fini de valeurs parmi lesquelles un autre item (Item), un identifiant externe (External identifier), une chaîne de caractères (String), des coordonnées géographiques (Globe coordinate), une expression mathématique (Mathematical expression), etc. Ainsi, la propriété P50auteur” susceptible de renseigner les notices d’œuvres diverse admet “Item” en type de valeur attendue.

Plusieurs propriétés jouent ainsi un rôle central. La première évoquée dans le paragraphe précédent définit les classes et est nommée P31instance of” / “nature de l’élément“. Ainsi, le triplet sémantique (“Socrate”, “est un”, “homme”) se formule à l’aide de la syntaxe Wikidata (Q913Socrate“, P31nature de l’élément“, Q5être humain“).

La deuxième propriété remarquable P279sous-classe de” rend possible la création d’un arbre des classes. Toute classe de Wikidata se montre in-fine sous-classe de Q35120entité“. Une classe peut également être sous-classe de plusieurs autres classes. A titre d’exemple, l’entrée Q571livre” se montre simultanément sous-classe de Q49848document“, Q732577publication“, Q47461344œuvre écrite” et Q2342494objet de collection“. Cette dernière classe se montre sous-classe de Q488383objet“, elle-même sous-classe de Q35120entité“, racine de l’arbre des classes. Ceci peut être exprimé à l’aide d’un graphe (Figure 1).

Figure 1 : Arbre des classes obtenu à l’aide de la propriété P31 “nature de l’élément” pour la classe Q571 “livre” avec Wikidata Graph Builder : Lien

D’autres propriétés décrivent de manière pertinente de nombreux items : P361 “partie de”, P18image“, P2579discipline dont c’est l’objet”, P171taxon supérieur“, P527comprend“, P1552 “caractérisé par“, etc. Une liste des propriétés se trouve documentée sur le wiki de Wikidata et nous verrons quelques requêtes Sparql de même qu’un outil (Wikidata Graph Builder) qui permet d’explorer cela de manière graphique, ludique et interactive.

  • Wikidata Help:Type de données : Lien
  • Wikidata Category:Properties by datatype : Lien
  • Wikidata: Liste des propriétés : Lien

2.3 La valeur

Les types de valeurs attendus sont spécifiés par la propriété. Il peut s’agir d’un autre item, d’une URL, d’une chaîne de caractère, d’une quantité, d’une date, d’une image, d’une coordonnée géographique, d’une expression mathématique, etc. Une valeur peut être renseignée de manière unique ou multiple conduisant à la création de suites de triplets admettant les mêmes sujets et propriétés.

Des exemples de valeurs peuvent être donnés : un item (Q913Socrate“, P27pays de citoyenneté“, Q844930Athènes“), un texte (Q913Socrate“, P1559nom dans la langue maternelle de la personne“, “Σωκράτης (Ancient Greek)”), une date (Q913Socrate“, P570date de mort“, “15 February 399 BCE“) ou bien un champs répété comme (Q913Socrate“, P106occupation“, Q4964182philosophe“) et (Q913Socrate“, P106occupation“, Q37226enseignant“). Des “qualificatifs” (qualifier) permettent de modifier la portée de certaines valeurs et par exemple de dater un événement. On apprend ainsi que Socrate devient membre de la Boulè en 406 avant notre ère (Q913Socrate“, P463membre de“, Q729128Boulè“). Nous en savons maintenant assez sur le web sémantique et Wikidata et nous allons pouvoir lancer quelques requêtes Sparql.

3. Requêtes Sparql sur Wikidata

https://query.wikidata.org/

Wikidata SPARQL query service

Les requêtes sont entrées dans le Sparql endpoint “Wikidata SPARQL query service” (WDQS) accessible à l’adresse query.wikidata.org. Les résultats de calculs, des tableaux de données ou bien des visualisations sont attendus en retour d’une requête. De multiples formats de sortie sont possibles : HTML, XML, JSON, TSV, CSV, RDF binaire, cartes, de frises chronologiques, de grilles d’images, etc (Figure 2).

Figure 2 : L’interface WDQS de Wikidata : Lien
  • Wikidata Query Service (WDQS) : Lien
  • Wikidata:Service de requête SPARQL/Aide Wikidata Query/Visualisation des résultats : Lien

3.1 Éléments de syntaxe

Les requêtes Sparql intègrent des instructions standards notées ici en majuscule et en rouge et des variables précédées d’un point d’interrogation et souvent notées en minuscule.

3.1.1 Structure d’une requête

Les trois instructions principales d’une requête standard PREFIX… SELECT… WHERE… peuvent être commentés :

PREFIX : Les IRI d’une requête sont écrits au choix de manière longue ou abrégée. Par exemple, le sujet Q1 “univers” peut être noté dans une requête “<https://www.wikidata.org/wiki/Q1>” ou bien de manière brève à l’aide d’un préfixe suivi de deux points “wd:Q1“, de même que les propriétés : “<http://www.wikidata.org/prop/direct/P279>” ou “wdt:P279“. Localisée en début de requête, l’instruction PREFIX permet de spécifier les abréviations. Elle s’avère facultative en général car un certain nombre d’ontologies se trouvent pré-déclarées :

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wds: <http://www.wikidata.org/entity/statement/>
PREFIX wdv: <http://www.wikidata.org/value/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX ps: <http://www.wikidata.org/prop/statement/>
PREFIX pq: <http://www.wikidata.org/prop/qualifier/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX bd: <http://www.bigdata.com/rdf#>

SELECT : La clause SELECT spécifie les tableaux de données ou les comptages à afficher en sortie. Les variables se trouvent définies au niveau de l’instruction suivante WHERE. La valeur étoile (*) affiche toutes les variables présentes dans WHERE, SELECT DISTINCT enlève les doublons. D’autres fonctions de Sparql peuvent être utilisée conjointement avec SELECT, comme par exemple SELECT CONCAT (concatène des champs), SELECT COUNT pour le calcul d’effectifs, etc :

SELECT ?sujet ?prop ?valeur # Sélection des variables à afficher
SELECT *                    # Afficher toutes les variables
SELECT DISTINCT *           # Affiche une seule valeur de variable
SELECT (CONCAT (?))
SELECT DISTINCT *           # Affiche une seule valeur de variable

WHERE : L’instruction WHERE contient entre parenthèses un ou plusieurs motifs de triplets. Chaque motif de triplet est noté sur une ligne, contient au moins une variable et se termine par un point. Plusieurs catégories de motifs de triplet sont possibles. Prenons comme exemple le triplet (Q3118322Grâce et Dénuement“, P31nature de l’élément“, Q47461344œuvre écrite“). Sept motifs de triplets différents se montrent combinatoirement possibles, ce qui correspond à 7 catégories de questions, dont 3 sont ici commentées.

  1. Variable en troisième position. Un exemple type de motif serait “SELECT {wd:Q3118322 wdt:P31 ?valeur .}. On pose la question des valeurs attribuées à un sujet et à une propriété connue. Cela correspond ici à la question “Quelle est la classe de l’item Grâce et dénuement“.
  2. Variable en première position. Exemple : (?sujet wdt:P31 wd:Q47461344.). Question des items correspondant à des conditions et des valeurs connues. Le motif répond à la requête “Quels sont les items de la classe “œuvre écrite“.
  3. Variable en deuxième et troisième position. Exemple : (wd:Q3118322 ?propriete ?valeur.). La question des couples propriété / valeur d’un item connu est posée. “Quelles sont les propriétés et les valeurs de l’item “Grâce et dénuement“.

3.1.2 Une première requête

Nous pouvons lancer une première requête qui affiche 10 triplets quelconques de Wikidata à l’aide du motif de triplet “?sujet ?prop ?valeur.” (cliquez le lien ci-joint et appuyez sur la flèche bleue en bas à gauche pour lancer la requête). Requête 3.1.1 :

# Recherche de 10 triplets quelconques, requête 3.1.1
SELECT ?sujet ?prop ?valeur # Sélection des variables à afficher
WHERE { 
  ?sujet ?prop ?valeur. # Chercher un triplet quelconque
}
LIMIT 10 # Limiter à 10

Les commentaires sont colorés dans la requête en gris et suivent le caractère #. L’instruction SELECT en rouge précise les variables à afficher. Localisé après l’instruction WHERE se trouve le cœur de la requête “?sujet ?prop ?valeur.”. Les 3 variables colorés en vert sont précédées du caractère “?”. Un point conclue chaque motif de triplet généralement notée sur une ligne. Plusieurs ligne permettent l’ajout de conditions. L’instruction LIMIT en fin de requête restreint l’affichage à 10 triplets. On obtient le tableau dont les 3 premières lignes sont reproduites ci-dessous. On remarque que le nom des colonnes correspond au nom des variables.

sujetpropvaleur
wikibase:Dump<http://creativecommons.org/ns#license><http://creativecommons.org/publicdomain/zero/1.0/>
wikibase:Dumpschema:softwareVersion1.0.0
wikibase:Dumpschema:dateModified22 mars 2021
3 triplets quelconques de Wikidata

3.1.3 Une deuxième

Quels genres littéraires sont référencés dans Wikidata ? Une requête sur les instances P31 de la classe Q223393genre littéraire” est posée. Il convient non seulement d’en récupérer l’IRI mais aussi le libellé en français. On utilise pour cela deux motifs et les commandes successives FILTER, LANGMATCHES et LANG pour sélectionner les libellés français des items connus sous forme d’IRI. Requête 3.1.2 :

# Recherche de genres littéraires, requête 3.1.2
SELECT ?sujet ?label # Sélection des variables à afficher
WHERE { 
  ?sujet wdt:P31 wd:Q223393.              # Entités de "genre littéraire"
  ?sujet rdfs:label ?label.               # libellés en toutes langues
  FILTER(LANGMATCHES(LANG(?label), "fr")) # libellés en français seulement 
}
LIMIT 10                                  # limiter à 10 items
sujetlabel
wd:Q300sagas des Islandais
wd:Q482poésie
wd:Q446523epyllion
3 genres littéraires

Quelques exemples de requêtes avec les résultats obtenus permettent de mieux comprendre cela. Nous nous intéresserons ici aux personnes.

3.2 Requêtes sur les personnes

De fréquentes recherches concernent les personnes. Wikidata décrit actuellement 9,31 millions d’individus ce qui représente 8,9 % des contenus. Les requêtes simples suivantes concernent les individus, les individus en relation avec d’autres personnes et permettent l’affichage de listes de personnes.

3.2.1 Personnes simples

L’ensemble des triplets relatifs à Alice Ferney sont recherchés. SELECT * signifie que toutes les variables présentes dans la requête seront affichées. L’instruction WHERE contient deux motifs successifs de sujet identique et terminés par un point. Le premier (?sujet rdfs:label “Alice Ferney”@fr.) sélectionne tous les triplets dont l’étiquette (rdfs:label) contient en français Alice Ferney. Le deuxième (?sujet ?propriete ?valeur.) permet d’afficher les couples propriété / valeur. Requête 3.2.1 :

# Triplets relatifs à l'auteure "Alice Ferney", requête 3.2.1
SELECT * WHERE {
  ?sujet rdfs:label "Alice Ferney"@fr.
  ?sujet ?propriete ?valeur.
}
sujetproprietevaleur
wd:Q2836569wdt:P1207n2003086874
wd:Q2836569wdt:P1412 wd:Q150
wd:Q2836569wdt:P1477Cécile Brossollet

La notice d’Alice Ferney dans Wikidata comprend 148 triplets dont les trois premiers sont affichés. La colonne “sujet” fournit l’identifiant Q2836569 du sujet. On remarque dans les résultats les préfixes des propriétés : wdt (wikidata), wdtn (lien vers des bases de connaissances externes), “schema:description”, “rdfs:label”, “skos:altLabel”. Les noms alternatifs d’Alice Ferney sont Cécile Brossollet et Cécile Brossollet Gavriloff. Une image en valeur de la propriété P18image” est présente. Une autre manière d’écrire la question est de se servir du “point-virgule” en fin de première ligne et de ne pas répéter la variable ?sujet.

# Triplets relatifs à l'auteure "Alice Ferney", requête 3.2.2
SELECT * WHERE {
  ?sujet rdfs:label "Alice Ferney"@fr;
         ?propriete ?valeur.
}

On regarde sur la page Q2836569Alice Ferney“. Les propriétés P1559 “nom dans la langue maternelle de la personne“, P268 “identifiant Bibliothèque nationale de France“, P269 “identifiant IdRef” et P69 “scolarité” nous intéressent.

# noms et identifiants d'Alice Ferney, requête 3.2.3
SELECT * WHERE {
  wd:Q2836569 wdt:P1559 ?nom;
              wdt:P268 ?id_bnf;
              wdt:P269 ?idref;
              wdt:P69 ?scolarite.
}
nomid_bnfidrefscolarite
Alice Ferney12947466j056544731 wd:Q273518
Alice Ferney12947466j056544731 wd:Q273642

La réponse contient deux lignes car “École des hautes études en sciences sociales” et “École supérieure des sciences économiques et commerciales” sont les deux écoles mentionnées. Nous souhaitons afficher des renseignements sur ces établissements. Le service “wikibase:label” de Wikidata est appelé à l’aide de l’instruction SERVICE afin de faciliter l’accès à plusieurs variables. Ce service adjoint les suffixes “Label”, “Description” et “AltLabel” à toutes les variables de la requête. Les variables “?scolariteLabel”, “?scolariteDescription”, “?scolariteAltLabel” deviennent alors disponibles et sont demandées dans SELECT.

# scolarité d'Alice Ferney, requête 3.2.4
SELECT ?nom ?scolarite ?scolariteLabel ?scolariteDescription ?scolariteAltLabel
WHERE {
  wd:Q2836569 wdt:P1559 ?nom;
              wdt:P69 ?scolarite.
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
nomscolaritescolariteLabelscolariteDescriptionscolariteAltLabel
Alice Ferney wd:Q273518École des hautes études en sciences socialesécole supérieure en sciences humaines et socialesÉcole des Hautes Études, École des Hautes Etudes en Sciences Sociales, École des Hautes Études en Sciences Sociales, École Pratique des Hautes Etudes en Sciences Sociales, École pratique des hautes études VIe section, EHESS
Alice Ferney wd:Q273642École supérieure des sciences économiques et commercialesGrande école de commerce françaiseEcole superieure des sciences economiques et commerciales, ESSEC, Institut des sciences économiques et commerciales de Paris

Notice d’autorité d’Alice Ferney en français : La requête suivante permet l’affichage en français d’une notice d’autorité. Requête 3.2.1.6 :

# Notice d'autorité d'Alice Ferney Q2836569 3.2.6
PREFIX entity: <http://www.wikidata.org/entity/>
SELECT ?propUrl ?propLabel ?valUrl ?valLabel ?picture
WHERE
{
	hint:Query hint:optimizer 'None' .
	{	BIND(entity:Q2836569 AS ?valUrl) .
		BIND("N/A" AS ?propUrl ) .
		BIND("identity"@fr AS ?propLabel ) .
	}
	UNION
	{	entity:Q2836569 ?propUrl ?valUrl .
		?property ?ref ?propUrl .
		?property rdf:type wikibase:Property .
		?property rdfs:label ?propLabel
	}
	
  	?valUrl rdfs:label ?valLabel
	FILTER (LANG(?valLabel) = 'fr') .
	OPTIONAL{ ?valUrl wdt:P18 ?picture .}
	FILTER (lang(?propLabel) = 'fr' )
}
ORDER BY ?propUrl ?valUrl
LIMIT 200
propUrlpropLabelvalUrlvalLabelpicture
wdt:P103langue maternelle wd:Q150français
wdt:P106occupation wd:Q1914832maître de conférences
wdt:P106occupation wd:Q36180écrivain commons:Kusakabe Kimbei – Writing Letter (large).jpg
wdt:P108employeur wd:Q13334université d’Orléans commons:Orléans – parc floral (28).jpg
wdt:P184directeur de thèse wd:Q1001839François Bourguignon
5 première lignes de la notice d’autorité personne d’Alice Ferney

3.2.2 Personnes liées à une personne simple

François Bourguignon a dirigé la thèse d’Alice Ferney et nous souhaitons connaître les noms des docteurs de première et deuxième génération. Ceci est donné par la propriété P184 “directeur de thèse“. Le champ P569 “date de naissance” est demandé avec la condition OPTIONAL car dans la pratique rarement renseigné. On trouve ainsi 19 docteurs formés par François Bourguignon lui-même ou par ses anciens docteurs devenus professeurs.

# docteurs dirigés par François Bourguignon et docteurs de deuxième génération
SELECT ?etudiant ?etudiantLabel ?etudiantDescription ?datenaissance
WHERE {
  wd:Q2836569 wdt:P184 ?directeur.
  ?etudiant wdt:P184* ?directeur.
  OPTIONAL {?etudiant wdt:P569 ?datenaissance.}
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}

3.2.3 Listes de personnes

Nous allons dans cette série de requêtes afficher des listes de personnes simples ou bien satisfaisant à un ou plusieurs critères.

10 personnes quelconques avec affichage du libellé, de la description et des noms alternatifs sont recherchées. Requête 3.2.5 :

# Recherche de 10 personnes avec nom, description, noms alternatifs, requête 3.2.5
SELECT ?sujet ?sujetLabel ?sujetDescription ?sujetAltLabel
WHERE { 
  ?sujet wdt:P31 wd:Q5. 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
LIMIT 10
sujetsujetLabelsujetDescriptionsujetAltLabel
wd:Q838Andreï Roublevmoine et peintre d’icônes russe du XVe siècle
wd:Q839Georgina Cassargymnaste de Gibraltar
wd:Q845Pedro Aguirre Cerdahomme politique du Chili (1879-1941)
wd:Q848Arturo Alessandri Palmahomme politique du chili (1868-1950)
wd:Q849François Villonpoète français (1431-1463)Francois Villon, François de Moncorbier, François de Montcorbier

Recherche des personnes portant le nom de famille “Ferney”. On peut chercher manuellement l’identifiant du nom de famille “Ferney” dans Wikidata. Q36872846 est alors trouvé. La propriété P734nom de famille” permet de fabriquer un motif de triplet qui affiche les personnes portant ce patronyme.

# Personnes portant le nom de famille "Ferney", requête 3.2.3.2
SELECT ?personne ?personneLabel ?personneDescription WHERE {
  ?personne wdt:P734 wd:Q36872846;
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}

Une autre méthode sans la recherche manuelle, mais avec une variable intermédiaire nommée “?nomid” :

# Personnes portant le nom de famille "Ferney", requête 3.2.3.2bis
SELECT ?personne ?personneLabel ?personneDescription WHERE {
  ?personne wdt:P734 ?nomid.
  ?nomid rdfs:label "Ferney"@fr.
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}

La variable intermédiaire peut être omise en liant avec l’instruction “/” les deux propriétés :

# Personnes portant le nom de famille "Ferney", requête 3.2.3.2ter
SELECT ?personne ?personneLabel ?personneDescription WHERE {
  ?personne wdt:P734/rdfs:label "Ferney"@fr.
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
personnepersonneLabelpersonneDescription
wd:Q2836569Alice Ferneyécrivaine française
wd:Q15502990Liam Ferneypoète australien
Les deux personne portant le patronyme “Ferney” dans Wikidata

Mémorialistes francophones nés entre 1850 et 1900. Nous nous intéressons aux mémorialistes, parlant ou signant en français, et dont la date de naissance est comprise entre 1850 et 1900. On a P106occupation“, Q11774156mémorialiste”, P1412langues parlées, écrites ou signées”, Q150français“, P569 “date de naissance”. L’instruction Sparql FILTER permet de poser les conditions sur la variable “?datenaissance”, ORDER BY ordonne les résultats par date de naissance croissante. Requête 3.2.6 :

# Mémorialistes francophones nés entre 1850 et 1900, requête 3.2.6
SELECT ?memorialiste ?memorialisteLabel ?memorialisteDescription ?datenaissance 
WHERE {
  ?memorialiste wdt:P106 wd:Q11774156.
  ?memorialiste wdt:P1412 wd:Q150.
  ?memorialiste wdt:P569 ?datenaissance.
  FILTER("1850-01-01"^^xsd:dateTime <= ?datenaissance && ?datenaissance < "1900-01-01"^^xsd:dateTime).
  SERVICE wikibase:label {bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .}
}
ORDER BY ?datenaissance

On trouve 10 résultats dont 3 sont affichés.

memorialistememorialisteLabelmemorialisteDescriptiondatenaissance
wd:Q2835536Alfred de Gramontmémorialiste du XIXe siècle24 septembre 1856
wd:Q23019188Adélard Lambertethnologue canadien15 mars 1867
wd:Q92562Léon Daudetécrivain, journaliste et homme politique français16 novembre 1867

Philosophes et sociétés de philosophie vers 1900 : Les philosophes nés entre 1880 et 1900 et les sociétés auxquelles ils ont adhéré sont ici recherchées. L’instruction OPTIONAL permet de récupérer les philosophes qui ne sont membres d’aucune académie. Parmi les personnalités connues Pierre Boutroux, Pierre Teilhard de Chardin, Louis Rougier, Louis de Broglie, Alexandre Koyré, Marcel Duchamp, Jean Rostand. Parmi les sociétés originales, “Ouvroir de littérature potentielle”, “Collège de ‘Pataphysique”. 165 entrées correspondant à 90 personnes uniques sont retrouvées.

# Philosophes français nés entre 1880 et 1900 et sociétés de philosophie, requête 3.2.7
SELECT ?sujet ?sujetLabel ?paysLabel ?membre_deLabel ?datenaissance ?genreLabel
WHERE {
  ?sujet wdt:P106 wd:Q4964182.
  ?sujet wdt:P27 wd:Q142.
  ?sujet wdt:P27 ?pays.
  OPTIONAL{?sujet wdt:P463 ?membre_de.}
  OPTIONAL{?sujet wdt:P569 ?datenaissance.}
  OPTIONAL{?sujet wdt:P21 ?genre.}
  FILTER("1880-01-01"^^xsd:dateTime <= ?datenaissance && ?datenaissance < "1900-01-01"^^xsd:dateTime).
  SERVICE wikibase:label {bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .}
}
ORDER BY ?datenaissance
sujetsujetLabelpaysLabelmembre_deLabeldatenaissancegenreLabel
wd:Q2898000Bernard GroethuysenFrance9 janvier 1880masculin
wd:Q2898000Bernard GroethuysenAllemagne9 janvier 1880masculin
wd:Q3185736Joseph VialatouxFrance2 juillet 1880masculin
wd:Q1399119Pierre BoutrouxFrance6 décembre 1880masculin
wd:Q2847743André FauconnetFrance17 février 1881masculin
wd:Q189564Pierre Teilhard de ChardinFranceAcadémie des sciences1 mai 1881masculin
Les 6 premiers philosophe d’expression française

Liste des présidents français et de leurs conjointes. Dans cette requête, des renseignements sont récupérés provenant de deux items distincts partageant la relation P26 “conjoint“. On a Q142 “France“, P35 “chef d’État“. Nous recherchons littéralement les IRI des couples de personnes qui partagent la propriété d’être “chef d’État de la France” et d’être “conjoint des chefs d’État”. On remarque la propriété “p:P35/ps:P35” chef d’État qui fait intervenir l’espace de nom <http://www.wikidata.org/prop/statement/>. Requête 3.2.8 :

# Présidents français et leurs conjointes, requête 3.2.8
SELECT ?president ?presidentLabel ?presidentDescription ?conjointe ?conjointeLabel 
WHERE {
   wd:Q142 p:P35/ps:P35 ?president.
   ?president wdt:P26 ?conjointe.
   SERVICE wikibase:label {bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .}
}
presidentpresidentLabelpresidentDescriptionconjointeconjointeLabel
wd:Q329Nicolas Sarkozyprésident de la République française de 2007 à 2012 wd:Q143945Carla Bruni
wd:Q2038François Mitterrandprésident de la République française de 1981 à 1995 wd:Q270703Danielle Mitterrand
wd:Q2042Charles de Gaullegénéral et homme d’État français wd:Q433393Yvonne de Gaulle
Les trois premiers couples présidentiels français de la liste

3.2.4 Lieux, événements et activités des personnes

Plusieurs types de propriétés relatives aux personnes s’avèrent fréquemment renseignées.

  • Des informations comme P19lieu de naissance“, P20lieu de mort“, P119lieu de sépulture“, P69scolarité“, P551résidence“, P485archivé par” renseignent sur des localisations. Des cartes peuvent être élaborées à l’aide des outils de wikidata ou d’outils externes.
  • De nombreuses requêtes menées sur les personnes concernent les dates : P569date de naissance“, éventuelle P570date de mort“, date de candidature P3602candidat à l’élection“, date de début et de fin de fonction P39fonction“, date de P166distinction reçue“, etc. Des chronologies peuvent être établies.
  • P101domaine d’activité“, P106occupation“, P463 “membre de“. Des classes et sous-classes définissent les activités et peuvent servir d’élément factuel pour établir une biographie.

4. Outils de visualisation des données

Il est possible de visualiser les données fruits de requêtes Sparql à l’aide d’une variété d’outils intégrés à Wikidata. Les données qui se prètent à la visualisation résultent souvent de requêtes particulières de nature statistique. Des outils externes facilitent également la visualisation, l’interrogation ou l’enrichissement d’autres référentiels.

4.1 Outils intégrés à Wikidata

Le basculement de la vue sous forme de tableau à la vue sous forme de grille, de carte, de graphe ou autre se fait à l’aide du bouton situé sous la fléche bleue de WDQS. Wikidata met à disposition 14 types de visualisations. Une instruction spéciale placée en commentaire (#defaultView:ImageGrid, ) de requête permet de générer l’affichage souhaité.

  • Wikidata:Service de requête SPARQL/Aide Wikidata Query/Visualisation des résultats : Lien

4.1.1 Grille d’images

Portraits de botanistes français nés entre 1700 et 1730 : Requête 4.1.1

# botanistes français nés entre 1700 et 1730
#defaultView:ImageGrid
SELECT ?item ?itemLabel ?pic ?datenaissance
WHERE
{
  ?sujet wdt:P106 wd:Q2374149.    # "occupation" botaniste
  ?sujet wdt:P27 wd:Q142.         # "pays de citoyenneté" France
  ?sujet wdt:P18 ?pic.            # URL image
  ?sujet wdt:P569 ?datenaissance. # date de naissance
  FILTER("1700-01-01"^^xsd:dateTime <= ?datenaissance && ?datenaissance < "1731-01-01"^^xsd:dateTime).
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" }
}
Figure 2 : Les visualisations. La grille d’image des botanistes nés entre 1700 et 1730 : Lien

4.1.2 Graphique à bulles

Les 30 prénoms les plus fréquemment donnés aux enfants nés à Paris entre 1850 et 1860 d’après wikidata : Requête 4.1.2

# Les 30 prénoms les plus fréquents donnés à Paris entre 1850 et 1860
#defaultView:BubbleChart
SELECT ?prenomid ?prenom (COUNT(*) AS ?count)
WHERE
{
  ?sujet wdt:P19 wd:Q90.             # personnes nées à Paris
  ?sujet wdt:P735 ?prenomid.         # identifiant du prénom de ces personnes dans ?prenomid 
  OPTIONAL {
    ?prenomid rdfs:label ?prenom     # libellé préférentiel du prénom (si présent) dans ?prenom 
    FILTER((LANG(?prenom)) = "en")
  }
  ?sujet wdt:P569 ?datenaissance.    # date de naissance et conditions de date
  FILTER("1850-01-01"^^xsd:dateTime <= ?datenaissance && ?datenaissance < "1861-01-01"^^xsd:dateTime).

}
GROUP BY ?prenomid ?prenom
ORDER BY DESC(?count) ?prenom
LIMIT 30
Les 30 prénoms parisiens les plus fréquents entre 1850 et 1860 : Lien

4.1.3 Graphique en barres

Personnes nées à Paris entre 1850 et 1860, les 20 professions les plus représentées dans Wikidata, représentation graphique. Requête 4.1.3. On note parmi les professions de cette époque bien référencées dans Wikidata en premier lieu les peintres, les personnalités politiques, les écrivains et journalistes, puis les sculpteurs, compositeurs, architectes, poètes et la longue file des autres professions.

# personnes nées à Paris entre 1850 et 1860, les 20 professions les plus représentées dans Wikidata
#defaultView:BarChart
SELECT ?profid ?Profession (COUNT(*) AS ?Effectif)
WHERE
{
  ?sujet wdt:P19 wd:Q90.             # personnes nées à Paris
  ?sujet wdt:P106 ?profid.         # identifiant du prénom de ces personnes dans ?prenomid 
  OPTIONAL {                         # libellé préférentiel du prénom (si présent) dans ?prenom
    ?profid rdfs:label ?Profession      
    FILTER((LANG(?Profession)) = "fr")
  }
  ?sujet wdt:P569 ?datenaissance.    # date de naissance et conditions de date
  FILTER("1850-01-01"^^xsd:dateTime <= ?datenaissance && ?datenaissance < "1861-01-01"^^xsd:dateTime).

}
GROUP BY ?profid ?Profession
ORDER BY DESC(?Effectif) ?Profession
LIMIT 20
Personnes nées à Paris entre 1850 et 1860, les 20 professions les plus représentées dans Wikidata.

4.1.3 Carte géographique

Philosophes nés entre 1880 et 1885, la carte de leur lieux de formation : Requête 4.1.4

# Carte des lieux de formation des philosophe nés entre 1880 et 1885
#defaultView:Map
SELECT ?item ?itemLabel ?coord
WHERE
{
  ?item wdt:P106 wd:Q4964182.  # occupation philosophe
  ?item wdt:P69/wdt:P131/wdt:P625 ?coord.   # coordonnées géographiques des lieux de scolarité
  OPTIONAL{?item wdt:P569 ?datenaissance.}  # date de naissance
  FILTER("1880-01-01"^^xsd:dateTime <= ?datenaissance && ?datenaissance < "1886-01-01"^^xsd:dateTime).
  SERVICE wikibase:label { bd:serviceParam wikibase:language "fr". }
}
Lieux de formation des philosophes nés entre 1880 et 1885 : Lien

4.1.4 Chronologie

Une chronologie des femmes philosophes nées entre 1700 et 1730 : Requête 4.1.5

# Femmes philosophes nées entre 1700 et 1730
#defaultView:Timeline
SELECT ?sujet ?sujetLabel ?itemDescription ?pic ?datenaissance
WHERE
{
  ?sujet wdt:P106 wd:Q4964182.    # "occupation" philosophe
  ?sujet wdt:P21 wd:Q6581072.     # genre féminin
  ?sujet wdt:P18 ?pic.            # URL image
  ?sujet wdt:P569 ?datenaissance. # date de naissance
  FILTER("1700-01-01"^^xsd:dateTime <= ?datenaissance && ?datenaissance < "1731-01-01"^^xsd:dateTime).
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" }
}
Une frise chronologique des femmes philosophes nées entre 1700 et 1730.

4.2 Wikidata Graph Builder

De multiples outils apportent des aides à l’interrogation, Wikidata Graph Builder permet de visualiser sous forme de graphe des relations hiérarchiques créées par des propriétés comme P279sous-classe de“, P361 “partie de”, P2579 “discipline dont c’est l’objet” et autres. Le graphe suivant représente les P279 “sous-classe de” de Q571livre” sur une profondeur de 2 niveaux. “Un livre” est ainsi une sous-classe de “objet de collection”, lui-même sous-classe “d’objet”, sous-classe “d’entité” (Figure 1).

La propriété P1552 “caractérisé par” nomme les qualités attendues, possibles à qualifier et pour certaines quantifier. On obtient ainsi pour un livre (Q571, P1152) les caractéristiques (titre, auteur, maison d’édition, lieu de publication, date de publication, ISBN, etc). Si nous nous intéressons à Q5être humain” et à P279sous-classe de” par exemple, celui-ci est de la classe Q15978631 “Homo sapiens” et admet comme classe supérieure personnepersonne physique et omnivore. Le graphe suivant (Q5, P279) (Figure 2) représente cela.

Les sous-classes d’astronome (Q11063, P279), de professeur des écoles (Q2251335, P279) ou les catégories d’œuvres littéraires (Q7725634, P279) peuvent être visualisées sous forme de graphe. D’autres exemples incluent les taxons parents de la baleine (Q42196, P171), les enfants d’Agnès du Palatinat 1201-1267 (Q4450926, P40) sur trois générations. Des choses instructives ou amusantes se montrent possibles.

  • Wikidata Graph Builder, AngryLoki : Lien
  • Wikidata:Tools : Lien
  • Wikidata: Outils / Visualiser les données : Lien
Figure 2 : Arbre des classes obtenu à l’aide de la propriété P279 “sous-classe de” pour la classe Q5 “être humain” : Lien

Conclusion

Nous en savons maintenant plus sur les instructions SELECT, WHERE, SERVICE, LIMIT et ORDER BY de Sparql ainsi que sur Wikidata et quelques outils dédiés à la visualisation. La prochaine partie de ce tutoriel va concerner les groupes (famille, amis, cercles de pensées, sphères d’influence) et les organisations (associations, administrations, écoles, entreprises) dans Wikidata. A suivre !

Bibliographie

  • Wikidata donne des ailes au savoir libre, Lydia Pintscher, 2019, moz://a : Lien
  • Wikidata: a free collaborative knowledgebase, 2014, Communications of the ACM, Denny Vrandečić , Markus Krötzsch : Lien
  • À quoi sert le web sémantique, en Histoire et Philosophie des Sciences et des Techniques ?, 2013, Semantic HPST, P. Couchet : Lien
1 Star2 Stars3 Stars4 Stars5 Stars (Pas encore noté)
Loading...

Laisser un commentaire