Skip to main content

Environmental Monitoring Domain Ontology

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

flow "EnvironmentalMonitoringDomainOntology" v1.0 {
  ontology:
    id: "environmental-monitoring-domain-ontology"
    parent: "earth-environmental-domains"
    purpose: "Represent environmental monitoring programmes, observations, sensors, indicators, quality controls, trends and evidence-backed assessments."

  types:
    MonitoringProgramme: {id: string, objective: string, region: string?, start: datetime?, end: datetime?, provenance: string}
    MonitoringSite: {id: string, location: string, coordinate_reference_system: string?, habitat: string?, provenance: string}
    EnvironmentalMedium: enum[air, water, soil, sediment, biota, noise, radiation, other]
    Instrument: {id: string, kind: string, calibration_record: string?, detection_limit: number?, provenance: string}
    Indicator: {id: string, name: string, medium: EnvironmentalMedium, unit: string?, threshold: number?, threshold_basis: string?}
    Observation: {id: string, site: string, indicator: string, timestamp: datetime, value: number?, unit: string?, uncertainty: number?, instrument: string?, method: string?, quality_flag: string?, provenance: string}
    Sample: {id: string, site: string, medium: EnvironmentalMedium, collected_at: datetime, preservation_method: string?, chain_of_custody: string?}
    Assessment: {id: string, period_start: datetime, period_end: datetime, method: string, finding: string, evidence: string[], confidence: number}
    Relationship: {id: string, subject: string, predicate: string, object: string, context: string?, confidence: number, evidence: string[]}

  predicates:
    monitors(programme: MonitoringProgramme, indicator: Indicator)
    includes_site(programme: MonitoringProgramme, site: MonitoringSite)
    located_at(observation: Observation, site: MonitoringSite)
    measures(observation: Observation, indicator: Indicator)
    recorded_by(observation: Observation, instrument: Instrument)
    derived_from(assessment: Assessment, observation: Observation)
    sampled_at(sample: Sample, site: MonitoringSite)
    exceeds_threshold(observation: Observation, indicator: Indicator)
    temporally_precedes(a: Observation, b: Observation)

  constraints:
    - "All identifiers must resolve to typed entities."
    - "Confidence must lie within [0, 1]."
    - "Numeric observations require compatible units, timestamps, site and indicator references."
    - "Instrument readings must retain calibration status, detection limits and quality flags where available."
    - "Threshold comparisons require matching units, regulatory basis, medium and temporal averaging window."
    - "Missing, censored and below-detection-limit observations must not be treated as measured zero."
    - "Temporal or spatial association alone does not establish environmental causation."
    - "Aggregations must document sampling design, coverage and uncertainty."

  inference:
    rule threshold_exceedance:
      if valid(obs) and measures(obs,indicator) and comparable_units(obs,indicator) and applicable_threshold(obs,indicator) and obs.value > indicator.threshold
      then exceeds_threshold(obs,indicator)
      confidence: "retain measurement uncertainty and threshold basis"
    rule chronological_order:
      if same_time_standard(a,b) and a.timestamp < b.timestamp
      then temporally_precedes(a,b)
      confidence: "dependent on timestamp integrity"
    rule evidence_link:
      if derived_from(assessment,obs) and valid(obs)
      then evidence_for(obs,assessment)
      confidence: "retain quality flags; no automatic certainty increase"

  SEMANTIC_EQUIVALENCE:
    - "Align indicator names, media, methods and units to versioned reference vocabularies."
    - "Distinguish synonymous labels from equivalent measurement procedures."
    - "Preserve site identity, coordinates, sampling depth, time and analytical method."

  CONFIDENCE:
    range: [0,1]
    factors: [instrument_accuracy, calibration, sampling_representativeness, data_completeness, method_validity, source_reliability, independent_replication]
    policy: "Propagate uncertainty without increasing confidence solely through chained inference."

  VALIDATION:
    - "Verify entity references, timestamps, units, site coordinates and provenance."
    - "Check calibration, measurement ranges, detection limits and missing-data codes."
    - "Flag incompatible methods, inconsistent thresholds and unsupported trend claims."
    - "Preserve conflicting evidence and alternative interpretations."

  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, quality_control, validate, compare, reconcile, recompute_inferences, publish]
    rollback: true

  AI_CONSUMPTION:
    representation: "typed environmental monitoring knowledge graph with evidence-backed relationships"
    outputs: [monitoring_entities, observation_links, indicator_trends, threshold_assessments, uncertainty_annotations, provenance_records]
    safeguards: [preserve_units_and_times, respect_detection_limits, no_unsupported_causal_claims, retain_quality_flags, disclose_uncertainty]
}

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