Tutorial/fr: Difference between revisions
A Lyapounov (talk | contribs) (Created page with " OPTIONAL { ?personne wdt:P67 ?dateNaissance . } # P67 : Date de naissance (facultatif)") |
A Lyapounov (talk | contribs) (Created page with "SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr" } } </syntaxhighlight>") |
||
| Line 162: | Line 162: | ||
OPTIONAL { ?personne wdt:P67 ?dateNaissance . } # P67 : Date de naissance (facultatif) | OPTIONAL { ?personne wdt:P67 ?dateNaissance . } # P67 : Date de naissance (facultatif) | ||
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr" } | |||
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr" } | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
Revision as of 14:58, 1 April 2025
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 !
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.
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 :
SELECT ?nom ?prenom:
Indique que l’on souhaite voir apparaître les valeurs des variables?nomet?prenomdans les résultats.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 à?nomle nom de famille de la personne (P3).wdt:P2 ?prenom: associe à?prenomle 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.
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.
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]"
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" }
}
Tip: To combine multiple values into a single column (for example, to “concatenate” membership in multiple resistance organizations), use CONCAT.
This allows grouping the data into a single cell while keeping one result row per person.
To explore this function and its variants, refer to the SPARQL documentation available online.
To reduce the number of results displayed (especially if you’re testing a query with many columns), add the LIMIT clause to your query.
Example: Show only the first 10 results.
SELECT ?person ?personLabel ?birthDate
WHERE {
?person wdt:P67 ?birthDate .
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
SERVICE wikibase:label {
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr"
}
}
LIMIT 10
To sort results by a specific column, use the ORDER BY clause.
By default, the sorting is ascending (ASC), but you can also specify descending order using DESC.
Example: Sort results by birth date in ascending order.
SELECT ?person ?personLabel ?birthDate
WHERE {
?person wdt:P67 ?birthDate .
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
SERVICE wikibase:label {
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr"
}
}
ORDER BY ASC(?birthDate)
Filters allow you to refine your results by adding specific criteria to your query. They are useful for combining multiple conditions or excluding certain values.
📝 Simple example without filter
To select individuals matching a basic criterion—like “residing in Anderlecht”—you can write:
?person wdt:P4 wd:Q102 . # Selects individuals residing in Anderlecht
Using FILTER for specific conditions
If you want to narrow your results even more, use FILTER.
This allows you to combine multiple conditions.
For example: select individuals living in Anderlecht and born after January 1st, 1920
(Link to test the query).
SELECT ?person ?personLabel ?residenceLabel ?birthDate
WHERE {
# Select residence and birth date of the person
?person wdt:P7 ?residence . # P7: Residence
?person wdt:P67 ?birthDate . # P67: Date of birth
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
# Filter for people living in Anderlecht (wd:Q102) and born after Jan 1, 1920
FILTER(?residence = wd:Q102 && ?birthDate >= "1920-01-01T00:00:00Z"^^xsd:dateTime)
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
# Use the label service for readable output
SERVICE wikibase:label {
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr"
}
}
Advanced usage:
It’s also possible to use FILTER NOT EXISTS for more complex exclusions.
This allows you to filter out results that meet a specific condition.
You can explore this functionality further in advanced SPARQL resources.
To create charts from your SPARQL queries, you have two options:
- Use the features of the Query Service: visualize the data in the form of tables, maps, bar charts, and timelines. For more details, see the Wikidata documentation.
- 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.
Advanced feature: If you want to query multiple databases at once to enrich your results, you can use federated queries. For an example, see this sample query, which extracts information from Resistance in Belgium and combines it with data from external sources (e.g., Wikidata).
After running a SPARQL query, you can save and share its link. Click the “Link” tab above the results to generate a Tiny URL (a short link) that’s easy to copy and share. This allows others to run the same query directly, with no extra effort.
After executing a query, use the “Download” tab (located on the right above the results) to export the data in different formats: CSV (compatible with LibreOffice Calc or Excel), TSV, or JSON.
Best practice: Save the file with a clear name that reflects your search criteria to make it easier to reuse later.
To deepen your knowledge and create more advanced queries, here are some useful resources:
- List of properties used to describe resistance members:
https://data.arch.be/wiki/Special:ListProperties
https://data.arch.be/wiki/Item:Q6793
https://data.arch.be/wiki/In-depth_search/fr
https://data.arch.be/wiki/FAQ/en
External Resources
We also encourage you to consult external resources, such as Wikidata tutorials, which offer excellent introductions to SPARQL queries.
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 Resistance in Belgium.
- Wikidata Query Service Tutorial (interactive): An interactive tutorial for beginners to explore SPARQL queries practically. (Resource in English).
- A gentle introduction to the Wikidata Query Service: A simple step-by-step guide to understand the interface and write queries.
- Wikidata:SPARQL Tutorial: A detailed and structured SPARQL guide for those who want to deepen their query writing.
- AI-powered tools that can assist you in writing queries.