Project:SPARQL/examples: Difference between revisions

Line 1,071: Line 1,071:
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
}
}
</sparql>
==== Counties of residence for women in any of the above five categories, mapped====
<sparql tryit="1">
## IMPORTANT: LIMITATIONS OF THE MAP
## Only the top category of activity (layer) can be seen when all are selected (the default)
## To see each layer, you need to deselect the rest in the layers menu and view them one at a time.
## (I'll look into how I might be able to improve on this)
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwdv: <https://beyond-notability.wikibase.cloud/value/>
PREFIX bnwdt: <https://beyond-notability.wikibase.cloud/prop/direct/>
PREFIX bnp: <https://beyond-notability.wikibase.cloud/prop/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
#title:Counties of residence for women who were nominated for election or had publications recorded or spoke/exhibited at RAI
#defaultView:Map{"hide":["?geo", "?wikidata"]}
SELECT distinct  ?county ?countyLabel ?wikidata ?geo  ?layer  #?person ?personLabel
WHERE { 
  ?person bnwdt:P3 bnwd:Q3 . # select women
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
  {
    #women who were nominated for election to FSA | RAI
    ?person ( bnp:P16 | bnp:P7 ) ?stmt . 
  }
  union
  {
    # women with publications recorded in indexes of archaeological papers
    ?person bnp:P76 ?stmt .
        ?stmt bnps:P76 bnwd:Q419 .
  }
  union
  {
    # women who spoke|exhibited at RAI Meeting
    ?person (bnp:P23 | bnp:P13) ?stmt . 
      ?stmt (bnps:P23 | bnps:P13) bnwd:Q29 .
  }
 
  # get the p labels for layers
  ?person ?p ?stmt . 
  ?claim wikibase:claim ?p;
        rdfs:label ?layer. filter(lang(?layer)="en-gb").
 
  # get geo stuff
  ?person bnwdt:P29 ?residence . # select residences
  ?residence bnwdt:P33 ?district . #select districts
  ?district bnwdt:P33 ?county . #select counties
      optional { ?county bnwdt:P153 ?geo2 .  } # for geocoords added to BN
 
      optional {   
      ?county bnp:P117 ?ws .  # wikidata id P117       
        ?ws bnpq:P14 ?wikidata_url .
        BIND(IRI(REPLACE(?wikidata_url, "https://www.wikidata.org/wiki/", "http://www.wikidata.org/entity/")) as ?wikidata )
 
      SERVICE <https://query.wikidata.org/sparql> {
        optional { ?wikidata wdt:P625 ?geo1 . } # geocoords if available     
      } # /wikidata service 
      } #/wikidata optional
    BIND(COALESCE(?geo1, ?geo2) AS ?geo).  # if geo1 available use it, if not try geo2
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }
}
order by ?layer
</sparql>
</sparql>


579

edits