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
   22%:- use_module(library(sparqlprog/ontologies/faldo)).
   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). % CHEBI CURIE, or POLYMER:nn
   61
   62rhea_equation(R,E) :- rdf(R,rh:equation,E)