User:Adminagr/SPARQL: Difference between revisions

    From Resistance in Belgium
    Line 99: Line 99:
       SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr" } .
       SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr" } .
    }
    }
    }}
    {{SPARQL|query=
    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
    }}
    }}

    Revision as of 12:09, 18 September 2023


    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

    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

    • 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

    Mouvements

    Utile/inspiration

    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
      }
    }
    

    Try it!


    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')
    

    Try it!


    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" } .
    }
    

    Try it!


    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
    

    Try it!