Community-curated SPARQL example queries for multiple life-science endpoints.
PREFIX gbif: https://rs.gbif.org/terms/ PREFIX status: https://rs.gbif.org/terms/status/ PREFIX rdfs: http://www.w3.org/2000/01/rdf-schema# PREFIX dwc: http://rs.tdwg.org/dwc/terms/ SELECT (COUNT(*) AS ?pairs) (COUNT(DISTINCT ?name) AS ?names) WHERE { ?a rdfs:label ?name ; gbif:rank ?rank ; gbif:taxonomicStatus status:accepted ; dwc:kingdom ?kA . ?b rdfs:label ?name ; gbif:rank ?rank ; gbif:taxonomicStatus status:accepted ; dwc:kingdom ?kB . FILTER(STR(?a) < STR(?b)) FILTER(STR(?kA) != STR(?kB)) FILTER(STR(?kA) != "incertae sedis" && STR(?kB) != "incertae sedis") }
PREFIX gbif: <https://rs.gbif.org/terms/>
PREFIX status: <https://rs.gbif.org/terms/status/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX dwc: <http://rs.tdwg.org/dwc/terms/>
SELECT (COUNT(*) AS ?pairs) (COUNT(DISTINCT ?name) AS ?names) WHERE {
?a rdfs:label ?name ; gbif:rank ?rank ; gbif:taxonomicStatus status:accepted ; dwc:kingdom ?kA .
?b rdfs:label ?name ; gbif:rank ?rank ; gbif:taxonomicStatus status:accepted ; dwc:kingdom ?kB .
FILTER(STR(?a) < STR(?b)) FILTER(STR(?kA) != STR(?kB))
FILTER(STR(?kA) != "incertae sedis" && STR(?kB) != "incertae sedis")
}
# by rank: replace projection with SELECT ?rank (COUNT(*) AS ?n) … GROUP BY ?rank ORDER BY DESC(?n)
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
v3("?a")
v4("?b")
v1("?kA")
v2("?kB")
v5("?name"):::projected
v8("?names")
v7("?pairs")
v6("?rank")
c5([https://rs.gbif.org/terms/status/accepted]):::iri
f0[["str(?kA) != 'incertae sedis'str(?kB) != 'incertae sedis'"]]
f0 --> v1
f0 --> v2
f1[["str(?kA) != str(?kB)"]]
f1 --> v1
f1 --> v2
f2[["str(?a) < str(?b)"]]
f2 --> v3
f2 --> v4
v3 --"rdfs:label"--> v5
v3 --https://rs.gbif.org/terms/rank--> v6
v3 --https://rs.gbif.org/terms/taxonomicStatus--> c5
v3 --http://rs.tdwg.org/dwc/terms/kingdom--> v1
v4 --"rdfs:label"--> v5
v4 --https://rs.gbif.org/terms/rank--> v6
v4 --https://rs.gbif.org/terms/taxonomicStatus--> c5
v4 --http://rs.tdwg.org/dwc/terms/kingdom--> v2
bind5[/"count(*)"/]
bind5 --as--o v7
bind6[/"count(?name)"/]
v5 --o bind6
bind6 --as--o v8