User:Adminagr/SPARQL
Tester le point d'accès SPARQL avec une requête simple :
SELECT * WHERE { ?a ?b ?c}
Autre requête : utiliser préfixes (où chercher où les indiquer de façon permanente) --> [1]
Propriétés & items
Je veux la liste de toutes les propriétés avec leur intitulé + description en français, néerlandais, anglais, allemand (si disponible) : https://tinyurl.com/2b2p4pcb
- Tous les items possédant une déclaration basée sur une certaine propriété : https://tinyurl.com/2dj84ln2
- Tous les items et propriétés sans P1 (nature de l'élément) : https://tinyurl.com/yqqe346c
- Tous les items sans P1 avec label et éventuelle description en français : https://tinyurl.com/ywf6q2nj
Lieux :
- Tous les lieux dotés d'un identifiant AGR (noms en français), accompagnés de leur code INS et identifiant Wikidata lorsqu'ils sont disponibles https://tinyurl.com/24fntg5e
- Tous les lieux dotés d'un identifiant AGR (noms en français), accompagnés de leur code INS et identifiant Wikidata lorsqu'ils sont disponibles, disposés sur une carte https://tinyurl.com/28ncnnkt
Personnes
- Toutes les personnes : https://tinyurl.com/29b9n5s5
- Toutes les personnes pour lesquelles on a un dossier AA1333 : https://tinyurl.com/246a5f7p
- J’aimerais obtenir la liste de toutes les personnes qui faisaient partie du réseau de résistance Luc-Marc et dont la profession contient le terme “SNCB” ou "NMBS", avec leur domicile s'il est connu. : https://tinyurl.com/ykg9vefz
Organisations : sources externes
Toutes les organisations pour lesquelles existent des renvois vers des sources externes (nom de l'institution) : http://tinyurl.com/2ag4dxar
Version concaténée :
PREFIX wb: <https://data.arch.be/entity/>
PREFIX wbt: <https://data.arch.be/prop/direct/>
PREFIX p: <https://data.arch.be/prop/>
PREFIX ps: <https://data.arch.be/prop/statement>
PREFIX pq: <https://data.arch.be/prop/qualifier>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?organisation ?organisationLabel
(GROUP_CONCAT(DISTINCT CONCAT(?sourceLabel); SEPARATOR="; ") AS ?sources_externes_concatenes)
WHERE {
?organisation wbt:P1/wbt:P9* wb:Q4. # Pour les éléments qui sont des organisations
OPTIONAL {
?organisation rdfs:label ?organisationLabel.
FILTER(LANG(?organisationLabel) = "fr").
}
?organisation wbt:P64 ?source. # Valeur de "sources externes"
?source rdfs:label ?sourceLabel.
FILTER(LANG(?sourceLabel) = "fr").
}
GROUP BY ?organisation ?organisationLabel
Requête pour obtenir la liste de toutes les organisations pour lesquelles existent des renvois vers des sources externes (nom de l'institution suivi de l'intitulé du fonds).
PREFIX wb: <https://data.arch.be/entity/>
PREFIX wbt: <https://data.arch.be/prop/direct/>
PREFIX wbp: <https://data.arch.be/prop/>
PREFIX wbps: <https://data.arch.be/prop/statement/>
PREFIX wbpq: <https://data.arch.be/prop/qualifier/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?organisation ?organisationLabel (GROUP_CONCAT(CONCAT(?sourceLabel, IF(BOUND(?nom), CONCAT(" [", ?nom, "]"), "")); separator=", ") AS ?sources_externes)
WHERE {
?organisation wbt:P1/wbt:P9* wb:Q4. # Pour les éléments qui sont des organisations
?organisation wbp:P64 ?statement. # Valeur de "sources externes"
?statement wbps:P64 ?source.
?source rdfs:label ?sourceLabel.
OPTIONAL {?statement wbpq:P66 ?nom.}
FILTER(LANG(?sourceLabel) = "fr")
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
GROUP BY ?organisation ?organisationLabel
Idem, avec la cote entre crochets après le nom du fonds :
PREFIX wb: <https://data.arch.be/entity/>
PREFIX wbt: <https://data.arch.be/prop/direct/>
PREFIX wbp: <https://data.arch.be/prop/>
PREFIX wbps: <https://data.arch.be/prop/statement/>
PREFIX wbpq: <https://data.arch.be/prop/qualifier/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?organisation ?organisationLabel (GROUP_CONCAT(CONCAT(?sourceLabel, IF(BOUND(?nom), CONCAT(" (", ?nom, ")"), ""), IF(BOUND(?cote), CONCAT(" [", ?cote, "]"), "")); separator=" / ") AS ?sources_externes)
WHERE {
?organisation wbt:P1/wbt:P9* wb:Q4. # Pour les éléments qui sont des organisations
?organisation wbp:P64 ?statement. # Valeur de "sources externes"
?statement wbps:P64 ?source.
?source rdfs:label ?sourceLabel.
OPTIONAL {?statement wbpq:P66 ?nom.}
OPTIONAL {?statement wbpq:P35 ?cote.}
FILTER(LANG(?sourceLabel) = "fr")
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
GROUP BY ?organisation ?organisationLabel
Mouvements
- à peaufiner (valeurs multiples concaténées) : https://tinyurl.com/ynkbnwdy
Utile/inspiration
- [FactGrid] tous les items sans P2 : https://tinyurl.com/2cf98rkv
- useful snippets - Katharina Brunner
Test template SPARQL
PREFIX wb: <https://data.arch.be/entity/>
PREFIX wbt: <https://data.arch.be/prop/direct/>
PREFIX wdq: <https://query.wikidata.org/bigdata/namespace/wdq/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?item ?label ?_image WHERE {
?item wbt:P1 wb:Q2.
SERVICE wikibase:label {
bd:serviceParam wikibase:language "fr" .
?item rdfs:label ?label
}
}
Requêtes prêtes à l'emploi
PREFIX wb: <https://data.arch.be/entity/>
PREFIX wbt: <https://data.arch.be/prop/direct/>
# J’aimerais obtenir la liste de toutes les personnes qui faisaient partie du réseau de résistance Luc-Marc et dont la profession contient le terme “SNCB” ou "NMBS", avec leur domicile s'il est connu.
SELECT ?personne ?personneLabel ?domicile ?domicileLabel ?professionLabel WHERE {
?personne wbt:P1 wb:Q2. # je cherche des personnes
?personne wbt:P52 wb:Q4297. # "membres d[u]" (P52) réseau Luc-Marc (Q4297)
?personne wbt:P13 ?profession . # je veux aussi leur profession (P13)
FILTER (CONTAINS(str(?profession),'SNCB')
PREFIX wb: <https://data.arch.be/entity/>
PREFIX wbt: <https://data.arch.be/prop/direct/>
# J’aimerais visualiser sur une carte le domicile des membres du réseau Zéro.
#defaultView:Map
SELECT ?personne ?personneLabel ?domicileLabel ?GPS WHERE {
?personne wbt:P1 wb:Q2. # je cherche des personnes
?personne wbt:P52 wb:Q4378. # "membres d[u]" (P52) réseau Zéro (Q4378)
?personne wbt:P7 ?domicile. # je veux leur domicile
?domicile wbt:P6 ?GPS # ainsi que les coordonnées GPS de leur domicile
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr" } .
}
PREFIX wb: <https://data.arch.be/entity/>
PREFIX wbt: <https://data.arch.be/prop/direct/>
# Je recherche le nom de toutes les femmes nées après 1915 qui ont été reconnues comme agentes de renseignements et d'actions
# j'aimerais également afficher dans une seule colonne les réseaux ou mouvements dont la personne faisait éventuellement partie
SELECT ?personne ?personneLabel
(GROUP_CONCAT(DISTINCT ?appartenanceLabel; SEPARATOR = " ; ") AS ?appartenanceLabels) # je regroupe les noms des réseaux/mouvements par personne pour plus de lisibilité
WHERE {
?personne wbt:P4 wb:Q6. # je cherche des personnes de genre (P4) féminin (Q6)
?personne wbt:P55 wb:Q17. # qui ont obtenu comme statut de reconnaissance nationale (P55) celui d'Agent de renseignement et d'action
OPTIONAL {
?personne wbt:P52 ?appartenance. # j'aimerais également afficher les éventuels réseaux ou mouvements dont la personne faisait partie
?appartenance rdfs:label ?appartenanceLabel} FILTER(lang(?appartenanceLabel) = 'fr') # et je veux récupérer le nom de ces réseaux/mouvements en français
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr" } .
}
GROUP BY ?personne ?personneLabel ?appartenanceLabels
PREFIX wb: <https://data.arch.be/entity/>
PREFIX wbt: <https://data.arch.be/prop/direct/>
PREFIX wdq: <https://query.wikidata.org/bigdata/namespace/wdq/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
# J'aimerais la liste de tous les réseaux/missions/mouvements/organisations civiles de résistance, avec, si disponible : leur date de fondation ; l'allégeance à certains gouvernements ;
# le pays et les lieux associés ; les lieux d'activité ; les types d'activité ; les noms de responsables.
SELECT ?item ?itemLabel ?organisationLabel ?date
(GROUP_CONCAT(DISTINCT ?allégeanceLabel; SEPARATOR = " ; ") AS ?allégeanceLabels) # je regroupe les allégeances pour plus de lisibilité
(GROUP_CONCAT(DISTINCT ?paysLabel; SEPARATOR = " ; ") AS ?paysLabels) # je regroupe les pays associés pour plus de lisibilité
(GROUP_CONCAT(DISTINCT ?lieuxLabel; SEPARATOR = " ; ") AS ?lieuxLabels) # je regroupe les lieux d'activité pour plus de lisibilité
(GROUP_CONCAT(DISTINCT ?typeLabel; SEPARATOR = " ; ") AS ?typeLabels) # je regroupe les types d'activité, pour plus de lisibilité
(GROUP_CONCAT(DISTINCT ?responsableLabel; SEPARATOR = " ; ") AS ?responsableLabels) # je regroupe les noms de responsables pour plus de lisibilité
WHERE {
?item wbt:P1 ?organisation. VALUES ?organisation {wb:Q37 wb:Q6553 wb:Q8464 wb:Q38}. # Je cherche tous les éléments qui sont des réseaux/missions/mouvements/organisations civiles de résistance
OPTIONAL {?item wbt:P39 ?date. FILTER (datatype(?date) = xsd:edtf )} # je veux afficher la date de fondation si elle est disponible (au format EDTF brut)
OPTIONAL {?item wbt:P40 ?allégeance. # j'aimerais également afficher l'allégeance à certains gouvernements s'ils sont sont connus
?allégeance rdfs:label ?allégeanceLabel. FILTER(lang(?allégeanceLabel) = 'fr')} # et je veux récupérer le nom de ces responsables
OPTIONAL {?item wbt:P12 ?pays. # j'aimerais également afficher les pays associés s'ils sont connus
?pays rdfs:label ?paysLabel. FILTER(lang(?paysLabel) = 'fr')} # et je veux récupérer le nom de ces pays en français
OPTIONAL {?item wbt:P61 ?lieux. # j'aimerais également afficher les lieux d'activité associés s'ils sont connus
?lieux rdfs:label ?lieuxLabel. FILTER(lang(?lieuxLabel) = 'fr')} # et je veux récupérer le nom de ces lieux en français
OPTIONAL {?item wbt:P36 ?type. # j'aimerais également afficher les types d'activités s'ils sont connus
?type rdfs:label ?typeLabel. FILTER(lang(?typeLabel) = 'fr')} # et je veux récupérer le nom de ces types d'activités en français
OPTIONAL {?item wbt:P37 ?responsable. # j'aimerais également afficher le noms des responsables s'ils sont sont connus
?responsable rdfs:label ?responsableLabel. FILTER(lang(?responsableLabel) = 'fr')} # et je veux récupérer le nom de ces responsables
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr". }
}
GROUP BY ?item ?itemLabel ?organisationLabel ?allégeanceLabels ?date ?paysLabels ?lieuxLabels ?typeLabels ?responsableLabels
Test Union + NoValue
PREFIX wb: <https://data.arch.be/entity/>
PREFIX wbt: <https://data.arch.be/prop/direct/>
PREFIX wbp: <https://data.arch.be/prop/>
PREFIX wbps: <https://data.arch.be/prop/statement/>
PREFIX wbpq: <https://data.arch.be/prop/qualifier/>
PREFIX wbpqv: <https://data.arch.be/prop/qualifier/value/>
# J'aimerais la liste de toutes les personnes décédées avant 1946 ou non revenues de détention en les classant par province.
SELECT DISTINCT ?personne ?personneLabel ?domicileLabel ?provinceLabel WHERE {
?personne wbt:P1 wb:Q2. # je cherche des personnes
{?personne wbt:P49 ?mort. # dont on sait qu'elles sont décédées avant 1946
FILTER("1946-01-01"^^xsd:dateTime < ?mort).} #
UNION
{?personne wbp:P53 ?detention_statement. # je cherche celles qui ont été gardées en détention
?detention_statement wbps:P53 ?detention. } filter not exists{?detention_statement wbpq:P25 ?fin_detention}
?personne wbt:P7 ?domicile.
?domicile wbt:P14* ?province.
FILTER(EXISTS { ?province wbt:P1 wb:Q43. })
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr". }
}
ORDER BY ?province
LIMIT 100
Articles Belgium WWII en français pour des personnes
Dossiers ARA et nés en RDC
Nouvelles requêtes (août 2024)
Organisations classées par nombre de membres
# Liste basée sur l'appartenance à des organisations de résistance ("membre de"-P52), triée par le nombre d'Agents de Renseignements et d'Action pour une organisation donnée
#defaultView:BubbleChart # vue par défaut sous forme de graphique à bulles
SELECT ?organisation ?organisationLabel (count(?organisation) as ?organisation_count) # Compter le nombre de membres pour chaque organisation
WHERE {
?person wbt:P1 wb:Q2 . # Sélectionner des personnes (leur "nature"-P1 est d'être des "personnes"-Q2)
?person wbt:P52 ?organisation . # Sélectionner les organisations dont ces personnes sont "membre de"-P52
# Optionnel : Filtrer les organisations de résistance pour ne garder que des organisaitons spécifiques de résistance
# FILTER EXISTS {?organisation wbt:P1 wb:Q6553 .} # Exemple de filtre pour ne garder que les mouvements de résistance armée reconnue
# FILTER NOT EXISTS {?organisation wbt:P1/wbt:P9* wb:Q37 .} # Exemple de filtre pour exclure tous les mouvements de résistance armée (attention, cela exclura également le Groupe G et Nola qui sont à la fois des mouvements de résistance armée et des réseaux/missions)
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr,en". }
}
GROUP BY ?organisation ?organisationLabel
ORDER BY DESC(?organisation_count)
Nombre de personnes à qui est associé une fiche ou un dossier individuel du fonds AA1333
SELECT DISTINCT (count(*) as ?c) WHERE {
?person wbt:P34 wb:Q4159 .
}
Personnes à qui est associé un dossier individuel du fonds AA1333...
SELECT DISTINCT ?person ?personLabel WHERE {
?person wbt:P1 wb:Q2. # je recherche des personnes
?person wbt:P34 wb:Q4159 . # à qui sont associées des "dossiers personnels" d'Agents de Renseignements et d'Action (fonds AA1333)
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr". }
}
Résistant⸱e⸱s domicilié⸱e⸱s dans la province de Namur pendant/au lendemain de la Seconde Guerre mondiale
Résultats regroupés par commune de résidence et présentés sous forme de "graphe".
# Liste des personnes domiciliées dans la province de Namur
# associées à un dossier individuel du fonds AA1333 (Dossiers Services de Renseignements et d'Action SRA de la Sûreté de l'Etat (BE-A0547_2674_AA1333))
# Les résultats sont regroupés par commune de résidence et présentés sous forme de "graphe".
#defaultView:Graph # Voir les résultats sous forme de "graphe"
#title:Personnes domiciliées dans la province de Namur
SELECT ?personne ?personneLabel ?domicile ?domicileLabel ?rgb
WHERE {
?personne wbt:P7 ?domicile. # Trouver des personnes avec un domicile connu (P7)
?domicile wbt:P14* wb:Q53. # Filtrer pour ne conserver que les domiciles situés (P14) dans la province de Namur (Q53)
# Filtrage par genre des personnes
# Décommentez la ligne correspondant au genre que vous souhaitez filtrer
# ?personne wbt:P4 wb:Q6. # Pour filtrer uniquement les personnes de genre féminin (Q6)
# ?personne wbt:P4 wb:Q7. # Pour filtrer uniquement les personnes de genre masculin (Q7)
BIND('158f68' as ?rgb) # Définir une couleur d'affichage personnalisée pour les communes
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr". } # Obtenir les labels des entités en plusieurs langues
}
LIMIT 400 # Limiter le nombre de résultats à 400 pour éviter de surcharger les résultats. Ajustez ce nombre selon vos besoins.
Résultats sous forme de tableaux, accompagnés des dates de naissance et des éventuels statuts de reconnaissance nationale demandés et obtenus
# Liste des résistant⸱e⸱s domicilié⸱e⸱s dans la province de Namur
# Cette requête récupère les noms des résistant⸱e⸱s avec leur date de naissance, leur domicile,
# ainsi que les types de statut de reconnaissance nationale demandés et obtenus
#title:Résistant⸱e⸱s de la province de Namur
SELECT ?personne ?personneLabel ?dateNaissance ?domicileLabel ?demandeStatutLabel ?decisionStatutLabel
WHERE {
?personne wbt:P7 ?domicile. # Trouver des personnes avec un domicile connu (P7)
?domicile wbt:P14* wb:Q53. # Filtrer pour ne conserver que les domiciles situés (P14) dans la province de Namur (Q53)
?personne wbt:P67 ?dateNaissance # Récupérer la date de naissance.
# Obtenir les types de statut de reconnaissance nationale demandés et obtenus (facultatif)
OPTIONAL { ?personne wbt:P54 ?demandeStatut. } # Type de statuts demandés
OPTIONAL { ?personne wbt:P55 ?decisionStatut. } # Type de statuts obtenus
# Filtrage par genre des personnes
# Décommentez la ligne correspondant au genre que vous souhaitez filtrer
# ?personne wbt:P4 wb:Q6. # Pour filtrer uniquement les personnes de genre féminin (Q6)
# ?personne wbt:P4 wb:Q7. # Pour filtrer uniquement les personnes de genre masculin (Q7)
# Service pour obtenir les labels des entités dans plusieurs langues
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr". } # Récupère les étiquettes (noms) des entités dans les langues spécifiées
}
ORDER BY ?domicileLabel # Trie les résultats par commune de domicile.
LIMIT 50 # Limite le nombre de résultats à 50 pour éviter une liste trop longue. Ajustez ce nombre selon vos besoins ou supprimez la ligne.