Project:SPARQL/examples: Difference between revisions

(128 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 19: Line 21:
   ?SALstatement bnpq:P32 ?SALsignatory .
   ?SALstatement bnpq:P32 ?SALsignatory .
     SERVICE wikibase:label {
     SERVICE wikibase:label {
       bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb".
       bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb".
     }
     }
}
}
Line 55: Line 57:
   }
   }
     SERVICE wikibase:label {
     SERVICE wikibase:label {
       bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb".
       bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb".
     }
     }
}
}
Line 81: Line 83:
   ?SALstatement bnpq:P32 ?SALsignatory .
   ?SALstatement bnpq:P32 ?SALsignatory .
     SERVICE wikibase:label {
     SERVICE wikibase:label {
       bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb".
       bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb".
     }
     }
   BIND( "7C4DCD" AS ?rgb ) .
   BIND( "7C4DCD" AS ?rgb ) .
Line 109: Line 111:
   OPTIONAL {?RAIstatement bnpq:P8 ?RAIseconded .}
   OPTIONAL {?RAIstatement bnpq:P8 ?RAIseconded .}
     SERVICE wikibase:label {
     SERVICE wikibase:label {
       bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb".
       bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb".
     }
     }
BIND( "7C4DCD" AS ?rgb ) .
BIND( "7C4DCD" AS ?rgb ) .
Line 137: Line 139:
     OPTIONAL {?SALstatement bnpq:P1 ?date .}                #option select date of proposal
     OPTIONAL {?SALstatement bnpq:P1 ?date .}                #option select date of proposal
     OPTIONAL {?SALstatement bnpq:P22 ?elected .}            #option select if elected
     OPTIONAL {?SALstatement bnpq:P22 ?elected .}            #option select if elected
   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 ?date
ORDER BY ?date
Line 161: Line 163:
   ?SALstatement bnpq:P32 ?co_signatory .
   ?SALstatement bnpq:P32 ?co_signatory .
     SERVICE wikibase:label {
     SERVICE wikibase:label {
       bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb".
       bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en".
     }
     }
}
}
Line 190: Line 192:
   ?person bnwdt:P75 bnwd:Q8. # find only BN subjects having a FSA (h/t @Tagishsimon)
   ?person bnwdt:P75 bnwd:Q8. # find only BN subjects having a FSA (h/t @Tagishsimon)


   ?person bnp:P117 ?wikidata_ID . #look for wikidata ID on person page
   ?person bnwdt:P117 ?wikidata_ID . #look for wikidata ID on person page
   ?wikidata_ID bnpq:P14 ?wikidata_url .
   bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_ID))) as ?item) .
  BIND(IRI(REPLACE(?wikidata_url,"https://www.wikidata.org/wiki/","http://www.wikidata.org/entity/")) 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
Line 199: Line 200:
       }
       }
    
    
   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
ORDER BY ?personLabel
Line 217: Line 218:
PREFIX wd:  <http://www.wikidata.org/entity/>
PREFIX wd:  <http://www.wikidata.org/entity/>


SELECT distinct ?person ?personLabel  ?prop ?propLabel  ?pq_value  ?qual_prop_label ?sal  
SELECT distinct ?person ?personLabel  ?prop ?propLabel  ?pq_value  ?qual_propLabel ?sal  


WHERE {   
WHERE {   
Line 236: Line 237:
          
          
         ?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 rdfs:label ?qual_prop_label. filter(lang(?qual_prop_label)="en-gb") .  
         ?qual_prop wikibase:propertyType ?qual_prop_type
         #?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 259: Line 260:
PREFIX wd:  <http://www.wikidata.org/entity/>
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  ?prop ?propLabel ?prop_type  ?pq_value ?pq_valueLabel ?qual_propLabel ?qual_prop_type ?rai ?s


WHERE {   
WHERE {   
Line 279: Line 280:
          
          
         ?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 rdfs:label ?qual_prop_label. filter(lang(?qual_prop_label)="en-gb") .  
         ?qual_prop wikibase:propertyType ?qual_prop_type .
         ?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
</sparql>
</sparql>


==Work==
===FSAs who didn't interact with SAL [in Q1 or Q8] apart from record of election ===


===People, the positions that they held, and when they held them (if known)===
<sparql tryit="1">


<sparql tryit="1">
#title: FSAs with no record of interacting with SAL in Q1 / Q8
# People, the positions that they held, and when they held them (if known)
# 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!


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 303: Line 305:
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
(if(bound(?sal), "yes", "no") as ?q1_q8_interaction)


SELECT ?person ?personLabel ?position ?positionLabel ?date ?startdate ?enddate
WHERE {   
WHERE {   
   ?person bnp:P17 ?hadposition . #using 'held position' for roles not at institutions that typically employed people on a formal, longstanding basis.
   ?person bnwdt:P3 bnwd:Q3 . # women
   ?hadposition bnps:P17 ?position
  ?person bnwdt:P16 ?whatever . # FSAs
   OPTIONAL {?hadposition bnpq:P1 ?date .}
 
  OPTIONAL {?hadposition bnpq:P27 ?startdate .}
  # optional query FSAs who do have record of interaction.
  OPTIONAL {?hadposition bnpq:P28 ?enddate .}
  optional {    
    ?person ?p ?s .
    
      ?prop wikibase:claim ?p;     
        wikibase:statementProperty ?ps.  
 
      # union query to get both q8 and q1  but *drop* fellow of q8 p75 and p5 q8 archives at (Q712; catalogue says archives bequeathed by another person)
      { ?s ?ps bnwd:Q8 . filter not exists { ?s (bnps:P75|bnps:P5) ?anything . }
      union
      { ?s ?ps bnwd:Q1 . }
      ?s ?ps ?sal.
   
  } #/optional union. 
 
  # to filter out interacters completely uncomment the next line and comment out if(bound) in select
  # filter(!bound(?sal)).
 
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
}
}
ORDER BY ?positionLabel ?dateLabel
ORDER BY ?q1_q8_interaction  ?personLabel
</sparql>
</sparql>


===People, the positions that they held, the institution that employed them (if known), and date information (if known)===
=== RAI members who didn't interact with RAI [in Q29 or Q35] apart from record of election ===


<sparql tryit="1">
<sparql tryit="1">
# People, the positions that they held, the institution that employed them (if known), and date information (if known)
 
#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"
# 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.


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 328: Line 353:
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
(if(bound(?rai), "yes", "no") as ?interaction)


SELECT ?person ?personLabel ?position ?positionLabel ?employer ?employerLabel ?date ?startdate ?enddate
WHERE {   
WHERE {   
   ?person bnp:P105 ?hadposition . #using 'employed as' for roles at institutions that typically employed people on a formal, longstanding basis.
   ?person bnwdt:P3 bnwd:Q3 . # women
   ?hadposition bnps:P105 ?position
   ?person bnwdt:P7 ?rai_elected .
   OPTIONAL {?hadposition bnpq:P18 ?employer .}
 
   OPTIONAL {?hadposition bnpq:P1 ?date .}
   # optional query RAIs who do have record of interaction.
  OPTIONAL {?hadposition bnpq:P27 ?startdate .}
  optional {  
  OPTIONAL {?hadposition bnpq:P28 ?enddate .}
    ?person ?p ?s .
    
      ?prop wikibase:claim ?p;     
        wikibase:statementProperty ?ps.  
 
      # union query to get both q8 and q1  but *drop* member of p67. a couple of rogue P75 # to get both q35 and q29
      { ?s ?ps bnwd:Q35 . filter not exists { ?s (bnps:P67|bnps:P75) ?member . }
      union
      { ?s ?ps bnwd:Q29 . }
      ?s ?ps ?rai.
   
  } #/optional union. 
 
  # to filter out the interacters completely uncomment the next line and comment out if(bound) in select
  # filter(!bound(?rai)).
 
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
}
}
ORDER BY ?positionLabel ?employerLabel
 
ORDER BY ?interaction  ?personLabel
</sparql>
</sparql>


=== Women and their work activities, with employers/organisations and dates ===
==Work==
 
===People, the positions that they held, and when they held them (if known)===


<sparql tryit="1">
<sparql tryit="1">
# query for women's different kinds of work activity, with employer/organisation and dates where available
# People, the positions that they held, and when they held them (if known)


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 354: Line 401:
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 ?work_label ?positionLabel ?date_label ?date
SELECT ?person ?personLabel ?position ?positionLabel ?date ?startdate ?enddate
?employerLabel ?organisedLabel ?ofLabel
WHERE { 
?s ?person ?work ?position ?employer ?organised ?of
  ?person bnp:P17 ?hadposition . #using 'held position' for roles not at institutions that typically employed people on a formal, longstanding basis.
  ?hadposition bnps:P17 ?position
  OPTIONAL {?hadposition bnpq:P1 ?date .}
  OPTIONAL {?hadposition bnpq:P27 ?startdate .}
  OPTIONAL {?hadposition bnpq:P28 ?enddate .}
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }
}
ORDER BY ?positionLabel ?dateLabel
</sparql>
 
===People, the positions that they held, the institution that employed them (if known), and date information (if known)===
 
<sparql tryit="1">
# People, the positions that they held, the institution that employed them (if known), and date information (if known)


WHERE {
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
   
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
  ?person bnwdt:P3 bnwd:Q3 . # women
PREFIX bnwdv: <https://beyond-notability.wikibase.cloud/value/>
 
PREFIX bnwdt: <https://beyond-notability.wikibase.cloud/prop/direct/>
  # get work activities: held position / held position (free text) / employed as
PREFIX bnp: <https://beyond-notability.wikibase.cloud/prop/>
  ?person ( bnp:P17|bnp:P48|bnp:P105 ) ?s .
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
 
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
  ?person ?work_p ?s . # for activity type label
 
  ?work wikibase:claim ?work_p;     
SELECT ?person ?personLabel ?position ?positionLabel ?employer ?employerLabel ?date ?startdate ?enddate
        rdfs:label ?work_label. filter(lang(?work_label)="en-gb") .  
WHERE {  
   
  ?person bnp:P105 ?hadposition . #using 'employed as' for roles at institutions that typically employed people on a formal, longstanding basis.
    # more about the position
  ?hadposition bnps:P105 ?position
    ?s ( bnps:P17|bnps:P48|bnps:P105 ) ?position .
  OPTIONAL {?hadposition bnpq:P18 ?employer .}
    # employer / organised by / of (incl free text). TODO: check whether these are mutually exclusive; could make this a union.
  OPTIONAL {?hadposition bnpq:P1 ?date .}
    # for position held, employer>of [ontology day discussion 13/9/23]
  OPTIONAL {?hadposition bnpq:P27 ?startdate .}
    OPTIONAL { ?s bnpq:P18 ?employer .}
  OPTIONAL {?hadposition bnpq:P28 ?enddate .}
    OPTIONAL { ?s bnpq:P109 ?organised .}
    OPTIONAL { ?s ( bnpq:P78 | bnpq:P66 ) ?of .}
  # optional { ?s bnpq:P2 ?location . } # sometimes there is location and no employer/org/of
   
  # dates
    optional {
    ?s ?pq ?date .
     
      ?qual_prop wikibase:qualifier ?pq;     
              #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.
              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". }  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
 
}
} # /where
ORDER BY ?positionLabel ?employerLabel
 
ORDER BY ?person 
 
</sparql>
</sparql>


===Women with publications listed in indexes of archaeological papers circa 1870 - 1907===
=== Women and their work activities, with employers/organisations and dates ===


<sparql tryit="1">
<sparql tryit="1">
# Women with publications listed in indexes of archaeological papers by journal
# query for women's different kinds of work activity, with employer/organisation and dates where available


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 412: Line 452:
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
SELECT distinct ?personLabel ?workLabel ?positionLabel ?date_pLabel ?date
WHERE { 
?employerLabel ?organisedLabel ?ofLabel ?person
  ?person bnwdt:P3 bnwd:Q3 . # select women
#?s  ?position  ?of ?work ?employer ?organised
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
  ?person bnwdt:P76 bnwd:Q419 . # select people with publications listed in indexes of archaeological papers
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }
}
ORDER BY ?personLabel
</sparql>
 
===Women with publications in indexes of archaeological papers, listed by name of journal ===


<sparql tryit="1">
WHERE {
 
   
# Women with publications listed in indexes of archaeological papers circa 1870 - 1907
   ?person bnwdt:P3 bnwd:Q3 . # women
 
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  ?inLabel ?personLabel ?in ?person
WHERE {
   ?person bnwdt:P3 bnwd:Q3 . # select women
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
  ?person bnwdt:P76 bnwd:Q419 . # select people with publications listed in indexes of archaeological papers
    
    
   ?person bnp:P76 ?s .   
  # get work activities: held position / held position (free text) /  employed as
    #?s ?p ?fish .
   ?person ( bnp:P17|bnp:P48|bnp:P105 ) ?s .   
    # anything of note apart from recorded in? some P83 collaborated with. a few dates; a few text notes.
    
    
   ## works published in P101
   ?person ?work_p ?s . # for activity type label
     #optional {  
  ?work wikibase:claim ?work_p . 
       ?s bnpq:P101 ?in .  
   
    #}
    # more about the position
    ?s ( bnps:P17|bnps:P48|bnps:P105 ) ?position . 
    # employer / organised by / of (incl free text). TODO: check whether these are mutually exclusive; could make this a union.
    # for position held, employer>of [ontology day discussion 13/9/23]
    OPTIONAL { ?s bnpq:P18 ?employer .} 
    OPTIONAL { ?s bnpq:P109 ?organised .}
    OPTIONAL { ?s ( bnpq:P78 | bnpq:P66 ) ?of .}
  # optional { ?s bnpq:P2 ?location . } # sometimes there is location and no employer/org/of
      
  # dates
    optional {
    ?s ?pq ?date .
        
      ?date_p wikibase:qualifier ?pq;     
              #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.
              #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,en-gb". }  
    
    
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
} # /where
}
 
ORDER BY ?inLabel ?personLabel
ORDER BY ?person 
 
</sparql>
</sparql>


 
===Women with publications listed in indexes of archaeological papers circa 1870 - 1907===
== Professional Activities and Organisations ==
 
=== Women's service on committees etc (P102) ===


<sparql tryit="1">
<sparql tryit="1">
# Women with publications listed in indexes of archaeological papers by journal


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


SELECT distinct ?personLabel ?serviceLabel ?service ?qual_prop_label  ?qualLabel  ?qual ?person #?s
SELECT ?person ?personLabel
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 . # select people with publications listed in indexes of archaeological papers
   ?person bnp:P102 ?s .  # served on P102
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
  ?person ?p ?s .    # for claim
 
  ?served wikibase:claim ?p;     
        wikibase:statementProperty ?ps;
        wikibase:propertyType ?prop_type.   
   
    ?s ?ps ?service . # service on what
   
  #qualifiers, if any
    optional {
    ?s ?pq ?qual .     
        ?qual_prop wikibase:qualifier ?pq;     
              wikibase:propertyType ?prop_type;
              rdfs:label ?qual_prop_label . filter(lang(?qual_prop_label)="en-gb") . # what kind of thing
      } # /quals
 
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb, en". }  
}
}
 
ORDER BY ?personLabel
ORDER BY ?personLabel ?s
</sparql>
</sparql>


==Place==
===Women with publications in indexes of archaeological papers, listed by name of journal ===


===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">
# Women with publications listed in indexes of archaeological papers circa 1870 - 1907
# 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 515: Line 534:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


#defaultView:Graph
SELECT ?inLabel ?personLabel ?in ?person
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 out project team
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2036 .}
  ?person bnwdt:P76 bnwd:Q419 . # select people with publications listed in indexes of archaeological papers
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2037 .}
 
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2038 .}
  ?person bnp:P76 ?s .
     FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2039 .}
     #?s ?p ?fish .  
     FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2040 .}
     # anything of note apart from recorded in? some P83 collaborated with. a few dates; a few text notes.  
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2041 .}
 
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2042 .}
  ## works published in P101
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q39.}
     #optional {  
     FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2534.}
      ?s bnpq:P101 ?in .  
  ?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". }  
}
}
ORDER BY ?inLabel ?personLabel
</sparql>
</sparql>


===People whose residence was at one time in the east or south east of England, excluding London===
=== Lecturers ===


<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 546: Line 565:
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 ?resident ?residentLabel ?residenceLabel ?districtLabel ?countyLabel ?regionLabel
SELECT distinct ?person ?personLabel  ?positionLabel
WHERE {   
?organisedLabel ?ofLabel
   ?resident bnwdt:P29 ?residence .
?qual_propLabel ?qualLabel
   ?residence bnwdt:P33 ?district .
#?position ?of  ?work ?organised  ?date_precision ?qual_prop ?date ?qual ?workLabel
   ?district bnwdt:P33 ?county .
?s
   ?county bnwdt:P33 ?region .
 
     {?county bnwdt:P33 bnwd:Q67 .}
WHERE {
     UNION
   
     {?county bnwdt:P33 bnwd:Q85 .}
  ?person bnwdt:P3 bnwd:Q3 . # women
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
 
}
  # work activities: held position / held position (free text) / employed as
ORDER BY ?regionLabel ?countyLabel ?districtLabel ?residenceLabel
   #?person ( bnp:P17|bnp:P48|bnp:P105 ) ?s .
 
   ?person ?work_p ?s . # for activity type label
    ?work wikibase:claim ?work_p . 
 
    ?s ?bnps ?position . 
    # freelance and extension lecturing (q701 and q3021)
    { ?s ?bnps bnwd:Q701  . } union { ?s ?bnps bnwd:Q3021 . }
    
    # employer / organised by / of (incl free text).
    OPTIONAL { ?s bnpq:P109 ?organised .}
    OPTIONAL { ?s ( bnpq:P78 | bnpq:P66 ) ?of .}
  # optional { ?s bnpq:P2 ?location . } # do locations separately.
   
  # dates with precision
#   optional {
#    ?s (bnpqv:P1 | bnpqv:P27 | bnpqv:P28  ) ?pqv.
#     ?s ?pqq ?pqv . # just gets the uri but doesnt seem to cause dups
#        ?pqv wikibase:timeValue ?date . 
#        ?pqv wikibase:timePrecision ?date_precision .
#    }
     
     # qualifiers
     optional {
      ?s ?pq ?qual . 
        ?qual_prop wikibase:qualifier ?pq .
     
      } # /dates
 
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
 
} # /where
 
ORDER BY ?person ?
</sparql>
</sparql>


===People whose residence was at one time in North East England or Yorkshire and the Humber===
== Professional Activities and Organisations ==
 
=== Women's service on committees etc (P102) ===


<sparql tryit="1">
<sparql tryit="1">
# 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 574: Line 630:
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 distinct ?personLabel ?serviceLabel ?qual_propLabel  ?qualLabel  ?qual ?person ?s # ?service
WHERE {   
WHERE {   
   ?resident bnwdt:P29 ?residence .
   ?person bnwdt:P3 bnwd:Q3 . # select women
   ?residence bnwdt:P33 ?district .
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
   ?district bnwdt:P33 ?county .
 
  ?county bnwdt:P33 ?region .
   ?person bnp:P102 ?s .   # served on P102
     {?county bnwdt:P33 bnwd:Q72 .}
    ?s bnps:P102 ?service .
    UNION
      
    {?county bnwdt:P33 bnwd:Q200 .}
  optional { #qualifiers, if any
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
    ?s ?pq ?qual .    
        ?qual_prop wikibase:qualifier ?pq.    
      } # /quals
 
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb, en". }  
}
}
ORDER BY ?regionLabel ?countyLabel ?districtLabel ?residenceLabel
 
ORDER BY ?personLabel ?s
 
</sparql>
</sparql>


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


<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:women corresponding with individuals


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 601: Line 664:
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 ?person ?personLabel ?correspondent ?correspondentLabel  ?qualifier_label
WHERE {
?qualifier ?qualifierLabel
   ?resident bnwdt:P29 ?residence .
 
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2035 .}
where
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2036 .}
{
     FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2037 .}
   ?person bnwdt:P3 bnwd:Q3 .
     FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2038 .}
 
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2039 .}
  ?person bnp:P73 ?s .
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2040 .}
     ?s bnps:P73 ?correspondent . # corresponded with 
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2041 .}
     ?correspondent bnwdt:P12 bnwd:Q2137 . # correspondent is i/o human
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2042 .}
 
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q39.}
    optional
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2534.}
      { ?s ?qual_p ?qualifier .  
  ?residence bnwdt:P33 ?district .
        ?qual_prop wikibase:qualifier ?qual_p.
  ?district bnwdt:P33 ?county .
        ?qual_prop rdfs:label ?qualifier_label. filter(lang(?qualifier_label)='en') .
   ?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,en-gb". }
}
}
ORDER BY ?regionLabel ?countyLabel ?districtLabel ?residentLabel
 
ORDER BY ?person
</sparql>
</sparql>


===People sorted by the number of places they lived, including the number of cites/towns/villages they lived in===
=== Women's service: information about "of" qualifier, including alternatives for locations===


<sparql tryit="1">
<sparql tryit="1">
#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/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 633: Line 703:
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 ?personLabel ?serviceLabel ?of ?ofLabel ?of_location ?of_locationLabel ?of_geo ?of_long ?of_lat ?person #?s
  ?person bnwdt:P3 bnwd:Q3 ;
 
        wikibase:statements ?statements .
WHERE {
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
  ?person bnwdt:P3 bnwd:Q3 . # select women
   ?person bnp:P29/bnps:P29 ?resided.
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .}  
   SERVICE wikibase:label {
 
       bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb".
   ?person bnp:P102 ?s . 
  }
    ?s bnps:P102 ?service .
} group by ?person ?personLabel ?statements order by desc(?residence_count)
    ?s bnpq:P78 ?of .
# Credit to @Tagishsimon for helping me figure out the counting logic here
    
</sparql>
       #optional { ?of bnwdt:P117 ?of_wikidata. }  #todo
 
      optional { ?of bnwdt:P2 ?of_location.


===Places at which women resided, sorted by how many residences all women had at a given village/town/city/London area===
            optional { ?of_location bnwdt:P153 ?bn_of_geo . }


<sparql tryit="1">
            optional { ?of_location bnwdt:P117 ?wd_of_loc .
# Places at which women resided, sorted by how many residences all women had at a given village/town/city/London area
                            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.


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
      BIND(COALESCE(?bn_of_geo, ?wd_of_geo) AS ?of_geo).  # if we have bn_geo use that, then try wd_geo
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
 
      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>
 
 
=== All activities for women that have instance of public and professional activities===
 
<sparql tryit="1">
#title:women and PPA
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 658: Line 751:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


SELECT ?residence ?residenceLabel (count(?residence) as ?residence_count) #count number of places at which women lived
SELECT ?person ?personLabel ?ppa_label ?ppa ?ppa_valueLabel ?ppa_value ?s
WHERE {   
WHERE {   
   ?person bnwdt:P3 bnwd:Q3 . # select women
   ?person bnwdt:P3 bnwd:Q3 .
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
   ?person ?p ?s . 
   ?person bnwdt:P29 ?residence . # select residences
      ?ppa wikibase:claim ?p;     
        wikibase:statementProperty ?ps.     
         
      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". }  
}
}
GROUP BY ?residence ?residenceLabel
 
ORDER BY DESC(?residence_count)
order by ?personLabel ?ppa_label
</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)===


===Counts of PPAs for women===
<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: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 682: Line 786:
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 ?ppa_label ?ppa  (count(?ppa) as ?count)
WHERE {   
WHERE {   
   ?person bnwdt:P3 bnwd:Q3 . # select women
   ?person bnwdt:P3 bnwd:Q3 .
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
   ?person ?p ?s . 
   ?person bnwdt:P29 ?residence . # select residences
  ?residence bnwdt:P33 ?district . #select districts
      ?ppa wikibase:claim ?p;     
        wikibase:statementProperty ?ps.     
         
      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". }  
}
}
GROUP BY ?district ?districtLabel
group by ?ppa_label ?ppa
ORDER BY DESC(?district_count)
 
order by desc(?count)
</sparql>
</sparql>


===Counties in which women resided, sorted by how many residences all women had in that county===
=== PPA Buckets for Women ===


<sparql tryit="1">
<sparql tryit="1">
# Counties in which women resided, sorted by how many residences all women had in that county
#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 707: Line 824:
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 distinct ?person ?personLabel ?ppa_label ?ppa ?bucket
?ppa_value ?ppa_valueLabel
?s
WHERE {   
WHERE {   
   ?person bnwdt:P3 bnwd:Q3 . # select women
   ?person bnwdt:P3 bnwd:Q3 .
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
   ?person ?p ?s . 
  ?person bnwdt:P29 ?residence . # select residences
   ?residence bnwdt:P33 ?district . #select districts
      ?ppa wikibase:claim ?p;     
   ?district bnwdt:P33 ?county . #select counties
        wikibase:statementProperty ?ps.  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
 
      # note: i think you need rdfs:label (*Label won't work) for the bind()
 
      SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb".
                      ?ppa rdfs:label ?ppa_label.  
                } # /label service
    
      ?ppa bnwdt:P12 bnwd:Q151 . # i/o ppa     
      # get stuff about ?s
      ?s ?ps ?ppa_value.
 
    # note: it would be possible to write this to use ppa rather than ppa_label
    # 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". }  
}
}
GROUP BY ?county ?countyLabel
 
ORDER BY DESC(?county_count)
order by ?personLabel ?ppa_label
</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====
 
=== Suffrage-related activities ===


<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
#title:initial query for suffrage activities


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 733: Line 882:
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 distinct ?person ?personLabel ?mainLabel ?sub_Label ?qualLabel ?locationLabel ?date
# ?pq ?sub_ ?qual ?main
?s
 
WHERE {   
WHERE {   
  ?person bnwdt:P3 bnwd:Q3 . # select women
 
  ?person bnwdt:P76 bnwd:Q419 . #select women recorded in CAS Indexes of Archaeological Papers
    ?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:P29 ?residence . # select residences
 
   ?residence bnwdt:P33 ?district . #select districts
    ?person ?p ?s .
   ?district bnwdt:P33 ?county . #select counties
    
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
      ?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 . }
 
  # union
  {
    # a qualifier (anywhere) has i/o suffrage activity
      ?s bnpq:P12 bnwd:Q1166.
    }
 
# 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". }
 
}
}
GROUP BY ?county ?countyLabel
order by ?personLabel ?mainLabel
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====
==Place==
 
=== All the things in BN that can be mapped ===


<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
#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 760: Line 956:
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 distinct ?locationLabel ?location ?wikidata ?wd_geo
 
WHERE {   
WHERE {   
   ?person bnwdt:P3 bnwd:Q3 . # select women
    
  ?person bnwdt:P16 ?signatory . #select women who were nominated for election to FSA
      ?location bnwdt:P117 ?ws . # wikidata id       
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
       
  ?person bnwdt:P29 ?residence . # select residences
        bind(iri(concat("http://www.wikidata.org/entity/", str(?ws))) as ?wikidata) .
   ?residence bnwdt:P33 ?district . #select districts
        SERVICE <https://query.wikidata.org/sparql> {
   ?district bnwdt:P33 ?county . #select counties
            ?wikidata wdt:P625 ?wd_geo . # does the wikidata page have geocoords?
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
        } # /wikidata service    
}
    
GROUP BY ?county ?countyLabel
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
ORDER BY DESC(?county_count)
}
ORDER BY ?wikidata ?locationLabel
</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 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 of residence for women nominated to RAI, 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 787: Line 985:
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 .
  ?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 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 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 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 814: Line 1,017:
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:P23 bnwd:Q29 . #select women who spoke at RAI Meeting
   ?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 who exhibited at RAI meetings, 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 who exhibited at RAI meetings, 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 841: Line 1,044:
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:P13 bnwd:Q29 . #select women who exhibited at RAI Meeting
   ?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 recorded in CAS Indexes of Archaeological Papers, on a map====
===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">
# 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 867: Line 1,071:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


#defaultView:Map{"hide":["?geo", "?wikidata"]}
SELECT ?resident ?residentLabel ?district ?districtLabel ?county ?countyLabel ?region ?regionLabel
#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
   ?resident bnwdt:P29 ?residence .
  ?person bnwdt:P76 bnwd:Q419 . #select women recorded in CAS Indexes of Archaeological Papers
    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 .}
      optional { ?county bnwdt:P153 ?geo2 . } # for geocoords added to BN
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2040 .}
 
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2041 .}
      optional {    
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2042 .}
      ?county bnp:P117 ?ws . # wikidata id P117       
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q39.}
        ?ws bnpq:P14 ?wikidata_url .
    FILTER NOT EXISTS {?resident bnwdt:P29 bnwd:Q2534.}
        BIND(IRI(REPLACE(?wikidata_url, "https://www.wikidata.org/wiki/", "http://www.wikidata.org/entity/")) as ?wikidata )
   ?residence bnwdt:P33 ?district .
    
  ?district bnwdt:P33 ?county .
      SERVICE <https://query.wikidata.org/sparql> {
   ?county bnwdt:P33 ?region .
   
        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". }  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
}
}
ORDER BY ?regionLabel ?countyLabel ?districtLabel ?residentLabel
</sparql>
</sparql>


====Counties of residence for women nominated as FSAs, on a map====
===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">
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 913: Line 1,103:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


#defaultView:Map{"hide":["?geo", "?wikidata"]}
SELECT ?person ?personLabel (count(?resided) as ?residence_count) (count(distinct ?resided) as ?residence_distinct) WHERE {
#title:Counties of residence for women nominated as FSAs
  ?person bnwdt:P3 bnwd:Q3 ;
 
        wikibase:statements ?statements .
SELECT distinct ?person ?personLabel ?county ?countyLabel ?wikidata ?geo 
WHERE {
  ?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 bnp:P29/bnps:P29 ?resided.
   ?person bnwdt:P29 ?residence . # select residences
   SERVICE wikibase:label {
  ?residence bnwdt:P33 ?district . #select districts
      bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb".
  ?district bnwdt:P33 ?county . #select counties
  }
      optional { ?county bnwdt:P153 ?geo2 .  } # for geocoords added to BN
} group by ?person ?personLabel ?statements order by desc(?residence_count)
 
# Credit to @Tagishsimon for helping me figure out the counting logic here
      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". }  
}
</sparql>
</sparql>


===Places at which women resided, sorted by how many residences all women had at a given village/town/city/London area===


==== Counties of residence for women nominated to RAI, on a map ====
<sparql tryit="1">
# Places at which women resided, sorted by how many residences all women had at a given village/town/city/London area


<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 956: Line 1,128:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


#defaultView:Map{"hide":["?geo", "?wikidata"]}
SELECT ?residence ?residenceLabel (count(?residence) as ?residence_count) #count number of places at 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
   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
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
  ?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". }  
}
}
GROUP BY ?residence ?residenceLabel
ORDER BY DESC(?residence_count)
</sparql>
</sparql>


==== Counties of residence for women who spoke at RAI meetings, 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/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 998: Line 1,152:
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 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
   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
   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 . } # 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 who exhibited at RAI meetings, 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">
#title:Counties of residence for women who exhibited at RAI meetings 
# 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,043: Line 1,177:
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
   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
   ?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 .
        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". }  
}
</sparql>
</sparql>


===Regions in which women resided, sorted by how many residences all women had in that region===
====Counties of residence for women recorded in CAS Indexes of Archaeological Papers, sorted by how many residences all women had in that county====


<sparql tryit="1">
<sparql tryit="1">
# Regions in which women resided, sorted by how many residences all women had in that region
# 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/>
Line 1,086: Line 1,203:
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  
SELECT ?county ?countyLabel (count(?county) as ?county_count) #count number of counties in which women lived  
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
   ?district bnwdt:P33 ?county . #select counties
  ?county bnwdt:P33 ?region . #select region
  FILTER NOT EXISTS {?region bnwdt:P117 "Q145" .} #filter out UK (where UK is sub-region of NI)
   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
GROUP BY ?county ?countyLabel
ORDER BY DESC(?region_count)
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====


=== Women living in London during the 1890s ===
<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">
# 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,115: Line 1,230:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


SELECT distinct ?personLabel ?residenceLabel ?date_label ?date ?person ?residence
SELECT ?county ?countyLabel (count(?county) as ?county_count) #count number of counties in which women lived
 
WHERE {   
WHERE {   
   ?person bnwdt:P3 bnwd:Q3 . # women
   ?person bnwdt:P3 bnwd:Q3 . # select women
   ?person bnp:P29 ?s .   # resided at
   ?person bnwdt:P16 ?signatory . #select women who were nominated for election to FSA
    ?s bnps:P29 ?residence .
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
      ?residence bnwdt:P33+ bnwd:Q322 . # in Q322 greater london.
   ?person bnwdt:P29 ?residence . # select residences
   
  ?residence bnwdt:P33 ?district . #select districts
   # dates. About 30? not dated.
   ?district bnwdt:P33 ?county . #select counties
    #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).
 
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
}
}
ORDER BY ?person ?date
GROUP BY ?county ?countyLabel
 
ORDER BY DESC(?county_count)
</sparql>
</sparql>


=== Where did women who published in Folklore/Folk-lore Record live? ===
====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">
# Map of all places of residence for women who had publications in Folklore/Folk-lore Record
# 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,154: Line 1,257:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


#defaultView:Map{"hide":["?geo", "?count"]}
SELECT ?county ?countyLabel (count(?county) as ?county_count) #count number of counties in which women lived
 
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
  ?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:P76 bnwd:Q419 . # people with publications listed in indexes of archaeological papers. [262]
   ?person bnwdt:P29 ?residence . # select residences
  ?person bnp:P76 ?s .
   ?residence bnwdt:P33 ?district . #select districts
 
   ?district bnwdt:P33 ?county . #select counties
  ## 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 ) ) .
 
   ?person bnwdt:P29  ?residence .
      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
     
      } # /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 ?person ?personLabel ?residenceLabel ?residence ?geo
GROUP BY ?county ?countyLabel
ORDER BY ?geo
ORDER BY DESC(?county_count)
</sparql>
</sparql>


==People==
====Counties of residence for women who spoke at RAI meetings, sorted by how many residences all women had in that county====


===Women with their family name at birth and family name after marriage===
<sparql tryit="1">
 
# Counties of residence for women who spoke at RAI meetings, sorted by how many residences all women had in that county
<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/>
Line 1,209: Line 1,284:
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 ?birthname ?marriedname
WHERE {   
WHERE {   
   ?person bnwdt:P3 bnwd:Q3 . #select women
   ?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
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
   OPTIONAL {?person bnwdt:P140 ?birthname .} #look for birth name
   ?person bnwdt:P29 ?residence . # select residences
   OPTIONAL {?person bnwdt:P141 ?marriedname .} #look for married name
   ?residence bnwdt:P33 ?district . #select districts
    
   ?district bnwdt:P33 ?county . #select counties
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
}
}
ORDER BY ?personLabel
GROUP BY ?county ?countyLabel
ORDER BY DESC(?county_count)
</sparql>
</sparql>


=== Women with family name at birth, married name and count of married names===
====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">
# Women with their family name at birth, family name after marriage and count of married names
# 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,235: Line 1,311:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


SELECT ?person ?personLabel ?birthname 
SELECT ?county ?countyLabel (count(?county) as ?county_count) #count number of counties in which women lived
        (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
  ?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
  OPTIONAL {?person bnwdt:P140 ?birthname .} #look for birth name
   ?residence bnwdt:P33 ?district . #select districts
   OPTIONAL {?person bnwdt:P141 ?marriedname .} #look for married name
   ?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,en-gb". }  
}
}
group by ?person ?personLabel ?birthname
GROUP BY ?county ?countyLabel
ORDER BY ?personLabel
ORDER BY DESC(?county_count)
</sparql>
</sparql>


===Where women in our data are in wikidata, their spouses, fathers, and mothers according to wikidata===
====Counties of residence for women recorded in CAS Indexes of Archaeological Papers, on a map====


<sparql tryit="1">
<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,262: Line 1,336:
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 ?item ?WD_spouse ?WD_father ?WD_mother
#defaultView:Map{"hide":["?geo", "?wikidata"]}
#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 bnp:P117 ?wikidata_ID . #look for wikidata ID on person page
   ?person bnwdt:P29 ?residence . # select residences
   ?wikidata_ID bnpq:P14 ?wikidata_url .
   ?residence bnwdt:P33 ?district . #select districts
   BIND(IRI(REPLACE(?wikidata_url,"https://www.wikidata.org/wiki/","http://www.wikidata.org/entity/")) as ?item )
   ?district bnwdt:P33 ?county . #select counties
      optional { ?county bnwdt:P153 ?geo2 . } # for geocoords added to BN
    
    
   SERVICE <https://query.wikidata.org/sparql> {
      optional {   
        ?item wdt:P21 ?WD_gender. #get gender of person
      ?county bnp:P117 ?ws .  # wikidata id P117       
        OPTIONAL {?item wdt:P22 ?WD_father . } #recall father
        ?ws bnpq:P14 ?wikidata_url .
        OPTIONAL {?item wdt:P25 ?WD_mother . } #recall mother
        BIND(IRI(REPLACE(?wikidata_url, "https://www.wikidata.org/wiki/", "http://www.wikidata.org/entity/")) as ?wikidata )
        OPTIONAL {?item wdt:P26 ?WD_spouse . } #recall spouse
    
      }
      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". }  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
}
}
ORDER BY ?personLabel
# 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===
====Counties of residence for women nominated as FSAs, on a map====


<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/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 1,300: Line 1,383:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


select ?person ?personLabel
#defaultView:Map{"hide":["?geo", "?wikidata"]}
(count(distinct ?exhibitor) as ?exhibitions)
#title:Counties of residence for women nominated as FSAs
(count(distinct ?position) as ?positions)
 
(count(distinct ?speaker) as ?spoke)
SELECT distinct ?person ?personLabel ?county ?countyLabel ?wikidata ?geo 
(count(distinct ?attended) as ?attendance)
WHERE { 
(count(distinct ?donorof) as ?donated)
  ?person bnwdt:P3 bnwd:Q3 . # select women
(count(distinct ?wasdelegate) as ?delegate)
  ?person bnwdt:P16 ?signatory . #select women who were nominated for election to FSA
(count(distinct ?correspondent) as ?correspondents)
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
(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
   ?person bnwdt:P29 ?residence . # select residences
{
   ?residence bnwdt:P33 ?district . #select districts
   ?person bnwdt:P3 bnwd:Q3 .
   ?district bnwdt:P33 ?county . #select counties
   optional { ?person bnp:P13 ?exhibitor }
      optional { ?county bnwdt:P153 ?geo2 .  } # for geocoords added to BN
   optional { ?person bnp:P17 ?position }
    
  optional { ?person bnp:P23 ?speaker }
      optional {    
   optional { ?person bnp:P24 ?attended }
      ?county bnp:P117 ?ws .  # wikidata id P117       
  optional { ?person bnp:P65 ?donorof }
        ?ws bnpq:P14 ?wikidata_url .
  optional { ?person bnp:P71 ?wasdelegate }
        BIND(IRI(REPLACE(?wikidata_url, "https://www.wikidata.org/wiki/", "http://www.wikidata.org/entity/")) as ?wikidata )
  optional { ?person bnp:P73 ?correspondent }
    
  optional { ?person bnp:P75 ?fellow }
      SERVICE <https://query.wikidata.org/sparql> {
   optional { ?person bnp:P83 ?collab }
   
  optional { ?person bnp:P85 ?found }
        optional { ?wikidata wdt:P625 ?geo1 . } # geocoords if available     
  optional { ?person bnp:P87 ?loaned }
      } # /wikidata service    
  optional { ?person bnp:P89 ?illustrated }
      } #/wikidata optional
  optional { ?person bnp:P99 ?sold }
 
  optional { ?person bnp:P102 ?served }
    BIND(COALESCE(?geo1, ?geo2) AS ?geo).  # if geo1 available use that, then try geo2
   optional { ?person bnp:P105 ?job }
    
  optional { ?person bnp:P106 ?fundraiser }
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
  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". }
}
}
group by ?person ?personLabel
ORDER BY DESC (?PPA_total)
</sparql>
</sparql>


===Women in our data arranged as a network graph by the organisations they were members of===
 
==== Counties of residence for women nominated to RAI, on a map ====


<sparql tryit="1">
<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 bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwdt: <https://beyond-notability.wikibase.cloud/prop/direct/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
SELECT  ?org ?orgLabel ?rgb ?linkTo ?linkToLabel
PREFIX bnwdv: <https://beyond-notability.wikibase.cloud/value/>
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>
 
===Membership of organisations by women, sorted by how many women were members of a given organisation===
 
<sparql tryit="1">
# 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 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/>
PREFIX bnp: <https://beyond-notability.wikibase.cloud/prop/>
Line 1,387: Line 1,426:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


SELECT ?organisation ?organisationLabel (count(?organisation) as ?organisation_count) #count number of organisations that women were members of
#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 . # 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
   ?person bnwdt:P7 ?signatory . #select women who were nominated for election to RAI
  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:P29 ?residence . # select residences
  ?residence bnwdt:P33 ?district . #select districts
  ?district bnwdt:P33 ?county . #select counties
      optional { ?county bnwdt:P153 ?geo2 .  } # for geocoords added to BN
 
      optional {   
      ?county bnp:P117 ?ws .  # wikidata id P117       
        ?ws bnpq:P14 ?wikidata_url .
        BIND(IRI(REPLACE(?wikidata_url, "https://www.wikidata.org/wiki/", "http://www.wikidata.org/entity/")) as ?wikidata )
 
      SERVICE <https://query.wikidata.org/sparql> {
   
        optional { ?wikidata wdt:P625 ?geo1 . } # geocoords if available     
      } # /wikidata service 
      } #/wikidata optional


==Education==
    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>


===Women educated at a tertiary educational institution located in Oxford or Cambridge===
==== Counties of residence for women who spoke at RAI meetings, on a map====


<sparql tryit="1">
<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,416: Line 1,468:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


SELECT ?woman ?womanLabel ?educationalinstitution ?educationalinstitutionLabel ?location ?locationLabel
#defaultView:Map{"hide":["?geo", "?wikidata"]}
#title:Counties of residence for women who spoke at RAI meetings
 
SELECT distinct ?person ?personLabel ?county ?countyLabel ?wikidata ?geo 
WHERE {   
WHERE {   
   {?woman bnwdt:P3 bnwd:Q3 . #filter women
   ?person bnwdt:P3 bnwd:Q3 . # select women
   ?woman bnwdt:P94 ?educationalinstitution . #find 'educated at' statement
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
  ?educationalinstitution bnwdt:P12 bnwd:Q2914 . #filter to tertiary educational institutions
  ?person bnwdt:P23 bnwd:Q29 . #select women who spoke at RAI Meeting
   ?educationalinstitution bnwdt:P2 ?location . #find location of educational institution
 
   ?location rdfs:label ?locationLabel .  
   ?person bnwdt:P29 ?residence . # select residences
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
   ?residence bnwdt:P33 ?district . #select districts
   FILTER(LANG(?locationLabel) = "en") .
   ?district bnwdt:P33 ?county . #select counties
  FILTER(regex(?locationLabel, "oxford", "i")) .}
      optional { ?county bnwdt:P153 ?geo2 . } # for geocoords added to BN
   UNION
    
  {?woman bnwdt:P3 bnwd:Q3 . #filter women
      optional {   
  ?woman bnwdt:P94 ?educationalinstitution . #find 'educated at' statement
      ?county bnp:P117 ?ws .  # wikidata id P117       
  ?educationalinstitution bnwdt:P12 bnwd:Q2914 . #filter to tertiary educational institutions
        ?ws bnpq:P14 ?wikidata_url .
  ?educationalinstitution bnwdt:P2 ?location . #find location of educational institution
        BIND(IRI(REPLACE(?wikidata_url, "https://www.wikidata.org/wiki/", "http://www.wikidata.org/entity/")) 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, "Cambridge$", "i")) .}
        optional { ?wikidata wdt:P625 ?geo1 . } # geocoords if available     
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }
      } # /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". }  
}
}
ORDER BY ?womanLabel
 
</sparql>
</sparql>


 
==== Counties of residence for women who exhibited at RAI meetings, on a map ====
=== 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:Counties of residence for women who exhibited at RAI meetings 


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 1,453: Line 1,512:
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 ?person ?personLabel ?college ?collegeLabel ?universityLabel
#defaultView:Map{"hide":["?geo", "?wikidata"]}
 
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: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
    
    
  ?person bnwdt:P75 bnwd:Q8. # only BN subjects having a FSA
      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 )
    
    
   # educated at (P94) part of (P4) cambridge (Q1181) oxford (Q364)
      SERVICE <https://query.wikidata.org/sparql> {
   
        optional { ?wikidata wdt:P625 ?geo1 . } # geocoords if available     
      } # /wikidata service    
      } #/wikidata optional


  ?person bnwdt:P94 ?college .   
    BIND(COALESCE(?geo1, ?geo2) AS ?geo)# if geo1 available use that, then try geo2
  ?college bnwdt:P4 ?university .
 
  FILTER ( ?university in ( bnwd:Q1181 , bnwd:Q364 ) )
    
    
   SERVICE wikibase:label {bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en".}
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
}
}
order by ?personLabel ?collegeLabel
</sparql>
</sparql>


=== All women who went to tertiary education institutions and dates where available ===
==== Counties of residence for women in any of the above five categories, mapped====


<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/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
Line 1,484: Line 1,559:
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 ?college ?collegeLabel ?university ?universityLabel ?date ?date_label
#title:Counties of residence for women who were nominated for election or had publications recorded or spoke/exhibited at RAI
#defaultView:Map{"hide":["?geo", "?wikidata"]}


SELECT distinct  ?county ?countyLabel ?wikidata ?geo  ?layer  #?person ?personLabel
WHERE {   
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
  {
    #women who were nominated for election to FSA | RAI
    ?person ( bnp:P16 | bnp:P7 ) ?stmt . 
  }
  union
  {
    # women with publications recorded in indexes of archaeological papers
    ?person bnp:P76 ?stmt .
        ?stmt bnps:P76 bnwd:Q419 .
  }
  union
  {
    # women who spoke|exhibited at RAI Meeting
    ?person (bnp:P23 | bnp:P13) ?stmt . 
      ?stmt (bnps:P23 | bnps:P13) bnwd:Q29 .
  }
    
    
   # note: academic degree is P59. possible extra info?
   # get the p labels for layers
   ?person bnp:P94 ?s # educated at
   ?person ?p ?stmt .   
    ?s bnps:P94 ?college .
  ?claim wikibase:claim ?p;
    optional {?college bnwdt:P4 ?university . } # a few ?college aren't part of (P4) a ?university
        rdfs:label ?layer. filter(lang(?layer)="en-gb").
  ?college bnwdt:P12 bnwd:Q2914 .   # tertiary ed inst
    
    
   # dates.
   # get geo stuff
    optional {
  ?person bnwdt:P29 ?residence . # select residences
    ?s ?pq ?date .      
  ?residence bnwdt:P33 ?district . #select districts
      ?qual_prop wikibase:qualifier ?pq;
  ?district bnwdt:P33 ?county . #select counties
              wikibase:propertyType wikibase:Time ; # nb excludes edtf dates
       optional { ?county bnwdt:P153 ?geo2 .  } # for geocoords added to BN
              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".}
      optional {   
      ?county bnp:P117 ?ws .  # wikidata id P117       
        ?ws bnpq:P14 ?wikidata_url .
        BIND(IRI(REPLACE(?wikidata_url, "https://www.wikidata.org/wiki/", "http://www.wikidata.org/entity/")) as ?wikidata )
 
      SERVICE <https://query.wikidata.org/sparql> {
        optional { ?wikidata wdt:P625 ?geo1 . } # geocoords if available     
      } # /wikidata service 
      } #/wikidata optional
 
    BIND(COALESCE(?geo1, ?geo2) AS ?geo).  # if geo1 available use it, if not try geo2
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
}
}
order by ?personLabel ?collegeLabel ?date
order by ?layer
 
</sparql>
</sparql>


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


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


<sparql tryit="1">
# 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 1,526: Line 1,624:
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


SELECT ?region ?regionLabel (count(?region) as ?region_count) #count number of regions in which women lived
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:P29 ?residence . # select residences
  # academic degree = P59.
  ?residence bnwdt:P33 ?district . #select districts
   ?person bnp:P59 ?s .
   ?district bnwdt:P33 ?county . #select counties
    ?s bnps:P59 ?degree . # type of degree
   ?county bnwdt:P33 ?region . #select region
 
   FILTER NOT EXISTS {?region bnwdt:P117 "Q145" .} #filter out UK (where UK is sub-region of NI)
   # optional qualifiers for degree
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
 
   # P61 conferred by
    optional { ?s bnpq:P61 ?by . }
 
   # 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 ?personLabel ?date ?degreeLabel
GROUP BY ?region ?regionLabel
ORDER BY DESC(?region_count)
</sparql>
</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===
=== Women living in London during the 1890s ===


<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,569: Line 1,654:
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_ID ?viaf_ID ?ads_ID ?worldcat_ID
SELECT distinct ?personLabel ?date_label ?date ?person ?address ?address_item ?londonLabel ?geo ?long ?lat
 
WHERE {   
WHERE {   
   ?person bnwdt:P3 bnwd:Q3 .                                 #select women
   ?person bnwdt:P3 bnwd:Q3 . # women
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .}            #filter out project team
   ?person bnp:P29 ?s .  # resided at
     OPTIONAL {?person bnwdt:P117 ?wikidata_ID .}             #return wikidata ID
    ?s bnps:P29 ?london .
     OPTIONAL {?person bnwdt:P119 ?viaf_ID .}                 #return VIAF ID
      ?london bnwdt:P33+ bnwd:Q322 . # in Q322 greater london.
     OPTIONAL {?person bnwdt:P34 ?ads_ID .}                   #return Archaeological Data Service ID
 
     OPTIONAL {?person bnwdt:P118 ?worldcat_ID .}             #return WorldCat Identities ID
     # 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).
 
 
  # 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". }  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
}
}
ORDER BY ?personLabel
ORDER BY ?person ?date
 
</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===
==== Map of Women living in 1890s London ====


<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,595: Line 1,716:
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_ID ?viaf_ID ?ads_ID ?worldcat_ID
#defaultView:Map
SELECT distinct ?personLabel ?date_label ?date ?person ?address ?address_item ?londonLabel ?geo ?long ?lat
 
WHERE {   
WHERE {   
   ?person bnwdt:P3 bnwd:Q3 .                                 #select women
   ?person bnwdt:P3 bnwd:Q3 . # women
   ?person bnwdt:P16 ?FSA .                                   #select FSA
   ?person bnp:P29 ?s .   # resided at
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .}            #filter out project team
    ?s bnps:P29 ?london .
     OPTIONAL {?person bnwdt:P117 ?wikidata_ID .}             #return wikidata ID
      ?london bnwdt:P33+ bnwd:Q322 . # in Q322 greater london.
     OPTIONAL {?person bnwdt:P119 ?viaf_ID .}                 #return VIAF ID
 
     OPTIONAL {?person bnwdt:P34 ?ads_ID .}                   #return Archaeological Data Service ID
     # optional street address (text)
     OPTIONAL {?person bnwdt:P118 ?worldcat_ID .}             #return WorldCat Identities ID
  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).
 
 
  # 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". }  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
}
}
ORDER BY ?personLabel
ORDER BY ?person ?date
</sparql>
</sparql>


===People with IDs on wikidata, their date of birth on wikidata, and the source(s) of that information===
=== 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,622: Line 1,776:
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)
#defaultView:Map{"hide":["?geo", "?count"]}
 
SELECT ?person ?personLabel ?residenceLabel ?residence ?geo (count( ?person) as ?count)  #(concat(str(?count), " publication") as ?count_lbl)
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
   ?person bnwdt:P76 bnwd:Q419 . # people with publications listed in indexes of archaeological papers. [262]
   ?woman bnwdt:P117 ?Qnumber .  
   ?person bnp:P76 ?s .
    
    
   #create reference to Wikibase entity
   ## works published in P101. folklore / folk-lore record q487 q490
  BIND(IRI(concat("http://www.wikidata.org/entity/", ?Qnumber)) as ?WDitem )
      ?s bnpq:P101 ?in .  
  #on Wikibase do
      {?s bnpq:P101 bnwd:Q487 } union { ?s bnpq:P101 bnwd:Q490 . }
  SERVICE <https://query.wikidata.org/sparql> {
      # why does above pick up these two journals as well?  
        #get the date of birth
      FILTER ( ?in not in ( bnwd:Q665 , bnwd:Q636 ) ) .  
        ?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". }  
   ?person bnwdt:P29  ?residence .
}
      optional { ?residence bnwdt:P153 ?geo2 . } # for geocoords added to BN
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?===
  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
 
    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". }
}
group by ?person ?personLabel ?residenceLabel ?residence ?geo
ORDER BY ?geo
</sparql>
 
 
=== 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,670: Line 1,830:
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 ?wikidata ?wikipedia
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 ?wikidata )
    
    
   SERVICE <https://query.wikidata.org/sparql> {
   {?item bnwdt:P29  ?location . } # resided at location
      # get English language wikipedia articles in wikidata entries, where listed
  #union
        OPTIONAL {
  #{?location bnwdt:P12 bnwd:Q2147 .} # OR location has instance of locality. is there a way to get this in the same structure?
          ?wikipedia schema:about ?wikidata .
  union
          ?wikipedia schema:inLanguage 'en' .
  {?item bnwdt:P2  ?location . } # item has property P2 location
          FILTER (SUBSTR(str(?wikipedia), 1, 25) = 'https://en.wikipedia.org/')
  # any other possibles ?
        }
 
      } 
  ## limit to places in admin territory p33 england q617. (keep numbers down to avoid wikidata timing out) 
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
  ?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,en-gb". }  
}
}
ORDER BY ?personLabel
ORDER BY ?locationLabel
</sparql>
 
=== BN items near a chosen location ===
 
<sparql tryit="1">


</sparql>
#title:a map of BN items near a chosen starting point in the UK
#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!


=== Women with no date of death in our wikibase who have a date of death on Wikidata===
PREFIX var_start: <https://beyond-notability.wikibase.cloud/entity/Q5>  # (Q5=sheffield)


<sparql tryit="1">
## to change the distance you can edit the filter(?distance < xx) line near the end of the query.
# 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/>
Line 1,709: Line 1,880:
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
## TODO is there a way to get the location itemLabel and use it in the map title...
 
SELECT distinct  ?item ?itemLabel ?locationLabel ?location ?wikidata ?wd_geo ?distance #?wd_long ?wd_lat 
WHERE {   
WHERE {   
   ?person bnwdt:P3 bnwd:Q3 . #select women
   var_start: bnwdt:P117 ?start_wd_id .
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
  bind(iri(concat("http://www.wikidata.org/entity/", str(?start_wd_id))) as ?start_wd) .  
    
   filter not exists {?person bnwdt:P15 ?bn_dod . } # *don't* have P15 date of death
  {?item bnwdt:P29  ?location . } # resided at location
  union
   {?item bnwdt:P2  ?location . } # item has property P2 location
  # other possibles ?
    
    
   ?person bnp:P117 ?wikidata_ID . #look for wikidata ID on person page
  ## 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)
   ?wikidata_ID bnpq:P14 ?wikidata_url .
   ?location bnwdt:P33+ bnwd:Q1741.
  BIND(IRI(REPLACE(?wikidata_url,"https://www.wikidata.org/wiki/","http://www.wikidata.org/entity/")) as ?item )  
   ?location bnwdt:P117 ?ws . # wikidata id 
    bind(iri(concat("http://www.wikidata.org/entity/", str(?ws))) as ?wikidata) .
    
    
  SERVICE <https://query.wikidata.org/sparql> {
        SERVICE <https://query.wikidata.org/sparql> {
        ?item wdt:P21 ?WD_gender. #get gender of person
            ?start_wd wdt:P625 ?start. # start_wd coordinates.
        ?item wdt:P570 ?wd_dod . #date of death on Wikidata P570
            ?wikidata wdt:P625 ?wd_geo .  
      }
        } # /wikidata service 
    
    
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
    #BIND(geof:longitude(?wd_geo) AS ?wd_long) .
    #BIND(geof:latitude(?wd_geo)  AS ?wd_lat) . 
    bind(geof:distance(?wd_geo, ?start) as ?distance).
 
    FILTER(?distance < 40). # < xx km from start_wd
 
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
}
}
ORDER BY ?personLabel
ORDER BY ?locationLabel
 
</sparql>
</sparql>


=== Women with no date of birth in our wikibase who have a date of birth in Wikidata===
=== Locations of BN excavations ===


<sparql tryit="1">
<sparql tryit="1">
# Women who have no date of birth in our wikibase and have a date of birth on Wikidata
#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,745: Line 1,926:
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 ?adminterr ?wikidata ?wd_geo
WHERE { 
  ?item bnwdt:P12 bnwd:Q38 .


SELECT ?person ?personLabel ?wd_dob
  {
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 .
              ?adminterr bnwdt:P117 ?wsa . # and has wikidata id 
   filter not exists {?person bnwdt:P26 ?bn_dob . } # *don't* have P15 date of death
    
            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 
    
    
  ?person bnp:P117 ?wikidata_ID . #look for wikidata ID on person page
    bind(iri(concat("http://www.wikidata.org/entity/", str(?ws))) as ?wikidata) .
   ?wikidata_ID bnpq:P14 ?wikidata_url .
        SERVICE <https://query.wikidata.org/sparql> {
   BIND(IRI(REPLACE(?wikidata_url,"https://www.wikidata.org/wiki/","http://www.wikidata.org/entity/")) as ?item )  
            ?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> {
   SERVICE <https://query.wikidata.org/sparql> {
        ?item wdt:P21 ?WD_gender. #get gender of person
              ?wikidata wdt:P625 ?wd_geo1 .  
        ?item wdt:P569 ?wd_dob .  #date of birth on Wikidata P569
            } # /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-gb". }  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
}
}
ORDER BY ?personLabel
ORDER BY ?locationLabel
</sparql>
</sparql>


=== All external IDs on Wikidata for Women ===
=== Locations of archaeological sites ===


<sparql tryit="1">
<sparql tryit="1">
# Query to fetch all available External IDs on Wikidata for FSAs
#title:Locations of BN archaeological sites
# NB this will take a while, but it should finish.
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,781: Line 1,985:
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 ?adminterrLabel ?adminterr ?wikidata ?wd_geo
WHERE { 
  ?item bnwdt:P12 bnwd:Q86 .
 
  { 
    ?item bnwdt:P2  ?location .  # item has property P2 location
 
  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


SELECT distinct ?person ?personLabel ?wikidata ?p ?id_no ?id_label


WHERE {
   ?item bnwdt:P117 ?wikidata_id . # but has wikidata id 
    ?person bnwdt:P3 bnwd:Q3 . #select women    
  bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_id))) as ?wikidata) .
    #?person bnwdt:P75 bnwd:Q8. # limit to FSAs if the full set times out.
 
    ?person bnp:P117 ?wikidata_ID . #get wikidata ID
    ?wikidata_ID 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> {
  SERVICE <https://query.wikidata.org/sparql> {
              ?wikidata wdt:P625 ?wd_geo1 .  # which has geo coords
            } # /wikidata service   
  }
      
      
    ?wikidata ?p ?s .  
  BIND(COALESCE(?wd_geo1, ?wd_geo2) AS ?wd_geo). # if geo1 available use that, then try geo2
      ?prop wikibase:claim ?p;   
 
            wikibase:statementProperty ?ps; # NB rather than statementValue
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }
            wikibase:propertyType wikibase:ExternalId. # quicker than filter.
}
     
ORDER BY ?locationLabel
      ?prop rdfs:label ?id_label. filter(lang(?id_label)="en") . # ident name
</sparql>
     
          ?s ?ps ?id_no . # id value


      # filter by property type
=== Locations of historic houses ===
      #filter(?prop_type in (wikibase:ExternalId ) ) .
    } 
     
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], en, en-gb". }
}
           
order by ?personLabel ?id_label ?id_no
 
</sparql>
 
=== 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
#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 1,827: Line 2,045:
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 
WHERE { 
  ?item bnwdt:P12 bnwd:Q2961 .
  {
  ?item bnwdt:P2  ?location .  # item has property P2 location
 
 
  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   
  }


SELECT ?p ?id_label ?id_description (count(?p) as ?count)
  }
  union
  {
 
  filter not exists {?item bnwdt:P2 ?location . } # item doesn't have property P2 location


WHERE { 
   ?item bnwdt:P117 ?wikidata_id .  # but has wikidata id 
   ?person bnwdt:P3 bnwd:Q3 . #select women
  bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_id))) as ?wikidata) .
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
    
  SERVICE <https://query.wikidata.org/sparql> {
              ?wikidata wdt:P625 ?wd_geo1 .  
            } # /wikidata service   


  ?person bnp:P117 ?wikidata_ID . # wikidata ID
  }
    ?wikidata_ID 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> {
  BIND(COALESCE(?wd_geo1, ?wd_geo2) AS ?wd_geo).  # if geo1 available use that, then try geo2 
    ?wikidata ?p ?s .
           
          ?prop wikibase:claim ?p;   
             
              wikibase:propertyType wikibase:ExternalId; 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }
               rdfs:label ?id_label. filter(lang(?id_label)="en") .  
}
      ?prop schema:description ?id_description .  
ORDER BY ?locationLabel
      filter(lang(?id_description) = "en") .   
</sparql>
      }
 
     
=== Residences of women participants in Colchester excavations ===
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en, en-gb". }  
 
<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 .
  ?item bnwdt:P2  ?location . # item has property P2 location
 
  ?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   
          }
 
 
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
}
}
group by ?p ?id_label ?id_description
ORDER BY ?locationLabel
ORDER BY desc(?count)
 
</sparql>
</sparql>


=== Women with ODNB IDs in Wikidata ===
=== IWD 2024 Map of five women's places ===


<sparql tryit="1">
<sparql tryit="1">
# BN women with ODNB biography IDs on Wikidata, with links to the bios
## how many places for the five women can I get on a map? a slightly ridiculous query.


#title:Four stories, five women, many places for #IWD2024
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,868: Line 2,146:
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
#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    
 
   
  VALUES (?person) {(bnwd:Q894) (bnwd:Q462) (bnwd:Q549) (bnwd:Q921) (bnwd:Q1053) }  #
    ?person bnp:P117 ?wikidata_ID . #get wikidata ID
  ?person ( bnp:P29 | bnp:P94  | bnp:P23 | bnp:P13 | bnp:P120  ) ?s .
    ?wikidata_ID bnpq:P14 ?wikidata_url .
 
    BIND(IRI(REPLACE(?wikidata_url, "https://www.wikidata.org/wiki/", "http://www.wikidata.org/entity/")) as ?wikidata )
  ?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 .
                    }
                }
 
      optional { ?s bnpq:P78 ?ofp1 . # 'of' (organisation) has geocoords in P2 qualifier
                    ?ofp1 bnp:P2 ?ofp1_s .
                    ?ofp1_s bnps:P2 ?ofp1_p .
                    ?ofp1_s bnpq:P153 ?geo6 . } 
 
      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 .  }           
              } 
 
      optional { ?s bnpq:P78 ?ofp3 .  # 'of' (organisation) has wikidata geocoords
                    ?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 .  }
                }
    
    
    SERVICE <https://query.wikidata.org/sparql> {
      optional { ?place bnwdt:P153 ?geo9 . } # main geocoords  (mainly london postal districts - should be last resort as v broad.)
   
 
    # P1415 Oxford Dictionary of National Biography ID | P6829 Dictionary of Irish Biography ID | P1648 Dictionary of Welsh Biography ID
 
    ?wikidata wdt:P1415 ?id .  
      optional { ?place bnwdt:P2 ?linked_p10 . # linked place main geocoords
                    ?linked_p10 bnwdt:P153 ?geo10 .
                }


    # odnb link
  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(IRI(concat("https://doi.org/10.1093/ref:odnb/", ?id)) as ?url ) .
 
   
  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". }  
   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 ===
order by ?personLabel ?date ?placeLabel
 
</sparql>
 
=== Wikidata categories for BN instance of locality in the UK ===


<sparql tryit="1">
<sparql tryit="1">
# 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 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,908: Line 2,257:
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/>
#title: counts of WD instance of (P31) for BN localities (instance of Q2147) in the UK


SELECT distinct ?person ?personLabel ?wikidata ?id_no ?npg_url
select ?wd_io ?wd_io_label  (count(*) as ?count)


WHERE {
where {
    ?person bnwdt:P3 bnwd:Q3 . #select women     
    ?person bnp:P117 ?wikidata_ID . #get wikidata ID
  ?item bnwdt:P12 bnwd:Q2147 . # BN io locality
    ?wikidata_ID bnpq:P14 ?wikidata_url .
  ?item bnwdt:P33* bnwd:Q1741 . # in UK
    BIND(IRI(REPLACE(?wikidata_url, "https://www.wikidata.org/wiki/", "http://www.wikidata.org/entity/")) as ?wikidata )
 
  ?item bnwdt:P117 ?wd.
      bind(iri(concat("http://www.wikidata.org/entity/", str(?wd))) as ?wikidata) .
      SERVICE <https://query.wikidata.org/sparql> { 
          ?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 <https://query.wikidata.org/sparql> {
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }  
   
    ?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". }  
}
}
           
group by ?wd_io ?wd_io_label
order by ?personLabel ?id_no
order by ?wd_io_label
</sparql>
</sparql>


=== Which BN properties map on to Wikidata properties? ===
==People==
 
===Women with their family name at birth and family name after marriage===


<sparql tryit="1">
<sparql tryit="1">
## **NOTE** a few has_wikidata="yes" have a wikidata "Q" rather than "P" ID. Not sure if this is intentional. I can try to make the query exclude the Qs if preferred.
# 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/>
Line 1,950: Line 2,299:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


SELECT DISTINCT ?property  ?label
(if(bound(?wikidata_id), "yes", "no") as ?has_wikidata) ?wikidata_id ?propertyType


WHERE {
SELECT ?person ?personLabel ?birthname ?marriedname
   ?property a wikibase:Property ;
WHERE {
              wikibase:propertyType ?propertyType . # datatype
   ?person bnwdt:P3 bnwd:Q3 . #select women
 
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
   # nb to get round slight inconsistencies in use of en and en-gb language labels
   OPTIONAL {?person bnwdt:P140 ?birthname .} #look for birth name
  # optional to fetch en-gb (and/or) en labels separately, then coalesce to pick just one. #win.
   OPTIONAL {?person bnwdt:P141 ?marriedname .} #look for married name
  optional { ?property rdfs:label ?en . filter(lang(?en)="en").  }
   optional { ?property rdfs:label ?engb . filter(lang(?engb)="en-gb").  }  
  BIND(COALESCE(?en, ?engb) AS ?label).
 
  # wikidata P117
   optional { ?property bnwdt:P117 ?wikidata_id . }
    
    
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }
}
}
order by ?property
ORDER BY ?personLabel
</sparql>
</sparql>


==== Of these, which are properties for public and professional activities? ====
=== Women with family name at birth, married name and count of married names===


<sparql tryit="1">
<sparql tryit="1">
# which properties have corresponding wikidata IDs, restricted to properties that are instance of PPA (P12 / Q151)
# 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 1,983: Line 2,325:
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>


SELECT DISTINCT ?property  ?label (if(bound(?wikidata_id), "yes", "no") as ?has_wikidata) ?wikidata_id ?propertyType
SELECT ?person ?personLabel ?birthname 
        (GROUP_CONCAT(DISTINCT ?marriedname; SEPARATOR=", ") AS ?marriednames)  
        (COUNT(?marriedname) AS ?marriedcount)


WHERE {
WHERE {
   ?property a wikibase:Property ;
   ?person bnwdt:P3 bnwd:Q3 . #select women
              wikibase:propertyType ?propertyType . # datatype
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
 
   optional { ?property rdfs:label ?en . filter(lang(?en)="en").  }  
  optional { ?property rdfs:label ?engb . filter(lang(?engb)="en-gb").  } 
  BIND(COALESCE(?en, ?engb) AS ?label).
    
    
   optional { ?property bnwdt:P117 ?wikidata_id . } # wikidata P117
   OPTIONAL {?person bnwdt:P140 ?birthname .} #look for birth name
  OPTIONAL {?person bnwdt:P141 ?marriedname .} #look for married name
    
    
   ?property bnwdt:P12 bnwd:Q151. # instance of PPA
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }
}
}
order by ?label
group by ?person ?personLabel ?birthname
ORDER BY ?personLabel
</sparql>
</sparql>


==Fishing Expeditions==
===Where women in our data are in wikidata, their spouses, fathers, and mothers according to wikidata===
 
===All properties in use in the wikibase with property type, label and description (if present)===


<sparql tryit="1">
<sparql tryit="1">
# query for information about properties that are being used in the wikibase
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/>


## fyi: not actually necessary to declare these properties
SELECT ?person ?personLabel ?item ?WD_spouse ?WD_father ?WD_mother
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
WHERE { 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
  ?person bnwdt:P3 bnwd:Q3 . #select women
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
PREFIX wikibase: <http://wikiba.se/ontology#>
  ?person bnp:P117 ?wikidata_ID . #look for wikidata ID on person page
PREFIX schema: <http://schema.org/>
  ?wikidata_ID bnpq:P14 ?wikidata_url .
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
  BIND(IRI(REPLACE(?wikidata_url,"https://www.wikidata.org/wiki/","http://www.wikidata.org/entity/")) as ?item )
 
  SERVICE <https://query.wikidata.org/sparql> {
        ?item wdt:P21 ?WD_gender. #get gender of person
        OPTIONAL {?item wdt:P22 ?WD_father . } #recall father
        OPTIONAL {?item wdt:P25 ?WD_mother . } #recall mother
        OPTIONAL {?item wdt:P26 ?WD_spouse . } #recall spouse
      }
 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }
}
ORDER BY ?personLabel
# with thanks to @tagishsimon for writing this one initially!
</sparql>


SELECT DISTINCT
===Women in our data alongside counts of their public and professional activities, sorted by total===
  ?property
  ?propertyType
  ?propertyLabel 
  (group_concat(?propertyAltLabel; separator=" | ") as ?propertyAltLabels)
  ?propertyDescription


WHERE {
<sparql tryit="1">
  ?property a wikibase:Property ;
## Women in our data alongside counts of their public and professional activities (https://beyond-notability.wikibase.cloud/wiki/Item:Q151)
              rdfs:label ?propertyLabel ; # label
## Sorted by total PPAs
              wikibase:propertyType ?propertyType . # datatype


  # 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/>
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/>


  # add description if present
select ?person ?personLabel
  OPTIONAL {
(count(distinct ?exhibitor) as ?exhibitions)
        SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en".
(count(distinct ?position) as ?positions)
          ?property schema:description ?propertyDescription .
(count(distinct ?speaker) as ?spoke)
        }
(count(distinct ?attended) as ?attendance)
  }
(count(distinct ?donorof) as ?donated)
 
(count(distinct ?wasdelegate) as ?delegate)
  FILTER(LANG(?propertyLabel) = 'en-gb')  
(count(distinct ?correspondent) as ?correspondents)
  # fix label language dups; but Q why doesn't SERVICE work?  
(count(distinct ?fellow) as ?fellowships)
  # A: https://en.wikibooks.org/wiki/SPARQL/FILTER#FILTER_on_values_in_Labels
(count(distinct ?collab) as ?collaborations)
  # nb a few objects found with en-gb label missing
(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
group by ?property ?propertyLabel ?propertyType ?propertyDescription
{
order by ?propertyLabel
  ?person bnwdt:P3 bnwd:Q3 .
 
  optional { ?person bnp:P13 ?exhibitor }
</sparql>
  optional { ?person bnp:P17 ?position }
 
  optional { ?person bnp:P23 ?speaker }
 
  optional { ?person bnp:P24 ?attended }
=== All the Things for Organisations ===
  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". }
}
group by ?person ?personLabel
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">
<sparql tryit="1">
 
## Women in our data arranged as a network graph by the organisations they were members of
# Exploratory query to get all info on an item page including qualifiers (but not references) for each organisation (Q2316) in the wikibase
#defaultView:Graph
# 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 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
  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 ) .


select distinct ?item ?itemLabel
}
?prop ?propLabel ?prop_type
ORDER BY ?personLabel
?stmt_value ?stmt_valueLabel
</sparql>
?qual_prop  ?qual_value ?qual_label ?qual_prop_type
?statement


where {
===Membership of organisations by women, sorted by how many women were members of a given organisation===


?item bnwdt:P12+ bnwd:Q2316  . # instance of organisation or descendants of (excluding instance of organisation itself)
<sparql tryit="1">
# Membership of organisations by women, sorted by how many women were members of a given organisation


  # get all the things about ?item 
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
    ?item ?p ?statement .  
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
 
PREFIX bnwdv: <https://beyond-notability.wikibase.cloud/value/>
  # to get item Label without using service. couple of missing en-gb labels somewhere
PREFIX bnwdt: <https://beyond-notability.wikibase.cloud/prop/direct/>
  # ?item rdfs:label ?item_label . filter(lang(?item_label)="en-gb") .  
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/>
  # 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
SELECT ?organisation ?organisationLabel (count(?organisation) as ?organisation_count) #count number of organisations that women were members of
    ?statement ?ps ?stmt_value.
WHERE {
 
  ?person bnwdt:P3 bnwd:Q3 . # select women
  # get any qualifiers
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
  optional {  
  ?person bnwdt:P67 ?organisation . # selection people who were members of organisations and what those organisations were
    ?statement ?qual_p ?qual_value .   
   FILTER NOT EXISTS {?person bnwdt:P67 bnwd:Q35 .} # filter out Royal Archaeological Institute
    ?qual_prop wikibase:qualifier ?qual_p;
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
          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". }  
 
}
}
GROUP BY ?organisation ?organisationLabel
ORDER BY DESC(?organisation_count)
</sparql>


order by ?item_label ?prop_label


</sparql>


==Dates==
==Education==


===All the Dates for Women FSAs===
===Women educated at a tertiary educational institution located in Oxford or Cambridge===


<sparql tryit="1">
<sparql tryit="1">
# union query to get [hopefully] every date associated with women FSAs including main dates and qualifier dates and date precision
# 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,121: Line 2,505:
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 ?date_prop_label ?date_value ?date_precision ?qual ?qualLabel  ?date_prop_type
SELECT ?woman ?womanLabel ?educationalinstitution ?educationalinstitutionLabel ?location ?locationLabel
#?s  #statement url [for grouping]
WHERE {   
#?date_prop  #property url/id
  {?woman bnwdt:P3 bnwd:Q3 . #filter women
 
  ?woman bnwdt:P94 ?educationalinstitution . #find 'educated at' statement
WHERE {
  ?educationalinstitution bnwdt:P12 bnwd:Q2914 . #filter to tertiary educational institutions
   
   ?educationalinstitution bnwdt:P2 ?location . #find location of educational institution
{ # main dates
  ?location rdfs:label ?locationLabel .
 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }
  ?person bnwdt:P3 bnwd:Q3 . #select women
  FILTER(LANG(?locationLabel) = "en") .
  ?person bnwdt:P75 bnwd:Q8. # find only BN subjects having a FSA
   FILTER(regex(?locationLabel, "oxford", "i")) .}
 
  # get stuff about ?person    
  ?person ?p ?s .  
 
    # get stuff about ?p .
      ?date_prop wikibase:claim ?p;   
        wikibase:statementProperty ?ps ; 
        wikibase:statementValue ?psv .   
      ?date_prop wikibase:propertyType ?date_prop_type .
      ?date_prop rdfs:label ?date_prop_label. filter(lang(?date_prop_label)="en-gb") .  
 
   # get dates detail via ?s and psv
  # TODO: I think this gets edtf dates in simplified std wiki date format. could handle them separately to keep the extra info.
  # https://github.com/ProfessionalWiki/WikibaseEdtf
 
      ?s ?psv ?wdv .
        ?wdv wikibase:timeValue ?date_value ;
          wikibase:timePrecision ?date_precision .
  } # /main dates
 
   UNION
   UNION
 
   {?woman bnwdt:P3 bnwd:Q3 . #filter women
   { # qualifier dates
  ?woman bnwdt:P94 ?educationalinstitution . #find 'educated at' statement
   
  ?educationalinstitution bnwdt:P12 bnwd:Q2914 . #filter to tertiary educational institutions
    ?person bnwdt:P3 bnwd:Q3 . # women
   ?educationalinstitution bnwdt:P2 ?location . #find location of educational institution
    ?person bnwdt:P75 bnwd:Q8. # only BN subjects having a FSA
   ?location rdfs:label ?locationLabel .  
    
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }
    # get stuff about ?person 
  FILTER(LANG(?locationLabel) = "en") .
    ?person ?p ?s .  
  FILTER(regex(?locationLabel, "Cambridge$", "i")) .}
    
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }
      # get stuff about ?p .  
}
      ?prop wikibase:claim ?p;     
ORDER BY ?womanLabel
        #wikibase:propertyType ?prop_type ;
</sparql>
        wikibase:statementProperty ?ps.    
      ?prop rdfs:label ?prop_label. filter(lang(?prop_label)="en-gb") .  


      # get stuff about ?s.
      ?s ?ps ?qual.
 
        # get stuff about qual if you want
        # optional { 
        # what sort of thing is qual
        #  ?qual bnwdt:P12 ?inst .  # instance of can be multiple so could get some dups
        #} # /qual optional


 
=== Women who were FSAs who went to Oxford or Cambridge colleges ===
      # get qualifier dates  [are there any Edtf in qualifier dates?] 
      ?s ?pq ?pqs . 
     
      # this needs to be limited to dates... I think
      FILTER(DATATYPE(?pqs) = xsd:dateTime).
 
        # get stuff about pq
        ?qual_prop wikibase:qualifier ?pq;     
            wikibase:propertyType ?date_prop_type.
        ?qual_prop rdfs:label ?date_prop_label . filter(lang(?date_prop_label)="en-gb") . # what sort of date is it.
 
      # get dates detail. TODO: how to get the /entity/ url for date_prop?
      ?s ?date_prop ?pqv .
        ?pqv wikibase:timeValue ?date_value.
        ?pqv wikibase:timePrecision ?date_precision.
   
  }  # /qual dates
 
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }
 
} # /where
 
ORDER BY ?person ?date_value
 
</sparql>
 
===Fetch any of multiple kinds of EDTF date for a woman===


<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
#how many women who were FSAs went to Oxford or Cambridge colleges?
# TODO: this excludes any EDTF dates in qualifiers; not sure if there are any.


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 2,219: Line 2,543:
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 ?person ?personLabel ?date_edtf ?date_type
SELECT ?person ?personLabel ?college ?collegeLabel ?universityLabel
 
WHERE {
WHERE { ?person bnwdt:P3 bnwd:Q3 .  
  ?person bnwdt:P3 bnwd:Q3 . #select women
      FILTER NOT EXISTS { ?person bnwdt:P4 bnwd:Q12 . }  
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
     
 
    ## short form of UNION using | 
  ?person bnwdt:P75 bnwd:Q8. # only BN subjects having a FSA
      ?person ( bnwdt:P131 | bnwdt:P132 | bnwdt:P133  ) ?date_edtf .
    
  # educated at (P94) part of (P4) cambridge (Q1181) oxford (Q364)
## cf. full length UNION
## {?person bnwdt:P131 ?date_edtf } union {?person bnwdt:P132 ?date_edtf } union {?person bnwdt:P133 ?date_edtf }    
   
    ## need to know what kind of date it is
    ?person ?date_type ?date_edtf .
     
    ## filter for edtf dates
    ## docs: https://github.com/ProfessionalWiki/WikibaseEdtf


    FILTER ( datatype(?date_edtf) = xsd:edtf ) .
  ?person bnwdt:P94 ?college .  
           
  ?college bnwdt:P4 ?university .  
    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], en, en-gb". }
    }
 
ORDER BY ?personLabel


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


===Full values: dates ===
=== All women who went to tertiary education institutions and dates where available ===


<sparql tryit="1">
<sparql tryit="1">
 
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
# query for full values to access the timeValue and timePrecision of a date, in this case a date of birth.
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
 
PREFIX bnwdv: <https://beyond-notability.wikibase.cloud/value/>
## why is a more complex query needed?
PREFIX bnwdt: <https://beyond-notability.wikibase.cloud/prop/direct/>
## 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 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 bnp: <https://beyond-notability.wikibase.cloud/prop/>
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 bnpsv: <https://beyond-notability.wikibase.cloud/prop/statement/value/>
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>


SELECT DISTINCT ?item ?itemLabel ?date ?precision
SELECT ?person ?personLabel ?college ?collegeLabel ?university ?universityLabel ?date ?date_label
WHERE {
 
   ?item bnp:P26  ?statement. # date of birth (precision of these varies quite a bit)
WHERE {
   ?statement bnpsv:P26 ?valueNode.
   ?person bnwdt:P3 bnwd:Q3 . #select women
  ?valueNode wikibase:timeValue ?date.
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
  ?valueNode wikibase:timePrecision ?precision.
    
    
   SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
  # note: academic degree is P59. possible extra info?
}
  ?person bnp:P94 ?s .  # educated at
ORDER BY ?date
    ?s bnps:P94 ?college .
 
    optional {?college bnwdt:P4 ?university . } # a few ?college aren't part of (P4) a ?university
</sparql>
  ?college bnwdt:P12 bnwd:Q2914 .  # tertiary ed inst
 
    
=== Any main level date for women ===
  # dates.
 
    optional {
<sparql tryit="1">
    ?s ?pq ?date .     
# a query to get all types of main date for women
      ?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
 
</sparql>
 
 
=== Academic degrees ===


<sparql tryit="1">
# 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,293: Line 2,617:
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 distinct ?person ?personLabel ?degree ?degreeLabel ?by ?byLabel ?date ?date_label


WHERE {
WHERE {
  ?person bnwdt:P3 bnwd:Q3 . #select women
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
 
  # academic degree = P59.
  ?person bnp:P59 ?s . 
    ?s bnps:P59 ?degree . # type of degree
    
    
   ?person bnwdt:P3 bnwd:Q3 . # women
   # optional qualifiers for degree
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .}     
    
    
  ?person ?p ?s .
  # P61 conferred by
 
    optional { ?s bnpq:P61 ?by . }
       ?date_prop wikibase:claim ?p;  
 
        wikibase:statementValue ?psv ; 
  # date with type
        wikibase:propertyType ?date_prop_type; # property type = wikibase:Time OR wikibase:Edtf
    optional {
        rdfs:label ?date_label. filter(lang(?date_label)="en-gb") . # what kind of date it is
    ?s ?pq ?date .      
 
       ?qual_prop wikibase:qualifier ?pq;
        # direct link to relevant section of page
              wikibase:propertyType wikibase:Time ; # nb excludes edtf dates
        BIND (REPLACE(STR(?date_prop), "^.*/([^/]*)$", "$1") as ?pid).
              rdfs:label ?date_label . filter(lang(?date_label)="en-gb") . # kind of date
        bind(iri(concat(str(?person), "#", ?pid)) as ?link_prop ) . 
      } # /dates
        
        
      ?s ?psv ?wdv . # for the date value
   SERVICE wikibase:label {bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en".}
        ?wdv wikibase:timeValue ?date .  #timeValue gets pit and edtf
    #  ?wdv wikibase:timePrecision ?date_precision .  # optional
 
  # 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
order by ?personLabel ?date ?degreeLabel
</sparql>


</sparql>
==IDs==


=== Counting Dates===
===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">
# count distinct dates for women (who have at least one)
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
# 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 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 2,338: Line 2,659:
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 ?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>


SELECT ?person ?personLabel (COUNT(DISTINCT ?date_value) as ?count)  
===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===


WHERE {
<sparql tryit="1">
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
{  # main dates
PREFIX bnwds: <https://beyond-notability.wikibase.cloud/entity/statement/>
 
PREFIX bnwdv: <https://beyond-notability.wikibase.cloud/value/>
  ?person bnwdt:P3 bnwd:Q3 . # women 
PREFIX bnwdt: <https://beyond-notability.wikibase.cloud/prop/direct/>
  ?person ?p ?s .        
PREFIX bnp: <https://beyond-notability.wikibase.cloud/prop/>
      ?s ?date_prop ?wdv .
PREFIX bnps: <https://beyond-notability.wikibase.cloud/prop/statement/>
        ?wdv wikibase:timeValue ?date_value .
PREFIX bnpq: <https://beyond-notability.wikibase.cloud/prop/qualifier/>
  } # /main dates
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
 
PREFIX wd:  <http://www.wikidata.org/entity/>
  UNION
 
  { # qualifier dates
   
    ?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
SELECT ?person ?personLabel ?wikidata_ID ?viaf_ID ?ads_ID ?worldcat_ID
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
</sparql>
</sparql>


==Admin==
===People with IDs on wikidata, their date of birth on wikidata, and the source(s) of that information===
 
===Women about whom we have recorded fewer than 3 pieces of information===


<sparql tryit="1">
<sparql tryit="1">
Line 2,384: 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 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 ?person ?personLabel ?statements WHERE {
SELECT ?woman ?womanLabel ?WDitem ?WDdateOfBirth (GROUP_CONCAT(?BirthStatedInEnglish;separator=" | ") AS ?sources)
  ?person bnwdt:P3 bnwd:Q3 ;
        wikibase:statements ?statements .
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .}
  FILTER (?statements <3)
  SERVICE wikibase:label {
      bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb".
  }
}
</sparql>
 
===People for whom their item records is given as 'Mrs'===
 
<sparql tryit="1">
SELECT ?id ?name
WHERE {   
WHERE {   
   ?id rdfs:label ?name .
  #Select all women
   FILTER regex(?name, "mrs *", "i") #this line uses regular expression syntax, described at https://regexper.com/#mrs%5Cs*
   ?woman bnwdt:P3 bnwd:Q3 .
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }
  #select all women that have a Wikidata link
}
  ?woman bnwdt:P117 ?Qnumber .  
</sparql>
 
 
   #create reference to Wikibase entity
===All triples in the wiki, limited to 1000===
  BIND(IRI(concat("http://www.wikidata.org/entity/", ?Qnumber)) as ?WDitem )
 
  #on Wikibase do
<sparql tryit="1">
   SERVICE <https://query.wikidata.org/sparql> {
SELECT ?a ?aLabel ?b ?c WHERE {
        #get the date of birth
    ?a ?b ?c
        ?WDitem wdt:P569 ?WDdateOfBirth .
    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }
        #get the statement of birth
}
        ?WDitem p:P569 ?Birthstatement .
LIMIT 1000 #please don't make this number too big as it will slow down the site!
        #get its node
</sparql>
        ?Birthstatement prov:wasDerivedFrom ?BirthRefnode.
 
        #get the value of 'Stated in'
===All triples in the wiki, represented as a crude graph===
        ?BirthRefnode  pr:P248 ?BirthStatedIn.
 
        #get the english label of the referece 'stated in'
<sparql tryit="1">
        OPTIONAL {?BirthStatedIn rdfs:label ?BirthStatedInEnglish
#defaultView:Graph
                  FILTER (LANG(?BirthStatedInEnglish) = "en")}.
SELECT ?a ?aLabel ?c ?cLabel WHERE {
      }
    ?a ?b ?c
 
    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
}
}
#note query returns every connection in the wikibase so it may fall over!
GROUP BY ?woman ?womanLabel ?WDitem ?WDdateOfBirth
ORDER BY ?womanLabel
# Credit to Maarten Zeinstra for developing this query
</sparql>
</sparql>


===People whose assigned gender we have been unable to determine and/or confirm===
=== Which women in the wikibase have Wikipedia articles, according to Wikidata?===


<sparql tryit="1">
<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,441: Line 2,763:
PREFIX wd:  <http://www.wikidata.org/entity/>
PREFIX wd:  <http://www.wikidata.org/entity/>


SELECT ?person ?personLabel
SELECT ?person ?personLabel ?wikidata ?wikipedia
WHERE {   
WHERE {   
   ?person bnwdt:P3 ?gender .                              
   ?person bnwdt:P3 bnwd:Q3 . #select women
   FILTER NOT EXISTS {?person bnwdt:P3 bnwd:Q3 .}         #filter out people identified as women
   FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
   FILTER NOT EXISTS {?person bnwdt:P3 bnwd:Q10 .}         #filter out people identified as men
 
  ?person bnwdt:P117 ?wikidata_ID . #look for wikidata ID on person page
    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". }  
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
}
}
ORDER BY ?personLabel
ORDER BY ?personLabel
</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===
 
=== Women with no date of death in our wikibase who have a date of death on Wikidata===


<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
# 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/>
Line 2,463: Line 2,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 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 ?person ?personLabel ?spouse ?spouseLabel ?edtfmarriagespouse ?edtfmarriagespouseLabel ?PITmarriagespouse ?PITmarriagespouseLabel WHERE {
 
   ?person bnwdt:P41 ?spouse .
   SERVICE <https://query.wikidata.org/sparql> {
  OPTIONAL {?person bnp:P132 ?edtfmarriagestatement .
        ?item wdt:P21 ?WD_gender. #get gender of person
  ?edtfmarriagestatement bnps:P132 ?edtfmarriagedate .
        ?item wdt:P570 ?wd_dod . #date of death on Wikidata P570
  ?edtfmarriagestatement bnpq:P41 ?edtfmarriagespouse .}
      }
   OPTIONAL {?person bnp:P130 ?PITmarriagestatement .
    
  ?PITmarriagestatement bnps:P130 ?PITmarriagedate .
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
   ?PITmarriagestatement bnpq:P41 ?PITmarriagespouse .}
    SERVICE wikibase:label {
      bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb".
    }
}
}
ORDER BY DESC(?edtfmarriagespouseLabel) DESC(?PITmarriagespouseLabel)
ORDER BY ?personLabel
</sparql>
</sparql>


=== Compare uses of item v free text ===
=== Women with no date of birth in our wikibase who have a date of birth in Wikidata===


<sparql tryit="1">
<sparql tryit="1">
# 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.
# 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,491: Line 2,835:
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 ?itemLabel ?prop_label ?qual_label ?qual_value ?qual_valueLabel ?item ?qual_prop
SELECT ?person ?personLabel  ?wd_dob
 
WHERE { 
# most of these are used in qualifiers - only P72, P71 and P88 found in main (and only a handful of uses of free text?)
  ?person bnwdt:P3 bnwd:Q3 . #select women
#?item (  bnp:P88|bnp:P91 | bnp:P72|bnp:P71) ?s .  
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team
 
## the pairs
  filter not exists {?person bnwdt:P26 ?bn_dob . } # *don't* have P15 date of death
#P21 evidence (free text) / P20 evidence (item)
 
#P79 item exhibited / P80 item exhibited (free text)
  ?person bnwdt:P117 ?wikidata_ID . #look for wikidata ID on person page
#P78 of / P66 of (free text)
    bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_ID))) as ?item) .
#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 {
  SERVICE <https://query.wikidata.org/sparql> {
        ?item wdt:P21 ?WD_gender. #get gender of person
        ?item wdt:P569 ?wd_dob .  #date of birth on Wikidata P569
      }
    
    
   ?item ?p ?s .
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
 
  ?prop wikibase:claim ?p;     
        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 ?personLabel
 
</sparql>
</sparql>


=== Missing language labels ===
=== All external IDs on Wikidata for Women ===


<sparql tryit="1">
<sparql tryit="1">
 
# Query to fetch all available External IDs on Wikidata for FSAs
# query to find small number of items/properties which don't have en-gb labels
# NB this will take a while, but it should finish.
# this causes problems when needing to get labels without using SERVICE, or can't rely on AUTO_LANGUAGE
 
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,544: Line 2,873:
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>


SELECT  
SELECT distinct ?person ?personLabel ?wikidata ?p ?id_no ?id_label
  ?item ?engb ?itemLabel
  (group_concat(distinct ?language) as ?languages)
  (count(distinct ?rdfs_label) as ?count) # TIL: where you put distinct matters! 


WHERE {
WHERE {
    
    ?person bnwdt:P3 bnwd:Q3 . #select women    
  ?item bnwdt:P12 ?s. # limit to items with instance of. speeds up the query a lot cf. fetching anything.  
    #?person bnwdt:P75 bnwd:Q8. # limit to FSAs if the full set times out.
 
 
  #?item ?p ?s. #  anything. takes a while, adds ~20 not found in the instance of version
    ?person bnwdt:P117 ?wikidata_ID . #get wikidata ID
  #filter not exists { ?item bnwdt:P12 ?. } # errrm why doesn't this do anything?
    bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_ID))) as ?wikidata) .
 
  ?item rdfs:label ?rdfs_label . # rdfs item label (1 per language).  
 
  BIND(LANG(?rdfs_label) as ?language) . # get 2 letter language codes


  # optional to fetch en-gb (and/or) en separately
    SERVICE <https://query.wikidata.org/sparql> {
  optional { ?item rdfs:label ?engb . filter(lang(?engb)="en-gb"). } # blank if item only has en label 
   
  #optional { ?item rdfs:label ?en . filter(lang(?en)="en").  }
    ?wikidata ?p ?s .   
 
      ?prop wikibase:claim ?p;   
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en". }  
            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". }  
}
}
group by ?item ?engb ?itemLabel
           
HAVING (?count<2)
order by ?personLabel ?id_label ?id_no
order by ?item


</sparql>
</sparql>


 
=== What external IDs are available in Wikidata for women in the BN database? ===
=== Statements that contain both a date *and* an unknown value date===


<sparql tryit="1">
<sparql tryit="1">
# A query to look for statements containing an <unknown value> date *and* a date
# All the external IDs on BN women's Wikidata pages, with counts and descriptions
# caveat: not yet completely sure if it will work in all cases for main 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 2,586: Line 2,915:
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 ?item ?itemLabel ?main_label ?qualLabel ?subLabel
SELECT ?p ?id_label ?id_description (count(?p) as ?count)
(group_concat(distinct ?date_prop) as ?dates)  
(count (distinct(isBLANK(?t))) as ?tcount)
?s


# using isBlank() in select creates true/false, then count distinct finds any in a group having >1.
WHERE { 
  ?person bnwdt:P3 bnwd:Q3 . #select women
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .} #filter out project team


WHERE
   ?person bnwdt:P117 ?wikidata_ID . # wikidata ID
{
    bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_ID))) as ?wikidata) .
   {
    
  # qualifiers. [qualifiers need to include ?s in the group by]
    SERVICE <https://query.wikidata.org/sparql> {
  ?item ?p ?s.
    ?wikidata ?p ?s .
 
          ?prop wikibase:claim ?p;   
  # labels
              wikibase:propertyType wikibase:ExternalId; 
  ?s ?subp ?sub .
              rdfs:label ?id_label. filter(lang(?id_label)="en") .  
  ?qual wikibase:claim ?p;
      ?prop schema:description ?id_description .
        wikibase:statementProperty ?subp.
      filter(lang(?id_description) = "en") .  
 
      }
    ?s ?pq ?t .
     
 
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en, en-gb". }  
    ?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 ?p ?id_label ?id_description
group by ?item ?itemLabel ?s ?qualLabel ?subLabel  ?main_label
ORDER BY desc(?count)
having (?tcount >1 ) # comment out to get everything
 
ORDER BY ?itemLabel ?main_label ?qualLabel ?subLabel ?date_prop


</sparql>
</sparql>


 
=== Women with ODNB IDs in Wikidata ===
=== Women with no dates===


<sparql tryit="1">
<sparql tryit="1">
 
# BN women with ODNB biography IDs on Wikidata, with links to the bios
# Query for women with no dates
# WIP: at present this includes <unknown value> dates as well as no dates at all [eg Miss Keyser Q2622]
# CAVEAT: the WQS bug means there are likely to be some women in results who do, in fact, have at least one date.


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 2,654: Line 2,958:
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>
PREFIX bnpqv: <https://beyond-notability.wikibase.cloud/prop/qualifier/value/>


SELECT distinct ?person ?personLabel (count(?date_value) as ?count)
SELECT distinct ?person ?personLabel ?wikidata ?url


WHERE {
WHERE {
    ?person bnwdt:P3 bnwd:Q3 . #select women   
{  # main dates
   
 
     ?person bnwdt:P117 ?wikidata_ID . #get wikidata ID
  ?person bnwdt:P3 bnwd:Q3 . # women   
    bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_ID))) as ?wikidata) .
  optional {
     ?person ?p ?s .        
      ?s ?date_prop ?wdv .
        ?wdv wikibase:timeValue ?date_value .
 
} # /main dates
    
    
  UNION
    SERVICE <https://query.wikidata.org/sparql> {
 
  { # qualifier dates
      
      
     ?person bnwdt:P3 bnwd:Q3 .   
    # P1415 Oxford Dictionary of National Biography ID | P6829 Dictionary of Irish Biography ID | P1648 Dictionary of Welsh Biography ID
  optional {
     ?wikidata wdt:P1415 ?id .   
    ?person ?p ?s .  
 
      ?s ?date_prop ?pqv .
    # odnb link
        ?pqv wikibase:timeValue ?date_value. }
    BIND(IRI(concat("https://doi.org/10.1093/ref:odnb/", ?id)) as ?url ) .
      
      
  # /qual 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". }  
 
}
} # /where
           
group by ?person ?personLabel
order by ?personLabel ?id
having (?count=0)
ORDER BY ?person
 
</sparql>
</sparql>


 
=== Women with National Portrait Gallery links via Wikidata ===
=== Women with more than X statements but no date of birth/death===


<sparql tryit="1">
<sparql tryit="1">
 
# Query to fetch National Portrait Gallery IDs on Wikidata for BN women, with links
# Query to find women with n>X statements (currently 10) but no date of birth/death
# NB this may be a bit slow...
# CAVEAT this currently finds some women who do in fact have dates, because of WQS bug
 
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,704: Line 2,994:
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 ?statements ?dob ?dod
SELECT distinct ?person ?personLabel ?wikidata ?id_no ?npg_url


WHERE {
WHERE {
  ?person bnwdt:P3 bnwd:Q3 ;
    ?person bnwdt:P3 bnwd:Q3 . #select women   
        wikibase:statements ?statements .
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .}
    
    
  optional { ?person bnwdt:P15 ?dod .   }
    ?person bnwdt:P117 ?wikidata_ID . #get wikidata ID
  optional { ?person bnwdt:P26 ?dob .   }
    bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_ID))) as ?wikidata) .
    
    
  FILTER (?statements >10) . # can adjust n statements here...
    SERVICE <https://query.wikidata.org/sparql> {
 
   
  FILTER (NOT EXISTS { ?person bnwdt:P15 ?dod .} || NOT EXISTS { ?person bnwdt:P26 ?dob } ) . # can adjust filter to look for dob/dod separately
    ?wikidata ?p ?s .  
 
      ?prop wikibase:claim ?p;   
   SERVICE wikibase:label {
            wikibase:statementProperty ?ps;
      bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb".
            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
           
 
order by ?personLabel ?id_no
</sparql>
</sparql>


==Tools for batch processing and quality assurance work==
=== Which BN properties map on to Wikidata properties? ===


===All people (by assigned gender), filtering out those already listed as instance of human===
<sparql tryit="1">


<sparql tryit="1">
## **NOTES**
# All people (by assigned gender), filtering out those already listed as instance of human
## 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/>
Line 2,741: Line 3,038:
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 ?assigned_genderLabel
SELECT DISTINCT ?property (if(bound(?wikidata_id), "yes", "no") as ?has_wikidata)  ?bn_label ?wd_label ?bn_description
WHERE {
  ?wd_description ?wikidata ?bn_propertyType
   ?person bnwdt:P3 ?assigned_gender .                       #select person
 
  FILTER NOT EXISTS {?person bnwdt:P12 bnwd:Q2137 .}         #filter out people already listed as instance of human
WHERE {
  FILTER NOT EXISTS {?person bnwdt:P12 bnwd:Q12 .}            #filter out project team
   ?property a wikibase:Property ;
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }  
              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) .
 
            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 ?personLabel
order by ?bn_label
</sparql>
</sparql>


===All places (by coordinate location on wikidata), filtering out places already listed as instance of locality===
==== Of these, which are properties for public and professional activities? ====


<sparql tryit="1">
<sparql tryit="1">
# All places (by coordinate location on wikidata), filtering out places already listed as instance of locality
# which properties have corresponding wikidata IDs, restricted to instance of PPA (P12 / Q151)
 
## **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/>
Line 2,766: Line 3,083:
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


WHERE {
SELECT DISTINCT ?property (if(bound(?wikidata_id), "yes", "no") as ?has_wikidata)  ?bn_label ?wd_label ?bn_description
   ?place bnwdt:P33 ?admin_area #select items with 'located in the administrative territorial entity' statements
  ?wd_description ?wikidata ?bn_propertyType
  ?place bnwdt:P117 ?Qnumber .   #get wikidata ID
 
  FILTER NOT EXISTS {?place bnwdt:P12 bnwd:Q2147 .}      #filter out places already listed as instance of locality
WHERE {
 
   ?property a wikibase:Property ;
  #create reference to Wikibase entity
              wikibase:propertyType ?bn_propertyType . # datatype
  BIND(IRI(concat("http://www.wikidata.org/entity/", ?Qnumber)) as ?WDitem )  
  #on Wikibase do
  service wikibase:label {  
  SERVICE <https://query.wikidata.org/sparql> {
            bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en".
        ?WDitem wdt:P625 ?WDcoordinate_location . #get coordinate location on wikidata
            ?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) .
 
            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
    
    
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }
    ?property bnwdt:P12 bnwd:Q151. # instance of PPA
}
}
GROUP BY ?place ?placeLabel ?WDitem ?WDcoordinate_location
order by ?bn_label
ORDER BY ?placeLabel
</sparql>
</sparql>


===All items without a P12 (instance of) triple===
 
 
=== Archaeological sites/Historic houses and their owners/operators in Wikidata ===


<sparql tryit="1">
<sparql tryit="1">
# All items without a P12 (instance of) triple
#title:archaeological sites/historic houses in wikidata


PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
Line 2,803: Line 3,126:
PREFIX bnp: <https://beyond-notability.wikibase.cloud/prop/>
PREFIX bnp: <https://beyond-notability.wikibase.cloud/prop/>
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/>
 
 
SELECT distinct ?item ?itemLabel WHERE {
SELECT distinct ?item ?itemLabel ?instanceLabel ?wikidata ?wd_owner_label ?wd_operator_label ?wd_member_label  #?wd_owner ?wd_operator
   ?item ?b ?c ;
 
   FILTER NOT EXISTS {?item bnwdt:P12 ?anything .}
WHERE {
 
 
## FILTER(STRSTARTS(STR(?item), "https://beyond-notability.wikibase.cloud/entity/Q")) .  # limit results to "Q" entities
  { ?item bnwdt:P12 bnwd:Q86 . } # instance of archaeological site
## FILTER(REGEX(STR(?item), "^https://beyond-notability.wikibase.cloud/entity/[PQ]")) . # or to Ps and Qs
  union
 
  { ?item bnwdt:P12 bnwd:Q2961 . } # instance of historic house
   SERVICE wikibase:label {
 
       bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb".
  ?item bnwdt:P12 ?instance .  # which instance of is it
  filter ( ?instance in (bnwd:Q86, bnwd:Q2961) ) . # (need filter as a few have multiple instance of)
 
    ?item bnwdt:P117 ?wikidata_id .
    bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_id))) as ?wikidata) .
           
    SERVICE <https://query.wikidata.org/sparql> {
     
      optional { ?wikidata wdt:P127 ?wd_owner  .} # can be individuals and multiple.
      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
 
</sparql>
 
==== And which are owned/operated by English Heritage/National Trust or belong to Historic Houses Association ====
 
<sparql tryit="1">
 
# 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 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 ?instanceLabel ?wikidata ?wd_owner_label ?wd_operator_label ?wd_member_label  #?wd_owner ?wd_operator
 
WHERE { 
 
  { ?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> {
 
      optional { ?wikidata wdt:P127 ?wd_owner .}
      optional { ?wikidata wdt:P137 ?wd_operator . }
      optional { ?wikidata wdt:P463 ?wd_member . }
 
      # filter: owner or operator = EH/NT / member of HHA
        filter ( ?wd_owner in (wd:Q936287, wd:Q333515) ||
                ?wd_operator in (wd:Q936287, wd:Q333515) ||
                ?wd_member = wd:Q5773523 ) .
 
      ## 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 "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
 
</sparql>
 
 
 
== Men ==
 
 
=== BN Men in Wikidata ===
 
<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 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/>
 
SELECT distinct ?person ?personLabel ?wikidata ?whos_who ?odnb_url ?wikipedia ?wd_dob ?wd_dod ?wd_stmts
 
WHERE {
    ?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> {
 
      ?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 ?personLabel
</sparql>
 
=== What sort of info Wikidata has about BN men ===
 
<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 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/>
 
SELECT ?prop_label ?prop (count(?prop) as ?count)
 
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) .
 
    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 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 ?proposerLabel ?proposer ?wikidata ?odnb_url ?wikipedia ?wd_dob ?wd_dod
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
    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 {
          ?wikipedia schema:about ?wikidata .
          ?wikipedia schema:inLanguage 'en' .
          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>
 
==== Male proposers who have occupations data in Wikidata====
 
<sparql tryit="1">
#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 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 ?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
    bind(iri(concat("http://www.wikidata.org/entity/", str(?wikidata_ID))) as ?wikidata) .
 
    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 ===
 
<sparql tryit="1">
#title: BN spouses who are in 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/>
 
SELECT distinct ?spouse ?spouseLabel  ?wikidata ?odnb_url ?wikipedia ?wd_dob ?wd_dod
WHERE {
  ?person bnwdt:P3 bnwd:Q3.
  ?person bnwdt:P41 ?spouse .
 
    ?spouse 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
     
        # 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 ===
 
<sparql tryit="1">
#title:Men who supported women (at least twice) for SAL/RAI/RHS election with Wikidata IDs
 
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/>
 
# p155, p156 - signed rhs
# p32, p82  - signed sal|
# p8 rai seconded
 
SELECT  ?supporterLabel ?supporter  ?wikidata (count(?supporter) as ?supported)
 
WHERE {
 
  ?person bnwdt:P3 bnwd:Q3 .
 
  { 
    ?person (  bnp:P155 | bnp:P156 | bnp:P16 | bnp:P7 ) ?s .  #
      ?s ( bnps:P155 | bnps:P156 | bnps:P16 | bnps:P7 ) ?supporter  . # proposed SAL/RAI / signed RHS
      #?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>
 
==Fishing Expeditions==
 
===All properties in use in the wikibase with property type, label and description (if present)===
 
<sparql tryit="1">
# query for information about properties that are being used in the wikibase
 
## 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#>
 
SELECT DISTINCT
  ?property
  ?propertyType
  ?propertyLabel 
  (group_concat(?propertyAltLabel; separator=" | ") as ?propertyAltLabels)
  ?propertyDescription
 
WHERE {
  ?property a wikibase:Property ;
              rdfs:label ?propertyLabel ; # label
              wikibase:propertyType ?propertyType . # datatype
 
  # add alternative labels if present (can be multiple)
  OPTIONAL { ?property skos:altLabel ?propertyAltLabel . }
 
  # add description if present
  OPTIONAL {
        SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb,en".
          ?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 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
?prop ?propLabel ?prop_type
?stmt_value ?stmt_valueLabel
?qual_prop  ?qual_value ?qual_label ?qual_prop_type
?statement
 
where {
 
?item bnwdt:P12+ bnwd:Q2316  . # instance of organisation or descendants of (excluding instance of organisation itself)
 
  # get all the things about ?item 
    ?item ?p ?statement . 
 
  # to get item Label without using service. couple of missing en-gb labels somewhere
  # ?item rdfs:label ?item_label . filter(lang(?item_label)="en-gb") .
 
 
  # 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 ?item_label ?prop_label
 
</sparql>
 
 
=== One woman ===
 
<sparql tryit="1">
 
#title:All About a Woman
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/>
 
SELECT distinct ?propLabel ?spsLabel ?qual_propLabel ?pqsLabel ?link ?s
# ?main_date ?main_precision ?qual_date ?qual_precision   
# ?prop ?sps ?pqs ?pq
 
WHERE
{
  VALUES (?person) {(bnwd:Q569)}  # add (bnwd:Qxxx) if you want more than one person. 
  ?person ?p ?s . 
 
    ?prop wikibase:claim ?p;   
        wikibase:statementProperty ?ps;  #  simple value
        wikibase:statementValue ?psv. #  full value   
 
  # 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 .
      }
 
    # qualifiers.
 
      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.
          }
    }
 
  # 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". }
       
}
order by ?propLabel ?s
 
</sparql>
 
===Working with property paths: organisations and locations===
 
<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 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 ?location ?locationLabel (count(?item) as ?distance)
WHERE { 
  ?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". }
}
group by ?item ?itemLabel  ?location ?locationLabel
ORDER BY ?item ?distance
</sparql>
 
=== Working with property paths: instance of [CAVEAT: experimental, probably wrong]===
 
<sparql tryit="1">
# an attempt to adapt the query above following paths for locations of organisations for (more complex) instance of
# ref https://stackoverflow.com/questions/61984052/wikidata-get-the-full-subhierachy-of-one-class-as-well-as-all-nodes
# 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.
 
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 ?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
 
</sparql>
 
==Dates==
 
===All the Dates for Women FSAs===
 
<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
 
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/>
 
SELECT distinct ?person ?personLabel ?prop_label ?qualLabel ?qual_dateLabel ?date_value  ?s 
#?prop ?qual
 
WHERE {
 
  ?person bnwdt:P3 bnwd:Q3 . #select women
  ?person bnwdt:P75 bnwd:Q8. # find only BN subjects having a FSA
 
  # get stuff about ?person 
  ?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") .
 
 
{  # 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
 
  UNION
 
  { # qualifier dates
   
  # direct value (usually item) for the property
        ?s ?ps ?qual.
   
  # date qualifiers. [assumes no edtf in quals. ]
        ?s ?pq ?date_value . 
          ?qual_date wikibase:qualifier ?pq .
          ?qual_date wikibase:propertyType wikibase:Time.
          ?qual_date rdfs:label ?date_qual_label . filter(lang(?date_qual_label)="en") .
     
  } # /qual dates
 
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,en-gb". }
 
} # /where
 
ORDER BY ?person ?prop_label ?date_value
 
</sparql>
 
===Fetch any of multiple kinds of EDTF date for a woman===
 
<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.
# updated to get date property labels
 
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 ?date_edtf ?date_prop ?date_label ?s
 
WHERE { ?person bnwdt:P3 bnwd:Q3 .
      FILTER NOT EXISTS { ?person bnwdt:P4 bnwd:Q12 . }
   
      ## can do this union first but makes no difference to results except possibly a bit slower.
      #?person ( bnp:P131 | bnp:P132 | bnp:P133  ) ?s .
      #  ?s ( bnps:P131 | bnps:P132 | bnps:P133  ) ?date_edtf .
 
      ?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") .       
 
          ?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>
 
===Full values: dates ===
 
<sparql tryit="1">
 
# 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
 
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 {
  ?item bnp:P26  ?statement. # date of birth (precision of these varies quite a bit)
  ?statement bnpsv:P26 ?valueNode.
  ?valueNode wikibase:timeValue ?date.
  ?valueNode wikibase:timePrecision ?precision.
 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
ORDER BY ?date
 
</sparql>
 
=== Any main level date for women ===
 
<sparql tryit="1">
# a query to get all types of main date for women
 
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 ?person ?personLabel ?date_label  ?date ?date_prop_type ?date_prop ?link_prop
 
WHERE {
 
  ?person bnwdt:P3 bnwd:Q3 . # women
  FILTER NOT EXISTS {?person bnwdt:P4 bnwd:Q12 .}     
 
  ?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
 
  # 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
 
</sparql>
 
=== Counting Dates===
 
<sparql tryit="1">
# count distinct dates for women (who have at least one)
# 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 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/>
 
SELECT ?person ?personLabel (COUNT(DISTINCT ?date_value) as ?count)
 
WHERE {
{  # main dates
 
  ?person bnwdt:P3 bnwd:Q3 . # women 
  ?person ?p ?s .       
      ?s ?date_prop ?wdv .
        ?wdv wikibase:timeValue ?date_value .
  } # /main dates
 
  UNION
 
  { # qualifier dates
   
    ?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>
 
=== Start dates that might not have accompanying end dates ===
 
<sparql tryit="1">
#title:Women with start dates that might not have accompanying end dates
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/>
 
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)
 
WHERE {
  ?person bnwdt:P3 bnwd:Q3 .
 
  # need to find start times anywhere and get prop label so use claim.
  ?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
 
    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.
 
        # 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 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/>
 
SELECT distinct ?personLabel ?prop_label ?end_date 
(if(bound(?start_date), "yes", "no") as ?has_start_date) 
(group_concat(?other_date_label; SEPARATOR=" | ") as ?other_dates)
?person ?s
 
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
 
    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
 
#  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>
 
=== Women having children ===
 
<sparql tryit="1">
#title:women having children
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/>
 
# lol defaultView:Timeline{"hide":["?s", "?date_prec", ""]}
 
# P131 had child in / P45 child
# a handful of P45 named children don't have dob though probably have dob in wikidata
 
SELECT distinct ?person ?personLabel ?childLabel ?date_value ?date_prec ?had_child_edtf ?note 
?s
 
where {
 
  ?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.
 
  # get dates detail via ?s and psv
  # 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
 
  # 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)
  #?person bnwdt:P131 ?had_child . 
   
  # not much added in quals for had child. only maybe note P47. some have sourcing circumstances.
  optional { ?s bnpq:P47 ?note .  } #
 
  }
  union
  {
  # named children (are any in both sections??? from dates looks possible a couple might be [wherry / hodgson])
  ?person bnp:P45 ?s.
        ?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 .
              }
   }
   }
}
</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". }
 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
 
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
order by ?person ?date_value
</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" }
 
}
ORDER BY ?itemLabel ?unknown_value_forLabel
</sparql>
</sparql>
579

edits