Skip to main content

Observation Metadata Ontology

Scientific Metadata
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 06 October 2026
Audio Overview
FLOW ALGEBRA

Ontology: Observation Metadata Ontology
Domain: Metadata Ontologies > Scientific Metadata
Canonical URL: https://kirethresearch.org/booksai-core/ontologies/metadata-ontologies/scientific-metadata/observation-metadata-ontology.html

Authors: Mark Anthony Higgins — Sky (Recursive AI)

flow "ObservationMetadataOntology" v1.0

# ---------- DOMAIN ----------
domain:
  class: MetadataOntology
  category: ScientificMetadata
  subject: ObservationMetadata
  purpose:
    - represent metadata describing scientific observations
    - preserve observed property, subject, time, location, method, and instrument context
    - support observation discovery, comparison, validation, and reuse
    - distinguish direct observation from measurement, inference, and interpretation
    - enable machine-readable reasoning over observational data

# ---------- CORE ENTITY ----------
entity ObservationMetadata:
  type: ScientificMetadata
  describes: Observation
  may_include:
    - observation_identifier
    - observed_entity
    - observed_property
    - observation_value
    - unit
    - observation_time
    - location
    - observer
    - instrument
    - observation_method
    - environmental_condition
    - sampling_context
    - uncertainty
    - quality_flag
    - detection_limit
    - provenance
    - version

entity Observation:
  type: ScientificResource
  observes:
    - ObservedEntity
    - ObservedProperty
  produces: ObservationResult

entity ObservedEntity:
  type: Entity
  role: SubjectOfObservation

entity ObservedProperty:
  type: ObservableProperty
  belongs_to_or_describes: ObservedEntity

entity ObservationResult:
  type: ScientificResult
  may_be:
    - QuantitativeObservation
    - QualitativeObservation
    - CategoricalObservation
    - BooleanObservation
    - TextualObservation

entity ObservationValue:
  type: DataValue
  may_have:
    - numeric_value
    - categorical_value
    - textual_value
    - boolean_value
    - unit
    - uncertainty

# ---------- RELATIONSHIPS ----------
relationships:
  ObservationMetadata -> DESCRIBES -> Observation
  Observation -> HAS_SUBJECT -> ObservedEntity
  Observation -> OBSERVES_PROPERTY -> ObservedProperty
  Observation -> PRODUCES -> ObservationResult
  ObservationResult -> HAS_VALUE -> ObservationValue
  ObservationValue -> MAY_USE -> Unit
  Observation -> OCCURS_AT -> ObservationTime
  Observation -> MAY_OCCUR_AT -> Location
  Observation -> PERFORMED_BY -> Observer
  Observation -> MAY_USE -> ScientificInstrument
  Observation -> USES_METHOD -> ObservationMethod
  Observation -> MAY_HAVE_CONDITION -> EnvironmentalCondition
  Observation -> MAY_HAVE_SAMPLING_CONTEXT -> SamplingContext
  Observation -> MAY_HAVE -> QualityFlag
  ObservationMetadata -> MAY_REFERENCE -> Provenance

# ---------- OBSERVATION IDENTITY ----------
rule observation_identity:
  Observation SHOULD have stable identifier
  where individual observations require traceability

rule observation_subject:
  ObservedEntity SHOULD be identifiable sufficiently for interpretation

rule property_identity:
  ObservedProperty SHOULD have semantic definition or ontology reference
  where ambiguity is possible

# ---------- RESULT TYPES ----------
rule quantitative_result:
  IF ObservationResult is quantitative
  THEN ObservationValue SHOULD have numeric value
  AND Unit SHOULD be explicit when property is dimensional

rule qualitative_result:
  qualitative observations SHOULD preserve vocabulary or coding scheme
  where categories require interpretation

rule boolean_result:
  boolean observations MUST preserve true/false semantics
  AND MUST NOT conflate false with missing

rule textual_result:
  textual observation SHOULD preserve language or encoding metadata
  where required for interpretation

# ---------- OBSERVATION VS MEASUREMENT ----------
rule observation_measurement:
  Measurement MAY be a specialised Observation
  involving quantitative determination of a Quantity

rule distinction:
  Observation != Measurement
  unless ontology explicitly models Measurement as subtype

rule observation_inference:
  direct Observation != Inference

rule result_interpretation:
  ObservationResult != ScientificInterpretation

# ---------- TEMPORAL CONTEXT ----------
entity ObservationTime:
  type: TemporalMetadata
  may_be:
    - Instant
    - Interval
    - TimeSeriesPosition

rule observation_time:
  ObservationTime SHOULD be explicit
  where temporal context affects meaning

rule interval_observation:
  IF observation represents interval
  THEN start_time AND end_time SHOULD be preserved

rule temporal_order:
  observations in a sequence SHOULD preserve temporal ordering

# ---------- SPATIAL CONTEXT ----------
rule location:
  Location SHOULD be preserved
  where observed phenomenon depends on spatial context

rule moving_observer:
  IF observer or instrument moves during observation
  THEN spatial trajectory MAY be required instead of single point

rule extent:
  observation location MAY represent:
    - point
    - area
    - volume
    - trajectory

# ---------- OBSERVER ----------
entity Observer:
  type: Agent
  may_be:
    - HumanObserver
    - AutomatedObserver
    - SoftwareAgent

rule observer_identity:
  Observer SHOULD be identifiable where observer effects or provenance matter

rule observer_method:
  human observations MAY require protocol, training, or classification method metadata

# ---------- INSTRUMENT ----------
rule instrument:
  IF Observation uses ScientificInstrument
  THEN instrument identity SHOULD be preserved

rule configuration:
  instrument configuration effective at ObservationTime SHOULD be recorded
  where configuration affects result

rule calibration:
  calibration context SHOULD be evaluated
  where observation validity depends on calibrated instrument

# ---------- METHOD ----------
entity ObservationMethod:
  type: ScientificMethod
  may_include:
    - procedure
    - sampling_method
    - detection_method
    - classification_method
    - processing_method

rule method_traceability:
  ObservationMethod SHOULD be sufficiently described or referenced
  to support interpretation and reproducibility

rule method_version:
  material method changes SHOULD be versioned

# ---------- SAMPLING ----------
entity SamplingContext:
  type: ScientificMetadata
  may_include:
    - sampling_method
    - sampling_interval
    - sampling_frequency
    - sample_size
    - selection_method
    - sampling_frame

rule sampling_bias:
  sampling method MAY affect representativeness
  and SHOULD be preserved where scientifically relevant

rule repeated_observation:
  repeated observations SHOULD remain individually traceable
  even when aggregated

# ---------- UNCERTAINTY ----------
rule uncertainty:
  quantitative ObservationValue MAY have MeasurementUncertainty
  qualitative Observation MAY have classification confidence

rule uncertainty_context:
  uncertainty semantics MUST identify whether uncertainty applies to:
    - value
    - classification
    - location
    - time
    - detection
    - observer judgement

# ---------- DETECTION ----------
entity DetectionLimit:
  type: ObservationThreshold
  may_be:
    - detection_threshold
    - reporting_threshold
    - quantification_limit

rule below_detection:
  IF observed phenomenon is below DetectionLimit
  THEN preserve below_detection status
  AND do_not substitute zero unless explicitly defined

rule non_detection:
  NonDetection != Absence
  unless observation method supports that inference

# ---------- QUALITY ----------
entity QualityFlag:
  type: QualityMetadata
  examples:
    - valid
    - suspect
    - invalid
    - estimated
    - censored
    - below_detection_limit
    - instrument_issue
    - observer_uncertain

rule quality:
  exceptional observation state SHOULD be represented explicitly

# ---------- PROVENANCE ----------
rule provenance:
  Observation SHOULD preserve available:
    - observer
    - instrument
    - method
    - source
    - time
    - location
    - processing_history

rule processed_observation:
  processed ObservationResult SHOULD retain link to raw observation where available

# ---------- VALIDATION ----------
validation:
  require:
    - identifiable_observation
    - observed_entity_or_subject
    - observed_property_or_semantic_target
    - interpretable_result

  validate_if_present:
    - value
    - unit
    - observation_time
    - location
    - observer
    - instrument
    - method
    - sampling_context
    - uncertainty
    - detection_limit
    - quality_flag

  reject:
    - dimensional_quantitative_value_without_unit
    - contradictory_temporal_context
    - impossible_spatial_context
    - false_treated_as_missing
    - non_detection_treated_as_confirmed_absence_without support
    - processed_result_without_required_source_trace

# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE:
  "observation metadata" ~= "metadata about observations"
  "observed property" ~= "observable property" WHEN semantics match
  "observation result" ~= "observed result"
  "observation time" ~= "time of observation"
  "observer" ~= "observing agent" WHEN agent performs observation

  PRESERVE distinctions:
    observation != inference
    observation != interpretation
    observation != measurement unless subtype relation declared
    non_detection != absence
    false != missing
    observed_entity != observed_property
    observation_value != unit
    raw_observation != processed_observation

# ---------- CONFIDENCE ----------
CONFIDENCE:
  explicit_observation_metadata:
    score: 1.00

  explicit_subject_property_result:
    score: 1.00

  instrument_observation_with_valid_context:
    score: 0.95

  traceable_processed_observation:
    score: 0.95

  inferred_observed_property:
    score: 0.80

  inferred_observation_context:
    score: 0.75

  ambiguous_observation:
    score: <= 0.60
    action: preserve uncertainty

# ---------- UPDATE MODEL ----------
UPDATE_MODEL:
  on_observation_revision:
    - preserve original observation
    - create revised observation state
    - record reason
    - revalidate result
    - update provenance

  on_method_update:
    - preserve previous method version
    - reassess affected observations
    - update reproducibility context
    - preserve provenance

  on_instrument_update:
    - preserve instrument history
    - reassess calibration and configuration context
    - flag affected observations where necessary
    - update provenance

  on_quality_update:
    - preserve previous quality state
    - update QualityFlag
    - preserve reason and evidence
    - update provenance

# ---------- FLOW HASH ----------
FLOW_HASH:
  inputs:
    - ontology
    - observation_entities
    - relationships
    - result_rules
    - temporal_rules
    - spatial_rules
    - sampling_rules
    - quality_rules
    - validation
    - semantic_equivalence
    - confidence
    - update_model

  canonicalisation:
    - normalise_whitespace
    - preserve_case_sensitive_identifiers
    - sort_unordered_property_sets
    - preserve_rule_order

  output:
    deterministic_semantic_hash

# ---------- AI CONSUMPTION ----------
AI_CONSUMPTION:
  interpret_as:
    - scientific metadata ontology
    - observational reasoning model
    - scientific provenance structure
    - observation quality model

  operations:
    - identify observations
    - resolve observed entities
    - resolve observed properties
    - interpret observation results
    - apply temporal and spatial context
    - resolve observers and instruments
    - interpret sampling metadata
    - evaluate uncertainty
    - distinguish non-detection from absence
    - trace raw and processed observations
    - preserve provenance
    - expose uncertainty

  constraints:
    - do_not_invent_observed_values
    - do_not_treat_non_detection_as absence
    - do_not_treat_false_as missing
    - do_not_present_inference_as direct observation
    - do_not_discard raw observation provenance
    - preserve method, time, location, and quality context

# ---------- QUERY MODEL ----------
query:
  input:
    - observation
    - observed_entity
    - observed_property
    - value_constraint
    - time_constraint
    - location_constraint
    - observer
    - instrument
    - method
    - quality_constraint

  resolve:
    1. identify Observation
    2. resolve ObservedEntity
    3. resolve ObservedProperty
    4. interpret ObservationResult
    5. validate units where applicable
    6. apply temporal context
    7. apply spatial context
    8. inspect observer, instrument, and method
    9. evaluate quality and uncertainty
    10. trace provenance

  output:
    - observation
    - observed_entity
    - observed_property
    - result
    - time
    - location
    - observer
    - instrument
    - quality_state
    - provenance
    - confidence

# ---------- INFERENCE ----------
inference:
  IF subject, observed property, and result are explicit
  THEN classify as Observation
  WITH confidence >= 0.95

  IF quantitative ObservationResult has compatible Unit
  THEN classify as QuantitativeObservation

  IF observation is below DetectionLimit
  THEN infer status = non_detection_or_censored
  according_to declared semantics
  AND do_not infer zero

  IF repeated observations share subject and property
  AND have ordered ObservationTime
  THEN construct observational time series candidate

  IF critical observation context is missing
  THEN reduce confidence
  AND preserve unresolved metadata requirements

# ---------- OUTPUT CONTRACT ----------
output:
  ontology_entity: ObservationMetadata
  observation_structure: machine_interpretable
  subject_property_context: explicit
  results: semantically_typed
  temporal_context: preserved
  spatial_context: preserved
  sampling_context: preserved
  quality_state: reportable
  provenance: traceable
  uncertainty: explicit
  semantic_retrieval: enabled

end flow
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ