A set of SPARQL examples that are used in different SIB resources
Select all compounds and count their occurrence in Rhea reactions
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rh:<http://rdf.rhea-db.org/>
SELECT
?reaction
?reactionSide1
(count(distinct ?participant1) as ?side1ParticipantCount)
?reactionSide2
(count(distinct ?participant2) as ?side2ParticipantCount)
WHERE {
?reaction rdfs:subClassOf rh:Reaction .
?reaction rh:status rh:Approved .
?reaction rh:side ?reactionSide1 .
?reactionSide1 rh:contains ?participant1 .
?reactionSide1 rh:curatedOrder ?curatedOrder1 .
?reaction rh:side ?reactionSide2 .
?reactionSide2 rh:contains ?participant2 .
?reactionSide2 rh:curatedOrder ?curatedOrder2 .
?reactionSide1 rh:transformableTo ?reactionSide2 .
FILTER (?curatedOrder1 < ?curatedOrder2) .
}
GROUP BY ?reaction ?reactionSide1 ?reactionSide2
ORDER BY DESC(?side1ParticipantCount) DESC(?side2ParticipantCount) ?reaction
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
v4("?curatedOrder1")
v5("?curatedOrder2")
v7("?participant1"):::projected
v9("?participant2"):::projected
v3("?reaction"):::projected
v6("?reactionSide1"):::projected
v8("?reactionSide2"):::projected
v10("?side1ParticipantCount")
v10("?side2ParticipantCount")
c4(["rh:Approved"]):::iri
c2(["rh:Reaction"]):::iri
f0[["?curatedOrder1 < ?curatedOrder2"]]
f0 --> v4
f0 --> v5
v3 --"rdfs:subClassOf"--> c2
v3 --"rh:status"--> c4
v3 --"rh:side"--> v6
v6 --"rh:contains"--> v7
v6 --"rh:curatedOrder"--> v4
v3 --"rh:side"--> v8
v8 --"rh:contains"--> v9
v8 --"rh:curatedOrder"--> v5
v6 --"rh:transformableTo"--> v8
bind3[/"count(?participant1)"/]
v7 --o bind3
bind3 --as--o v10
bind4[/"count(?participant2)"/]
v9 --o bind4
bind4 --as--o v10