Project:SPARQL/examples
From Beyond Notability
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". }
}
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". }
}
People for whom their item records is given as '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". }
}
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!
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!
People elected to SAL or RAI linked in a graph to those who proposed, seconded, or signed the nomination for 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!
People elected to SAL or RAI, including who proposed, seconded, or signed them (seperated by type) and date proposals made
PREFIX bn: <http://beyond-notability.wiki.opencura.com/entity/>
PREFIX bnwdt: <http://beyond-notability.wiki.opencura.com/prop/direct/>
PREFIX bnps: <http://beyond-notability.wiki.opencura.com/prop/statement/>
PREFIX bnpq: <http://beyond-notability.wiki.opencura.com/prop/qualifier/>
SELECT ?personLabel ?RAIproposedLabel ?RAIsecondedLabel ?SALproposedLabel ?date WHERE
{
?person ?y ?z .
?person bnwdt:P3 ?gender . #this line is a crude hack for 'is person'
?z bnpq:P1 ?date .
{?person bnwdt:P7 ?RAIproposed .}
UNION
{?person bnwdt:P8 ?RAIseconded .}
UNION
{?person bnwdt:P16 ?SALproposed .}
SERVICE wikibase:label {
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb".
}
}
ORDER BY ?person
# per https://twitter.com/Tagishsimon/status/1445127301306490891, I (James) and aware that this is a hack of the datamodel that isn't using the datamodel to full effect.
People whose residence was at one time in the east or south east of England, excluding London
PREFIX bn: <http://beyond-notability.wiki.opencura.com/entity/>
PREFIX bnwdt: <http://beyond-notability.wiki.opencura.com/prop/direct/>
PREFIX bnps: <http://beyond-notability.wiki.opencura.com/prop/statement/>
PREFIX bnpq: <http://beyond-notability.wiki.opencura.com/prop/qualifier/>
SELECT ?residentLabel ?residenceLabel ?districtLabel ?countyLabel ?regionLabel
WHERE {
?resident bnwdt:P29 ?residence .
?residence bnwdt:P33 ?district .
?district bnwdt:P33 ?county .
?county bnwdt:P33 ?region .
{?county bnwdt:P33 bn:Q67 .}
UNION
{?county bnwdt:P33 bn:Q85 .}
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en-gb". }
}