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

Outdated translations are marked like this.

Other languages:
Afrikaans • ‎Bahasa Indonesia • ‎Deutsch • ‎English • ‎Türkçe • ‎català • ‎español • ‎français • ‎italiano • ‎polski • ‎português do Brasil • ‎svenska • ‎русский • ‎српски / srpski • ‎українська • ‎العربية • ‎বাংলা • ‎中文 • ‎日本語

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 « Cats » 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 vous voulez sélectionner précisément est décrit plus tard, mais pour le moment vous indiquez simplement les marques substitutives (ou les variables). Ici ils sont appelés ?item et ?itemLabel. Vous pouvez indiquez que quelque chose est une variable si elle commence par un point d’interrogation.
  • ?item Il s’agit de la liste des éléments que vous recherchez. Dans notre cas, il s’agira des chats célèbres. Les éléments sur Wikidata fonctionnent dans de nombreuses langues, pratiquement 300. Parce que nous ne pensons pas que tout dans le monde est en anglais et que les autres langues sont juste des cas particuliers de l’anglais, les éléments sont stockés d’une manière qui fonctionne avec toutes les langues. Chaque concepts dispose d’un nombre. Q146 est le concept pour « chat », Q64 désigne Berlin en Allemagne, Q42 correspond à l’écrivain Douglas Adams et ainsi de suite. Astuce : ?item est juste un nom de variable que nous avons décidé d’utiliser. Ça pourrait être autre chose, par exemple : ?animal.
  • ?itemLabel Les humains peuvent comprendre les noms dans une langue humaine beaucoup plus facilement que des nombres. Un libellé est le nom d’un élément dans une langue humaine, par exemple anglais (ou espéranto, ou japonais, ou zoulou ...). Nous voulons que les libellés soient affichés dans notre requête de sorte que Q1371145 soit affiché comme « Socks » (le chat appartenant à Bill Clinton et sa famille). Des détails sur le service de libellés sont donnés dans le manuel utilisateur.
  • WHERE { C’est la clause WHERE de la requête. Ici nous indiquons ce qui va dans les marques substitutives. Une clause WHERE commence avec une accolade ouvrante { et se termine avec une accolade fermante }.
  • ?item Il s’agit de la marque substitutive que nous voulons remplir. C’est le sujet dont nous voulons connaitre quelque chose.
  • wdt:P31 C’est le prédicat du sujet. Si vous le survoler, vous verrez qu’il

signifie nature de l’élément.

What exactly you want to select and display is described later, but for the time being you just state the placeholders (or variables). Here they are called ?item and ?itemLabel. You can tell that something is a variable if it starts with a question mark.

  • ?item This is the list of items we are looking for. In our case that would be the famous cats. Items on Wikidata work in many different languages, almost 300 of them. Because we don’t think that everything in the world is English and all the other languages are just special cases of English, items are stored in a way that works across languages. Every concept gets a number. Q146 is the concept of a cat, Q64 is Berlin in Germany, Q42 is the writer Douglas Adams and so on. Tip: ?item is just a variable name that we decided to use in our query. It could be anything, for example: ?animal.
  • ?itemLabel Humans can digest names in a human language much better than numbers. A label is the name of an item in a human language, e.g. English (or Esperanto, or Japanese, or Zulu…). We want the labels displayed in our query so that Q1371145 gets displayed as “Socks” (the cat belonging to Bill Clinton and family). Precise details about label service in User manual.
  • WHERE {   This is the WHERE clause of the query. Here we define what goes in the placeholders. A WHERE clause starts with an opening curly bracket { and ends with a closing curly bracket }.
  • wdt:P31 This is the predicate of the subject. If you hover over it, you’ll see that it stands for instance of.

 

  • wd:Q146 . C’est l’objet. Si vous le survoler, vous verrez qu’il signifie chat.

If you hover over it, you’ll see that it stands for cat.

 

Tout ceci est un peu indigeste. Il peut aider à 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.

The key is to prefix variables with ?, items with wd: and properties with wdt:, and then using the Ctrl+Space (or Ctrl+Alt+Space or Alt+Enter) keyboard shortcut to activate the auto-completion feature that replaces the latter two with the actual Wikidata identifiers.

 

 

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

Once the results of a query have loaded, you can see a magnifying glass icon on each result. Clicking this icon opens the Explorer Dialog.

 

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’. This means that clicking on any node will expand all the properties of that node, from the entire Wikidata knowledge base. Toggling this to ‘Incoming’ allows you to see all the incoming links or properties that point to the node. This is a way to explore all the relationships between the various items and their properties using Wikidata.

 

You can open multiple explorer dialogs at once, allowing you to compare the results of more than one query at once. The explorer dialog also has a toolbar at the bottom right corner which is used to switch between multiple views like Graph, Tree, Map, Table etc.

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.