<?xml version="1.0"?>


<!DOCTYPE rdf:RDF [
    <!ENTITY owl "http://www.w3.org/2002/07/owl#" >
    <!ENTITY dc "http://purl.org/dc/elements/1.1/" >
    <!ENTITY owl11 "http://www.w3.org/2006/12/owl11#" >
    <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
    <!ENTITY snap "http://www.ifomis.org/bfo/1.0/snap#" >
    <!ENTITY span "http://www.ifomis.org/bfo/1.0/span#" >
    <!ENTITY owl11xml "http://www.w3.org/2006/12/owl11-xml#" >
    <!ENTITY bro "http://ontology.dumontierlab.com/bro#" >
    <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
    <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
    <!ENTITY molecule-primitive "ttp://ontology.dumontierlab.com/molecule-primitive#" >
    <!ENTITY chemistry-primitive "http://ontology.dumontierlab.com/chemistry-primitive#" >
    <!ENTITY biochemical-reaction "http://ontology.dumontierlab.com/biochemical-reaction#" >
    <!ENTITY organic-functional-group-primitive "http://ontology.dumontierlab.com/organic-functional-group-primitive#" >
]>


<rdf:RDF xmlns="http://ontology.dumontierlab.com/biochemical-reaction-complex-1.0.owl"
     xml:base="http://ontology.dumontierlab.com/biochemical-reaction-complex-1.0.owl"
     xmlns:dc="http://purl.org/dc/elements/1.1/"
     xmlns:owl11="http://www.w3.org/2006/12/owl11#"
     xmlns:owl11xml="http://www.w3.org/2006/12/owl11-xml#"
     xmlns:snap="http://www.ifomis.org/bfo/1.0/snap#"
     xmlns:molecule-primitive="ttp://ontology.dumontierlab.com/molecule-primitive#"
     xmlns:biochemical-reaction="http://ontology.dumontierlab.com/biochemical-reaction#"
     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
     xmlns:bro="http://ontology.dumontierlab.com/bro#"
     xmlns:organic-functional-group-primitive="http://ontology.dumontierlab.com/organic-functional-group-primitive#"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
     xmlns:owl="http://www.w3.org/2002/07/owl#"
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:chemistry-primitive="http://ontology.dumontierlab.com/chemistry-primitive#"
     xmlns:span="http://www.ifomis.org/bfo/1.0/span#">
    <owl:Ontology rdf:about="">
        <dc:creator rdf:datatype="&xsd;string"
            >Michel Dumontier</dc:creator>
        <dc:description rdf:datatype="&xsd;string"
            >Ontology to demonstrate representing and reasoning about biochemical pathways.</dc:description>
        <owl:imports rdf:resource="http://ontology.dumontierlab.com/nulo"/>
    </owl:Ontology>
    


    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // Annotation properties
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->

    <owl:AnnotationProperty rdf:about="&dc;description"/>
    <owl:AnnotationProperty rdf:about="&dc;creator"/>
    


    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // Object Properties
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->

    


    <!-- http://ontology.dumontierlab.com/bro#derivesFrom -->

    <owl:ObjectProperty rdf:about="&bro;derivesFrom"/>
    


    <!-- http://ontology.dumontierlab.com/bro#derivesInto -->

    <owl:ObjectProperty rdf:about="&bro;derivesInto"/>
    


    <!-- http://ontology.dumontierlab.com/bro#hasFunction -->

    <owl:ObjectProperty rdf:about="&bro;hasFunction"/>
    


    <!-- http://ontology.dumontierlab.com/bro#hasPart -->

    <owl:ObjectProperty rdf:about="&bro;hasPart"/>
    


    <!-- http://ontology.dumontierlab.com/bro#hasParticipant -->

    <owl:ObjectProperty rdf:about="&bro;hasParticipant"/>
    


    <!-- http://ontology.dumontierlab.com/bro#isFunctionOf -->

    <owl:ObjectProperty rdf:about="&bro;isFunctionOf"/>
    


    <!-- http://ontology.dumontierlab.com/bro#isParticipantIn -->

    <owl:ObjectProperty rdf:about="&bro;isParticipantIn"/>
    


    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // Classes
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->

    


    <!-- http://ontology.dumontierlab.com/biochemical-reaction#AcetylCoA -->

    <owl:Class rdf:about="#AcetylCoA">
        <rdfs:subClassOf rdf:resource="&molecule-primitive;Molecule"/>
        <owl:disjointWith rdf:resource="#CarbonDioxide"/>
        <owl:disjointWith rdf:resource="#Pyruvate"/>
    </owl:Class>
    


    <!-- http://ontology.dumontierlab.com/biochemical-reaction#CarbonDioxide -->

    <owl:Class rdf:about="#CarbonDioxide">
        <rdfs:subClassOf rdf:resource="&molecule-primitive;Molecule"/>
        <owl:disjointWith rdf:resource="#Pyruvate"/>
    </owl:Class>
    


    <!-- http://ontology.dumontierlab.com/biochemical-reaction#CarboxylateDonor -->

    <owl:Class rdf:about="#CarboxylateDonor">
        <rdfs:subClassOf>
            <owl:Class>
                <owl:intersectionOf rdf:parseType="Collection">
                    <rdf:Description rdf:about="&molecule-primitive;Molecule"/>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="&bro;hasPart"/>
                        <owl:someValuesFrom rdf:resource="&organic-functional-group-primitive;CarboxylicAcidGroup"/>
                    </owl:Restriction>
                </owl:intersectionOf>
            </owl:Class>
        </rdfs:subClassOf>
        <rdfs:subClassOf rdf:resource="&molecule-primitive;Molecule"/>
    </owl:Class>
    


    <!-- http://ontology.dumontierlab.com/biochemical-reaction#Catalysis -->

    <owl:Class rdf:about="#Catalysis">
        <owl:equivalentClass>
            <owl:Class>
                <owl:intersectionOf rdf:parseType="Collection">
                    <rdf:Description rdf:about="&span;Process"/>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="&bro;hasParticipant"/>
                        <owl:someValuesFrom rdf:resource="#CatalyticActivity"/>
                    </owl:Restriction>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="&bro;hasParticipant"/>
                        <owl:someValuesFrom rdf:resource="#Catalyst"/>
                    </owl:Restriction>
                </owl:intersectionOf>
            </owl:Class>
        </owl:equivalentClass>
        <rdfs:subClassOf rdf:resource="&span;Process"/>
    </owl:Class>
    


    <!-- http://ontology.dumontierlab.com/biochemical-reaction#Catalyst -->

    <owl:Class rdf:about="#Catalyst">
        <owl:equivalentClass>
            <owl:Class>
                <owl:intersectionOf rdf:parseType="Collection">
                    <rdf:Description rdf:about="&molecule-primitive;Molecule"/>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="&bro;hasFunction"/>
                        <owl:someValuesFrom rdf:resource="#CatalyticActivity"/>
                    </owl:Restriction>
                </owl:intersectionOf>
            </owl:Class>
        </owl:equivalentClass>
        <rdfs:subClassOf rdf:resource="&molecule-primitive;Molecule"/>
    </owl:Class>
    


    <!-- http://ontology.dumontierlab.com/biochemical-reaction#CatalyticActivity -->

    <owl:Class rdf:about="#CatalyticActivity">
        <owl:equivalentClass>
            <owl:Class>
                <owl:intersectionOf rdf:parseType="Collection">
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="&bro;isParticipantIn"/>
                        <owl:someValuesFrom rdf:resource="&chemistry-primitive;ChemicalReaction"/>
                    </owl:Restriction>
                    <owl:Class>
                        <owl:intersectionOf rdf:parseType="Collection">
                            <rdf:Description rdf:about="#MolecularFunction"/>
                            <owl:Restriction>
                                <owl:onProperty rdf:resource="&bro;isFunctionOf"/>
                                <owl:someValuesFrom rdf:resource="#Catalyst"/>
                            </owl:Restriction>
                        </owl:intersectionOf>
                    </owl:Class>
                </owl:intersectionOf>
            </owl:Class>
        </owl:equivalentClass>
        <rdfs:subClassOf rdf:resource="#MolecularFunction"/>
    </owl:Class>
    


    <!-- http://ontology.dumontierlab.com/biochemical-reaction#HSCoA -->

    <owl:Class rdf:about="#HSCoA">
        <rdfs:subClassOf rdf:resource="&molecule-primitive;Molecule"/>
        <owl:disjointWith rdf:resource="#CarbonDioxide"/>
        <owl:disjointWith rdf:resource="#Pyruvate"/>
        <owl:disjointWith rdf:resource="#AcetylCoA"/>
    </owl:Class>
    


    <!-- http://ontology.dumontierlab.com/biochemical-reaction#MolecularFunction -->

    <owl:Class rdf:about="#MolecularFunction">
        <owl:equivalentClass>
            <owl:Class>
                <owl:intersectionOf rdf:parseType="Collection">
                    <rdf:Description rdf:about="&snap;Function"/>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="&bro;isFunctionOf"/>
                        <owl:someValuesFrom rdf:resource="&molecule-primitive;Molecule"/>
                    </owl:Restriction>
                </owl:intersectionOf>
            </owl:Class>
        </owl:equivalentClass>
        <rdfs:subClassOf rdf:resource="&snap;Function"/>
    </owl:Class>
    


    <!-- http://ontology.dumontierlab.com/biochemical-reaction#OxidativeDecarboxylation -->

    <owl:Class rdf:about="#OxidativeDecarboxylation">
        <owl:equivalentClass>
            <owl:Class>
                <owl:intersectionOf rdf:parseType="Collection">
                    <rdf:Description rdf:about="&chemistry-primitive;ChemicalReaction"/>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="&bro;hasParticipant"/>
                        <owl:someValuesFrom rdf:resource="#CarbonDioxide"/>
                    </owl:Restriction>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="&bro;hasParticipant"/>
                        <owl:someValuesFrom>
                            <owl:Class>
                                <owl:intersectionOf rdf:parseType="Collection">
                                    <rdf:Description rdf:about="&molecule-primitive;Molecule"/>
                                    <owl:Restriction>
                                        <owl:onProperty rdf:resource="&bro;hasPart"/>
                                        <owl:someValuesFrom rdf:resource="&organic-functional-group-primitive;CarboxylicAcidGroup"/>
                                    </owl:Restriction>
                                </owl:intersectionOf>
                            </owl:Class>
                        </owl:someValuesFrom>
                    </owl:Restriction>
                </owl:intersectionOf>
            </owl:Class>
        </owl:equivalentClass>
        <rdfs:subClassOf rdf:resource="&chemistry-primitive;ChemicalReaction"/>
    </owl:Class>
    


    <!-- http://ontology.dumontierlab.com/biochemical-reaction#Pyruvate -->

    <owl:Class rdf:about="#Pyruvate">
        <rdfs:subClassOf rdf:resource="&molecule-primitive;Molecule"/>
    </owl:Class>
    


    <!-- http://ontology.dumontierlab.com/biochemical-reaction#PyruvateDecarboxylation -->

    <owl:Class rdf:about="#PyruvateDecarboxylation">
        <owl:equivalentClass>
            <owl:Class>
                <owl:intersectionOf rdf:parseType="Collection">
                    <rdf:Description rdf:about="#OxidativeDecarboxylation"/>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="&bro;hasParticipant"/>
                        <owl:someValuesFrom rdf:resource="#Pyruvate"/>
                    </owl:Restriction>
                </owl:intersectionOf>
            </owl:Class>
        </owl:equivalentClass>
        <rdfs:subClassOf>
            <owl:Class>
                <owl:intersectionOf rdf:parseType="Collection">
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="&bro;hasParticipant"/>
                        <owl:someValuesFrom rdf:resource="#CarbonDioxide"/>
                    </owl:Restriction>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="&bro;hasParticipant"/>
                        <owl:someValuesFrom rdf:resource="#Pyruvate"/>
                    </owl:Restriction>
                </owl:intersectionOf>
            </owl:Class>
        </rdfs:subClassOf>
        <rdfs:subClassOf rdf:resource="#OxidativeDecarboxylation"/>
    </owl:Class>
    


    <!-- http://ontology.dumontierlab.com/chemistry-primitive#ChemicalReaction -->

    <owl:Class rdf:about="&chemistry-primitive;ChemicalReaction">
        <owl:equivalentClass>
            <owl:Class>
                <owl:intersectionOf rdf:parseType="Collection">
                    <rdf:Description rdf:about="&span;Process"/>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="&bro;hasParticipant"/>
                        <owl:someValuesFrom>
                            <owl:Class>
                                <owl:intersectionOf rdf:parseType="Collection">
                                    <rdf:Description rdf:about="&molecule-primitive;Molecule"/>
                                    <owl:Restriction>
                                        <owl:onProperty rdf:resource="&bro;derivesFrom"/>
                                        <owl:someValuesFrom rdf:resource="&molecule-primitive;Molecule"/>
                                    </owl:Restriction>
                                </owl:intersectionOf>
                            </owl:Class>
                        </owl:someValuesFrom>
                    </owl:Restriction>
                </owl:intersectionOf>
            </owl:Class>
        </owl:equivalentClass>
        <rdfs:subClassOf rdf:resource="&span;Process"/>
    </owl:Class>
    


    <!-- http://ontology.dumontierlab.com/organic-functional-group-primitive#CarboxylicAcidGroup -->

    <owl:Class rdf:about="&organic-functional-group-primitive;CarboxylicAcidGroup">
        <rdfs:subClassOf rdf:resource="&organic-functional-group-primitive;OrganicGroup"/>
    </owl:Class>
    


    <!-- http://ontology.dumontierlab.com/organic-functional-group-primitive#OrganicGroup -->

    <owl:Class rdf:about="&organic-functional-group-primitive;OrganicGroup">
        <rdfs:subClassOf rdf:resource="&snap;FiatObjectPart"/>
    </owl:Class>
    


    <!-- http://www.ifomis.org/bfo/1.0/snap#FiatObjectPart -->

    <owl:Class rdf:about="&snap;FiatObjectPart"/>
    


    <!-- http://www.ifomis.org/bfo/1.0/snap#Function -->

    <owl:Class rdf:about="&snap;Function"/>
    


    <!-- http://www.ifomis.org/bfo/1.0/snap#Object -->

    <owl:Class rdf:about="&snap;Object"/>
    


    <!-- http://www.ifomis.org/bfo/1.0/span#Process -->

    <owl:Class rdf:about="&span;Process"/>
    


    <!-- ttp://ontology.dumontierlab.com/molecule-primitive#Molecule -->

    <owl:Class rdf:about="&molecule-primitive;Molecule">
        <rdfs:subClassOf rdf:resource="&snap;Object"/>
    </owl:Class>
    


    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // Individuals
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->

    


    <!-- http://ontology.dumontierlab.com/biochemical-reaction#CO2 -->

    <molecule-primitive:Molecule rdf:about="#CO2">
        <bro:derivesFrom rdf:resource="#pyruvate"/>
    </molecule-primitive:Molecule>
    


    <!-- http://ontology.dumontierlab.com/biochemical-reaction#HSCoA -->

    <molecule-primitive:Molecule rdf:about="#HSCoA">
        <bro:derivesInto rdf:resource="#acetyl-coa"/>
    </molecule-primitive:Molecule>
    


    <!-- http://ontology.dumontierlab.com/biochemical-reaction#acetyl-coa -->

    <molecule-primitive:Molecule rdf:about="#acetyl-coa"/>
    


    <!-- http://ontology.dumontierlab.com/biochemical-reaction#catalysis -->

    <span:Process rdf:about="#catalysis">
        <bro:hasParticipant rdf:resource="#pyruvate_dehydrogenase"/>
        <bro:hasParticipant rdf:resource="#pd_catalytic_activity"/>
    </span:Process>
    


    <!-- http://ontology.dumontierlab.com/biochemical-reaction#pd_catalytic_activity -->

    <CatalyticActivity rdf:about="#pd_catalytic_activity"/>
    


    <!-- http://ontology.dumontierlab.com/biochemical-reaction#pyruvate -->

    <molecule-primitive:Molecule rdf:about="#pyruvate">
        <bro:derivesInto rdf:resource="#CO2"/>
        <bro:derivesInto rdf:resource="#acetyl-coa"/>
    </molecule-primitive:Molecule>
    


    <!-- http://ontology.dumontierlab.com/biochemical-reaction#pyruvate_dehydrogenase -->

    <molecule-primitive:Molecule rdf:about="#pyruvate_dehydrogenase">
        <bro:hasFunction rdf:resource="#pd_catalytic_activity"/>
    </molecule-primitive:Molecule>
    


    <!-- http://ontology.dumontierlab.com/biochemical-reaction#reaction -->

    <span:Process rdf:about="#reaction">
        <bro:hasParticipant rdf:resource="#HSCoA"/>
        <bro:hasParticipant rdf:resource="#pyruvate_dehydrogenase"/>
        <bro:hasParticipant rdf:resource="#pyruvate"/>
        <bro:hasParticipant rdf:resource="#acetyl-coa"/>
        <bro:hasPart rdf:resource="#catalysis"/>
        <bro:hasParticipant rdf:resource="#CO2"/>
    </span:Process>
    


    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // General axioms
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->

    <rdf:Description>
        <rdf:type rdf:resource="&rdf;List"/>
        <rdf:first rdf:resource="&bro;hasParticipant"/>
        <rdfs:subPropertyOf rdf:resource="&bro;hasParticipant"/>
        <rdf:rest rdf:parseType="Collection">
            <rdf:Description rdf:about="&bro;hasPart"/>
        </rdf:rest>
    </rdf:Description>
</rdf:RDF>
