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