Wikidata:Service de requête SPARQL/Une introduction en douceur au service de requête de Wikidata

Une introduction en douceur au service de requête de Wikidata

Vous êtes-vous déjà posés des questions comme celle-ci ?

  • Quelles sont les plus grandes villes du monde qui ont une femme maire ?
  • Quels aéroports sont situés dans un rayon de 100 km de Berlin ?
  • Qui sont tous les descendants connus de Gengis Khan ?

Wikidata connait les réponses.

Qu’est-ce que Wikidata ?

Wikidata est un dépôt de connaissance. Vous pouvez lire une introduction à l'idée et aux concepts derrière Wikidata sur notre page d’introduction.

Comment poser une question ?

Le langage de requête utilisé pour poser des questions comme ça sur Wikidata s'appelle SPARQL. Si ça semble trop technique et trop compliqué pour vous, ne vous inquiétez pas. Dans cette introduction en douceur, vous n'apprendrez pas SPARQL. À la place, nous regarderons des exemples de requêtes existantes et comment les modifier.

Qu’est-ce qu’une requête ?

Une requête est une forme spéciale de question qu’un système informatique peut comprendre et à laquelle il peut répondre. À moins que vous n’interagissiez avec une intelligence artificielle, vous devrez apprendre à formuler vos questions d’une certaine manière.

Puis-je utiliser librement ces données ?

Oh que oui ! Wikidata peut être utilisé par n’importe qui pour n’importe quoi parce que toutes les données sont dans le domaine public (CC0).

Et maintenant ?

Nous allons commencer avec un exemple simple pour vous montrer comment utiliser ce service, et nous continuerons avec des exemples plus élaborés pour finalement connaitre la réponse à la question fondamentale. Promis !

Comment utiliser Wikidata pour une requête simple

Regardons un exemple simple montrant comment obtenir une liste de tous les chats connus dans le monde.

Obtenir une liste de tous les chats dans le monde

Utilisez cette URL pour aller sur le service de requête : https://query.wikidata.org

  1. Cliquez sur « Exemples »
  2. Choisissez « Chats » dans la liste qui apparait
  3. Cliquez sur « Lancer » juste en dessous de la boite contenant le code

 

Cela nous donne à présent une liste de tous les chats plus ou moins célèbres sur internet - ou du moins ceux que Wikidata connait. C’est génial, pourvu que vous aimiez les chats et pas les chiens.

Qu’en est-il des chiens ?

Si vous préférez lister les chiens (ou n’importe quoi d’autre qui vous tient à cœur), il y a deux moyens de modifier votre requête :

  1. Utiliser le Query Helper pour modifier l’élément de chat vers chien :  
  2. Modifier manuellement la requête Chaque élément sur Wikidata est identifié de manière unique à l’aide d’un code. Ce code est Q146 pour « chat ». Pour trouver le code correspondant pour « chien », vous pouvez chercher sur Wikidata :
  1. Utiliser l’auto-complétion (sera détaillée à la fin)
  2. Commencer avec l’exemple « chat », retirer « Q146 »
  3. Placer le curseur après « wd: »
  4. Taper « chien » après « wd: »
  5. Appuyer sur Ctrl+Espace
  6. Utiliser les flèches haut/bas ; lorsque vous appuyez sur Entrée - il sera remplacé par Q144

Note : les résultats de recherches dépendent de la langue de l’interface.

  1. Aller sur https://www.wikidata.org
  2. Taper « chien » dans la boite de recherche
  3. Cliquer sur le premier résultat dans le menu déroulant
  4. Noter le numéro de l’élément pour « chien » depuis la page de Wikidata qui s’ouvre (Q144)

 

Pour modifier votre requête de « chat » en « chien », remplacez simplement Q146 par Q144 dans l'éditeur de requête SPARQL.

Lancez le programme, et on vous présentera une liste des chiens plus ou moins connus sur internet.

 

Clarifier la requête

Analysons à présent le code pour générer cela de sorte que nous puissions effectuer une recherche pour n’importe quel objet (par exemple, des chiens, des planètes, des pays, des chansons) :

#Cats
SELECT ?item ?itemLabel
WHERE
{
	?item wdt:P31 wd:Q146 . 
	SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}
  • SELECT Une requête SELECTionne quelque chose. Ce que voulez exactement sélectionner et montrer est décrit après, mais pour l'instant vous devez seulement indiquer les endroits réservés (ou variables). Ici, ils sont appelés ?item et ?itemLabel. Vous pouvez savoir que quelque chose est une variable si elle est précédée par un point d'interrogation.
  • ?item C'est la liste des éléments que nous cherchons. Dans notre cas, ce serait les chats célèbres Les éléments de Wikidata fonctionnent dans beaucoup de langues différentes, presque 300. Parce que nous ne croyons pas que tout, dans le monde, est anglais et que toutes les autres langues sont seulement des cas particuliers de l'anglais, les éléments sont stockés de sorte qu'ils fonctionnent dans différentes langues. Un nombre est associé à chaque concept. Q146 et le concept d'un chat, Q64 est Berlin en Allemagne, Q42 et l'écrivain Douglas Adams et ainsi de suite. Astuce: ?item est juste un nom de variable que nous avons décidé d'utiliser dans notre requête. Cela pourrait être n'importe quoi, par exemple : ?animal.
  • ?itemLabel Les humains peuvent retenir des noms dans un langage humain mieux que des nombres. Un libellé est le nom d'un élément dans un langage humain, par exemple l'anglais (ou l'espéranto, le japonais, le zoulou…). Nous voulons que les libellées soient affichés dans notre requête de telle sorte que Q1371145 soient affiché comme "Socks" (le chat de Bill Clinton et sa famille). Pour des détails sur les libellés, voir le manuel utilisateur.
  • WHERE {   Ceci est la clause WHERE de la requête. On définit ici les paramètres de la requête. Une clause WHERE débute avec une accolade ouvrante { et se termine avec une accolade fermante }.
  • wdt:P31 Ceci est le prédicat du sujet. Si vous passez la souris dessus, vous verrez qu'il signifie "instance de".

 

  • wd:Q146 . C’est l’objet. Si vous passez la souris dessus, vous verrez qu'il signifie "chat".

 

Tout ceci est un peu indigeste. Il peut être utilse d'exprimer une requête dans une langue naturelle :

« Donne moi une liste des éléments avec leurs libellés, où les éléments sont des instances de chat. Ensuite, génère les libellés des éléments en anglais. »

Avec le code que nous avons utilisé dans nos exemples, nous vous avons montré une liste des chats plus ou moins connus sur internet. Cette requête peut être facilement modifiée pour afficher une liste de chiens, par exemple.

Guide rapide de Texte à SPARQL

Les animations suivantes montrent comment écrire des triplets en langue naturel, et les convertir en consultations SPARQL.

La clé est de préfixer les variables avec ?, les éléments avec wd: et les propriétés avec wdt: puis d'utiliser le raccourci clavier Ctrl+Space (ou Ctrl+Alt+Space ou Alt+Enter) pour activer l'auto-complétion qui remplace les deux derniers avec les identifiants Wikidata.

 

 

Plonger dans l’interface utilisateur

Comment modifier la langue dans laquelle les résultats sont affichés ?

Avec cet outil de requête de recherche, vous ne pouvez pas uniquement customiser et rechercher des requêtes simples ou agrégées, composées, imbriquées ou complexes mais vous pouvez aussi rechercher dans n’importe quelle langue et obtenir les résultats dans n’importe quelle langue également.

  • Modifier le code de langue par défaut de « en » (anglais) vers n’importe quel code de langue, par exemple « ja » pour le japonais.
#Cats  
SELECT ?item ?itemLabel WHERE
{
     ?item wdt:P31 wd:Q146 .
     SERVICE wikibase:label { bd:serviceParam wikibase:language "ja" }
}

Comment modifier l’ordre de tri des résultats affichés ?

L’ordre des éléments affichés peut être facilement modifié dans l’interface. Cliquez simplement sur la colonne concernée des résultats de recherche pour personnaliser l’ordre de tri :

 

Comment modifier la langue de l’interface utilisateur ?

Cliquez sur le mot « English » et sélectionnez la langue dans la liste qui s’affiche :

 

Notez que l’interface utilisateur est maintenant affichée dans la langue sélectionnée :

 

Mais je veux des photos de chats ! Comment chercher des images ?

Pour le moment, nous avons vu la sortie des requêtes affichées sous forme de tableau. Essayons avec quelques images :

Cliquez sur le bouton « Exemples » et sélectionnez l’exemple “Even more cats, with pictures”. Lancez la requête et des images de chats devraient apparaitre dans la partie inférieure de l’écran.

 

Il s’agit de ce qu’affichent les résultats en tant qu’image plutôt que comme tableau. Vous pouvez échanger manuellement comment les données sont affichées en utilisant le menu « Display » dans le coin en haut à droite des résultats. Essayez d’échanger le menu à « Table » pour voir le même résultat sous forme de tableau.

Regardons ce qui est nouveau dans la requête, comparé à la requête du chapitre précédent. Écrit en anglais, la requête se lirait « Donne moi tous les éléments qui ont quelque chose à voir avec les chats. Donne moi également l’image pour chaque élément. Et en même temps, affiche le résultat sous la forme d’une grille d’images, pas comme un tableau. »

  • #defaultView:ImageGrid Ce qui ressemble à un commentaire est en fait une instruction pour afficher le résultat de la requête en tant qu’images et non sous forme de tableau.
  • ?x1 Cela signifie que vous demandons n’importe quel prédicat, pas seulement les « nature de l’élément ». Il faut penser aux prédicats comme « dépeint » (P180) ou « nommé en référence à » (P138). Nous n’utilisons nulle part ?x1 d’autre dans la requête, ce qui signifie que la marque substitutive signifie « Peu m’importe de quel prédicat il s’agit, donne moi tous les résultats qui ont un rapport avec un chat »
  • OPTIONAL À l’intérieur des parenthèses, vous voyez une autre déclaration qui ajoute des données optionnelles au résultat. La variable ?item est réutilisée et couplée avec la propriété P18 (signifiant « image ») et un nouvelle variable ?pic. En encapsulant la déclaration avec OPTIONAL signifie que les éléments ne doivent pas nécessairement avec une propriété P18 pour apparaitre dans la liste et que la variable ?pic peut être vide.

Tentez de modifier la requête :

  • Recherchez les chiens au lieu des chats. Astuce : changez la partie Objet dans la première déclaration dans WHERE.
  • Affichez uniquement les éléments qui « dépeignent » des chats (vous obtiendrez des peintures). Astuce : remplacez ?x1 par quelque chose d’autre.
  • Retirez le OPTIONAL

Il existe d’autres moyens d’afficher vos données, mais elles ne sont pas toujours convenable, ce qui explique pourquoi certains sont grisés dans le menu. « Image map » est uniquement sélectionnable si les données du résultat contiennent des URLs d’image. Dans l’un des chapitres suivants, vous apprendre comment afficher des éléments comme des points sur une carte.

Comment partager votre requête pour que d’autres l’utilisent ?

Si vous voulez partager votre requête avec quelqu’un d’autre - disons, sur un réseau social - vous pouvez créer un lien court pour votre requête

  • Complétez votre requête
  • Cliquez sur l’icône LINK :
 
  • Copiez l’URL listée ici. Il s’agit de l’URL pour la requête.

Trouver des choses sur des cartes

Il existe davantage de moyens de visualiser les résultats d’une requête. Si la requête demande des coordonnées géographiques, les résultats pourront être affichés sur une carte.

Regardez cet exemple de phares en Norvège. Lorsque vous lancez la requête, vous verrez des points rouges qui indiquent la position des phares sur la côte norvégienne.


Utiliser le dialogue de l'explorateur

Une fois que les résultats d'une requête ont été chargés, vous pouvez voir une icône de loupe sur chaque résultat. Un clic sur cette icône ouvre la boîte de dialogue de l'explorateur.

 

The explorer dialog by default, displays a single node representing that particular result. Below the node, you can see a toggle that defaults to ‘Outgoing’.

Cela signifie qu'en cliquant sur n'importe quel nœud, toutes les propriétés de ce nœud seront développées à partir de l'ensemble de la base de connaissances de Wikidata. Toggling this to ‘Incoming’ allows you to see all the incoming links or properties that point to the node. Il s'agit d'un moyen d'explorer toutes les relations entre les différents éléments et leurs propriétés à l'aide de Wikidata.

 

Vous pouvez ouvrir plusieurs boîtes de dialogue de l'explorateur en même temps, ce qui vous permet de comparer les résultats de plusieurs requêtes à la fois. La boîte de dialogue de l'explorateur comporte également une barre d'outils dans le coin inférieur droit, qui permet de passer d'une vue à l'autre (graphique, arbre, carte, tableau, etc.).

Il y a encore plus

Il y a encore plus de visualisation à explorer :

Regardez dans les exemples de requête et essayez les tous !

Autocomplétion

Dans l’éditeur, vous pouvez appuyer sur Ctrl+Espace à n’importe quel endroit de la requête et obtenir des suggestions pour le code qui pourrait être appropriées ; sélectionnez la bonne suggestion avec les touches de flèches haut/bas et appuyez sur Entrée pour la sélectionner.

Par exemple, au lieu d’écrire SERVICE wikibase:label { bd:serviceParam wikibase:language "fr". } à chaque fois, vous pouvez juste taper SERV, appuyer sur Ctrl+Espace, et la première suggestion sera l’appel complet au service de libellé, prêt à l’emploi ! Appuyez juste sur Entrée pour accepter. (La mise en forme sera un peu différente, mais cela n’est pas important.)

Et l’autocomplétion peut également rechercher pour vous. Si vous tapez l’un des préfixes de Wikidata, comme wd: or wdt:, et que vous écrivez ensuite du texte, Ctrl+Espace recherchera ce texte sur Wikdiata et suggérera des résultats. wd: recherche des éléments, wdt: des propriétés. Par exemples, au lieu de chercher les éléments pour Johann Sebastian Bach (Q1339) et father (P22), vous pouvez simplement saisir wd:Bach et wdt:pèr et sélectionner ensuite la bonne entrée à partir de l’autocomplétion. (Cela fonctionne même avec les espaces dans le texte, par exemple wd:Johann Sebastian Bach.)

Note: Pour les utilisateurs sous ChromeOS ou MacOS : les raccourcis Ctrl+Alt+Espace et Alt+Entrée sont des raccourcis alternatifs.

Où aller maintenant

Vous pouvez probablement vous repérer avec le service de requête de Wikidata à présent. Explorer l’interface et changer les valeurs dans les requêtes peut être un bon moyen d’apprendre comment poser vos questions sur Wikidata.