Project:SPARQL/examples: Difference between revisions

(58 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Project:SPARQL/admin | Admin/batch tools queries]]
==SAL and RAI==
==SAL and RAI==


Line 168: Line 170:
</sparql>
</sparql>


===Women who are listed as Fellows of the Society of Antiquaries of London (FSAs) on our wikibase and who are on Wikidata, but are not listed as FSAs on Wikidata===


<sparql tryit="1">
# Women who are listed as Fellows of the Society of Antiquaries of London (FSAs) on our wikibase and who are on Wikidata, but are not listed as FSAs on Wikidata
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/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wd:  <http://www.wikidata.org/entity/>
SELECT ?person ?personLabel
WHERE { 
  ?person bnwdt:P3 bnwd:Q3 . #select women
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
 
  ?person bnwdt:P75 bnwd:Q8. # find only BN subjects having a FSA (h/t @Tagishsimon)
  ?person bnwdt:P117 ?wikidata_ID . #look for wikidata ID on person page
  bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_ID))) as ?item) .
  SERVICE <https://query.wikidata.org/sparql> {
        ?item wdt:P21 ?WD_gender. #get gender of person
        FILTER NOT EXISTS {?item wdt:P166 wd:Q26196499 . } #not FSA on Wikidata
      }
 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en". }
}
ORDER BY ?personLabel
</sparql>


=== Women's interactions with SAL (Q1 and Q8)===
=== Women's interactions with SAL (Q1 and Q8)===


<sparql tryit="1">
<sparql tryit="1">
#title:Women's interactions with SAL (Q1 and Q8)
# CAVEAT: this query may overlook a significant number of interactions and should probably not be reference/archived in its current state
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 213: Line 184:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wd:  <http://www.wikidata.org/entity/>


SELECT distinct ?person ?personLabel ?prop ?propLabel  ?pq_value ?qual_prop_label ?sal
SELECT distinct ?person ?personLabel   ?propLabel  ?qual_value ?qual_propLabel ?bnwdLabel # ?s ?prop ?qual_prop ?bnwd


WHERE {   
WHERE {   
Line 223: Line 192:


       ?prop wikibase:claim ?p;       
       ?prop wikibase:claim ?p;       
         wikibase:statementProperty ?ps
         wikibase:statementProperty ?ps.     
        wikibase:statementValue ?psv;
        wikibase:propertyType ?prop_type.     
      
      
       # union query to get both q8 and q1  
       # union query to get both q8 and q1  
       { ?s ?ps bnwd:Q8 . }  union { ?s ?ps bnwd:Q1 . }
       { ?s ?ps bnwd:Q8 . }  union { ?s ?ps bnwd:Q1 . }
       ?s ?ps ?sal.
       ?s ?ps ?bnwd. #which type
    
    
      optional {  
      optional {  
         ?s ?pq ?pq_value .   
         ?s ?pq ?qual_value .   
          
          
         ?qual_prop wikibase:qualifier ?pq .  
         ?qual_prop wikibase:qualifier ?pq .
        ?qual_prop rdfs:label ?qual_prop_label. filter(lang(?qual_prop_label)="en-gb") .
        ?qual_prop wikibase:propertyType ?qual_prop_type
          
          
       } # /qualifiers
       } # /qualifiers


   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
}
}
ORDER BY ?personLabel ?propLabel ?s
ORDER BY ?personLabel ?propLabel ?s
Line 248: Line 213:


<sparql tryit="1">
<sparql tryit="1">
#title:Women's interactions with RAI (Q35 and Q29)
# CAVEAT: this query may overlook a significant number of interactions and should probably not be reference/archived in its current state
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 255: Line 222:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wd:  <http://www.wikidata.org/entity/>


SELECT distinct ?person ?personLabel  ?prop ?propLabel ?prop_type ?pq_value ?pq_valueLabel ?qual_prop_label ?qual_prop_type ?rai ?s
SELECT distinct ?person ?personLabel  ?propLabel  ?qual_value ?qual_propLabel ?bnwdLabel # ?s ?prop ?qual_prop


WHERE {   
WHERE {   
Line 265: Line 230:


       ?prop wikibase:claim ?p;       
       ?prop wikibase:claim ?p;       
         wikibase:statementProperty ?ps
         wikibase:statementProperty ?ps.     
        wikibase:statementValue ?psv;
        wikibase:propertyType ?prop_type.     
      
      
       # to get both q35 and q29  
       # to get both q35 and q29  
       { ?s ?ps bnwd:Q35 . }  union { ?s ?ps bnwd:Q29 . }
       { ?s ?ps bnwd:Q35 . }  union { ?s ?ps bnwd:Q29 . }
       ?s ?ps ?rai.
       ?s ?ps ?bnwd.


       # qualifiers.  
       # qualifiers.  
       optional {  
       optional {  
         ?s ?pq ?pq_value .   
         ?s ?pq ?qual_value .   
          
          
         ?qual_prop wikibase:qualifier ?pq .   
         ?qual_prop wikibase:qualifier ?pq .   
        ?qual_prop rdfs:label ?qual_prop_label. filter(lang(?qual_prop_label)="en-gb") .
        ?qual_prop wikibase:propertyType ?qual_prop_type .
          
          
       } # /qualifiers
       } # /qualifiers


   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
}
}
ORDER BY ?personLabel
ORDER BY ?personLabel
Line 294: Line 255:
#title: FSAs with no record of interacting with SAL in Q1 / Q8
#title: FSAs with no record of interacting with SAL in Q1 / Q8
# only active engagements like spoke at, corresponded with, etc, and excluding P75 "was fellow of" and P5 "archives at".
# only active engagements like spoke at, corresponded with, etc, and excluding P75 "was fellow of" and P5 "archives at".
# WIP: to update with other SAL records as I work through queries for them. Plus caveat that there may be other sources of interaction not recorded in the database!
# CAVEATS: I think this is not working as intended and it shouldn't be referenced or archived


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 342: Line 303:
#title: RAIs with no record of interacting with RAI in Q29/Q35
#title: RAIs with no record of interacting with RAI in Q29/Q35
# only active engagements like spoke at, corresponded with, etc, and excluding P67 "was member of"  
# only active engagements like spoke at, corresponded with, etc, and excluding P67 "was member of"  
# WIP: to update with other RAI records as I work through queries for them. Plus caveat that there may be other sources of interaction not recorded in the database.
# CAVEATS: I think this may not be working as intended and it shouldn't be referenced or archived in its current state


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 453: Line 414:
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>


SELECT distinct ?personLabel ?work_label ?positionLabel ?date_label ?date  
SELECT distinct ?personLabel ?workLabel ?positionLabel ?date_pLabel ?date  
?employerLabel ?organisedLabel ?ofLabel  
?employerLabel ?organisedLabel ?ofLabel ?person
?s ?person ?work ?position ?employer ?organised ?of
#?s ?position  ?of  ?work ?employer ?organised


WHERE {
WHERE {
Line 465: Line 426:
    
    
   ?person ?work_p ?s . # for activity type label
   ?person ?work_p ?s . # for activity type label
   ?work wikibase:claim ?work_p;     
   ?work wikibase:claim ?work_p .   
        rdfs:label ?work_label. filter(lang(?work_label)="en-gb") .   
      
      
     # more about the position
     # more about the position
Line 482: Line 442:
     ?s ?pq ?date .  
     ?s ?pq ?date .  
        
        
       ?qual_prop wikibase:qualifier ?pq;       
       ?date_p wikibase:qualifier ?pq;       
               #wikibase:propertyType ?date_prop_type; # can check date property types if needed
               #wikibase:propertyType ?date_prop_type; # can check date property types if needed
               wikibase:propertyType wikibase:Time ; # nb *does not* include edtf dates but AFAICT there are none in qualifiers.
               wikibase:propertyType wikibase:Time . # nb *does not* include edtf dates but AFAICT there are none in qualifiers.
               rdfs:label ?date_label . filter(lang(?date_label)="en-gb") . # what kind of date is it.
               #rdfs:label ?date_label . filter(lang(?date_label)="en-gb") . # what kind of date is it.
       } # /dates
       } # /dates
    
    
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
    
    
} # /where
} # /where
Line 553: Line 513:
</sparql>
</sparql>


 
=== Lecturers ===
== Professional Activities and Organisations ==
 
=== Women's service on committees etc (P102) ===


<sparql tryit="1">
<sparql tryit="1">
 
#title:lecturers
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 567: Line 524:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpsv: <https://beyond-notability.wikibase.cloud/prop/statement/value/>
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>
SELECT distinct ?person ?personLabel  ?positionLabel
?organisedLabel ?ofLabel
?qual_propLabel ?qualLabel
#?position ?of  ?work ?organised  ?date_precision ?qual_prop ?date ?qual ?workLabel
?s
WHERE {
   
  ?person bnwdt:P3 bnwd:Q3 . # women
 
  # work activities: held position / held position (free text) /  employed as
  #?person ( bnp:P17|bnp:P48|bnp:P105 ) ?s . 
 
  ?person ?work_p ?s . # for activity type label
    ?work wikibase:claim ?work_p . 


SELECT distinct ?personLabel ?serviceLabel ?qual_propLabel ?qualLabel  ?service ?qual ?person #?s
    ?s ?bnps ?position .  
WHERE { 
    # freelance and extension lecturing (q701 and q3021)
  ?person bnwdt:P3 bnwd:Q3 . # select women
    { ?s ?bnps bnwd:Q701  . } union { ?s ?bnps bnwd:Q3021 . }
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
 
  ?person bnp:P102 ?s .  # served on P102
  ?person ?p ?s .    # for claim
    
    
  ?claim wikibase:claim ?p;     
    # employer / organised by / of (incl free text).
        wikibase:statementProperty ?ps;
    OPTIONAL { ?s bnpq:P109 ?organised .}
        wikibase:propertyType ?prop_type.  
    OPTIONAL { ?s ( bnpq:P78 | bnpq:P66 ) ?of .}
  # optional { ?s bnpq:P2 ?location . } # do locations separately.
      
      
    ?s ?ps ?service . # service on what
  # dates with precision
   
#  optional {
  optional { #qualifiers, if any
#    ?s (bnpqv:P1 | bnpqv:P27 | bnpqv:P28  ) ?pqv.
    ?s ?pq ?qual .    
  #     ?s ?pqq ?pqv . # just gets the uri but doesnt seem to cause dups
        ?qual_prop wikibase:qualifier ?pq.    
#        ?pqv wikibase:timeValue ?date .
        SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en".  
#        ?pqv wikibase:timePrecision ?date_precision .
        ?qual_prop rdfs:label ?qual_propLabel # what kind of thing
#    }
        } # /label service
     
       } # /quals
    # qualifiers
 
    optional {
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb, en". }  
      ?s ?pq ?qual .  
}
        ?qual_prop wikibase:qualifier ?pq .   
     
       } # /dates
 
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
 
} # /where


ORDER BY ?personLabel ?s
ORDER BY ?person ?s
</sparql>
</sparql>


=== Women's service: information about "of" qualifier, including alternatives for locations===
=== Excavations ===


<sparql tryit="1">
<sparql tryit="1">
#title: query for served on "of" info
#title:BN excavations
# where a women served on committee *of* organisation, need to link to info about the organisation, including location.
# geo data for the location may be in its BN page but is more likely to need to be fetched from wikidata
# todo: check whether there are orgs that don't have location info in BN but do have it in wikidata
 
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 612: Line 587:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


SELECT distinct ?personLabel ?serviceLabel ?of ?ofLabel ?of_location ?of_locationLabel ?of_geo ?of_long ?of_lat ?person #?s
SELECT ?excavationLabel ?excavation ?locationLabel ?start ?end ?pit
?partLabel ?funderLabel ?organisedLabel ?facilitatedLabel ?directorLabel ?memberLabel
# ?member ?director  ?location ?part ?funder ?facilitated ?organised


WHERE {   
WHERE {   
  ?person bnwdt:P3 bnwd:Q3 . # select women
  # instance of excavation  128
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .}
  ?excavation bnwdt:P12 bnwd:Q38 .
    
    
  ?person  bnp:P102 ?s . 
     optional { ?excavation bnwdt:P2 ?location .}
    ?s bnps:P102 ?service .
     ?s bnpq:P78 ?of .
    
    
      #optional { ?of bnwdt:P117 ?of_wikidata. }   #todo
    optional { ?excavation bnwdt:P27 ?start . }  


      optional { ?of bnwdt:P2 ?of_location.  
    optional { ?excavation bnwdt:P28 ?end . }


            optional { ?of_location bnwdt:P153 ?bn_of_geo . }
    optional { ?excavation bnwdt:P1 ?pit. }  
 
 
            optional { ?of_location bnwdt:P117 ?wd_of_loc .
    optional { ?excavation bnwdt:P4 ?part . }
                            bind(iri(concat("http://www.wikidata.org/entity/", str(?wd_of_loc))) as ?wd_of_loc_url) .  
 
                           
    optional { ?excavation bnwdt:P36 ?director .
                        SERVICE <https://query.wikidata.org/sparql> {
 
                        optional {?wd_of_loc_url wdt:P625 ?wd_of_geo .}   # wikidata geocoords
    optional { ?excavation bnwdt:P37 ?member . }
                        } # /wikidata service    
 
                    } #/optional location wikidata
    optional { ?excavation bnwdt:P109 ?organised .}  
              } #/optional P2 location.  
    
    optional { ?excavation bnwdt:P121 ?facilitated . }


      BIND(COALESCE(?bn_of_geo, ?wd_of_geo) AS ?of_geo). # if we have bn_geo use that, then try wd_geo
    optional { ?excavation bnwdt:P145 ?funder . }
    
    
      BIND(geof:longitude(?of_geo) AS ?of_long)
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
      BIND(geof:latitude(?of_geo)  AS ?of_lat)
    
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb, en". }  
}
}
ORDER BY ?personLabel ?s
 
ORDER BY ?excavationLabel
</sparql>
</sparql>


== Professional Activities and Organisations ==


=== All activities for women that have instance of public and professional activities===
=== Women's service on committees etc (P102) ===


<sparql tryit="1">
<sparql tryit="1">
#title:women and PPA
 
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 660: Line 635:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


SELECT ?person ?personLabel ?ppa_label ?ppa ?ppa_valueLabel ?ppa_value ?s  
 
SELECT distinct ?personLabel ?serviceLabel ?qual_propLabel  ?qualLabel  ?qual ?person ?s # ?service
WHERE {   
WHERE {   
   ?person bnwdt:P3 bnwd:Q3 .
   ?person bnwdt:P3 bnwd:Q3 . # select women
   ?person ?p ?s .
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
 
      ?ppa wikibase:claim ?p;      
  ?person bnp:P102 ?s .  # served on P102
        wikibase:statementProperty ?ps.    
     ?s bnps:P102 ?service .
         
   
      SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb".
  optional { #qualifiers, if any
                ?ppa rdfs:label ?ppa_label.
    ?s ?pq ?qual .    
            } # /label service
        ?qual_prop wikibase:qualifier ?pq.       
 
       } # /quals
      ?ppa bnwdt:P12 bnwd:Q151 . # instance of PPA      
     
       # get a bit of detail about the ppa
      ?s ?ps ?ppa_value.


   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb, en". }  
}
}


order by ?personLabel ?ppa_label
ORDER BY ?personLabel ?s
 
</sparql>
</sparql>


=== Women corresponding with individuals ===


===Counts of PPAs for women===
<sparql tryit="1">
<sparql tryit="1">
#title:counting women's instance of PPA
#title:women corresponding with individuals
 
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 695: Line 669:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


SELECT  ?ppa_label ?ppa (count(?ppa) as ?count)
select ?person ?personLabel ?correspondent ?correspondentLabel ?qualifier_label
WHERE {
?qualifier ?qualifierLabel
 
where
{
   ?person bnwdt:P3 bnwd:Q3 .
   ?person bnwdt:P3 bnwd:Q3 .
   ?person ?p ?s .   
 
   
   ?person bnp:P73 ?s .
       ?ppa wikibase:claim ?p;     
    ?s bnps:P73 ?correspondent . # corresponded with  
        wikibase:statementProperty ?ps.    
    ?correspondent bnwdt:P12 bnwd:Q2137 . # correspondent is i/o human
         
 
      SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb".  
    optional
                      ?ppa rdfs:label ?ppa_label.       # what kind of thing
       { ?s ?qual_p ?qualifier .  
                } # /label service
        ?qual_prop wikibase:qualifier ?qual_p.
        ?qual_prop rdfs:label ?qualifier_label. filter(lang(?qualifier_label)='en') .
      }
    
    
      ?ppa bnwdt:P12 bnwd:Q151 . # ahhhh at last     
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }
     
      # get stuff about ?s
      #?s ?ps ?ppa_value.
 
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
}
}
group by ?ppa_label ?ppa


order by desc(?count)
ORDER BY ?person
</sparql>
</sparql>


==Place==
=== Women's service: information about "of" qualifier, including alternatives for locations===
 
===People not in London linked as a graph by a NUTS region or country (excluding England) at which they were once resident in the UK===


<sparql tryit="1">
<sparql tryit="1">
# People not in London linked as a graph by a NUTS region or country (excluding England) at which they were once resident in the UK
#title: query for served on "of" info
# where a women served on committee *of* organisation, need to link to info about the organisation, including location.
# geo data for the location may be in its BN page but is more likely to need to be fetched from wikidata
# todo: check whether there are orgs that don't have location info in BN but do have it in wikidata


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 734: Line 708:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


#defaultView:Graph
SELECT distinct ?personLabel ?serviceLabel ?of ?ofLabel ?of_location ?of_locationLabel ?of_geo ?of_long ?of_lat ?person #?s
SELECT ?resident ?residentLabel ?region ?regionLabel
 
WHERE {   
WHERE {   
   ?resident bnwdt:P29 ?residence .
   ?person bnwdt:P3 bnwd:Q3 . # select women
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2035 .}
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .}  
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2036 .}
 
     FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2037 .}
  ?person  bnp:P102 ?s .  
     FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2038 .}
     ?s bnps:P102 ?service .
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2039 .}
     ?s bnpq:P78 ?of .
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2040 .}
 
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2041 .}
      #optional { ?of bnwdt:P117 ?of_wikidata. }   #todo
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2042 .}
 
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q39.}
      optional { ?of bnwdt:P2 ?of_location.  
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2534.}  
 
   ?residence bnwdt:P33 ?district .
            optional { ?of_location bnwdt:P153 ?bn_of_geo . }
   ?district bnwdt:P33 ?county .
 
  ?county bnwdt:P33 ?region .
            optional { ?of_location bnwdt:P117 ?wd_of_loc .
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
                            bind(iri(concat("http://www.wikidata.org/entity/", str(?wd_of_loc))) as ?wd_of_loc_url) .
                           
                        SERVICE <https://query.wikidata.org/sparql> {
                        optional {?wd_of_loc_url wdt:P625 ?wd_of_geo .}   # wikidata geocoords
                        } # /wikidata service    
                    } #/optional location wikidata
              } #/optional P2 location.
 
      BIND(COALESCE(?bn_of_geo, ?wd_of_geo) AS ?of_geo). # if we have bn_geo use that, then try wd_geo
    
      BIND(geof:longitude(?of_geo) AS ?of_long)
      BIND(geof:latitude(?of_geo)  AS ?of_lat)
    
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb, en". }  
}
}
ORDER BY ?personLabel ?s
</sparql>
</sparql>


===People whose residence was at one time in the east or south east of England, excluding London===
 
=== All activities for women that have instance of public and professional activities===


<sparql tryit="1">
<sparql tryit="1">
#title:women and PPA
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 766: Line 756:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


SELECT ?resident ?residentLabel ?residenceLabel ?districtLabel ?countyLabel ?regionLabel
SELECT ?person ?personLabel ?ppa_label ?ppa ?ppa_valueLabel ?ppa_value ?s
WHERE {   
WHERE {   
   ?resident bnwdt:P29 ?residence .
   ?person bnwdt:P3 bnwd:Q3 .
   ?residence bnwdt:P33 ?district .
   ?person ?p ?s .
  ?district bnwdt:P33 ?county .
  ?county bnwdt:P33 ?region .
      ?ppa wikibase:claim ?p;     
    {?county bnwdt:P33 bnwd:Q67 .}
        wikibase:statementProperty ?ps.    
    UNION
         
    {?county bnwdt:P33 bnwd:Q85 .}
      SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb".
                ?ppa rdfs:label ?ppa_label.
            } # /label service
 
      ?ppa bnwdt:P12 bnwd:Q151 . # instance of PPA     
     
      # get a bit of detail about the ppa
      ?s ?ps ?ppa_value.
 
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
}
}
ORDER BY ?regionLabel ?countyLabel ?districtLabel ?residenceLabel
 
order by ?personLabel ?ppa_label
</sparql>
</sparql>


===People whose residence was at one time in North East England or Yorkshire and the Humber===


===Counts of PPAs for women===
<sparql tryit="1">
<sparql tryit="1">
# People whose residence was at one time in North East England or Yorkshire and the Humber
#title:counting women's instance of PPA
 
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 793: Line 791:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


SELECT ?resident ?residentLabel ?residenceLabel ?districtLabel ?countyLabel ?regionLabel
SELECT ?ppa_label ?ppa  (count(?ppa) as ?count)
WHERE {   
WHERE {   
   ?resident bnwdt:P29 ?residence .
   ?person bnwdt:P3 bnwd:Q3 .
   ?residence bnwdt:P33 ?district .
   ?person ?p ?s .
  ?district bnwdt:P33 ?county .
  ?county bnwdt:P33 ?region .
      ?ppa wikibase:claim ?p;     
    {?county bnwdt:P33 bnwd:Q72 .}
        wikibase:statementProperty ?ps.    
    UNION
         
    {?county bnwdt:P33 bnwd:Q200 .}
      SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb".
                      ?ppa rdfs:label ?ppa_label.       # what kind of thing
                } # /label service
 
      ?ppa bnwdt:P12 bnwd:Q151 . # ahhhh at last     
     
      # get stuff about ?s
      #?s ?ps ?ppa_value.
 
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
}
}
ORDER BY ?regionLabel ?countyLabel ?districtLabel ?residenceLabel
group by ?ppa_label ?ppa
 
order by desc(?count)
</sparql>
</sparql>


===People not in London with the district, county, and region at which they were once resident (in the UK) listed===
=== PPA Buckets for Women ===


<sparql tryit="1">
<sparql tryit="1">
# People not in London with the district, county, and region at which they were once resident (in the UK) listed
#title:ppa buckets (revised February 2024)
# broad PPA grouping categories to use for overviews and analysis within categories


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 820: Line 829:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


SELECT ?resident ?residentLabel ?district ?districtLabel ?county ?countyLabel ?region ?regionLabel
SELECT distinct ?person ?personLabel ?ppa_label ?ppa ?bucket
?ppa_value ?ppa_valueLabel
?s
WHERE {   
WHERE {   
   ?resident bnwdt:P29 ?residence .
   ?person bnwdt:P3 bnwd:Q3 .
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2035 .}
  ?person ?p ?s .
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2036 .}
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2037 .}
      ?ppa wikibase:claim ?p;     
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2038 .}
        wikibase:statementProperty ?ps.  
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2039 .}
 
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2040 .}
      # note: i think you need rdfs:label (*Label won't work) for the bind()
     FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2041 .}
 
     FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2042 .}
      SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb".  
     FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q39.}
                      ?ppa rdfs:label ?ppa_label.  
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2534.}
                } # /label service
  ?residence bnwdt:P33 ?district .
 
   ?district bnwdt:P33 ?county .
      ?ppa bnwdt:P12 bnwd:Q151 . # i/o ppa     
  ?county bnwdt:P33 ?region .
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
      # get stuff about ?s
      ?s ?ps ?ppa_value.
 
     # note: it would be possible to write this to use ppa rather than ppa_label. there's a slight risk that property names might change.
     # BUT then it would be much more opaque and difficult to edit if (when!) we make any changes to the buckets.
     bind(
      if( str(?ppa_label) in ("attended", "exhibited at", "organiser of", "performed at", "spoke at", "was delegate at (free text)", "was delegate at (item)" ), "events",
        if( str(?ppa_label) in ("curated (item)", "donor to", "loaner to", "recovered (free text)", "seller to", "was collector of", "was donor of" ), "collections",
          if( str(?ppa_label) in ("educated at"),  "education" ,
            if( str(?ppa_label) in ("election to Council of CAS proposed by", "election to RAI proposed by", "election to SAL proposed by", "proposed election to RHS signed by (personal)"),  "elections" ,
              if( str(?ppa_label) in ("Member of Committee for Archaeological Fieldwork", "President of Committee for Archaeological Fieldwork", "director of archaeological fieldwork", "director of expedition", "member of excavation during archaeological fieldwork", "member of expedition", "travelled overseas for"
),  "fieldwork" ,
                if( str(?ppa_label) in ("acknowledged for role", "applicant to", "employed as", "held position", "held position (free text)", "served on"),   "positions" ,
                  if( str(?ppa_label) in ("contributed to", "illustrated in", "work(s) published in"),  "publishing",
                    if( str(?ppa_label) in ("corresponded with", "was fellow of", "was member of"),  "societies",
                      if( str(?ppa_label) in ("benefactor to", "fundraiser for", "founded"),  "charitable" ,
      "none")))))))))
    as ?bucket).
       
 
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
}
}
ORDER BY ?regionLabel ?countyLabel ?districtLabel ?residentLabel
 
order by ?personLabel ?ppa_label
</sparql>
</sparql>


===People sorted by the number of places they lived, including the number of cites/towns/villages they lived in===
=== Suffrage-related activities ===


<sparql tryit="1">
<sparql tryit="1">
#title:initial query for suffrage activities
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 852: Line 886:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


SELECT ?person ?personLabel (count(?resided) as ?residence_count) (count(distinct ?resided) as ?residence_distinct) WHERE {
SELECT distinct ?person ?personLabel ?mainLabel ?sub_Label ?qualLabel ?locationLabel ?date
  ?person bnwdt:P3 bnwd:Q3 ;
# ?pq ?sub_ ?qual ?main
        wikibase:statements ?statements .
?s
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
 
  ?person bnp:P29/bnps:P29 ?resided.
WHERE { 
  SERVICE wikibase:label {
      bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb".
  }
} group by ?person ?personLabel ?statements order by desc(?residence_count)
# Credit to @Tagishsimon for helping me figure out the counting logic here
</sparql>


===Places at which women resided, sorted by how many residences all women had at a given village/town/city/London area===
    ?person bnwdt:P3 bnwd:Q3 . #select women
    FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team


<sparql tryit="1">
    ?person ?p ?s .
# Places at which women resided, sorted by how many residences all women had at a given village/town/city/London area
 
      ?s ?sub ?sub_ .
        ?main wikibase:claim ?p.
        ?main wikibase:statementProperty ?sub. 
 
  # sub_ i/o - some do have suffrage activity
  #  optional { ?sub_ bnwdt:P12 ?sub_io . ?sub_ bnwdt:P12 bnwd:Q1166 . }


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
  # union
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
  {
PREFIX bnwdv: <https://beyond-notability.wikibase.cloud/value/>
    # a qualifier (anywhere) has i/o suffrage activity
PREFIX bnwdt: <https://beyond-notability.wikibase.cloud/prop/direct/>
      ?s bnpq:P12 bnwd:Q1166.
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/>
# what about a main rather than qualifier having i/o suffrage activity? i don't think there are any atm but could be.
# union
#  { # this might find extra linked i/o suffrage but i'm not sure it works.
#    ?sub_ bnwdt:P12 bnwd:Q1166 .
#    }
 
  union
    {
    # does *not* have i/o suffrage activity in any qualifiers  ... slows things right down and doesn't seem to make any difference to results?
    #filter not exists { ?s bnpq:P12 bnwd:Q1166. }
 
    # ... but a qualifier *does* have i/o suffrage activity. i think!
      ?s ?pq ?qual .
        ?qual bnwdt:P12 bnwd:Q1166 .
 
      } # /union
 
  optional {
    # date qualifiers. [assumes no edtf in quals. ] all seem to be p.i.t.  
        ?s ?dpq ?date .  
          ?qual_date wikibase:qualifier ?dpq .
          ?qual_date wikibase:propertyType wikibase:Time.  
  }
 
  optional { ?s bnpq:P78 ?of. }  # outside the union seems much speedier
 
  optional { ?s bnpq:P2 ?location . }
 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }


SELECT ?residence ?residenceLabel (count(?residence) as ?residence_count) #count number of places at which women lived
WHERE { 
  ?person bnwdt:P3 bnwd:Q3 . # select women
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
  ?person bnwdt:P29 ?residence . # select residences
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }
}
}
GROUP BY ?residence ?residenceLabel
order by ?personLabel ?mainLabel
ORDER BY DESC(?residence_count)
</sparql>
</sparql>


===Districts in which women resided, sorted by how many residences all women had in that district (or equivalent sub-level for non-UK residences)===
==Place==
 
=== All the things in BN that can be mapped ===


<sparql tryit="1">
<sparql tryit="1">
# Districts in which women resided, sorted by how many residences all women had in that district (or equivalent sub-level for non-UK residences)
#title:map of BN locations using wikidata P625
 
#defaultView:Map
#this will take a little while to run...
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 901: Line 960:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


SELECT ?district ?districtLabel (count(?district) as ?district_count) #count number of districts in which women lived
SELECT distinct ?locationLabel ?location ?wikidata ?wd_geo
 
WHERE {   
WHERE {   
   ?person bnwdt:P3 bnwd:Q3 . # select women
    
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
      ?location bnwdt:P117 ?ws . # wikidata id       
  ?person bnwdt:P29 ?residence . # select residences
       
   ?residence bnwdt:P33 ?district . #select districts
        bind(iri(concat("http://www.wikidata.org/entity/", str(?ws))) as ?wikidata) .
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
        SERVICE <https://query.wikidata.org/sparql> {
            ?wikidata wdt:P625 ?wd_geo . # does the wikidata page have geocoords?
        } # /wikidata service 
    
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
}
}
GROUP BY ?district ?districtLabel
ORDER BY ?wikidata ?locationLabel
ORDER BY DESC(?district_count)
</sparql>
</sparql>


===Counties in which women resided, sorted by how many residences all women had in that county===
===People not in London linked as a graph by a NUTS region or country (excluding England) at which they were once resident in the UK===


<sparql tryit="1">
<sparql tryit="1">
# Counties in which women resided, sorted by how many residences all women had in that county
# People not in London linked as a graph by a NUTS region or country (excluding England) at which they were once resident in the UK


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 926: Line 989:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


SELECT ?county ?countyLabel (count(?county) as ?county_count) #count number of counties in which women lived
#defaultView:Graph
SELECT ?resident ?residentLabel ?region ?regionLabel
WHERE {   
WHERE {   
   ?person bnwdt:P3 bnwd:Q3 . # select women
   ?resident bnwdt:P29 ?residence .
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2035 .}
  ?person bnwdt:P29 ?residence . # select residences
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2036 .}
   ?residence bnwdt:P33 ?district . #select districts
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2037 .}
   ?district bnwdt:P33 ?county . #select counties
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2038 .}
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2039 .}
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2040 .}
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2041 .}
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2042 .}
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q39.}
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2534.}
   ?residence bnwdt:P33 ?district .
   ?district bnwdt:P33 ?county .
  ?county bnwdt:P33 ?region .
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
}
}
GROUP BY ?county ?countyLabel
ORDER BY DESC(?county_count)
</sparql>
</sparql>


====Counties of residence for women recorded in CAS Indexes of Archaeological Papers, sorted by how many residences all women had in that county====
===People whose residence was at one time in the east or south east of England, excluding London===


<sparql tryit="1">
<sparql tryit="1">
# Counties of residence for women recorded in CAS Indexes of Archaeological Papers, sorted by how many residences all women had in that county
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 952: Line 1,021:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


SELECT ?county ?countyLabel (count(?county) as ?county_count) #count number of counties in which women lived
SELECT ?resident ?residentLabel ?residenceLabel ?districtLabel ?countyLabel ?regionLabel
WHERE {   
WHERE {   
   ?person bnwdt:P3 bnwd:Q3 . # select women
   ?resident bnwdt:P29 ?residence .
   ?person bnwdt:P76 bnwd:Q419 . #select women recorded in CAS Indexes of Archaeological Papers
   ?residence bnwdt:P33 ?district .
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
   ?district bnwdt:P33 ?county .
   ?person bnwdt:P29 ?residence . # select residences
   ?county bnwdt:P33 ?region .
  ?residence bnwdt:P33 ?district . #select districts
    {?county bnwdt:P33 bnwd:Q67 .}
  ?district bnwdt:P33 ?county . #select counties
    UNION
    {?county bnwdt:P33 bnwd:Q85 .}
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
}
}
GROUP BY ?county ?countyLabel
ORDER BY ?regionLabel ?countyLabel ?districtLabel ?residenceLabel
ORDER BY DESC(?county_count)
</sparql>
</sparql>


====Counties of residence for women nominated as FSAs, sorted by how many residences all women had in that county====
===People whose residence was at one time in North East England or Yorkshire and the Humber===


<sparql tryit="1">
<sparql tryit="1">
# Counties of residence for women nominated as FSAs, sorted by how many residences all women had in that county
# People whose residence was at one time in North East England or Yorkshire and the Humber


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 979: Line 1,048:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


SELECT ?county ?countyLabel (count(?county) as ?county_count) #count number of counties in which women lived
SELECT ?resident ?residentLabel ?residenceLabel ?districtLabel ?countyLabel ?regionLabel
WHERE {   
WHERE {   
   ?person bnwdt:P3 bnwd:Q3 . # select women
   ?resident bnwdt:P29 ?residence .
   ?person bnwdt:P16 ?signatory . #select women who were nominated for election to FSA
   ?residence bnwdt:P33 ?district .
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
   ?district bnwdt:P33 ?county .
   ?person bnwdt:P29 ?residence . # select residences
   ?county bnwdt:P33 ?region .
  ?residence bnwdt:P33 ?district . #select districts
    {?county bnwdt:P33 bnwd:Q72 .}
  ?district bnwdt:P33 ?county . #select counties
    UNION
    {?county bnwdt:P33 bnwd:Q200 .}
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
}
}
GROUP BY ?county ?countyLabel
ORDER BY ?regionLabel ?countyLabel ?districtLabel ?residenceLabel
ORDER BY DESC(?county_count)
</sparql>
</sparql>


====Counties of residence for women nominated to RAI, sorted by how many residences all women had in that county====
===People not in London with the district, county, and region at which they were once resident (in the UK) listed===


<sparql tryit="1">
<sparql tryit="1">
# Counties of residence for women nominated to RAI, sorted by how many residences all women had in that county
# People not in London with the district, county, and region at which they were once resident (in the UK) listed


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 1,006: Line 1,075:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


SELECT ?county ?countyLabel (count(?county) as ?county_count) #count number of counties in which women lived
SELECT ?resident ?residentLabel ?district ?districtLabel ?county ?countyLabel ?region ?regionLabel
WHERE {   
WHERE {   
   ?person bnwdt:P3 bnwd:Q3 . # select women
   ?resident bnwdt:P29 ?residence .
  ?person bnwdt:P7 ?signatory . #select women who were nominated for election to RAI
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2035 .}
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2036 .}
  ?person bnwdt:P29 ?residence . # select residences
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2037 .}
   ?residence bnwdt:P33 ?district . #select districts
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2038 .}
   ?district bnwdt:P33 ?county . #select counties
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2039 .}
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2040 .}
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2041 .}
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2042 .}
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q39.}
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2534.}
   ?residence bnwdt:P33 ?district .
   ?district bnwdt:P33 ?county .
  ?county bnwdt:P33 ?region .
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
}
}
GROUP BY ?county ?countyLabel
ORDER BY ?regionLabel ?countyLabel ?districtLabel ?residentLabel
ORDER BY DESC(?county_count)
</sparql>
</sparql>


====Counties of residence for women who spoke at RAI meetings, sorted by how many residences all women had in that county====
===People sorted by the number of places they lived, including the number of cites/towns/villages they lived in===


<sparql tryit="1">
<sparql tryit="1">
# Counties of residence for women who spoke at RAI meetings, sorted by how many residences all women had in that county
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 1,033: Line 1,107:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


SELECT ?county ?countyLabel (count(?county) as ?county_count) #count number of counties in which women lived
SELECT ?person ?personLabel (count(?resided) as ?residence_count) (count(distinct ?resided) as ?residence_distinct) WHERE {
WHERE {
  ?person bnwdt:P3 bnwd:Q3 ;
  ?person bnwdt:P3 bnwd:Q3 . # select women
        wikibase:statements ?statements .
  ?person bnwdt:P23 bnwd:Q29 . #select women who spoke at RAI Meeting
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
   ?person bnwdt:P29 ?residence . # select residences
   ?person bnp:P29/bnps:P29 ?resided.
  ?residence bnwdt:P33 ?district . #select districts
   SERVICE wikibase:label {
  ?district bnwdt:P33 ?county . #select counties
      bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb".
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
  }
}
} group by ?person ?personLabel ?statements order by desc(?residence_count)
GROUP BY ?county ?countyLabel
# Credit to @Tagishsimon for helping me figure out the counting logic here
ORDER BY DESC(?county_count)
</sparql>
</sparql>


====Counties of residence for women who exhibited at RAI meetings, sorted by how many residences all women had in that county====
===Places at which women resided, sorted by how many residences all women had at a given village/town/city/London area===


<sparql tryit="1">
<sparql tryit="1">
# Counties of residence for women who exhibited at RAI meetings, sorted by how many residences all women had in that county
# Places at which women resided, sorted by how many residences all women had at a given village/town/city/London area


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 1,060: Line 1,132:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


SELECT ?county ?countyLabel (count(?county) as ?county_count) #count number of counties in which women lived  
SELECT ?residence ?residenceLabel (count(?residence) as ?residence_count) #count number of places at which women lived  
WHERE {   
WHERE {   
   ?person bnwdt:P3 bnwd:Q3 . # select women
   ?person bnwdt:P3 bnwd:Q3 . # select women
  ?person bnwdt:P13 bnwd:Q29 . #select women who exhibited at RAI Meeting
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
   ?person bnwdt:P29 ?residence . # select residences
   ?person bnwdt:P29 ?residence . # select residences
  ?residence bnwdt:P33 ?district . #select districts
  ?district bnwdt:P33 ?county . #select counties
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
}
}
GROUP BY ?county ?countyLabel
GROUP BY ?residence ?residenceLabel
ORDER BY DESC(?county_count)
ORDER BY DESC(?residence_count)
</sparql>
</sparql>


====Counties of residence for women recorded in CAS Indexes of Archaeological Papers, on a map====
===Districts in which women resided, sorted by how many residences all women had in that district (or equivalent sub-level for non-UK residences)===


<sparql tryit="1">
<sparql tryit="1">
# Districts in which women resided, sorted by how many residences all women had in that district (or equivalent sub-level for non-UK residences)


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 1,086: Line 1,156:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


#defaultView:Map{"hide":["?geo", "?wikidata"]}
SELECT ?district ?districtLabel (count(?district) as ?district_count) #count number of districts in which women lived
#title:Counties of residence for women recorded in CAS Indexes of Archaeological Papers
 
SELECT distinct ?person ?personLabel ?county ?countyLabel ?wikidata ?geo 
WHERE {   
WHERE {   
   ?person bnwdt:P3 bnwd:Q3 . # select women
   ?person bnwdt:P3 bnwd:Q3 . # select women
  ?person bnwdt:P76 bnwd:Q419 . #select women recorded in CAS Indexes of Archaeological Papers
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
   ?person bnwdt:P29 ?residence . # select residences
   ?person bnwdt:P29 ?residence . # select residences
   ?residence bnwdt:P33 ?district . #select districts
   ?residence bnwdt:P33 ?district . #select districts
  ?district bnwdt:P33 ?county . #select counties
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
      optional { ?county bnwdt:P153 ?geo2 .  } # for geocoords added to BN
}
 
GROUP BY ?district ?districtLabel
      optional {   
ORDER BY DESC(?district_count)
      ?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 .
                  BIND(geof:longitude(?geo1) AS ?long)
                  BIND(geof:latitude(?geo1)  AS ?lat)
                } # geocoords if available     
      } # /wikidata service 
      } #/wikidata optional
 
    BIND(COALESCE(?geo1, ?geo2) AS ?geo).  # if geo1 available use that, then try geo2
 
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
}
</sparql>
</sparql>


====Counties of residence for women nominated as FSAs, on a map====
===Counties in which women resided, sorted by how many residences all women had in that county===


<sparql tryit="1">
<sparql tryit="1">
# Counties in which women resided, sorted by how many residences all women had in that county


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 1,132: Line 1,181:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


#defaultView:Map{"hide":["?geo", "?wikidata"]}
SELECT ?county ?countyLabel (count(?county) as ?county_count) #count number of counties in which women lived
#title:Counties of residence for women nominated as FSAs
 
SELECT distinct ?person ?personLabel ?county ?countyLabel ?wikidata ?geo 
WHERE {   
WHERE {   
   ?person bnwdt:P3 bnwd:Q3 . # select women
   ?person bnwdt:P3 bnwd:Q3 . # select women
  ?person bnwdt:P16 ?signatory . #select women who were nominated for election to FSA
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
   ?person bnwdt:P29 ?residence . # select residences
   ?person bnwdt:P29 ?residence . # select residences
   ?residence bnwdt:P33 ?district . #select districts
   ?residence bnwdt:P33 ?district . #select districts
   ?district bnwdt:P33 ?county . #select counties
   ?district bnwdt:P33 ?county . #select counties
      optional { ?county bnwdt:P153 ?geo2 . } # for geocoords added to BN
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
 
}
      optional {   
GROUP BY ?county ?countyLabel
      ?county bnp:P117 ?ws .  # wikidata id P117       
ORDER BY DESC(?county_count)
        ?ws bnpq:P14 ?wikidata_url .
</sparql>
        BIND(IRI(REPLACE(?wikidata_url, "https://www.wikidata.org/wiki/", "http://www.wikidata.org/entity/")) as ?wikidata )
 
 
====Counties of residence for women recorded in CAS Indexes of Archaeological Papers, sorted by how many residences all women had in that county====
      SERVICE <https://query.wikidata.org/sparql> {
 
   
<sparql tryit="1">
        optional { ?wikidata wdt:P625 ?geo1 . } # geocoords if available     
# Counties of residence for women recorded in CAS Indexes of Archaeological Papers, sorted by how many residences all women had in that county
      } # /wikidata service 
 
      } #/wikidata optional
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/>


    BIND(COALESCE(?geo1, ?geo2) AS ?geo). # if geo1 available use that, then try geo2
SELECT ?county ?countyLabel (count(?county) as ?county_count) #count number of counties in which women lived
    
WHERE { 
  ?person bnwdt:P3 bnwd:Q3 . # select women
  ?person bnwdt:P76 bnwd:Q419 . #select women recorded in CAS Indexes of Archaeological Papers
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
  ?person bnwdt:P29 ?residence . # select residences
  ?residence bnwdt:P33 ?district . #select districts
   ?district bnwdt:P33 ?county . #select counties
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
}
}
GROUP BY ?county ?countyLabel
ORDER BY DESC(?county_count)
</sparql>
</sparql>


====Counties of residence for women nominated as FSAs, sorted by how many residences all women had in that county====


==== Counties of residence for women nominated to RAI, on a map ====
<sparql tryit="1">
# Counties of residence for women nominated as FSAs, sorted by how many residences all women had in that county


<sparql tryit="1">
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 1,175: Line 1,234:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


#defaultView:Map{"hide":["?geo", "?wikidata"]}
SELECT ?county ?countyLabel (count(?county) as ?county_count) #count number of counties in which women lived
#title:Counties of residence for women nominated to RAI
 
SELECT distinct ?person ?personLabel ?county ?countyLabel ?wikidata ?geo 
WHERE {   
WHERE {   
   ?person bnwdt:P3 bnwd:Q3 . # select women
   ?person bnwdt:P3 bnwd:Q3 . # select women
  ?person bnwdt:P16 ?signatory . #select women who were nominated for election to FSA
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
  ?person bnwdt:P7 ?signatory . #select women who were nominated for election to RAI
   ?person bnwdt:P29 ?residence . # select residences
   ?person bnwdt:P29 ?residence . # select residences
   ?residence bnwdt:P33 ?district . #select districts
   ?residence bnwdt:P33 ?district . #select districts
   ?district bnwdt:P33 ?county . #select counties
   ?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 that, then try geo2
 
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
}
}
GROUP BY ?county ?countyLabel
ORDER BY DESC(?county_count)
</sparql>
</sparql>


==== Counties of residence for women who spoke at RAI meetings, on a map====
====Counties of residence for women nominated to RAI, sorted by how many residences all women had in that county====


<sparql tryit="1">
<sparql tryit="1">
# Counties of residence for women nominated to RAI, sorted by how many residences all women had in that county
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 1,217: Line 1,261:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


#defaultView:Map{"hide":["?geo", "?wikidata"]}
SELECT ?county ?countyLabel (count(?county) as ?county_count) #count number of counties in which women lived
#title:Counties of residence for women who spoke at RAI meetings
 
SELECT distinct ?person ?personLabel ?county ?countyLabel ?wikidata ?geo 
WHERE {   
WHERE {   
   ?person bnwdt:P3 bnwd:Q3 . # select women
   ?person bnwdt:P3 bnwd:Q3 . # select women
  ?person bnwdt:P7 ?signatory . #select women who were nominated for election to RAI
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
  ?person bnwdt:P23 bnwd:Q29 . #select women who spoke at RAI Meeting
   ?person bnwdt:P29 ?residence . # select residences
   ?person bnwdt:P29 ?residence . # select residences
   ?residence bnwdt:P33 ?district . #select districts
   ?residence bnwdt:P33 ?district . #select districts
   ?district bnwdt:P33 ?county . #select counties
   ?district bnwdt:P33 ?county . #select counties
      optional { ?county bnwdt:P153 ?geo2 . } # for geocoords added to BN
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
 
}
      optional {   
GROUP BY ?county ?countyLabel
      ?county bnp:P117 ?ws .  # wikidata id P117       
ORDER BY DESC(?county_count)
        ?ws bnpq:P14 ?wikidata_url .
</sparql>
        BIND(IRI(REPLACE(?wikidata_url, "https://www.wikidata.org/wiki/", "http://www.wikidata.org/entity/")) as ?wikidata )
 
 
====Counties of residence for women who spoke at RAI meetings, sorted by how many residences all women had in that county====
      SERVICE <https://query.wikidata.org/sparql> {
 
   
<sparql tryit="1">
        optional { ?wikidata wdt:P625 ?geo1 . } # geocoords if available     
# Counties of residence for women who spoke at RAI meetings, sorted by how many residences all women had in that county
      } # /wikidata service 
 
      } #/wikidata optional
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/>


    BIND(COALESCE(?geo1, ?geo2) AS ?geo). # if geo1 available use that, then try geo2
SELECT ?county ?countyLabel (count(?county) as ?county_count) #count number of counties in which women lived
    
WHERE { 
  ?person bnwdt:P3 bnwd:Q3 . # select women
  ?person bnwdt:P23 bnwd:Q29 . #select women who spoke at RAI Meeting
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
  ?person bnwdt:P29 ?residence . # select residences
  ?residence bnwdt:P33 ?district . #select districts
   ?district bnwdt:P33 ?county . #select counties
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
}
}
 
GROUP BY ?county ?countyLabel
ORDER BY DESC(?county_count)
</sparql>
</sparql>


==== Counties of residence for women who exhibited at RAI meetings, on a map ====
====Counties of residence for women who exhibited at RAI meetings, sorted by how many residences all women had in that county====


<sparql tryit="1">
<sparql tryit="1">
#title:Counties of residence for women who exhibited at RAI meetings
# Counties of residence for women who exhibited at RAI meetings, sorted by how many residences all women had in that county


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 1,262: Line 1,315:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


#defaultView:Map{"hide":["?geo", "?wikidata"]}
SELECT ?county ?countyLabel (count(?county) as ?county_count) #count number of counties in which women lived
 
SELECT distinct ?person ?personLabel ?county ?countyLabel ?wikidata ?geo 
WHERE {   
WHERE {   
   ?person bnwdt:P3 bnwd:Q3 . # select women
   ?person bnwdt:P3 bnwd:Q3 . # select women
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
   ?person bnwdt:P13 bnwd:Q29 . #select women who exhibited at RAI Meeting
   ?person bnwdt:P13 bnwd:Q29 . #select women who exhibited at RAI Meeting
 
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
   ?person bnwdt:P29 ?residence . # select residences
   ?person bnwdt:P29 ?residence . # select residences
   ?residence bnwdt:P33 ?district . #select districts
   ?residence bnwdt:P33 ?district . #select districts
   ?district bnwdt:P33 ?county . #select counties
   ?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 that, then try geo2
 
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
}
}
GROUP BY ?county ?countyLabel
ORDER BY DESC(?county_count)
</sparql>
</sparql>


==== Counties of residence for women in any of the above five categories, mapped====
====Counties of residence for women recorded in CAS Indexes of Archaeological Papers, on a map====


<sparql tryit="1">
<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 all in the layers menu (diamond shaped icon, top right corner of the map) and view one layer at a time. Unfortunately this is the only way to compare them at the moment.
## (But I'll look into how I might be able to improve on this)


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 1,309: Line 1,341:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
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"]}
#defaultView:Map{"hide":["?geo", "?wikidata"]}
#title:Counties of residence for women recorded in CAS Indexes of Archaeological Papers


SELECT distinct ?county ?countyLabel ?wikidata ?geo  ?layer  #?person ?personLabel
SELECT distinct ?person ?personLabel ?residence ?residenceLabel ?county ?countyLabel ?wikidata ?geo   
WHERE {   
WHERE {   
   ?person bnwdt:P3 bnwd:Q3 . # select women
   ?person bnwdt:P3 bnwd:Q3 . # select women
  ?person bnwdt:P76 bnwd:Q419 . #select women recorded in CAS Indexes of Archaeological Papers
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
  ?person bnwdt:P29 ?residence . # select residences
   {
 
     #women who were nominated for election to FSA | RAI
  ?residence bnwdt:P33 ?district . #select p33 of residence
     ?person ( bnp:P16 | bnp:P7 ) ?stmt .  
  ?district bnwdt:P33 ?next . #select p33 of district, mostly counties but a few region/outside uk
  }
 
   union
   optional {
  {
     # is ?next a uk region?
     # women with publications recorded in indexes of archaeological papers
     ?next bnwdt:P12 bnwd:Q4207 .
     ?person bnp:P76 ?stmt .  
    BIND(BOUND(?next) AS ?region).
        ?stmt bnps:P76 bnwd:Q419 .
    }
  }
   optional {  
   union
     # is ?next in the UK?
   {
     ?next bnwdt:P33* bnwd:Q1741 .
    # women who spoke|exhibited at RAI Meeting
    BIND(BOUND(?next) AS ?uk).
    ?person (bnp:P23 | bnp:P13) ?stmt .  
    }
       ?stmt (bnps:P23 | bnps:P13) bnwd:Q29 .  
 
  }
   # if next=q4207 uk region, then use ?district for county, ifelse in uk use ?next, else not in uk use ?district.
   bind(
      if( bound(?region), ?district, # region first (because also uk)
        if( bound(?uk), ?next, # then rest of uk  
       ?district)) # then anything not in uk.
    as ?county).
    
    
  # get the p labels for layers
    optional { ?county bnwdt:P153 ?geo2 .  } # for geocoords added to BN
  ?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 {     
    optional {     
       ?county bnp:P117 ?ws .  # wikidata id P117         
       ?county bnp:P117 ?ws .  # wikidata id P117         
         ?ws bnpq:P14 ?wikidata_url .
         ?ws bnpq:P14 ?wikidata_url .
Line 1,351: Line 1,380:
    
    
       SERVICE <https://query.wikidata.org/sparql> {
       SERVICE <https://query.wikidata.org/sparql> {
         optional { ?wikidata wdt:P625 ?geo1 . } # geocoords if available       
   
         optional {
          ?wikidata wdt:P625 ?geo1 .  
                  BIND(geof:longitude(?geo1) AS ?long)
                  BIND(geof:latitude(?geo1)  AS ?lat)
                } # geocoords if available       
       } # /wikidata service   
       } # /wikidata service   
       } #/wikidata optional
       } #/wikidata optional


     BIND(COALESCE(?geo1, ?geo2) AS ?geo).  # if geo1 available use it, if not try geo2
     BIND(COALESCE(?geo1, ?geo2) AS ?geo).  # if geo1 available use that, then try geo2
 
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
}
}
order by ?layer
</sparql>
</sparql>


===Regions in which women resided, sorted by how many residences all women had in that region===
====Counties of residence for women nominated as FSAs, on a map====


<sparql tryit="1">
<sparql tryit="1">
# Regions in which women resided, sorted by how many residences all women had in that region


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 1,374: Line 1,407:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


SELECT ?region ?regionLabel (count(?region) as ?region_count) #count number of regions in which women lived
#defaultView:Map{"hide":["?geo", "?wikidata"]}
#title:Counties of residence for women nominated as FSAs
 
SELECT distinct ?person ?personLabel ?county ?countyLabel ?wikidata ?geo 
WHERE {   
WHERE {   
   ?person bnwdt:P3 bnwd:Q3 . # select women
   ?person bnwdt:P3 bnwd:Q3 . # select women
  ?person bnwdt:P16 ?signatory . #select women who were nominated for election to FSA
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
   ?person bnwdt:P29 ?residence . # select residences
   ?person bnwdt:P29 ?residence . # select residences
   ?residence bnwdt:P33 ?district . #select districts
   ?residence bnwdt:P33 ?district . #select districts
   ?district bnwdt:P33 ?county . #select counties
   ?district bnwdt:P33 ?county . #select counties
  ?county bnwdt:P33 ?region . #select region
      optional { ?county bnwdt:P153 ?geo2 . } # for geocoords added to BN
   FILTER NOT EXISTS {?region bnwdt:P117 "Q145" .} #filter out UK (where UK is sub-region of NI)
    
      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 that, then try geo2
 
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
}
}
GROUP BY ?region ?regionLabel
ORDER BY DESC(?region_count)
</sparql>
</sparql>




=== Women living in London during the 1890s ===
==== Counties of residence for women nominated to RAI, on a map ====


<sparql tryit="1">
<sparql tryit="1">
#title:Women living in 1890s London
# Query for women living in (greater) london in the 1890s
# 1 row per person per address per date, could be reduced to 1 row per person if preferred.
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 1,404: Line 1,450:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


SELECT distinct ?personLabel ?date_label ?date ?person ?address ?address_item ?londonLabel ?geo ?long ?lat
#defaultView:Map{"hide":["?geo", "?wikidata"]}
#title:Counties of residence for women nominated to RAI


SELECT distinct ?person ?personLabel ?county ?countyLabel ?wikidata ?geo 
WHERE {   
WHERE {   
   ?person bnwdt:P3 bnwd:Q3 . # women
   ?person bnwdt:P3 bnwd:Q3 . # select women
   ?person bnp:P29 ?s .   # resided at
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
    ?s bnps:P29 ?london .  
  ?person bnwdt:P7 ?signatory . #select women who were nominated for election to RAI
      ?london bnwdt:P33+ bnwd:Q322 .  # in Q322 greater london.


    # optional street address (text)
  ?person bnwdt:P29 ?residence . # select residences
   optional {
   ?residence bnwdt:P33 ?district . #select districts
    ?s bnpq:P31 ?address .
   ?district bnwdt:P33 ?county . #select counties
    }
      optional { ?county bnwdt:P153 ?geo2 . } # for geocoords added to BN
   # optional street address (item)
    
  optional {
      optional {     
    ?s bnpq:P100 ?address_item .
      ?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 )
   # dates. About 30? not dated.
 
    #optional {
      SERVICE <https://query.wikidata.org/sparql> {
     ?s ?pq ?date .
      
    # ?date wikibase:timeValue ?date_value. # if you don't want date label this should work instead
        optional { ?wikidata wdt:P625 ?geo1 . } # geocoords if available     
     
      } # /wikidata service 
      ?qual_prop wikibase:qualifier ?pq;
      } #/wikidata optional
              wikibase:propertyType wikibase:Time ; # nb excludes edtf dates
              rdfs:label ?date_label . filter(lang(?date_label)="en-gb") . # what kind of date is it.
     # } # /dates
 
    # filter 1890-1899 
  FILTER("1890-01-01"^^xsd:dateTime <= ?date && ?date < "1899-12-31"^^xsd:dateTime).


    BIND(COALESCE(?geo1, ?geo2) AS ?geo).  # if geo1 available use that, then try geo2
    
    
   # address geocoordinates
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }
  optional {
}
    ?s ?pqq ?geo .
</sparql>
        ?qual_geo wikibase:qualifier ?pqq;
                  wikibase:propertyType wikibase:GlobeCoordinate.
        BIND(geof:longitude(?geo) AS ?long)
        BIND(geof:latitude(?geo)  AS ?lat)
            }


  # todo booth codes
==== Counties of residence for women who spoke at RAI meetings, on a map====
 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }
}
ORDER BY ?person ?date
 
</sparql>
 
=== Where did women who published in Folklore/Folk-lore Record live? ===


<sparql tryit="1">
<sparql tryit="1">
# Map of all places of residence for women who had publications in Folklore/Folk-lore Record
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 1,464: Line 1,492:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


#defaultView:Map{"hide":["?geo", "?count"]}
#defaultView:Map{"hide":["?geo", "?wikidata"]}
#title:Counties of residence for women who spoke at RAI meetings


SELECT ?person ?personLabel ?residenceLabel ?residence ?geo (count( ?person) as ?count) #(concat(str(?count), " publication") as ?count_lbl)
SELECT distinct ?person ?personLabel ?county ?countyLabel ?wikidata ?geo   
WHERE {   
WHERE {   
   ?person bnwdt:P3 bnwd:Q3 . # select women
   ?person bnwdt:P3 bnwd:Q3 . # select women
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
  ?person bnwdt:P76 bnwd:Q419 . # people with publications listed in indexes of archaeological papers. [262]
  ?person bnwdt:P23 bnwd:Q29 . #select women who spoke at RAI Meeting
   ?person bnp:P76 ?s .   
 
  ?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
    
    
  ## works published in P101. folklore / folk-lore record q487 q490
      optional {   
      ?s bnpq:P101 ?in .  
      ?county bnp:P117 ?ws . # wikidata id P117       
      {?s bnpq:P101 bnwd:Q487 } union { ?s bnpq:P101 bnwd:Q490 . }
        ?ws bnpq:P14 ?wikidata_url .
      # why does above pick up these two journals as well?
        BIND(IRI(REPLACE(?wikidata_url, "https://www.wikidata.org/wiki/", "http://www.wikidata.org/entity/")) as ?wikidata )
      FILTER ( ?in not in ( bnwd:Q665 , bnwd:Q636 ) ) .
    
    
  ?person bnwdt:P29  ?residence .
       SERVICE <https://query.wikidata.org/sparql> {
       optional { ?residence bnwdt:P153 ?geo2 .  } # for geocoords added to BN
 
  optional {
   
      ?residence 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
        optional { ?wikidata wdt:P625 ?geo1 . } # geocoords if available    
        
       } # /wikidata service   
      } # /wikidata service   
      } #/wikidata optional
    } #/wikidata optional


     BIND(COALESCE(?geo1, ?geo2) AS ?geo).  # if geo1 available use that, then try geo2
     BIND(COALESCE(?geo1, ?geo2) AS ?geo).  # if geo1 available use that, then try geo2
Line 1,500: Line 1,521:
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
}
}
group by ?person ?personLabel ?residenceLabel ?residence ?geo
 
ORDER BY ?geo
</sparql>
</sparql>


==== Counties of residence for women who exhibited at RAI meetings, on a map ====


=== BN people and other things located near Devizes ===
<sparql tryit="1">
#title:Counties of residence for women who exhibited at RAI meetings 


<sparql tryit="1">
## testing use of geof:distance
#title:BN items located within 30 km of Devizes, Wiltshire
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 1,517: Line 1,536:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
#defaultView:Map
 
SELECT distinct ?item ?itemLabel ?locationLabel ?location ?wikidata ?wd_geo ?wd_long ?wd_lat  
#defaultView:Map{"hide":["?geo", "?wikidata"]}
 
SELECT distinct ?person ?personLabel ?county ?countyLabel ?wikidata ?geo  
WHERE {   
WHERE {   
  ?person bnwdt:P3 bnwd:Q3 . # select women
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
  ?person bnwdt:P13 bnwd:Q29 . #select women who exhibited at RAI Meeting
  ?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
    
    
  {?item bnwdt:P29  ?location . } # resided at location
      optional {    
  #union
      ?county bnp:P117 ?ws . # wikidata id P117       
  #{?location bnwdt:P12 bnwd:Q2147 .} # OR location has instance of locality. is there a way to get this in the same structure?
        ?ws bnpq:P14 ?wikidata_url .
  union
        BIND(IRI(REPLACE(?wikidata_url, "https://www.wikidata.org/wiki/", "http://www.wikidata.org/entity/")) as ?wikidata )
  {?item bnwdt:P2  ?location . } # item has property P2 location
  # any other possibles ?  
    
    
  ## limit to places in admin territory p33 england q617. (keep numbers down to avoid wikidata timing out) 
      SERVICE <https://query.wikidata.org/sparql> {
  ?location bnwdt:P33+ bnwd:Q617.
   
   ?location bnwdt:P117 ?ws .  # wikidata id 
        optional { ?wikidata wdt:P625 ?geo1 . } # geocoords if available     
      } # /wikidata service    
      } #/wikidata optional
 
    BIND(COALESCE(?geo1, ?geo2) AS ?geo).  # if geo1 available use that, then try geo2
    
    
    bind(iri(concat("http://www.wikidata.org/entity/", str(?ws))) as ?wikidata) .
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
        SERVICE <https://query.wikidata.org/sparql> {
            wd:Q1026699 wdt:P625 ?start. # devizes coordinates
            ?wikidata wdt:P625 ?wd_geo .
                      #BIND(geof:longitude(?wd_geo) AS ?wd_long) .
                      #BIND(geof:latitude(?wd_geo)  AS ?wd_lat) .
              FILTER(geof:distance(?wd_geo, ?start) < 30). # < 30 km from ?start. 
        } # /wikidata service   
 
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
}
}
ORDER BY ?locationLabel
</sparql>
</sparql>


=== BN items near a chosen location ===
==== Counties of residence for women in any of the above five categories, mapped====


<sparql tryit="1">
<sparql tryit="1">


#title:a map of BN items near a chosen starting point in the UK
## IMPORTANT: LIMITATIONS OF THE MAP
#defaultView: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 all in the layers menu (diamond shaped icon, top right corner of the map) and view one layer at a time. Unfortunately this is the only way to compare them at the moment.
## (But I'll look into how I might be able to improve on this)


## create a thingy for the start point change the Qxxx ID in the following PREFIX var_start line to chosen location. 
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
## **MUST** a) be in UK and b) have a wikidata item that has coordinate location!
 
PREFIX var_start: <https://beyond-notability.wikibase.cloud/entity/Q5>  # (Q5=sheffield)
 
## to change the distance you can edit the filter(?distance < xx) line near the end of the query.
 
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwdv: <https://beyond-notability.wikibase.cloud/value/>
PREFIX bnwdv: <https://beyond-notability.wikibase.cloud/value/>
Line 1,568: Line 1,584:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


## TODO is there a way to get the location itemLabel and use it in the map title...
#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  ?item ?itemLabel ?locationLabel ?location ?wikidata ?wd_geo ?distance #?wd_long ?wd_lat 
SELECT distinct  ?county ?countyLabel ?wikidata ?geo ?layer  #?person ?personLabel
WHERE {   
WHERE {   
   var_start: bnwdt:P117 ?start_wd_id .
   ?person bnwdt:P3 bnwd:Q3 . # select women
   bind(iri(concat("http://www.wikidata.org/entity/", str(?start_wd_id))) as ?start_wd) .  
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
    
   {?item bnwdt:P29  ?location . } # resided at location
   {
    #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
   union
   {?item bnwdt:P2 ?location . } # item has property P2 location
   {
   # other possibles ?
    # women who spoke|exhibited at RAI Meeting
    ?person (bnp:P23 | bnp:P13) ?stmt .  
      ?stmt (bnps:P23 | bnps:P13) bnwd:Q29 .  
   }
    
    
   ## limit to places in admin territory p33 uk q1741 seems ok. put it back to england q617 if there are any timeout problems. (keep numbers down to avoid wikidata timing out)  
   # get the p labels for layers
   ?location bnwdt:P33+ bnwd:Q1741.
  ?person ?p ?stmt .
   ?location bnwdt:P117 ?ws . # wikidata id    
  ?claim wikibase:claim ?p;
    bind(iri(concat("http://www.wikidata.org/entity/", str(?ws))) as ?wikidata) .
        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
    
    
         SERVICE <https://query.wikidata.org/sparql> {
      optional {   
            ?start_wd wdt:P625 ?start. # start_wd coordinates.
      ?county bnp:P117 ?ws .  # wikidata id P117       
            ?wikidata wdt:P625 ?wd_geo .  
         ?ws bnpq:P14 ?wikidata_url .
        } # /wikidata service 
        BIND(IRI(REPLACE(?wikidata_url, "https://www.wikidata.org/wiki/", "http://www.wikidata.org/entity/")) as ?wikidata )
    
    
    #BIND(geof:longitude(?wd_geo) AS ?wd_long) .
      SERVICE <https://query.wikidata.org/sparql> {
    #BIND(geof:latitude(?wd_geo)  AS ?wd_lat) . 
        optional { ?wikidata wdt:P625 ?geo1 . } # geocoords if available     
    bind(geof:distance(?wd_geo, ?start) as ?distance).
      } # /wikidata service 
      } #/wikidata optional


    FILTER(?distance < 40). # < xx km from start_wd
    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". }  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
}
}
ORDER BY ?locationLabel
order by ?layer
 
</sparql>
</sparql>


=== Locations of BN excavations ===
===Regions in which women resided, sorted by how many residences all women had in that region===


<sparql tryit="1">
<sparql tryit="1">
#title:Locations of BN excavations
# Regions in which women resided, sorted by how many residences all women had in that region
 
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 1,613: Line 1,648:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
#defaultView:Map
 
SELECT distinct ?item ?itemLabel ?locationLabel ?location ?adminterr ?wikidata ?wd_geo
SELECT ?region ?regionLabel (count(?region) as ?region_count) #count number of regions in which women lived
WHERE {   
WHERE {   
   ?item bnwdt:P12 bnwd:Q38 .
   ?person bnwdt:P3 bnwd:Q3 . # select women
   ?item bnwdt:P2  ?location . # item has property P2 location
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
    
   ?person bnwdt:P29 ?residence . # select residences
  optional { ?location bnwdt:P33 ?adminterr .  
  ?residence bnwdt:P33 ?district . #select districts
              ?adminterr bnwdt:P117 ?wsa . # and has wikidata id 
   ?district bnwdt:P33 ?county . #select counties
    
  ?county bnwdt:P33 ?region . #select region
            bind(iri(concat("http://www.wikidata.org/entity/", str(?wsa))) as ?wikidataa) .
   FILTER NOT EXISTS {?region bnwdt:P117 "Q145" .} #filter out UK (where UK is sub-region of NI)
              SERVICE <https://query.wikidata.org/sparql> {
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
              ?wikidataa wdt:P625 ?wd_geo2 .  
            } # /wikidata service   
          }
 
   optional {
  ?location bnwdt:P117 ?ws .  # and has wikidata id 
 
    bind(iri(concat("http://www.wikidata.org/entity/", str(?ws))) as ?wikidata) .
        SERVICE <https://query.wikidata.org/sparql> {
            ?wikidata wdt:P625 ?wd_geo1 . 
        } # /wikidata service   
  }
 
  BIND(COALESCE(?wd_geo1, ?wd_geo2) AS ?wd_geo).  # if geo1 available use that, then try geo2
 
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
}
}
ORDER BY ?locationLabel
GROUP BY ?region ?regionLabel
ORDER BY DESC(?region_count)
</sparql>
</sparql>


=== Locations of archaeological sites ===
 
=== Women living in London during the 1890s ===


<sparql tryit="1">
<sparql tryit="1">
#title:Locations of BN archaeological sites
#title:Women living in 1890s London
# Query for women living in (greater) london in the 1890s
# 1 row per person per address per date, could be reduced to 1 row per person if preferred.
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 1,655: Line 1,678:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
#defaultView:Map
 
SELECT distinct ?item ?itemLabel ?locationLabel ?location ?adminterrLabel ?adminterr ?wikidata ?wd_geo
SELECT distinct ?personLabel ?date_label ?date ?person ?address ?address_item ?londonLabel ?geo ?long ?lat
 
WHERE {   
WHERE {   
   ?item bnwdt:P12 bnwd:Q86 .
   ?person bnwdt:P3 bnwd:Q3 . # women
   ?item bnwdt:P2  ?location . # item has property P2 location
   ?person bnp:P29 ?s .   # resided at
 
    ?s bnps:P29 ?london .  
  optional { ?location bnwdt:P33 ?adminterr .  
      ?london bnwdt:P33+ bnwd:Q322 .  # in Q322 greater london.
              ?adminterr bnwdt:P117 ?wsa .  # and has wikidata id 
 
 
    # optional street address (text)
            bind(iri(concat("http://www.wikidata.org/entity/", str(?wsa))) as ?wikidataa) .
  optional {
              SERVICE <https://query.wikidata.org/sparql> {
    ?s bnpq:P31 ?address .
              ?wikidataa wdt:P625 ?wd_geo2 .  
     }
            } # /wikidata service      
   # optional street address (item)
          }
    
   optional {
   optional {
  ?location bnwdt:P117 ?ws . # and has wikidata id 
    ?s bnpq:P100 ?address_item .
 
    }   
     bind(iri(concat("http://www.wikidata.org/entity/", str(?ws))) as ?wikidata) .
 
        SERVICE <https://query.wikidata.org/sparql> {
  # dates. About 30? not dated.
            ?wikidata wdt:P625 ?wd_geo1 .  
    #optional {
        } # /wikidata service   
     ?s ?pq ?date .  
  }
    # ?date wikibase:timeValue ?date_value. # if you don't want date label this should work instead
    
     
   BIND(COALESCE(?wd_geo1, ?wd_geo2) AS ?wd_geo). # if geo1 available use that, then try geo2
      ?qual_prop wikibase:qualifier ?pq;
              wikibase:propertyType wikibase:Time ; # nb excludes edtf dates
              rdfs:label ?date_label . filter(lang(?date_label)="en-gb") . # what kind of date is it.
    #  } # /dates
 
    # filter 1890-1899    
   FILTER("1890-01-01"^^xsd:dateTime <= ?date && ?date < "1899-12-31"^^xsd:dateTime).
 
    
    
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
  # address geocoordinates
  optional {
    ?s ?pqq ?geo .
        ?qual_geo wikibase:qualifier ?pqq;
                  wikibase:propertyType wikibase:GlobeCoordinate.
        BIND(geof:longitude(?geo) AS ?long)
        BIND(geof:latitude(?geo)  AS ?lat)
            }
 
  # todo booth codes
 
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
}
}
ORDER BY ?locationLabel
ORDER BY ?person ?date
 
</sparql>
</sparql>


=== Locations of historic houses ===
==== Map of Women living in 1890s London ====


<sparql tryit="1">
<sparql tryit="1">
#title:locations of BN historic houses
#title:Women living in 1890s London
# Query for women living in (greater) london in the 1890s
# 1 row per person per address per date, could be reduced to 1 row per person if preferred.
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 1,697: Line 1,740:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
#defaultView:Map
#defaultView:Map
SELECT distinct ?item ?itemLabel ?locationLabel ?location ?wikidata ?wd_geo 
SELECT distinct ?personLabel ?date_label ?date ?person ?address ?address_item ?londonLabel ?geo ?long ?lat
 
WHERE {   
WHERE {   
   ?item bnwdt:P12 bnwd:Q2961 .
   ?person bnwdt:P3 bnwd:Q3 . # women
   ?item bnwdt:P2  ?location . # item has property P2 location
   ?person bnp:P29 ?s .   # resided at
 
    ?s bnps:P29 ?london .  
  ?location bnwdt:P117 ?ws . # wikidata id 
      ?london bnwdt:P33+ bnwd:Q322 . # in Q322 greater london.  
 
    bind(iri(concat("http://www.wikidata.org/entity/", str(?ws))) as ?wikidata) .
        SERVICE <https://query.wikidata.org/sparql> {
            ?wikidata wdt:P625 ?wd_geo .  
        } # /wikidata service   
 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }
}
ORDER BY ?locationLabel
</sparql>


=== Residences of women participants in Colchester excavations ===
    # optional street address (text)
  optional {
    ?s bnpq:P31 ?address .
    }
  # optional street address (item)
  optional {
    ?s bnpq:P100 ?address_item .
    }   
 
  # dates. About 30? not dated.
    #optional {
    ?s ?pq ?date .
    # ?date wikibase:timeValue ?date_value. # if you don't want date label this should work instead
     
      ?qual_prop wikibase:qualifier ?pq;
              wikibase:propertyType wikibase:Time ; # nb excludes edtf dates
              rdfs:label ?date_label . filter(lang(?date_label)="en-gb") . # what kind of date is it.
    #  } # /dates
 
    # filter 1890-1899 
  FILTER("1890-01-01"^^xsd:dateTime <= ?date && ?date < "1899-12-31"^^xsd:dateTime).


<sparql tryit="1">
#title:Excavations at Colchester: where women participants lived
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/>
#defaultView:Map
SELECT distinct ?item ?itemLabel ?locationLabel ?location ?person ?personLabel ?resided ?residedLabel ?wd_geo
WHERE { 
  values (?item) { (bnwd:Q90) }  # q90 colchester 
    
    
   ?item bnwdt:P12 bnwd:Q38 .
   # address geocoordinates
  ?item bnwdt:P2  ?location .  # item has property P2 location
  optional {
 
    ?s ?pqq ?geo .
  ?item (bnwdt:P36 | bnwdt:P37 ) ?person .
        ?qual_geo wikibase:qualifier ?pqq;
  #optional { ?item bnwdt:P36 ?director . }
                  wikibase:propertyType wikibase:GlobeCoordinate.
  #optional { ?item bnwdt:P37 ?member . }
        BIND(geof:longitude(?geo) AS ?long)  
 
        BIND(geof:latitude(?geo)  AS ?lat)
  optional { ?person bnwdt:P29 ?resided .
             }
              ?resided bnwdt:P117 ?wsa . # and has wikidata id 
 
 
   # todo booth codes
            bind(iri(concat("http://www.wikidata.org/entity/", str(?wsa))) as ?wikidataa) .
 
              SERVICE <https://query.wikidata.org/sparql> {
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
              ?wikidataa wdt:P625 ?wd_geo . 
             } # /wikidata service   
          }
    
 
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
}
}
ORDER BY ?locationLabel
ORDER BY ?person ?date
</sparql>
</sparql>


==People==
=== Where did women who published in Folklore/Folk-lore Record live? ===
 
===Women with their family name at birth and family name after marriage===


<sparql tryit="1">
<sparql tryit="1">
# Women with their family name at birth and family name after marriage
# Map of all places of residence for women who had publications in Folklore/Folk-lore Record
 
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 1,768: Line 1,801:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


#defaultView:Map{"hide":["?geo", "?count"]}


SELECT ?person ?personLabel ?birthname ?marriedname
SELECT ?person ?personLabel ?residenceLabel ?residence ?geo (count( ?person) as ?count)  #(concat(str(?count), " publication") as ?count_lbl)
WHERE {   
WHERE {   
   ?person bnwdt:P3 bnwd:Q3 . #select women
   ?person bnwdt:P3 bnwd:Q3 . # select women
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
   OPTIONAL {?person bnwdt:P140 ?birthname .} #look for birth name
   ?person bnwdt:P76 bnwd:Q419 . # people with publications listed in indexes of archaeological papers. [262]
  OPTIONAL {?person bnwdt:P141 ?marriedname .} #look for married name
  ?person bnp:P76 ?s .
 
  ## works published in P101. folklore / folk-lore record q487 q490
      ?s bnpq:P101 ?in .
      {?s bnpq:P101 bnwd:Q487 } union { ?s bnpq:P101 bnwd:Q490 . }
      # why does above pick up these two journals as well?
      FILTER ( ?in not in ( bnwd:Q665 , bnwd:Q636 ) ) .
    
    
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
   ?person bnwdt:P29  ?residence .
}
      optional { ?residence bnwdt:P153 ?geo2 . } # for geocoords added to BN
ORDER BY ?personLabel
</sparql>


=== Women with family name at birth, married name and count of married names===
  optional {
   
      ?residence 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


<sparql tryit="1">
    BIND(COALESCE(?geo1, ?geo2) AS ?geo). # if geo1 available use that, then try geo2
# Women with their family name at birth, family name after marriage and count of married names
 
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/>
 
SELECT ?person ?personLabel ?birthname 
        (GROUP_CONCAT(DISTINCT ?marriedname; SEPARATOR=", ") AS ?marriednames)
        (COUNT(?marriedname) AS ?marriedcount)
 
WHERE {  
  ?person bnwdt:P3 bnwd:Q3 . #select women
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
    
    
  OPTIONAL {?person bnwdt:P140 ?birthname .} #look for birth name
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
  OPTIONAL {?person bnwdt:P141 ?marriedname .} #look for married name
 
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
}
}
group by ?person ?personLabel ?birthname
group by ?person ?personLabel ?residenceLabel ?residence ?geo
ORDER BY ?personLabel
ORDER BY ?geo
</sparql>
</sparql>


===Where women in our data are in wikidata, their spouses, fathers, and mothers according to wikidata===
 
=== BN people and other things located near Devizes ===


<sparql tryit="1">
<sparql tryit="1">
## testing use of geof:distance
#title:BN items located within 30 km of Devizes, Wiltshire
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 1,821: Line 1,854:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
#defaultView:Map
PREFIX wd:  <http://www.wikidata.org/entity/>
SELECT distinct ?item ?itemLabel ?locationLabel ?location ?wikidata ?wd_geo ?wd_long ?wd_lat 
 
SELECT ?person ?personLabel ?item ?WD_spouse ?WD_father ?WD_mother
WHERE {   
WHERE {   
  ?person bnwdt:P3 bnwd:Q3 . #select women
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
  ?person bnp:P117 ?wikidata_ID . #look for wikidata ID on person page
  ?wikidata_ID bnpq:P14 ?wikidata_url .
  BIND(IRI(REPLACE(?wikidata_url,"https://www.wikidata.org/wiki/","http://www.wikidata.org/entity/")) as ?item )
    
    
   SERVICE <https://query.wikidata.org/sparql> {
   {?item bnwdt:P29  ?location . } # resided at location
        ?item wdt:P21 ?WD_gender. #get gender of person
  #union
        OPTIONAL {?item wdt:P22 ?WD_father . } #recall father
  #{?location bnwdt:P12 bnwd:Q2147 .} # OR location has instance of locality. is there a way to get this in the same structure?
        OPTIONAL {?item wdt:P25 ?WD_mother . } #recall mother
  union
        OPTIONAL {?item wdt:P26 ?WD_spouse . } #recall spouse
  {?item bnwdt:P2  ?location . } # item has property P2 location
      }
  # any other possibles ?
 
  ## limit to places in admin territory p33 england q617. (keep numbers down to avoid wikidata timing out) 
  ?location bnwdt:P33+ bnwd:Q617.
  ?location bnwdt:P117 ?ws .  # wikidata id 
 
    bind(iri(concat("http://www.wikidata.org/entity/", str(?ws))) as ?wikidata) .
        SERVICE <https://query.wikidata.org/sparql> {
            wd:Q1026699 wdt:P625 ?start. # devizes coordinates
            ?wikidata wdt:P625 ?wd_geo .
                      #BIND(geof:longitude(?wd_geo) AS ?wd_long) .
                      #BIND(geof:latitude(?wd_geo)  AS ?wd_lat) .
              FILTER(geof:distance(?wd_geo, ?start) < 30). # < 30 km from ?start. 
        } # /wikidata service   
    
    
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
}
}
ORDER BY ?personLabel
ORDER BY ?locationLabel
# with thanks to @tagishsimon for writing this one initially!
</sparql>
</sparql>


===Women in our data alongside counts of their public and professional activities, sorted by total===
=== BN items near a chosen location ===


<sparql tryit="1">
<sparql tryit="1">
## Women in our data alongside counts of their public and professional activities (https://beyond-notability.wikibase.cloud/wiki/Item:Q151)
## Sorted by total PPAs


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
#title:a map of BN items near a chosen starting point in the UK
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
#defaultView:Map
 
## create a thingy for the start point change the Qxxx ID in the following PREFIX var_start line to chosen location. 
## **MUST** a) be in UK and b) have a wikidata item that has coordinate location!
 
PREFIX var_start: <https://beyond-notability.wikibase.cloud/entity/Q5>  # (Q5=sheffield)
 
## to change the distance you can edit the filter(?distance < xx) line near the end of the query.
 
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 bnwdv: <https://beyond-notability.wikibase.cloud/value/>
PREFIX bnwdt: <https://beyond-notability.wikibase.cloud/prop/direct/>
PREFIX bnwdt: <https://beyond-notability.wikibase.cloud/prop/direct/>
Line 1,859: Line 1,905:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


select ?person ?personLabel
## TODO is there a way to get the location itemLabel and use it in the map title...
(count(distinct ?exhibitor) as ?exhibitions)
(count(distinct ?position) as ?positions)
(count(distinct ?speaker) as ?spoke)
(count(distinct ?attended) as ?attendance)
(count(distinct ?donorof) as ?donated)
(count(distinct ?wasdelegate) as ?delegate)
(count(distinct ?correspondent) as ?correspondents)
(count(distinct ?fellow) as ?fellowships)
(count(distinct ?collab) as ?collaborations)
(count(distinct ?found) as ?founded)
(count(distinct ?loaned) as ?loans)
(count(distinct ?illustrated) as ?illustrations)
(count(distinct ?sold) as ?sales)
(count(distinct ?served) as ?service)
(count(distinct ?job) as ?employed)
(count(distinct ?fundraiser) as ?fundraisers)
(count(distinct ?publish) as ?published)
(count(distinct ?benefact) as ?benefactor)
(count(distinct ?donor) as ?donor_to)
(count(distinct ?collect) as ?collected)
(count(distinct ?performance) as ?performances)
((?exhibitions + ?positions + ?spoke + ?attendance + ?donated + ?delegate + ?correspondents + ?fellowships + ?collaborations + ?founded + ?loans + ?illustrations + ?sales
+ ?service + ?employed + ?fundraisers + ?published + ?benefactor + ?donor_to + ?collected + ?performances) AS ?PPA_total)


where
SELECT distinct  ?item ?itemLabel ?locationLabel ?location ?wikidata ?wd_geo  ?distance #?wd_long ?wd_lat 
{
WHERE {
   ?person bnwdt:P3 bnwd:Q3 .
   var_start: bnwdt:P117 ?start_wd_id .
   optional { ?person bnp:P13 ?exhibitor }
   bind(iri(concat("http://www.wikidata.org/entity/", str(?start_wd_id))) as ?start_wd) .
   optional { ?person bnp:P17 ?position }
    
   optional { ?person bnp:P23 ?speaker }
   {?item bnwdt:P29  ?location . } # resided at location
   optional { ?person bnp:P24 ?attended }
   union
   optional { ?person bnp:P65 ?donorof }
   {?item bnwdt:P2  ?location . } # item has property P2 location
   optional { ?person bnp:P71 ?wasdelegate }
   # other possibles ?  
   optional { ?person bnp:P73 ?correspondent }
    
   optional { ?person bnp:P75 ?fellow }
   ## limit to places in admin territory p33 uk q1741 seems ok. put it back to england q617 if there are any timeout problems. (keep numbers down to avoid wikidata timing out)
   optional { ?person bnp:P83 ?collab }
   ?location bnwdt:P33+ bnwd:Q1741.
   optional { ?person bnp:P85 ?found }
   ?location bnwdt:P117 ?ws .  # wikidata id 
  optional { ?person bnp:P87 ?loaned }
    bind(iri(concat("http://www.wikidata.org/entity/", str(?ws))) as ?wikidata) .
   optional { ?person bnp:P89 ?illustrated }
    
  optional { ?person bnp:P99 ?sold }
        SERVICE <https://query.wikidata.org/sparql> {
   optional { ?person bnp:P102 ?served }
            ?start_wd wdt:P625 ?start. # start_wd coordinates.
  optional { ?person bnp:P105 ?job }
            ?wikidata wdt:P625 ?wd_geo .
  optional { ?person bnp:P106 ?fundraiser }
        } # /wikidata service 
  optional { ?person bnp:P107 ?publish }
    
  optional { ?person bnp:P110 ?benefact }
    #BIND(geof:longitude(?wd_geo) AS ?wd_long) .
  optional { ?person bnp:P111 ?donor }
    #BIND(geof:latitude(?wd_geo)  AS ?wd_lat) . 
  optional { ?person bnp:P114 ?collect }
    bind(geof:distance(?wd_geo, ?start) as ?distance).
   optional { ?person bnp:P120 ?performance }
 
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }
    FILTER(?distance < 40). # < xx km from start_wd
    
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
}
}
group by ?person ?personLabel
ORDER BY ?locationLabel
ORDER BY DESC (?PPA_total)
</sparql>


===Women in our data arranged as a network graph by the organisations they were members of===
<sparql tryit="1">
## Women in our data arranged as a network graph by the organisations they were members of
#defaultView:Graph
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwdt: <https://beyond-notability.wikibase.cloud/prop/direct/>
SELECT  ?org ?orgLabel ?rgb ?linkTo ?linkToLabel
WHERE { 
  ?linkTo bnwdt:P3 bnwd:Q3 .                                #select women
  FILTER NOT EXISTS {?linkTo bnwdt:P4 bnwd:Q12 .}          #filter out project team
  ?linkTo bnwdt:P67 ?org
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en". }
  BIND( "7C4DCD" AS ?rgb ) .
}
ORDER BY ?personLabel
</sparql>
</sparql>


===Membership of organisations by women, sorted by how many women were members of a given organisation===
=== Locations of BN excavations ===


<sparql tryit="1">
<sparql tryit="1">
# Membership of organisations by women, sorted by how many women were members of a given organisation
#title:Locations of BN excavations
 
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 1,945: Line 1,950:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
#defaultView:Map
SELECT distinct ?item ?itemLabel ?locationLabel ?location ?adminterr ?wikidata ?wd_geo
WHERE { 
  ?item bnwdt:P12 bnwd:Q38 .


SELECT ?organisation ?organisationLabel (count(?organisation) as ?organisation_count) #count number of organisations that women were members of
  {
WHERE {   
  ?item bnwdt:P2  ?location .  # item has property P2 location
   ?person bnwdt:P3 bnwd:Q3 . # select women
 
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
  optional { ?location bnwdt:P33 ?adminterr .
   ?person bnwdt:P67 ?organisation . # selection people who were members of organisations and what those organisations were
              ?adminterr bnwdt:P117 ?wsa .  # and has wikidata id 
   FILTER NOT EXISTS {?person bnwdt:P67 bnwd:Q35 .} # filter out Royal Archaeological Institute
 
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
            bind(iri(concat("http://www.wikidata.org/entity/", str(?wsa))) as ?wikidataa) .
              SERVICE <https://query.wikidata.org/sparql> {
              ?wikidataa wdt:P625 ?wd_geo2 . 
            } # /wikidata service   
          }
 
  optional {
  ?location bnwdt:P117 ?ws . # and has wikidata id 
    
    bind(iri(concat("http://www.wikidata.org/entity/", str(?ws))) as ?wikidata) .
        SERVICE <https://query.wikidata.org/sparql> {
            ?wikidata wdt:P625 ?wd_geo1 .  
        } # /wikidata service   
    }
  }
  union
  {
 
   filter not exists {?item bnwdt:P2  ?location . } # item doesn't have property P2 location
 
  optional {
   ?item bnwdt:P117 ?wikidata_id . # but has wikidata id 
  bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_id))) as ?wikidata) .
 
   SERVICE <https://query.wikidata.org/sparql> {
              ?wikidata wdt:P625 ?wd_geo1 .  
            } # /wikidata service   
    }
 
  }
  BIND(COALESCE(?wd_geo1, ?wd_geo2) AS ?wd_geo).  # if geo1 available use that, then try geo2
 
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
}
}
GROUP BY ?organisation ?organisationLabel
ORDER BY ?locationLabel
ORDER BY DESC(?organisation_count)
</sparql>
</sparql>


=== Locations of archaeological sites ===


 
<sparql tryit="1">
==Education==
#title:Locations of BN archaeological sites
 
===Women educated at a tertiary educational institution located in Oxford or Cambridge===
 
<sparql tryit="1">
# Women educated at a tertiary educational institution located in Oxford or Cambridge
 
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 1,974: Line 2,009:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
 
#defaultView:Map
SELECT ?woman ?womanLabel ?educationalinstitution ?educationalinstitutionLabel ?location ?locationLabel
SELECT distinct ?item ?itemLabel ?locationLabel ?location ?adminterrLabel ?adminterr ?wikidata ?wd_geo
WHERE {   
WHERE {   
   {?woman bnwdt:P3 bnwd:Q3 . #filter women
   ?item bnwdt:P12 bnwd:Q86 .
   ?woman bnwdt:P94 ?educationalinstitution . #find 'educated at' statement
    
   ?educationalinstitution bnwdt:P12 bnwd:Q2914 . #filter to tertiary educational institutions
  { 
  ?educationalinstitution bnwdt:P2 ?location . #find location of educational institution
    ?item bnwdt:P2  ?location . # item has property P2 location
   ?location rdfs:label ?locationLabel .  
 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
   optional { ?location bnwdt:P33 ?adminterr .  
   FILTER(LANG(?locationLabel) = "en") .
              ?adminterr bnwdt:P117 ?wsa . # and has wikidata id 
   FILTER(regex(?locationLabel, "oxford", "i")) .}
    
   UNION
            bind(iri(concat("http://www.wikidata.org/entity/", str(?wsa))) as ?wikidataa) .
   {?woman bnwdt:P3 bnwd:Q3 . #filter women
              SERVICE <https://query.wikidata.org/sparql> {
   ?woman bnwdt:P94 ?educationalinstitution . #find 'educated at' statement
              ?wikidataa wdt:P625 ?wd_geo2 .  
   ?educationalinstitution bnwdt:P12 bnwd:Q2914 . #filter to tertiary educational institutions
            } # /wikidata service   
  ?educationalinstitution bnwdt:P2 ?location . #find location of educational institution
          }
   ?location rdfs:label ?locationLabel .  
    
  optional {
  ?location bnwdt:P117 ?ws . # and has wikidata id 
    
    bind(iri(concat("http://www.wikidata.org/entity/", str(?ws))) as ?wikidata) .
        SERVICE <https://query.wikidata.org/sparql> {
            ?wikidata wdt:P625 ?wd_geo1 . 
        } # /wikidata service   
  }
   
    }
    
  union
 
   {
      filter not exists {?item bnwdt:P2  ?location . } # item doesn't have property P2 location
 
 
   ?item bnwdt:P117 ?wikidata_id . # but has wikidata id 
   bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_id))) as ?wikidata) .
 
  SERVICE <https://query.wikidata.org/sparql> {
              ?wikidata wdt:P625 ?wd_geo1 .   # which has geo coords
            } # /wikidata service   
  }
   
   BIND(COALESCE(?wd_geo1, ?wd_geo2) AS ?wd_geo). # if geo1 available use that, then try geo2
 
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
  FILTER(LANG(?locationLabel) = "en") .
  FILTER(regex(?locationLabel, "Cambridge$", "i")) .}
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }
}
}
ORDER BY ?womanLabel
ORDER BY ?locationLabel
</sparql>
</sparql>


 
=== Locations of historic houses ===
=== Women who were FSAs who went to Oxford or Cambridge colleges ===


<sparql tryit="1">
<sparql tryit="1">
#how many women who were FSAs went to Oxford or Cambridge colleges?
#title:locations of BN historic houses
 
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 2,012: Line 2,069:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpsv: <https://beyond-notability.wikibase.cloud/prop/statement/value/>
#defaultView:Map
 
SELECT distinct ?item ?itemLabel ?locationLabel ?location ?wikidata ?wd_geo 
SELECT ?person ?personLabel ?college ?collegeLabel ?universityLabel
WHERE {   
WHERE {   
   ?person bnwdt:P3 bnwd:Q3 . #select women
   ?item bnwdt:P12 bnwd:Q2961 .
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
   {
  ?item bnwdt:P2  ?location . # item has property P2 location
    
    
  ?person bnwdt:P75 bnwd:Q8. # only BN subjects having a FSA
    
    
   # educated at (P94) part of (P4) cambridge (Q1181) oxford (Q364)  
   optional { ?location bnwdt:P33 ?adminterr .
              ?adminterr bnwdt:P117 ?wsa .  # and has wikidata id 
 
            bind(iri(concat("http://www.wikidata.org/entity/", str(?wsa))) as ?wikidataa) .
              SERVICE <https://query.wikidata.org/sparql> {
              ?wikidataa wdt:P625 ?wd_geo2 . 
            } # /wikidata service   
          }
 
  optional {
  ?location bnwdt:P117 ?ws .  # and has wikidata id 
 
    bind(iri(concat("http://www.wikidata.org/entity/", str(?ws))) as ?wikidata) .
        SERVICE <https://query.wikidata.org/sparql> {
            ?wikidata wdt:P625 ?wd_geo1 . 
        } # /wikidata service   
  }
 
  }
  union
  {
 
  filter not exists {?item bnwdt:P2  ?location . } # item doesn't have property P2 location


   ?person bnwdt:P94 ?college .   
   ?item bnwdt:P117 ?wikidata_id # but has wikidata id 
   ?college bnwdt:P4 ?university .  
  bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_id))) as ?wikidata) .
 
   SERVICE <https://query.wikidata.org/sparql> {
              ?wikidata wdt:P625 ?wd_geo1 .  
            } # /wikidata service   


  FILTER ( ?university in ( bnwd:Q1181 , bnwd:Q364 ) )
  }
    
    
   SERVICE wikibase:label {bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en".}
  BIND(COALESCE(?wd_geo1, ?wd_geo2) AS ?wd_geo).  # if geo1 available use that, then try geo2 
           
             
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
}
}
order by ?personLabel ?collegeLabel
ORDER BY ?locationLabel
</sparql>
</sparql>


=== All women who went to tertiary education institutions and dates where available ===
=== Residences of women participants in Colchester excavations ===


<sparql tryit="1">
<sparql tryit="1">
#title:Excavations at Colchester: where women participants lived
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 2,043: Line 2,130:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpsv: <https://beyond-notability.wikibase.cloud/prop/statement/value/>
#defaultView:Map
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>
SELECT distinct ?item ?itemLabel ?locationLabel ?location ?person ?personLabel ?resided ?residedLabel ?wd_geo
 
WHERE { 
SELECT ?person ?personLabel ?college ?collegeLabel ?university ?universityLabel ?date ?date_label
  values (?item) { (bnwd:Q90) }  # q90 colchester  
 
 
WHERE {   
   ?item bnwdt:P12 bnwd:Q38 .
   ?person bnwdt:P3 bnwd:Q3 . #select women
  ?item bnwdt:P2  ?location .  # item has property P2 location
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
 
  ?item (bnwdt:P36 | bnwdt:P37 ) ?person .
  #optional { ?item bnwdt:P36 ?director . }
  #optional { ?item bnwdt:P37 ?member . }
    
  optional { ?person bnwdt:P29 ?resided .
              ?resided bnwdt:P117 ?wsa .  # and has wikidata id 
 
            bind(iri(concat("http://www.wikidata.org/entity/", str(?wsa))) as ?wikidataa) .
              SERVICE <https://query.wikidata.org/sparql> {
              ?wikidataa wdt:P625 ?wd_geo .  
            } # /wikidata service   
          }
    
    
  # note: academic degree is P59. possible extra info?
  ?person bnp:P94 ?s .  # educated at
    ?s bnps:P94 ?college .
    optional {?college bnwdt:P4 ?university . } # a few ?college aren't part of (P4) a ?university
  ?college bnwdt:P12 bnwd:Q2914 .  # tertiary ed inst
 
  # dates.
    optional {
    ?s ?pq ?date .     
      ?qual_prop wikibase:qualifier ?pq;
              wikibase:propertyType wikibase:Time ; # nb excludes edtf dates
              rdfs:label ?date_label . filter(lang(?date_label)="en-gb") . # what kind of date is it.
      } # /dates
   
    
    
   SERVICE wikibase:label {bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en".}
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
}
}
order by ?personLabel ?collegeLabel ?date
ORDER BY ?locationLabel
 
</sparql>
</sparql>


=== IWD 2024 Map of five women's places ===


=== Academic degrees ===
<sparql tryit="1">
## how many places for the five women can I get on a map? a slightly ridiculous query.


<sparql tryit="1">
#title:Four stories, five women, many places for #IWD2024
# Fetch academic degrees for women, with date and conferring institution where available
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 2,085: Line 2,170:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpsv: <https://beyond-notability.wikibase.cloud/prop/statement/value/>
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>


SELECT distinct ?person ?personLabel ?degree ?degreeLabel ?by ?byLabel ?date ?date_label
#defaultView:Map{"hide":["?geo"],"layer":"?person", "markercluster":true }
 
SELECT distinct ?person ?personLabel ?propLabel ?placeLabel  ?geo  ?loc2Label (year(?date) as ?year)


WHERE {   
WHERE {   
   ?person bnwdt:P3 bnwd:Q3 . #select women
 
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
  VALUES (?person) {(bnwd:Q894) (bnwd:Q462) (bnwd:Q549) (bnwd:Q921) (bnwd:Q1053) }  #
  ?person ( bnp:P29 | bnp:P94  | bnp:P23 | bnp:P13 | bnp:P120   ) ?s .
 
  ?s  ( bnps:P29 | bnps:P94  | bnps:P23 | bnps:P13 | bnps:P120  )  ?place .
 
  ?person ?p ?s .
      ?prop wikibase:claim ?p;     
        wikibase:statementProperty ?ps. 
 
      optional { ?s ( bnpq:P1 | bnpq:P27 ) ?date . }
      #optional { ?s bnpq:P31 ?street . }
  # LOLplaces
  #1 geocoords in quals for place itself - should be detailed geo added manually, cf London district geocoords which =main P153
  #2 wikdiata geocoords for place
  #3 geocoords in quals for linked place
  #4 wikidata geocoords for linked place
  #5 wikidata geocoords in place P2 qual
  #6 `of` qual geocoords
  #7 `of` P2 wikidata geocoords
  #8 `of` wikidata geocoords
  #9 place main geocoords - likely to be broad london postal districts so should be last resort
  #10 linked place main geocoords
 
 
      optional { ?s bnpq:P153 ?geo1 . } # place has geocoords directly *in qualifier*
 
      optional { ?place bnwdt:P2 ?linked_p1 . # linked place has geocoords *in qualifier* (this is primarily for SAL?)
                    ?linked_p1 bnp:P2 ?llp_s .
                        ?llp_s bnps:P2 ?llp_p1.
                        ?llp_s bnpq:P153 ?geo2 .
                }
 
      optional { ?place bnwdt:P117 ?pws . # place has wikidata page that has geoocords (main P625, not anywhere else)
                  bind(iri(concat("http://www.wikidata.org/entity/", str(?pws))) as ?pwikidata) .
                  SERVICE <https://query.wikidata.org/sparql> {
                    ?pwikidata wdt:P625 ?geo3 .
                  }       
                } 
    
      optional { ?place bnwdt:P2 ?linked_p2 .  # linked place has wikidata geocoords
                    ?linked_p2 bnwdt:P117 ?lws .  # wikidata id P117
                    bind(iri(concat("http://www.wikidata.org/entity/", str(?lws))) as ?lwikidata) .
                    SERVICE <https://query.wikidata.org/sparql> {
                      ?lwikidata wdt:P625 ?geo4 .  
                    }
                }
 
      optional { ?s bnpq:P2 ?qp1 . # P2 qualifier location has wikidata geocoords
                    ?qp1 bnwdt:P117 ?qws .
                    bind(iri(concat("http://www.wikidata.org/entity/", str(?qws))) as ?qwikidata) .
                    SERVICE <https://query.wikidata.org/sparql> {
                      ?qwikidata wdt:P625 ?geo5 .
                    }
                }
    
    
  # academic degree = P59.
      optional { ?s bnpq:P78 ?ofp1 . # 'of' (organisation) has geocoords in P2 qualifier
  ?person bnp:P59 ?s .
                    ?ofp1 bnp:P2 ?ofp1_s .
    ?s bnps:P59 ?degree . # type of degree
                    ?ofp1_s bnps:P2 ?ofp1_p .
                    ?ofp1_s bnpq:P153 ?geo6 . } 
    
    
  # optional qualifiers for degree
      optional { ?s bnpq:P78 ?ofp2 . # 'of' (organisation) P2 location has wikidata geocoords
                    ?ofp2 bnwdt:P2 ?ofp2_p .
                      ?ofp2_p bnwdt:P117 ?ofl2ws .
                      bind(iri(concat("http://www.wikidata.org/entity/", str(?ofl2ws))) as ?ofl2wikidata) .
                      SERVICE <https://query.wikidata.org/sparql> {
                      ?ofl2wikidata wdt:P625 ?geo7 .  }           
              } 
    
    
   # P61 conferred by
      optional { ?s bnpq:P78 ?ofp3 .   # 'of' (organisation) has wikidata geocoords
    optional { ?s bnpq:P61 ?by . }
                    ?ofp3 bnwdt:P117 ?ofpws .  # wikidata id P117
                    bind(iri(concat("http://www.wikidata.org/entity/", str(?ofpws))) as ?ofpwikidata) .
                    SERVICE <https://query.wikidata.org/sparql> {
                      ?ofpwikidata wdt:P625 ?geo8 . }
                }
    
    
  # date with type
      optional { ?place bnwdt:P153 ?geo9 . } # main geocoords  (mainly london postal districts - should be last resort as v broad.)
    optional {
    ?s ?pq ?date .     
      ?qual_prop wikibase:qualifier ?pq;
              wikibase:propertyType wikibase:Time ; # nb excludes edtf dates
              rdfs:label ?date_label . filter(lang(?date_label)="en-gb") . # kind of date
      } # /dates
     
  SERVICE wikibase:label {bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en".}
}
order by ?personLabel ?date ?degreeLabel
</sparql>


==IDs==


===Women in the wiki (excluding the project team) and their corresponding IDs - where they exist - on wikidata, viaf, WorldCat Identities, and the Archaeology Data Service===
      optional { ?place bnwdt:P2 ?linked_p10 . # linked place main geocoords
                    ?linked_p10 bnwdt:P153 ?geo10 .
                }
 
  BIND(COALESCE(?geo1, ?geo2, ?geo3, ?geo4, ?geo5, ?geo6, ?geo7, ?geo8, ?geo9, ?geo10) AS ?geo).  # if geo1 available use that, then geo2, etc, in order of preference
 
  bind(coalesce(?linked_p1, ?linked_p2, ?qp1, ?ofp1, ?ofp2, ?ofp3 ) as ?loc2). # hopefully get extra context where place is just sthg like "meeting". though exactly what will be variable!
 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], en, en-gb". }
}
 
order by ?personLabel ?date ?placeLabel
 
</sparql>
 
=== Wikidata categories for BN instance of locality in the UK ===


<sparql tryit="1">
<sparql tryit="1">
Line 2,128: Line 2,281:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>
PREFIX wd<http://www.wikidata.org/entity/>
#title: counts of WD instance of (P31) for BN localities (instance of Q2147) in the UK
 
select ?wd_io ?wd_io_label (count(*) as ?count)


SELECT ?person ?personLabel ?wikidata_ID ?viaf_ID ?ads_ID ?worldcat_ID
where {
WHERE {  
   
   ?person bnwdt:P3 bnwd:Q3 .                                 #select women
   ?item bnwdt:P12 bnwd:Q2147 . # BN io locality
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .}            #filter out project team
   ?item bnwdt:P33* bnwd:Q1741 . # in UK
    OPTIONAL {?person bnwdt:P117 ?wikidata_ID .}            #return wikidata ID
 
    OPTIONAL {?person bnwdt:P119 ?viaf_ID .}                #return VIAF ID
  ?item bnwdt:P117 ?wd.
    OPTIONAL {?person bnwdt:P34 ?ads_ID .}                  #return Archaeological Data Service ID
      bind(iri(concat("http://www.wikidata.org/entity/", str(?wd))) as ?wikidata) .
    OPTIONAL {?person bnwdt:P118 ?worldcat_ID .}             #return WorldCat Identities ID
      SERVICE <https://query.wikidata.org/sparql> {  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
          ?wikidata wdt:P31 ?wd_io.
              ## p31 Q48091 region of england.
            SERVICE wikibase:label { bd:serviceParam wikibase:language "en". 
                                    ?wikidata rdfs:label ?wd_label .  
                                    ?wd_io rdfs:label ?wd_io_label .  
                                  }       
        }
 
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
}
}
ORDER BY ?personLabel
group by ?wd_io ?wd_io_label
order by ?wd_io_label
</sparql>
</sparql>


===FSAs in the wiki (excluding the project team) and their corresponding IDs - where they exist - on wikidata, viaf, WorldCat Identities, and the Archaeology Data Service===
 
=== Localities not in the UK ===


<sparql tryit="1">
<sparql tryit="1">
##admin_paths lists the linked P33 for the item. Unfortunately, they aren't reliably returned in ascending order.
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 2,154: Line 2,320:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
#title:localities not in the UK
PREFIX wd<http://www.wikidata.org/entity/>
 
select  ?item ?itemLabel (group_concat(distinct ?admin_label; separator=", " ) as ?admin_path)
where {
  ?item bnwdt:P12 bnwd:Q2147 . # i/o locality
  ?item bnwdt:P33* ?admin.   
    ?admin rdfs:label ?admin_label. filter(lang(?admin_label)="en") .
 
  filter not exists { ?item bnwdt:P33* bnwd:Q1741. } # filter out anything in the UK
  filter (?item not in (bnwd:Q619, bnwd:Q2961, bnwd:Q4207, bnwd:Q86) ). # and a few things that are not specific places


SELECT ?person ?personLabel ?wikidata_ID ?viaf_ID ?ads_ID ?worldcat_ID
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
WHERE { 
  ?person bnwdt:P3 bnwd:Q3 .                                #select women
  ?person bnwdt:P16 ?FSA .                                  #select FSA
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .}            #filter out project team
    OPTIONAL {?person bnwdt:P117 ?wikidata_ID .}            #return wikidata ID
    OPTIONAL {?person bnwdt:P119 ?viaf_ID .}                #return VIAF ID
    OPTIONAL {?person bnwdt:P34 ?ads_ID .}                  #return Archaeological Data Service ID
    OPTIONAL {?person bnwdt:P118 ?worldcat_ID .}            #return WorldCat Identities ID
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
}
}
ORDER BY ?personLabel
group by ?item ?itemLabel
order by ?itemLabel
</sparql>
</sparql>


===People with IDs on wikidata, their date of birth on wikidata, and the source(s) of that information===
==People==
 
===Women with their family name at birth and family name after marriage===


<sparql tryit="1">
<sparql tryit="1">
# Women with their family name at birth and family name after marriage
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 2,181: Line 2,351:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wd:  <http://www.wikidata.org/entity/>
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX pr: <http://www.wikidata.org/prop/reference/>
PREFIX prov: <http://www.w3.org/ns/prov#>


SELECT ?woman ?womanLabel ?WDitem ?WDdateOfBirth (GROUP_CONCAT(?BirthStatedInEnglish;separator=" | ") AS ?sources)
 
SELECT ?person ?personLabel ?birthname ?marriedname
WHERE {   
WHERE {   
   #Select all women
   ?person bnwdt:P3 bnwd:Q3 . #select women
   ?woman bnwdt:P3 bnwd:Q3 .
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
   #select all women that have a Wikidata link
   OPTIONAL {?person bnwdt:P140 ?birthname .} #look for birth name
   ?woman bnwdt:P117 ?Qnumber .  
   OPTIONAL {?person bnwdt:P141 ?marriedname .} #look for married name
    
    
  #create reference to Wikibase entity
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
  BIND(IRI(concat("http://www.wikidata.org/entity/", ?Qnumber)) as ?WDitem )
}
  #on Wikibase do
ORDER BY ?personLabel
  SERVICE <https://query.wikidata.org/sparql> {
</sparql>
        #get the date of birth
 
        ?WDitem wdt:P569 ?WDdateOfBirth .
=== Women with family name at birth, married name and count of married names===
        #get the statement of birth
        ?WDitem p:P569 ?Birthstatement .
        #get its node
        ?Birthstatement prov:wasDerivedFrom ?BirthRefnode.
        #get the value of 'Stated in'
        ?BirthRefnode  pr:P248 ?BirthStatedIn.
        #get the english label of the referece 'stated in'
        OPTIONAL {?BirthStatedIn rdfs:label ?BirthStatedInEnglish
                  FILTER (LANG(?BirthStatedInEnglish) = "en")}.
      }
 
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
}
GROUP BY ?woman ?womanLabel ?WDitem ?WDdateOfBirth
ORDER BY ?womanLabel
# Credit to Maarten Zeinstra for developing this query
</sparql>
 
=== Which women in the wikibase have Wikipedia articles, according to Wikidata?===


<sparql tryit="1">
<sparql tryit="1">
# Women with their family name at birth, family name after marriage and count of married names


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 2,229: Line 2,377:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wd:  <http://www.wikidata.org/entity/>


SELECT ?person ?personLabel ?wikidata ?wikipedia
SELECT ?person ?personLabel ?birthname 
        (GROUP_CONCAT(DISTINCT ?marriedname; SEPARATOR=", ") AS ?marriednames)
        (COUNT(?marriedname) AS ?marriedcount)
 
WHERE {   
WHERE {   
   ?person bnwdt:P3 bnwd:Q3 . #select women
   ?person bnwdt:P3 bnwd:Q3 . #select women
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
 
  OPTIONAL {?person bnwdt:P140 ?birthname .} #look for birth name
  OPTIONAL {?person bnwdt:P141 ?marriedname .} #look for married name
 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }
}
group by ?person ?personLabel ?birthname
ORDER BY ?personLabel
</sparql>


  ?person bnwdt:P117 ?wikidata_ID . #look for wikidata ID on person page
===Where women in our data are in wikidata, their spouses, fathers, and mothers according to wikidata===
    bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_ID))) as ?wikidata) .
 
 
  SERVICE <https://query.wikidata.org/sparql> {
      # get English language wikipedia articles in wikidata entries, where listed
        OPTIONAL {
          ?wikipedia schema:about ?wikidata .
          ?wikipedia schema:inLanguage 'en' .
          FILTER (SUBSTR(str(?wikipedia), 1, 25) = 'https://en.wikipedia.org/')
        } 
      } 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }
}
ORDER BY ?personLabel
 
</sparql>
 
 
=== Women with no date of death in our wikibase who have a date of death on Wikidata===


<sparql tryit="1">
<sparql tryit="1">
# Women who have no date of death in our wikibase and have a date of death on Wikidata
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 2,271: Line 2,408:
PREFIX wd:  <http://www.wikidata.org/entity/>
PREFIX wd:  <http://www.wikidata.org/entity/>


SELECT ?person ?personLabel ?wd_dod
SELECT ?person ?personLabel ?item ?WD_spouse ?WD_father ?WD_mother
WHERE {   
WHERE {   
   ?person bnwdt:P3 bnwd:Q3 . #select women
   ?person bnwdt:P3 bnwd:Q3 . #select women
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
   ?person bnp:P117 ?wikidata_ID . #look for wikidata ID on person page
   filter not exists {?person bnwdt:P15 ?bn_dod . } # *don't* have P15 date of death
  ?wikidata_ID bnpq:P14 ?wikidata_url .
 
  BIND(IRI(REPLACE(?wikidata_url,"https://www.wikidata.org/wiki/","http://www.wikidata.org/entity/")) as ?item )  
  ?person bnwdt:P117 ?wikidata_ID . #look for wikidata ID on person page
    bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_ID))) as ?item) .
 
    
    
   SERVICE <https://query.wikidata.org/sparql> {
   SERVICE <https://query.wikidata.org/sparql> {
         ?item wdt:P21 ?WD_gender. #get gender of person
         ?item wdt:P21 ?WD_gender. #get gender of person
         ?item wdt:P570 ?wd_dod . #date of death on Wikidata P570
         OPTIONAL {?item wdt:P22 ?WD_father . } #recall father
        OPTIONAL {?item wdt:P25 ?WD_mother . } #recall mother
        OPTIONAL {?item wdt:P26 ?WD_spouse . } #recall spouse
       }
       }
    
    
Line 2,290: Line 2,426:
}
}
ORDER BY ?personLabel
ORDER BY ?personLabel
# with thanks to @tagishsimon for writing this one initially!
</sparql>
</sparql>


=== Women with no date of birth in our wikibase who have a date of birth in Wikidata===
===Women in our data alongside counts of their public and professional activities, sorted by total===


<sparql tryit="1">
<sparql tryit="1">
# Women who have no date of birth in our wikibase and have a date of birth on Wikidata
## Women in our data alongside counts of their public and professional activities (https://beyond-notability.wikibase.cloud/wiki/Item:Q151)
## Sorted by total PPAs


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 2,304: Line 2,442:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wd:  <http://www.wikidata.org/entity/>


SELECT ?person ?personLabel ?wd_dob
select ?person ?personLabel
WHERE { 
(count(distinct ?exhibitor) as ?exhibitions)
  ?person bnwdt:P3 bnwd:Q3 . #select women
(count(distinct ?position) as ?positions)
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
(count(distinct ?speaker) as ?spoke)
(count(distinct ?attended) as ?attendance)
  filter not exists {?person bnwdt:P26 ?bn_dob . } # *don't* have P15 date of death
(count(distinct ?donorof) as ?donated)
 
(count(distinct ?wasdelegate) as ?delegate)
  ?person bnwdt:P117 ?wikidata_ID . #look for wikidata ID on person page
(count(distinct ?correspondent) as ?correspondents)
    bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_ID))) as ?item) .
(count(distinct ?fellow) as ?fellowships)
(count(distinct ?collab) as ?collaborations)
(count(distinct ?found) as ?founded)
(count(distinct ?loaned) as ?loans)
(count(distinct ?illustrated) as ?illustrations)
(count(distinct ?sold) as ?sales)
(count(distinct ?served) as ?service)
(count(distinct ?job) as ?employed)
(count(distinct ?fundraiser) as ?fundraisers)
(count(distinct ?publish) as ?published)
(count(distinct ?benefact) as ?benefactor)
(count(distinct ?donor) as ?donor_to)
(count(distinct ?collect) as ?collected)
(count(distinct ?performance) as ?performances)
((?exhibitions + ?positions + ?spoke + ?attendance + ?donated + ?delegate + ?correspondents + ?fellowships + ?collaborations + ?founded + ?loans + ?illustrations + ?sales
+ ?service + ?employed + ?fundraisers + ?published + ?benefactor + ?donor_to + ?collected + ?performances) AS ?PPA_total)


   SERVICE <https://query.wikidata.org/sparql> {
where
        ?item wdt:P21 ?WD_gender. #get gender of person
{
        ?item wdt:P569 ?wd_dob .  #date of birth on Wikidata P569
   ?person bnwdt:P3 bnwd:Q3 .
      }
  optional { ?person bnp:P13 ?exhibitor }
    
  optional { ?person bnp:P17 ?position }
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
  optional { ?person bnp:P23 ?speaker }
  optional { ?person bnp:P24 ?attended }
  optional { ?person bnp:P65 ?donorof }
  optional { ?person bnp:P71 ?wasdelegate }
  optional { ?person bnp:P73 ?correspondent }
  optional { ?person bnp:P75 ?fellow }
  optional { ?person bnp:P83 ?collab }
  optional { ?person bnp:P85 ?found }
  optional { ?person bnp:P87 ?loaned }
  optional { ?person bnp:P89 ?illustrated }
  optional { ?person bnp:P99 ?sold }
  optional { ?person bnp:P102 ?served }
  optional { ?person bnp:P105 ?job }
  optional { ?person bnp:P106 ?fundraiser }
  optional { ?person bnp:P107 ?publish }
  optional { ?person bnp:P110 ?benefact }
  optional { ?person bnp:P111 ?donor }
  optional { ?person bnp:P114 ?collect }
   optional { ?person bnp:P120 ?performance }
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }
}
}
ORDER BY ?personLabel
group by ?person ?personLabel
ORDER BY DESC (?PPA_total)
</sparql>
</sparql>


=== All external IDs on Wikidata for Women ===
===Women in our data arranged as a network graph by the organisations they were members of===


<sparql tryit="1">
<sparql tryit="1">
# Query to fetch all available External IDs on Wikidata for FSAs
## Women in our data arranged as a network graph by the organisations they were members of
# NB this will take a while, but it should finish.
#defaultView:Graph
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
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 bnwdt: <https://beyond-notability.wikibase.cloud/prop/direct/>
PREFIX bnp: <https://beyond-notability.wikibase.cloud/prop/>
SELECT  ?org ?orgLabel ?rgb ?linkTo ?linkToLabel
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
WHERE { 
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
  ?linkTo bnwdt:P3 bnwd:Q3 .                               #select women
PREFIX bnpsv: <https://beyond-notability.wikibase.cloud/prop/statement/value/>
  FILTER NOT EXISTS {?linkTo bnwdt:P4 bnwd:Q12 .}          #filter out project team
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>
  ?linkTo bnwdt:P67 ?org
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en". }
  BIND( "7C4DCD" AS ?rgb ) .


SELECT distinct ?person ?personLabel ?wikidata ?p ?id_no ?id_label
WHERE {
    ?person bnwdt:P3 bnwd:Q3 . #select women 
    #?person bnwdt:P75 bnwd:Q8. # limit to FSAs if the full set times out.
 
    ?person bnwdt:P117 ?wikidata_ID . #get wikidata ID
    bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_ID))) as ?wikidata) .
    SERVICE <https://query.wikidata.org/sparql> {
   
    ?wikidata ?p ?s .   
      ?prop wikibase:claim ?p;   
            wikibase:statementProperty ?ps; # NB rather than statementValue
            wikibase:propertyType wikibase:ExternalId. # quicker than filter.
     
      ?prop rdfs:label ?id_label. filter(lang(?id_label)="en") . # ident name
     
          ?s ?ps ?id_no . # id value
      # filter by property type
      #filter(?prop_type in (wikibase:ExternalId ) ) .
    } 
     
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], en, en-gb". }
}
}
           
ORDER BY ?personLabel
order by ?personLabel ?id_label ?id_no
 
</sparql>
</sparql>


=== What external IDs are available in Wikidata for women in the BN database? ===
===Membership of organisations by women, sorted by how many women were members of a given organisation===


<sparql tryit="1">
<sparql tryit="1">
# All the external IDs on BN women's Wikidata pages, with counts and descriptions
# Membership of organisations by women, sorted by how many women were members of a given organisation
 
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 2,384: Line 2,529:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wd:  <http://www.wikidata.org/entity/>
SELECT ?p ?id_label ?id_description  (count(?p) as ?count)


SELECT ?organisation ?organisationLabel (count(?organisation) as ?organisation_count) #count number of organisations that women were members of
WHERE {   
WHERE {   
   ?person bnwdt:P3 bnwd:Q3 . #select women
   ?person bnwdt:P3 bnwd:Q3 . # select women
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
  ?person bnwdt:P67 ?organisation . # selection people who were members of organisations and what those organisations were
  FILTER NOT EXISTS {?person bnwdt:P67 bnwd:Q35 .} # filter out Royal Archaeological Institute
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }
}
GROUP BY ?organisation ?organisationLabel
ORDER BY DESC(?organisation_count)
</sparql>


  ?person bnwdt:P117 ?wikidata_ID . # wikidata ID
    bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_ID))) as ?wikidata) .
 
    SERVICE <https://query.wikidata.org/sparql> {
    ?wikidata ?p ?s .
          ?prop wikibase:claim ?p;   
              wikibase:propertyType wikibase:ExternalId; 
              rdfs:label ?id_label. filter(lang(?id_label)="en") .
      ?prop schema:description ?id_description .
      filter(lang(?id_description) = "en") .   
      } 
     
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en, en-gb". }
}
group by ?p ?id_label ?id_description
ORDER BY desc(?count)


</sparql>
==Education==


=== Women with ODNB IDs in Wikidata ===
===Women educated at a tertiary educational institution located in Oxford or Cambridge===


<sparql tryit="1">
<sparql tryit="1">
# BN women with ODNB biography IDs on Wikidata, with links to the bios
# Women educated at a tertiary educational institution located in Oxford or Cambridge


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 2,424: Line 2,558:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpsv: <https://beyond-notability.wikibase.cloud/prop/statement/value/>
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>


SELECT distinct ?person ?personLabel ?wikidata ?url
SELECT ?woman ?womanLabel ?educationalinstitution ?educationalinstitutionLabel ?location ?locationLabel
 
WHERE {
WHERE {
  {?woman bnwdt:P3 bnwd:Q3 . #filter women
    ?person bnwdt:P3 bnwd:Q3 . #select women   
   ?woman bnwdt:P94 ?educationalinstitution . #find 'educated at' statement
   
  ?educationalinstitution bnwdt:P12 bnwd:Q2914 . #filter to tertiary educational institutions
    ?person bnwdt:P117 ?wikidata_ID . #get wikidata ID
  ?educationalinstitution bnwdt:P2 ?location . #find location of educational institution
    bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_ID))) as ?wikidata) .
  ?location rdfs:label ?locationLabel .  
    
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }
    SERVICE <https://query.wikidata.org/sparql> {
  FILTER(LANG(?locationLabel) = "en") .
   
  FILTER(regex(?locationLabel, "oxford", "i")) .}
    # P1415 Oxford Dictionary of National Biography ID | P6829 Dictionary of Irish Biography ID | P1648 Dictionary of Welsh Biography ID
   UNION
    ?wikidata wdt:P1415 ?id .   
  {?woman bnwdt:P3 bnwd:Q3 . #filter women
 
  ?woman bnwdt:P94 ?educationalinstitution . #find 'educated at' statement
    # odnb link
  ?educationalinstitution bnwdt:P12 bnwd:Q2914 . #filter to tertiary educational institutions
    BIND(IRI(concat("https://doi.org/10.1093/ref:odnb/", ?id)) as ?url ) .
  ?educationalinstitution bnwdt:P2 ?location . #find location of educational institution
   
  ?location rdfs:label ?locationLabel .  
    }
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }
     
  FILTER(LANG(?locationLabel) = "en") .
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], en, en-gb". }  
  FILTER(regex(?locationLabel, "Cambridge$", "i")) .}
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }
}
}
           
ORDER BY ?womanLabel
order by ?personLabel ?id
</sparql>
</sparql>


=== Women with National Portrait Gallery links via Wikidata ===
 
=== Women who were FSAs who went to Oxford or Cambridge colleges ===


<sparql tryit="1">
<sparql tryit="1">
# Query to fetch National Portrait Gallery IDs on Wikidata for BN women, with links
#how many women who were FSAs went to Oxford or Cambridge colleges?
# NB this may be a bit slow...
 
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 2,464: Line 2,597:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpsv: <https://beyond-notability.wikibase.cloud/prop/statement/value/>
PREFIX bnpsv: <https://beyond-notability.wikibase.cloud/prop/statement/value/>
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>


SELECT distinct ?person ?personLabel ?wikidata ?id_no ?npg_url
SELECT ?person ?personLabel ?college ?collegeLabel ?universityLabel
 
WHERE {
WHERE {
  ?person bnwdt:P3 bnwd:Q3 . #select women
    ?person bnwdt:P3 bnwd:Q3 . #select women  
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
    
    
    ?person bnwdt:P117 ?wikidata_ID . #get wikidata ID
  ?person bnwdt:P75 bnwd:Q8. # only BN subjects having a FSA
    bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_ID))) as ?wikidata) .
    
    
    SERVICE <https://query.wikidata.org/sparql> {
  # educated at (P94) part of (P4) cambridge (Q1181) oxford (Q364)  
   
    ?wikidata ?p ?s .   
      ?prop wikibase:claim ?p;   
            wikibase:statementProperty ?ps;
            wikibase:propertyType wikibase:ExternalId.
   
          ?s ps:P1816 ?id_no . # id value
      # npg link
          BIND(IRI(concat("https://www.npg.org.uk/collections/search/person/", ?id_no)) as ?npg_url ) .
    } 
     
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], en, en-gb". }
}
           
order by ?personLabel ?id_no
</sparql>


=== Which BN properties map on to Wikidata properties? ===
  ?person bnwdt:P94 ?college . 
  ?college bnwdt:P4 ?university .


<sparql tryit="1">
  FILTER ( ?university in ( bnwd:Q1181 , bnwd:Q364 ) )
 
  SERVICE wikibase:label {bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en".}
}
order by ?personLabel ?collegeLabel
</sparql>


## **NOTES**
=== All women who went to tertiary education institutions and dates where available ===
## a few properties have a linked wikidata "Q" rather than "P" ID. These will unfortunately not link correctly to Wikidata so wd_label/wd_description won't be present.
## a few other properties may have wikidata=yes but no wd_label and/or wd_description. This could be because the property on Wikidata has been deleted (eg performed at).


<sparql tryit="1">
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 2,507: Line 2,627:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpsv: <https://beyond-notability.wikibase.cloud/prop/statement/value/>
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>


SELECT DISTINCT ?property (if(bound(?wikidata_id), "yes", "no") as ?has_wikidata)  ?bn_label ?wd_label ?bn_description
SELECT ?person ?personLabel ?college ?collegeLabel ?university ?universityLabel ?date ?date_label
  ?wd_description ?wikidata ?bn_propertyType


WHERE {
WHERE {
   ?property a wikibase:Property ;
   ?person bnwdt:P3 bnwd:Q3 . #select women
              wikibase:propertyType ?bn_propertyType . # datatype
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
 
  service wikibase:label {  
  # note: academic degree is P59. possible extra info?
            bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en".  
  ?person bnp:P94 ?s . # educated at
            ?property rdfs:label ?bn_label .
    ?s bnps:P94 ?college .
            ?property schema:description ?bn_description .
    optional {?college bnwdt:P4 ?university . } # a few ?college aren't part of (P4) a ?university
                            }
  ?college bnwdt:P12 bnwd:Q2914 .   # tertiary ed inst
    # wikidata P117 
 
     optional {  
  # dates.
            ?property bnwdt:P117 ?wikidata_id .  
     optional {
                bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_id))) as ?wikidata) .
    ?s ?pq ?date .     
      ?qual_prop wikibase:qualifier ?pq;
              wikibase:propertyType wikibase:Time ; # nb excludes edtf dates
              rdfs:label ?date_label . filter(lang(?date_label)="en-gb") . # what kind of date is it.
      } # /dates
   
 
  SERVICE wikibase:label {bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en".}
}
order by ?personLabel ?collegeLabel ?date


            SERVICE <https://query.wikidata.org/sparql> {
                    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en".
                            ?wikidata schema:description ?wd_description .
                            ?wikidata rdfs:label ?wd_label .
                    } # / label service
              } # /wikidata service 
          } #/wikidata optional
}
order by ?bn_label
</sparql>
</sparql>


==== Of these, which are properties for public and professional activities? ====
 
=== Academic degrees ===


<sparql tryit="1">
<sparql tryit="1">
# which properties have corresponding wikidata IDs, restricted to instance of PPA (P12 / Q151)
# Fetch academic degrees for women, with date and conferring institution where available
 
## **NOTES**
## a few properties have a linked wikidata "Q" rather than "P" ID. These will unfortunately not link correctly to Wikidata so wd_label/wd_description won't be present.
## a few other properties may have wikidata=yes but no wd_label and/or wd_description. This could be because the property on Wikidata has been deleted (eg performed at).
 
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 2,552: Line 2,669:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpsv: <https://beyond-notability.wikibase.cloud/prop/statement/value/>
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>


SELECT DISTINCT ?property (if(bound(?wikidata_id), "yes", "no") as ?has_wikidata)  ?bn_label ?wd_label ?bn_description
SELECT distinct ?person ?personLabel ?degree ?degreeLabel ?by ?byLabel ?date ?date_label
  ?wd_description ?wikidata ?bn_propertyType


WHERE {
WHERE {
   ?property a wikibase:Property ;
   ?person bnwdt:P3 bnwd:Q3 . #select women
              wikibase:propertyType ?bn_propertyType . # datatype
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
 
  service wikibase:label {
  # academic degree = P59.  
            bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en".  
  ?person bnp:P59 ?s .   
            ?property rdfs:label ?bn_label .
     ?s bnps:P59 ?degree . # type of degree
            ?property schema:description ?bn_description .
 
                            }
  # optional qualifiers for degree
    # wikidata P117  
 
     optional { ?property bnwdt:P117 ?wikidata_id .  
  # P61 conferred by
                bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_id))) as ?wikidata) .
    optional { ?s bnpq:P61 ?by . }
 
            SERVICE <https://query.wikidata.org/sparql> {
                    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en".
                            ?wikidata schema:description ?wd_description .
                            ?wikidata rdfs:label ?wd_label .
                    } # / label service
              } # /wikidata service 
          } #/wikidata optional
    
    
     ?property bnwdt:P12 bnwd:Q151. # instance of PPA
  # date with type
    optional {
     ?s ?pq ?date .     
      ?qual_prop wikibase:qualifier ?pq;
              wikibase:propertyType wikibase:Time ; # nb excludes edtf dates
              rdfs:label ?date_label . filter(lang(?date_label)="en-gb") . # kind of date
      } # /dates
     
  SERVICE wikibase:label {bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en".}
}
}
order by ?bn_label
order by ?personLabel ?date ?degreeLabel
</sparql>
</sparql>


=== BN Men in Wikidata ===
==IDs==
 
===Women in the wiki (excluding the project team) and their corresponding IDs - where they exist - on wikidata, viaf, WorldCat Identities, and the Archaeology Data Service===


<sparql tryit="1">
<sparql tryit="1">
#title: BN men in Wikidata
# a starting point to get the basic query set up; can easily add more variables...
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 2,596: Line 2,712:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpsv: <https://beyond-notability.wikibase.cloud/prop/statement/value/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>
PREFIX wd: <http://www.wikidata.org/entity/>


SELECT distinct ?person ?personLabel ?wikidata ?wd_dob ?wd_dod ?odnb_url ?wikipedia
SELECT ?person ?personLabel ?wikidata_ID ?viaf_ID ?ads_ID ?worldcat_ID
WHERE { 
  ?person bnwdt:P3 bnwd:Q3 .                                #select women
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .}            #filter out project team
    OPTIONAL {?person bnwdt:P117 ?wikidata_ID .}            #return wikidata ID
    OPTIONAL {?person bnwdt:P119 ?viaf_ID .}                #return VIAF ID
    OPTIONAL {?person bnwdt:P34 ?ads_ID .}                  #return Archaeological Data Service ID
    OPTIONAL {?person bnwdt:P118 ?worldcat_ID .}            #return WorldCat Identities ID
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }
}
ORDER BY ?personLabel
</sparql>


WHERE {
===FSAs in the wiki (excluding the project team) and their corresponding IDs - where they exist - on wikidata, viaf, WorldCat Identities, and the Archaeology Data Service===
    ?person bnwdt:P3 bnwd:Q10 . #select men 
 
    ?person bnwdt:P117 ?wikidata_ID . #get wikidata ID
    bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_ID))) as ?wikidata) .
 
    SERVICE <https://query.wikidata.org/sparql> {
   
      optional { 
        # P1415 Oxford Dictionary of National Biography ID | couls also add  P6829 Dictionary of Irish Biography ID | P1648 Dictionary of Welsh Biography ID
        ?wikidata wdt:P1415 ?odnb_id . 


        # odnb link
<sparql tryit="1">
        BIND(IRI(concat("https://doi.org/10.1093/ref:odnb/", ?odnb_id)) as ?odnb_url ) .
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
        } #/ odnb
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
     
PREFIX bnwdv: <https://beyond-notability.wikibase.cloud/value/>
        # English language wikipedia articles in wikidata entries, where listed
PREFIX bnwdt: <https://beyond-notability.wikibase.cloud/prop/direct/>
        OPTIONAL {
PREFIX bnp: <https://beyond-notability.wikibase.cloud/prop/>
          ?wikipedia schema:about ?wikidata .
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
          ?wikipedia schema:inLanguage 'en' .
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
          FILTER (SUBSTR(str(?wikipedia), 1, 25) = 'https://en.wikipedia.org/')
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
        }
PREFIX wd:  <http://www.wikidata.org/entity/>
     
 
        optional { ?wikidata wdt:P569 ?wd_dob . } #date of birth on Wikidata P569
SELECT ?person ?personLabel ?wikidata_ID ?viaf_ID ?ads_ID ?worldcat_ID
        optional { ?wikidata wdt:P570 ?wd_dod . } #date of death on Wikidata P570
WHERE {
  ?person bnwdt:P3 bnwd:Q3 .                                 #select women
    } #/ wikidata
  ?person bnwdt:P16 ?FSA .                                   #select FSA
     
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .}            #filter out project team
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], en, en-gb". }  
    OPTIONAL {?person bnwdt:P117 ?wikidata_ID .}             #return wikidata ID
    OPTIONAL {?person bnwdt:P119 ?viaf_ID .}                 #return VIAF ID
    OPTIONAL {?person bnwdt:P34 ?ads_ID .}                   #return Archaeological Data Service ID
    OPTIONAL {?person bnwdt:P118 ?worldcat_ID .}             #return WorldCat Identities ID
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
}
}
           
ORDER BY ?personLabel
order by ?personLabel  
</sparql>
</sparql>


=== What sort of info Wikidata has about BN men ===
===People with IDs on wikidata, their date of birth on wikidata, and the source(s) of that information===


<sparql tryit="1">
<sparql tryit="1">
#title: what info is there for BN men in Wikidata
#counts of properties (excluding external IDs, of which there are gazillions) (Counts are overall and some people might have more than one.)
#at time of writing there are 198 linked men.
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 2,650: Line 2,765:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpsv: <https://beyond-notability.wikibase.cloud/prop/statement/value/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>
PREFIX wd:  <http://www.wikidata.org/entity/>
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX pr: <http://www.wikidata.org/prop/reference/>
PREFIX prov: <http://www.w3.org/ns/prov#>
 
SELECT ?woman ?womanLabel ?WDitem ?WDdateOfBirth (GROUP_CONCAT(?BirthStatedInEnglish;separator=" | ") AS ?sources)
WHERE { 
  #Select all women
  ?woman bnwdt:P3 bnwd:Q3 .
  #select all women that have a Wikidata link
  ?woman bnwdt:P117 ?Qnumber .   
 
  #create reference to Wikibase entity
  BIND(IRI(concat("http://www.wikidata.org/entity/", ?Qnumber)) as ?WDitem )
  #on Wikibase do
  SERVICE <https://query.wikidata.org/sparql> {
        #get the date of birth
        ?WDitem wdt:P569 ?WDdateOfBirth .
        #get the statement of birth
        ?WDitem p:P569 ?Birthstatement .
        #get its node
        ?Birthstatement prov:wasDerivedFrom ?BirthRefnode.
        #get the value of 'Stated in'
        ?BirthRefnode  pr:P248 ?BirthStatedIn.
        #get the english label of the referece 'stated in'
        OPTIONAL {?BirthStatedIn rdfs:label ?BirthStatedInEnglish
                  FILTER (LANG(?BirthStatedInEnglish) = "en")}.
      }
 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }
}
GROUP BY ?woman ?womanLabel ?WDitem ?WDdateOfBirth
ORDER BY ?womanLabel
# Credit to Maarten Zeinstra for developing this query
</sparql>


SELECT ?prop_label ?prop (count(?prop) as ?count)
=== Which women in the wikibase have Wikipedia articles, according to Wikidata?===


WHERE {
<sparql tryit="1">
    ?person bnwdt:P3 bnwd:Q10 . #select men 211.
 
    ?person bnwdt:P117 ?wikidata_ID . #get wikidata ID
    bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_ID))) as ?wikidata) .
 
    SERVICE <https://query.wikidata.org/sparql> {     
        ?wikidata ?p ?s .
            ?prop wikibase:claim ?p;
                wikibase:propertyType ?prop_type ;
                wikibase:statementProperty ?ps.   
            ?prop rdfs:label ?prop_label. filter(lang(?prop_label)="en") .
        filter(?prop_type in (wikibase:Time, wikibase:WikibaseItem ) ) .
      # also a few quantity, string, monolingualtext
     
    }  #/ wikidata
     
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], en, en-gb". }
}
group by ?prop_label  ?prop     
order by ?prop_label
 
</sparql>
 
=== BN Men in Wikidata: men who proposed elections to SAL/RAI ===
 
<sparql tryit="1">
#title:Men who proposed for SAL/RAI elections who are in Wikidata


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 2,691: Line 2,813:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wd:  <http://www.wikidata.org/entity/>
SELECT ?person ?personLabel ?wikidata ?wikipedia
WHERE { 
  ?person bnwdt:P3 bnwd:Q3 . #select women
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team


SELECT distinct ?proposerLabel ?proposer ?wikidata ?odnb_url ?wikipedia ?wd_dob ?wd_dod
   ?person bnwdt:P117 ?wikidata_ID . #look for wikidata ID on person page
WHERE {
     bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_ID))) as ?wikidata) .
   ?person (bnp:P16 | bnp:P7) ?s . # proposed to either SAL or RAI
 
  ?s (bnps:P16 | bnps:P7) ?proposer .
 
    ?proposer bnwdt:P3 bnwd:Q10 .
   SERVICE <https://query.wikidata.org/sparql> {
 
       # get English language wikipedia articles in wikidata entries, where listed
    ?proposer bnwdt:P117 ?wikidata_ID . #get wikidata ID
     bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_ID))) as ?wikidata) .  
    
    SERVICE <https://query.wikidata.org/sparql> {
   
      optional { 
        # P1415 Oxford Dictionary of National Biography ID
        ?wikidata wdt:P1415 ?odnb_id . 
        BIND(IRI(concat("https://doi.org/10.1093/ref:odnb/", ?odnb_id)) as ?odnb_url ) . # make odnb link
        } #/ odnb
        
        # could also add:    P6829 Dictionary of Irish Biography ID | P1648 Dictionary of Welsh Biography ID
     
        # English language wikipedia articles in wikidata entries, where listed
         OPTIONAL {
         OPTIONAL {
           ?wikipedia schema:about ?wikidata .
           ?wikipedia schema:about ?wikidata .
Line 2,717: Line 2,832:
           FILTER (SUBSTR(str(?wikipedia), 1, 25) = 'https://en.wikipedia.org/')
           FILTER (SUBSTR(str(?wikipedia), 1, 25) = 'https://en.wikipedia.org/')
         }   
         }   
        
       }   
        # there will be a few duplicates here...
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
        optional { ?wikidata wdt:P569 ?wd_dob . } #date of birth on Wikidata P569
        optional { ?wikidata wdt:P570 ?wd_dod . #date of death on Wikidata P570
    }  #/ wikidata service
     
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], en, en-gb". }  
}
}
ORDER BY ?proposerLabel
ORDER BY ?personLabel
 
</sparql>
</sparql>


==== Male proposers who have occupations data in Wikidata====
 
=== Women with no date of death in our wikibase who have a date of death on Wikidata===


<sparql tryit="1">
<sparql tryit="1">
#title:Men who proposed for SAL/RAI elections who have occupation(s) in wikidata
# Women who have no date of death in our wikibase and have a date of death on Wikidata
# with occupation labels, which was slightly trickier than expected


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 2,742: Line 2,852:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wd:  <http://www.wikidata.org/entity/>
SELECT ?person ?personLabel  ?wd_dod
WHERE { 
  ?person bnwdt:P3 bnwd:Q3 . #select women
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
  filter not exists {?person bnwdt:P15 ?bn_dod . } # *don't* have P15 date of death
 
  ?person bnwdt:P117 ?wikidata_ID . #look for wikidata ID on person page
    bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_ID))) as ?item) .


SELECT distinct ?personLabel ?proposerLabel
(group_concat(distinct ?wd_label; SEPARATOR="; ") as ?proposer_occupations)
?wikidata ?person ?proposer
WHERE {
  ?person (bnp:P16 | bnp:P7) ?s . # proposed to either SAL or RAI
  ?s (bnps:P16 | bnps:P7) ?proposer .
    ?proposer bnwdt:P3 bnwd:Q10 .
    
    
    ?proposer bnwdt:P117 ?wikidata_ID . #get wikidata ID
  SERVICE <https://query.wikidata.org/sparql> {
    bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_ID))) as ?wikidata) .  
        ?item wdt:P21 ?WD_gender. #get gender of person
        ?item wdt:P570 ?wd_dod . #date of death on Wikidata P570
      }
    
    
    SERVICE <https://query.wikidata.org/sparql> {
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
        ?wikidata wdt:P106 ?wd_occupation .
        # automatic *Label doesn't work with a federated query; this works instead.     
        SERVICE wikibase:label {
              bd:serviceParam wikibase:language "en".
              ?wd_occupation rdfs:label ?wd_label.
              }
    }  #/ wikidata service
     
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], en, en-gb". }  
 
}
}
group by ?personLabel ?proposerLabel ?wikidata ?person ?proposer
ORDER BY ?personLabel
ORDER BY ?proposerLabel ?person
</sparql>
</sparql>


=== BN Men in Wikidata: Spouses ===
=== Women with no date of birth in our wikibase who have a date of birth in Wikidata===


<sparql tryit="1">
<sparql tryit="1">
#title: BN spouses who are in Wikidata
# Women who have no date of birth in our wikibase and have a date of birth on Wikidata  


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 2,782: Line 2,888:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wd:  <http://www.wikidata.org/entity/>


SELECT distinct ?spouse ?spouseLabel ?wikidata ?odnb_url ?wikipedia ?wd_dob ?wd_dod
SELECT ?person ?personLabel ?wd_dob  
WHERE {
WHERE {
   ?person bnwdt:P3 bnwd:Q3.
   ?person bnwdt:P3 bnwd:Q3 . #select women
   ?person bnwdt:P41 ?spouse .
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
  filter not exists {?person bnwdt:P26 ?bn_dob . } # *don't* have P15 date of death
 
   ?person bnwdt:P117 ?wikidata_ID . #look for wikidata ID on person page
    bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_ID))) as ?item) .


    ?spouse bnwdt:P117 ?wikidata_ID . #get wikidata ID
  SERVICE <https://query.wikidata.org/sparql> {
    bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_ID))) as ?wikidata) .  
        ?item wdt:P21 ?WD_gender. #get gender of person
        ?item wdt:P569 ?wd_dob . #date of birth on Wikidata P569
      }
    
    
    SERVICE <https://query.wikidata.org/sparql> {
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
   
}
      optional { 
ORDER BY ?personLabel
        # P1415 Oxford Dictionary of National Biography ID
</sparql>
       
 
        ?wikidata wdt:P1415 ?odnb_id . 
=== All external IDs on Wikidata for Women ===
        BIND(IRI(concat("https://doi.org/10.1093/ref:odnb/", ?odnb_id)) as ?odnb_url ) . # make odnb link
 
        } #/ odnb
<sparql tryit="1">
     
# Query to fetch all available External IDs on Wikidata for FSAs
        # couls also add:    P6829 Dictionary of Irish Biography ID | P1648 Dictionary of Welsh Biography ID
# NB this will take a while, but it should finish.
     
        # English language wikipedia articles in wikidata entries, where listed
        OPTIONAL {
          ?wikipedia schema:about ?wikidata .
          ?wikipedia schema:inLanguage 'en' .
          FILTER (SUBSTR(str(?wikipedia), 1, 25) = 'https://en.wikipedia.org/')
        } 
     
        optional { ?wikidata wdt:P569 ?wd_dob . } #date of birth on Wikidata P569
        optional { ?wikidata wdt:P570 ?wd_dod . }  #date of death on Wikidata P570
    }  #/ wikidata service
     
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], en, en-gb". }  
 
}
ORDER BY ?proposerLabel
</sparql>
 
=== Archaeological sites/Historic houses and their owners/operators in Wikidata ===
 
<sparql tryit="1">
#title:archaeological sites/historic houses in wikidata
 
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 2,832: Line 2,923:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpsv: <https://beyond-notability.wikibase.cloud/prop/statement/value/>
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>


SELECT distinct ?item ?itemLabel ?instanceLabel ?wikidata ?wd_owner_label ?wd_operator_label ?wd_member_label  #?wd_owner ?wd_operator
SELECT distinct ?person ?personLabel ?wikidata ?p ?id_no ?id_label


WHERE {
WHERE {
 
    ?person bnwdt:P3 bnwd:Q3 . #select women    
  { ?item bnwdt:P12 bnwd:Q86 . } # instance of archaeological site
    #?person bnwdt:P75 bnwd:Q8. # limit to FSAs if the full set times out.
   union
  { ?item bnwdt:P12 bnwd:Q2961 . } # instance of historic house
    
    
  ?item bnwdt:P12 ?instance .  # which instance of is it
     ?person bnwdt:P117 ?wikidata_ID . #get wikidata ID
  filter ( ?instance in (bnwd:Q86, bnwd:Q2961) ) . # (need filter as a few have multiple instance of)
     bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_ID))) as ?wikidata) .
 
 
     ?item bnwdt:P117 ?wikidata_id .  
    SERVICE <https://query.wikidata.org/sparql> {
     bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_id))) as ?wikidata) .
   
           
    ?wikidata ?p ?s .   
    SERVICE <https://query.wikidata.org/sparql> {
      ?prop wikibase:claim ?p;   
            wikibase:statementProperty ?ps; # NB rather than statementValue
            wikibase:propertyType wikibase:ExternalId. # quicker than filter.
     
      ?prop rdfs:label ?id_label. filter(lang(?id_label)="en") . # ident name
     
          ?s ?ps ?id_no . # id value
 
      # filter by property type
      #filter(?prop_type in (wikibase:ExternalId ) ) .
    } 
        
        
      optional { ?wikidata wdt:P127 ?wd_owner  .} # can be individuals and multiple.
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], en, en-gb". }  
      optional { ?wikidata wdt:P137 ?wd_operator . }
     
      optional { ?wikidata wdt:P463 ?wd_member . }
     
      ## at least some had *both* owned by *and* operator, but not always the case.
      ## owned by P127 / operator P137 
      ## English Heritage Q936287  National Trust (Q333515)
      ## member of P463  Historic Houses Association (Q5773523)
     
      # automatic *Label doesn't work with a federated query; rdfs:label instead.     
        SERVICE wikibase:label {
              bd:serviceParam wikibase:language "en".
              ?wd_owner rdfs:label ?wd_owner_label.
              ?wd_operator rdfs:label ?wd_operator_label.
              ?wd_member rdfs:label ?wd_member_label.
              }
      } 
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
}
}
order by ?itemLabel
           
order by ?personLabel ?id_label ?id_no


</sparql>
</sparql>


==== And which are owned/operated by English Heritage/National Trust or belong to Historic Houses Association ====
=== What external IDs are available in Wikidata for women in the BN database? ===


<sparql tryit="1">
<sparql tryit="1">
 
# All the external IDs on BN women's Wikidata pages, with counts and descriptions
# archaeological site or historic house.
# pull together via Wikidata which ones are owned/operated by 1) English Heritage 2) National Trust  or 3) affiliated to Historic Houses association
 
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 2,887: Line 2,968:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wd:  <http://www.wikidata.org/entity/>


SELECT distinct ?item ?itemLabel ?instanceLabel ?wikidata ?wd_owner_label ?wd_operator_label ?wd_member_label #?wd_owner ?wd_operator
SELECT ?p ?id_label ?id_description (count(?p) as ?count)


WHERE {   
WHERE {   
  ?person bnwdt:P3 bnwd:Q3 . #select women
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
  ?person bnwdt:P117 ?wikidata_ID . # wikidata ID
    bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_ID))) as ?wikidata) .
    
    
  { ?item bnwdt:P12 bnwd:Q86 . }
  union
  { ?item bnwdt:P12 bnwd:Q2961 . }
 
  ?item bnwdt:P12 ?instance .
  filter ( ?instance in (bnwd:Q86, bnwd:Q2961) ) .
  ?item bnwdt:P117 ?wikidata_id .
    bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_id))) as ?wikidata) .
               
     SERVICE <https://query.wikidata.org/sparql> {
     SERVICE <https://query.wikidata.org/sparql> {
    ?wikidata ?p ?s .
          ?prop wikibase:claim ?p;   
              wikibase:propertyType wikibase:ExternalId; 
              rdfs:label ?id_label. filter(lang(?id_label)="en") .
      ?prop schema:description ?id_description .
      filter(lang(?id_description) = "en") .   
      } 
     
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en, en-gb". }
}
group by ?p ?id_label ?id_description
ORDER BY desc(?count)


      optional { ?wikidata wdt:P127 ?wd_owner .}
</sparql>
      optional { ?wikidata wdt:P137 ?wd_operator . }
      optional { ?wikidata wdt:P463 ?wd_member . }


      # filter: owner or operator = EH/NT / member of HHA
=== Women with ODNB IDs in Wikidata ===
        filter ( ?wd_owner in (wd:Q936287, wd:Q333515) ||
                ?wd_operator in (wd:Q936287, wd:Q333515) ||
                ?wd_member = wd:Q5773523 ) .


      ## owned by P127 / operator P137 
<sparql tryit="1">
      ## ENglish Heritage Q936287  National Trust (Q333515)
# BN women with ODNB biography IDs on Wikidata, with links to the bios
      ## member of P463  Historic Houses Association (Q5773523)
           
      SERVICE wikibase:label {
              bd:serviceParam wikibase:language "en".
              ?wd_owner rdfs:label ?wd_owner_label.
              ?wd_operator rdfs:label ?wd_operator_label.
              ?wd_member rdfs:label ?wd_member_label.
              }
      } 
           
  #} # /optional for wikidata ID
 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }
}


order by ?itemLabel
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/>
PREFIX bnpsv: <https://beyond-notability.wikibase.cloud/prop/statement/value/>
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>


</sparql>
SELECT distinct ?person ?personLabel ?wikidata ?url


==Fishing Expeditions==
WHERE {
 
    ?person bnwdt:P3 bnwd:Q3 . #select women 
===All properties in use in the wikibase with property type, label and description (if present)===
   
    ?person bnwdt:P117 ?wikidata_ID . #get wikidata ID
    bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_ID))) as ?wikidata) .
 
    SERVICE <https://query.wikidata.org/sparql> {
   
    # P1415 Oxford Dictionary of National Biography ID | P6829 Dictionary of Irish Biography ID | P1648 Dictionary of Welsh Biography ID
    ?wikidata wdt:P1415 ?id . 
 
    # odnb link
    BIND(IRI(concat("https://doi.org/10.1093/ref:odnb/", ?id)) as ?url ) .
   
    } 
     
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], en, en-gb". }
}
           
order by ?personLabel ?id
</sparql>
 
=== Women with National Portrait Gallery links via Wikidata ===


<sparql tryit="1">
<sparql tryit="1">
# query for information about properties that are being used in the wikibase
# Query to fetch National Portrait Gallery IDs on Wikidata for BN women, with links
# NB this may be a bit slow...
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/>
PREFIX bnpsv: <https://beyond-notability.wikibase.cloud/prop/statement/value/>
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>


## fyi: not actually necessary to declare these properties
SELECT distinct ?person ?personLabel ?wikidata ?id_no ?npg_url
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX schema: <http://schema.org/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>


SELECT DISTINCT
WHERE {
   ?property
    ?person bnwdt:P3 bnwd:Q3 . #select women   
   ?propertyType
    
  ?propertyLabel 
    ?person bnwdt:P117 ?wikidata_ID . #get wikidata ID
  (group_concat(?propertyAltLabel; separator=" | ") as ?propertyAltLabels)
    bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_ID))) as ?wikidata) .
   ?propertyDescription
    
    SERVICE <https://query.wikidata.org/sparql> {
   
    ?wikidata ?p ?s .   
      ?prop wikibase:claim ?p;   
            wikibase:statementProperty ?ps;
            wikibase:propertyType wikibase:ExternalId.
   
          ?s ps:P1816 ?id_no . # id value
      # npg link
          BIND(IRI(concat("https://www.npg.org.uk/collections/search/person/", ?id_no)) as ?npg_url ) .
    } 
     
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], en, en-gb". }
}
           
order by ?personLabel ?id_no
</sparql>


WHERE {
=== Which BN properties map on to Wikidata properties? ===
  ?property a wikibase:Property ;
              rdfs:label ?propertyLabel ; # label
              wikibase:propertyType ?propertyType . # datatype


  # add alternative labels if present (can be multiple)
<sparql tryit="1">
  OPTIONAL { ?property skos:altLabel ?propertyAltLabel . }


  # add description if present
## **NOTES**
  OPTIONAL {
## a few properties have a linked wikidata "Q" rather than "P" ID. These will unfortunately not link correctly to Wikidata so wd_label/wd_description won't be present.
        SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en".
## a few other properties may have wikidata=yes but no wd_label and/or wd_description. This could be because the property on Wikidata has been deleted (eg performed at).
          ?property schema:description ?propertyDescription .
        }
  }
 
  FILTER(LANG(?propertyLabel) = 'en-gb')
  # fix label language dups; but Q why doesn't SERVICE work?
  # A: https://en.wikibooks.org/wiki/SPARQL/FILTER#FILTER_on_values_in_Labels
  # nb a few objects found with en-gb label missing


}
group by ?property ?propertyLabel ?propertyType ?propertyDescription
order by ?propertyLabel
</sparql>
=== All the Things for Organisations ===
<sparql tryit="1">
# Exploratory query to get all info on an item page including qualifiers (but not references) for each organisation (Q2316) in the wikibase
# Initially this *only* fetched organisations that specifically have the instance of Q2316: I didn't realise for a while how many organisations don't directly reference Q2316.
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 2,997: Line 3,092:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


select distinct ?item ?itemLabel
SELECT DISTINCT ?property (if(bound(?wikidata_id), "yes", "no") as ?has_wikidata)  ?bn_label ?wd_label ?bn_description
?prop ?propLabel ?prop_type
  ?wd_description ?wikidata ?bn_propertyType
?stmt_value ?stmt_valueLabel
?qual_prop  ?qual_value ?qual_label ?qual_prop_type
?statement


where {
WHERE {
  ?property a wikibase:Property ;
              wikibase:propertyType ?bn_propertyType . # datatype
  service wikibase:label { 
            bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en".
            ?property rdfs:label ?bn_label .
            ?property schema:description ?bn_description .
                            }
    # wikidata P117 
    optional {
            ?property bnwdt:P117 ?wikidata_id .
                bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_id))) as ?wikidata) .


?item bnwdt:P12+ bnwd:Q2316  . # instance of organisation or descendants of (excluding instance of organisation itself)
            SERVICE <https://query.wikidata.org/sparql> {
 
                    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en".  
  # get all the things about ?item 
                            ?wikidata schema:description ?wd_description .
    ?item ?p ?statement .  
                            ?wikidata rdfs:label ?wd_label .  
 
                    } # / label service
  # to get item Label without using service. couple of missing en-gb labels somewhere
              } # /wikidata service    
  # ?item rdfs:label ?item_label . filter(lang(?item_label)="en-gb") .  
          } #/wikidata optional
 
 
  # get stuff about ?p
    ?prop wikibase:claim ?p; 
            wikibase:statementProperty ?ps;  # "Links property entity to statement simple value predicate"
        #wikibase:statementValue ?psv; # "Links property entity to statement full value predicate"   
            wikibase:propertyType ?prop_type.      
 
  # get stuff about ?statement
    ?statement ?ps ?stmt_value.
 
  # get any qualifiers
  optional {
    ?statement ?qual_p ?qual_value . 
    ?qual_prop wikibase:qualifier ?qual_p;
          wikibase:propertyType ?qual_prop_type ;
          rdfs:label ?qual_label. filter(lang(?qual_label)='en-gb') .  
    }
 
# OPTIONAL { ?item skos:altLabel ?alt_label . } 
    
    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
 
}
}
order by ?bn_label
</sparql>


order by ?item_label ?prop_label
==== Of these, which are properties for public and professional activities? ====


</sparql>
<sparql tryit="1">
# which properties have corresponding wikidata IDs, restricted to instance of PPA (P12 / Q151)


 
## **NOTES**
===Working with property paths: organisations and locations===
## a few properties have a linked wikidata "Q" rather than "P" ID. These will unfortunately not link correctly to Wikidata so wd_label/wd_description won't be present.
 
## a few other properties may have wikidata=yes but no wd_label and/or wd_description. This could be because the property on Wikidata has been deleted (eg performed at).
<sparql tryit="1">
## problem: sometimes you need to follow property paths using */+ for (eg) locations. BUT this can lead to several results to choose between and they aren't necessarily returned in the "right" order.
## how to determine the "distance" along the path of each result?
## https://stackoverflow.com/questions/61984052/wikidata-get-the-full-subhierachy-of-one-class-as-well-as-all-nodes
## > you can get the distance of a class with SELECT ?cls (count(?tmp) as ?distance) WHERE {  ?cls wdt:P279* ?tmp .   ?tmp wdt:P279+ wd:Q2095 . } group by ?cls order by asc(?distance) - though there might be corner cases like cycles in the hierarchy resp. multiple paths


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 3,058: Line 3,137:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


SELECT ?item ?itemLabel ?location ?locationLabel (count(?item) as ?distance)
SELECT DISTINCT ?property (if(bound(?wikidata_id), "yes", "no") as ?has_wikidata)  ?bn_label ?wd_label ?bn_description
WHERE {  
   ?wd_description ?wikidata ?bn_propertyType
  ?item bnwdt:P12 bnwd:Q2316 .  # instance of organisation.
  ?item bnwdt:P2* ?tmp .
   ?tmp bnwdt:P2+ ?location . # P2=30. P2+=34


   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb, en". }
WHERE {
}
   ?property a wikibase:Property ;
group by ?item ?itemLabel ?location ?locationLabel
              wikibase:propertyType ?bn_propertyType . # datatype
ORDER BY ?item ?distance
</sparql>
  service wikibase:label {
            bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en".  
            ?property rdfs:label ?bn_label .
            ?property schema:description ?bn_description .
                            }
    # wikidata P117  
    optional { ?property bnwdt:P117 ?wikidata_id .
                bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_id))) as ?wikidata) .


=== Working with property paths: instance of [CAVEAT: experimental, probably wrong]===
            SERVICE <https://query.wikidata.org/sparql> {
 
                    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en".  
<sparql tryit="1">
                            ?wikidata schema:description ?wd_description .
# an attempt to adapt the query above following paths for locations of organisations for (more complex) instance of
                            ?wikidata rdfs:label ?wd_label .  
# ref https://stackoverflow.com/questions/61984052/wikidata-get-the-full-subhierachy-of-one-class-as-well-as-all-nodes
                    } # / label service
# distance is in the right *order* so it should be usable for some purposes, but the starting number = number of levels rather than 1. also jumps if there are siblings somewhere along the path.
              } # /wikidata service 
 
          } #/wikidata optional
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
 
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
    ?property bnwdt:P12 bnwd:Q151. # instance of PPA
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/>
 
SELECT ?item ?itemLabel ?instance_of ?instance_ofLabel  (count(?item) as ?distance)
WHERE { 
  ?item bnwdt:P12* ?tmp . # instance of anything.
  ?tmp bnwdt:P12+ ?instance_of . # P2=30. P2+=34
 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb, en". }
}
}
group by ?item ?itemLabel  ?instance_of ?instance_ofLabel
order by ?bn_label
ORDER BY ?item ?distance
</sparql>


</sparql>


==Dates==


===All the Dates for Women FSAs===
=== Archaeological sites/Historic houses and their owners/operators in Wikidata ===


<sparql tryit="1">
<sparql tryit="1">
#title:fishing for dates for FSAs
#title:archaeological sites/historic houses in wikidata
# union query to get [hopefully] every date associated with women FSAs including main dates and qualifier dates


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 3,112: Line 3,180:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpsv: <https://beyond-notability.wikibase.cloud/prop/statement/value/>
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>


SELECT distinct ?person ?personLabel ?prop_label ?qualLabel ?qual_dateLabel ?date_value ?s 
SELECT distinct ?item ?itemLabel ?instanceLabel ?wikidata ?wd_owner_label ?wd_operator_label ?wd_member_label #?wd_owner ?wd_operator
#?prop ?qual


WHERE {
WHERE {
    
    
  ?person bnwdt:P3 bnwd:Q3 . #select women
  { ?item bnwdt:P12 bnwd:Q86 . } # instance of archaeological site
  ?person bnwdt:P75 bnwd:Q8. # find only BN subjects having a FSA
  union
  { ?item bnwdt:P12 bnwd:Q2961 . } # instance of historic house
    
    
   # get stuff about ?person 
   ?item bnwdt:P12 ?instance .  # which instance of is it
  ?person ?p ?s .   
   filter ( ?instance in (bnwd:Q86, bnwd:Q2961) ) . # (need filter as a few have multiple instance of)
 
      # get stuff about ?p .
      ?prop wikibase:claim ?p;   
        wikibase:statementProperty ?ps ; 
        wikibase:statementValue ?psv .    
      ?prop wikibase:propertyType ?date_prop_type .
      ?prop rdfs:label ?prop_label. filter(lang(?prop_label)="en-gb") .  
 
 
# main dates
 
  # get dates detail via ?s and psv
  # gets edtf dates in simplified std wiki date format?
  # https://github.com/ProfessionalWiki/WikibaseEdtf 
      ?s ?psv ?wdv .
        ?wdv wikibase:timeValue ?date_value .
    
    
  } # /main dates
    ?item bnwdt:P117 ?wikidata_id .
 
    bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_id))) as ?wikidata) .
  UNION
           
 
    SERVICE <https://query.wikidata.org/sparql> {
  { # qualifier dates
     
   
      optional { ?wikidata wdt:P127 ?wd_owner  .} # can be individuals and multiple.
  # direct value (usually item) for the property
      optional { ?wikidata wdt:P137 ?wd_operator . }
        ?s ?ps ?qual.
     
   
      optional { ?wikidata wdt:P463 ?wd_member . }
   # date qualifiers. [assumes no edtf in quals. ]
     
        ?s ?pq ?date_value .    
      ## at least some had *both* owned by *and* operator, but not always the case.
          ?qual_date wikibase:qualifier ?pq .
      ## owned by P127 / operator P137    
          ?qual_date wikibase:propertyType wikibase:Time.  
      ## English Heritage Q936287  National Trust (Q333515)
          ?qual_date rdfs:label ?date_qual_label . filter(lang(?date_qual_label)="en") .  
      ## member of P463   Historic Houses Association (Q5773523)
     
     
  # /qual dates
      # automatic *Label doesn't work with a federated query; rdfs:label instead.    
    
        SERVICE wikibase:label {
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
              bd:serviceParam wikibase:language "en".
 
              ?wd_owner rdfs:label ?wd_owner_label.  
} # /where
              ?wd_operator rdfs:label ?wd_operator_label.
 
              ?wd_member rdfs:label ?wd_member_label.
ORDER BY ?person ?prop_label ?date_value
              }
      }   
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
}
order by ?itemLabel


</sparql>
</sparql>


===Fetch any of multiple kinds of EDTF date for a woman===
==== And which are owned/operated by English Heritage/National Trust or belong to Historic Houses Association ====


<sparql tryit="1">
<sparql tryit="1">
# a union query to fetch stuff for multiple properties, in this case dates recorded in EDTF which need slightly different handling from PIT dates
 
# main dates only; pretty sure there are no EDTF in qualifiers.  
# archaeological site or historic house.  
# updated to get date property labels
# pull together via Wikidata which ones are owned/operated by 1) English Heritage 2) National Trust  or 3) affiliated to Historic Houses association


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 3,182: Line 3,236:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


SELECT ?person ?personLabel ?date_edtf ?date_prop ?date_label ?s
SELECT distinct ?item ?itemLabel ?instanceLabel ?wikidata ?wd_owner_label ?wd_operator_label ?wd_member_label  #?wd_owner ?wd_operator


WHERE { ?person bnwdt:P3 bnwd:Q3 .  
WHERE
      FILTER NOT EXISTS { ?person bnwdt:P4 bnwd:Q12 . }  
 
   
  { ?item bnwdt:P12 bnwd:Q86 . }
      ## can do this union first but makes no difference to results except possibly a bit slower.
  union
      #?person ( bnp:P131 | bnp:P132 | bnp:P133  ) ?s .
  { ?item bnwdt:P12 bnwd:Q2961 . }
      #  ?s ( bnps:P131 | bnps:P132 | bnps:P133  ) ?date_edtf .
 
  ?item bnwdt:P12 ?instance .  
  filter ( ?instance in (bnwd:Q86, bnwd:Q2961) ) .
  ?item bnwdt:P117 ?wikidata_id .  
    bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_id))) as ?wikidata) .
               
    SERVICE <https://query.wikidata.org/sparql> {


      ?person ?p ?s . # so you can get the statement id and date prop label
      optional { ?wikidata wdt:P127 ?wd_owner .}
          ?claim wikibase:claim ?p;        
      optional { ?wikidata wdt:P137 ?wd_operator . }
                rdfs:label ?date_label. filter(lang(?date_label)="en") .      
       optional { ?wikidata wdt:P463 ?wd_member . }


          ?s ?date_prop ?date_edtf .
      # filter: owner or operator = EH/NT / member of HHA
             
        filter ( ?wd_owner in (wd:Q936287, wd:Q333515) ||
    ## filter for edtf dates
                ?wd_operator in (wd:Q936287, wd:Q333515) ||
    ## docs: https://github.com/ProfessionalWiki/WikibaseEdtf
                ?wd_member = wd:Q5773523 ) .


    FILTER ( datatype(?date_edtf) = xsd:edtf  ) .
      ## owned by P127 / operator P137 
      ## ENglish Heritage Q936287  National Trust (Q333515)
      ## member of P463  Historic Houses Association (Q5773523)  
              
              
    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], en, en-gb". }  
      SERVICE wikibase:label {
    }
              bd:serviceParam wikibase:language "en".
              ?wd_owner rdfs:label ?wd_owner_label.
              ?wd_operator rdfs:label ?wd_operator_label.
              ?wd_member rdfs:label ?wd_member_label.
              }
      } 
           
  #} # /optional for wikidata ID
 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
}


ORDER BY ?personLabel
order by ?itemLabel


</sparql>
</sparql>


===Full values: dates ===
 
 
== Men ==
 
 
=== BN Men in Wikidata ===


<sparql tryit="1">
<sparql tryit="1">


# query for full values to access the timeValue and timePrecision of a date, in this case a date of birth.
#title: BN men in Wikidata
 
# a starting point to get the basic query set up; can easily add more variables...
## why is a more complex query needed?
## simple value for a date doesn't differentiate between (eg) "1880" and "1 January 1880"; both are returned as 1 January 1880 (and SELECT DISTINCT will collapse them into a single result)
## there are 14 codes for precision from billion years to second. 7: century, 8: decade, 9: year, 10: month, 11: day
## NB additional bnpsv: prefix
## https://www.mediawiki.org/wiki/Wikibase/Indexing/RDF_Dump_Format#Value_representation


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 3,229: Line 3,302:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpsv: <https://beyond-notability.wikibase.cloud/prop/statement/value/>
PREFIX bnpsv: <https://beyond-notability.wikibase.cloud/prop/statement/value/>
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>
SELECT distinct ?person ?personLabel ?wikidata ?whos_who ?odnb_url ?wikipedia ?wd_dob ?wd_dod ?wd_stmts


SELECT DISTINCT ?item ?itemLabel ?date ?precision
WHERE {
WHERE {
  ?item bnp:P26  ?statement. # date of birth (precision of these varies quite a bit)
    ?person bnwdt:P3 bnwd:Q10 . #select men 
  ?statement bnpsv:P26 ?valueNode.
 
  ?valueNode wikibase:timeValue ?date.
    ?person bnwdt:P117 ?wikidata_ID . #get wikidata ID
  ?valueNode wikibase:timePrecision ?precision.
    bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_ID))) as ?wikidata) .
    
    
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
    SERVICE <https://query.wikidata.org/sparql> {
 
      ?wikidata  wikibase:statements ?wd_stmts .
 
      optional { 
        # P1415 Oxford Dictionary of National Biography ID | couls also add  P6829 Dictionary of Irish Biography ID | P1648 Dictionary of Welsh Biography ID
        ?wikidata wdt:P1415 ?odnb_id . 
 
        # odnb link
        BIND(IRI(concat("https://doi.org/10.1093/ref:odnb/", ?odnb_id)) as ?odnb_url ) .
        } #/ odnb
     
        # English language wikipedia articles in wikidata entries, where listed
        OPTIONAL {
          ?wikipedia schema:about ?wikidata .
          ?wikipedia schema:inLanguage 'en' .
          FILTER (SUBSTR(str(?wikipedia), 1, 25) = 'https://en.wikipedia.org/')
        } 
       
             
      optional { ?wikidata wdt:P4789 ?whos .
                  bind(iri(concat("https://www.ukwhoswho.com/view/article/oupww/whoswho/", ?whos)) as ?whos_who) .
                } # P4789 Who's Who
 
        optional { ?wikidata wdt:P569 ?wd_dob . } #date of birth on Wikidata P569
        optional { ?wikidata wdt:P570 ?wd_dod . }  #date of death on Wikidata P570
    }  #/ wikidata
     
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], en, en-gb". }  
}
}
ORDER BY ?date
           
 
order by ?personLabel
</sparql>
</sparql>


=== Any main level date for women ===
=== What sort of info Wikidata has about BN men ===


<sparql tryit="1">
<sparql tryit="1">
# a query to get all types of main date for women
 
#title: what info is there for BN men in Wikidata
#counts of properties (excluding external IDs, of which there are gazillions) (Counts are overall and some people might have more than one.)
#at time of writing there are 198 linked men.


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 3,256: Line 3,363:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpsv: <https://beyond-notability.wikibase.cloud/prop/statement/value/>
PREFIX bnpsv: <https://beyond-notability.wikibase.cloud/prop/statement/value/>
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>


SELECT DISTINCT ?person ?personLabel ?date_label  ?date ?date_prop_type ?date_prop ?link_prop
SELECT ?prop_label ?prop (count(?prop) as ?count)


WHERE {
WHERE {
    ?person bnwdt:P3 bnwd:Q10 . #select men 211.
    ?person bnwdt:P117 ?wikidata_ID . #get wikidata ID
    bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_ID))) as ?wikidata) .
    
    
  ?person bnwdt:P3 bnwd:Q3 . # women
    SERVICE <https://query.wikidata.org/sparql> {       
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .}      
        ?wikidata ?p ?s .
 
            ?prop wikibase:claim ?p;  
  ?person ?p ?s .
                wikibase:propertyType ?prop_type ;
 
                wikibase:statementProperty ?ps.   
      ?date_prop wikibase:claim ?p;  
            ?prop rdfs:label ?prop_label. filter(lang(?prop_label)="en") .  
        wikibase:statementValue ?psv ;
        filter(?prop_type in (wikibase:Time, wikibase:WikibaseItem ) ) .  
        wikibase:propertyType ?date_prop_type; # property type = wikibase:Time OR wikibase:Edtf
      # also a few quantity, string, monolingualtext
        rdfs:label ?date_label. filter(lang(?date_label)="en-gb") . # what kind of date it is
 
        # direct link to relevant section of page
        BIND (REPLACE(STR(?date_prop), "^.*/([^/]*)$", "$1") as ?pid).
        bind(iri(concat(str(?person), "#", ?pid)) as ?link_prop ) . 
        
        
      ?s ?psv ?wdv . # for the date value
     } #/ wikidata
        ?wdv wikibase:timeValue ?date .  #timeValue gets pit and edtf
     
     #  ?wdv wikibase:timePrecision ?date_precision . # optional
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], en, en-gb". }  
 
  # nb also possible to filter either/or time/edtf by property type
  # filter(?date_prop_type in (wikibase:Edtf, wikibase:Time ) ) . 
    
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
}
ORDER BY ?personLabel ?date
group by ?prop_label  ?prop     
order by ?prop_label


</sparql>
</sparql>


=== Counting Dates===
=== BN Men in Wikidata: men who proposed elections to SAL/RAI ===


<sparql tryit="1">
<sparql tryit="1">
# count distinct dates for women (who have at least one)
#title:Men who proposed for SAL/RAI elections who are in Wikidata
# uncomment HAVING line for women with only one
 
# CAVEAT: there may be some discrepancies between dates shown on wiki pages and dates returned by sparql
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 3,301: Line 3,403:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpsv: <https://beyond-notability.wikibase.cloud/prop/statement/value/>
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>
SELECT ?person ?personLabel (COUNT(DISTINCT ?date_value) as ?count)


SELECT distinct ?proposerLabel ?proposer ?wikidata ?odnb_url ?wikipedia ?wd_dob ?wd_dod
WHERE {
WHERE {
  ?person (bnp:P16 | bnp:P7) ?s . # proposed to either SAL or RAI
{  # main dates
  ?s (bnps:P16 | bnps:P7) ?proposer .
 
    ?proposer bnwdt:P3 bnwd:Q10 .
  ?person bnwdt:P3 bnwd:Q3 . # women 
  ?person ?p ?s .        
      ?s ?date_prop ?wdv .
        ?wdv wikibase:timeValue ?date_value .
  } # /main dates
    
    
  UNION
    ?proposer bnwdt:P117 ?wikidata_ID . #get wikidata ID
    bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_ID))) as ?wikidata) .
    
    
  { # qualifier dates
    SERVICE <https://query.wikidata.org/sparql> {
      
      
    ?person bnwdt:P3 bnwd:Q3 .  
      optional { 
     ?person ?p ?s .  
        # P1415 Oxford Dictionary of National Biography ID
       ?s ?date_prop ?pqv .
        ?wikidata wdt:P1415 ?odnb_id . 
        ?pqv wikibase:timeValue ?date_value.
        BIND(IRI(concat("https://doi.org/10.1093/ref:odnb/", ?odnb_id)) as ?odnb_url ) . # make odnb link
    }  # /qual dates
        } #/ odnb
    
     
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en". }  
        # could also add:     P6829 Dictionary of Irish Biography ID | P1648 Dictionary of Welsh Biography ID
 
     
} # /where
        # English language wikipedia articles in wikidata entries, where listed
GROUP BY ?person ?personLabel
        OPTIONAL {
# HAVING(?count=1)
          ?wikipedia schema:about ?wikidata .
 
          ?wikipedia schema:inLanguage 'en' .
ORDER BY ?count ?person
          FILTER (SUBSTR(str(?wikipedia), 1, 25) = 'https://en.wikipedia.org/')
        } 
        
        # there will be a few duplicates here...
        optional { ?wikidata wdt:P569 ?wd_dob . } #date of birth on Wikidata P569
        optional { ?wikidata wdt:P570 ?wd_dod . }  #date of death on Wikidata P570
    }  #/ wikidata service
     
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], en, en-gb". }  
}
ORDER BY ?proposerLabel
</sparql>
</sparql>


=== Start dates that might not have accompanying end dates ===
==== Male proposers who have occupations data in Wikidata====


<sparql tryit="1">
<sparql tryit="1">
#title:Women with start dates that might not have accompanying end dates
#title:Men who proposed for SAL/RAI elections who have occupation(s) in wikidata
# with occupation labels, which was slightly trickier than expected
 
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 3,346: Line 3,454:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpsv: <https://beyond-notability.wikibase.cloud/prop/statement/value/>
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>
SELECT distinct ?personLabel ?prop_label ?start_date  (if(bound(?end_date), "yes", "no") as ?has_end_date) ?person ?s 
#(group_concat(?other_date_label; SEPARATOR=" | ") as ?other_dates)


SELECT distinct ?personLabel ?proposerLabel
(group_concat(distinct ?wd_label; SEPARATOR="; ") as ?proposer_occupations)
?wikidata ?person ?proposer
WHERE {
WHERE {
   ?person bnwdt:P3 bnwd:Q3 .
   ?person (bnp:P16 | bnp:P7) ?s . # proposed to either SAL or RAI
 
   ?s (bnps:P16 | bnps:P7) ?proposer .
  # need to find start times anywhere and get prop label so use claim.
     ?proposer bnwdt:P3 bnwd:Q10 .
   ?person ?p ?s .
  ?claim wikibase:claim ?p;     
        rdfs:label ?prop_label. filter(lang(?prop_label)="en") .
      
# pretty sure start time is qualifier only... 
# get start dates
# then optional end dates
# can only see end time/pit associated, and the only pit with start time is not relevant, but can't be sure that'll always be true.
# optional other that excludes both start/end but lists any other date types
    
    
    ?s bnpq:P27 ?start_date . # get start dates
    ?proposer bnwdt:P117 ?wikidata_ID . #get wikidata ID
    bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_ID))) as ?wikidata) .
    
    
     optional {?s bnpq:P28 ?end_date .} # check for end dates
     SERVICE <https://query.wikidata.org/sparql> {
        ?wikidata wdt:P106 ?wd_occupation .
        # automatic *Label doesn't work with a federated query; this works instead.    
        SERVICE wikibase:label {
              bd:serviceParam wikibase:language "en".
              ?wd_occupation rdfs:label ?wd_label.
              }
    } #/ wikidata service
     
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], en, en-gb". }
 
}
group by ?personLabel ?proposerLabel ?wikidata ?person ?proposer
ORDER BY  ?proposerLabel ?person
</sparql>
 
=== BN Men in Wikidata: Spouses ===


#  optional {
<sparql tryit="1">
#      ?s ?pq ?other_date . # could there be any other associated dates?
#title: BN spouses who are in Wikidata
     
#      ?qual_prop wikibase:qualifier ?pq;     
#            wikibase:propertyType wikibase:Time ; # nb *does not* include edtf dates but AFAICT there are none in qualifiers.
#            rdfs:label ?other_date_label . filter(lang(?other_date_label)="en-gb") . # what kind of date is it.
 
        # drop both start and end this time. idk if there could be a faster way to do this?
#       filter not exists { ?s (bnpq:P27 | bnpq:P28) ?other_date .  }
 
#  } # / optional other dates
 
  # filter(!bound(?end_date)). # to filter out rows with an end date
 
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en". }
 
}


ORDER BY ?personLabel ?prop_label ?start_date
</sparql>
=== End dates that might not accompanying start dates ===
<sparql tryit="1">
#title:Women with end dates that might not have accompanying start dates
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 3,403: Line 3,494:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpsv: <https://beyond-notability.wikibase.cloud/prop/statement/value/>
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>


SELECT distinct ?personLabel ?prop_label ?end_date 
SELECT distinct ?spouse ?spouseLabel  ?wikidata ?odnb_url ?wikipedia ?wd_dob ?wd_dod
(if(bound(?start_date), "yes", "no") as ?has_start_date) 
WHERE {
(group_concat(?other_date_label; SEPARATOR=" | ") as ?other_dates)
  ?person bnwdt:P3 bnwd:Q3.
?person ?s
  ?person bnwdt:P41 ?spouse .


WHERE {
    ?spouse bnwdt:P117 ?wikidata_ID . #get wikidata ID
  ?person bnwdt:P3 bnwd:Q3 .
    bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_ID))) as ?wikidata) .  
  ?person ?p ?s .  
    
   ?claim wikibase:claim ?p;     
    SERVICE <https://query.wikidata.org/sparql> {
        rdfs:label ?prop_label. filter(lang(?prop_label)="en") .
      
      
# get end dates
      optional { 
# then optional start dates
        # P1415 Oxford Dictionary of National Biography ID
# can only see start time/pit associated, and in fact the only pit with start time is not relevant, but can't be sure that'll always be true.
       
  # so an optional other that excludes both start/end but lists any other date types with group_concat
        ?wikidata wdt:P1415 ?odnb_id . 
 
        BIND(IRI(concat("https://doi.org/10.1093/ref:odnb/", ?odnb_id)) as ?odnb_url ) . # make odnb link
    ?s bnpq:P28 ?end_date . # get end dates
        } #/ odnb
 
     
    optional {?s bnpq:P27 ?start_date .} # check for start dates
        # couls also add:    P6829 Dictionary of Irish Biography ID | P1648 Dictionary of Welsh Biography ID
     
        # English language wikipedia articles in wikidata entries, where listed
        OPTIONAL {
          ?wikipedia schema:about ?wikidata .
          ?wikipedia schema:inLanguage 'en' .
          FILTER (SUBSTR(str(?wikipedia), 1, 25) = 'https://en.wikipedia.org/')
        }  
     
        optional { ?wikidata wdt:P569 ?wd_dob . } #date of birth on Wikidata P569
        optional { ?wikidata wdt:P570 ?wd_dod . } #date of death on Wikidata P570
    }  #/ wikidata service
     
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], en, en-gb". }
 
}
ORDER BY  ?proposerLabel
</sparql>
 
 
=== BN Men who proposed, seconded or signed for Women in SAL/RAI/RHS elections, with counts and wikidata IDs ===


    optional {
<sparql tryit="1">
        ?s ?pq ?other_date . # could there be any other associated dates?
#title:Men who supported women (at least twice) for SAL/RAI/RHS election with Wikidata IDs
        ?qual_prop wikibase:qualifier ?pq;     
              wikibase:propertyType wikibase:Time ; # nb *does not* include edtf dates but AFAICT there are none in qualifiers.
              rdfs:label ?other_date_label . filter(lang(?other_date_label)="en-gb") . # what kind of date
        # drop both start and end. idk if there could be a faster way to do this?
        filter not exists { ?s (bnpq:P27 | bnpq:P28) ?other_date .  }
 
  } # / optional other dates
 
#  filter(!bound(?start_date)). # to filter out rows with a start date (77 atm)
 
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en". }
 
}


group by  ?personLabel ?prop_label ?end_date ?start_date ?has_start_date ?person ?s 
ORDER BY ?personLabel ?prop_label ?end_date
</sparql>
==Admin==
===Women about whom we have recorded fewer than 3 pieces of information===
<sparql tryit="1">
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 3,460: Line 3,546:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


SELECT ?person ?personLabel ?statements WHERE {
# p155, p156 - signed rhs
  ?person bnwdt:P3 bnwd:Q3 ;
# p32, p82  - signed sal|
        wikibase:statements ?statements .
# p8 rai seconded
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .}
 
  FILTER (?statements <3)
SELECT ?supporterLabel ?supporter  ?wikidata (count(?supporter) as ?supported)
  SERVICE wikibase:label {
      bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb".
  }
}
</sparql>


===People for whom their item records is given as 'Mrs'===
WHERE {


<sparql tryit="1">
  ?person bnwdt:P3 bnwd:Q3 .
SELECT ?id ?name
 
WHERE {   
  { 
   ?id rdfs:label ?name .
    ?person (  bnp:P155 | bnp:P156 | bnp:P16 | bnp:P7 ) ?s .  #
  FILTER regex(?name, "mrs *", "i") #this line uses regular expression syntax, described at https://regexper.com/#mrs%5Cs*
      ?s ( bnps:P155 | bnps:P156 | bnps:P16 | bnps:P7 ) ?supporter  . # proposed SAL/RAI / signed RHS
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
      #?s ?prop ?supporter .
    }
  #  union for qualifiers
  union
  {
  ?person ?p ?s .
    ?s (  bnpq:P156 | bnpq:P155 | bnpq:P32 | bnpq:P82 | bnpq:P8 ) ?supporter .
    #?s ?prop ?supporter .
  }
 
    ?supporter bnwdt:P3 bnwd:Q10 . # male
    
    optional {
      ?supporter bnwdt:P117 ?wikidata_ID . #get wikidata ID
      bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_ID))) as ?wikidata) .
      }
     
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], en, en-gb". }  
}
}
group by ?supporterLabel ?supporter ?wikidata
having (?supported>2)
ORDER BY desc(?supported) desc(?wikidata)
</sparql>
</sparql>


===All triples in the wiki, limited to 1000===
==Fishing Expeditions==
 
===All properties in use in the wikibase with property type, label and description (if present)===


<sparql tryit="1">
<sparql tryit="1">
SELECT ?a ?aLabel ?b ?c WHERE {
# query for information about properties that are being used in the wikibase
    ?a ?b ?c
    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }
}
LIMIT 1000 #please don't make this number too big as it will slow down the site!
</sparql>


===All triples in the wiki, represented as a crude graph===
## fyi: not actually necessary to declare these properties
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX schema: <http://schema.org/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>


<sparql tryit="1">
SELECT DISTINCT
#defaultView:Graph
  ?property
SELECT ?a ?aLabel ?c ?cLabel WHERE {
  ?propertyType
    ?a ?b ?c
  ?propertyLabel 
    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }
  (group_concat(?propertyAltLabel; separator=" | ") as ?propertyAltLabels)
}
  ?propertyDescription
#note query returns every connection in the wikibase so it may fall over!
</sparql>


===People whose assigned gender we have been unable to determine and/or confirm===
WHERE {
  ?property a wikibase:Property ;
              rdfs:label ?propertyLabel ; # label
              wikibase:propertyType ?propertyType . # datatype


<sparql tryit="1">
  # add alternative labels if present (can be multiple)
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
  OPTIONAL { ?property skos:altLabel ?propertyAltLabel . }
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
 
PREFIX bnwdv: <https://beyond-notability.wikibase.cloud/value/>
  # add description if present
PREFIX bnwdt: <https://beyond-notability.wikibase.cloud/prop/direct/>
  OPTIONAL {
PREFIX bnp: <https://beyond-notability.wikibase.cloud/prop/>
        SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en".
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
          ?property schema:description ?propertyDescription .
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
        }
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
  }
PREFIX wd:  <http://www.wikidata.org/entity/>
 
  FILTER(LANG(?propertyLabel) = 'en')
  # fix label language dups; but Q why doesn't SERVICE work?
  # A: https://en.wikibooks.org/wiki/SPARQL/FILTER#FILTER_on_values_in_Labels


SELECT ?person ?personLabel
WHERE { 
  ?person bnwdt:P3 ?gender .                             
  FILTER NOT EXISTS {?person bnwdt:P3 bnwd:Q3 .}          #filter out people identified as women
  FILTER NOT EXISTS {?person bnwdt:P3 bnwd:Q10 .}          #filter out people identified as men
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }
}
}
ORDER BY ?personLabel
group by ?property ?propertyLabel ?propertyType ?propertyDescription
order by ?propertyLabel
 
</sparql>
</sparql>


===People who have a spouse statement and - optionally - marriage date statements for checking if there is any misalignment with 'Spouse not in wikibase' statements===
=== All the Things for Organisations ===


<sparql tryit="1">
<sparql tryit="1">
# people who have a spouse statement and - optionally - marriage date statements for checking if there is any misalignment with 'Spouse not in wikibase' statements


# Exploratory query to get all info on an item page including qualifiers (but not references) for each organisation (Q2316) in the wikibase
# Initially this *only* fetched organisations that specifically have the instance of Q2316: I didn't realise for a while how many organisations don't directly reference Q2316.
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 3,539: Line 3,644:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


SELECT ?person ?personLabel ?spouse ?spouseLabel ?edtfmarriagespouse ?edtfmarriagespouseLabel ?PITmarriagespouse ?PITmarriagespouseLabel WHERE {
select distinct ?item ?itemLabel
  ?person bnwdt:P41 ?spouse .
?prop ?propLabel ?prop_type
  OPTIONAL {?person bnp:P132 ?edtfmarriagestatement .
?stmt_value ?stmt_valueLabel
  ?edtfmarriagestatement bnps:P132 ?edtfmarriagedate .
?qual_prop  ?qual_value ?qual_label ?qual_prop_type
  ?edtfmarriagestatement bnpq:P41 ?edtfmarriagespouse .}
?statement
  OPTIONAL {?person bnp:P130 ?PITmarriagestatement .
  ?PITmarriagestatement bnps:P130 ?PITmarriagedate .
  ?PITmarriagestatement bnpq:P41 ?PITmarriagespouse .}
    SERVICE wikibase:label {
      bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb".
    }
}
ORDER BY DESC(?edtfmarriagespouseLabel) DESC(?PITmarriagespouseLabel)
</sparql>


=== Compare uses of item v free text ===
where {


<sparql tryit="1">
?item bnwdt:P12+ bnwd:Q2316  . # instance of organisation or descendants of (excluding instance of organisation itself)
# A number of properties have "item" and "free text" versions; a query to fetches both versions in each case to facilitate comparison of their uses.


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
  # get all the things about ?item 
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
    ?item ?p ?statement .  
PREFIX bnwdv: <https://beyond-notability.wikibase.cloud/value/>
 
PREFIX bnwdt: <https://beyond-notability.wikibase.cloud/prop/direct/>
  # to get item Label without using service. couple of missing en-gb labels somewhere
PREFIX bnp: <https://beyond-notability.wikibase.cloud/prop/>
  # ?item rdfs:label ?item_label . filter(lang(?item_label)="en-gb") .  
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
 
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
 
PREFIX bnpsv: <https://beyond-notability.wikibase.cloud/prop/statement/value/>
  # get stuff about ?p
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>
    ?prop wikibase:claim ?p; 
            wikibase:statementProperty ?ps;  # "Links property entity to statement simple value predicate"
        #wikibase:statementValue ?psv; # "Links property entity to statement full value predicate"   
            wikibase:propertyType ?prop_type.      


SELECT distinct ?itemLabel ?prop_label ?qual_label ?qual_value ?qual_valueLabel ?item ?qual_prop
  # get stuff about ?statement
 
    ?statement ?ps ?stmt_value.
# most of these are used in qualifiers - only P72, P71 and P88 found in main (and only a handful of uses of free text?)
 
#?item (  bnp:P88|bnp:P91 | bnp:P72|bnp:P71) ?s .  
  # get any qualifiers
 
  optional {
## the pairs
    ?statement ?qual_p ?qual_value . 
#P21 evidence (free text) / P20 evidence (item)
    ?qual_prop wikibase:qualifier ?qual_p;
#P79 item exhibited / P80 item exhibited (free text)
          wikibase:propertyType ?qual_prop_type ;
#P78 of / P66 of (free text)
          rdfs:label ?qual_label. filter(lang(?qual_label)='en-gb') .
#P91 specific reference information / P88 specific reference information (free text)
    }
#P31 street address (free text) / P100 street address (item)
#P72 was delegate at (free text) / P71 was delegate at (item)
 
WHERE {
    
    
  ?item ?p ?s .  
#  OPTIONAL { ?item skos:altLabel ?alt_label .
    
    
  ?prop wikibase:claim ?p;     
    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }
        rdfs:label ?prop_label. filter(lang(?prop_label)="en-gb") . 
   
  ?s ( bnpq:P21|bnpq:P20 | bnpq:P80|bnpq:P79 | bnpq:P66|bnpq:P78 | bnpq:P88|bnpq:P91 | bnpq:P31|bnpq:P100 | bnpq:P72|bnpq:P71 ) ?qual_value .
 
  ?s ?qual_p ?qual_value . 
    ?qual_prop wikibase:qualifier ?qual_p;
          wikibase:propertyType ?qual_prop_type ;
          rdfs:label ?qual_label. filter(lang(?qual_label)='en-gb') .
    
    
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }
}
}
order by ?qual_label ?prop_label ?itemLabel
 
order by ?item_label ?prop_label


</sparql>
</sparql>


=== Missing language labels ===
 
=== One woman ===


<sparql tryit="1">
<sparql tryit="1">


# query to check for any items/properties which don't have "en" labels. [currently not an issue but retained for reference.]
#title:All About a Woman
 
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 3,618: Line 3,704:
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>


SELECT  
SELECT distinct ?propLabel ?spsLabel ?qual_propLabel ?pqsLabel ?link ?s
  ?item  ?itemLabel
# ?main_date ?main_precision ?qual_date ?qual_precision   
  (group_concat(distinct ?language) as ?languages)
# ?prop ?sps ?pqs ?pq
  (count(distinct ?rdfs_label) as ?count) # TIL: where you put distinct matters! 


WHERE {
WHERE
{
  VALUES (?person) {(bnwd:Q569)}  # add (bnwd:Qxxx) if you want more than one person. 
  ?person ?p ?s . 


  ?item ?p ?s.
    ?prop wikibase:claim ?p;   
  ?item rdfs:label ?rdfs_label # rdfs item label (1 per language).
        wikibase:statementProperty ?ps;  #  simple value
        wikibase:statementValue ?psv. # full value   
    
    
  BIND(LANG(?rdfs_label) as ?language) . # get 2 letter language codes
  # exclude external IDs
  # filter not exists { ?prop wikibase:propertyType wikibase:ExternalId . }
 
      ?s ?ps ?sps.
 
    # full date via ?psv
      OPTIONAL {
          ?s ?psv ?spsv .
              ?spsv wikibase:timeValue ?main_date .
              ?spsv wikibase:timePrecision ?main_precision .
      }


  #optional { ?item rdfs:label ?engb . filter(lang(?engb)="en-gb"). }
    # qualifiers.
  #optional { ?item rdfs:label ?en . filter(lang(?en)="en"). }
 
      optional {  
        ?s ?pq ?pqs .         
          ?qual_prop wikibase:qualifier ?pq .  
          ?qual_prop wikibase:qualifierValue ?pqp .  
       
          optional {  
            # full date via ?pqp
            ?s ?pqp ?qv .
            ?qv wikibase:timeValue ?qual_date.
            ?qv wikibase:timePrecision ?qual_precision.  
          }
    }
    
    
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], en-gb, en". }  
   # direct link to property
        BIND (REPLACE(STR(?prop), "^.*/([^/]*)$", "$1") as ?pid).
        bind(iri(concat(str(?person), "#", ?pid)) as ?link ) .
 
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
       
}
}
group by ?item  ?itemLabel
order by ?propLabel ?s
HAVING (?count<2)
order by ?item


</sparql>
</sparql>


=== Statements that contain both a date *and* an unknown value date===
===Working with property paths: organisations and locations===


<sparql tryit="1">
<sparql tryit="1">
# A query to look for statements containing an <unknown value> date *and* a date
## problem: sometimes you need to follow property paths using */+ for (eg) locations. BUT this can lead to several results to choose between and they aren't necessarily returned in the "right" order.
# caveat: not yet completely sure if it will work in all cases for main dates
## how to determine the "distance" along the path of each result?
## https://stackoverflow.com/questions/61984052/wikidata-get-the-full-subhierachy-of-one-class-as-well-as-all-nodes
## > you can get the distance of a class with SELECT ?cls (count(?tmp) as ?distance) WHERE {  ?cls wdt:P279* ?tmp .  ?tmp wdt:P279+ wd:Q2095 . } group by ?cls order by asc(?distance) - though there might be corner cases like cycles in the hierarchy resp. multiple paths


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 3,655: Line 3,771:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


SELECT  ?item ?itemLabel ?main_label ?qualLabel ?subLabel
SELECT  ?item ?itemLabel ?location ?locationLabel (count(?item) as ?distance)
(group_concat(distinct ?date_prop) as ?dates)   
WHERE { 
(count (distinct(isBLANK(?t))) as ?tcount) 
  ?item bnwdt:P12 bnwd:Q2316 . # instance of organisation.
?s
  ?item bnwdt:P2* ?tmp .
  ?tmp bnwdt:P2+ ?location . # P2=30. P2+=34


# using isBlank() in select creates true/false, then count distinct finds any in a group having >1.
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb, en". }  
 
WHERE
{
  {
  # qualifiers. [qualifiers need to include ?s in the group by]
  ?item ?p ?s.
 
  # labels
  ?s ?subp ?sub .
  ?qual wikibase:claim ?p;
        wikibase:statementProperty ?subp. 
 
    ?s ?pq ?t .
 
    ?date_prop wikibase:qualifier ?pq ;
            wikibase:propertyType ?date_prop_type .
    filter(?date_prop_type in (wikibase:Time, wikibase:Edtf) ).
  }
  UNION
  {
  # main [excluding ?s from group by this time]
  ?item ?p ?sm.
  ?sm ?ps ?t .
   
  ?date_prop wikibase:claim ?p.
  ?date_prop wikibase:statementProperty ?ps.
  ?date_prop wikibase:propertyType ?date_prop_type .
  ?date_prop rdfs:label ?main_label .  filter(lang(?main_label)="en-gb") .
   
  filter(?date_prop_type in (wikibase:Time, wikibase:Edtf) ).
  }
 
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en_gb" }
}
}
 
group by ?item ?itemLabel  ?location ?locationLabel
group by ?item ?itemLabel ?s ?qualLabel ?subLabel ?main_label
ORDER BY ?item ?distance
having (?tcount >1 )  # comment out to get everything
 
ORDER BY ?itemLabel ?main_label ?qualLabel ?subLabel ?date_prop
 
</sparql>
</sparql>


 
=== Traversing instance of with GAS ===
=== Women with no dates===


<sparql tryit="1">
<sparql tryit="1">
 
#title:GAS
# Query for women with no dates
# The Gather, Apply, and Scatter (GAS) service provides graph traversal, graph mining, and similar classes of algorithms for SPARQL.
# WIP: at present this includes <unknown value> dates as well as no dates at all [eg Miss Keyser Q2622]
# In practical terms, it enables a series of relations to be followed through the graph; for instance the chain of father, grandfather, great-grandfather &c - tracing the father (P22) line - of a subject item
# CAVEAT: the WQS bug means there are likely to be some women in results who do, in fact, have at least one date.
# https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/query_optimization#GAS_Service
# https://github.com/blazegraph/database/wiki/RDF_GAS_API


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 3,719: Line 3,799:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpsv: <https://beyond-notability.wikibase.cloud/prop/statement/value/>
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>
SELECT distinct ?person ?personLabel  (count(?date_value) as ?count)


SELECT ?depth  ?ioLabel ?itemLabel ?io ?item
WHERE {
WHERE {
      SERVICE gas:service {
{ # main dates
          gas:program gas:gasClass "com.bigdata.rdf.graph.analytics.BFS" ;
 
                      gas:in bnwd:Q3099 ;
  ?person bnwdt:P3 bnwd:Q3 . # women 
                      gas:linkType bnwdt:P12 ;
  optional {
                      gas:traversalDirection "Reverse";
    ?person ?p ?s .        
                      gas:out ?item ;
      ?s ?date_prop ?wdv .
                      gas:out1 ?depth ;
        ?wdv wikibase:timeValue ?date_value . } 
                      gas:out2 ?io .  
 
      }
} # /main dates
     SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
 
    }  
  UNION
order by ?depth ?ioLabel ?itemLabel
 
</sparql>
  { # qualifier dates
   
    ?person bnwdt:P3 bnwd:Q3 . 
  optional {
    ?person ?p ?s .   
      ?s ?date_prop ?pqv .
        ?pqv wikibase:timeValue ?date_value. }
      
  }  # /qual dates
 
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en". }  
 
} # /where
group by ?person ?personLabel
having (?count=0)
ORDER BY ?person


</sparql>


 
=== Working with property paths: instance of [CAVEAT: experimental, probably wrong]===
=== Women with more than X statements but no date of birth/death===


<sparql tryit="1">
<sparql tryit="1">
 
# an attempt to adapt the query above following paths for locations of organisations for (more complex) instance of
#title:women with n>X statements but no date of birth/death
# ref https://stackoverflow.com/questions/61984052/wikidata-get-the-full-subhierachy-of-one-class-as-well-as-all-nodes
# CAVEAT this currently finds some women who do in fact have dates, because of WQS bug
# distance is in the right *order* so it should be usable for some purposes, but the starting number = number of levels rather than 1. also jumps if there are siblings somewhere along the path.
# updated to add extra info


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 3,774: Line 3,832:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


SELECT ?item ?itemLabel ?instance_of ?instance_ofLabel  (count(?item) as ?distance)
WHERE { 
  ?item bnwdt:P12* ?tmp .  # instance of anything.
  ?tmp bnwdt:P12+ ?instance_of . # P2=30. P2+=34
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb, en". }
}
group by ?item ?itemLabel  ?instance_of ?instance_ofLabel
ORDER BY ?item ?distance


SELECT distinct ?person ?personLabel ?statements ?dob ?dod
</sparql>
(if(bound(?SALproposed), "yes", "") as ?FSA)
(if(bound(?RAIproposed), "yes", "") as ?RAI)
(if(bound(?resided), "yes", "") as ?residence) 
(if(bound(?main_date), "yes", "") as ?other_maindate)
(if(bound(?qual_d), "yes", "") as ?qual_date)


WHERE {
==Dates==
  ?person bnwdt:P3 bnwd:Q3 ;
        wikibase:statements ?statements .
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .}
 
  optional { ?person bnwdt:P15 ?dod .  }
  optional { ?person bnwdt:P26 ?dob .  }
 
  optional { # was elected FSA. comment out optional lines to get FSAs only...
    ?person bnp:P16 ?s .
        ?s bnps:P16 ?SALproposed .
        ?s bnpq:P22 bnwd:Q36 .  # successful Q36. will you end up with 2 rows if there's a successful and unsuccessful?
  } #/optional fsa
 
  optional { # was elected RAI. only one unsuccessful, so just ignore that bit.
    ?person bnwdt:P7 ?RAIproposed .
  }
 
  optional { ?person bnwdt:P29 ?resided . } # place of residence
 
  optional {
    # main dates, apart from birth and death: P133 (widowed) P132 (married edtf) P131 (had child) P130 (married pit)   
    ?person ( bnwdt:P130 | bnwdt:P131 | bnwdt:P132 | bnwdt:P133 ) ?main_date .
    } # /optional main dates
 
  optional {
    # qualifier dates 
    ?person ?p ?s .   
      ?s ?date_prop ?pqv .
        ?pqv wikibase:timeValue ?qual_d.
    } #/ optional qual dates
 
  FILTER (?statements >10) . # can adjust n statements here...
 
  FILTER (NOT EXISTS { ?person bnwdt:P15 ?dod .} || NOT EXISTS { ?person bnwdt:P26 ?dob .  } ) . # EITHER no date of birth OR no date of death. or swap with following line...
  #FILTER (NOT EXISTS { ?person bnwdt:P15 ?dod .} && NOT EXISTS { ?person bnwdt:P26 ?dob .  } ) . # no date of birth AND no date of death
   
  SERVICE wikibase:label {
      bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb".
  }
}
order by ?personLabel


</sparql>
===All the Dates for Women FSAs===


=== Places of residence that lack instance of locality===
<sparql tryit="1">
#title:fishing for dates for FSAs
# union query to get [hopefully] every date associated with women FSAs including main dates and qualifier dates


<sparql tryit="1">
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 3,837: Line 3,859:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpsv: <https://beyond-notability.wikibase.cloud/prop/statement/value/>
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>


SELECT distinct ?residence ?residenceLabel ?inst ?instLabel
SELECT distinct ?person ?personLabel ?prop_label ?qualLabel ?qual_dateLabel ?date_value ?s 
WHERE {  
#?prop ?qual
  ?resident bnwdt:P29 ?residence . # resided at
  filter not exists { ?residence bnwdt:P12 bnwd:Q2147 . } # that doesn't have instance of locality


   optional {?residence bnwdt:P12 ?inst .} # does it have instance of anything?
WHERE {
       ## Note: some have Q618 territory of the British Empire, which also lacks any instance of at present
 
 
   ?person bnwdt:P3 bnwd:Q3 . #select women
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }
  ?person bnwdt:P75 bnwd:Q8. # find only BN subjects having a FSA
}
 
ORDER BY ?residenceLabel
  # get stuff about ?person 
</sparql>
  ?person ?p ?s . 
 
       # get stuff about ?p .
      ?prop wikibase:claim ?p;   
        wikibase:statementProperty ?ps ; 
        wikibase:statementValue ?psv .   
      ?prop wikibase:propertyType ?date_prop_type .
      ?prop rdfs:label ?prop_label. filter(lang(?prop_label)="en-gb") .  
 


=== Locations that don't have Wikidata links or their Wikidata pages lack geocoordinates===
{  # main dates
 
 
<sparql tryit="1">
  # get dates detail via ?s and psv
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
  # gets edtf dates in simplified std wiki date format?
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
  # https://github.com/ProfessionalWiki/WikibaseEdtf 
PREFIX bnwdv: <https://beyond-notability.wikibase.cloud/value/>
      ?s ?psv ?wdv .
PREFIX bnwdt: <https://beyond-notability.wikibase.cloud/prop/direct/>
        ?wdv wikibase:timeValue ?date_value .
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/>
 
 
SELECT distinct ?locationLabel ?location ?wikidata ?wd_geo ?instanceLabel ?bn_geo
WHERE { 
    
    
   {?item bnwdt:P29  ?location . } # resided at
   } # /main dates
  union
  {?location bnwdt:P12 bnwd:Q2147 .} # OR has instance of locality
  union
  {?item bnwdt:P2  ?location . } # OR location P2
  # any other possibles ?
    
    
   optional { ?location bnwdt:P12 ?instance .  } # check instance of
   UNION
    
    
   optional {   
  { # qualifier dates
      ?location bnwdt:P117 ?ws . # wikidata id       
   
       
   # direct value (usually item) for the property
        bind(iri(concat("http://www.wikidata.org/entity/", str(?ws))) as ?wikidata) .
        ?s ?ps ?qual.
 
   
 
  # date qualifiers. [assumes no edtf in quals. ]
        SERVICE <https://query.wikidata.org/sparql> {
        ?s ?pq ?date_value .  
          optional {?wikidata wdt:P625 ?wd_geo .}  # does the wikidata page have geocoords?
          ?qual_date wikibase:qualifier ?pq .
        } # /wikidata service    
          ?qual_date wikibase:propertyType wikibase:Time.  
    } #/wikidata optional
          ?qual_date rdfs:label ?date_qual_label . filter(lang(?date_qual_label)="en") .
     
   } # /qual dates
    
    
  filter (!bound(?wd_geo) ). # no geocoords in wikidata. some may have coords in BN...
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }
    
    
  optional { ?location bnwdt:P153 ?bn_geo .  } # so check for coords in BN
} # /where
  ##filter (!bound(?bn_geo)) . # uncomment to filter those out as well
 
 
ORDER BY ?person ?prop_label ?date_value
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }
}
ORDER BY ?wikidata ?locationLabel


</sparql>
</sparql>


=== Archaeological sites that don't have National Heritage England list numbers ===
===Fetch any of multiple kinds of EDTF date for a woman===


<sparql tryit="1">
<sparql tryit="1">
#title:archaeological sites without National Heritage numbers
# a union query to fetch stuff for multiple properties, in this case dates recorded in EDTF which need slightly different handling from PIT dates
# main dates only; pretty sure there are no EDTF in qualifiers.
# updated to get date property labels
 
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 3,909: Line 3,929:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


SELECT ?item ?itemLabel ?location ?locationLabel
SELECT ?person ?personLabel ?date_edtf ?date_prop ?date_label ?s
(if(bound(?locEngland), "yes", "") as ?inEngland)


WHERE {
WHERE { ?person bnwdt:P3 bnwd:Q3 .  
  ?item bnwdt:P12 bnwd:Q86 . # item instance of archaeological site
      FILTER NOT EXISTS { ?person bnwdt:P4 bnwd:Q12 . }  
 
   
  filter not exists {?item bnwdt:P129 ?thing . } # without NH list number
      ## can do this union first but makes no difference to results except possibly a bit slower.
 
      #?person ( bnp:P131 | bnp:P132 | bnp:P133  ) ?s .
  optional { ?item bnwdt:P2 ?location . } # location if it has one
      #  ?s ( bnps:P131 | bnps:P132 | bnps:P133  ) ?date_edtf .
   optional { ?item bnwdt:P2 ?locEngland .
              ?locEngland bnwdt:P33+ bnwd:Q617.
          } # is the location in England


  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }
      ?person ?p ?s . # so you can get the statement id and date prop label
}
          ?claim wikibase:claim ?p;     
                rdfs:label ?date_label. filter(lang(?date_label)="en") .      


order by ?itemLabel
          ?s ?date_prop ?date_edtf .
             
    ## filter for edtf dates
    ## docs: https://github.com/ProfessionalWiki/WikibaseEdtf
 
    FILTER ( datatype(?date_edtf) = xsd:edtf  ) .
           
    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], en, en-gb". }
    }
 
ORDER BY ?personLabel


</sparql>
</sparql>


=== Date of latest edit for every item, according to WQS ===
===Full values: dates ===


<sparql tryit="1">
<sparql tryit="1">
#title:latest edits dates for wikibase items


## because of WQS disappearing data bugs this may not always match the latest edit in the page history
# query for full values to access the timeValue and timePrecision of a date, in this case a date of birth.
 
## why is a more complex query needed?
## simple value for a date doesn't differentiate between (eg) "1880" and "1 January 1880"; both are returned as 1 January 1880 (and SELECT DISTINCT will collapse them into a single result)
## there are 14 codes for precision from billion years to second. 7: century, 8: decade, 9: year, 10: month, 11: day
## NB additional bnpsv: prefix
## https://www.mediawiki.org/wiki/Wikibase/Indexing/RDF_Dump_Format#Value_representation


SELECT ?item ?date ?dateLabel
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/>
PREFIX bnpsv: <https://beyond-notability.wikibase.cloud/prop/statement/value/>
 
SELECT DISTINCT ?item ?itemLabel ?date ?precision
WHERE {
WHERE {
  ?item wikibase:timestamp ?date .
  ?item bnp:P26  ?statement. # date of birth (precision of these varies quite a bit)
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }
  ?statement bnpsv:P26 ?valueNode.
  ?valueNode wikibase:timeValue ?date.
   ?valueNode wikibase:timePrecision ?precision.
 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
}
order by ?date
ORDER BY ?date


</sparql>
</sparql>


=== Wikidata ID is a URL ===
=== Any main level date for women ===


<sparql tryit="1">
<sparql tryit="1">
 
# a query to get all types of main date for women
#title:check for accidental use of URL instead of wikidata ID
## all checked and fixed at 18/12/23 but adding the query in case it recurs


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 3,959: Line 4,002:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpsv: <https://beyond-notability.wikibase.cloud/prop/statement/value/>


SELECT DISTINCT ?person ?personLabel ?date_label  ?date ?date_prop_type ?date_prop ?link_prop


SELECT distinct ?item ?itemLabel ?wd_http
WHERE {
WHERE {
    
    
   ?item bnwdt:P117 ?wd_http . # wikidata id       
   ?person bnwdt:P3 bnwd:Q3 . # women
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .}     
    
    
  filter(strstarts(str(?wd_http), "http")).
  ?person ?p ?s .
 
      ?date_prop wikibase:claim ?p;   
        wikibase:statementValue ?psv ; 
        wikibase:propertyType ?date_prop_type; # property type = wikibase:Time OR wikibase:Edtf
        rdfs:label ?date_label. filter(lang(?date_label)="en-gb") . # what kind of date it is
 
        # direct link to relevant section of page
        BIND (REPLACE(STR(?date_prop), "^.*/([^/]*)$", "$1") as ?pid).
        bind(iri(concat(str(?person), "#", ?pid)) as ?link_prop ) .  
     
      ?s ?psv ?wdv . # for the date value
        ?wdv wikibase:timeValue ?date .  #timeValue gets pit and edtf
    #  ?wdv wikibase:timePrecision ?date_precision .  # optional
    
    
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
   # nb also possible to filter either/or time/edtf by property type
  # filter(?date_prop_type in (wikibase:Edtf, wikibase:Time ) ) . 
 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
}
ORDER BY ?itemLabel
ORDER BY ?personLabel ?date
 
</sparql>
</sparql>


=== Wikidata URL is not a URL ===
=== Counting Dates===


<sparql tryit="1">
<sparql tryit="1">
#title:check for wikidata URLs that don't start with http. could still be other problems!
# count distinct dates for women (who have at least one)
## all checked and fixed at 18/12/23 but adding the query in case of any recurring issues
# uncomment HAVING line for women with only one
 
# CAVEAT: there may be some discrepancies between dates shown on wiki pages and dates returned by sparql
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 3,986: Line 4,048:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpsv: <https://beyond-notability.wikibase.cloud/prop/statement/value/>
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>


SELECT ?person ?personLabel (COUNT(DISTINCT ?date_value) as ?count)


SELECT distinct ?item ?itemLabel ?wd_url
WHERE {
WHERE { 
    
{  # main dates
   ?item bnp:P117 ?ws . # wikidata id       
 
    ?ws bnpq:P14 ?wd_url .
  ?person bnwdt:P3 bnwd:Q3 . # women 
  filter(!strstarts(str(?wd_url), "http")).
  ?person ?p ?s .       
    
      ?s ?date_prop ?wdv .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
        ?wdv wikibase:timeValue ?date_value .
}
  } # /main dates
ORDER BY ?itemLabel
 
  UNION
    
   { # FIXME? qualifier dates. hmm... how is this different from above? I think something is missing.
   
    ?person bnwdt:P3 bnwd:Q3 . 
    ?person ?p ?s .  
      ?s ?date_prop ?pqv .
        ?pqv wikibase:timeValue ?date_value.
    }  # /qual dates
    
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en". }  
 
} # /where
GROUP BY ?person ?personLabel
# HAVING(?count=1)
 
ORDER BY ?count ?person
</sparql>
</sparql>


=== Oxford and Cambridge academic degrees potential date problems ===
=== Start dates that might not have accompanying end dates ===


<sparql tryit="1">
<sparql tryit="1">
#title:academic degree Oxford/Cambridge date issues
#title:Women with start dates that might not have accompanying end dates
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 4,011: Line 4,093:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpsv: <https://beyond-notability.wikibase.cloud/prop/statement/value/>
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>


SELECT distinct ?personLabel ?degreeLabel ?byLabel ?subjectLabel
SELECT distinct ?personLabel ?prop_label ?start_date  (if(bound(?end_date), "yes", "no") as ?has_end_date) ?person ?s
?date ?date_label  ?s ?person #?subject ?degree ?by ?university
#(group_concat(?other_date_label; SEPARATOR=" | ") as ?other_dates)


WHERE {
WHERE {
   ?person bnwdt:P3 bnwd:Q3 . #select women
   ?person bnwdt:P3 bnwd:Q3 .
    
 
   # academic degree = P59.  
  # need to find start times anywhere and get prop label so use claim.
   ?person bnp:P59 ?s .   
   ?person ?p ?s .
    ?s bnps:P59 ?degree . # type of degree
   ?claim wikibase:claim ?p;     
        rdfs:label ?prop_label. filter(lang(?prop_label)="en") . 
   
# pretty sure start time is qualifier only... 
# get start dates
# then optional end dates
# can only see end time/pit associated, and the only pit with start time is not relevant, but can't be sure that'll always be true.
# optional other that excludes both start/end but lists any other date types
    
    ?s bnpq:P27 ?start_date . # get start dates
 
    optional {?s bnpq:P28 ?end_date .} # check for end dates
 
  #  optional {
#      ?s ?pq ?other_date . # could there be any other associated dates?
     
#      ?qual_prop wikibase:qualifier ?pq;     
#            wikibase:propertyType wikibase:Time ; # nb *does not* include edtf dates but AFAICT there are none in qualifiers.
#            rdfs:label ?other_date_label . filter(lang(?other_date_label)="en-gb") . # what kind of date is it.
    
    
  # optional qualifiers for degree
        # drop both start and end this time. idk if there could be a faster way to do this?
#      filter not exists { ?s (bnpq:P27 | bnpq:P28) ?other_date .  }
    
    
  # P60 subject
# } # / optional other dates
    optional { ?s bnpq:P60 ?subject}
    
    
   # P61 conferred by
   # filter(!bound(?end_date)). # to filter out rows with an end date
    ?s bnpq:P61 ?by .
    
    
  # date with type
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en". }
    ?s ?pq ?date .     
      ?qual_prop wikibase:qualifier ?pq;
              wikibase:propertyType wikibase:Time ; # nb excludes edtf dates
              rdfs:label ?date_label . filter(lang(?date_label)="en") . # what kind of date is it.
     
# filter: (cambridge (Q1181) and before 1948) OR (oxford (Q364) and before 1920)
 
  filter( ( year(?date)<1920 && ?by=bnwd:Q364 ) || ( year(?date)<1948 && ?by=bnwd:Q1181 ) )
    
    
     
}  
  SERVICE wikibase:label {bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en".}
 
}
ORDER BY ?personLabel ?prop_label ?start_date
order by ?byLabel ?personLabel ?date ?degreeLabel
</sparql>
</sparql>


=== Position held: item v free text ===
 
=== End dates that might not accompanying start dates ===


<sparql tryit="1">
<sparql tryit="1">
# held position job titles item v held position free text
#title:Women with end dates that might not have accompanying start dates
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 4,061: Line 4,153:
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>


SELECT  
SELECT distinct ?personLabel ?prop_label ?end_date  
?work_label ?positionLabel ?position (count(*) as ?count)
(if(bound(?start_date), "yes", "no") as ?has_start_date) 
(group_concat(?other_date_label; SEPARATOR=" | ") as ?other_dates)  
?person ?s


WHERE {  
WHERE {
  ?person bnwdt:P3 bnwd:Q3 .
  ?person ?p ?s .
  ?claim wikibase:claim ?p;     
        rdfs:label ?prop_label. filter(lang(?prop_label)="en") . 
   
# get end dates
# then optional start dates
# can only see start time/pit associated, and in fact the only pit with start time is not relevant, but can't be sure that'll always be true.
# so an optional other that excludes both start/end but lists any other date types with group_concat
 
    ?s bnpq:P28 ?end_date . # get end dates
 
    optional {?s bnpq:P27 ?start_date .} # check for start dates


  ?person bnwdt:P3 bnwd:Q3 . # women
    optional {
        ?s ?pq ?other_date . # could there be any other associated dates?
        ?qual_prop wikibase:qualifier ?pq;     
              wikibase:propertyType wikibase:Time ; # nb *does not* include edtf dates but AFAICT there are none in qualifiers.
              rdfs:label ?other_date_label . filter(lang(?other_date_label)="en-gb") . # what kind of date
        # drop both start and end. idk if there could be a faster way to do this?
        filter not exists { ?s (bnpq:P27 | bnpq:P28) ?other_date . }
 
  } # / optional other dates
    
    
  # get work activities: held position / held position (free text) /  employed as
# filter(!bound(?start_date)). # to filter out rows with a start date (77 atm)
  ?person ( bnp:P17|bnp:P48 ) ?s . 
    
    
  ?person ?work_p ?s . # for work type label
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en". }
  ?work wikibase:claim ?work_p;     
        rdfs:label ?work_label. filter(lang(?work_label)="en") .
   
    # more about the position
    ?s ( bnps:P17|bnps:P48 ) ?position . 
    
    
  FILTER( !isBLANK(?position)  ) . # filter out <unknown value>
}  
 
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
}
group by ?work_label  ?positionLabel ?position
order by lcase(str(?positionLabel))
</sparql>


==== Women with position held free text ====
group by  ?personLabel ?prop_label ?end_date ?start_date ?has_start_date ?person ?s 
 
ORDER BY ?personLabel ?prop_label ?end_date
</sparql>
 
=== Women having children ===


<sparql tryit="1">
<sparql tryit="1">
# held position free text job titles
#title:women having children
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 4,098: Line 4,205:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpsv: <https://beyond-notability.wikibase.cloud/prop/statement/value/>
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>


SELECT ?person ?personLabel ?positionLabel
# lol defaultView:Timeline{"hide":["?s", "?date_prec", ""]}


WHERE {
# P131 had child in / P45 child
# a handful of P45 named children don't have dob though probably have dob in wikidata


  ?person bnwdt:P3 bnwd:Q3 . # women
SELECT distinct ?person ?personLabel ?childLabel ?date_value ?date_prec ?had_child_edtf ?note  
 
?s
  # held position (free text)
  ?person bnwdt:P48  ?position .  
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }
}
order by ?personLabel ?positionLabel
</sparql>


==Tools for batch processing and quality assurance work==
where {


===All people (by assigned gender), filtering out those already listed as instance of human===
  ?person bnwdt:P3 bnwd:Q3 . # select women
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
 
  # had child in (unnamed children)
  ?person bnp:P131 ?s .
      ?s bnps:P131 ?had_child_edtf . # keep the edtf date for reference, though i think you can just use the time value/prec with these.


<sparql tryit="1">
  # get dates detail via ?s and psv
# All people (by assigned gender), filtering out those already listed as instance of human
  # gets edtf dates in std wiki date format
  # https://github.com/ProfessionalWiki/WikibaseEdtf 
      ?s ?psv ?wdv .
        ?wdv wikibase:timeValue ?date_value .
        ?wdv wikibase:timePrecision ?date_prec .
 
  # filter edtf date.
  FILTER ( datatype(?had_child_edtf) = xsd:edtf ) . #shows only the raw EDTF string from the query results


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
  # interesting, when you put this after wikibase:timeValue it seems to get every timey-wimey statement for women who have had child in ? (but only one)
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
  #?person bnwdt:P131 ?had_child .  
PREFIX bnwdv: <https://beyond-notability.wikibase.cloud/value/>
   
PREFIX bnwdt: <https://beyond-notability.wikibase.cloud/prop/direct/>
  # not much added in quals for had child. only maybe note P47. some have sourcing circumstances.
PREFIX bnp: <https://beyond-notability.wikibase.cloud/prop/>
  optional { ?s bnpq:P47 ?note } #
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wd: <http://www.wikidata.org/entity/>


SELECT ?person ?personLabel ?assigned_genderLabel
  }
WHERE { 
  union
  ?person bnwdt:P3 ?assigned_gender .                       #select person
  {
  FILTER NOT EXISTS {?person bnwdt:P12 bnwd:Q2137 .}        #filter out people already listed as instance of human
  # named children (are any in both sections??? from dates looks possible a couple might be [wherry / hodgson])
  FILTER NOT EXISTS {?person bnwdt:P12 bnwd:Q12 .}           #filter out project team
  ?person bnp:P45 ?s.
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
        ?s bnps:P45 ?child .
      optional { ?child bnp:P26 ?ss .
                    ?ss bnps:P26 ?dob .
                    ?ss ?psv ?wdv .
                        ?wdv wikibase:timeValue ?date_value .
                        ?wdv wikibase:timePrecision ?date_prec .
              }
  }
    
    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }
}
}
ORDER BY ?personLabel
 
order by ?person ?date_value
</sparql>
</sparql>


===All places (by coordinate location on wikidata), filtering out places already listed as instance of locality===
=== Women who were adults in 1911 ===


<sparql tryit="1">
<sparql tryit="1">
# All places (by coordinate location on wikidata), filtering out places already listed as instance of locality
#title:Women who were adults in 1911 and their calculated ages
 
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 4,154: Line 4,271:
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wd:  <http://www.wikidata.org/entity/>
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX pr: <http://www.wikidata.org/prop/reference/>
PREFIX prov: <http://www.w3.org/ns/prov#>


SELECT ?place ?placeLabel ?WDitem ?WDcoordinate_location
SELECT distinct ?person ?personLabel ?statements ?dob ?dod ?age1911
 
WHERE {
  ?person bnwdt:P3 bnwd:Q3 ;
        wikibase:statements ?statements .
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .}
  ?person bnwdt:P26 ?dob . 


WHERE {
  #optional {  
  ?place bnwdt:P33 ?admin_area . #select items with 'located in the administrative territorial entity' statements
      ?person bnwdt:P15 ?dod .  
  ?place bnwdt:P117 ?Qnumber .   #get wikidata ID
   #}
  FILTER NOT EXISTS {?place bnwdt:P12 bnwd:Q2147 .}       #filter out places already listed as instance of locality
    
    
   #create reference to Wikibase entity
   filter(year(?dod) > 1911 && year(?dob) <=1893 ) .
  BIND(IRI(concat("http://www.wikidata.org/entity/", ?Qnumber)) as ?WDitem )  
  #on Wikibase do
  #if dod is made optional a more complex filter to include some women who were likely to still be alive in 1911. but doesnt add very many.
  SERVICE <https://query.wikidata.org/sparql> {
   #filter( ( year(?dob) <= 1893  && year(?dod) > 1911 ) || ( year(?dob) <= 1893 && year(?dob) >1870 ) ) .
        ?WDitem wdt:P625 ?WDcoordinate_location . #get coordinate location on wikidata
      }
 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }
}
GROUP BY ?place ?placeLabel ?WDitem ?WDcoordinate_location
ORDER BY ?placeLabel
</sparql>
 
===All items without a P12 (instance of) triple===
 
<sparql tryit="1">
#title:nearly all items without P12 (instance of)
#NB: the query will only find items that have at least one statement; this excludes a small number of Qs and a larger number (~35) of Ps.
#see separate query to find items without any statements
 
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/>
 
SELECT distinct ?item ?itemLabel
WHERE {
  ?item ?b ?c .
      ?prop wikibase:claim ?b;   
            wikibase:statementProperty ?ps.
      # ?prop wikibase:propertyType wikibase:WikibaseItem. # limit to P & Q Items. not necessary; only the claim is needed.
      # weirdness: it still causes some things that are definitely WikibaseItem to be dropped and idk why.
 
   FILTER NOT EXISTS {?item bnwdt:P12 ?instance .}
 
## FILTER(STRSTARTS(STR(?item), "https://beyond-notability.wikibase.cloud/entity/P")) . # uncomment to limit to P Properties
## FILTER(STRSTARTS(STR(?item), "https://beyond-notability.wikibase.cloud/entity/Q")) .  # or limit to Q items
 
  SERVICE wikibase:label {
      bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb".
  }
}
</sparql>
 
===Counts of items for each value of the property "instance of" (P12)===
 
<sparql tryit="1">
 
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/>
 
 
SELECT  ?value ?valueLabel  (count(*) as ?count)
WHERE { 
 
  VALUES (?p) { (bnwdt:P12) } 
 
  ?s ?p ?value.
    
    
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }
   #Date literals can be written by adding ^^xsd:dateTime to an ISO 8601 date string: "2012-10-29"^^xsd:dateTime
 
}
GROUP BY ?value ?valueLabel
 
ORDER BY lcase(?valueLabel) # order by is case sensitive
# or to order by count
# order by ?count
 
</sparql>
 
===Get all items (with 'instance of' statement) for duplicate checking in OpenRefine===
 
<sparql tryit="1">
# Get all items (with 'instance of' statement) for duplicate checking in OpenRefine
 
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/>
 
SELECT ?item ?itemLabel WHERE {
  ?item bnwdt:P12 ?anything .
  SERVICE wikibase:label {
      bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb".
  }
}
 
ORDER BY ?itemLabel
</sparql>
 
===All uses of <unknown value>===
 
<sparql tryit="1">
# Query to look for uses of <unknown value> (now including qualifiers)
 
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/>
 
SELECT distinct  ?item ?itemLabel  ?mainLabel ?sub_Label ?unknown_value_forLabel  ?unknown_value_for ?t
WHERE
{
{
  # qualifiers
  ?item ?p ?s.
 
  ?s ?sub ?sub_ .
  ?main wikibase:claim ?p.
  ?main wikibase:statementProperty ?sub. 
 
  ?s ?pq ?t .
 
  ?unknown_value_for wikibase:qualifier ?pq . 
  FILTER( isBLANK(?t)  ) . # filter for <unknown value>
  }
  UNION
  {
  # top level
  ?item ?p ?s.
  ?s ?ps ?t .
 
  ?unknown_value_for wikibase:claim ?p.
  ?unknown_value_for wikibase:statementProperty ?ps.
   
  FILTER( isBLANK(?t) ) .
  }
    
    
   SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
   bind(year("1911-07-01"^^xsd:dateTime) - year(?dob) as ?age1911 ).


    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }
}
}
ORDER BY ?itemLabel ?unknown_value_forLabel
</sparql>
=== Items without any statements ===
<sparql tryit="1">
#title:items with 0 statements
# NB: because of the WQS disappearing data bugs, a few of the items might in reality have n>0 statements. Some may be intentionally empty.


SELECT distinct ?item  ?itemLabel
ORDER BY ?personLabel
WHERE {
  ?item wikibase:statements 0 .


  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }
}
order by ?item
</sparql>
</sparql>
661

edits