Project:SPARQL/examples: Difference between revisions

From Beyond Notability
(add new query)
Line 78: Line 78:
</sparql>
</sparql>


===People elected to SAL or RAI, including who proposed or seconded them, seperated by type===
===People elected to SAL or RAI, including who proposed or seconded them (seperated by type) and date proposals made===


<sparql tryit="1">
<sparql tryit="1">
Line 87: Line 87:




SELECT ?personLabel ?RAIproposedLabel ?RAIsecondedLabel ?SALproposedLabel WHERE
SELECT ?personLabel ?RproposedLabel ?RsecondedLabel ?SproposedLabel ?date WHERE
{
{
     {?person b:P7 ?RAIproposed .}
  ?person ?y ?z .
  ?person b:P3 ?gender .
  ?z bpq:P1 ?date .
     {?person b:P7 ?Rproposed .}
     UNION
     UNION
     {?person b:P8 ?RAIseconded .}
     {?person b:P8 ?Rseconded .}
     UNION
     UNION
     {?person b:P16 ?SALproposed .}   
     {?person b:P16 ?Sproposed .}   
     SERVICE wikibase:label {
     SERVICE wikibase:label {
       bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb".
       bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb".
Line 99: Line 102:
}
}
ORDER BY ?person
ORDER BY ?person
# I don't know how to use bpq to give a date for each row: any suggestions appreciated!
</sparql>
</sparql>

Revision as of 10:58, 4 October 2021

Examples

People in the wiki, excluding the project team

PREFIX a: <http://beyond-notability.wiki.opencura.com/entity/>
PREFIX b: <http://beyond-notability.wiki.opencura.com/prop/direct/>

SELECT ?id ?name
WHERE {  
  ?id rdfs:label ?name .
  ?id b:P3 ?idGender . #this line assumes that items for people have a gender value
  FILTER NOT EXISTS {?id b:P4 a:Q12 .}
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". } 
}

Try it!


People whose elections were proposed by men

PREFIX a: <http://beyond-notability.wiki.opencura.com/entity/>
PREFIX b: <http://beyond-notability.wiki.opencura.com/prop/direct/>
SELECT ?personLabel ?persongenderLabel ?electorLabel ?Date
WHERE {  
  ?person b:P7 ?elector ;
          b:P3 ?persongender .
  ?elector b:P3 a:Q10 .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }
}

Try it!


People whose name in the records begin with 'Mrs'

SELECT ?id ?name
WHERE {  
  ?id rdfs:label ?name .
  FILTER regex(?name, "mrs *", "i") #this line uses regular expression syntax, described at https://regexper.com/#mrs%5Cs*
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". } 
}

Try it!


All triples in the wiki, limited to 1000

SELECT ?a ?aLabel ?b ?c WHERE {
    ?a ?b ?c
    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }
}
LIMIT 1000 #please don't make this number too big as it will slow down the site!

Try it!


All triples in the wiki, represented as a crude graph

#defaultView:Graph
SELECT ?a ?aLabel ?c ?cLabel WHERE {
    ?a ?b ?c
    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }
}
#note query returns every connection in the wikibase so it may fall over!

Try it!


People elected to SAL or RAI linked in a graph to those who proposed their election

PREFIX a: <http://beyond-notability.wiki.opencura.com/entity/>
PREFIX b: <http://beyond-notability.wiki.opencura.com/prop/direct/>

#defaultView:Graph
SELECT ?person ?personLabel ?elector ?electorLabel WHERE {
    ?person b:P7|b:P8|b:P16 ?elector .
    SERVICE wikibase:label {
      bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb".
    }
}
# I don't know how to use 'edgeLabel' to show the types of interaction, but if you have an idea suggest an edit!

Try it!


People elected to SAL or RAI, including who proposed or seconded them (seperated by type) and date proposals made

PREFIX a: <http://beyond-notability.wiki.opencura.com/entity/>
PREFIX b: <http://beyond-notability.wiki.opencura.com/prop/direct/>
PREFIX bps: <http://beyond-notability.wiki.opencura.com/prop/statement/>
PREFIX bpq: <http://beyond-notability.wiki.opencura.com/prop/qualifier/>


SELECT ?personLabel ?RproposedLabel ?RsecondedLabel ?SproposedLabel ?date WHERE
{
  ?person ?y ?z .
  ?person b:P3 ?gender .
  ?z bpq:P1 ?date .
    {?person b:P7 ?Rproposed .}
    UNION
    {?person b:P8 ?Rseconded .}
    UNION
    {?person b:P16 ?Sproposed .}  
    SERVICE wikibase:label {
      bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb".
    }
}
ORDER BY ?person

Try it!