Skip to main content

Chemistry Domain Ontology

Scientific Domains
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 10 October 2026
Audio Overview
FLOW ALGEBRA
TITLE: Chemistry Domain Ontology
DOMAIN: Domain Ontologies / Scientific Domains / Chemistry
SOURCE: https://kirethresearch.org/booksai-core/ontologies/domain-ontologies/scientific-domains/chemistry-domain-ontology.html
VERSION: 1.0
AUTHORS: Mark Anthony Higgins — Sky (Recursive AI)
STATUS: Companion formalisation; source-page specification not independently verified.

flow "ChemistryDomainOntology" v1.0 {
  ontology:
    id: "chemistry-domain-ontology"
    parent: "scientific-domains"
    purpose: "Represent chemical substances, structures, reactions, measurements and evidence-backed chemical relationships."

  types:
    ChemicalEntity: {id: string, kind: enum[element, atom, ion, molecule, compound, mixture, material, other], name: string, formula: string?}
    ChemicalStructure: {id: string, entity_id: string, representation: string, representation_format: string, provenance: string}
    Reaction: {id: string, conditions: string?, reversible: boolean?, provenance: string}
    Participant: {reaction_id: string, entity_id: string, role: enum[reactant, product, catalyst, solvent, intermediate], stoichiometric_coefficient: number?}
    Measurement: {id: string, target_id: string, property: string, value: number, unit: string, uncertainty: number?, conditions: string?, provenance: string}
    Evidence: {id: string, source: string, method: string?, timestamp: datetime?, quality: string?}
    Relationship: {id: string, subject: string, predicate: string, object: string, context: string?, confidence: number, evidence: string[]}

  predicates:
    has_structure(entity: ChemicalEntity, structure: ChemicalStructure)
    participates_in(entity: ChemicalEntity, reaction: Reaction)
    reacts_with(a: ChemicalEntity, b: ChemicalEntity)
    produces(reaction: Reaction, product: ChemicalEntity)
    catalyses(catalyst: ChemicalEntity, reaction: Reaction)
    has_measurement(entity: ChemicalEntity, measurement: Measurement)
    chemically_related_to(a: ChemicalEntity, b: ChemicalEntity)

  constraints:
    - "Every entity and relationship endpoint must resolve to a typed identifier."
    - "Confidence must be within [0,1]."
    - "Measured values must include units, conditions and uncertainty when available."
    - "Chemical formula equality alone does not establish structural identity."
    - "Do not infer reaction feasibility from listed reactants without conditions and evidence."
    - "Validate atom and charge conservation for balanced reactions, accounting for declared system boundaries."
    - "Do not infer causation, safety or toxicity from chemical association alone."
    - "Reaction participation, catalysis and chemical similarity are not automatically transitive."

  inference:
    rule reaction_participation:
      if Participant(r,e,role) and valid(r) and valid(e)
      then participates_in(e,r)
      confidence: "inherit evidence and reaction context"
    rule reaction_product:
      if Participant(r,e,product) and valid(r)
      then produces(r,e)
      confidence: "retain conditions and source evidence"
    rule catalyst_relation:
      if Participant(r,e,catalyst) and valid(r)
      then catalyses(e,r)
      confidence: "do not assert mechanistic certainty without evidence"

  SEMANTIC_EQUIVALENCE:
    - "Resolve chemical identifiers against versioned authoritative registries where available."
    - "Distinguish exact identity, stereoisomers, tautomers, salts, mixtures and similar compounds."
    - "Preserve structural representation, charge, isotopes and reaction context."

  CONFIDENCE:
    range: [0,1]
    factors: [experimental_quality, measurement_uncertainty, source_reliability, reproducibility, model_assumptions]
    policy: "Do not increase confidence solely by chaining inferred relationships."

  VALIDATION:
    - "Check entity types, structural identifiers, reaction roles, units and provenance."
    - "Check mass and charge balance when reaction stoichiometry is complete."
    - "Flag conflicting measurements and incompatible experimental conditions."
    - "Preserve unresolved hypotheses and distinguish observations from predictions."

  FLOW_HASH:
    algorithm: "SHA-256"
    input: "canonicalised ontology version, typed assertions, rules and provenance"
    note: "Compute hash at execution; no hash value is claimed here."

  UPDATE_MODEL:
    strategy: "versioned, provenance-preserving incremental update"
    steps: [ingest, normalise, validate, compare, reconcile, recompute_inferences, publish]
    rollback: true

  AI_CONSUMPTION:
    representation: "typed chemistry knowledge graph with evidence-backed relationships"
    outputs: [chemical_entities, reaction_links, structure_links, measurements, uncertainty_annotations, provenance_records]
    safeguards: [no_unsupported_reaction_claims, preserve_units_and_conditions, distinguish_prediction_from_observation]
}

END FLOW ALGEBRA
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ