Project:SPARQL/exemples

From Resistance in Belgium
This page is a translated version of the page Project:SPARQL/examples and the translation is 100% complete.


Exemples de requêtes SPARQL

Cette page liste des exemples de requêtes SPARQL permettant d'interroger en profondeur les données de Resistance in Belgium (voir aussi cette page d'exemples). Chaque requête peut être lancée en cliquant sur le lien "Essayez !" qui ouvre une interface de requête dédiée.


Recherche par nom de famille

#

# Cette requête récupère la liste des personnes présentes dans la base de données et portant un certain nom de famille.

#title: Résistant⸱e⸱s ayant un certain nom de famille (ici : Barbieux)

SELECT ?personne ?personneLabel ?dateNaissance
WHERE {
  ?personne  wdt:P1  wd:Q2 .                  # Sélectionne tous les éléments qui sont (P1) des personnes (Q2)
  ?personne  wdt:P3  "Barbieux" .             # Filtre pour ne prendre que des personnes dont le nom de famille (P3) est "Barbieux" (modifiez "Barbieux" selon le besoin)
  ?personne  wdt:P67 ?dateNaissance  .        # Ajoute la date de naissance (P67)
           
 SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,[AUTO_LANGUAGE]". }  # Récupère le libellé en français
}

ORDER BY ?personneLabel  # Trie les résultats par ordre alphabétique des labels

Essayez !


Rechercher les membres d'une organisation de résistance

#

# Cette requête récupère la liste des personnes présentes dans la base de données 
# et dont on sait qu'elles appartenaient à une certaine organisation de résistance (ici : Tempo)

#title: Résistant⸱e⸱s membres d'une organisation de résistance (ici : Tempo)

SELECT  ?personne ?nom ?prenom ?dateNaissance
WHERE {
  ?personne  wdt:P1  wd:Q2 .                  # Sélectionne tous les éléments qui sont (P1) des personnes (Q2)
  ?personne wdt:P52 wd:Q4367 .                # Filtre par appartenance à une organisation ("membre de", P52), ici "Tempo" (Q4367) (remplacez Q4367 par l'organisation de votre choix en utilisant l'auto-complétion (Control + espace))
  ?personne  wdt:P67 ?dateNaissance  .        # Ajoute la date de naissance (P67)
  ?personne  wdt:P3 ?nom .                    # Récupère le nom de famille (P3)
  ?personne  wdt:P2 ?prenom .                 # Récupère le prénom (P2)
          
 SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,[AUTO_LANGUAGE]". }  # Récupère le libellé en français
}

ORDER BY LCASE(?nom) LCASE(?prenom)  # Trie les résultats par nom de famille, puis par prénom (en ignorant la casse)

Essayez !

Recherche par domicile

#

# Cette requête récupère la liste des personnes présentes dans la base de données 
# et domiciliées dans une certaine commune pendant/au lendemain de la Seconde Guerre mondiale

#title: Résistant⸱e⸱s filtrés selon leur domicile (ici : Anderlecht)

SELECT ?personne ?nom ?prenom ?dateNaissance
WHERE {
  ?personne  wdt:P1  wd:Q2 .                  # Sélectionne tous les éléments qui sont (P1) des personnes (Q2)
  ?personne  wdt:P7  wd:Q102 .                # Filtre par domicile (P7), ici Anderlecht (Q102) (remplacez Q102 par la (section de) commune de votre choix en utilisant l'auto-complétion (Control + espace))
  ?personne  wdt:P67 ?dateNaissance  .        # Ajoute la date de naissance (P67)
  ?personne  wdt:P3 ?nom .                    # Récupère le nom de famille (P3)
  ?personne  wdt:P2 ?prenom .                 # Récupère le prénom (P2)
         
 SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,[AUTO_LANGUAGE]". }  # Récupère le libellé en français
}

ORDER BY LCASE(?nom) LCASE(?prenom)  # Trie les résultats par nom de famille, puis par prénom (en ignorant la casse)

Essayez !

Recherche par profession

#

# Cette requête récupère la liste des personnes présentes dans la base de données ayant une certaine profession (ici : coiffeur / kapper).

#title: Résistant⸱e⸱s ayant une certaine profession (ici : coiffeur / kapper)

SELECT ?personne ?nom ?prenom ?domicileLabel ?professionLabel
WHERE {
  ?personne  wdt:P1  wd:Q2 .               # Sélectionne toutes les personnes (P1) avec l'identifiant "Personne" (Q2)
  ?personne  wdt:P13 ?profession .         # Sélectionne leur profession (P13)
  ?personne  wdt:P3 ?nom .                    # Récupère le nom de famille (P3)
  ?personne  wdt:P2 ?prenom .                 # Récupère le prénom (P2)
  
  FILTER (CONTAINS(str(?profession), 'coiffeu')

Essayez !


Nombre de membres des organisations de résistance

# Cette requête récupère le nombre de membres par organisation de résistance et affiche les résultats sous forme de graphique à bulles
# Vous pouvez cliquer sur chaque bulle ou nom d'organisation pour accéder à plus de détails sur l'organisation dans la base de données.

#title: Décompte des membres par organisation de résistance

#defaultView:BubbleChart  # Affichage sous forme de bulles

SELECT ?organisation ?organisationLabel (COUNT(?personne) AS ?nombreMembres)
WHERE {
  ?personne wdt:P1 wd:Q2 .              # Sélectionne tous les éléments qui sont (P1) des personnes (Q2)
  ?personne wdt:P52 ?organisation .     # Filtre par appartenance à une organisation ("membre de", P52)

    FILTER EXISTS { 
   ?organisation wdt:P1/wdt:P9* wd:Q4  # Vérifie si l'organisation est (P1) / est une sous-classe (P9) d'une organisation de résistance (Q4)
   }
   # Pour filtrer et afficher uniquement les réseaux/missions de résistance, remplacez Q4 par Q38.
   # Pour filtrer et afficher uniquement les mouvements de résistance armée, remplacez Q4 par Q37.

  
    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr". }  # Récupère les libellés en français
}
GROUP BY ?organisation ?organisationLabel
ORDER BY DESC(?nombreMembres)

Essayez !

Lieux de décès pendant la guerre

#

# Cette requête récupère les lieux de décès des résistant⸱e⸱s jusqu'à la fin de l'année 1945 
# et les affiche sur une carte avec leur nom et, si disponible, les dates de décès.

# Astuce : Vous pouvez cliquer sur les points sur la carte pour afficher les noms des personnes décédées.
# Note : les lieux à l'étranger ont été "modernisés" pour correspondre aux données actuelles de la base Geonames.

#title: Lieux et dates de décès pendant la guerre

#defaultView:Map{"hide":"?GPS"}  # Affichage sous forme de carte, masquer les coordonnées GPS

SELECT ?personne ?personneLabel ?lieuDeces ?lieuDecesLabel ?GPS ?dateDeces
WHERE {
  ?personne wdt:P1 wd:Q2 .                      # Sélectionne toutes les personnes (P1 = Q2)
  ?personne wdt:P48 ?lieuDeces .                # Récupère les lieux de décès (P48)
  ?lieuDeces wdt:P6 ?GPS .                      # Récupère les coordonnées GPS des lieux de décès (P6)
  OPTIONAL { ?personne wdt:P68 ?dateDeces .     # Récupère la date de décès, si disponible
             FILTER(?dateDeces <= "1945-12-31"^^xsd:dateTime)  # Filtre les décès : jusqu'à fin 1945
  }
  
  SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,[AUTO_LANGUAGE]". }  # Récupère les libellés en français
}

ORDER BY ?lieuDecesLabel

Essayez !


Liste des femmes ayant été en détention

#

#title: Résistantes placées en détention
SELECT DISTINCT ?personne ?nom ?prenom ?debut_detention ?fin_detention ?professionLabel ?statutReconnaissanceLabel 
WHERE {

   ?personne wdt:P1 wd:Q2 .                   # Sélectionne les personnes (P1 = Q2)
  ?personne wdt:P4 wd:Q6 .                   # Filtre pour sélectionner les femmes (P4 = féminin Q6)
  
  ?personne p:P53 ?detention_statement .     # Recherche les personnes ayant été en détention (P53)
  ?detention_statement ps:P53 ?detention .
           
  OPTIONAL { ?detention_statement pq:P23 ?debut_detention. FILTER (datatype(?debut_detention) = xsd:edtf ) } # Récupère la date de début de détention si disponible (P23)
  OPTIONAL { ?detention_statement pq:P25 ?fin_detention. FILTER (datatype(?fin_detention) = xsd:edtf ) }     # Récupère la date de fin de détention si disponible (P25)

   OPTIONAL { ?personne wdt:P13 ?profession. }           # Récupère la profession si disponible (P13)
  OPTIONAL { ?personne wdt:P55 ?statutReconnaissance. } # Récupère l'éventuel statut de reconnaissance nationale obtenu (P55)

    ?personne  wdt:P3 ?nom .                    # Récupère le nom de famille (P3)
  ?personne  wdt:P2 ?prenom .                 # Récupère le prénom (P2)
  
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr". }  # Récupère les libellés en français

}

ORDER BY LCASE(?nom) LCASE(?prenom)  # Trie en ignorant la casse

Essayez !


Résistant·e·s reconnu·e·s ARA/FFC, ou ayant reçu une lettre de remerciements

#

# Cette requête récupère la liste des résistants reconnus agents de renseignements et d'action (ARA)
# ou ayant reçu une lettre de remerciements (LR) ou un statut FFC (Forces Françaises Combattantes), avec leur domicile et dossier d'archives lié.

#title: Résistants ARA (reconnus ou lettre de remerciements) ou FFC

SELECT DISTINCT ?personne ?nom ?prenom ?domicile ?domicileLabel ?statutObtenuLabel ?LR ?fondsArchivesLabel ?noInventaire WHERE {

    ?personne wdt:P1 wd:Q2 .                    # Sélectionne les personnes (P1 = Q2)
  ?personne  wdt:P3 ?nom .                    # Récupère le nom de famille (P3)
  ?personne  wdt:P2 ?prenom .                 # Récupère le prénom (P2)

   { ?personne wdt:P55 ?statutObtenu. 
    FILTER(?statutObtenu IN (wd:Q17, wd:Q4487)) }  # Filtre pour les statuts de reconnaissance ARA (Q17) ou FFC (Q4487)
  UNION                                            # OU
  { ?personne p:P54 ?statement.
    ?statement ps:P54 wd:Q17; pq:P56 wd:Q6665.     # Les personnes ayant reçu une lettre de remerciement (Q6665)
    BIND("lettre de remerciements ARA" AS ?LR)}

    OPTIONAL { ?personne wdt:P7 ?domicile. }         # Récupère le domicile si disponible (P7)
  OPTIONAL { ?personne p:P34 ?archives_statement . 
             ?archives_statement ps:P34 ?fondsArchives ;
                                pq:P35 ?noInventaire.}  # Référence aux archives
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr". }  # Récupère les libellés en français
}

ORDER BY LCASE(?nom) LCASE(?prenom)  # Trie les résultats par nom de famille, puis par prénom (en ignorant la casse)
LIMIT 100 # Limite les résultats à 100 pour optimiser les performances. Vous pouvez ajuster ou retirer cette limite en fonction de vos besoins.

Essayez !


Enrichir les données sur les résistant·e·s à l'aide de sources externes [requête fédérée]

#

# Cette requête récupère des informations supplémentaires sur les résistants de la base de données, grâce à Wikidata, incluant les articles Wikipedia, ainsi que les archives externes (ODIS, Biographie Nationale, VIAF, SNAC, etc.)

#title: Enrichissement des données sur les résistant·e·s via Wikidata

PREFIX wd_wikidata: <http://www.wikidata.org/entity/>  # Préfixe pour Wikidata
PREFIX wdt_wikidata: <http://www.wikidata.org/prop/direct/>  # Préfixe pour les propriétés directes de Wikidata

SELECT DISTINCT ?personne ?nom ?prenom ?wikidata_ID ?article_fr ?odisURL ?bioNationaleURL ?JusteURL ?maitronURL ?viafURL ?snacURL 
(GROUP_CONCAT(DISTINCT ?archivesLabel; SEPARATOR = ", ") AS ?archives)  # Concaténation des archives trouvées

WHERE {
  ?personne wdt:P1 wd:Q2 .                  # Sélectionne toutes les personnes (P1 = Q2)
  ?personne  wdt:P3 ?nom .                  # Récupère le nom de famille (P3)
  ?personne  wdt:P2 ?prenom .               # Récupère le prénom (P2)

  ?personne wdt:P15 ?identifiantWikidata .  # Récupère l'identifiant Wikidata (P15)

   # Génère un lien vers l'élément Wikidata correspondant
  BIND(URI(CONCAT("http://www.wikidata.org/entity/", ?identifiantWikidata)) AS ?wikidata_ID)

    # Requête fédérée pour récupérer les informations supplémentaires depuis Wikidata
  SERVICE <https://query.wikidata.org/sparql> {
    
    # Récupère et génère les URL des identifiants externes
    OPTIONAL { 
      ?wikidata_ID wdt_wikidata:P2372 ?odisID.  # Récupère l'ODIS ID
      BIND(URI(CONCAT("https://www.odis.be/lnk/", STR(?odisID))) AS ?odisURL)  # Génère l'URL ODIS
    }
    OPTIONAL { 
      ?wikidata_ID wdt_wikidata:P6234 ?bioNationaleID.  # Biographie nationale de Belgique ID
      BIND(URI(CONCAT("https://academieroyale.be/fr/la-biographie-nationale-personnalites-detail/personnalites/", STR(?bioNationaleID), "/Vrai/")) AS ?bioNationaleURL)  # Génère l'URL de la Biographie nationale
    }
    OPTIONAL { 
      ?wikidata_ID wdt_wikidata:P214 ?viafID.  # VIAF ID
      BIND(URI(CONCAT("https://viaf.org/viaf/", STR(?viafID))) AS ?viafURL)  # Génère l'URL VIAF
    }
    OPTIONAL { 
      ?wikidata_ID wdt_wikidata:P3430 ?snacID.  # SNAC ID
      BIND(URI(CONCAT("https://snaccooperative.org/ark:/99166/", STR(?snacID))) AS ?snacURL)  # Génère l'URL SNAC
    }
    OPTIONAL { 
      ?wikidata_ID wdt_wikidata:P4724 ?maitronID.  # Maitron ID
      BIND(URI(CONCAT("https://maitron.fr/spip.php?article", STR(?maitronID))) AS ?maitronURL)  # Génère l'URL Maitron
    }
    OPTIONAL { 
      ?wikidata_ID wdt_wikidata:P1979 ?JusteID.  # Juste parmi les Nations ID
      BIND(URI(CONCAT("https://collections.yadvashem.org/en/righteous/", STR(?JusteID))) AS ?JusteURL)  # Génère l'URL Juste parmi les Nations
    }
    
    # Récupère l'article Wikipedia en français
    OPTIONAL {
      ?article_fr schema:about ?wikidata_ID ;
                  schema:inLanguage "fr" ;
                  schema:isPartOf <https://fr.wikipedia.org/> .  # Article Wikipedia en français
    }
    
    # Récupère les archives liées à la personne
    OPTIONAL {
      ?wikidata_ID wdt_wikidata:P485 ?archives.  # Récupère les archives (P485)
      ?archives rdfs:label ?archivesLabel.  # Récupère les libellés des archives
      FILTER(LANG(?archivesLabel) = "fr")  # Filtre pour les libellés en français
    }
  }

    # Récupère les libellés des personnes dans la langue définie
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr". }
}

GROUP BY ?personne ?nom ?prenom ?wikidata_ID ?article_fr ?odisURL ?JusteURL ?bioNationaleURL ?maitronURL ?viafURL ?snacURL

ORDER BY LCASE(?nom) LCASE(?prenom)  # Trie les résultats par nom de famille, puis par prénom (en ignorant la casse)

Essayez !