Project:SPARQL/examples: Difference between revisions

m
(9 intermediate revisions by the same user not shown)
Line 170: Line 170:
</sparql>
</sparql>


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


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


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


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


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


WHERE {   
WHERE {   
Line 225: Line 192:


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


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


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


WHERE {   
WHERE {   
Line 267: Line 230:


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


       # qualifiers.  
       # qualifiers.  
       optional {  
       optional {  
         ?s ?pq ?pq_value .   
         ?s ?pq ?qual_value .   
          
          
         ?qual_prop wikibase:qualifier ?pq .   
         ?qual_prop wikibase:qualifier ?pq .   
        #?qual_prop rdfs:label ?qual_prop_label. filter(lang(?qual_prop_label)="en-gb") .
        ?qual_prop wikibase:propertyType ?qual_prop_type .
          
          
       } # /qualifiers
       } # /qualifiers
Line 296: Line 255:
#title: FSAs with no record of interacting with SAL in Q1 / Q8
#title: FSAs with no record of interacting with SAL in Q1 / Q8
# only active engagements like spoke at, corresponded with, etc, and excluding P75 "was fellow of" and P5 "archives at".
# only active engagements like spoke at, corresponded with, etc, and excluding P75 "was fellow of" and P5 "archives at".
# WIP: to update with other SAL records as I work through queries for them. Plus caveat that there may be other sources of interaction not recorded in the database!
# CAVEATS: I think this is not working as intended and it shouldn't be referenced or archived


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


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


SELECT distinct ?personLabel ?workLabel ?positionLabel ?date_pLabel ?date  
SELECT distinct ?personLabel ?workLabel ?positionLabel ?date_propLabel ?date  
?employerLabel ?organisedLabel ?ofLabel ?person
?employerLabel ?organisedLabel ?ofLabel ?locationLabel ?person
#?s  ?position  ?of  ?work ?employer ?organised
#?s  ?position  ?of  ?work ?employer ?organised ?location ?date_prop


WHERE {
WHERE {
Line 471: Line 430:
     # more about the position
     # more about the position
     ?s ( bnps:P17|bnps:P48|bnps:P105 ) ?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.
     # employer / organised by / of (incl free text).  
     # for position held, employer>of [ontology day discussion 13/9/23]
     # for position held, employer>of [ontology day discussion 13/9/23]
     OPTIONAL { ?s bnpq:P18 ?employer .}   
     OPTIONAL { ?s bnpq:P18 ?employer .}   
Line 477: Line 436:
     OPTIONAL { ?s ( bnpq:P78 | bnpq:P66 ) ?of .}
     OPTIONAL { ?s ( bnpq:P78 | bnpq:P66 ) ?of .}
   
   
  # optional { ?s bnpq:P2 ?location . } # sometimes there is location and no employer/org/of
    optional { ?s bnpq:P2 ?location . }
      
      
   # dates
   # dates with property labels.
     optional {
     optional {
     ?s ?pq ?date .  
     ?s ?pq ?date .
     
       ?date_prop wikibase:qualifier ?pq;       
       ?date_p wikibase:qualifier ?pq;       
               wikibase:propertyType wikibase:Time .
              #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
       } # /dates
    
    
727

edits