Project:SPARQL/examples: Difference between revisions

no edit summary
No edit summary
Line 1,052: Line 1,052:
</sparql>
</sparql>


==Exploring Properties, Paths, Value Nodes==
 
=== Women with no date of death in our wikibase who have a date of death on Wikidata===
 
<sparql tryit="1">
# Women who have no date of death in our wikibase and have a date of death on Wikidata
 
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX 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  ?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 bnp:P117 ?wikidata_ID . #look for wikidata ID on person page
  ?wikidata_ID bnpq:P14 ?wikidata_url .
  BIND(IRI(REPLACE(?wikidata_url,"https://www.wikidata.org/wiki/","http://www.wikidata.org/entity/")) as ?item )
 
  SERVICE <https://query.wikidata.org/sparql> {
        ?item wdt:P21 ?WD_gender. #get gender of person
        ?item wdt:P570 ?wd_dod .  #date of death on Wikidata P570
      }
 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }
}
ORDER BY ?personLabel
</sparql>
 
=== Women with no date of birth in our wikibase who have a date of birth in Wikidata===
 
<sparql tryit="1">
# 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 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  ?wd_dob
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:P26 ?bn_dob . } # *don't* have P15 date of death
 
  ?person bnp:P117 ?wikidata_ID . #look for wikidata ID on person page
  ?wikidata_ID bnpq:P14 ?wikidata_url .
  BIND(IRI(REPLACE(?wikidata_url,"https://www.wikidata.org/wiki/","http://www.wikidata.org/entity/")) as ?item )
 
  SERVICE <https://query.wikidata.org/sparql> {
        ?item wdt:P21 ?WD_gender. #get gender of person
        ?item wdt:P569 ?wd_dob .  #date of birth on Wikidata P569
      }
 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }
}
ORDER BY ?personLabel
</sparql>
 
 
==Fishing Expeditions==


===All properties in use in the wikibase with property type, label and description (if present)===
===All properties in use in the wikibase with property type, label and description (if present)===
Line 1,100: Line 1,174:
</sparql>
</sparql>


===Counts of items for each value of the property "instance of" (P12)===
 
=== All the Things for Organisations ===


<sparql tryit="1">
<sparql tryit="1">
# Exploratory query to get all info on an item page including qualifiers (but not references) for each organisation in the wikibase


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


select ?item ?itemLabel
?prop ?propLabel ?prop_type
?stmt_value ?stmt_valueLabel
?qual_prop  ?qual_value ?qual_label ?qual_prop_type
?statement
where {


SELECT ?value ?valueLabel  (count(*) as ?count)
?item bnwdt:P12 bnwd:Q2316 . # instance of organisation
WHERE {  
 
  # 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.       


   VALUES (?p) { (bnwdt:P12) }   
  # 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 . }   
    
    
  ?s ?p ?value.
    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }
    
    
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
}


GROUP BY ?value ?valueLabel
order by ?item_label ?prop_label


ORDER BY lcase(?valueLabel) # order by is case sensitive
</sparql>
# or to order by count
# order by ?count


</sparql>
==Dates==


===Fetch any of multiple kinds of EDTF date for a woman===
===Fetch any of multiple kinds of EDTF date for a woman===
Line 1,205: Line 1,309:
</sparql>
</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 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/>
select ?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
 
  # 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>


==Admin==
==Admin==
Line 1,370: Line 1,418:
</sparql>
</sparql>


=== Women with no date of death in our wikibase who have a date of death on Wikidata===


<sparql tryit="1">
# Women who have no date of death in our wikibase and have a date of death on Wikidata
PREFIX bnwd: <https://beyond-notability.wikibase.cloud/entity/>
PREFIX 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  ?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 bnp:P117 ?wikidata_ID . #look for wikidata ID on person page
  ?wikidata_ID bnpq:P14 ?wikidata_url .
  BIND(IRI(REPLACE(?wikidata_url,"https://www.wikidata.org/wiki/","http://www.wikidata.org/entity/")) as ?item )
 
  SERVICE <https://query.wikidata.org/sparql> {
        ?item wdt:P21 ?WD_gender. #get gender of person
        ?item wdt:P570 ?wd_dod .  #date of death on Wikidata P570
      }
 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }
}
ORDER BY ?personLabel
</sparql>
=== Women with no date of birth in our wikibase who have a date of birth in Wikidata===
<sparql tryit="1">
# 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 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  ?wd_dob
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:P26 ?bn_dob . } # *don't* have P15 date of death
 
  ?person bnp:P117 ?wikidata_ID . #look for wikidata ID on person page
  ?wikidata_ID bnpq:P14 ?wikidata_url .
  BIND(IRI(REPLACE(?wikidata_url,"https://www.wikidata.org/wiki/","http://www.wikidata.org/entity/")) as ?item )
 
  SERVICE <https://query.wikidata.org/sparql> {
        ?item wdt:P21 ?WD_gender. #get gender of person
        ?item wdt:P569 ?wd_dob .  #date of birth on Wikidata P569
      }
 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }
}
ORDER BY ?personLabel
</sparql>


==Tools for batch processing and quality assurance work==
==Tools for batch processing and quality assurance work==
Line 1,532: Line 1,510:
}
}
</sparql>
</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 "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===
===Get all items (with 'instance of' statement) for duplicate checking in OpenRefine===
579

edits