Tutorial/fr: Difference between revisions

From Resistance in Belgium
(Created page with "<div style="border:2px ;padding:9px; background-color:#158f68;"> <span style="color:#FFFFFF;"><big>3/ Les bases d’une requête SPARQL</big></span> </div>")
No edit summary
Tag: Manual revert
 
(96 intermediate revisions by 2 users not shown)
Line 1: Line 1:


<div style="border:2px ;padding:9px; background-color:#158f68;">
<div style="border:2px ;padding:9px; background-color:#158f68;">
<span style="color:#FFFFFF;"><big>1/ Introduction à SPARQL</big></span> </div>
<span style="color:#FFFFFF;"><big>1. Introduction à SPARQL</big></span> </div>


Utiliser <b>SPARQL</b>, c’est comme être un⸱e enquêteur⸱rice dans un vaste fonds d’archives. Ici, plutôt que de fouiller chaque document un par un, vous disposez d’un langage qui vous permet, en une requête précise, de retrouver instantanément les informations correspondant à vos critères.
Utiliser <b>SPARQL</b>, c’est comme être un⸱e enquêteur⸱rice dans un vaste fonds d’archives. Ici, plutôt que de fouiller chaque document un par un, vous disposez d’un langage qui vous permet, en une requête précise, de retrouver instantanément les informations correspondant à vos critères.
Line 20: Line 20:


<div style="border:2px ;padding:9px; background-color:#158f68;">
<div style="border:2px ;padding:9px; background-color:#158f68;">
<span style="color:#FFFFFF;"><big>2/ Stratégie pour vos premières requêtes</big></span> </div>
<span style="color:#FFFFFF;"><big>2. Stratégie pour vos premières requêtes</big></span> </div>


Maintenant que vous avez une idée générale de ce qu’est SPARQL, voici une stratégie pour bien démarrer vos recherches.
Maintenant que vous avez une idée générale de ce qu’est SPARQL, voici une stratégie pour bien démarrer vos recherches.
Line 27: Line 27:


Cette approche vous permet de :
Cette approche vous permet de :
* Consulter nos [https://data.arch.be/wiki/In-depth_search exemples de requêtes SPARQL] ;
* Consulter nos [https://data.arch.be/wiki/In-depth_search/fr exemples de requêtes SPARQL] ;
* Utiliser des <b>outils d’intelligence artificielle</b> capables de générer des requêtes selon vos besoins.
* Utiliser des <b>outils d’intelligence artificielle</b> capables de générer des requêtes selon vos besoins.


Line 33: Line 33:


<div style="border:2px ;padding:9px; background-color:#158f68;">
<div style="border:2px ;padding:9px; background-color:#158f68;">
<span style="color:#FFFFFF;"><big>3/ Les bases d’une requête SPARQL</big></span> </div>
<span style="color:#FFFFFF;"><big>3. Les bases d’une requête SPARQL</big></span> </div>


<div lang="en" dir="ltr" class="mw-content-ltr">
Une requête SPARQL repose sur quelques éléments essentiels. Voici les deux principaux :
A SPARQL query is made up of a few essential elements. Here are the two main ones:
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
* <span style="color:#158f68;"><b>SELECT</b></span> : cette clause permet de <b>choisir quelles informations afficher</b> dans les résultats. Vous spécifiez ici les éléments que vous souhaitez voir apparaître.
* <span style="color:#158f68;"><b>SELECT</b></span>: this clause lets you <b>choose which information to display</b> in the results. You specify here which elements you want to see.
* <span style="color:#158f68;"><b>WHERE</b></span> : cette clause permet de <b>filtrer les données</b> en définissant des critères précis. C’est ici que vous décrivez les conditions que les données doivent respecter.
* <span style="color:#158f68;"><b>WHERE</b></span>: this clause allows you to <b>filter the data</b> by defining precise criteria. This is where you describe the conditions the data must meet.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
📝 <b>Exemple simple</b>
📝 <b>Simple Example</b>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
Voici une requête qui extrait les noms et prénoms des personnes présentes dans la base de données.   
Here is a query that extracts the first and last names of people in the database.   
Les lignes qui commencent par <code>#</code> sont des <b>commentaires</b> pour expliquer chaque partie de la requête.
Lines starting with <code>#</code> are <b>comments</b> to explain each part of the query.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<syntaxhighlight lang="sparql">
<syntaxhighlight lang="sparql">
SELECT ?lastName ?firstName
SELECT ?nom ?prenom
WHERE {
WHERE {
   ?person wdt:P1 wd:Q2 ;     # Selects individuals
   ?personne wdt:P1 wd:Q2 ;     # Sélectionne des personnes
          wdt:P3 ?lastName ; # Retrieves the last name
            wdt:P3 ?nom ;     # Récupère le nom de famille
          wdt:P2 ?firstName .# Retrieves the first name
            wdt:P2 ?prenom .   # Récupère le prénom
}
}
</syntaxhighlight>
</syntaxhighlight>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<b>Explication de l’exemple :</b>
<b>Explanation of the example:</b>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<ol>
<ol>
<li><code>SELECT ?lastName ?firstName</code>:<br>
<li><code>SELECT ?nom ?prenom</code> :<br>
Indicates that we want to display the values of the <code>?lastName</code> and <code>?firstName</code> variables in the results.</li>
Indique que l’on souhaite voir apparaître les valeurs des variables <code>?nom</code> et <code>?prenom</code> dans les résultats.</li>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<li><code>WHERE { ... }</code> :<br>
<li><code>WHERE { ... }</code>:<br>
Décrit la structure et les conditions de la requête :
Describes the structure and conditions of the query:
<ul><ul>
<ul>
<li><code>?personne wdt:P1 wd:Q2</code> : sélectionne les éléments qui sont des êtres humains (P1 = nature de l’élément, Q2 = personne).</li>
<li><code>?person wdt:P1 wd:Q2</code>: selects items that are human beings (P1 = item type, Q2 = person).</li>
<li><code>wdt:P3 ?nom</code> : associe à <code>?nom</code> le nom de famille de la personne (P3).</li>
<li><code>wdt:P3 ?lastName</code>: associates the last name with the variable <code>?lastName</code> (P3).</li>
<li><code>wdt:P2 ?prenom</code> : associe à <code>?prenom</code> le prénom de la personne (P2).</li>
<li><code>wdt:P2 ?firstName</code>: associates the first name with the variable <code>?firstName</code> (P2).</li>
</ul>
</ul>
</li>
</ol>
</ol>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
Vous connaissez maintenant les <b>bases de toutes les requêtes SPARQL</b>.
You now know the <b>basics of all SPARQL queries</b>. You’ll be able to adapt them to your needs by easily selecting the variables to use and by adding <b>filters</b>, <b>additional columns</b>, or <b>advanced options</b>.
Vous allez pouvoir les adapter à vos besoins en sélectionnant facilement les variables à utiliser et en ajoutant des <b>filtres</b>, des <b>colonnes supplémentaires</b> ou des <b>options avancées</b>.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div style="border:2px ;padding:9px; background-color:#158f68;">
<div style="border:2px ;padding:9px; background-color:#158f68;">
<span style="color:#FFFFFF;"><big>4. The Trick That Makes All the Difference</big></span> </div>
<span style="color:#FFFFFF;"><big>4. L’astuce qui fait toute la différence</big></span> </div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
Lorsque vous rédigez une requête SPARQL, il peut être fastidieux de se souvenir des identifiants numériques pour les communes, statuts de reconnaissance ou organisations de résistance. Heureusement, une <b>fonctionnalité d’auto-complétion</b> est disponible pour vous simplifier la tâche.
When writing a SPARQL query, it can be tedious to remember numeric identifiers for municipalities, recognition statuses, or resistance organizations.
Fortunately, an <b>auto-completion feature</b> is available to simplify the process.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<ul>
<ul>
<li><b>Pro tip</b>: Press <b>Ctrl + Space</b> while typing a property or a value.
<li><b>Astuce pratique</b> : appuyez sur <b>Ctrl + Espace</b> lorsque vous êtes en train de taper une propriété ou une valeur. Cela vous permet de <b>rechercher des termes dans votre langue</b> plutôt que d’utiliser des identifiants numériques.</li>
This allows you to <b>search for terms in your language</b> instead of relying on numeric identifiers.</li>
</ul>
</ul>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<b>Exemple :</b><br>
<b>Example:</b><br>
Si vous cherchez une commune comme <b>Anderlecht</b>, au lieu de retenir son identifiant (par exemple <code>wd:Q102</code>), utilisez <b>Ctrl + Espace</b> et commencez à taper "Anderlecht" pour que l’éditeur propose automatiquement l’identifiant correspondant.
If you're searching for a municipality like <b>Anderlecht</b>, instead of memorizing its identifier (e.g. <code>wd:Q102</code>), press <b>Ctrl + Space</b> and start typing "Anderlecht" — the editor will automatically suggest the correct identifier.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
Cette méthode vous permet de <b>gagner du temps</b> et d’éviter les erreurs liées à la saisie des identifiants.
This method helps you <b>save time</b> and <b>avoid errors</b> when entering identifiers.
<!--T:24-->
</div>
<div style="clear:both;"></div>
[[File:Sparql_autocompletion.gif|left|700px|thumb|alt=Animation de l’auto-complétion SPARQL|<small><b>Auto-complétion en action</b> — Appuyez sur <code>Ctrl + Espace</code> pour trouver la bonne propriété ou valeur.</small>]]
<div style="clear:both;"></div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div style="border:2px ;padding:9px; background-color:#158f68;">
<div style="border:2px ;padding:9px; background-color:#158f68;">
<span style="color:#FFFFFF;"><big>5. Displaying Labels in Your Preferred Language</big></span> </div>
<span style="color:#FFFFFF;"><big>5. Afficher les labels dans la langue de son choix</big></span> </div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
Lorsque vous interrogez une base de données Wikibase avec SPARQL, les résultats peuvent parfois afficher des <b>identifiants</b> (par exemple <code>Q102</code>) au lieu de textes explicites (par exemple : Anderlecht).
When querying a Wikibase dataset with SPARQL, the results may sometimes display <b>identifiers</b> (e.g. <code>Q102</code>) instead of explicit text (e.g. <code>Anderlecht</code>). To make the results more readable, you can retrieve the <b>labels</b> (i.e., names) in the language of your choice (French, Dutch, German, or English).   
Pour rendre les résultats plus lisibles, vous pouvez récupérer les <b>labels</b> (libellés) dans la langue de votre choix (français, néerlandais, allemand ou anglais).   
Simply use <code>SERVICE wikibase:label</code> at the end of your query to display values in your preferred language.
Il suffit d’utiliser <code>SERVICE wikibase:label</code> en fin de requête pour récupérer les intitulés dans la langue de votre choix.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<b>Comment faire ?</b><br>   
<b>How to do it?</b><br>   
Ajoutez le service <code>wikibase:label</code> à votre requête pour afficher les labels. Voici un exemple de requête simple qui récupère le nom des personnes avec leur domicile, en affichant les “labels” en français :
Add the <code>wikibase:label</code> service to your query. Here is a simple example that retrieves people’s names along with their place of residence, with labels displayed in French:
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<syntaxhighlight lang="sparql">
<syntaxhighlight lang="sparql">
SELECT ?person ?personLabel ?residence ?residenceLabel
SELECT ?personne ?personneLabel ?Domicile ?DomicileLabel
WHERE {
WHERE {
   ?person wdt:P1 wd:Q2 .             # Select human entities
   ?personne wdt:P1 wd:Q2.         # Sélectionner des êtres humains
   ?person wdt:P7 wd:Q102 .           # Residence (P7) = Anderlecht (Q102)
   ?personne wdt:P7 wd:Q102.       # Domicile (P7) = Anderlecht (Q102)
   SERVICE wikibase:label {           # Service to retrieve labels
   SERVICE wikibase:label {       # Service pour récupérer les labels
     bd:serviceParam wikibase:language "fr" . # Language preference: French
     bd:serviceParam wikibase:language "fr". # Langue choisie : français
   }
   }
}
}
</syntaxhighlight>
</syntaxhighlight>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<b>Explication rapide</b>
<b>Quick explanation</b>
<ul>
<ul>
<li><code>SERVICE wikibase:label</code>: activates the label retrieval service.</li>
  <li><code>SERVICE wikibase:label</code> : active le service pour récupérer les labels.</li>
<li><code>bd:serviceParam wikibase:language "fr"</code>: sets the label language (replace <code>"fr"</code> with <code>"en"</code>, <code>"nl"</code>, <code>"de"</code>, etc. as needed).</li>
  <li><code>bd:serviceParam wikibase:language "fr"</code> : définit la langue des labels (changez <code>"fr"</code> pour <code>"en"</code>, <code>"nl"</code>, <code>"de"</code> selon vos besoins).</li>
</ul>
</ul>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<b>Utiliser <span style="color:#158f68;">AUTO_LANGUAGE</span></b><br>   
<b>Using AUTO_LANGUAGE</b><br>   
Pour que les labels s’affichent automatiquement dans la langue définie par votre navigateur ou votre préférence utilisateur, utilisez <code>AUTO_LANGUAGE</code> :
To automatically show labels in the language set by your browser or user preferences, use <code>AUTO_LANGUAGE</code>:
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<syntaxhighlight lang="sparql">
<syntaxhighlight lang="sparql">
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr,en".
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr,en".
</syntaxhighlight>
</syntaxhighlight>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<b>Astuces</b>
<b>Tips</b>
<ul>
<ul>
<li>To automatically display labels in your browser or user’s preferred language, use: 
  <li>Pour que les labels s’affichent <b>automatiquement</b> dans la langue définie par votre navigateur ou votre préférence utilisateur, utilisez <code>bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr,en"</code>.</li>
<code>bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr,en"</code></li>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<li>Vous pouvez aussi utiliser <b>plusieurs langues</b> en priorité. Par exemple, pour afficher les labels en français, et si indisponible, en anglais :   
<li>You can also prioritize multiple languages.
For example, to display labels in French and fall back to English if unavailable:   
<code>bd:serviceParam wikibase:language "fr,en,[AUTO_LANGUAGE]"</code></li>
<code>bd:serviceParam wikibase:language "fr,en,[AUTO_LANGUAGE]"</code></li>
</ul>
</ul>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div style="border:2px ;padding:9px; background-color:#158f68;">
<div style="border:2px ;padding:9px; background-color:#158f68;">
<span style="color:#FFFFFF;"><big>6. Adding Additional Information</big></span> </div>
<span style="color:#FFFFFF;"><big>6. Ajouter des informations supplémentaires</big></span> </div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
Pour enrichir vos résultats, vous pouvez ajouter plusieurs colonnes contenant des informations supplémentaires, comme le domicile, la date de naissance ou d'autres détails pertinents.   
To enrich your results, you can add multiple columns containing additional information, such as residence, date of birth, or other relevant details.   
Pour vous inspirer : consulter la [https://data.arch.be/wiki/Special:ListProperties liste des propriétés] ou observer comment sont modélisées les données à l’aide d’un exemple, ici [https://data.arch.be/wiki/Item:Q6793 Andrée De Jongh].
To get inspired: check out the [https://data.arch.be/wiki/Special:ListProperties list of properties] or see how data is modeled using an example, like [https://data.arch.be/wiki/Item:Q6793 Andrée De Jongh].
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<b>Ajouter des colonnes simples</b><br>   
<b>Adding simple columns</b><br>   
Il suffit d'ajouter les propriétés correspondant aux informations que vous souhaitez extraire.
Just include the properties that correspond to the information you want to extract.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<b>Exemple</b> : ajouter le domicile et la date de naissance des personnes.
<b>Example</b>: Add the residence and date of birth of individuals.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<syntaxhighlight lang="sparql">
<syntaxhighlight lang="sparql">
SELECT ?person ?personLabel ?residenceLabel ?birthDate
SELECT ?personne ?personneLabel ?domicileLabel ?dateNaissance
WHERE {
WHERE {
   ?person wdt:P7 ?residence .        # P7: Residence
   ?personne wdt:P7 ?domicile .        # P7 : Domicile
   ?person wdt:P67 ?birthDate .       # P67: Date of birth
   ?personne wdt:P67 ?dateNaissance . # P67 : Date de naissance
</div>


  <div lang="en" dir="ltr" class="mw-content-ltr">
    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr" }
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr" }
}
}
</syntaxhighlight>
</syntaxhighlight>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<b>Rendre une colonne optionnelle avec <code>OPTIONAL</code></b><br>   
<b>Making a column optional with <code>OPTIONAL</code></b><br>   
Si certaines informations peuvent être manquantes, utilisez <code>OPTIONAL</code> pour éviter que cela restreigne le nombre de résultats.   
If some information might be missing, use <code>OPTIONAL</code> to avoid limiting the results.   
Ajouter <code>OPTIONAL</code> permet de récupérer des résultats même si une des colonnes est vide.
Adding <code>OPTIONAL</code> lets you retrieve results even if a column is empty.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<b>Exemple</b> : ajouter la date de naissance seulement si l'information est disponible.
<b>Example</b>: Add date of birth only if the information is available.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<syntaxhighlight lang="sparql">
<syntaxhighlight lang="sparql">
SELECT ?person ?personLabel ?residenceLabel ?birthDate
SELECT ?personne ?personneLabel ?domicileLabel ?dateNaissance
WHERE {
WHERE {
   ?person wdt:P7 ?residence .       # P7: Residence
   ?personne wdt:P7 ?domicile .                   # P7 : Domicile
</div>


  <div lang="en" dir="ltr" class="mw-content-ltr">
  OPTIONAL { ?personne wdt:P67 ?dateNaissance . } # P67 : Date de naissance (facultatif)
OPTIONAL { ?person wdt:P67 ?birthDate . } # P67: Optional date of birth
</div>


   <div lang="en" dir="ltr" class="mw-content-ltr">
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr" }
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr" }
}
}
</syntaxhighlight>
</syntaxhighlight>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<b>Astuce</b> : pour combiner plusieurs valeurs en une seule colonne (par exemple, “concaténer” l’appartenance à différentes organisations de résistance), utilisez <code>CONCAT</code>.   
<b>Tip</b>: To combine multiple values into a single column (for example, to “concatenate” membership in multiple resistance organizations), use <code>CONCAT</code>.   
Cela permet de regrouper ces informations dans une même cellule tout en conservant une seule ligne par personne.
This allows grouping the data into a single cell while keeping one result row per person.
Pour explorer cette fonction et ses variantes, nous vous encourageons à consulter la documentation SPARQL disponible en ligne.
To explore this function and its variants, refer to the SPARQL documentation available online.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div style="border:2px ;padding:9px; background-color:#158f68;">
<div style="border:2px ;padding:9px; background-color:#158f68;">
<span style="color:#FFFFFF;"><big>7. Limiting the Number of Results</big></span> </div>
<span style="color:#FFFFFF;"><big>7. Limiter le nombre de résultats</big></span> </div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
Pour restreindre le nombre de résultats affichés (notamment si vous voulez tester une requête contenant un très grand nombre de colonnes), ajoutez <code><b>LIMIT</b></code> à votre requête.
To reduce the number of results displayed (especially if you’re testing a query with many columns), add the <code><b>LIMIT</b></code> clause to your query.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<b>Exemple</b> : afficher uniquement les 10 premiers résultats.
<b>Example</b>: Show only the first 10 results.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<syntaxhighlight lang="sparql">
<syntaxhighlight lang="sparql">
SELECT ?person ?personLabel ?birthDate
SELECT ?personne ?personneLabel ?dateNaissance
WHERE {
WHERE {
   ?person wdt:P67 ?birthDate .
   ?personne wdt:P67 ?dateNaissance .
</div>


  <div lang="en" dir="ltr" class="mw-content-ltr">
    SERVICE wikibase:label {
SERVICE wikibase:label {
     bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr"
     bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr"
   }
   }
Line 270: Line 192:
LIMIT 10
LIMIT 10
</syntaxhighlight>
</syntaxhighlight>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div style="border:2px ;padding:9px; background-color:#158f68;">
<div style="border:2px ;padding:9px; background-color:#158f68;">
<span style="color:#FFFFFF;"><big>8. Sorting the Results</big></span> </div>
<span style="color:#FFFFFF;"><big>8. Ordonner les résultats</big></span> </div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
Pour trier les résultats selon une certaine colonne, utilisez <code><b>ORDER BY</b></code>.   
To sort results by a specific column, use the <code><b>ORDER BY</b></code> clause.   
Par défaut, le tri est ascendant (<code><b>ASC</b></code>), mais vous pouvez aussi spécifier un tri descendant (<code><b>DESC</b></code>).
By default, the sorting is ascending (<code><b>ASC</b></code>), but you can also specify descending order using <code><b>DESC</b></code>.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<b>Exemple</b> : Trier les résultats par date de naissance croissante.
<b>Example</b>: Sort results by birth date in ascending order.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<syntaxhighlight lang="sparql">
<syntaxhighlight lang="sparql">
SELECT ?person ?personLabel ?birthDate
SELECT ?personne ?personneLabel ?dateNaissance
WHERE {
WHERE {
   ?person wdt:P67 ?birthDate .
   ?personne wdt:P67 ?dateNaissance .
</div>


  <div lang="en" dir="ltr" class="mw-content-ltr">
    SERVICE wikibase:label {
SERVICE wikibase:label {
     bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr"
     bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr"
   }
   }
}
}
ORDER BY ASC(?birthDate)
ORDER BY ASC(?dateNaissance)
</syntaxhighlight>
</syntaxhighlight>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div style="border:2px ;padding:9px; background-color:#158f68;">
<div style="border:2px ;padding:9px; background-color:#158f68;">
<span style="color:#FFFFFF;"><big>9. Adding Filters</big></span> </div>
<span style="color:#FFFFFF;"><big>9. Ajouter des filtres</big></span> </div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
Les filtres permettent d’affiner vos résultats en ajoutant des critères spécifiques à votre requête.   
Filters allow you to refine your results by adding specific criteria to your query.   
Ils sont utiles pour <b>combiner plusieurs conditions</b> ou exclure certaines valeurs.
They are useful for <b>combining multiple conditions</b> or excluding certain values.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
📝 <b>Exemple simple sans filtre</b>
📝 <b>Simple example without filter</b>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
Pour sélectionner les personnes répondant à un certain critère, comme par exemple “domiciliées dans à Anderlecht”, vous pouvez écrire directement :
To select individuals matching a basic criterion—like “residing in Anderlecht”—you can write:
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<syntaxhighlight lang="sparql">
<syntaxhighlight lang="sparql">
?person wdt:P4 wd:Q102 .  # Selects individuals residing in Anderlecht
?personne wdt:P4 wd:Q102 .  # Sélectionne les personnes domiciliées à Anderlecht
</syntaxhighlight>
</syntaxhighlight>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<b>Utiliser <code>FILTER</code> pour des conditions spécifiques</b><br>   
<b>Using <code>FILTER</code> for specific conditions</b><br>   
Lorsque vous souhaitez affiner davantage vos résultats, utilisez <code>FILTER</code>.   
If you want to narrow your results even more, use <code>FILTER</code>.   
Cela vous permet de combiner plusieurs conditions, par exemple : sélectionner les personnes domiciliées à Anderlecht et nées après le 1er janvier 1920   
This allows you to combine multiple conditions
([https://tinyurl.com/26b2wdxc Lien pour tester la requête]).
For example: select individuals living in Anderlecht and born after January 1st, 1920   
([https://tinyurl.com/26b2wdxc Link to test the query]).
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<syntaxhighlight lang="sparql">
<syntaxhighlight lang="sparql">
SELECT ?person ?personLabel ?residenceLabel ?birthDate
SELECT ?personne ?personneLabel ?domicileLabel ?dateNaissance
WHERE {
WHERE {
   # Select residence and birth date of the person
   # Sélectionner le domicile et la date de naissance de la personne
   ?person wdt:P7 ?residence .        # P7: Residence
   ?personne wdt:P7 ?domicile .        # P7 : Domicile
   ?person wdt:P67 ?birthDate .       # P67: Date of birth
   ?personne wdt:P67 ?dateNaissance . # P67 : Date de naissance
</div>


  <div lang="en" dir="ltr" class="mw-content-ltr">
    # Filtrer pour les personnes domiciliées à Anderlecht (wd:Q102) et nées après le 1er janvier 1920
# Filter for people living in Anderlecht (wd:Q102) and born after Jan 1, 1920
   FILTER(?domicile = wd:Q102 && ?dateNaissance >= "1920-01-01T00:00:00Z"^^xsd:dateTime)
   FILTER(?residence = wd:Q102 && ?birthDate >= "1920-01-01T00:00:00Z"^^xsd:dateTime)
</div>


  <div lang="en" dir="ltr" class="mw-content-ltr">
    # Utiliser le service pour récupérer les libellés lisibles dans la langue choisie
# Use the label service for readable output
   SERVICE wikibase:label {
   SERVICE wikibase:label {
     bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr"
     bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr"
Line 355: Line 248:
}
}
</syntaxhighlight>
</syntaxhighlight>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<b>Usage avancé</b> :   
<b>Advanced usage</b>:   
Il est également possible d’utiliser <code>FILTER NOT EXISTS</code> pour des exclusions plus complexes.   
It’s also possible to use <code>FILTER NOT EXISTS</code> for more complex exclusions.   
Cette option permet de filtrer les résultats en excluant ceux pour lesquels une certaine condition existe.   
This allows you to filter out results that meet a specific condition.   
Vous pourrez explorer cette fonctionnalité dans des ressources avancées sur SPARQL.
You can explore this functionality further in advanced SPARQL resources.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div style="border:2px ;padding:9px; background-color:#158f68;">
<div style="border:2px ;padding:9px; background-color:#158f68;">
<span style="color:#FFFFFF;"><big>10. Visualizing Your Results</big></span> </div>
<span style="color:#FFFFFF;"><big>10. Visualiser vos résultats</big></span> </div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
Pour créer des graphiques à partir de vos requêtes SPARQL, vous avez deux options :
To create charts from your SPARQL queries, you have two options:
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<ul>
* Use the features of the <i>Query Service</i>: visualize the data in the form of tables, maps, bar charts, and timelines. For more details, see [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/Wikidata_Query_Help/Result_Views the Wikidata documentation].
<li>Utiliser les fonctionnalités du <i>Query Service</i> : visualiser les données sous forme de tableurs, cartes, graphiques à barres, et chronologies. Pour en savoir plus, consultez la [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/Wikidata_Query_Help/Result_Views/fr documentation de Wikidata].</li>
* Export the data and use other tools: you can export your results in CSV or TSV format, and then process them with data visualization tools.
<li>Exporter les données et utiliser d’autres outils : vous pouvez exporter vos résultats au format <b>CSV</b> ou <b>TSV</b>, puis les traiter avec des outils de visualisation de données.</li>
</div>
</ul>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div style="border:2px ;padding:9px; background-color:#158f68;">
<div style="border:2px ;padding:9px; background-color:#158f68;">
<span style="color:#FFFFFF;"><big>11. Federated Queries</big></span> </div>
<span style="color:#FFFFFF;"><big>11. Requêtes fédérées</big></span> </div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<b>Fonctionnalité avancée</b> : Si vous souhaitez interroger plusieurs bases de données simultanément pour enrichir vos résultats, vous pouvez utiliser des <b>requêtes fédérée</b> [https://data.arch.be/wiki/In-depth_search#%3E_Enriching_data_on_resistance_members_using_external_sources_(federated_query) cet exemple mis à votre disposition], qui permet d'extraire des informations de <i>Resistance in Belgium</i> tout en les combinant avec des données provenant de sources externes (ici : Wikidata).
<b>Advanced feature</b>: If you want to query multiple databases at once to enrich your results, you can use <b>federated queries</b>
For an example, see [https://data.arch.be/wiki/In-depth_search#%3E_Enriching_data_on_resistance_members_using_external_sources_(federated_query) this sample query], which extracts information from <i>Resistance in Belgium</i> and combines it with data from external sources (e.g., Wikidata).
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div style="border:2px ;padding:9px; background-color:#158f68;">
<div style="border:2px ;padding:9px; background-color:#158f68;">
<span style="color:#FFFFFF;"><big>12. Saving and Sharing Your Queries</big></span> </div>
<span style="color:#FFFFFF;"><big>12. Sauvegarder et partager vos requêtes</big></span> </div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
Après avoir exécuté une requête SPARQL, vous pouvez sauvegarder et partager son lien.   
After running a SPARQL query, you can save and share its link.   
Cliquez sur l’onglet <b>“Lien”</b> au-dessus des résultats pour générer une <b>Tiny URL</b> (un lien court) facile à copier et à transmettre. Cela permet à d’autres utilisateurs d’exécuter directement la même requête sans effort.
Click the <b>“Link”</b> tab above the results to generate a <b>Tiny URL</b> (a short link) that’s easy to copy and share.
This allows others to run the same query directly, with no extra effort.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div style="border:2px ;padding:9px; background-color:#158f68;">
<div style="border:2px ;padding:9px; background-color:#158f68;">
<span style="color:#FFFFFF;"><big>13. Downloading the Results</big></span> </div>
<span style="color:#FFFFFF;"><big>13. Télécharger les résultats</big></span> </div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
Après avoir exécuté une requête, utilisez l’onglet <b>“Télécharger”</b> (situé à droite au-dessus des résultats) pour exporter les données dans différents formats :   
After executing a query, use the <b>“Download”</b> tab (located on the right above the results) to export the data in different formats:   
<b>CSV</b> (compatible avec LibreOffice Calc ou Excel), <b>TSV</b> ou <b>JSON</b>.
<b>CSV</b> (compatible with LibreOffice Calc or Excel), <b>TSV</b>, or <b>JSON</b>.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<b>Bonnes pratiques</b> : enregistrez le fichier avec un nom clair qui précise les critères de recherche pour faciliter sa réutilisation.
<b>Best practice</b>: Save the file with a clear name that reflects your search criteria to make it easier to reuse later.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div style="border:2px ;padding:9px; background-color:#158f68;">
<div style="border:2px ;padding:9px; background-color:#158f68;">
<span style="color:#FFFFFF;"><big>14. Additional Resources</big></span> </div>
<span style="color:#FFFFFF;"><big>14. Ressources supplémentaires</big></span> </div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
Pour approfondir vos connaissances et créer des requêtes plus complexes, voici quelques ressources utiles :
To deepen your knowledge and create more advanced queries, here are some useful resources:
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<ul>
<ul>
<li><b>List of properties</b> used to describe resistance members:<br>  
<li><b>Liste des propriétés</b> utilisées pour décrire les résistant⸱e⸱s :<br>
[https://data.arch.be/wiki/Special:ListProperties https://data.arch.be/wiki/Special:ListProperties]</li>
[https://data.arch.be/wiki/Special:ListProperties https://data.arch.be/wiki/Special:ListProperties]</li>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<li><b>Fiche "type" d'une personne</b> (exemple : Andrée De Jongh) :<br>
<li><b>Example profile of an individual</b> (e.g. Andrée De Jongh):<br>
[https://data.arch.be/wiki/Item:Q6793 https://data.arch.be/wiki/Item:Q6793]</li>
[https://data.arch.be/wiki/Item:Q6793 https://data.arch.be/wiki/Item:Q6793]</li>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<li><b>Échantillon de neuf requêtes SPARQL</b>, réparties en trois niveaux de complexité :<br>
<li><b>Sample of nine SPARQL queries</b> organized by complexity level:<br>
[https://data.arch.be/wiki/In-depth_search/fr https://data.arch.be/wiki/In-depth_search/fr]</li>
[https://data.arch.be/wiki/In-depth_search/fr https://data.arch.be/wiki/In-depth_search/fr]</li>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<li><b>FAQ</b> pour comprendre le contexte et le contenu des données disponibles :<br>
<li><b>FAQ</b> to understand the context and content of the available data:<br>
[https://data.arch.be/wiki/FAQ/fr https://data.arch.be/wiki/FAQ/fr]</li>
[https://data.arch.be/wiki/FAQ/en https://data.arch.be/wiki/FAQ/en]</li>
</ul>
</ul>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<b>Ressources externes</b><br>   
<b>External Resources</b><br>   
Nous vous encourageons également à consulter des ressources externes, telles que les <b>tutoriels Wikidata</b>, qui offrent une excellente introduction aux requêtes SPARQL.   
We also encourage you to consult external resources, such as <b>Wikidata tutorials</b>, which offer excellent introductions to SPARQL queries.   
Bien que ces exemples utilisent le même logiciel (Wikibase) que notre projet, notez que les données et la structure des requêtes sont spécifiques à Wikidata et ne s'appliquent pas directement au contenu de <i>Resistance in Belgium</i>.
Although these examples use the same software (Wikibase) as this project, note that the data and query structure are specific to Wikidata and do not apply directly to the content of <i>Resistance in Belgium</i>.
 
</div>
<ul>
<li>[https://wdqs-tutorial.toolforge.org/ '''Wikidata Query Service Tutorial (interactive)'''] : un tutoriel interactif pour débutants qui permet d'explorer les requêtes SPARQL de manière pratique <i>(ressource en anglais)</i>.</li>
 
<li>[https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/A_gentle_introduction_to_the_Wikidata_Query_Service/fr '''Une introduction en douceur au service de requête de Wikidata'''] : un guide simple étape par étape pour comprendre l'interface et créer des requêtes.</li>
 
<li>[https://www.wikidata.org/wiki/Wikidata:SPARQL_tutorial/fr '''Wikidata:Tutoriel SPARQL'''] : un guide SPARQL détaillé et structuré pour ceux qui souhaitent approfondir la rédaction de requêtes.</li>


<div lang="en" dir="ltr" class="mw-content-ltr">
<li><b>Outils d'intelligence artificielle</b> capables de vous assister dans la rédaction de requêtes.</li>
* [https://wdqs-tutorial.toolforge.org/ '''Wikidata Query Service Tutorial (interactive)''']: An interactive tutorial for beginners to explore SPARQL queries practically. <i>(Resource in English)</i>.
</ul>
* [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/A_gentle_introduction_to_the_Wikidata_Query_Service '''A gentle introduction to the Wikidata Query Service''']: A simple step-by-step guide to understand the interface and write queries.
* [https://www.wikidata.org/wiki/Wikidata:SPARQL_tutorial '''Wikidata:SPARQL Tutorial''']: A detailed and structured SPARQL guide for those who want to deepen their query writing.
* <b>AI-powered tools</b> that can assist you in writing queries.
</div>

Latest revision as of 09:28, 2 April 2025

1. Introduction à SPARQL

Utiliser SPARQL, c’est comme être un⸱e enquêteur⸱rice dans un vaste fonds d’archives. Ici, plutôt que de fouiller chaque document un par un, vous disposez d’un langage qui vous permet, en une requête précise, de retrouver instantanément les informations correspondant à vos critères.

Dans le cadre de Resistance in Belgium, SPARQL facilite l’accès aux données sur les résistant⸱e⸱s : lieu de naissance, domicile, statuts de reconnaissance officiels ou appartenance à une organisation de résistance.

Avec SPARQL, vous pouvez :

  • Filtrer et croiser des informations ;
  • Personnaliser vos recherches avec des critères spécifiques ;
  • Extraire des données précises sans parcourir des milliers de fiches manuellement ;
  • Générer des visualisations pour mieux interpréter vos résultats.

Cette approche vous offre une autonomie précieuse dans l’analyse des données de Resistance in Belgium. Vous pouvez non seulement extraire des listes de noms, mais aussi identifier des liens complexes, comme des résistant⸱e⸱s affilié⸱e⸱s à plusieurs organisations ou ayant obtenu différents statuts de reconnaissance.

SPARQL vous donne le superpouvoir convoité par tous les chercheurs et chercheuses : poser une question ultra-précise et voir les réponses surgir en quelques millisecondes. Bien sûr, comme tout superpouvoir, il demande un peu d’entraînement pour être maîtrisé. Mais pas de panique ! Ce tutoriel est là pour vous guider et transformer les obstacles en opportunités… Qui a dit que la recherche dans les archives devait être poussiéreuse ?

Prêt⸱e à maîtriser la force de SPARQL ? Allons-y !

2. Stratégie pour vos premières requêtes

Maintenant que vous avez une idée générale de ce qu’est SPARQL, voici une stratégie pour bien démarrer vos recherches.

Il existe des outils d’aide à la rédaction de requêtes SPARQL, mais pour gagner en autonomie et en flexibilité, il est souvent plus efficace de partir d’une requête existante et de l’adapter à vos besoins spécifiques.

Cette approche vous permet de :

  • Consulter nos exemples de requêtes SPARQL ;
  • Utiliser des outils d’intelligence artificielle capables de générer des requêtes selon vos besoins.

Ce tutoriel vous guidera dans la compréhension des bases de SPARQL et vous apprendra à identifier les éléments clés pour adapter une requête existante avec succès.

3. Les bases d’une requête SPARQL

Une requête SPARQL repose sur quelques éléments essentiels. Voici les deux principaux :

  • SELECT : cette clause permet de choisir quelles informations afficher dans les résultats. Vous spécifiez ici les éléments que vous souhaitez voir apparaître.
  • WHERE : cette clause permet de filtrer les données en définissant des critères précis. C’est ici que vous décrivez les conditions que les données doivent respecter.

📝 Exemple simple

Voici une requête qui extrait les noms et prénoms des personnes présentes dans la base de données. Les lignes qui commencent par # sont des commentaires pour expliquer chaque partie de la requête.

SELECT ?nom ?prenom
WHERE {
  ?personne wdt:P1 wd:Q2 ;     # Sélectionne des personnes
            wdt:P3 ?nom ;      # Récupère le nom de famille
            wdt:P2 ?prenom .   # Récupère le prénom
}

Explication de l’exemple :

  1. SELECT ?nom ?prenom :
    Indique que l’on souhaite voir apparaître les valeurs des variables ?nom et ?prenom dans les résultats.
  2. WHERE { ... } :
    Décrit la structure et les conditions de la requête :
      • ?personne wdt:P1 wd:Q2 : sélectionne les éléments qui sont des êtres humains (P1 = nature de l’élément, Q2 = personne).
      • wdt:P3 ?nom : associe à ?nom le nom de famille de la personne (P3).
      • wdt:P2 ?prenom : associe à ?prenom le prénom de la personne (P2).

Vous connaissez maintenant les bases de toutes les requêtes SPARQL. Vous allez pouvoir les adapter à vos besoins en sélectionnant facilement les variables à utiliser et en ajoutant des filtres, des colonnes supplémentaires ou des options avancées.

4. L’astuce qui fait toute la différence

Lorsque vous rédigez une requête SPARQL, il peut être fastidieux de se souvenir des identifiants numériques pour les communes, statuts de reconnaissance ou organisations de résistance. Heureusement, une fonctionnalité d’auto-complétion est disponible pour vous simplifier la tâche.

  • Astuce pratique : appuyez sur Ctrl + Espace lorsque vous êtes en train de taper une propriété ou une valeur. Cela vous permet de rechercher des termes dans votre langue plutôt que d’utiliser des identifiants numériques.

Exemple :
Si vous cherchez une commune comme Anderlecht, au lieu de retenir son identifiant (par exemple wd:Q102), utilisez Ctrl + Espace et commencez à taper "Anderlecht" pour que l’éditeur propose automatiquement l’identifiant correspondant.

Cette méthode vous permet de gagner du temps et d’éviter les erreurs liées à la saisie des identifiants.

Animation de l’auto-complétion SPARQL
Auto-complétion en action — Appuyez sur Ctrl + Espace pour trouver la bonne propriété ou valeur.
5. Afficher les labels dans la langue de son choix

Lorsque vous interrogez une base de données Wikibase avec SPARQL, les résultats peuvent parfois afficher des identifiants (par exemple Q102) au lieu de textes explicites (par exemple : Anderlecht). Pour rendre les résultats plus lisibles, vous pouvez récupérer les labels (libellés) dans la langue de votre choix (français, néerlandais, allemand ou anglais). Il suffit d’utiliser SERVICE wikibase:label en fin de requête pour récupérer les intitulés dans la langue de votre choix.

Comment faire ?
Ajoutez le service wikibase:label à votre requête pour afficher les labels. Voici un exemple de requête simple qui récupère le nom des personnes avec leur domicile, en affichant les “labels” en français :

SELECT ?personne ?personneLabel ?Domicile ?DomicileLabel
WHERE {
  ?personne wdt:P1 wd:Q2.         # Sélectionner des êtres humains
  ?personne wdt:P7 wd:Q102.       # Domicile (P7) = Anderlecht (Q102)
  SERVICE wikibase:label {        # Service pour récupérer les labels
    bd:serviceParam wikibase:language "fr". # Langue choisie : français
  }
}

Explication rapide

  • SERVICE wikibase:label : active le service pour récupérer les labels.
  • bd:serviceParam wikibase:language "fr" : définit la langue des labels (changez "fr" pour "en", "nl", "de" selon vos besoins).

Utiliser AUTO_LANGUAGE
Pour que les labels s’affichent automatiquement dans la langue définie par votre navigateur ou votre préférence utilisateur, utilisez AUTO_LANGUAGE :

bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr,en".

Astuces

  • Pour que les labels s’affichent automatiquement dans la langue définie par votre navigateur ou votre préférence utilisateur, utilisez bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr,en".
  • Vous pouvez aussi utiliser plusieurs langues en priorité. Par exemple, pour afficher les labels en français, et si indisponible, en anglais : bd:serviceParam wikibase:language "fr,en,[AUTO_LANGUAGE]"
6. Ajouter des informations supplémentaires

Pour enrichir vos résultats, vous pouvez ajouter plusieurs colonnes contenant des informations supplémentaires, comme le domicile, la date de naissance ou d'autres détails pertinents. Pour vous inspirer : consulter la liste des propriétés ou observer comment sont modélisées les données à l’aide d’un exemple, ici Andrée De Jongh.

Ajouter des colonnes simples
Il suffit d'ajouter les propriétés correspondant aux informations que vous souhaitez extraire.

Exemple : ajouter le domicile et la date de naissance des personnes.

SELECT ?personne ?personneLabel ?domicileLabel ?dateNaissance
WHERE {
  ?personne wdt:P7 ?domicile .        # P7 : Domicile
  ?personne wdt:P67 ?dateNaissance .  # P67 : Date de naissance

    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr" }
}

Rendre une colonne optionnelle avec OPTIONAL
Si certaines informations peuvent être manquantes, utilisez OPTIONAL pour éviter que cela restreigne le nombre de résultats. Ajouter OPTIONAL permet de récupérer des résultats même si une des colonnes est vide.

Exemple : ajouter la date de naissance seulement si l'information est disponible.

SELECT ?personne ?personneLabel ?domicileLabel ?dateNaissance
WHERE {
  ?personne wdt:P7 ?domicile .                    # P7 : Domicile

   OPTIONAL { ?personne wdt:P67 ?dateNaissance . } # P67 : Date de naissance (facultatif)

  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr" }
}

Astuce : pour combiner plusieurs valeurs en une seule colonne (par exemple, “concaténer” l’appartenance à différentes organisations de résistance), utilisez CONCAT. Cela permet de regrouper ces informations dans une même cellule tout en conservant une seule ligne par personne. Pour explorer cette fonction et ses variantes, nous vous encourageons à consulter la documentation SPARQL disponible en ligne.

7. Limiter le nombre de résultats

Pour restreindre le nombre de résultats affichés (notamment si vous voulez tester une requête contenant un très grand nombre de colonnes), ajoutez LIMIT à votre requête.

Exemple : afficher uniquement les 10 premiers résultats.

SELECT ?personne ?personneLabel ?dateNaissance
WHERE {
  ?personne wdt:P67 ?dateNaissance .

    SERVICE wikibase:label {
    bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr"
  }
}
LIMIT 10
8. Ordonner les résultats

Pour trier les résultats selon une certaine colonne, utilisez ORDER BY. Par défaut, le tri est ascendant (ASC), mais vous pouvez aussi spécifier un tri descendant (DESC).

Exemple : Trier les résultats par date de naissance croissante.

SELECT ?personne ?personneLabel ?dateNaissance
WHERE {
  ?personne wdt:P67 ?dateNaissance .

    SERVICE wikibase:label {
    bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr"
  }
}
ORDER BY ASC(?dateNaissance)
9. Ajouter des filtres

Les filtres permettent d’affiner vos résultats en ajoutant des critères spécifiques à votre requête. Ils sont utiles pour combiner plusieurs conditions ou exclure certaines valeurs.

📝 Exemple simple sans filtre

Pour sélectionner les personnes répondant à un certain critère, comme par exemple “domiciliées dans à Anderlecht”, vous pouvez écrire directement :

?personne wdt:P4 wd:Q102 .  # Sélectionne les personnes domiciliées à Anderlecht

Utiliser FILTER pour des conditions spécifiques
Lorsque vous souhaitez affiner davantage vos résultats, utilisez FILTER. Cela vous permet de combiner plusieurs conditions, par exemple : sélectionner les personnes domiciliées à Anderlecht et nées après le 1er janvier 1920 (Lien pour tester la requête).

SELECT ?personne ?personneLabel ?domicileLabel ?dateNaissance
WHERE {
  # Sélectionner le domicile et la date de naissance de la personne
  ?personne wdt:P7 ?domicile .        # P7 : Domicile
  ?personne wdt:P67 ?dateNaissance .  # P67 : Date de naissance

    # Filtrer pour les personnes domiciliées à Anderlecht (wd:Q102) et nées après le 1er janvier 1920
  FILTER(?domicile = wd:Q102 && ?dateNaissance >= "1920-01-01T00:00:00Z"^^xsd:dateTime)

    # Utiliser le service pour récupérer les libellés lisibles dans la langue choisie
  SERVICE wikibase:label {
    bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr"
  }
}

Usage avancé : Il est également possible d’utiliser FILTER NOT EXISTS pour des exclusions plus complexes. Cette option permet de filtrer les résultats en excluant ceux pour lesquels une certaine condition existe. Vous pourrez explorer cette fonctionnalité dans des ressources avancées sur SPARQL.

10. Visualiser vos résultats

Pour créer des graphiques à partir de vos requêtes SPARQL, vous avez deux options :

  • Utiliser les fonctionnalités du Query Service : visualiser les données sous forme de tableurs, cartes, graphiques à barres, et chronologies. Pour en savoir plus, consultez la documentation de Wikidata.
  • Exporter les données et utiliser d’autres outils : vous pouvez exporter vos résultats au format CSV ou TSV, puis les traiter avec des outils de visualisation de données.
11. Requêtes fédérées

Fonctionnalité avancée : Si vous souhaitez interroger plusieurs bases de données simultanément pour enrichir vos résultats, vous pouvez utiliser des requêtes fédérée cet exemple mis à votre disposition, qui permet d'extraire des informations de Resistance in Belgium tout en les combinant avec des données provenant de sources externes (ici : Wikidata).

12. Sauvegarder et partager vos requêtes

Après avoir exécuté une requête SPARQL, vous pouvez sauvegarder et partager son lien. Cliquez sur l’onglet “Lien” au-dessus des résultats pour générer une Tiny URL (un lien court) facile à copier et à transmettre. Cela permet à d’autres utilisateurs d’exécuter directement la même requête sans effort.

13. Télécharger les résultats

Après avoir exécuté une requête, utilisez l’onglet “Télécharger” (situé à droite au-dessus des résultats) pour exporter les données dans différents formats : CSV (compatible avec LibreOffice Calc ou Excel), TSV ou JSON.

Bonnes pratiques : enregistrez le fichier avec un nom clair qui précise les critères de recherche pour faciliter sa réutilisation.

14. Ressources supplémentaires

Pour approfondir vos connaissances et créer des requêtes plus complexes, voici quelques ressources utiles :

Ressources externes
Nous vous encourageons également à consulter des ressources externes, telles que les tutoriels Wikidata, qui offrent une excellente introduction aux requêtes SPARQL. Bien que ces exemples utilisent le même logiciel (Wikibase) que notre projet, notez que les données et la structure des requêtes sont spécifiques à Wikidata et ne s'appliquent pas directement au contenu de Resistance in Belgium.