Project:SPARQL/examples/nl: Difference between revisions

From Resistance in Belgium
(Created page with "# Deze query haalt de lijst op van personen in de database met een bepaald beroep (hier: kapper / kapster).")
No edit summary
 
(38 intermediate revisions by 2 users not shown)
Line 4: Line 4:
== SPARQL zoekopdracht voorbeelden ==
== SPARQL zoekopdracht voorbeelden ==


Deze pagina bevat voorbeelden van SPARQL zoekopdrachten die het mogelijk maken om diepgaand de gegevens van ''Weerstand in België'' te doorzoeken ([https://data.arch.be/wiki/Special:MyLanguage/In-depth_search zie ook deze voorbeeldpagina]). Elke query kan worden uitgevoerd door te klikken op de link "Try it!", die een speciale query-interface opent.
Deze pagina geeft voorbeelden van SPARQL-query's die het mogelijk maken om de gegevens van ''Resistance in Belgium'' diepgaand te doorzoeken ([https://data.arch.be/wiki/Special:MyLanguage/In-depth_search zie ook deze voorbeeldpagina]). Elke query kan worden uitgevoerd door te klikken op de link "Probeer het!", die een speciale query-interface opent.


'''Opmerking''': Om praktische redenen zijn de query's automatisch vertaald in het Engels, Nederlands en Duits. Hoewel er kleine onnauwkeurigheden kunnen zijn, hebben we prioriteit gegeven aan het beschikbaar maken van deze voorbeelden in meerdere talen om brede toegang tot de gegevens voor alle gebruikers te waarborgen.
'''Opmerking''': Om praktische redenen zijn de query's automatisch vertaald in het Engels, Nederlands en Duits. Hoewel er kleine onnauwkeurigheden kunnen zijn, hebben we prioriteit gegeven aan het beschikbaar stellen van deze voorbeelden in meerdere talen om brede toegang tot de gegevens voor alle gebruikers te waarborgen.




<span id="Search_for_resistance_members_by_family_name"></span>
<span id="Search_for_resistance_members_by_family_name"></span>
==== > Verzetsmensen opzoeken op familienaam ====
==== Verzetsmensen opzoeken op familienaam ====


{{SPARQL|query=
{{SPARQL|query=
Line 34: Line 34:


<span id="Search_for_members_of_a_resistance_organisation"></span>
<span id="Search_for_members_of_a_resistance_organisation"></span>
==== > Zoeken op de leden van een bepaalde verzetsbeweging ====
==== Zoeken op de leden van een bepaalde verzetsbeweging ====




Line 98: Line 98:
#title: Verzetsstrijders met een bepaald beroep (hier: kapper / kapster)
#title: Verzetsstrijders met een bepaald beroep (hier: kapper / kapster)


<div lang="en" dir="ltr" class="mw-content-ltr">
SELECT ?persoon ?achternaam ?voornaam ?woonplaatsLabel ?beroepLabel
SELECT ?person ?surname ?firstName ?residenceLabel ?professionLabel
WHERE {
WHERE {
   ?person wdt:P1  wd:Q2 .              # Selects all people (P1) with the identifier "Person" (Q2)
   ?persoon wdt:P1  wd:Q2 .              # Selecteert alle personen (P1) met de identificatie "Persoon" (Q2)
   ?person wdt:P13 ?profession .         # Selects their profession (P13)
   ?persoon wdt:P13 ?beroep .             # Selecteert hun beroep (P13)
   ?person wdt:P3 ?surname .             # Retrieves the surname (P3)
   ?persoon wdt:P3 ?achternaam .         # Haalt de achternaam op (P3)
   ?person wdt:P2 ?firstName .           # Retrieves the first name (P2)
   ?persoon wdt:P2 ?voornaam .           # Haalt de voornaam op (P2)
    
    
   FILTER (CONTAINS(str(?profession), 'coiffeu') || CONTAINS(str(?profession), 'kapper')).  # Filters to select all people whose profession
   FILTER (CONTAINS(str(?beroep), 'coiffeu') || CONTAINS(str(?beroep), 'kapper')).  # Filtert om alle personen te selecteren wiens beroep
                                                                                          # contains 'coiffeu' (hairdresser in French) or 'kapper' (in Dutch)
                                                                                  # 'coiffeu' (kapper in het Frans) of 'kapper' (in het Nederlands) bevat
</div>


  <div lang="en" dir="ltr" class="mw-content-ltr">
  #FILTER (CONTAINS(str(?beroep), 'coiffeu')). # Als u slechts één zoekterm wilt gebruiken: verwijder de '#' aan het begin van de regel en verwijder de vorige regel
#FILTER (CONTAINS(str(?profession), 'coiffeu')). # If you want to use only one search term: remove the '#' at the start of the line and delete the previous line
    
    
   OPTIONAL { ?person wdt:P7 ?residence. } # Also adds the residence (P7), if known
   OPTIONAL { ?persoon wdt:P7 ?woonplaats. } # Voegt ook de woonplaats toe (P7), indien bekend
            
            
   SERVICE wikibase:label { bd:serviceParam wikibase:language "en,[AUTO_LANGUAGE]". }  # Retrieves the labels in English
   SERVICE wikibase:label { bd:serviceParam wikibase:language "nl,[AUTO_LANGUAGE]". }  # Haalt de labels in het Nederlands op
}
}
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
ORDER BY LCASE(?surname) LCASE(?firstName)  # Sorts the results by surname, then first name (case-insensitive)
ORDER BY LCASE(?surname) LCASE(?firstName)  # Sorts the results by surname, then first name (case-insensitive)
}}
}}
</div>




Line 128: Line 122:
==== Aantal leden per verzetsbeweging ====
==== Aantal leden per verzetsbeweging ====


<div lang="en" dir="ltr" class="mw-content-ltr">
{{SPARQL|query=
{{SPARQL|query=
# This query has been automatically translated for pragmatic reasons and due to limited resources. Please be aware that some terms may not be fully accurate.
# Deze query is automatisch vertaald om pragmatische redenen en vanwege beperkte middelen. Houd er rekening mee dat sommige termen mogelijk niet volledig nauwkeurig zijn.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
# Deze query haalt het aantal leden per verzetsorganisatie op en toont de resultaten als een bellenkaart.
# This query retrieves the number of members per resistance organisation and displays the results as a bubble chart.
# U kunt op elke bel of organisatienaam klikken om meer details over de organisatie in de database te zien.
# You can click on each bubble or organisation name to access more details about the organisation in the database.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
#title: Aantal leden per verzetsorganisatie
#title: Count of members per resistance organisation
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
#defaultView:BubbleChart  # Weergeven als bellen
#defaultView:BubbleChart  # Display as bubbles
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
SELECT ?organisatie ?organisatieLabel (COUNT(?persoon) AS ?aantalLeden)
SELECT ?organisation ?organisationLabel (COUNT(?person) AS ?numberOfMembers)
WHERE {
WHERE {
   ?person wdt:P1 wd:Q2 .              # Selects all elements that are (P1) persons (Q2)
   ?persoon wdt:P1 wd:Q2 .              # Selecteert alle elementen die (P1) personen (Q2) zijn
   ?person wdt:P52 ?organisation .    # Filters by membership in an organisation ("member of", P52)
   ?persoon wdt:P52 ?organisatie .    # Filtert op lidmaatschap van een organisatie ("lid van", P52)
</div>


   <div lang="en" dir="ltr" class="mw-content-ltr">
   FILTER EXISTS {  
FILTER EXISTS {  
   ?organisatie wdt:P1/wdt:P9* wd:Q4  # Controleert of de organisatie (P1) / een subklasse (P9) is van een verzetsorganisatie (Q4)
   ?organisation wdt:P1/wdt:P9* wd:Q4  # Checks if the organisation is (P1) / is a subclass (P9) of a resistance organisation (Q4)
   }
   }
   # To filter and display only resistance networks/missions, replace Q4 with Q38.
   # Om alleen verzetsnetwerken/missies te filteren en weer te geven, vervang Q4 door Q38.
   # To filter and display only armed resistance movements, replace Q4 with Q37.
   # Om alleen gewapende verzetsbewegingen te filteren en weer te geven, vervang Q4 door Q37.
</div>


    
    
   <div lang="en" dir="ltr" class="mw-content-ltr">
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl". }  # Haalt de labels in het Nederlands op
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }  # Retrieves the labels in English
}
}
GROUP BY ?organisation ?organisationLabel
GROUP BY ?organisatie ?organisatieLabel
ORDER BY DESC(?numberOfMembers)
ORDER BY DESC(?aantalLeden)
}}
}}
</div>


<span id="Places_of_death_during_the_war"></span>
<span id="Places_of_death_during_the_war"></span>
Line 175: Line 155:
{{SPARQL|query=
{{SPARQL|query=


<div lang="en" dir="ltr" class="mw-content-ltr">
# Deze query is automatisch vertaald om pragmatische redenen en vanwege beperkte middelen. Houd er rekening mee dat sommige termen mogelijk niet volledig nauwkeurig zijn.
# This query has been automatically translated for pragmatic reasons and due to limited resources. Please be aware that some terms may not be fully accurate.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
# Deze query haalt de overlijdensplaatsen van verzetsstrijders tot het einde van 1945 op
# This query retrieves the places of death of resistance fighters up until the end of 1945  
# en toont ze op een kaart met hun namen en, indien beschikbaar, de overlijdensdata.
# and displays them on a map with their names and, if available, the dates of death.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
# Tip: U kunt op de punten op de kaart klikken om de namen van de overleden personen te bekijken.
# Tip: You can click on the points on the map to view the names of the deceased individuals.
# Opmerking: Buitenlandse locaties zijn "gemoderniseerd" om overeen te komen met de huidige gegevens in de Geonames-database.
# Note: Foreign locations have been "modernised" to match the current data in the Geonames database.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
#title: Plaatsen en data van overlijden tijdens de oorlog
#title: Places and dates of death during the war
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
#defaultView:Map{"hide":"?GPS"}  # Weergeven als kaart, GPS-coördinaten verbergen
#defaultView:Map{"hide":"?GPS"}  # Display as a map, hide the GPS coordinates
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
SELECT ?persoon ?persoonLabel ?overlijdensplaats ?overlijdensplaatsLabel ?GPS ?overlijdensDatum
SELECT ?person ?personLabel ?placeOfDeath ?placeOfDeathLabel ?GPS ?dateOfDeath
WHERE {
WHERE {
   ?person wdt:P1 wd:Q2 .                      # Selects all people (P1 = Q2)
   ?persoon wdt:P1 wd:Q2 .                      # Selecteert alle personen (P1 = Q2)
   ?person wdt:P48 ?placeOfDeath .             # Retrieves the places of death (P48)
   ?persoon wdt:P48 ?overlijdensplaats .       # Haalt de overlijdensplaatsen op (P48)
   ?placeOfDeath wdt:P6 ?GPS .                 # Retrieves the GPS coordinates of the places of death (P6)
   ?overlijdensplaats wdt:P6 ?GPS .             # Haalt de GPS-coördinaten van de overlijdensplaatsen op (P6)
   OPTIONAL { ?person wdt:P68 ?dateOfDeath .  # Retrieves the date of death, if available
   OPTIONAL { ?persoon wdt:P68 ?overlijdensDatum .  # Haalt de overlijdensdatum op, indien beschikbaar
             FILTER(?dateOfDeath <= "1945-12-31"^^xsd:dateTime)  # Filters deaths: up until the end of 1945
             FILTER(?overlijdensDatum <= "1945-12-31"^^xsd:dateTime)  # Filtert overlijdensgevallen: tot het einde van 1945
   }
   }
    
    
   SERVICE wikibase:label { bd:serviceParam wikibase:language "en,[AUTO_LANGUAGE]". }  # Retrieves the labels in English
   SERVICE wikibase:label { bd:serviceParam wikibase:language "nl,[AUTO_LANGUAGE]". }  # Haalt de labels in het Nederlands op
}
}
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
ORDER BY ?overlijdensplaatsLabel
ORDER BY ?placeOfDeathLabel
}}
}}
</div>




Line 220: Line 186:
==== Alle vrouwen opgeven die aangehouden werden met, voor zover bekend, hun beroep en erkenningsstatuut ====
==== Alle vrouwen opgeven die aangehouden werden met, voor zover bekend, hun beroep en erkenningsstatuut ====


<div lang="en" dir="ltr" class="mw-content-ltr">
{{SPARQL|query=
{{SPARQL|query=
# This query has been automatically translated for pragmatic reasons and due to limited resources. Please be aware that some terms may not be fully accurate.
# Deze query is automatisch vertaald om pragmatische redenen en vanwege beperkte middelen. Houd er rekening mee dat sommige termen mogelijk niet volledig nauwkeurig zijn.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
#title: Vrouwelijke verzetsstrijders die gevangen werden genomen
#title: Women resistance fighters who were detained
SELECT DISTINCT ?persoon ?achternaam ?voornaam ?beginVanDetentie ?eindeVanDetentie ?beroepLabel ?erkenningsstatusLabel
SELECT DISTINCT ?person ?surname ?firstName ?startOfDetention ?endOfDetention ?professionLabel ?recognitionStatusLabel
WHERE {
WHERE {
</div>


  <div lang="en" dir="ltr" class="mw-content-ltr">
    ?persoon wdt:P1 wd:Q2 .                  # Selecteert personen (P1 = Q2)
?person wdt:P1 wd:Q2 .                  # Selects persons (P1 = Q2)
   ?persoon wdt:P4 wd:Q6 .                  # Filtert om vrouwen te selecteren (P4 = vrouw Q6)
   ?person wdt:P4 wd:Q6 .                  # Filters to select women (P4 = female Q6)
    
    
   ?person p:P53 ?detention_statement .     # Searches for persons who were detained (P53)
   ?persoon p:P53 ?detentie_statement .     # Zoekt naar personen die gevangen werden genomen (P53)
   ?detention_statement ps:P53 ?detention .
   ?detentie_statement ps:P53 ?detentie .
            
            
   OPTIONAL { ?detention_statement pq:P23 ?startOfDetention. FILTER (datatype(?startOfDetention) = xsd:edtf ) } # Retrieves the start of detention date if available (P23)
   OPTIONAL { ?detentie_statement pq:P23 ?beginVanDetentie. FILTER (datatype(?beginVanDetentie) = xsd:edtf ) } # Haalt de begindatum van de detentie op, indien beschikbaar (P23)
   OPTIONAL { ?detention_statement pq:P25 ?endOfDetention. FILTER (datatype(?endOfDetention) = xsd:edtf ) }     # Retrieves the end of detention date if available (P25)
   OPTIONAL { ?detentie_statement pq:P25 ?eindeVanDetentie. FILTER (datatype(?eindeVanDetentie) = xsd:edtf ) } # Haalt de einddatum van de detentie op, indien beschikbaar (P25)
</div>


  <div lang="en" dir="ltr" class="mw-content-ltr">
  OPTIONAL { ?persoon wdt:P13 ?beroep. }               # Haalt het beroep op, indien beschikbaar (P13)
OPTIONAL { ?person wdt:P13 ?profession. }           # Retrieves the profession if available (P13)
   OPTIONAL { ?persoon wdt:P55 ?erkenningsstatus. }     # Haalt de erkenningsstatus op, indien verkregen (P55)
   OPTIONAL { ?person wdt:P55 ?recognitionStatus. }   # Retrieves the national recognition status if obtained (P55)
</div>


  <div lang="en" dir="ltr" class="mw-content-ltr">
  ?persoon wdt:P3 ?achternaam .           # Haalt de achternaam op (P3)
?person wdt:P3 ?surname .             # Retrieves the surname (P3)
   ?persoon wdt:P2 ?voornaam .             # Haalt de voornaam op (P2)
   ?person wdt:P2 ?firstName .           # Retrieves the first name (P2)
    
    
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }  # Retrieves the labels in English
   SERVICE wikibase:label { bd:serviceParam wikibase:language "nl,[AUTO_LANGUAGE]". }  # Haalt de labels in het Nederlands op
</div>


}
}


<div lang="en" dir="ltr" class="mw-content-ltr">
ORDER BY LCASE(?achternaam) LCASE(?voornaam)  # Sorteert zonder hoofdlettergevoeligheid
ORDER BY LCASE(?surname) LCASE(?firstName)  # Sorts case-insensitively
}}
}}
</div>




Line 265: Line 219:
==== Alle verzetsmensen opgeven die als ARA/FFC erkend werden of een bedankingsbrief kregen, met hun woonplaats en de referentie van hun persoonsdossiers ====
==== Alle verzetsmensen opgeven die als ARA/FFC erkend werden of een bedankingsbrief kregen, met hun woonplaats en de referentie van hun persoonsdossiers ====


<div lang="en" dir="ltr" class="mw-content-ltr">
{{SPARQL|query=
{{SPARQL|query=
# This query has been automatically translated for pragmatic reasons and due to limited resources. Please be aware that some terms may not be fully accurate.
# Deze query is automatisch vertaald om pragmatische redenen en vanwege beperkte middelen. Houd er rekening mee dat sommige termen mogelijk niet volledig nauwkeurig zijn.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
# Deze query haalt de lijst op van verzetsstrijders die erkend zijn als inlichtingen- en actieagenten (ARA)
# This query retrieves the list of resistance fighters recognised as intelligence and action agents (ARA)
# of een bedankbrief (LR) of FFC-status (Forces Françaises Combattantes) hebben ontvangen, samen met hun woonplaats en gekoppeld archiefbestand.
# or who received a letter of thanks (LR) or FFC (Forces Françaises Combattantes) status, along with their residence and linked archive file.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
#title: ARA verzetsstrijders (erkend of bedankbrief) of FFC
#title: ARA resistance fighters (recognised or letter of thanks) or FFC
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
SELECT DISTINCT ?persoon ?achternaam ?voornaam ?woonplaats ?woonplaatsLabel ?erkendeStatusLabel ?LR ?archiefCollectieLabel ?inventarisNr WHERE {
SELECT DISTINCT ?person ?surname ?firstName ?residence ?residenceLabel ?recognisedStatusLabel ?LR ?archiveCollectionLabel ?inventoryNo WHERE {
</div>


   <div lang="en" dir="ltr" class="mw-content-ltr">
   ?persoon wdt:P1 wd:Q2 .                    # Selecteert personen (P1 = Q2)
?person wdt:P1 wd:Q2 .                    # Selects persons (P1 = Q2)
   ?persoon wdt:P3 ?achternaam .             # Haalt de achternaam op (P3)
   ?person wdt:P3 ?surname .               # Retrieves the surname (P3)
   ?persoon wdt:P2 ?voornaam .               # Haalt de voornaam op (P2)
   ?person wdt:P2 ?firstName .             # Retrieves the first name (P2)
</div>


   <div lang="en" dir="ltr" class="mw-content-ltr">
   { ?persoon wdt:P55 ?erkendeStatus.  
{ ?person wdt:P55 ?recognisedStatus.  
     FILTER(?erkendeStatus IN (wd:Q17, wd:Q4487)) }  # Filtert op erkende ARA-statussen (Q17) of FFC (Q4487)
     FILTER(?recognisedStatus IN (wd:Q17, wd:Q4487)) }  # Filters for recognised ARA statuses (Q17) or FFC (Q4487)
   UNION                                            # OF
   UNION                                            # OR
   { ?persoon p:P54 ?statement.
   { ?person p:P54 ?statement.
     ?statement ps:P54 wd:Q17; pq:P56 wd:Q6665.    # Personen die een bedankbrief (Q6665) hebben ontvangen
     ?statement ps:P54 wd:Q17; pq:P56 wd:Q6665.    # Persons who received a letter of thanks (Q6665)
     BIND("bedankbrief ARA" AS ?LR)}
     BIND("letter of thanks ARA" AS ?LR)}
</div>


   <div lang="en" dir="ltr" class="mw-content-ltr">
   OPTIONAL { ?persoon wdt:P7 ?woonplaats. }        # Haalt de woonplaats op, indien beschikbaar (P7)
OPTIONAL { ?person wdt:P7 ?residence. }        # Retrieves the residence if available (P7)
   OPTIONAL { ?persoon p:P34 ?archief_statement .  
   OPTIONAL { ?person p:P34 ?archive_statement .  
             ?archief_statement ps:P34 ?archiefCollectie ;
             ?archive_statement ps:P34 ?archiveCollection ;
                                 pq:P35 ?inventarisNr.}  # Verwijzing naar de archieven
                                 pq:P35 ?inventoryNo.}  # Reference to the archives
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl". }  # Haalt de labels in het Nederlands op
   SERVICE wikibase:label { bd:serviceParam wikibase:language "en,[AUTO_LANGUAGE]". }  # Retrieves the labels in English
}
}
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
ORDER BY LCASE(?achternaam) LCASE(?voornaam)  # Sorteert de resultaten op achternaam, daarna voornaam (hoofdletterongevoelig)
ORDER BY LCASE(?surname) LCASE(?firstName)  # Sorts results by surname, then first name (case-insensitive)
LIMIT 100  # Beperkt de resultaten tot 100 om de prestaties te optimaliseren. U kunt deze limiet naar behoefte aanpassen of verwijderen.
LIMIT 100  # Limits the results to 100 to optimise performance. You can adjust or remove this limit as needed.
}}
}}
</div>




Line 317: Line 255:
==== De gegevens over de verzetsmensen via externe bronnen verrijken [gegroepeerde opzoeking] ====
==== De gegevens over de verzetsmensen via externe bronnen verrijken [gegroepeerde opzoeking] ====


<div lang="en" dir="ltr" class="mw-content-ltr">
{{SPARQL|query=
{{SPARQL|query=
## This query has been automatically translated for pragmatic reasons and due to limited resources. Please be aware that some terms may not be fully accurate.
# Deze query is automatisch vertaald om pragmatische redenen en vanwege beperkte middelen. Houd er rekening mee dat sommige termen mogelijk niet volledig nauwkeurig zijn.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
# Deze query haalt aanvullende informatie op over verzetsstrijders in de database, dankzij Wikidata, inclusief Wikipedia-artikelen en externe archieven (ODIS, Biographie Nationale, VIAF, SNAC, enz.).
# This query retrieves additional information about the resistance fighters in the database, thanks to Wikidata, including Wikipedia articles and external archives (ODIS, Biographie Nationale, VIAF, SNAC, etc.).
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
#title: Verrijking van de gegevens van verzetsstrijders via Wikidata
#title: Enrichment of resistance fighter data via Wikidata
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
PREFIX wd_wikidata: <http://www.wikidata.org/entity/>  # Prefix voor Wikidata
PREFIX wd_wikidata: <http://www.wikidata.org/entity/>  # Prefix for Wikidata
PREFIX wdt_wikidata: <http://www.wikidata.org/prop/direct/>  # Prefix voor directe eigenschappen van Wikidata
PREFIX wdt_wikidata: <http://www.wikidata.org/prop/direct/>  # Prefix for Wikidata direct properties
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
SELECT DISTINCT ?persoon ?achternaam ?voornaam ?wikidata_ID ?article_nl ?odisURL ?bioNationaleURL ?JusteURL ?maitronURL ?viafURL ?snacURL  
SELECT DISTINCT ?person ?surname ?firstName ?wikidata_ID ?article_en ?odisURL ?bioNationaleURL ?JusteURL ?maitronURL ?viafURL ?snacURL  
(GROUP_CONCAT(DISTINCT ?archivesLabel; SEPARATOR = ", ") AS ?archives)  # Samenvoeging van de gevonden archieven
(GROUP_CONCAT(DISTINCT ?archivesLabel; SEPARATOR = ", ") AS ?archives)  # Concatenation of found archives
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
WHERE {
WHERE {
   ?person wdt:P1 wd:Q2 .                  # Selects all persons (P1 = Q2)
   ?persoon wdt:P1 wd:Q2 .                  # Selecteert alle personen (P1 = Q2)
   ?person wdt:P3 ?surname .             # Retrieves the surname (P3)
   ?persoon wdt:P3 ?achternaam .           # Haalt de achternaam op (P3)
   ?person wdt:P2 ?firstName .           # Retrieves the first name (P2)
   ?persoon wdt:P2 ?voornaam .             # Haalt de voornaam op (P2)
</div>


  <div lang="en" dir="ltr" class="mw-content-ltr">
    ?persoon wdt:P15 ?wikidataIdentifier .  # Haalt de Wikidata-ID op (P15)
?person wdt:P15 ?wikidataIdentifier .  # Retrieves the Wikidata identifier (P15)
</div>


  <div lang="en" dir="ltr" class="mw-content-ltr">
  # Genereert een link naar het overeenkomstige Wikidata-item
# Generates a link to the corresponding Wikidata entity
   BIND(URI(CONCAT("http://www.wikidata.org/entity/", ?wikidataIdentifier)) AS ?wikidata_ID)
   BIND(URI(CONCAT("http://www.wikidata.org/entity/", ?wikidataIdentifier)) AS ?wikidata_ID)
</div>


   <div lang="en" dir="ltr" class="mw-content-ltr">
   # Gefedereerde query om aanvullende informatie van Wikidata op te halen
# Federated query to retrieve additional information from Wikidata
   SERVICE <https://query.wikidata.org/sparql> {
   SERVICE <https://query.wikidata.org/sparql> {
      
      
     # Retrieves and generates the URLs of external identifiers
     # Haalt de URL's van externe identificaties op en genereert deze
     OPTIONAL {  
     OPTIONAL {  
       ?wikidata_ID wdt_wikidata:P2372 ?odisID.  # Retrieves the ODIS ID
       ?wikidata_ID wdt_wikidata:P2372 ?odisID.  # Haalt de ODIS-ID op
       BIND(URI(CONCAT("https://www.odis.be/lnk/", STR(?odisID))) AS ?odisURL)  # Generates the ODIS URL
       BIND(URI(CONCAT("https://www.odis.be/lnk/", STR(?odisID))) AS ?odisURL)  # Genereert de ODIS-URL
     }
     }
     OPTIONAL {  
     OPTIONAL {  
       ?wikidata_ID wdt_wikidata:P6234 ?bioNationaleID.  # Biographie Nationale of Belgium ID
       ?wikidata_ID wdt_wikidata:P6234 ?bioNationaleID.  # Biographie Nationale van België ID
       BIND(URI(CONCAT("https://academieroyale.be/fr/la-biographie-nationale-personnalites-detail/personnalites/", STR(?bioNationaleID), "/Vrai/")) AS ?bioNationaleURL)  # Generates the Biographie Nationale URL
       BIND(URI(CONCAT("https://academieroyale.be/fr/la-biographie-nationale-personnalites-detail/personnalites/", STR(?bioNationaleID), "/Vrai/")) AS ?bioNationaleURL)  # Genereert de Biographie Nationale-URL
     }
     }
     OPTIONAL {  
     OPTIONAL {  
       ?wikidata_ID wdt_wikidata:P214 ?viafID.  # VIAF ID
       ?wikidata_ID wdt_wikidata:P214 ?viafID.  # VIAF-ID
       BIND(URI(CONCAT("https://viaf.org/viaf/", STR(?viafID))) AS ?viafURL)  # Generates the VIAF URL
       BIND(URI(CONCAT("https://viaf.org/viaf/", STR(?viafID))) AS ?viafURL)  # Genereert de VIAF-URL
     }
     }
     OPTIONAL {  
     OPTIONAL {  
       ?wikidata_ID wdt_wikidata:P3430 ?snacID.  # SNAC ID
       ?wikidata_ID wdt_wikidata:P3430 ?snacID.  # SNAC-ID
       BIND(URI(CONCAT("https://snaccooperative.org/ark:/99166/", STR(?snacID))) AS ?snacURL)  # Generates the SNAC URL
       BIND(URI(CONCAT("https://snaccooperative.org/ark:/99166/", STR(?snacID))) AS ?snacURL)  # Genereert de SNAC-URL
     }
     }
     OPTIONAL {  
     OPTIONAL {  
       ?wikidata_ID wdt_wikidata:P4724 ?maitronID.  # Maitron ID
       ?wikidata_ID wdt_wikidata:P4724 ?maitronID.  # Maitron-ID
       BIND(URI(CONCAT("https://maitron.fr/spip.php?article", STR(?maitronID))) AS ?maitronURL)  # Generates the Maitron URL
       BIND(URI(CONCAT("https://maitron.fr/spip.php?article", STR(?maitronID))) AS ?maitronURL)  # Genereert de Maitron-URL
     }
     }
     OPTIONAL {  
     OPTIONAL {  
       ?wikidata_ID wdt_wikidata:P1979 ?JusteID.  # Righteous Among the Nations ID
       ?wikidata_ID wdt_wikidata:P1979 ?JusteID.  # Rechtvaardige onder de Naties ID
       BIND(URI(CONCAT("https://collections.yadvashem.org/en/righteous/", STR(?JusteID))) AS ?JusteURL)  # Generates the Righteous Among the Nations URL
       BIND(URI(CONCAT("https://collections.yadvashem.org/en/righteous/", STR(?JusteID))) AS ?JusteURL)  # Genereert de Rechtvaardige onder de Naties-URL
     }
     }
      
      
     # Retrieves the English Wikipedia article
     # Haalt het Nederlandstalige Wikipedia-artikel op
     OPTIONAL {
     OPTIONAL {
       ?article_en schema:about ?wikidata_ID ;
       ?article_nl schema:about ?wikidata_ID ;
                   schema:inLanguage "en" ;
                   schema:inLanguage "nl" ;
                   schema:isPartOf <https://en.wikipedia.org/> .  # English Wikipedia article
                   schema:isPartOf <https://nl.wikipedia.org/> .  # Nederlandstalig Wikipedia-artikel
     }
     }
      
      
     # Retrieves archives linked to the person
     # Haalt de archieven op die aan de persoon zijn gekoppeld
     OPTIONAL {
     OPTIONAL {
       ?wikidata_ID wdt_wikidata:P485 ?archives.  # Retrieves archives (P485)
       ?wikidata_ID wdt_wikidata:P485 ?archives.  # Haalt archieven op (P485)
       ?archives rdfs:label ?archivesLabel.  # Retrieves archive labels
       ?archives rdfs:label ?archivesLabel.  # Haalt archieflabels op
       FILTER(LANG(?archivesLabel) = "en")  # Filters for labels in English
       FILTER(LANG(?archivesLabel) = "nl")  # Filtert op labels in het Nederlands
     }
     }
   }
   }
</div>


  <div lang="en" dir="ltr" class="mw-content-ltr">
  # Haalt de labels van personen op in de gedefinieerde taal
# Retrieves labels of persons in the defined language
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl". }
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
}
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
GROUP BY ?persoon ?achternaam ?voornaam ?wikidata_ID ?article_nl ?odisURL ?JusteURL ?bioNationaleURL ?maitronURL ?viafURL ?snacURL
GROUP BY ?person ?surname ?firstName ?wikidata_ID ?article_en ?odisURL ?JusteURL ?bioNationaleURL ?maitronURL ?viafURL ?snacURL
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
ORDER BY LCASE(?achternaam) LCASE(?voornaam)  # Sorteert de resultaten op achternaam, daarna voornaam (hoofdletterongevoelig)
ORDER BY LCASE(?surname) LCASE(?firstName)  # Sorts results by surname, then first name (case-insensitive)
}}
}}
</div>

Latest revision as of 14:43, 20 October 2024


SPARQL zoekopdracht voorbeelden

Deze pagina geeft voorbeelden van SPARQL-query's die het mogelijk maken om de gegevens van Resistance in Belgium diepgaand te doorzoeken (zie ook deze voorbeeldpagina). Elke query kan worden uitgevoerd door te klikken op de link "Probeer het!", die een speciale query-interface opent.

Opmerking: Om praktische redenen zijn de query's automatisch vertaald in het Engels, Nederlands en Duits. Hoewel er kleine onnauwkeurigheden kunnen zijn, hebben we prioriteit gegeven aan het beschikbaar stellen van deze voorbeelden in meerdere talen om brede toegang tot de gegevens voor alle gebruikers te waarborgen.


Verzetsmensen opzoeken op familienaam

# Deze query is automatisch vertaald om pragmatische redenen en vanwege beperkte middelen. Houd er rekening mee dat sommige termen mogelijk niet volledig nauwkeurig zijn.

# Deze query haalt de lijst op van personen in de database met een bepaalde achternaam.

#title: Verzetsstrijders met een bepaalde achternaam (hier: Barbieux)

SELECT ?persoon ?persoonLabel ?geboorteDatum
WHERE {
  ?persoon  wdt:P1  wd:Q2 .                    # Selecteert alle elementen die (P1) personen (Q2) zijn
  ?persoon  wdt:P3  "Barbieux" .               # Filtert om alleen personen te nemen waarvan de achternaam (P3) "Barbieux" is (pas "Barbieux" aan indien nodig)
  ?persoon  wdt:P67 ?geboorteDatum  .          # Voegt de geboortedatum toe (P67)
           
 SERVICE wikibase:label { bd:serviceParam wikibase:language "nl [AUTO_LANGUAGE]". } # Haalt het label in het Nederlands op
}

ORDER BY ?persoonLabel  # Sorteert de resultaten alfabetisch op label

Probeer het!


Zoeken op de leden van een bepaalde verzetsbeweging

# Deze query is automatisch vertaald om pragmatische redenen en vanwege beperkte middelen. Houd er rekening mee dat sommige termen mogelijk niet volledig nauwkeurig zijn.

# Deze query haalt de lijst op van personen in de database 
# waarvan bekend is dat ze lid waren van een bepaalde verzetsorganisatie (hier: Tempo)

#title: Verzetsstrijders die lid zijn van een verzetsorganisatie (hier: Tempo)

SELECT  ?persoon ?achternaam ?voornaam ?geboorteDatum
WHERE {
  ?persoon  wdt:P1  wd:Q2 .                   # Selecteert alle elementen die (P1) personen (Q2) zijn
  ?persoon wdt:P52 wd:Q4367 .                 # Filtert op lidmaatschap van een organisatie ("lid van", P52), hier "Tempo" (Q4367) (vervang Q4367 door de organisatie van uw keuze met behulp van autocomplete (Ctrl + spatie))
  ?persoon  wdt:P67 ?geboorteDatum  .         # Voegt de geboortedatum toe (P67)
  ?persoon  wdt:P3 ?achternaam .              # Haalt de achternaam op (P3)
  ?persoon  wdt:P2 ?voornaam .                # Haalt de voornaam op (P2)
          
 SERVICE wikibase:label { bd:serviceParam wikibase:language "nl,[AUTO_LANGUAGE]". }  # Haalt het label in het Nederlands op
}

ORDER BY LCASE(?achternaam) LCASE(?voornaam)  # Sorteert de resultaten op achternaam, daarna voornaam (hoofdletterongevoelig)

Probeer het!

Verzetsmensen zoeken op woonplaats

# Deze query is automatisch vertaald om pragmatische redenen en vanwege beperkte middelen. Houd er rekening mee dat sommige termen mogelijk niet volledig nauwkeurig zijn.

# Deze query haalt de lijst op van personen in de database 
# die tijdens/na de Tweede Wereldoorlog in een bepaalde gemeente woonden

#title: Verzetsstrijders gefilterd op woonplaats (hier: Anderlecht)

SELECT ?persoon ?achternaam ?voornaam ?geboorteDatum
WHERE {
  ?persoon  wdt:P1  wd:Q2 .                   # Selecteert alle elementen die (P1) personen (Q2) zijn
  ?persoon  wdt:P7  wd:Q102 .                 # Filtert op woonplaats (P7), hier Anderlecht (Q102) (vervang Q102 door de (deel-)gemeente van uw keuze met behulp van autocomplete (Ctrl + spatie))
  ?persoon  wdt:P67 ?geboorteDatum  .         # Voegt de geboortedatum toe (P67)
  ?persoon  wdt:P3 ?achternaam .              # Haalt de achternaam op (P3)
  ?persoon  wdt:P2 ?voornaam .                # Haalt de voornaam op (P2)
         
 SERVICE wikibase:label { bd:serviceParam wikibase:language "nl,[AUTO_LANGUAGE]". }  # Haalt het label in het Nederlands op
}

ORDER BY LCASE(?achternaam) LCASE(?voornaam)  # Sorteert de resultaten op achternaam, daarna voornaam (hoofdletterongevoelig)

Probeer het!

Verzetsmensen opzoeken per beroep

# Deze query is automatisch vertaald om pragmatische redenen en vanwege beperkte middelen. Houd er rekening mee dat sommige termen mogelijk niet volledig nauwkeurig zijn.

# Deze query haalt de lijst op van personen in de database met een bepaald beroep (hier: kapper / kapster).

#title: Verzetsstrijders met een bepaald beroep (hier: kapper / kapster)

SELECT ?persoon ?achternaam ?voornaam ?woonplaatsLabel ?beroepLabel
WHERE {
  ?persoon  wdt:P1  wd:Q2 .               # Selecteert alle personen (P1) met de identificatie "Persoon" (Q2)
  ?persoon  wdt:P13 ?beroep .             # Selecteert hun beroep (P13)
  ?persoon  wdt:P3 ?achternaam .          # Haalt de achternaam op (P3)
  ?persoon  wdt:P2 ?voornaam .            # Haalt de voornaam op (P2)
  
  FILTER (CONTAINS(str(?beroep), 'coiffeu')

Probeer het!


Aantal leden per verzetsbeweging

# Deze query is automatisch vertaald om pragmatische redenen en vanwege beperkte middelen. Houd er rekening mee dat sommige termen mogelijk niet volledig nauwkeurig zijn.

# Deze query haalt het aantal leden per verzetsorganisatie op en toont de resultaten als een bellenkaart.
# U kunt op elke bel of organisatienaam klikken om meer details over de organisatie in de database te zien.

#title: Aantal leden per verzetsorganisatie

#defaultView:BubbleChart  # Weergeven als bellen

SELECT ?organisatie ?organisatieLabel (COUNT(?persoon) AS ?aantalLeden)
WHERE {
  ?persoon wdt:P1 wd:Q2 .              # Selecteert alle elementen die (P1) personen (Q2) zijn
  ?persoon wdt:P52 ?organisatie .     # Filtert op lidmaatschap van een organisatie ("lid van", P52)

  FILTER EXISTS { 
   ?organisatie wdt:P1/wdt:P9* wd:Q4  # Controleert of de organisatie (P1) / een subklasse (P9) is van een verzetsorganisatie (Q4)
   }
   # Om alleen verzetsnetwerken/missies te filteren en weer te geven, vervang Q4 door Q38.
   # Om alleen gewapende verzetsbewegingen te filteren en weer te geven, vervang Q4 door Q37.

  
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl". }  # Haalt de labels in het Nederlands op
}
GROUP BY ?organisatie ?organisatieLabel
ORDER BY DESC(?aantalLeden)

Probeer het!

De plaats van overlijden tijdens de oorlog visualiseren

# Deze query is automatisch vertaald om pragmatische redenen en vanwege beperkte middelen. Houd er rekening mee dat sommige termen mogelijk niet volledig nauwkeurig zijn.

# Deze query haalt de overlijdensplaatsen van verzetsstrijders tot het einde van 1945 op 
# en toont ze op een kaart met hun namen en, indien beschikbaar, de overlijdensdata.

# Tip: U kunt op de punten op de kaart klikken om de namen van de overleden personen te bekijken.
# Opmerking: Buitenlandse locaties zijn "gemoderniseerd" om overeen te komen met de huidige gegevens in de Geonames-database.

#title: Plaatsen en data van overlijden tijdens de oorlog

#defaultView:Map{"hide":"?GPS"}  # Weergeven als kaart, GPS-coördinaten verbergen

SELECT ?persoon ?persoonLabel ?overlijdensplaats ?overlijdensplaatsLabel ?GPS ?overlijdensDatum
WHERE {
  ?persoon wdt:P1 wd:Q2 .                      # Selecteert alle personen (P1 = Q2)
  ?persoon wdt:P48 ?overlijdensplaats .        # Haalt de overlijdensplaatsen op (P48)
  ?overlijdensplaats wdt:P6 ?GPS .             # Haalt de GPS-coördinaten van de overlijdensplaatsen op (P6)
  OPTIONAL { ?persoon wdt:P68 ?overlijdensDatum .   # Haalt de overlijdensdatum op, indien beschikbaar
             FILTER(?overlijdensDatum <= "1945-12-31"^^xsd:dateTime)  # Filtert overlijdensgevallen: tot het einde van 1945
  }
  
  SERVICE wikibase:label { bd:serviceParam wikibase:language "nl,[AUTO_LANGUAGE]". }  # Haalt de labels in het Nederlands op
}

ORDER BY ?overlijdensplaatsLabel

Probeer het!


Alle vrouwen opgeven die aangehouden werden met, voor zover bekend, hun beroep en erkenningsstatuut

# Deze query is automatisch vertaald om pragmatische redenen en vanwege beperkte middelen. Houd er rekening mee dat sommige termen mogelijk niet volledig nauwkeurig zijn.

#title: Vrouwelijke verzetsstrijders die gevangen werden genomen
SELECT DISTINCT ?persoon ?achternaam ?voornaam ?beginVanDetentie ?eindeVanDetentie ?beroepLabel ?erkenningsstatusLabel
WHERE {

    ?persoon wdt:P1 wd:Q2 .                   # Selecteert personen (P1 = Q2)
  ?persoon wdt:P4 wd:Q6 .                   # Filtert om vrouwen te selecteren (P4 = vrouw Q6)
  
  ?persoon p:P53 ?detentie_statement .      # Zoekt naar personen die gevangen werden genomen (P53)
  ?detentie_statement ps:P53 ?detentie .
           
  OPTIONAL { ?detentie_statement pq:P23 ?beginVanDetentie. FILTER (datatype(?beginVanDetentie) = xsd:edtf ) } # Haalt de begindatum van de detentie op, indien beschikbaar (P23)
  OPTIONAL { ?detentie_statement pq:P25 ?eindeVanDetentie. FILTER (datatype(?eindeVanDetentie) = xsd:edtf ) } # Haalt de einddatum van de detentie op, indien beschikbaar (P25)

   OPTIONAL { ?persoon wdt:P13 ?beroep. }               # Haalt het beroep op, indien beschikbaar (P13)
  OPTIONAL { ?persoon wdt:P55 ?erkenningsstatus. }     # Haalt de erkenningsstatus op, indien verkregen (P55)

   ?persoon  wdt:P3 ?achternaam .           # Haalt de achternaam op (P3)
  ?persoon  wdt:P2 ?voornaam .             # Haalt de voornaam op (P2)
  
  SERVICE wikibase:label { bd:serviceParam wikibase:language "nl,[AUTO_LANGUAGE]". }  # Haalt de labels in het Nederlands op

}

ORDER BY LCASE(?achternaam) LCASE(?voornaam)  # Sorteert zonder hoofdlettergevoeligheid

Probeer het!


Alle verzetsmensen opgeven die als ARA/FFC erkend werden of een bedankingsbrief kregen, met hun woonplaats en de referentie van hun persoonsdossiers

# Deze query is automatisch vertaald om pragmatische redenen en vanwege beperkte middelen. Houd er rekening mee dat sommige termen mogelijk niet volledig nauwkeurig zijn.

# Deze query haalt de lijst op van verzetsstrijders die erkend zijn als inlichtingen- en actieagenten (ARA)
# of een bedankbrief (LR) of FFC-status (Forces Françaises Combattantes) hebben ontvangen, samen met hun woonplaats en gekoppeld archiefbestand.

#title: ARA verzetsstrijders (erkend of bedankbrief) of FFC

SELECT DISTINCT ?persoon ?achternaam ?voornaam ?woonplaats ?woonplaatsLabel ?erkendeStatusLabel ?LR ?archiefCollectieLabel ?inventarisNr WHERE {

  ?persoon wdt:P1 wd:Q2 .                    # Selecteert personen (P1 = Q2)
  ?persoon  wdt:P3 ?achternaam .             # Haalt de achternaam op (P3)
  ?persoon  wdt:P2 ?voornaam .               # Haalt de voornaam op (P2)

  { ?persoon wdt:P55 ?erkendeStatus. 
    FILTER(?erkendeStatus IN (wd:Q17, wd:Q4487)) }  # Filtert op erkende ARA-statussen (Q17) of FFC (Q4487)
  UNION                                            # OF
  { ?persoon p:P54 ?statement.
    ?statement ps:P54 wd:Q17; pq:P56 wd:Q6665.     # Personen die een bedankbrief (Q6665) hebben ontvangen
    BIND("bedankbrief ARA" AS ?LR)}

  OPTIONAL { ?persoon wdt:P7 ?woonplaats. }         # Haalt de woonplaats op, indien beschikbaar (P7)
  OPTIONAL { ?persoon p:P34 ?archief_statement . 
             ?archief_statement ps:P34 ?archiefCollectie ;
                                pq:P35 ?inventarisNr.}  # Verwijzing naar de archieven
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl". }  # Haalt de labels in het Nederlands op
}

ORDER BY LCASE(?achternaam) LCASE(?voornaam)  # Sorteert de resultaten op achternaam, daarna voornaam (hoofdletterongevoelig)
LIMIT 100  # Beperkt de resultaten tot 100 om de prestaties te optimaliseren. U kunt deze limiet naar behoefte aanpassen of verwijderen.

Probeer het!


De gegevens over de verzetsmensen via externe bronnen verrijken [gegroepeerde opzoeking]

# Deze query is automatisch vertaald om pragmatische redenen en vanwege beperkte middelen. Houd er rekening mee dat sommige termen mogelijk niet volledig nauwkeurig zijn.

# Deze query haalt aanvullende informatie op over verzetsstrijders in de database, dankzij Wikidata, inclusief Wikipedia-artikelen en externe archieven (ODIS, Biographie Nationale, VIAF, SNAC, enz.).

#title: Verrijking van de gegevens van verzetsstrijders via Wikidata

PREFIX wd_wikidata: <http://www.wikidata.org/entity/>  # Prefix voor Wikidata
PREFIX wdt_wikidata: <http://www.wikidata.org/prop/direct/>  # Prefix voor directe eigenschappen van Wikidata

SELECT DISTINCT ?persoon ?achternaam ?voornaam ?wikidata_ID ?article_nl ?odisURL ?bioNationaleURL ?JusteURL ?maitronURL ?viafURL ?snacURL 
(GROUP_CONCAT(DISTINCT ?archivesLabel; SEPARATOR = ", ") AS ?archives)  # Samenvoeging van de gevonden archieven

WHERE {
  ?persoon wdt:P1 wd:Q2 .                  # Selecteert alle personen (P1 = Q2)
  ?persoon  wdt:P3 ?achternaam .           # Haalt de achternaam op (P3)
  ?persoon  wdt:P2 ?voornaam .             # Haalt de voornaam op (P2)

    ?persoon wdt:P15 ?wikidataIdentifier .   # Haalt de Wikidata-ID op (P15)

   # Genereert een link naar het overeenkomstige Wikidata-item
  BIND(URI(CONCAT("http://www.wikidata.org/entity/", ?wikidataIdentifier)) AS ?wikidata_ID)

  # Gefedereerde query om aanvullende informatie van Wikidata op te halen
  SERVICE <https://query.wikidata.org/sparql> {
    
    # Haalt de URL's van externe identificaties op en genereert deze
    OPTIONAL { 
      ?wikidata_ID wdt_wikidata:P2372 ?odisID.  # Haalt de ODIS-ID op
      BIND(URI(CONCAT("https://www.odis.be/lnk/", STR(?odisID))) AS ?odisURL)  # Genereert de ODIS-URL
    }
    OPTIONAL { 
      ?wikidata_ID wdt_wikidata:P6234 ?bioNationaleID.  # Biographie Nationale van België ID
      BIND(URI(CONCAT("https://academieroyale.be/fr/la-biographie-nationale-personnalites-detail/personnalites/", STR(?bioNationaleID), "/Vrai/")) AS ?bioNationaleURL)  # Genereert de Biographie Nationale-URL
    }
    OPTIONAL { 
      ?wikidata_ID wdt_wikidata:P214 ?viafID.  # VIAF-ID
      BIND(URI(CONCAT("https://viaf.org/viaf/", STR(?viafID))) AS ?viafURL)  # Genereert de VIAF-URL
    }
    OPTIONAL { 
      ?wikidata_ID wdt_wikidata:P3430 ?snacID.  # SNAC-ID
      BIND(URI(CONCAT("https://snaccooperative.org/ark:/99166/", STR(?snacID))) AS ?snacURL)  # Genereert de SNAC-URL
    }
    OPTIONAL { 
      ?wikidata_ID wdt_wikidata:P4724 ?maitronID.  # Maitron-ID
      BIND(URI(CONCAT("https://maitron.fr/spip.php?article", STR(?maitronID))) AS ?maitronURL)  # Genereert de Maitron-URL
    }
    OPTIONAL { 
      ?wikidata_ID wdt_wikidata:P1979 ?JusteID.  # Rechtvaardige onder de Naties ID
      BIND(URI(CONCAT("https://collections.yadvashem.org/en/righteous/", STR(?JusteID))) AS ?JusteURL)  # Genereert de Rechtvaardige onder de Naties-URL
    }
    
    # Haalt het Nederlandstalige Wikipedia-artikel op
    OPTIONAL {
      ?article_nl schema:about ?wikidata_ID ;
                  schema:inLanguage "nl" ;
                  schema:isPartOf <https://nl.wikipedia.org/> .  # Nederlandstalig Wikipedia-artikel
    }
    
    # Haalt de archieven op die aan de persoon zijn gekoppeld
    OPTIONAL {
      ?wikidata_ID wdt_wikidata:P485 ?archives.  # Haalt archieven op (P485)
      ?archives rdfs:label ?archivesLabel.  # Haalt archieflabels op
      FILTER(LANG(?archivesLabel) = "nl")  # Filtert op labels in het Nederlands
    }
  }

   # Haalt de labels van personen op in de gedefinieerde taal
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl". }
}

GROUP BY ?persoon ?achternaam ?voornaam ?wikidata_ID ?article_nl ?odisURL ?JusteURL ?bioNationaleURL ?maitronURL ?viafURL ?snacURL

ORDER BY LCASE(?achternaam) LCASE(?voornaam)  # Sorteert de resultaten op achternaam, daarna voornaam (hoofdletterongevoelig)

Probeer het!