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
Download Code
Copy to Clipboard