SPARQL et Wikidata. Partie 1 : les personnes

“Sparkle” signifie en anglais “éclat”, “étincelle”, “scintillement”, et le langage SPARQL (SPARQL Protocol and RDF Query Language) ne manque pas d’attirer l’attention de divers publics. On peut brièvement rappeler les notions principales du web sémantique. Des bases de données ouvertement accessibles peuvent être bâties à l’aide de vastes ensembles de triplets. Un triplet correspond à une déclaration du type SPO (“sujet“, “prédicat“, “objet“) dans laquelle le sujet (premier membre du triplet) nomme l’entité à décrire, le prédicat ce qui doit être décrit et l’objet la valeur de description. Des applications nommées triplestores permettent le stockage et l’interrogation des données.

Des exemples de triplets peuvent être pris : 1/ (“Bob“, “est âgé de“, “29 ans“), 2/ (“Bob“, “connaît“, “Alice“), 3/ (“Alice“, “est auteur de“, “Grâce et Dénuement“) – un roman d’Alice Ferney publié en 1997. Des entités comme (“Bob“, “Alice”, “Grâce et dénuement“) peuvent jouer selon les cas les rôles de sujet (localisé en 1ère position du triplet) ou bien d’objet (3ème position). Ils sont appelés Éléments dans Wikidata. Les éléments peuvent jouer le rôle de sujet ou d’objet. Ainsi, “Bob” constitue le sujet du premier et second triplet. “Alice” est objet du second triplet et sujet du troisième. Les prédicats (“est âgé de“, “connaît“, “est auteur de“) correspondent dans cet exemple semi-fictif à des propriétés qui apportent des renseignements factuels sur les éléments encore appelés affirmations. Les sujets et prédicats sont caractérisés par leur IRI (Internationalized Resource Identifier), une courte chaîne de caractères identifiant une resource sur le web. L’objet peut selon les cas être renseigné par un IRI spécifique d’une entité ou bien par une valeur alphanumérique ou logique (un littéral).

Chaque élément peut être globalement caractérisé par son appartenance à zéro, une ou plusieurs classes. Par exemple, Bob et Alice sont de la classe “être humain”; “Grâce et dénuement” est de la classe “œuvre écrite”. Nous voyons bien ainsi que “être de la classe” (“être du type“, “être une instance de“, “être de la catégorie“) est une sorte de prédicat qui joue un rôle très particulier: cette propriété détermine la liste des autres prédicats qui s’avèrent pertinents pour décrire un élément. La liste des prédicats ainsi que les règles de leur utilisation définissent l’ontologie. Plusieurs triplets énoncés successivement rendent possible une forme de raisonnement basique. Des deux énoncés 2/ (“Bob“, “connaît“, “Alice“) et 3/ (“Alice“, “est auteur de“, “Grâce et Dénuement“), on peut déduire 4/ (“Bob“, “connaît / l’auteur de“, “Grâce et dénuement“) et le personnage fictif Ève peut poser une requête listant tous les livres dont les auteurs sont connus de Bob.

Une base sémantique peut être interrogée ou parcourue au choix à l’aide d’un moteur de recherche classique ou bien interrogée à l’aide du langage de requête SPARQL défini par le W3C (World Wide Web Consortium). Cet organisme a pour objectif de promouvoir les formats et les standards du web. Des commissions travaillent sur divers projets. Les travaux du groupe “RDF Data Access Working Group” (DAWG) débutent en 2007. Une première version de SPARQL est publiée en 2008, suivie de la version 1.1 en 2013. La syntaxe de SPARQL doit beaucoup à SQL (Structured Query Language), le langage de requête des bases de données relationnelles. Il en empreinte la finalité : fournir suite à une requête une réponse présentée sous forme d’un tableau de données ordonné.

Quid de Wikipédia et Wikidata ? Suite à une première tentative inaboutie de création d’une encyclopédie libre avec comité de lecture traditionnel, Jimmy Wales crée en 2001 le projet participatif multilingue Wikipédia basé sur le logiciel MediaWiki. Les données sont diffusées sous licence libre CC0 proche du domaine public. L’encyclopédie fonctionne sans comité de lecture nommé, mais non sans contrôles humains et robotisés. Le support en TeX des formules mathématiques est ajouté en 2003. S’ensuivent la même année la création de la Fondation Wikimedia, un organisme à but non lucratif dédié aux aspects financiers. D’autres sites participatifs sont ensuite créés comme Wikiquote dédié aux citations, Wikibooks pour les livres en libre accès. Puis s’ensuivent la médiathèque centralisée Wikimedia Commons (2004) dédiée au stockage des photos, graphiques, cartes, sons et vidéos, suivi de Wikispecies (2004), Wikiversité (2006) et d’autres. Les infobox des articles de Wikipédia – ces notices rassemblant les éléments factuels des articles, sont créées en 2004. La possibilité de sourcer les articles à l’aide de références bibliographiques et de notes de bas de page est mise au point en 2005.

L’association Wikimedia Deutschland initie en 2012 le projet Wikidata. Les renseignements factuels en provenance notamment des infobox et initialement de la base de connaissance Freebase se trouvent collectés et centralisés. Wikidata emploie un vocabulaire dédié (glossaire multilingue) pour nommer les objets manipulés. Au terme français Élément qui désigne l’entité susceptible de jouer le rôle de sujet ou d’objet correspond l’anglais Item et l’allemand Objekte. Le prédicat est généralement nommé propriété dans Wikidata, et objet est désigné valeur, si bien que le triplet sémantique de base SPO (“sujet“, “prédicat“, “objet“) prend dans Wikidata l’appellation SPV (“sujet“, “propriété“, “valeur“) / (“subject“, “property“, “value“) / (“Subjekt“, “Eigenschaft“, “Wert“). Plus de 95 millions d’éléments (assurément sujet, possiblement valeur) et environ 9200 propriétés sont référencés en 2021.

La base Wikidata intéresse tout particulièrement les bibliothèques, les archives et les musées au niveau national et local. Des bibliothèques comme la BnF, ou bien l’ABES contribuent de diverses manières à l’enrichir : indirectement en signalant dans leurs fonds et bases des liens vers Wikidata. Directement, en contribuant lors d’actions médiatisées à enrichir Wikidata. Des projets de recherche se servent également de Wikidata ou bien étudient ses contenus. Les Archives nationales françaises ont entrepris d’importants efforts dans le but de mettre à disposition sur Wikimedia Commons des documents significatifs de leurs collections numérisées. Des archives municipales, départementales, des organismes producteurs d’images, de documents sonores ou audiovisuels leurs emboîtent le pas. Le référencement dans Wikidata des subdivisions territoriales et entités administratives est organisé au niveau national.

Les musées s’intéressent également à l’ouverture des données. Créée en 2019, la Plateforme Ouverte du Patrimoine (POP) met en ligne six bases de données (Joconde, Mérimée, Palissy, Mémoire, MNR, Autor) possibles à télécharger sur l’entrepôt de données “data. culture.gouv.fr”. Des travaux sont menés en 2017 par Shonagon (anonyme) et d’autres dans le but de porter sur Wikidata des salles et contenus de la galerie de peinture du Louvre. Paris Musées regroupe depuis 2013 les musées de Paris et dispose de son site propre. Le British Museum se montre également présent sur Wikidata. Les initiatives se montrent nombreuses pour diffuser une partie non négligeable du patrimoine des GLAM (Gallery, Library, Archives & Museum) sur Wikimedia Commons et sur Wikidata. Un projet vise à référencer l’ensemble des peintures visibles dans les musées.

Ce tutoriel montre quelques unes des possibilités du langage SPARQL sur Wikidata. La syntaxe est progressivement exposée et des liens vers l’interface d’interrogation permettent de vérifier et éventuellement modifier les requêtes pour les adapter à vos préoccupations. De premières questions relatives à la description des personnes sont ici posées et commentées.

  • Wikipédia:Historique de Wikipédia en français : Lien
  • How to Link Your Institution’s Collections to Wikidata? : a short manual to a semi-automatic way of using the “archives at” property (P485), 2020, Bolliger, Stephanie et Al. : Lien
  • Commons:Paris Musées : Lien
  1. A propos de Wikidata
  2. Structure des données
    • 2.1 Notice des éléments
    • 2.2 Notice des propriétés
    • 2.3 Précisions sur les déclarations
  3. Notions de syntaxe SPARQL
    • 3.1 Wikidata Query Service
    • 3.2 Structure d’une requête
    • 3.3 Une première requête
    • 3.4 Une deuxième question
  4. Requêtes sur les personnes
    • 4.1 Propriétés relatives aux personnes
    • 4.2 Personnes simples
    • 4.3 Personnes liées à une personne simple
    • 4.4 Une liste de personnes
  5. Pour aller plus loin
    • 5.1 Mémoriser des requêtes SPARQL avec LinkedWiki
    • 5.2 Se servir et contribuer à Wikidata
    • 5.3 Interrogation d’autres bases
    • 5.4 Suivre d’autres tutoriels
    • 5.5 Le paradoxe de la propriété P31

Voir aussi : Partie 2

1. À propos de Wikidata

Wikidata est une initiative de Wikimedia Deutschland débutée en 2012 sous la direction de Denny Vrandečić et de Markus Krötzsch. Parmi les membres du groupe recruté à cette époque John Erling Blad, Abraham Taherivand, Lydia Pintscher, Jens Ohlig et d’autres. Le développement d’une base de connaissance dérivée essentiellement des infobox de Wikipédia et conforme aux standards du web de données est entrepris. 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, des moteurs de recherche Google et Yandex. Les développements débutent en Allemagne. Une échelle industrielle est visée : le fonctionnement de services multiples est attendu en aval. En matière d’éthique, de règles éditoriales, de licences et droits de copie, Wikipédia et Wikidata obéissent à un ensemble de directives, de formalismes et d’aspect juridiques bien documentés.

Précédemment, Google avait lancé en version bêta en 2008 son projet Knol d’encyclopédie participative, sans le succès escompté. Dans le but de fournir des renseignement supplémentaires aux utilisateurs suite à une requête, le moteur de recherche rachète en 2010 la base de connaissance Freebase. La base sert à la constitution en 2012 de la base de connaissance privée Knowledge Graph, accessible de nos jours par son API. Google embauche en tant qu’ontologiste Vrandečić à partir de 2013. Puis Freebase est placé en domaine public et donné à Wikidata à partir de 2014.

  • Knol beta, A unit of knowledge, 2008-2012 : Lien
  • Freebase (database), 2007-2016 : Lien
  • Denny Vrandečić, Research at Google, 2014 : Lien
  • Wikidata: a free collaborative knowledgebase, 2014, Communications of the ACM, Denny Vrandečić , Markus Krötzsch : Lien
  • Wikidata donne des ailes au savoir libre, Lydia Pintscher, 2019, moz://a : Lien
  • Wikipédia, Citez vos sources : Lien
  • Wikipédia, Aide:Infobox Wikidata : page d’aide sur le fonctionnement des infobox : Lien
  • Wikidata Personnes vivantes : Lien
  • Wikidata Help:Copyrights : Lien
L’équipe 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

Au niveau technique, les serveurs de Wikidata pour l’Europe sont localisés aux Pays-Bas. La société suédoise Addshore d’Adam Shorland gère de nos jours plusieurs aspects des développements et documente l’architecture informatique (Figure 1). Wikidata repose sur un ensemble de logiciels libres pour la plupart. Le moteur de wiki MediaWiki étendu à l’aide du plugin Wikibase motorise l’accès aux notices de la base de connaissance.

Les fonctionnalités de triplestore sont assurées à l’aide de la base de donnée orientée graphe et opensource Blazegraph. Localisée en aval, l’interface web d’aide à la formulation de requêtes SPARQL et d’affichage des résultats est constituée de la bibliothèque javascript YASGUI (Yet Another SPARQL GUI). En terme d’ergonomie, la requête SPARQL et les résultats de la requête sont visibles simultanément. Les résultats peuvent être visionnées sous forme de tableau, et en cas de question posée de manière adéquate sous forme de graphe, de cartes ou de frise chronologique. Des aides et possibilités de mémorisation des requêtes complètent l’interface.

  • Wikidata Architecture Overview (diagrams), Addshore, 2018 : Lien
  • Wikibase : Lien
  • Wikibase/API/fr : Lien
  • Blazegraph : Lien
  • YASGUI, Triply, documentation : Lien
Figure 1 : Architecture informatique de Wikidata : Lien

Wikidata est l’instance la plus connue de MediaWiki / Wikibase mais n’est pas la seule. Wikibase motorise également et depuis 2017 Wikimedia Commons. Le projet linguistique “Lingua Libre” de même que le projet de référencement de faits historiques FactGrid (Centre de Recherche de Gotha à l’Université d’Erfurt), le projet Europeana EAGLE (Istituto Italiano per la Storia Antica) de collecte des inscriptions latines et grecques européennes, ou bien encore Open Street Map (cartographie collaborative) se servent d’une manière ou d’une autre de ce module pour gérer les connaissances entreposées. Le projet Biblissima (observatoire du patrimoine écrit du Moyen Âge et de la Renaissance) utilise également le même dispositif notamment pour référencer des images de manuscrits accessibles en haute résolution à l’aide du protocole IIIF. Biblissima+ prend le relai pour les années 2021 à 2029.

  • Wikibase : Lien
  • Données structurées, la puissance de Wikidata au service de Wikimedia Commons, 2017, arbido, Rama Neko : Lien
  • Lingua Libre, Wikimédia France : Lien
  • FactGrid, a database for historians : Lien, Blog
  • Europeana EAGLE project : Lien
  • Wikidata:OpenStreetMap : Lien
  • Biblissima, Accueil : Lien
  • Biblissima+, Observatoire des cultures écrites anciennes, de l’argile à l’imprimé : Lien

Les actions d’envergure menées sur les contenus de Wikidata sont documentées dans des wikis spéciaux appelés Wikiprojets. Les objectifs des communautés sont d’uniformiser les pratiques en matière d’usage des propriétés et d’identifier des objectifs raisonnés pour la communauté d’enrichissement de la base. Le nombre des participants varie grandement selon les projets. Les échanges s’y trouvent documentés en anglais, et parfois en français et dans d’autres langues. On trouve classiquement dans un Wikiprojet une liste des participants, certains décrivent leurs activités personnelles ou professionnelles, leurs centres d’intérêts ou leurs contributions. Des liens vers des sous-projets ou bien vers les portails Wikimedia Commons ou des portails Wikipédia peuvent être présents.

  • Wikidata:Portail communautaire, fr : Lien
  • Wikidata:WikiProjets, la hiérarchie des Wikiprojets : Lien

Exemples de Wikiprojets en anglais et français :

  • Wikidata:WikiProject Ontology : Lien
  • Wikidata:WikiProjet métadonnées des références, fr : Lien
  • Wikidata:WikiProject Biographical Identifiers : Lien
  • Wikidata:WikiProjet Libre accès : Lien
  • Wikidata:WikiProject Biodiversity : Lien
  • Wikidata:WikiProjet Taxinomie, fr : Lien
  • Wikidata:WikiProject Philosophy : Lien
  • Wikidata:WikiProject Medicine : 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 Historical Place : Lien
  • Wikidata:WikiProject Women : Lien
  • Wikidata:WikiProject Archival Description : Lien
  • Wikidata:WikiProjet Livres, fr : Lien
  • Wikidata:WikiProject Periodicals : Lien
  • Wikidata:WikiProjet Musique : Lien
  • Wikidata:WikiProjet Films/Propriétés : Lien
  • Wikidata:WikiProject Museum : Lien
  • Wikidata:WikiProjet La somme de toutes les peintures : Lien
  • Wikidata:WikiProject sum of all paintings/Creator/Pierre-Auguste Renoir : Lien
  • Wikidata:WikiProject sum of all paintings/Top collections by number of paintings : Lien
  • Wikidata:WikiProject Applied arts : Lien
  • Wikidata:WikiProject Education : Lien
  • Wikidata:WikiProject Higher education : Lien
  • Wikidata:WikiProject Occupations and professions : Lien
  • Wikidata:WikiProject Citizen Science : Lien
  • Wikidata:WikiProject Sustainable Development : Lien
  • Wikidata:WikiProjet Entreprises, fr : Lien
  • Wikidata:WikiProject Economics : Lien
  • Wikidata:WikiProject Open Government Data : Lien
  • Wikidata:WikiProject Law : Lien
  • Wikidata:WikiProject France : Lien
  • Wikidata:WikiProject France/Politicians : Lien

L’association loi 1901 Wikimédia France apporte sa caution à plusieurs initiatives spécifiquement françaises ou francophones, établit des partenariats et poursuit des activités de formation, participe aux événements. Des projets d’ampleur sont menés par des organismes tels que la BnF, l’ABES, les Archives nationales ou bien par les écoles, universités et entités administratives, de même que les services de marketing et communication des entreprises, les personnalités politiques.

  • Wikimédia France : Lien
  • Wikipédia, Projet:Archives nationales (France) : Lien
Wikidata loves Gallery, Library, Archives and Museum, par Jason Evans (National Library of Wales), 2017 : Lien

2. Structure des données dans Wikidata

Toute entité décrite dans Wikipédia dispose d’une entrée Wikidata identifiée par son IRI (Internationalized Resource Identifier) constitué d’un identifiant comprenant la lettre Q suivie d’un numéro unique et prend la forme “https://www.wikidata.org/wiki/Qxxx”. L’IRI d’un élément connu peut être retrouvé à partir d’une entrée Wikipédia : on clique dans la barre latérale gauche sur “Outils” / “Élément Wikidata“. Il est encore possible de se servir du moteur de Wikidata localisé en haut à droite “Search Wikidata“. L’IRI de “roman” est https://www.wikidata.org/wiki/Q8261, l’identifiant du roman “Grâce et dénuement” est Q3118322.

Les propriétés sont identifiées par la lettre P suivie d’un numéro et l’IRI prend la forme “https://www.wikidata.org/wiki/Property:Pxxx”. L’URL https://www.wikidata.org/wiki/Property:P50 identifie la propriété auteur. Wikidata définit en 2021 9162 propriétés et comprend plus de 96 millions d’éléments.

Le choix d’identifier les éléments et les propriétés à l’aide de numéros impersonnels et peu parlants répond dans un contexte massivement multilingue à plusieurs nécessités: 1/ Des concepts présents dans une langue peuvent ne pas exister dans une autre langue. Ainsi le concept germanophone de Q1497087Geborgenheit” se montre spécifique de l’Allemand. 2/ Certains intitulés peuvent se montrer polysémiques. La chanteuse “Céline Dion” (personne) sort en 1992 l’album “Celine Dion” (enregistrement audio) et des pages spéciales permettent la désambiguïsation. 3/ Pourquoi privilégier la langue de Shakespeare plutôt que celle de Molière ou de Goethe ?

  • IRI d’un élément (sujet ou valeur) : https://www.wikidata.org/wiki/Q#
  • IRI d’une propriété : https://www.wikidata.org/wiki/Property:P#
  • Statistiques de Wikidata : Lien

2.1 Notice des éléments

Chaque élément dispose de sa notice descriptive affichant un ensemble de propriétés et de valeurs. Un encart affiche les libellés préférentiels (Label), une brève description (Description), les libellés alternatifs (Also known as). On peut se connecter à Wikidata et définir un langage préférentiel autre que l’anglais. Suivent ensuite dans la partie Statements traduit en français par Déclarations la liste des propriétés et des valeurs. La notice se termine par des liens vers les pages Wikipédia et les projets Wikimedias renseignés.

Tableau 1 : Notice Wikidata du roman Q3118322Grâce et Dénuement” d’Alice Ferney. La classe de l’objet est identifiée par la valeur de P31instance of” / “nature de l’élément“. Celle-ci prend la valeur Q47461344written work” / “œuvre écrite” : Lien

Parmi les déclarations, la propriété P31instance of / nature de l’élément” définit la classe de l’élément. Ainsi le livre “Grâce et Dénuement” est de la classe Q47461344œuvre écrite“. Un élément peut être décrit par aucune, une ou plusieurs classes. Les données peuvent être modifiées et sourcées si nécessaire.

2.2 Notices des propriétés

Les notices descriptives associées aux propriétés sont organisées de la même manière que celles des éléments. On trouve tout d’abord les libellés, descriptions et libellés alternatifs en diverses langues. Le champs “Data type” / “Type de données” indique le type de valeur attendu en renseignement de la propriété. Parmi les valeurs possibles : Item (un autre élément), External identifier (identifiant externe), String (chaîne de caractères), Globe coordinate (coordonnées géographiques), Mathematical expression (expression mathématique), etc. Dans l’exemple P50 “auteur” admet “Item” (élément) comme contrainte. Cette contrainte se montre faible : un auteur qui ne serait pas déjà entré dans Wikidata peut être renseigné sous forme de simple chaîne de caractère.

La propriété P50auteur

Des libellés alternatifs (AltLabel) français de “auteur” sont “romancier, nouvelliste, essayiste, écrivain, romancière, écrivaine, autrice, auteure, écrit par“. Les propriétés P170 “créateur” appellations alternatives “créé par, artiste, créatrice, peintre, sculpteur, photographe“, P57 “réalisateur ou metteur en scène“, P175 “interprète” se montrent également employés dans divers contextes créatifs. De manière générale, ce type de propriétés se trouve documenté sur la page : List of properties/art.

L’importante propriété P31instance of” / “nature de l’élément” définit la classe de l’élément. Un élément quelconque se trouve généralement décrit par la classe à laquelle il appartient. Les classes elles-mêmes peuvent être structurées en sous-classes. Un arbre des classes peut ainsi être tracé à l’aide de la propriété P279sous-classe de“. Comme le montre le graphe ci-dessous et à 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 est sous-classe de Q488383objet“, elle-même sous-classe de Q35120entité” localisé à la racine. Une visualisation de la hiérarchie peut être obtenue avec un outil de l’écosystème nommé “Wikidata Graph Builder” (Figure 2).

Figure 2 : 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

Les propriétés sont documentées de manière plus extensives avec “Property_talk”. Pour P50 auteur, on a : https://www.wikidata.org/wiki/Property_talk:P50.

Documentation de P50 “author” : Lien
  • Wikidata Help:Type de données : Lien
  • Wikidata Category:Properties by datatype : Lien
  • Wikidata: Liste des propriétés : Lien
  • Wikidata:List of properties/art : Lien
  • Wikidata Property Explorer : Lien

2.3 Précisions sur les déclarations

Des renseignements supplémentaires permettent d’apporter des précisions complémentaires sur une donnée. Une déclaration peut être qualifiée de trois manières différentes : 1/ Celle-ci peut être sourcée à l’aide de références bibliographiques (article scientifique, livre, site web et autres). 2/ Des qualificatifs peuvent être ajoutés. Dans le cas de la population d’un pays par exemple, il est souhaitable de préciser la date du recensement qui correspond à l’affirmation. Pour une personne tenant un rôle dans une organisation, on peut spécifier la date de début et de fin de prise de fonction. 3/ Lorsqu’une propriété est multivaluée comme par exemple pour la propriété P40 child/enfants, un rang peut être attribué à chacune des valeurs.

  • Wikidata Help:Sources : Lien
  • Wikidata Help:Qualificatifs : Lien
  • Wikidata Help:Rangs : Lien

3. La syntaxe de SPARQL

L’interface utilisateur Wikidata Query Service (WDQS) mise en place en amont du triplestore rend possible la visualisation simultanée des requêtes SPARQL et des résultats obtenus après lancement de la requête. WDQS correspond à une instanciation personnalisée de YASGUI (Yet Another SPARQL Graphic User Interface). Une interface et des aides particulières sont proposées.

3.1 Wikidata Query Service (WDQS)

https://query.wikidata.org/

Wikidata SPARQL query service

La requête SPARQL est écrite dans le formulaire et lancée à l’aide de la flèche bleue à gauche et les résultats s’affichent en bas sous forme de tableau ou de graphe (Figure 3).

Figure 3 : L’interface WDQS : Lien

Le bouton “Exemples” en haut à gauche donne accès à une liste d’exemples enregistrés par les utilisateurs. Le service “Assistant de requête” propose un formulaire d’interrogation qui rend possible la génération d’une requête en absence de connaissance de SPARQL. On peut par exemple sélectionner (“nature de l’élément”, “manuscrit”) et (“statut patrimonial” : “Mémoire du monde”) pour afficher une liste de 39 manuscrits déclarés par l’Unesco d’intérêt remarquable. La requête générée peut être copiée pour construire une requête plus complexe. De multiples formats d’export des résultats (HTML, XML, JSON, TSV, CSV, RDF binaire) sont possibles.

3.2 Syntaxe d’une requête

Les requêtes SPARQL intègrent des instructions spéciales parfois appelées clauses et notées ici en majuscule et en rouge. Le caractère # indique un commentaire. Des variables notées ici avec un point d’interrogation en première position et en vert sont présentes en diverse parties de la requête. Une requête commence par PREFIX facultatif, SELECT obligatoire, WHERE facultatif, et se termine éventuellement par un ou plusieurs modificateurs facultatifs : LIMIT, ORDER BY, GROUP BY, HAVING, OFFSET, BINDINGS.

a/ PREFIX : L’instruction PREFIX permet de déclarer un espace de nom sous forme abrégée. Les IRI d’une requête sont écrits au choix de manière longue ou abrégée. Ainsi, le sujet Q1 “univers” peut être noté dans SPARQL “<https://www.wikidata.org/entity/Q1>” ou bien “wd:Q1” avec le préfixe wd déclaré en début de requête.

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#>
  • SPARQL, Prefixes, Wikibooks, HenkvD : Lien
  • Wikibase/Indexing/RDF Dump Format/Full_list_of_prefixes : Lien

b/ SELECT : La clause SELECT spécifie essentiellement les variables à afficher en sortie. La valeur étoile (*) affiche toutes les variables présentes dans WHERE. La clause DISTINCT enlève les doublons dans les réponses dans lesquelles une même propriété serait renseignée plusieurs fois. Des exemples d’usage de SELECT :

SELECT ?sujet ?propriete ?valeur # Sélection des variables à afficher
SELECT *                         # Afficher toutes les variables
SELECT DISTINCT *                # Affiche une seule valeur de variable
  • SPARQL, SELECT, Wikibooks, HenkvD : Lien

c/ WHERE : L’instruction WHERE contient entre parenthèses un ou plusieurs motifs de triplets de la forme générale “?sujet ?propriete ?valeur . ” placés les uns à la suite des autres. Chaque motif de triplet ajouté restreint les données affichées de sorte que deux motifs qui s’ensuivent sont compris comme un ET logique. Les données affichées correspondent à celles qui satisfont les conditions du premier et du second triplet. Chaque motif de triplet se termine par un point.

Sept catégories de questions se montrent combinatoirement possibles en foction du positionnement de la variable ou des variables dans un triplet sémantique. Trois de ces catégories sont ici choisies et commentées à l’aide de l’exemple (Q3118322Grâce et Dénuement“, P31nature de l’élément“, Q47461344œuvre écrite“).

  1. Variable en troisième position. Un exemple de motif recherché serait “WHERE {wd:Q3118322 wdt:P31 ?valeur .}”. On pose ainsi la question des valeurs attribuées à un sujet et à une propriété connue. Cela correspond autrement dit à la question “Quelle sont les classes de l’item Grâce et dénuement“.
  2. Variable en première position. Exemple : “WHERE {?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 : “WHERE {wd:Q3118322 ?propriete ?valeur.}”. La question des couples propriété / valeur d’un item connu est posée. Le motif de triplet correspond à la requête : “Quel est l’ensemble des couples propriété / valeur de l’élément sujet Grâce et dénuement“.

Tout cela est un peu théorique, nous allons voir plus en détail et par la pratique.

  • Wikidata:Service de requête SPARQL/Aide sur le service de requête de Wikidata : Lien
  • SPARQL Protocol and RDF Query Language, WIKIVERSITE, par Karima Rafes : Lien

3.3 Une première requête

Commençons par une question stupide si vous le voulez bien (mais comprise par toute base sémantique) : 10 triplets quelconques de Wikidata sont recherchés (cliquez le lien ci-joint et appuyez sur la flèche bleue en bas à gauche pour lancer la requête). Requête 3.3 :

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

L’instruction SELECT en rouge précise les variables à afficher. Dans WHERE, un point conclut le motif de triplet. L’instruction LIMIT en fin de requête restreint l’affichage aux 10 premiers triplets. On a donc en réponse à cette requête un tableau de 3 colonnes et 10 lignes. Seules les 3 premières lignes sont reproduites ci-dessous. On remarque que le nom des colonnes correspond au nom des variables sans le point d’interrogation et que les résultats contiennent de nombreaux liens.

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.4 Une deuxième question

Quels émotions positives sont référencées dans Wikidata ? Une requête sur les instances P31 de la classe Q60539479émotion positive” est posée. L’IRI de l’émotion de même que le libellé en français sont recherchés. Les deux premières lignes du bloc WHERE correspondent à deux conditions qui doivent être toutes les deux satisfaites. Le traitement de la troisième ligne permet la récupération du libellé français du Q élément. Requête 3.4 :

# Recherche d'émotions positives, requête 3.4
SELECT ?sujet ?label # Sélection des variables à afficher
WHERE { 
  ?sujet wdt:P31 wd:Q60539479.            # entités "émotions positives"
  ?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
  • SPARQL FILTER, Wikibooks, HenkvD : Lien
sujetlabel
wd:Q8bonheur
wd:Q190507espoir
wd:Q203994euphorie
3 émotions positives

Nous pouvons maintenant explorer la structure graphique de “bonheur”. Une loupe se trouve présente dans WDQS à gauche de wd:Q8 dans la colonne “sujet”. L’indication “Explore item” s’affiche en survol. On clique et on obtient le sympathique graphe interactif (Figure 4).

Figure 4 : Graphe des propriétés de l’élément Q8 “bonheur

Les propriétés représentées dans ce graphe sous forme d’arêtes dirigées proposent des liens vers d’autres éléments Q#.

Une autre manière d’explorer le concept de bonheur wd:Q8 avec SPARQL est de se servir de DESCRIBE. L’ensemble des triplets dont l’objet est “bonheur” est retourné et tout cela est assez peu lisible. Requête 3.4 bis :

# Décrire le bonheur wd:Q8 avec DESCRIBE
DESCRIBE wd:Q8

4. Requêtes sur les personnes

Les personnes sont nommées de manière indépendante de la période historique, des habitudes culturelles et linguistiques sous Wikidata. 9,31 millions d’individus de toutes nationalités, de toutes époques se trouvent actuellement décrits en plus de 130 langues, ce qui représente 8,9 % des contenus de Wikidata. Les éléments et propriétés renseignés se montrent assez variables et nous pouvons sommairement explorer cela.

4.1 Propriétés relatives aux personnes

Des gabarits pour les Infobox de Wikipédia, de même qu’un Wikiprojet dédié fournissent diivers renseignements. Il est recommandé de se référer à des listes d’autorités pour identifier et normaliser la notation des noms.

  • Template:Person properties : Lien
  • Template:France properties : Lien
  • Wikidata:WikiProjet Noms/Propriétés : Lien

Certaines propriétés relatives aux personnes se montrent fréquemment renseignées.

  • Espace : des informations comme P19lieu de naissance“, P20lieu de mort“, P119lieu de sépulture“, P69scolarité“, P551résidence“, P485archivé par” apportent des informations de géolocalisation.
  • Temps : 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 en qualifiquatif.
  • Autre : P101domaine d’activité“, P106occupation“, P463 “membre de“, P39fonction“, date de P166distinction reçue“. Des classes et sous-classes définissent les activités et peuvent servir d’élément factuel en vue d’établir une biographie.

4.2 Personnes simples

Tous les renseignements de Wikidata concernant Alice Ferney sont recherchés avec SPARQL. “SELECT *” signifie que toutes les variables présentes dans WHERE sont 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 le libellé préférentiel (rdfs:label) contient en français Alice Ferney. Le deuxième motif (?sujet ?propriete ?valeur.) permet l’affichage de l’IRI des propriétés et des valeurs. Requête 4.2.1 :

# Triplets relatifs à l'auteure "Alice Ferney", requête 4.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

Alice Ferney est décrite dans Wikidata à l’aide de 148 triplets dont les trois premiers sont ici affichés. On remarque dans la liste complète des résultats les préfixes wd (sujet et valeur), wdt, wdtn, “schema:description”, “rdfs:label”, “skos:altLabel” (propriété) qui renseignent sur les ontologies utilisées. Les noms alternatifs d’Alice Ferney : Cécile Brossollet et Cécile Brossollet Gavriloff sont mentionnés. Une image en accès libre localisée sous Wikimédia Commons se trouve en valeur de la propriété P18image“.

Un affichage alternatif de cette collection de triplet correspond à la page https://www.wikidata.org/wiki/Q2836569. On remarque au passage les identifiants dans les catalogues de diverses bibliothèques numériques et physiques. Il est possible en particulier de noter la présence des identifiants internationaux VIAF, ISNI et WorldCat (codes internationaux normalisés des personnes et organismes), l’identifiant IdRef du SUDOC, BnF ID. Le knowledge graph de Google /g/12nx4kdnx de même que d’autres sites web fournissent des renseignements complémentaires.

Une notation alternative de WHERE est souvent employée dans les requêtes. La variable ?sujet est présente plusieurs fois en début de motif. Elle peut être omise sur la deuxième ligne si le premier triplet se conclut par “point-virgule” en lieu et place “point”.

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

Dans cette autre requête, 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é” sont recherchées. Quatre motifs de triplets sont écrits, correspondant à quatre lignes dans la clause WHERE qui partagent tous le même sujet.

# 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 Ferney12947466j056544731wd:Q273518
Alice Ferney12947466j056544731wd:Q273642

La réponse contient deux lignes car la variable ?scolarite contient deux valeurs : Q273518, “École des hautes études en sciences sociales” et Q273642 “École supérieure des sciences économiques et commerciales”.

Nous faisons appel dans la requête suivante au service “wikibase:label” de Wikidata afin de faciliter l’accès à un ensemble de variables descriptives supplémentaires. Dans la partie SELECT, Les variables “?scolariteLabel”, “?scolariteDescription”, “?scolariteAltLabel” deviennent disponibles du fait de l’ajout dans le bloc WHERE de l’instruction de la troisième ligne “SERVICE wikibase:label”.

  • en.wikibooks SPARQL/SERVICE – Label : Lien
# 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 de la notice d’autorité d’Alice Ferney (ou de toute autre personne de Wikidata en modifiant l’identifiant Q# présent en deux endroits de la requête). 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 maternellewd:Q150français
wdt:P106occupationwd:Q1914832maître de conférences
wdt:P106occupationwd:Q36180écrivaincommons:Kusakabe Kimbei – Writing Letter (large).jpg
wdt:P108employeurwd:Q13334université d’Orléanscommons:Orléans – parc floral (28).jpg
wdt:P184directeur de thèsewd:Q1001839François Bourguignon
5 première lignes de la notice d’autorité d’Alice Ferney, avec image associée

4.3 Personnes liées à une personne simple

Plusieurs personnes se trouvent fréquemment liées par un réseau de propriétés. Nous allons ici explorer la direction de thèse d’Alice Ferney et l’homonymie du nom de famille.

4.3.1 Directeur de thèse : François Bourguignon a dirigé la thèse d’Alice Ferney et nous souhaitons connaître les noms des docteurs dirigés par cet économiste disparu en 2018, de même que celui des doctorants ayant eux-mêmes formé des docteurs. 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 ou par des docteurs devenus eux-mêmes directeurs de thèse.

# 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". }
}

4.3.2 Recherche de personnes portant le nom de famille “Ferney”. Nous allons dans cette série de requêtes montrer plusieurs manières de poser la même question et introduire la notion de chemin de propriété correspondant à l’implémentation de l’inférence dans SPARQL. La propriété P734nom de famille” permet de fabriquer un motif de triplet qui affiche les personnes portant le même patronyme.

# Personnes portant le nom de famille "Ferney", requête 4.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”. Le libellé “Ferney” en français est recherché en lieu et place de l’identifiant d’Alice Ferney :

# 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 spécifiant non pas une propriété simple mais un chemin de propriété (une inférence) avec l’instruction “/”. Des métacaractères comme “/, +, *, |” permettent de chercher des triplets ne possédant pas une seule propriété simple mais un chemin de propriété, ce qui permet d’élargir les questions et nombres de réponses. Requête 4.3.b. Deux personnes homonymes sont trouvées Alice et Liam Ferney sans relation entre elles apparemment :

  • SPARQL/Property paths, Wikibooks, HenkvD : Lien
  • Nouveautés de SPARQL 1.1, les chemins, Julien Plu, 2012 : Lien
# 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 personnes portant le patronyme “Ferney” dans Wikidata

Si l’on fait appel à l’Explorer pour visualiser le graphe d’Alice Ferney :

Figure 5 : Graphe de l’élément Q2836569Alice Ferney

4.4 Une liste de personnes

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

4.4.1 10 personnes de Wikidata au hasard, avec affichage du libellé, de la description et des noms alternatifs sont recherchées. Le nom des personnes de la classe Q5 “être humain” est affiché.

# Recherche de 10 personnes avec nom, description, noms alternatifs, requête 4.4.a
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

4.4.2 Philosophes et sociétés de philosophie vers 1910 : Les philosophes nés entre 1880 et 1900 et les sociétés auxquelles ils ont appartenu 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. On remarque les sociétés “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 4.4.b
SELECT ?sujet ?sujetLabel ?paysLabel ?membre_deLabel ?datenaissance ?genreLabel
WHERE {
  ?sujet wdt:P106 wd:Q4964182.             #occupation : Philosophe
  ?sujet wdt:P27 wd:Q142.                  #pays de citoyenneté: France
  ?sujet wdt:P27 ?pays.                    
  OPTIONAL{?sujet wdt:P463 ?membre_de.}    # membre de
  OPTIONAL{?sujet wdt:P569 ?datenaissance.}
  OPTIONAL{?sujet wdt:P21 ?genre.}         # genre
  FILTER("1880-01-01"^^xsd:dateTime <= ?datenaissance && ?datenaissance < "1900-01-01"^^xsd:dateTime).               # date de naissance
  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

4.4.3 Agrégation avec GROUP BY et GROUP_CONCAT : Bernard Groethuysen possède une double nationalité si bien que deux lignes renseignent les deux valeurs de paysLabel. Nous souhaiterions que les éventuel champs répétés (dates, activités professionnelles, nationalités) soient affichées concaténées dans une même cellule. La requête est étenduée aux philosophes de toutes nationalités : Requête 4.4.c

# Philosophes nés entre 1880 et 1890
SELECT
  ?sujet
  (SAMPLE(?anneeValeur) AS ?dateNais)
  ?sujetNom ?sujetDescription
  (GROUP_CONCAT(DISTINCT ?occupationNom;separator=", ") AS ?professions) 
  (GROUP_CONCAT(DISTINCT ?paysNom;separator=", ") AS ?pays)
WHERE {
  ?sujet wdt:P106 wd:Q4964182.     #occupation philosophe
  ?sujet wdt:P106 ?occupation.     #toutes les occupations
  ?sujet wdt:P27 ?pays.            #pays de citoyennté
  ?sujet wdt:P569 ?dateN.          #annee nais format date
  BIND(REPLACE(STR(?dateN), 'T.*', '') AS ?annee) # annee nais format chaine 
  FILTER("1880-01-01" <= ?annee && ?annee < "1891-01-01").
  SERVICE wikibase:label { 
    bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".
    ?sujet rdfs:label ?sujetNom .
    ?sujet schema:description ?sujetDescription .
    ?pays rdfs:label ?paysNom .
    ?occupation rdfs:label ?occupationNom .
    ?annee rdfs:label ?anneeValeur .  # annee nais format libellé
  }
} 
GROUP BY ?sujet ?sujetNom ?sujetDescription
ORDER BY ?dateNais

Si la requête est lue du bas vers le haut, le modificateur d’instruction “GROUP BY” crée une agrégation sur le sujet et ses variables dérivées “?sujet ?sujetNom ?sujetDescription”. Les libellés (?sujetNom ?paysNom ?occupationNom ?anneeValeur) sont recherchés à l’aide du service “SERVICE wikibase:label”. La clause “BIND” permet d’afficher l’année de naissance au format AAAA-MM-JJ à partir de la date complète et de l’affecter à la variable ?annee au format “chaîne de caractère”. Dans SELECT, les instructions “GROUP_CONCAT” en début de requête permettent la concaténation des champs multivalués. “SAMPLE” permet de n’afficher qu’une date de naissance. Les dates de naissance peuvent varier selon la langue des articles Wikipédia qui décrivent le même sujet.

Dans notre cas et en 2021, la requête fournit (en étant patient) 648 résultats paginés par défaut par groupe de 200. Les possibilités d’exploration du corpus incluent un tri par champs de même qu’une recherche à l’aide d’un formulaire localisé en haut du tableau à droite. Nous cherchons “France” et 58 résultats s’affichent. Les résultats dans leur ensemble peuvent être téléchargés au format CSV et une manipulation des données à l’aide d’un tableur se montre possible. Il devient finalement relativement aisé d’en savoir plus sur le philosophe franco-allemand Bernard Groethuysen, ou bien de modifier quelque peu cette requête pour aborder un tout autre sujet.

  • Wikidata:SPARQL query service/queries/examples/human/fr : Lien
  • en.wikibooks SPARQL/Aggregate functions : Lien
  • en.wikibooks SPARQL/Expressions and Functions : Lien
sujetdateNaissujetNomsujetDescriptionprofessionspays
wd:Q28980001880-01-09Bernard Groethuysensociologue et philosophe allemand du XXe siècleécrivain, traducteur, professeur d’université, philosophe, historien de la littératureFrance, Allemagne
wd:Q31857361880-07-02Joseph Vialatouxphilosophe françaisphilosopheFrance
wd:Q13991191880-12-06Pierre Boutrouxmathématicien français et historien des sciencesprofesseur, mathématicien, philosopheFrance
wd:Q28477431881-02-17André FauconnetFrench philosopher and writerécrivain, philosopheFrance
wd:Q1895641881-05-01Pierre Teilhard de Chardinprêtre jésuite, théologien, philosophe, paléontologue, anthropologue et géologue français (1881-1955)théologie, écrivain, prêtre catholique, géologue, paléontologue, philosophe, paléoanthropologue, scientific collectorFrance

5. Pour aller plus loin

5.1 Mémoriser des requêtes SPARQL avec LinkedWiki

LinkedWiki est développé par Karima Rafes du Center for Data Science de l’Université Paris-Saclay. La plateforme se base sur l’extension LinkedWiki de MediaWiki. Cette base de données répertorie 136 points d’accès SPARQL et 1079 requêtes en 2021. Il est possible depuis cette plateforme d’explorer les requêtes mémorisées, de les lancer et de visualiser les résultats dans l’interface du site. Des vues sous forme de tableau, de carte géographique ou cloroplèthe, de camembert, de frise chronologique, de diagramme à barre, sont possibles.

Un moteur de recherche à facettes permet d’explorer la diversité des questions posées, de les ordonner par popularité. Les questions servent en aval à alimenter des outils d’auto-complétions disponibles sur le site LinkedWiki. Un plugin dédié à l’extension des fonctionnalités de plusieurs éditeurs de textes est également publié. Tout le monde peut mémoriser des requêtes sur LinkedWiki. Il est possible en cas d’inscription de mémoriser des requêtes accessibles de manière privée uniquement.

  • LinkedWiki, requêtes Sparql posées sur Wikidata : Lien
  • LinkedWiki, philosophes nés entre 1880 et 1890 dans Wikidata : Lien
  • LinkedWiki, Personnes récompensées en évolution et préservation de l’environnement : Lien

5.2 Se servir et contribuer à Wikidata

Il est possible de se servir de Wikidata pour endichir la médiathèque Wikimedia Commons. Des données descriptives peuvent être ajoutées à une image. Il est possible de sélectionner sous l’image en vue détaillée l’onglet “Structured data” et d’ajouter à l’aide du formulaire les éléments appropriés. Un moteur de recherche permet de sélectionner parmi une liste. L’image d’un catalogue de bibliothèque se voit ainsi enrichie de la déclaration (“depicts”, “library catalog”). Wikimedia Commons n’existe qu’en anglais.

Une image dans Wikimedia Commons indexée à l’aide de Wikidata : Lien

La base Wikidata se montre collaborative depuis le 4 février 2013 : n’importe qui peut ajouter ou modifier une propriété. Pour ajouter une déclaration, aller sur l’élément de Wikidata correspondant à un article en cliquant sur “Modifier les liens”. Dans la section Déclarations, cliquer sur ajouter. Il faut alors choisir la propriété, c’est-à-dire le type de donnée que vous voulez insérer. Écrire ensuite le nom d’un élément et enregistrer. On peut par exemple utiliser la propriété “lieu de naissance” et ajouter “Fontenay-sous-Bois” à l’élément “André Fauconnet”.

La nature des valeurs peut être un lien vers un autre élément, vers un contenu de Wikimedia Commons (une image, un son, une vidéo), une chaîne de caractères (strings) comme l’ISBN, le VIAF. Des contraintes permettent d’améliorer la qualité. Des outils particuliers permettent de prévenir le vandalisme et d’identifier l’adresse IP d’éventuelles personnes malveillantes. Il est également possible d’ajouter des jeux de données structurées dans Wikidata. Quelques précautions s’avèrent toutefois nécessaires pour qu’un traitement programmé se montre réussi. Des aides peuvent être fournies par les membres. Une liste de suivi permet d’être prévenu lorsqu’un élément d’intérêt a été modifié : cliquez sur l’étoile située en haut à droite de la page.

  • Wikidata:WikiProject Datasets : Lien
  • Wikidata:WikiProject Datasets/Data Structure/Recommendations on datasets that serve as sources for data ingestion in Wikidata : Lien
  • Wikidata:Aide:Liste de suivi : Lien
  • Wikidata:Bistro : Lien
  • Building automated vandalism detection tools for Wikidata, 2017, Amir Sarabadani, Aaron Halfaker, Dario Taraborelli : Lien

5.3 Interrogation d’autres bases

Pour conclure ce petit tutoriel, il est possible de préciser que d’autres triplestores peuvent être interrogés à l’aide du même langage SPARQL. Seuls les identifiants des éléments et les valeurs des propriétés seront à changer. Parmi les triplestore d’intérêt pour les GLAM, on peut citer :

  • henriponcare.fr (LHSP-AHP, correspondance d’Henri Poincaré)
  • data.bnf.fr (BnF, littérature et journeaux français, dépot national)
  • Actualités du catalogue nº 50 (décembre 2020), BnF : Lien
  • SNORQL-CM (Equipex Biblissima, manuscrits Renaissance)
  • data.idref.fr (ABES, littérature scientifique)
  • Science+ (ABES, littérature scientifique)
  • sparql.HAL (CNRS, INRIA, Université de Lyon, INRAE, littérature scientifique)
  • data.persee.fr (ENS Lyon, littérature scientifique ancienne)
  • data.istex.fr (INIST, littérature scientifique)
  • Isidore.sqe (Huma-Num, données en sciences humaines et sociales)
  • nakala (Huma-Num, données en sciences humaines et sociales)
  • COCOON (LACITO – UMR7107, LLL – UMR7270, Huma-Num, corpus d’interviews et d’histoires enregistrées)
  • LARHRA (Université de Lyon, données historiques)
  • Dictionnaire des francophones (Francophonie, vocabulaire francophone)
  • bnb.data.bl.uk (British Library, catalogue bibliographique britanique)
  • OpenCitations (Université de Bologne, Oxford, littérature scientifique et citations de littérature)
  • Europeana (Europe, éléments de culture européenne)
  • MeSH (NIH, littérature scientifique internationale dans le domaine de la biologie et de la médecine)

LinkedWiki référence ainsi 130 points d’accès publics effectifs en 2021.

5.4 Suivre d’autres tutoriels

Plusieurs ressources, MOOC et didacticiels permettent d’en savoir plus sur le web de données, les ontologies, SPARQL, Wikidata et ce genre de chose.

  • Wikidata:MOOC/Course outline : Lien
  • MOOC Wikidata. Le MOOC Wikidata vous invite à découvrir le projet de plus grande base de connaissances ouverte au monde, son fonctionnement, ses règles, sa communauté et la manière dont la fiabilité de son contenu est assurée : Lien
  • Wikidata Query Service Tutorial : Lien
  • ANF « Initiation au SPARQL et à la diffusion de données en RDF », 2020, Jean-Baptiste Pressac, Thomas Francart (data BnF, OpenRefine, OntoRefine, GraphDB, SHACL, FRBR), Olivier Marlet (CIDOC-CRM, Ontop) : Lien
  • ANF « SPARQL Avancé », 2021, Christine Plumejeaud, Jean-Baptiste Pressac, Thomas Francart (OntoRefine, GraphDB), Danielle Ziebelin et François Mistral (ABES, data IdRef) : Lien
  • Valoriser les archives sur Wikipédia, Wikimédia commons et WikiData – stage atelier, 2022, Association des archivistes français : Lien

5.5 Le paradoxe de la propriété P31

Nous avons précisé en début de tutoriel combien était important pour la description des éléments la propriété P31 (English: “instance of”, French: “nature de l’élément”, German: “ist ein(e)”). Cette propriété définit le type de ressource, peut contenir plusieurs valeurs et est visible en premier juste sous la description dans Wikidata. Pourtant, son renseignement n’est pas obligatoire et P31 se trouve de fait fréquemment non renseigné. Cela impacte de manière significative la structure des requêtes posées et le nombre des réponses obtenues. Cette belle souplesse / non-qualité se montre difficile à interroger et ne peut être corrigée que manuellement.

Conclusion

De premières requêtes SPARQL peuvent être posées sur Wikidata. Les résultats s’affichent sous forme de tableaux de données possibles à trier et explorer. Des exports de données sont possibles. Wikidata se montre susceptible de servir de référentiel pour d’autres bases de données. Les déclarations se montrent possibles à interroger, à modifier, mais de qualité assez variable cependant. Les données ont besoin de votre contribution ! D’autres questions seront posées dans un billet à venir, visualisées sous forme de cartes, chronologies et autres graphes à l’aide de YASGUI. [A suivre…]

1 Star2 Stars3 Stars4 Stars5 Stars (Pas encore noté)
Loading...

Laisser un commentaire