Koetai SPARQL examples

Community-curated SPARQL example queries for multiple life-science endpoints.

View the Project on GitHub Koetai/sparql-examples

cross_kingdom_homonyms_gbif

rq turtle/ttl

In taxanomy multiple taxa exist with the same name. This query lists them

Use at

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 ?name ?rank ?kingdomA ?kingdomB ?a ?b WHERE {
  ?a rdfs:label ?name ; gbif:rank ?rank ; gbif:taxonomicStatus status:accepted ; dwc:kingdom ?kingdomA .
  ?b rdfs:label ?name ; gbif:rank ?rank ; gbif:taxonomicStatus status:accepted ; dwc:kingdom ?kingdomB .
  FILTER(STR(?a) < STR(?b))
  FILTER(STR(?kingdomA) != STR(?kingdomB))
  FILTER(STR(?kingdomA) != "incertae sedis" && STR(?kingdomB) != "incertae sedis")
}
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
  v3("?a"):::projected 
  v4("?b"):::projected 
  v1("?kingdomA"):::projected 
  v2("?kingdomB"):::projected 
  v5("?name"):::projected 
  v6("?rank"):::projected 
  c5([https://rs.gbif.org/terms/status/accepted]):::iri 
  f0[["str(?kingdomA) != 'incertae sedis'str(?kingdomB) != 'incertae sedis'"]]
  f0 --> v1
  f0 --> v2
  f1[["str(?kingdomA) != str(?kingdomB)"]]
  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