Tutorial/nl: Difference between revisions
A Lyapounov (talk | contribs) (Created page with " SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl" } } </syntaxhighlight>") |
A Lyapounov (talk | contribs) (Created page with "<b>Tip</b>: om meerdere waarden in één kolom te combineren (bijvoorbeeld lidmaatschap van verschillende verzetsorganisaties), gebruik <code>CONCAT</code>. Zo groepeer je de informatie in één cel, terwijl je per persoon slechts één rij behoudt. Bekijk de SPARQL-documentatie online om meer te leren over deze functie en haar variaties.") |
||
| Line 170: | Line 170: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<b>Tip</b>: om meerdere waarden in één kolom te combineren (bijvoorbeeld lidmaatschap van verschillende verzetsorganisaties), gebruik <code>CONCAT</code>. | |||
<b>Tip</b>: | Zo groepeer je de informatie in één cel, terwijl je per persoon slechts één rij behoudt. | ||
Bekijk de SPARQL-documentatie online om meer te leren over deze functie en haar variaties. | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
Revision as of 09:10, 2 April 2025
SPARQL gebruiken is alsof je een onderzoeker bent in een gigantisch archief. In plaats van elk document één voor één door te nemen, beschik je over een taal waarmee je met één gerichte zoekopdracht onmiddellijk de informatie kunt vinden die aan je criteria voldoet.
Binnen het project Resistance in Belgium maakt SPARQL het eenvoudiger om toegang te krijgen tot gegevens over verzetsleden: geboorteplaats, woonplaats, officiële erkenningsstatussen of lidmaatschap van een verzetsorganisatie.
Met SPARQL kun je:
- Informatie filteren en combineren;
- Je zoekopdrachten personaliseren met specifieke criteria;
- Precieze gegevens ophalen zonder duizenden fiches handmatig te doorlopen;
- Visualisaties genereren om je resultaten beter te interpreteren.
Deze aanpak geeft je waardevolle autonomie bij het analyseren van de gegevens uit Resistance in Belgium. Je kunt niet alleen namenlijsten opvragen, maar ook complexe verbanden ontdekken, zoals leden die betrokken waren bij meerdere organisaties of verschillende erkenningsstatussen kregen.
SPARQL geeft je de superkracht waar elke onderzoeker van droomt: stel een ultra-precieze vraag en zie het antwoord binnen milliseconden verschijnen. Natuurlijk vraagt dat enige oefening om onder de knie te krijgen. Geen zorgen! Deze handleiding is er om je te begeleiden en obstakels om te zetten in kansen… Wie zegt dat archiefonderzoek saai moet zijn?
Klaar om de kracht van SPARQL te beheersen? Aan de slag!
Nu je een algemeen idee hebt van wat SPARQL is, volgt hier een strategie om je onderzoek goed te starten.
Er bestaan hulpmiddelen om SPARQL-query’s op te stellen, maar om meer autonomie en flexibiliteit te verwerven, is het vaak effectiever om te vertrekken van een bestaande query en die aan te passen aan je specifieke noden.
Deze aanpak stelt je in staat om:
- Onze voorbeelden van SPARQL-query’s te raadplegen;
- Gebruik te maken van kunstmatige intelligentietools die query’s genereren op basis van je behoeften.
Deze handleiding zal je begeleiden bij het begrijpen van de basisprincipes van SPARQL en je leren hoe je de essentiële elementen kunt herkennen om een bestaande query succesvol aan te passen.
Een SPARQL-query bestaat uit enkele essentiële onderdelen. Hier zijn de twee belangrijkste:
- SELECT: met deze clausule kies je welke informatie wordt weergegeven in de resultaten.
- WHERE: met deze clausule kun je de gegevens filteren door specifieke criteria te definiëren. Hier beschrijf je aan welke voorwaarden de gegevens moeten voldoen.
📝 Eenvoudig voorbeeld
Hier is een query die de voor- en achternaam van personen in de databank ophaalt.
Regels die beginnen met # zijn commentaarregels om elk onderdeel van de query uit te leggen.
SELECT ?naam ?voornaam
WHERE {
?persoon wdt:P1 wd:Q2 ; # Selecteert personen
wdt:P3 ?naam ; # Haalt de achternaam op
wdt:P2 ?voornaam . # Haalt de voornaam op
}
Uitleg bij het voorbeeld:
SELECT ?naam ?voornaam:
Geeft aan dat we de waarden van de variabelen?naamen?voornaamwillen weergeven in de resultaten.WHERE { ... }:
Geeft de structuur en voorwaarden van de query:?persoon wdt:P1 wd:Q2: selecteert elementen die menselijke wezens zijn (P1 = type item, Q2 = persoon).wdt:P3 ?naam: koppelt de familienaam aan de variabele?naam(P3).wdt:P2 ?voornaam: koppelt de voornaam aan de variabele?voornaam(P2).
Je kent nu de basis van alle SPARQL-query’s. Je zult ze kunnen aanpassen aan je behoeften door eenvoudigweg de juiste variabelen te selecteren en filters, extra kolommen of geavanceerde opties toe te voegen.
Wanneer je een SPARQL-query opstelt, kan het lastig zijn om numerieke identificatiecodes voor gemeenten, erkenningsstatussen of verzetsorganisaties te onthouden. Gelukkig is er een auto-aanvulfunctie beschikbaar om je te helpen.
- Praktische tip: druk op Ctrl + Spatie terwijl je een eigenschap of waarde typt. Hierdoor kun je termen in je eigen taal zoeken in plaats van te vertrouwen op numerieke identificatiecodes.
Voorbeeld:
Als je een gemeente zoals Anderlecht zoekt, hoef je het identificatienummer (bijvoorbeeld wd:Q102) niet uit het hoofd te kennen. Gebruik Ctrl + Spatie en begin "Anderlecht" te typen — de editor stelt automatisch het juiste identificatienummer voor.
Deze methode helpt je tijd te besparen en fouten te vermijden bij het invoeren van identificaties.
Wanneer je een Wikibase-database ondervraagt met SPARQL, worden in de resultaten soms identificaties weergegeven (zoals Q102) in plaats van duidelijke tekst (zoals "Anderlecht").
Om de resultaten leesbaarder te maken, kun je labels (benamingen) ophalen in de taal van jouw voorkeur (Nederlands, Frans, Duits of Engels).
Gebruik simpelweg SERVICE wikibase:label aan het einde van je query om labels in de juiste taal op te halen.
Hoe werkt het?
Voeg de service wikibase:label toe aan je query. Hier is een eenvoudig voorbeeld dat de naam van personen en hun woonplaats ophaalt, met labels in het Frans:
SELECT ?persoon ?persoonLabel ?woonplaats ?woonplaatsLabel
WHERE {
?persoon wdt:P1 wd:Q2. # Selecteer personen
?persoon wdt:P7 wd:Q102. # Woonplaats (P7) = Anderlecht (Q102)
SERVICE wikibase:label { # Service om labels op te halen
bd:serviceParam wikibase:language "fr". # Gekozen taal: Frans
}
}
Korte uitleg
SERVICE wikibase:label: activeert de service om labels op te halen.bd:serviceParam wikibase:language "fr": bepaalt de taal van de labels (vervang"fr"door"nl","en","de"afhankelijk van je voorkeur).
AUTO_LANGUAGE gebruiken
Om labels automatisch weer te geven in de taal van je browser of gebruikersvoorkeur, gebruik AUTO_LANGUAGE:
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr,en".
Tips
- Gebruik
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr,en"om labels automatisch in de voorkeurstaal van je browser te tonen. - Je kunt meerdere voorkeurstalen instellen.
Bijvoorbeeld, om eerst Nederlands te tonen en anders Engels:
bd:serviceParam wikibase:language "nl,en,[AUTO_LANGUAGE]"
Om je resultaten te verrijken, kun je meerdere kolommen toevoegen met extra informatie, zoals woonplaats, geboortedatum of andere relevante gegevens. Laat je inspireren door de lijst van eigenschappen of bekijk hoe gegevens zijn gemodelleerd aan de hand van een voorbeeld zoals Andrée De Jongh.
Eenvoudige kolommen toevoegen
Voeg simpelweg de eigenschappen toe die overeenkomen met de informatie die je wilt ophalen.
Voorbeeld: voeg de woonplaats en geboortedatum van personen toe.
SELECT ?persoon ?persoonLabel ?woonplaatsLabel ?geboortedatum
WHERE {
?persoon wdt:P7 ?woonplaats . # P7: Woonplaats
?persoon wdt:P67 ?geboortedatum . # P67: Geboortedatum
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl" }
}
Een kolom optioneel maken met OPTIONAL
Als bepaalde informatie mogelijk ontbreekt, gebruik dan OPTIONAL zodat je toch resultaten krijgt.
Met OPTIONAL kun je gegevens ophalen zelfs als een kolom leeg is.
Voorbeeld: voeg geboortedatum alleen toe als die beschikbaar is.
SELECT ?persoon ?persoonLabel ?woonplaatsLabel ?geboortedatum
WHERE {
?persoon wdt:P7 ?woonplaats . # P7: Woonplaats
OPTIONAL { ?persoon wdt:P67 ?geboortedatum . } # P67: Optionele geboortedatum
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl" }
}
Tip: om meerdere waarden in één kolom te combineren (bijvoorbeeld lidmaatschap van verschillende verzetsorganisaties), gebruik CONCAT.
Zo groepeer je de informatie in één cel, terwijl je per persoon slechts één rij behoudt.
Bekijk de SPARQL-documentatie online om meer te leren over deze functie en haar variaties.
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.