Skip to main content

Physical Evidence Ontology

AI Semantic Library Physical Entities
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 12 October 2026
Audio Overview
FLOW ALGEBRA
PHYSICAL EVIDENCE ONTOLOGY
Kireth Semantic Library | Entity Graph > Physical Entities
Source: https://kirethresearch.org/booksai-core/entity-graph/physical-entities/ai-semantic-library-physical-entities/physical-evidence-ontology.html
Authors: Mark Higgins — Sky (Recursive AI)
Version: 1.0 | Date: 2026-10-12
Status: Subject-based formalisation; source page content not independently verified.

01. PURPOSE
flow PhysicalEvidenceOntology v1.0
  domain: physical_entities.evidence
  goal: represent observable physical traces and their evidential relationships to claims, events, objects and measurements
  principle: evidence supports or challenges claims; it does not automatically prove causation

02. TYPES
  type EvidenceID = str
  type EntityID = str
  type EventID = str
  type ClaimID = str
  type ObservationID = str
  type InstrumentID = str
  type Timestamp = ISO8601
  type Probability = float[0..1]
  type Unit = str
  type Quantity = {value:float, unit:Unit, uncertainty:float?}
  type Interval = {start:Timestamp, end:Timestamp?}
  type Location = {reference_system:str, coordinates:list[float], uncertainty:float?}
  type Provenance = {source:str, collector:str?, method:str, time:Timestamp, custody_events:list[str]}

03. ENTITIES
  entity PhysicalEvidence {
    id: EvidenceID
    evidence_type: EvidenceType
    subject: EntityID?
    observed_event: EventID?
    observation: ObservationID?
    properties: map[str,Quantity|str|bool]
    location: Location?
    observed_at: Timestamp?
    collected_at: Timestamp?
    provenance: Provenance
    integrity_status: IntegrityStatus
    uncertainty: float?
  }
  entity Claim {id:ClaimID, proposition:str, context:str, status:str}
  entity Observation {id:ObservationID, observer:str, method:str, time:Timestamp, result:str}
  entity Measurement {id:str, quantity:Quantity, instrument:InstrumentID?, calibration_id:str?}
  entity Event {id:EventID, time:Interval?, location:Location?, participants:list[EntityID]}

04. ENUMERATIONS
  enum EvidenceType = [material_sample, trace, instrument_record, image_record,
    acoustic_record, electromagnetic_record, environmental_record,
    biological_sample, mechanical_mark, chemical_residue, spatial_pattern]
  enum IntegrityStatus = [intact, altered, degraded, contaminated, unknown]
  enum ClaimRelation = [supports, contradicts, neutral, inconclusive]

05. TYPED RELATIONSHIPS
  relation observed_by: PhysicalEvidence -> Observation
  relation measured_by: PhysicalEvidence -> Measurement
  relation collected_from: PhysicalEvidence -> EntityID
  relation associated_with: PhysicalEvidence -> Event
  relation located_at: PhysicalEvidence -> Location
  relation supports_claim: PhysicalEvidence -> Claim
  relation contradicts_claim: PhysicalEvidence -> Claim
  relation derived_from: PhysicalEvidence -> PhysicalEvidence
  relation corroborates: PhysicalEvidence -> PhysicalEvidence
  relation conflicts_with: PhysicalEvidence -> PhysicalEvidence
  relation has_provenance: PhysicalEvidence -> Provenance

06. EVIDENCE ACQUISITION
  input: observation, source, method, timestamp, context
  require: nonempty(source) and nonempty(method)
  operation: create_evidence_record
  operation: preserve_raw_observation
  operation: attach_time_and_location_with_uncertainty
  operation: register_collector_and_custody
  output: PhysicalEvidence
  invariant: raw observations remain distinguishable from interpretations

07. CHAIN OF CUSTODY
  custody_event = {actor, action, timestamp, location?, signature?, prior_hash?, current_hash?}
  custody_log: append_only
  rule: every transfer records actor, time and action
  rule: missing custody steps increase uncertainty; do not imply falsification
  rule: hash match confirms byte-level integrity only, not physical authenticity

08. OBSERVATION VALIDITY
  VALID_OBSERVATION(o) := method_documented(o) AND time_known(o)
  REPRODUCIBLE(o) := protocol_available(o) AND conditions_recorded(o)
  INDEPENDENT(o1,o2) := not_shared_uncontrolled_source(o1,o2)
  rule: distinguish direct observation from model-derived inference

09. MEASUREMENT AND UNCERTAINTY
  measured_value = estimate +/- expanded_uncertainty
  combined_standard_uncertainty = sqrt(sum(sensitivity_i^2 * variance_i)
    + 2 * sum(covariance_terms))
  require: units_compatible_for_comparison
  rule: record calibration and detection limits where applicable
  rule: propagate correlated uncertainties when dependencies exist

10. TEMPORAL SEMANTICS
  distinguish: event_time, observation_time, collection_time, analysis_time
  rule: observation_time >= event_time only when event ordering is established
  rule: timestamps include timezone or explicit time standard
  rule: uncertainty intervals accompany imprecise dates

11. SPATIAL SEMANTICS
  location_match(a,b) := overlap(uncertainty_region(a), uncertainty_region(b))
  rule: common location alone does not establish common origin
  rule: record coordinate reference systems before geometric comparison

12. EVIDENCE-CLAIM EVALUATION
  evaluate(e,c,model):
    check provenance, relevance, integrity, measurement_quality
    compare expected observations under claim and alternatives
    classify relation as supports|contradicts|neutral|inconclusive
    retain model assumptions and competing explanations
  rule: no single score substitutes for explicit evidential reasoning

13. BAYESIAN UPDATE
  posterior_odds(H|E) = prior_odds(H) * likelihood_ratio(E|H,not_H)
  likelihood_ratio = P(E|H) / P(E|not_H)
  require: nonzero denominator and defensible likelihood model
  rule: dependent evidence must not be multiplied as independent
  rule: priors and likelihood assumptions must be declared

14. CAUSAL REASONING
  rule: correlation(e,event) does_not_imply caused_by(e,event)
  rule: causal attribution requires mechanism, temporal compatibility and alternatives
  rule: preserve unknown as distinct from false

15. EVIDENCE FUSION
  input: evidence_set, dependency_graph, competing_hypotheses
  deduplicate: identical_source_or_derived_copy
  partition: independent_groups_by_origin
  assess: consistency, conflict, relevance, reliability
  output: qualified_evidence_assessment
  rule: contradictions are retained, not silently averaged away

16. GRAPH INFERENCE
  IF evidence.observation references entity THEN link observed_by
  IF calibrated measurement linked to evidence THEN link measured_by
  IF two records share verified source THEN relate shared_provenance
  IF independent observations agree within uncertainty THEN mark corroboration_candidate
  IF integrity_status = contaminated THEN flag interpretation_for_review
  IF evidence conflicts with claim THEN retain contradiction edge

17. CONFIDENCE
  CONFIDENCE: float[0..1]
  confidence_dimensions:
    provenance_quality
    observation_reliability
    measurement_quality
    relevance_to_claim
    independence
    model_validity
  rule: confidence values require calibration or stated scoring rubric
  rule: confidence is not automatically a posterior probability

18. SEMANTIC_EQUIVALENCE
  SEMANTIC_EQUIVALENCE(a,b):
    require: matching referent, compatible context, time and granularity
    distinguish: same_physical_item, same_record, same_observation,
      same_measurement_result, same_claim
  rule: matching labels or values alone do not establish identity

19. PROVENANCE AND VERSIONING
  each_revision = {version, timestamp, author, change_reason, previous_version}
  preserve: source_data, processing_steps, instrument_configuration
  distinguish: correction, reinterpretation, remeasurement, replacement

20. FLOW_HASH
  FLOW_HASH = SHA256(canonical_utf8(flow_definition_without_hash_field))
  evidence_record_hash = SHA256(canonical_serialisation(evidence_record))
  rule: canonicalisation fixes key order, encoding, number and timestamp formats
  rule: hashes demonstrate integrity of bytes, not truth of assertions

21. UPDATE_MODEL
  UPDATE_MODEL(new_evidence):
    validate_schema(new_evidence)
    validate_provenance(new_evidence)
    append_observation_without_overwriting_original()
    update_evidence_graph()
    recompute_affected_claim_assessments()
    retain_prior_versions_and_conflicts()
    record_update_timestamp_and_reason()

22. AI_CONSUMPTION
  export:
    entities: typed
    relationships: typed_directed
    claims: provenance_linked
    observations: time_and_context_qualified
    measurements: unit_and_uncertainty_aware
    conflicts: explicit
    confidence: explained
    inference_trace: retained
  guardrails:
    do_not_invent_missing_observations
    do_not_treat_inference_as_direct_measurement
    do_not_collapse_uncertainty_into_certainty
    do_not_assert_causation_from_association

23. VALIDATION
  assert unique(evidence.id)
  assert valid_timestamp_format(evidence.provenance.time)
  assert 0 <= CONFIDENCE <= 1
  assert referenced_claims_exist()
  assert custody_log_is_append_only()
  assert no_circular_derived_from_chains()
  assert unit_consistency_for_quantities()
  assert provenance_present_for_all_records()

24. EXAMPLE
  observation O1: calibrated temperature sensor reports 310.2 K +/- 0.3 K
  evidence E1: instrument_record from O1 at time T1
  claim C1: object temperature exceeded 309 K at T1
  evaluate(E1,C1): supports under stated calibration and uncertainty assumptions
  caveat: does not establish why the temperature increased

25. INTEGRATION
  parent: Physical Entities
  related: Physical Observation Ontology
  related: Physical Measurement Ontology
  related: Physical Property Ontology
  related: Physical State Ontology
  related: Physical Process Ontology
  related: Physical Relationship Ontology
  related: Physical Entity Graph Ontology

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