1:- module(rhea,
2 [
3 rhea_status/2,
4 is_approved/1,
5 is_transport/1,
6 reaction/1,
7 rhea_xref/2,
8
9 reaction_side/2,
10 side_contains/2,
11
12 reaction_participant/2,
13 participant_compound/2,
14 compound_chebi/2,
15 participant_chebi/2,
16 reaction_chebi_participant/2
17
18 ]). 19
20:- use_module(library(semweb/rdf11)). 21
23
24:- rdf_register_prefix(rh, 'http://rdf.rhea-db.org/'). 25:- rdf_register_prefix(chebi, 'http://purl.obolibrary.org/obo/CHEBI_'). 26
27:- rdf_meta status(r,r).
28rhea_status(A,B) :- rdf(A, rh:status, B).
29
30:- rdf_meta is_approved(r).
31is_approved(A) :- rhea_status(A,rh:'Approved').
32
33is_transport(R) :- rdf(R,rh:isTransport,"true"^^xsd:boolean).
34
35:- rdf_meta reaction(r).
36reaction(R) :- rdf(R,rdfs:subClassOf,rh:'Reaction').
37directional_reaction(R) :- rdf(R,rdfs:subClassOf,rh:'DirectionalReaction').
38bidirectional_reaction(R) :- rdf(R,rdfs:subClassOf,rh:'BidirectionalReaction').
39
40directional_form(R,DR) :- rdf(R,rh:directionalReaction,DR).
41bidirectional_form(R,DR) :- rdf(R,rh:bidirectionalReaction,DR).
42
43rhea_xref(R,X) :- rdf(R,rdfs:seeAlso,X).
44
45rhea_product(R, S) :- rdf(R,rh:products,S).
46rhea_substrate(R, S) :- rdf(R,rh:substrate,S).
47
48
49reaction_side(R,S) :- rdf(R,rh:side,S).
50side_contains(S,P) :- rdf(S,rh:contains,P).
51reaction_participant(R,P) :- reaction_side(R,S),side_contains(S,P).
52
53participant_compound(P,C) :- rdf(P,rh:compound,C).
54compound_chebi(C,X) :- rdf(C,rh:chebi,X).
55participant_chebi(P,X) :- participant_compound(P,C),compound_chebi(C,X).
56
57reaction_chebi_participant(R,X) :- reaction_participant(R,P),participant_chebi(P,X).
58
59rhea_name(R,N) :- rdf(R,rh:name,N).
60rhea_accession(R,A) :- rdf(R,rh:accession,A). 61
62rhea_equation(R,E) :- rdf(R,rh:equation,E)