PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX linkml: <https://w3id.org/linkml/>
PREFIX reactome: <https://w3id.org/reactome-ontology/>
PREFIX reactomeid: <https://w3id.org/reactome-ontology/id/>
PREFIX biolink: <https://w3id.org/biolink/vocab/>
PREFIX GO: <http://purl.obolibrary.org/obo/GO_>
PREFIX CHEBI: <http://purl.obolibrary.org/obo/CHEBI_>
PREFIX UniProtKB: <http://purl.uniprot.org/uniprot/>
PREFIX NCBITaxon: <http://purl.obolibrary.org/obo/NCBITaxon_>
PREFIX BFO: <http://purl.obolibrary.org/obo/BFO_>
PREFIX RO: <http://purl.obolibrary.org/obo/RO_>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX orcid: <https://orcid.org/>
PREFIX pav: <http://purl.org/pav/>
PREFIX sh: <http://www.w3.org/ns/shacl#>
PREFIX vann: <http://purl.org/vocab/vann/>

<https://w3id.org/reactome-ontology> a owl:Ontology ;
  rdfs:label "Reactome Ontology Model" ;
  rdfs:comment "The Reactome Ontology Model provides a more ontology-oriented and reusable representation of core parts of the Reactome data model. Using LinkML as the source schema, it describes entities, events, provenance, and related reference objects in a consistent and structured way. The model covers pathways, reactions, physical entities, regulatory relationships, and supporting metadata through clearly defined classes, slots, and ranges. This supports validation, documentation generation, ontology export, and downstream integration. Its goal is to provide a clear and interoperable foundation for publishing and working with Reactome knowledge in ontology-friendly formats." ;
  skos:note "This schema favors ontology-oriented naming for OWL generation; source mappings are maintained in separate mapping files." , "Administrative and serialization helper fields are retained for round-tripping but may be omitted from OWL export profiles." , "Inverse-style helper relations have been removed from the ontology-facing profile in favor of canonical relations." ;
  dcterms:license <https://creativecommons.org/licenses/by/4.0/> ;
  pav:version "1.0.0" ;
  vann:preferredNamespacePrefix "reactome" ;
  vann:preferredNamespaceUri "https://w3id.org/reactome-ontology/"^^xsd:anyURI ;
  sh:declare [
    sh:prefix "linkml" ;
    sh:namespace "https://w3id.org/linkml/"^^xsd:anyURI
  ] , [
    sh:prefix "reactome" ;
    sh:namespace "https://w3id.org/reactome-ontology/"^^xsd:anyURI
  ] , [
    sh:prefix "reactomeid" ;
    sh:namespace "https://w3id.org/reactome-ontology/id/"^^xsd:anyURI
  ] , [
    sh:prefix "biolink" ;
    sh:namespace "https://w3id.org/biolink/vocab/"^^xsd:anyURI
  ] , [
    sh:prefix "GO" ;
    sh:namespace "http://purl.obolibrary.org/obo/GO_"^^xsd:anyURI
  ] , [
    sh:prefix "CHEBI" ;
    sh:namespace "http://purl.obolibrary.org/obo/CHEBI_"^^xsd:anyURI
  ] , [
    sh:prefix "UniProtKB" ;
    sh:namespace "http://purl.uniprot.org/uniprot/"^^xsd:anyURI
  ] , [
    sh:prefix "NCBITaxon" ;
    sh:namespace "http://purl.obolibrary.org/obo/NCBITaxon_"^^xsd:anyURI
  ] , [
    sh:prefix "BFO" ;
    sh:namespace "http://purl.obolibrary.org/obo/BFO_"^^xsd:anyURI
  ] , [
    sh:prefix "RO" ;
    sh:namespace "http://purl.obolibrary.org/obo/RO_"^^xsd:anyURI
  ] , [
    sh:prefix "skos" ;
    sh:namespace "http://www.w3.org/2004/02/skos/core#"^^xsd:anyURI
  ] , [
    sh:prefix "dcterms" ;
    sh:namespace "http://purl.org/dc/terms/"^^xsd:anyURI
  ] , [
    sh:prefix "rdfs" ;
    sh:namespace "http://www.w3.org/2000/01/rdf-schema#"^^xsd:anyURI
  ] , [
    sh:prefix "orcid" ;
    sh:namespace "https://orcid.org/"^^xsd:anyURI
  ] , [
    sh:prefix "xsd" ;
    sh:namespace "http://www.w3.org/2001/XMLSchema#"^^xsd:anyURI
  ] .

reactome:NamedEntity a owl:Class ;
  rdfs:comment "Generic named entity used as a lightweight semantic root for serializable objects." ;
  skos:note "Provides reusable identifier, naming, and descriptive slots independent of the Reactome-specific hierarchy." ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:onProperty rdfs:label ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty rdfs:label ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty dcterms:description ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty dcterms:description ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] .

reactome:DatabaseObject a owl:Class ;
  rdfs:comment "Root class for most Reactome schema objects and the main provenance-bearing superclass." ;
  skos:note "Reactome’s frame-based model uses DatabaseObject as the common ancestor for curated graph records." ;
  rdfs:subClassOf reactome:NamedEntity , [
    a owl:Restriction ;
    owl:onProperty reactome:reactomeDbId ;
    owl:allValuesFrom xsd:integer
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:reactomeDbId ;
    owl:cardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:reactomeStableIdentifier ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:reactomeStableIdentifier ;
    owl:cardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:sourceSchemaClass ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:sourceSchemaClass ;
    owl:cardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:displayLabel ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:displayLabel ;
    owl:cardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:definition ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:definition ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:previousStableIdentifier ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:previousStableIdentifier ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:created ;
    owl:allValuesFrom reactome:InstanceEdit
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:created ;
    owl:cardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:modified ;
    owl:allValuesFrom reactome:InstanceEdit
  ] .

reactome:InstanceEdit a owl:Class ;
  rdfs:comment "Provenance record describing a curation action such as creation, modification, review, or revision." ;
  skos:note "Typically stores who performed an edit and when the edit occurred." ;
  rdfs:subClassOf reactome:DatabaseObject , [
    a owl:Restriction ;
    owl:onProperty reactome:date ;
    owl:allValuesFrom xsd:dateTime
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:date ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:author ;
    owl:allValuesFrom reactome:Person
  ] .

reactome:Publication a owl:Class ;
  rdfs:comment "Publication record used as evidence or supporting documentation for curated biology." ;
  skos:note "Abstract superclass for specific publication-like records." ;
  rdfs:subClassOf reactome:DatabaseObject .

reactome:LiteratureReference a owl:Class ;
  rdfs:comment "Literature citation record, commonly representing a PubMed-indexed paper supporting a Reactome assertion." ;
  skos:note "Used widely to ground events, regulations, and catalyst activities in the literature." ;
  rdfs:subClassOf reactome:Publication , [
    a owl:Restriction ;
    owl:onProperty reactome:pubmedId ;
    owl:allValuesFrom [
      a rdfs:Datatype ;
      owl:onDatatype xsd:string ;
      owl:withRestrictions ( _:o40 )
    ]
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:pubmedId ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] .

_:o40 xsd:pattern "[0-9]+" .

reactome:Person a owl:Class ;
  rdfs:comment "Person record used primarily for provenance, authorship, and curation attribution." ;
  skos:note "May represent curators, reviewers, or contributors." ;
  rdfs:subClassOf reactome:DatabaseObject , [
    a owl:Restriction ;
    owl:onProperty reactome:orcid ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] .

reactome:Summation a owl:Class ;
  rdfs:comment "Narrative summary record containing prose that explains the biological meaning of an entity or event." ;
  skos:note "Distinct from a formal definition; meant for human reading." ;
  rdfs:subClassOf reactome:DatabaseObject , [
    a owl:Restriction ;
    owl:onProperty reactome:text ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:text ;
    owl:cardinality "1"^^xsd:nonNegativeInteger
  ] .

reactome:Event a owl:Class ;
  rdfs:comment "Biological occurrence or process unit in Reactome, covering both pathways and reaction-like events." ;
  skos:note "Event is one of the central abstractions in the Reactome model." ;
  rdfs:subClassOf reactome:DatabaseObject , [
    a owl:Restriction ;
    owl:onProperty reactome:inTaxon ;
    owl:allValuesFrom reactome:OrganismTaxon
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:locatedInCompartment ;
    owl:allValuesFrom reactome:Compartment
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasSummation ;
    owl:allValuesFrom reactome:Summation
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasSummation ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasCrossReference ;
    owl:allValuesFrom reactome:DatabaseIdentifier
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasDiseaseContext ;
    owl:allValuesFrom reactome:Disease
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:supportedBy ;
    owl:allValuesFrom reactome:Publication
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:reviewed ;
    owl:allValuesFrom reactome:InstanceEdit
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:revised ;
    owl:allValuesFrom reactome:InstanceEdit
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:releaseDate ;
    owl:allValuesFrom xsd:date
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:releaseDate ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:releaseStatus ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:releaseStatus ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:isInferred ;
    owl:allValuesFrom xsd:boolean
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:isInferred ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Class ;
    owl:unionOf ( reactome:Pathway reactome:ReactionLikeEvent )
  ] .

reactome:Pathway a owl:Class ;
  rdfs:comment "Curated grouping of biologically related events representing a pathway or pathway-like module." ;
  skos:note "Pathways can overlap; event membership is not exclusive." ;
  rdfs:subClassOf reactome:Event , [
    a owl:Restriction ;
    owl:onProperty reactome:hasEvent ;
    owl:allValuesFrom reactome:Event
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasEvent ;
    owl:minCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasGoBiologicalProcess ;
    owl:allValuesFrom reactome:GoBiologicalProcessTerm
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasGoBiologicalProcess ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] .

reactome:ReactionLikeEvent a owl:Class ;
  rdfs:comment "Event in which physical entities participate as inputs, outputs, regulators, or catalysts in a transformation-like process." ;
  skos:note "Covers canonical reactions as well as black-box and polymerization-style event subclasses." ;
  rdfs:subClassOf reactome:Event , [
    a owl:Restriction ;
    owl:onProperty reactome:hasInput ;
    owl:allValuesFrom reactome:PhysicalEntity
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasOutput ;
    owl:allValuesFrom reactome:PhysicalEntity
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:requiresComponent ;
    owl:allValuesFrom reactome:PhysicalEntity
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasCatalystActivity ;
    owl:allValuesFrom reactome:CatalystActivity
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasRegulation ;
    owl:allValuesFrom reactome:Regulation
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:precededBy ;
    owl:allValuesFrom reactome:Event
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasInteractingEntityOnOtherCell ;
    owl:allValuesFrom reactome:PhysicalEntity
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasInteraction ;
    owl:allValuesFrom reactome:Interaction
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasReactionType ;
    owl:allValuesFrom reactome:ReactionTypeTerm
  ] , [
    a owl:Class ;
    owl:unionOf ( reactome:Reaction reactome:BlackBoxEvent reactome:Polymerization reactome:Depolymerization )
  ] .

reactome:Reaction a owl:Class ;
  rdfs:comment "Standard reaction-like event with explicit transformed inputs and outputs." ;
  skos:note "Best used for relatively well-resolved mechanistic conversions." ;
  rdfs:subClassOf reactome:ReactionLikeEvent , [
    a owl:Restriction ;
    owl:onProperty reactome:hasInput ;
    owl:allValuesFrom reactome:PhysicalEntity
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasInput ;
    owl:minCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasOutput ;
    owl:allValuesFrom reactome:PhysicalEntity
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasOutput ;
    owl:minCardinality "1"^^xsd:nonNegativeInteger
  ] .

reactome:BlackBoxEvent a owl:Class ;
  rdfs:comment "Reaction-like event included in the pathway model despite incomplete mechanistic detail." ;
  skos:note "Useful when biological evidence supports the event but not a full molecular mechanism." ;
  rdfs:subClassOf reactome:ReactionLikeEvent .

reactome:Polymerization a owl:Class ;
  rdfs:comment "Event representing formation of a polymer from repeated or assembling units." ;
  skos:note "Kept distinct because its participant semantics can differ from ordinary reaction balance." ;
  rdfs:subClassOf reactome:ReactionLikeEvent .

reactome:Depolymerization a owl:Class ;
  rdfs:comment "Event representing breakdown of a polymer into constituent or smaller units." ;
  skos:note "Complementary to polymerisation." ;
  rdfs:subClassOf reactome:ReactionLikeEvent .

reactome:PhysicalEntity a owl:Class ;
  rdfs:comment "Concrete biological participant whose identity reflects both underlying molecular identity and contextual state." ;
  skos:note "In Reactome, compartment, modification state, and assembly state can distinguish one physical entity from another." ;
  rdfs:subClassOf reactome:DatabaseObject , [
    a owl:Restriction ;
    owl:onProperty reactome:inTaxon ;
    owl:allValuesFrom reactome:OrganismTaxon
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:locatedInCompartment ;
    owl:allValuesFrom reactome:Compartment
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasCrossReference ;
    owl:allValuesFrom reactome:DatabaseIdentifier
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasDiseaseContext ;
    owl:allValuesFrom reactome:Disease
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasGoCellularComponent ;
    owl:allValuesFrom reactome:GoCellularComponentTerm
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasGoCellularComponent ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:systematicName ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:systematicName ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:isInDiseaseContext ;
    owl:allValuesFrom xsd:boolean
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:isInDiseaseContext ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Class ;
    owl:unionOf ( reactome:SimpleEntity reactome:GenomeEncodedEntity reactome:Complex reactome:EntitySet reactome:Polymer reactome:Cell reactome:OtherEntity reactome:Drug )
  ] .

reactome:SimpleEntity a owl:Class ;
  rdfs:comment "Simple molecular entity, typically a small molecule or other non-sequence-based chemical participant." ;
  skos:note "Commonly aligned to ChEBI-like reference identities through ReferenceMolecule." ;
  rdfs:subClassOf reactome:PhysicalEntity , [
    a owl:Restriction ;
    owl:onProperty reactome:hasReferenceEntity ;
    owl:allValuesFrom reactome:ReferenceMolecule
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasReferenceEntity ;
    owl:cardinality "1"^^xsd:nonNegativeInteger
  ] .

reactome:GenomeEncodedEntity a owl:Class ;
  rdfs:comment "Physical entity whose existence is grounded in a genome-encoded product such as a protein or nucleic acid." ;
  skos:note "Serves as a superclass for accessioned sequence-based entities." ;
  rdfs:subClassOf reactome:PhysicalEntity .

reactome:SequenceEntity a owl:Class ;
  rdfs:comment "Sequence-bearing physical entity linked to a stable reference sequence and optionally decorated with residue modifications and subsequence coordinates." ;
  skos:note "Core Reactome pattern for proteins, RNAs, and other accessioned biomolecules in specific states." ;
  rdfs:subClassOf reactome:GenomeEncodedEntity , [
    a owl:Restriction ;
    owl:onProperty reactome:hasReferenceEntity ;
    owl:allValuesFrom reactome:ReferenceSequence
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasReferenceEntity ;
    owl:cardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasModifiedResidue ;
    owl:allValuesFrom reactome:AbstractModifiedResidue
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:startCoordinate ;
    owl:allValuesFrom xsd:integer
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:startCoordinate ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:endCoordinate ;
    owl:allValuesFrom xsd:integer
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:endCoordinate ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:sequenceReferenceType ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:sequenceReferenceType ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] .

reactome:Protein a owl:Class ;
  rdfs:comment "Protein physical entity linked to a reference gene product and optionally decorated with modifications and subsequence features." ;
  skos:note "The most common type of sequence entity in Reactome." ;
  rdfs:subClassOf reactome:SequenceEntity , [
    a owl:Restriction ;
    owl:onProperty reactome:hasReferenceEntity ;
    owl:allValuesFrom reactome:ReferenceGeneProduct
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasReferenceEntity ;
    owl:cardinality "1"^^xsd:nonNegativeInteger
  ] .

reactome:Complex a owl:Class ;
  rdfs:comment "Physical entity composed of two or more component physical entities assembled into a functional complex." ;
  skos:note "The complex is treated as an entity distinct from its components." ;
  rdfs:subClassOf reactome:PhysicalEntity , [
    a owl:Restriction ;
    owl:onProperty reactome:hasComponent ;
    owl:allValuesFrom reactome:PhysicalEntity
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasComponent ;
    owl:minCardinality "1"^^xsd:nonNegativeInteger
  ] .

reactome:EntitySet a owl:Class ;
  rdfs:comment "Curated set of physical entities that are treated as functionally interchangeable in a given biological context." ;
  skos:note "This is a graph object representing a curated set, not merely a class extension over its members." ;
  rdfs:subClassOf reactome:PhysicalEntity , [
    a owl:Restriction ;
    owl:onProperty reactome:hasMember ;
    owl:allValuesFrom reactome:PhysicalEntity
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasMember ;
    owl:minCardinality "1"^^xsd:nonNegativeInteger
  ] .

reactome:CandidateSet a owl:Class ;
  rdfs:comment "Entity set whose members are candidates for fulfilling a shared biological role." ;
  skos:note "Often reflects partial knowledge or broad functional grouping." ;
  rdfs:subClassOf reactome:EntitySet .

reactome:DefinedSet a owl:Class ;
  rdfs:comment "Entity set whose members are explicitly curated as the intended interchangeable participants." ;
  skos:note "Stronger editorial commitment than a candidate set." ;
  rdfs:subClassOf reactome:EntitySet .

reactome:Polymer a owl:Class ;
  rdfs:comment "Polymer entity abstracted in terms of one or more repeated units." ;
  skos:note "Useful for biological polymers that are not modeled by enumerating every monomer instance." ;
  rdfs:subClassOf reactome:PhysicalEntity , [
    a owl:Restriction ;
    owl:onProperty reactome:hasRepeatedUnit ;
    owl:allValuesFrom reactome:PhysicalEntity
  ] .

reactome:Cell a owl:Class ;
  rdfs:comment "Cell or cell-like biological unit treated as a physical participant in an event." ;
  skos:note "Included for cases where cells themselves are modeled as interacting biological entities." ;
  rdfs:subClassOf reactome:PhysicalEntity .

reactome:OtherEntity a owl:Class ;
  rdfs:comment "Catch-all physical entity class for biologically relevant participants not covered by more specific subclasses." ;
  skos:note "Helps preserve source fidelity when Reactome uses residual categorization." ;
  rdfs:subClassOf reactome:PhysicalEntity .

reactome:Drug a owl:Class ;
  rdfs:comment "Therapeutic or intervention-oriented physical entity modeled in the Reactome graph." ;
  skos:note "Drug subclasses distinguish broad molecular kinds of therapeutic agents." ;
  rdfs:subClassOf reactome:PhysicalEntity .

reactome:ChemicalDrug a owl:Class ;
  rdfs:comment "Drug represented primarily as a chemical or small-molecule therapeutic agent." ;
  skos:note "Often alignable to small-molecule reference identities." ;
  rdfs:subClassOf reactome:Drug .

reactome:ProteinDrug a owl:Class ;
  rdfs:comment "Drug represented as a protein therapeutic or protein-derived biologic." ;
  skos:note "Includes antibody-like or recombinant protein therapeutics when modeled as physical entities." ;
  rdfs:subClassOf reactome:Drug .

reactome:RnaDrug a owl:Class ;
  rdfs:comment "Drug represented as an RNA-based therapeutic agent." ;
  skos:note "Can cover antisense, siRNA, or related RNA therapeutic modalities." ;
  rdfs:subClassOf reactome:Drug .

reactome:ReferenceEntity a owl:Class ;
  rdfs:comment "Invariant reference identity used to connect multiple contextualized physical entities that share an underlying molecular identity." ;
  skos:note "This is the key abstraction Reactome uses to separate contextual state from canonical identity." ;
  rdfs:subClassOf reactome:DatabaseObject , [
    a owl:Restriction ;
    owl:onProperty reactome:hasReferenceDatabase ;
    owl:allValuesFrom reactome:ReferenceDatabase
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasReferenceDatabase ;
    owl:cardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:identifier ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:identifier ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Class ;
    owl:unionOf ( reactome:ReferenceSequence reactome:ReferenceMolecule reactome:ReferenceGroup reactome:ReferenceTherapeutic )
  ] .

reactome:ReferenceSequence a owl:Class ;
  rdfs:comment "Reference identity for a sequence-bearing biomolecule." ;
  skos:note "Commonly used for protein, DNA, RNA, and isoform references." ;
  rdfs:subClassOf reactome:ReferenceEntity .

reactome:ReferenceGeneProduct a owl:Class ;
  rdfs:comment "Reference sequence corresponding to a gene product, typically protein-centric." ;
  skos:note "Often alignable to UniProt entries for proteins." ;
  rdfs:subClassOf reactome:ReferenceSequence .

reactome:ReferenceIsoform a owl:Class ;
  rdfs:comment "Reference sequence representing a specific isoform-level identity." ;
  skos:note "Useful when isoform distinction matters biologically." ;
  rdfs:subClassOf reactome:ReferenceSequence .

reactome:ReferenceDnaSequence a owl:Class ;
  rdfs:comment "Reference identity for a DNA sequence." ;
  skos:note "Supports DNA-centric entities in the Reactome schema." ;
  rdfs:subClassOf reactome:ReferenceSequence .

reactome:ReferenceRnaSequence a owl:Class ;
  rdfs:comment "Reference identity for an RNA sequence." ;
  skos:note "Supports transcript and RNA molecule identity modeling." ;
  rdfs:subClassOf reactome:ReferenceSequence .

reactome:ReferenceMolecule a owl:Class ;
  rdfs:comment "Reference identity for a small molecule, simple chemical, or chemically grounded participant." ;
  skos:note "Naturally alignable to ChEBI-like references." ;
  rdfs:subClassOf reactome:ReferenceEntity .

reactome:ReferenceGroup a owl:Class ;
  rdfs:comment "Grouped reference identity used when an invariant identity is represented at a grouped rather than single-entry level." ;
  skos:note "Useful for families or grouped reference semantics in source data." ;
  rdfs:subClassOf reactome:ReferenceEntity .

reactome:ReferenceTherapeutic a owl:Class ;
  rdfs:comment "Reference identity for a therapeutic or intervention-oriented entity." ;
  skos:note "Supports the reference-layer counterpart of drug-like modeled entities." ;
  rdfs:subClassOf reactome:ReferenceEntity .

reactome:ReferenceDatabase a owl:Class ;
  rdfs:comment "Metadata record describing an external database or authority used for identifiers and cross-references." ;
  skos:note "Holds resolver and namespace information for identifier interpretation." ;
  rdfs:subClassOf reactome:DatabaseObject , [
    a owl:Restriction ;
    owl:onProperty reactome:accessUrl ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:identifierPrefix ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:identifierPrefix ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:resourceIdentifier ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:resourceIdentifier ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:url ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] .

reactome:DatabaseIdentifier a owl:Class ;
  rdfs:comment "Cross-reference record that pairs an identifier string with a reference database authority." ;
  skos:note "Useful as a reified identifier object rather than a bare literal." ;
  rdfs:subClassOf reactome:DatabaseObject , [
    a owl:Restriction ;
    owl:onProperty reactome:identifier ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:identifier ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasReferenceDatabase ;
    owl:allValuesFrom reactome:ReferenceDatabase
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasReferenceDatabase ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] .

reactome:CatalystActivity a owl:Class ;
  rdfs:comment "Reified catalytic assertion connecting a catalyst bearer, a GO molecular function, and one or more catalyzed reaction-like events." ;
  skos:note "This is one of the most semantically important reified node types in Reactome." ;
  rdfs:subClassOf reactome:DatabaseObject , [
    a owl:Restriction ;
    owl:onProperty reactome:hasCatalyst ;
    owl:allValuesFrom reactome:PhysicalEntity
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasCatalyst ;
    owl:cardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasGoMolecularFunction ;
    owl:allValuesFrom reactome:GoMolecularFunctionTerm
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasGoMolecularFunction ;
    owl:cardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasActiveUnit ;
    owl:allValuesFrom reactome:PhysicalEntity
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:catalyzes ;
    owl:allValuesFrom reactome:ReactionLikeEvent
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:supportedBy ;
    owl:allValuesFrom reactome:Publication
  ] .

reactome:Regulation a owl:Class ;
  rdfs:comment "Reified regulatory assertion linking a regulator physical entity to a regulated reaction-like event." ;
  skos:note "Reactome models regulation explicitly instead of flattening it into a simple binary relation." ;
  rdfs:subClassOf reactome:DatabaseObject , [
    a owl:Restriction ;
    owl:onProperty reactome:hasRegulator ;
    owl:allValuesFrom reactome:PhysicalEntity
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasRegulator ;
    owl:cardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:regulates ;
    owl:allValuesFrom reactome:ReactionLikeEvent
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:regulates ;
    owl:cardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:hasActiveUnit ;
    owl:allValuesFrom reactome:PhysicalEntity
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:supportedBy ;
    owl:allValuesFrom reactome:Publication
  ] , [
    a owl:Class ;
    owl:unionOf ( reactome:PositiveRegulation reactome:NegativeRegulation reactome:Requirement )
  ] .

reactome:PositiveRegulation a owl:Class ;
  rdfs:comment "Regulation that increases, enables, or positively influences the occurrence or efficiency of a reaction-like event." ;
  skos:note "Semantic polarity is explicit at the class level." ;
  rdfs:subClassOf reactome:Regulation .

reactome:NegativeRegulation a owl:Class ;
  rdfs:comment "Regulation that decreases, inhibits, or negatively influences the occurrence or efficiency of a reaction-like event." ;
  skos:note "Semantic polarity is explicit at the class level." ;
  rdfs:subClassOf reactome:Regulation .

reactome:Requirement a owl:Class ;
  rdfs:comment "Regulation-like assertion indicating that a regulator or participant is required for a reaction-like event to occur." ;
  skos:note "Used when necessity is the key biological relation rather than positive or negative modulation." ;
  rdfs:subClassOf reactome:Regulation .

reactome:Interaction a owl:Class ;
  rdfs:comment "Interaction record associated with an event or set of participants." ;
  skos:note "Retained as a distinct object to preserve graph fidelity when interactions are explicitly modeled." ;
  rdfs:subClassOf reactome:DatabaseObject .

reactome:ReactionTypeTerm a owl:Class ;
  rdfs:comment "Controlled vocabulary term used to characterize a reaction-like event." ;
  skos:note "Supports editorial or mechanistic grouping of reaction events." ;
  rdfs:subClassOf reactome:DatabaseObject .

reactome:AbstractModifiedResidue a owl:Class ;
  rdfs:comment "Feature record describing a modified residue or residue-level state on a sequence-bearing entity." ;
  skos:note "Abstract superclass for phosphorylation-like or other residue modification records." ;
  rdfs:subClassOf reactome:DatabaseObject .

reactome:OrganismTaxon a owl:Class ;
  rdfs:comment "Organism taxon record representing the organismal context for entities and events." ;
  skos:note "Often associated with taxonomy identifiers and may correspond to NCBI Taxonomy concepts." ;
  rdfs:subClassOf reactome:DatabaseObject , [
    a owl:Restriction ;
    owl:onProperty reactome:ncbiTaxonId ;
    owl:allValuesFrom [
      a rdfs:Datatype ;
      owl:onDatatype xsd:string ;
      owl:withRestrictions ( _:o139 )
    ]
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:ncbiTaxonId ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] .

_:o139 xsd:pattern "[0-9]+" .

reactome:Taxon a owl:Class ;
  rdfs:comment "Taxonomic concept used for taxonomic assignment or metadata." ;
  skos:note "Can be used in parallel with or beneath species-oriented records." ;
  rdfs:subClassOf reactome:DatabaseObject , [
    a owl:Restriction ;
    owl:onProperty reactome:ncbiTaxonId ;
    owl:allValuesFrom [
      a rdfs:Datatype ;
      owl:onDatatype xsd:string ;
      owl:withRestrictions ( _:o143 )
    ]
  ] , [
    a owl:Restriction ;
    owl:onProperty reactome:ncbiTaxonId ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] .

_:o143 xsd:pattern "[0-9]+" .

reactome:Compartment a owl:Class ;
  rdfs:comment "Cellular or subcellular location object used to state where an event occurs or where a physical entity resides." ;
  skos:note "Often alignable to GO cellular component terms, though not always identical in role." ;
  rdfs:subClassOf reactome:DatabaseObject .

reactome:Disease a owl:Class ;
  rdfs:comment "Disease concept used to contextualize events and entities in pathological settings." ;
  skos:note "Represents disease context rather than a full disease ontology commitment." ;
  rdfs:subClassOf reactome:DatabaseObject .

reactome:GoMolecularFunctionTerm a owl:Class ;
  rdfs:comment "Wrapper object for a GO molecular function term used in Reactome catalysis modeling." ;
  skos:note "Particularly important in CatalystActivity." ;
  rdfs:subClassOf reactome:DatabaseObject .

reactome:GoBiologicalProcessTerm a owl:Class ;
  rdfs:comment "Wrapper object for a GO biological process term used for pathway or event alignment." ;
  skos:note "Useful for crosswalks between Reactome pathways and GO process knowledge." ;
  rdfs:subClassOf reactome:DatabaseObject .

reactome:GoCellularComponentTerm a owl:Class ;
  rdfs:comment "Wrapper object for a GO cellular component term used in entity or location annotation." ;
  skos:note "Often complements explicit compartment modeling." ;
  rdfs:subClassOf reactome:DatabaseObject .

reactome:ReactomeDataset a owl:Class ;
  rdfs:comment "Top-level container for a serialized Reactome dataset excerpt or export package." ;
  skos:note "Provides a practical root object for JSON and YAML instance data." ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:onProperty reactome:database_objects ;
    owl:allValuesFrom reactome:DatabaseObject
  ] .

reactome:category a owl:DatatypeProperty ;
  rdfs:comment "Explicit category designator used in serialized instances." ;
  skos:note "Useful when data are exchanged in JSON or YAML and class typing must be preserved." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

rdfs:label a owl:DatatypeProperty ;
  rdfs:comment "Human-readable primary label for an object." ;
  skos:note "Generic reusable naming slot for schema-wide use." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

dcterms:description a owl:DatatypeProperty ;
  rdfs:comment "Free-text textual description of an object." ;
  skos:note "Can hold editorial notes, plain-language explanations, or short summaries." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

reactome:reactomeDbId a owl:DatatypeProperty ;
  rdfs:comment "Internal Reactome database identifier assigned to a database object." ;
  skos:note "Reactome DB_ID values are implementation-oriented identifiers rather than stable public identifiers." ;
  rdfs:range xsd:integer ;
  a owl:FunctionalProperty .

reactome:reactomeStableIdentifier a owl:DatatypeProperty ;
  rdfs:comment "Stable public Reactome identifier for an object." ;
  skos:note "Typically corresponds to the curated Reactome stable accession such as R-HSA-xxxxx." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

reactome:sourceSchemaClass a owl:DatatypeProperty ;
  rdfs:comment "Name of the source Reactome schema class from which the instance derives." ;
  skos:note "Useful when preserving frame-schema provenance or round-tripping with the original Reactome graph." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

reactome:displayLabel a owl:DatatypeProperty ;
  rdfs:comment "Preferred display label used by Reactome for user-facing presentation." ;
  skos:note "Often combines identity and contextual state into a concise label." ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf rdfs:label ;
  a owl:FunctionalProperty .

reactome:definition a owl:DatatypeProperty ;
  rdfs:comment "Curated textual definition that states what the object is." ;
  skos:note "Intended for conceptual definitions rather than narrative summaries." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

reactome:systematicName a owl:DatatypeProperty ;
  rdfs:comment "Formal or systematic name for an entity when available." ;
  skos:note "Often useful for chemicals, complexes, or sequence-derived entities." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

reactome:releaseDate a owl:DatatypeProperty ;
  rdfs:comment "Release date associated with a curation or publication cycle." ;
  skos:note "Modeled as string to match Reactome exports; can be normalized later if needed." ;
  rdfs:range xsd:date ;
  a owl:FunctionalProperty .

reactome:releaseStatus a owl:DatatypeProperty ;
  rdfs:comment "Editorial release state of the object in the Reactome release process." ;
  skos:note "Examples might include draft-like or released-like status labels depending on source exports." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

reactome:isInferred a owl:DatatypeProperty ;
  rdfs:comment "Indicates whether an object was computationally inferred rather than directly curated." ;
  skos:note "Reactome uses inference especially for orthology-based event propagation." ;
  rdfs:range xsd:boolean ;
  a owl:FunctionalProperty .

reactome:isInDiseaseContext a owl:DatatypeProperty ;
  rdfs:comment "Boolean flag indicating that the represented entity is contextualized to a disease state." ;
  skos:note "This is a contextual flag and does not by itself define a disease ontology class." ;
  rdfs:range xsd:boolean ;
  a owl:FunctionalProperty .

reactome:created a owl:ObjectProperty ;
  rdfs:comment "Provenance link to the curation event that originally created the object record." ;
  skos:note "Usually points to an InstanceEdit containing editor and date metadata." ;
  rdfs:range reactome:InstanceEdit ;
  a owl:FunctionalProperty .

reactome:modified a owl:ObjectProperty ;
  rdfs:comment "Provenance links to subsequent modifications of the object record." ;
  skos:note "Multiple modifications are common across curation history." ;
  rdfs:range reactome:InstanceEdit .

reactome:reviewed a owl:ObjectProperty ;
  rdfs:comment "Provenance links to formal review actions on the object." ;
  skos:note "Distinct from simple modification in Reactome curation workflows." ;
  rdfs:range reactome:InstanceEdit .

reactome:revised a owl:ObjectProperty ;
  rdfs:comment "Provenance links to explicit revision actions after prior curation or review." ;
  skos:note "Useful for tracking editorial iteration." ;
  rdfs:range reactome:InstanceEdit .

reactome:authored a owl:ObjectProperty ;
  rdfs:comment "Provenance links capturing authoring actions for the object." ;
  skos:note "Included to support richer editorial provenance when present in exports." ;
  rdfs:range reactome:InstanceEdit .

reactome:inTaxon a owl:ObjectProperty ;
  rdfs:comment "Taxon in which the object, event, or entity is asserted to occur or be defined." ;
  skos:note "For events this denotes the organism context; for entities it denotes the biological source organism." ;
  rdfs:range reactome:OrganismTaxon .

reactome:locatedInCompartment a owl:ObjectProperty ;
  rdfs:comment "Compartment in which an entity resides or an event occurs." ;
  skos:note "In Reactome, compartment is identity-relevant for many physical entities." ;
  rdfs:range reactome:Compartment .

reactome:hasSummation a owl:ObjectProperty ;
  rdfs:comment "Narrative summary object explaining the biology of an event or entity." ;
  skos:note "Distinct from formal definition; usually prose intended for readers." ;
  rdfs:range reactome:Summation ;
  a owl:FunctionalProperty .

reactome:supportedBy a owl:ObjectProperty ;
  rdfs:comment "Publication supporting the existence, mechanism, or curation of the object." ;
  skos:note "Often points to PubMed-backed literature references." ;
  rdfs:range reactome:Publication .

reactome:hasCrossReference a owl:ObjectProperty ;
  rdfs:comment "External cross-reference to another database or controlled resource." ;
  skos:note "Used for interoperating with identifiers from GO, ChEBI, UniProt, Ensembl, and related resources." ;
  rdfs:range reactome:DatabaseIdentifier .

reactome:hasDiseaseContext a owl:ObjectProperty ;
  rdfs:comment "Disease context associated with an event or physical entity." ;
  skos:note "Represents contextual disease association rather than broad etiologic modeling." ;
  rdfs:range reactome:Disease .

reactome:hasGoBiologicalProcess a owl:ObjectProperty ;
  rdfs:comment "GO biological process term associated with a Reactome pathway or event." ;
  skos:note "Useful as a high-level semantic alignment rather than an exact equivalence in all cases." ;
  rdfs:range reactome:GoBiologicalProcessTerm ;
  a owl:FunctionalProperty .

reactome:hasGoCellularComponent a owl:ObjectProperty ;
  rdfs:comment "GO cellular component term associated with a physical entity or event context." ;
  skos:note "Often complements the explicit compartment modeling in Reactome." ;
  rdfs:range reactome:GoCellularComponentTerm ;
  a owl:FunctionalProperty .

reactome:hasGoMolecularFunction a owl:ObjectProperty ;
  rdfs:comment "GO molecular function term asserted in a catalyst activity." ;
  skos:note "Reactome reifies catalysis so the molecular function can be attached explicitly." ;
  rdfs:range reactome:GoMolecularFunctionTerm ;
  a owl:FunctionalProperty .

reactome:hasEvent a owl:ObjectProperty ;
  rdfs:comment "Membership relation linking a pathway to constituent events." ;
  skos:note "Pathways in Reactome are curated groupings of events and can overlap with other pathways." ;
  rdfs:range reactome:Event .

reactome:precededBy a owl:ObjectProperty ;
  rdfs:comment "Event that occurs before the current event in a curated process sequence." ;
  skos:note "Encodes partial ordering rather than necessarily strict temporal or causal completeness." ;
  rdfs:range reactome:Event .

reactome:hasInput a owl:ObjectProperty ;
  rdfs:comment "Physical entity consumed, transformed, or otherwise used as an input to a reaction-like event." ;
  skos:note "Inputs need not always be fully consumed in a strict stoichiometric sense across all event subclasses." ;
  rdfs:range reactome:PhysicalEntity .

reactome:hasOutput a owl:ObjectProperty ;
  rdfs:comment "Physical entity produced by a reaction-like event." ;
  skos:note "Output identity often reflects new compartment, modification state, or assembly state." ;
  rdfs:range reactome:PhysicalEntity .

reactome:requiresComponent a owl:ObjectProperty ;
  rdfs:comment "Physical entity required for a reaction-like event but not modeled as a transforming input." ;
  skos:note "Useful for contextual cofactors, platform components, or required participants." ;
  rdfs:range reactome:PhysicalEntity .

reactome:hasCatalystActivity a owl:ObjectProperty ;
  rdfs:comment "Catalyst activity associated with the reaction-like event." ;
  skos:note "A central Reactome modeling pattern that preserves GO molecular function and active-unit context." ;
  rdfs:range reactome:CatalystActivity .

reactome:hasRegulation a owl:ObjectProperty ;
  rdfs:comment "Reified regulation assertion attached to an event." ;
  skos:note "Supports positive, negative, and requirement-style regulatory semantics." ;
  rdfs:range reactome:Regulation .

reactome:hasInteractingEntityOnOtherCell a owl:ObjectProperty ;
  rdfs:comment "Physical entity located on another interacting cell in intercellular biology." ;
  skos:note "Useful for immune, adhesion, and receptor-ligand interaction contexts." ;
  rdfs:range reactome:PhysicalEntity .

reactome:hasInteraction a owl:ObjectProperty ;
  rdfs:comment "Associated interaction object linked to an event." ;
  skos:note "Preserves interaction-level detail when Reactome models such assertions explicitly." ;
  rdfs:range reactome:Interaction .

reactome:hasReactionType a owl:ObjectProperty ;
  rdfs:comment "Controlled reaction type annotation describing the mechanistic or editorial type of a reaction." ;
  skos:note "Useful for grouping reaction-like events into broad mechanistic categories." ;
  rdfs:range reactome:ReactionTypeTerm .

reactome:hasReferenceEntity a owl:ObjectProperty ;
  rdfs:comment "Invariant reference identity underlying a contextualized physical entity." ;
  skos:note "reference identity is separate from stateful physical instantiation."@One of the key distinctions in Reactome ;
  rdfs:range reactome:ReferenceEntity ;
  a owl:FunctionalProperty .

reactome:hasModifiedResidue a owl:ObjectProperty ;
  rdfs:comment "Modified residue feature borne by a sequence-based physical entity." ;
  skos:note "Supports phosphorylation, cleavage, ubiquitination, and related residue-level state modeling." ;
  rdfs:range reactome:AbstractModifiedResidue .

reactome:startCoordinate a owl:DatatypeProperty ;
  rdfs:comment "Start coordinate of a subsequence, fragment, or feature-bearing region on a sequence entity." ;
  skos:note "Useful for proteolytic fragments, domains, and sequence-trimmed entity forms." ;
  rdfs:range xsd:integer ;
  a owl:FunctionalProperty .

reactome:endCoordinate a owl:DatatypeProperty ;
  rdfs:comment "End coordinate of a subsequence, fragment, or feature-bearing region on a sequence entity." ;
  skos:note "Typically paired with start_coordinate." ;
  rdfs:range xsd:integer ;
  a owl:FunctionalProperty .

reactome:sequenceReferenceType a owl:DatatypeProperty ;
  rdfs:comment "Textual qualifier for the kind of referenced sequence or entity." ;
  skos:note "Included for compatibility with Reactome exports." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

reactome:hasComponent a owl:ObjectProperty ;
  rdfs:comment "Component physical entities that make up a complex." ;
  skos:note "Complex identity is distinct from component identity in Reactome." ;
  rdfs:range reactome:PhysicalEntity .

reactome:hasMember a owl:ObjectProperty ;
  rdfs:comment "Members of an entity set representing functionally interchangeable participants." ;
  skos:note "Entity sets are curated graph objects, not simply OWL classes over their members." ;
  rdfs:range reactome:PhysicalEntity .

reactome:hasRepeatedUnit a owl:ObjectProperty ;
  rdfs:comment "Repeated unit composing a polymer entity." ;
  skos:note "Used when Reactome models a polymer abstractly in terms of repeating constituents." ;
  rdfs:range reactome:PhysicalEntity .

reactome:hasRegulator a owl:ObjectProperty ;
  rdfs:comment "Physical entity that exerts regulatory influence on a regulated event." ;
  skos:note "May be a protein, complex, small molecule, set, or other physical entity." ;
  rdfs:range reactome:PhysicalEntity ;
  a owl:FunctionalProperty .

reactome:regulates a owl:ObjectProperty ;
  rdfs:comment "Reaction-like event that is the target of regulation." ;
  skos:note "Kept explicit through reified regulation nodes rather than flattened triples." ;
  rdfs:range reactome:ReactionLikeEvent ;
  a owl:FunctionalProperty .

reactome:hasActiveUnit a owl:ObjectProperty ;
  rdfs:comment "Subunit, domain-bearing fragment, or active molecular portion responsible for catalytic or regulatory activity." ;
  skos:note "Reactome can attach active-unit detail to catalyst activities and regulation objects." ;
  rdfs:range reactome:PhysicalEntity .

reactome:hasCatalyst a owl:ObjectProperty ;
  rdfs:comment "Physical entity serving as the bearer of a catalyst activity." ;
  skos:note "Used inside reified catalyst activity objects." ;
  rdfs:range reactome:PhysicalEntity ;
  a owl:FunctionalProperty .

reactome:catalyzes a owl:ObjectProperty ;
  rdfs:comment "Reaction-like event catalyzed by the given catalyst activity." ;
  skos:note "Allows one catalyst activity node to connect molecular function and event participation." ;
  rdfs:range reactome:ReactionLikeEvent .

reactome:hasReferenceDatabase a owl:ObjectProperty ;
  rdfs:comment "Reference database authority associated with a reference entity or database identifier." ;
  skos:note "Provides the namespace and interpretation context for an identifier." ;
  rdfs:range reactome:ReferenceDatabase ;
  a owl:FunctionalProperty .

reactome:identifier a owl:DatatypeProperty ;
  rdfs:comment "Identifier string assigned by an external reference database." ;
  skos:note "Examples include UniProt accessions, ChEBI identifiers, or GO term identifiers." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

reactome:accessUrl a owl:ObjectProperty ;
  rdfs:comment "URL template or access URL used to resolve an identifier in a reference database." ;
  skos:note "Can encode direct or templated resolver behavior." ;
  a owl:FunctionalProperty .

reactome:identifierPrefix a owl:DatatypeProperty ;
  rdfs:comment "Prefix or namespace abbreviation used by a reference database." ;
  skos:note "Useful for CURIE generation and namespace harmonization." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

reactome:resourceIdentifier a owl:DatatypeProperty ;
  rdfs:comment "Identifier for the reference resource itself rather than for entries inside it." ;
  skos:note "Supports metadata about the authority record for a database." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

reactome:url a owl:ObjectProperty ;
  rdfs:comment "General URL associated with an object." ;
  skos:note "Often used for resource metadata pages or resolver entry points." ;
  a owl:FunctionalProperty .

reactome:pubmedId a owl:DatatypeProperty ;
  rdfs:comment "PubMed identifier for a literature reference." ;
  skos:note "Stored as string for broad interoperability with exports and loaders." ;
  rdfs:range [
    a rdfs:Datatype ;
    owl:onDatatype xsd:string ;
    owl:withRestrictions ( _:o147 )
  ] ;
  a owl:FunctionalProperty .

_:o147 xsd:pattern "[0-9]+" .

reactome:orcid a owl:ObjectProperty ;
  rdfs:comment "ORCID identifier for a person involved in curation or authorship." ;
  skos:note "Useful for curator and contributor disambiguation." ;
  a owl:FunctionalProperty .

reactome:ncbiTaxonId a owl:DatatypeProperty ;
  rdfs:comment "Taxonomic identifier, typically aligned to the NCBI Taxonomy." ;
  skos:note "Often used on species or taxon-like records." ;
  rdfs:range [
    a rdfs:Datatype ;
    owl:onDatatype xsd:string ;
    owl:withRestrictions ( _:o149 )
  ] ;
  a owl:FunctionalProperty .

_:o149 xsd:pattern "[0-9]+" .

reactome:previousStableIdentifier a owl:DatatypeProperty ;
  rdfs:comment "Deprecated or previous stable Reactome identifier retained for traceability." ;
  skos:note "Useful during migration, identifier replacement, and legacy resolution." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

reactome:date a owl:DatatypeProperty ;
  rdfs:comment "Timestamp or date string for the edit activity." ;
  rdfs:range xsd:dateTime ;
  a owl:FunctionalProperty .

reactome:author a owl:ObjectProperty ;
  rdfs:comment "Person or people responsible for the edit activity." ;
  rdfs:range reactome:Person .

reactome:text a owl:DatatypeProperty ;
  rdfs:comment "Narrative summary text." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

reactome:database_objects a owl:ObjectProperty ;
  rdfs:comment "Collection of Reactome objects keyed by identifier." ;
  rdfs:range reactome:DatabaseObject .

skos:note a owl:AnnotationProperty .

dcterms:license a owl:AnnotationProperty .

pav:version a owl:AnnotationProperty .

vann:preferredNamespacePrefix a owl:AnnotationProperty .

vann:preferredNamespaceUri a owl:AnnotationProperty .

sh:declare a owl:AnnotationProperty .

sh:prefix a owl:AnnotationProperty .

sh:namespace a owl:AnnotationProperty .

xsd:date a rdfs:Datatype .
