Project:SPARQL/examples

Revision as of 07:33, 4 October 2021 by Jwbaker (talk | contribs) (add new query)

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

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 ?RAIproposedLabel ?RAIsecondedLabel ?SALproposedLabel WHERE
{
    {?person b:P7 ?RAIproposed .}
    UNION
    {?person b:P8 ?RAIseconded .}
    UNION
    {?person b:P16 ?SALproposed .}  
    SERVICE wikibase:label {
      bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb".
    }
}
ORDER BY ?person
# I don't know how to use bpq to give a date for each row: any suggestions appreciated!

Try it!