sparql-examples

A set of SPARQL examples that are used in different SIB resources

View the Project on GitHub sib-swiss/sparql-examples

48_Select_all_reactions_with_at_least_one_parent_reaction_and_give_the_number_ancestor_reactions

rq turtle/ttl

Select all reactions with at least one parent reaction and give the number ancestor reactions

Use at

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rh: <http://rdf.rhea-db.org/>

SELECT
  ?reaction
  (count(?parentReaction) as ?parentReactionCount)
WHERE {
  ?reaction rdfs:subClassOf rh:Reaction .
  ?reaction rh:status rh:Approved .

  ?reaction rdfs:subClassOf ?parentReaction .

  ?parentReaction rdfs:subClassOf rh:Reaction .
  ?parentReaction rh:status rh:Approved .
}
GROUP BY ?reaction
ORDER BY DESC (?parentReactionCount) ?reaction

graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
  v3("?parentReaction"):::projected 
  v4("?parentReactionCount")
  v2("?reaction"):::projected 
  c4(["rh:Approved"]):::iri 
  c2(["rh:Reaction"]):::iri 
  v2 --"rdfs:subClassOf"-->  c2
  v2 --"rh:status"-->  c4
  v2 --"rdfs:subClassOf"-->  v3
  v3 --"rdfs:subClassOf"-->  c2
  v3 --"rh:status"-->  c4
  bind1[/"count(?parentReaction)"/]
  v3 --o bind1
  bind1 --as--o v4