Skip to main content

Digital Preservation Ontology

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

Ontology: Digital Preservation Ontology
Domain: Metadata Ontologies > Digital Preservation Metadata
Canonical URL: https://kirethresearch.org/booksai-core/ontologies/metadata-ontologies/digital-preservation-metadata/digital-preservation-ontology.html
Authors: Mark Anthony Higgins — Sky (Recursive AI)

flow "DigitalPreservationOntology" v1.0

# ---------- DOMAIN ----------
domain:
  class: MetadataOntology
  category: DigitalPreservationMetadata
  subject: DigitalPreservation
  purpose:
    - represent entities, relationships, events, evidence, and strategies involved in long-term digital preservation
    - preserve digital-object identity, representations, files, bitstreams, formats, fixity, provenance, rights, dependencies, and authenticity
    - support ingestion, validation, migration, replication, emulation, recovery, retention, access, and preservation planning
    - distinguish intellectual entities from technical representations and preservation copies
    - enable machine-readable reasoning over digital preservation lifecycles

# ---------- CORE ----------
entity PreservationObject:
  type: DigitalResource
  may_be: [IntellectualEntity, Representation, File, Bitstream]

entity IntellectualEntity:
  type: PreservationObject

entity Representation:
  type: PreservationObject
  represents: IntellectualEntity

entity File:
  type: PreservationObject

entity Bitstream:
  type: PreservationObject
  may_be_contained_in: File

entity PreservationIdentifier:
  type: PersistentIdentifier
  identifies: PreservationObject

relationships:
  IntellectualEntity -> HAS_REPRESENTATION -> Representation
  Representation -> CONTAINS -> File
  File -> MAY_CONTAIN -> Bitstream
  PreservationObject -> IDENTIFIED_BY -> PreservationIdentifier
  File -> HAS_FORMAT -> FileFormat
  File -> MAY_HAVE_FIXITY -> FixityInformation
  PreservationObject -> PARTICIPATES_IN -> PreservationEvent
  PreservationEvent -> HAS_AGENT -> PreservationAgent
  PreservationObject -> MAY_HAVE_VERSION -> PreservationVersion
  PreservationObject -> MAY_DEPEND_ON -> TechnicalDependency
  PreservationObject -> MAY_REQUIRE -> TechnicalEnvironment
  PreservationObject -> MAY_HAVE_RIGHTS -> PreservationRights
  PreservationObject -> MAY_HAVE_PROVENANCE -> PreservationProvenance
  PreservationObject -> MAY_HAVE_AUTHENTICITY -> AuthenticityEvidence
  PreservationObject -> MAY_BE_STORED_IN -> PreservationStorage

# ---------- OBJECT IDENTITY ----------
rule object_hierarchy:
  IntellectualEntity != Representation
  Representation != File
  File != Bitstream

rule representation:
  one IntellectualEntity MAY have multiple Representations

rule persistent_identity:
  PreservationObject SHOULD have stable PreservationIdentifier

rule filename:
  filename != persistent identity

rule storage_path:
  storage path != persistent identity

rule checksum:
  checksum != semantic identity

# ---------- FORMAT ----------
entity FileFormat:
  type: TechnicalMetadata
  may_include:
    - format_identifier
    - format_name
    - format_version
    - media_type
    - signature
    - registry_reference

rule format:
  file extension != definitive FileFormat

rule format_version:
  format version SHOULD be preserved
  where rendering or migration depends on it

entity FormatIdentificationEvent:
  subtype_of: PreservationEvent
  may_include: [tool, tool_version, identified_format, method, confidence]

rule format_identification:
  identified format SHOULD preserve method and confidence

# ---------- FIXITY ----------
entity FixityInformation:
  type: IntegrityMetadata
  may_include: [algorithm, digest, calculation_time, object_scope]

rule fixity:
  digest MUST preserve algorithm and object scope

rule fixity_identity:
  matching fixity supports byte-level identity
  but != semantic equivalence

entity FixityCheckEvent:
  subtype_of: PreservationEvent
  may_include: [expected_digest, observed_digest, algorithm, outcome, event_time]

fixity_outcomes:
  - match
  - mismatch
  - unavailable
  - error

rule fixity_check:
  mismatch SHOULD trigger integrity investigation

# ---------- PRESERVATION EVENTS ----------
entity PreservationEvent:
  type: Event
  may_be:
    - IngestEvent
    - ValidationEvent
    - FormatIdentificationEvent
    - FixityCheckEvent
    - MigrationEvent
    - NormalisationEvent
    - ReplicationEvent
    - RecoveryEvent
    - MetadataUpdateEvent
    - DeletionEvent
  may_include:
    - event_identifier
    - event_type
    - event_time
    - outcome
    - detail
    - agent
    - source_object
    - resulting_object

rule event:
  PreservationEvent SHOULD preserve event type, time, affected object, agent, and outcome

entity IngestEvent:
  subtype_of: PreservationEvent

rule ingest:
  ingestion SHOULD establish preservation identity and initial provenance

entity ValidationEvent:
  subtype_of: PreservationEvent
  may_include: [validation_tool, tool_version, target, result, errors, warnings]

rule validation_event:
  technical validity != factual correctness

entity MigrationEvent:
  subtype_of: PreservationEvent
  may_include:
    - source_object
    - resulting_object
    - source_format
    - target_format
    - migration_tool
    - tool_version
    - parameters
    - validation_result

rule migration:
  migration SHOULD preserve source-to-result derivation

rule migration_file:
  resulting migrated File != source File

rule intellectual_continuity:
  migration MAY preserve IntellectualEntity continuity
  while changing Representation or File

entity NormalisationEvent:
  subtype_of: PreservationEvent

entity ReplicationEvent:
  subtype_of: PreservationEvent
  may_include: [source_copy, destination_copy, source_storage, destination_storage, fixity_result]

rule replication:
  replicated copy SHOULD be fixity-verified where policy requires

entity RecoveryEvent:
  subtype_of: PreservationEvent
  may_include: [incident, recovery_source, restored_object, validation_result]

entity DeletionEvent:
  subtype_of: PreservationEvent
  may_include: [deleted_object, authority, reason, verification]

rule deletion:
  authorised deletion SHOULD preserve audit evidence where policy permits

# ---------- AGENTS / PROVENANCE / VERSION ----------
entity PreservationAgent:
  type: Agent
  may_be: [Person, Organization, SoftwareAgent, AutomatedProcess]

entity PreservationProvenance:
  type: ProvenanceMetadata
  may_include:
    - origin
    - creator
    - custody_history
    - ingest_source
    - preservation_events
    - transformations
    - agents
    - versions

rule provenance:
  chain of custody and transformation history SHOULD be preserved

entity PreservationVersion:
  type: VersionMetadata
  may_include: [version_identifier, predecessor, successor, creation_time, change_reason, event]

rule version:
  material preserved-state change SHOULD create distinguishable version

# ---------- DEPENDENCIES / ENVIRONMENT ----------
entity TechnicalDependency:
  type: Dependency
  may_be:
    - SoftwareDependency
    - OperatingSystemDependency
    - CodecDependency
    - FontDependency
    - LibraryDependency
    - HardwareDependency
    - RuntimeDependency
    - SchemaDependency
    - ExternalResourceDependency

rule dependency:
  dependencies required for rendering, interpretation, or execution SHOULD be preserved

entity TechnicalEnvironment:
  type: EnvironmentMetadata
  may_include: [operating_system, software, software_version, hardware, runtime, configuration]

rule environment:
  TechnicalEnvironment SHOULD be preserved where future access depends on it

# ---------- RIGHTS / AUTHENTICITY ----------
entity PreservationRights:
  type: RightsMetadata
  may_include:
    - rights_holder
    - licence
    - preservation_permission
    - migration_permission
    - replication_permission
    - emulation_permission
    - access_permission
    - restriction
    - validity_period

rule preservation_access:
  preservation permission != public access permission

entity AuthenticityEvidence:
  type: TrustMetadata
  may_include:
    - provenance
    - fixity_history
    - signatures
    - custody_history
    - validation_history
    - preservation_events

rule authenticity:
  authenticity assessment SHOULD combine available evidence

rule fixity_authenticity:
  fixity alone != complete authenticity proof

entity DigitalSignatureEvidence:
  type: AuthenticityEvidence
  may_include: [signature_algorithm, signer, certificate, signature_time, validation_state]

# ---------- STORAGE / COPIES / RETENTION ----------
entity PreservationStorage:
  type: StorageMetadata
  may_include: [storage_identifier, storage_type, location, encryption, replication_state, integrity_monitoring]

rule storage:
  storage location != PreservationObject identity

entity PreservationCopy:
  type: RepresentationCopy
  may_include: [copy_identifier, source_object, storage, fixity, creation_time]

rule copy:
  PreservationCopy SHOULD preserve source relationship

entity RetentionPolicy:
  type: LifecyclePolicy
  may_include: [retention_period, retain_until, review_date, disposal_authority]

entity AccessCopy:
  type: Representation
  purpose: Access

entity PreservationMaster:
  type: Representation
  purpose: Preservation

rule access_copy:
  AccessCopy != PreservationMaster
  unless explicitly designated

# ---------- STRATEGY / RISK / PLAN ----------
entity PreservationStrategy:
  type: Strategy
  may_be:
    - MigrationStrategy
    - EmulationStrategy
    - NormalisationStrategy
    - ReplicationStrategy
    - EncapsulationStrategy
    - FormatRefreshStrategy
    - TechnologyPreservationStrategy

rule strategy:
  PreservationStrategy SHOULD preserve rationale and applicability

entity EmulationStrategy:
  subtype_of: PreservationStrategy
  may_include: [original_environment, target_environment, emulator, emulator_version, configuration, dependencies]

entity PreservationRisk:
  type: RiskMetadata
  may_include:
    - format_obsolescence
    - storage_failure
    - dependency_loss
    - integrity_failure
    - rights_restriction
    - unsupported_environment
    - risk_level
    - assessment_time

rule risk:
  risk assessment SHOULD preserve method and time

entity PreservationPlan:
  type: PlanMetadata
  may_include:
    - target_objects
    - identified_risks
    - strategy
    - trigger_conditions
    - validation_requirements
    - responsible_agents

rule plan:
  preservation plan SHOULD link risks to actions and validation requirements

# ---------- VALIDATION ----------
validation:
  require:
    - identifiable_preservation_object

  validate_if_present:
    - preservation_identifier
    - object_level
    - format
    - fixity
    - preservation_events
    - provenance
    - version
    - dependencies
    - environment
    - rights
    - authenticity
    - storage
    - retention
    - strategy

  reject:
    - filename_presented_as persistent_identity
    - storage_location_presented_as resource_identity
    - file_extension_presented_as definitive_format
    - checksum_without_algorithm
    - fixity_match_presented_as complete_authenticity_proof
    - migrated_file_presented_as byte_identical_source
    - preservation_permission_presented_as public_access_permission
    - access_copy_presented_as preservation_master_without evidence

# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE:
  "digital preservation" ~= "long-term preservation of digital resources"
  "preservation object" ~= "digital object managed for preservation"
  "fixity check" ~= "integrity verification using stored digest"
  "preservation event" ~= "recorded action affecting preservation state"
  "format migration" ~= "conversion to a preservation target format"
  "preservation provenance" ~= "custody and transformation history"

  PRESERVE distinctions:
    intellectual_entity != representation
    representation != file
    file != bitstream
    filename != persistent_identity
    storage_location != object_identity
    file_extension != verified_format
    fixity != authenticity
    migrated_file != source_file
    preservation_permission != access_permission
    access_copy != preservation_master
    semantic_continuity != byte_identity

# ---------- CONFIDENCE ----------
CONFIDENCE:
  explicit_preservation_object:
    score: 1.00
  persistent_identifier:
    score: 1.00
  verified_fixity_match:
    score: 0.99
  validated_format_identification:
    score: 0.99
  complete_event_provenance:
    score: 0.99
  validated_migration:
    score: 0.98
  extension_only_format_guess:
    score: <= 0.70
  incomplete_provenance:
    score: <= 0.65
  weak_authenticity_evidence:
    score: <= 0.50
    action: preserve uncertainty

# ---------- UPDATE MODEL ----------
UPDATE_MODEL:
  on_ingest:
    - assign PreservationIdentifier
    - classify object levels
    - identify formats
    - calculate fixity
    - validate objects
    - record rights
    - initialise provenance

  on_fixity_check:
    - calculate current digest
    - compare expected digest
    - record FixityCheckEvent
    - trigger investigation on mismatch
    - update provenance

  on_migration:
    - preserve source object
    - create resulting object
    - record source and target formats
    - validate result
    - calculate resulting fixity
    - update provenance

  on_replication:
    - create PreservationCopy
    - record destination storage
    - verify fixity
    - update replication state
    - preserve provenance

  on_risk_change:
    - reassess PreservationRisk
    - evaluate PreservationPlan
    - trigger strategy where policy requires
    - preserve decision provenance

# ---------- FLOW HASH ----------
FLOW_HASH:
  inputs:
    - ontology
    - preservation_objects
    - relationships
    - identity_rules
    - format_rules
    - fixity_rules
    - event_rules
    - provenance_rules
    - strategy_rules
    - validation
    - semantic_equivalence
    - confidence
    - update_model

  canonicalisation:
    - preserve_persistent_identifiers
    - preserve_object_hierarchy
    - preserve_fixity_algorithm_and_digest
    - preserve_event_order
    - preserve_version_relationships
    - preserve_chain_of_custody
    - preserve_rule_order

  output:
    deterministic_semantic_hash

# ---------- AI CONSUMPTION ----------
AI_CONSUMPTION:
  interpret_as:
    - digital preservation ontology
    - preservation object and event model
    - fixity, provenance, rights, authenticity, and strategy structure
    - long-term digital access and preservation planning model

  operations:
    - identify preservation objects
    - distinguish intellectual entities, representations, files, and bitstreams
    - resolve persistent identifiers
    - identify and validate file formats
    - verify fixity
    - traverse preservation events
    - trace migration, replication, recovery, and deletion
    - resolve versions
    - inspect dependencies and environments
    - evaluate rights and access
    - assess authenticity evidence
    - inspect storage and retention
    - evaluate preservation risk and plans
    - trace provenance
    - preserve uncertainty

  constraints:
    - do_not_equate_filename_with persistent_identity
    - do_not_equate_storage_location_with object_identity
    - do_not_equate_file_extension_with verified_format
    - do_not_equate_fixity_with complete_authenticity
    - do_not_equate_migrated_file_with byte_identical_source
    - do_not_equate_preservation_permission_with public_access
    - preserve_identifiers_formats_fixity_events_rights_versions_and_provenance

# ---------- QUERY MODEL ----------
query:
  input:
    - preservation_identifier
    - object_type
    - format
    - fixity
    - event_type
    - version
    - dependency
    - environment
    - storage
    - strategy

  resolve:
    1. identify PreservationObject
    2. resolve PreservationIdentifier
    3. determine object level
    4. traverse representations, files, and bitstreams
    5. inspect format and fixity
    6. traverse PreservationEvents
    7. resolve versions, dependencies, and environment
    8. inspect rights, authenticity, storage, and retention
    9. evaluate preservation strategy, risk, and provenance
    10. return confidence

  output:
    - preservation_object
    - identifier
    - object_level
    - representations
    - files
    - bitstreams
    - formats
    - fixity
    - events
    - versions
    - dependencies
    - rights
    - authenticity
    - storage
    - strategy
    - risk
    - provenance
    - confidence

# ---------- INFERENCE ----------
inference:
  IF current digest matches expected digest
  THEN infer byte-level fixity match
  WITH confidence according_to algorithm and validation context

  IF migration creates validated target from preserved source
  THEN preserve derived_from relationship
  AND maintain intellectual-content continuity candidate

  IF file format is identified by validated signature
  THEN prefer validated format identification
  over filename extension

  IF authenticity evidence is incomplete
  THEN preserve authenticity uncertainty
  AND do_not infer complete authenticity

# ---------- OUTPUT CONTRACT ----------
output:
  ontology_entity: DigitalPreservation
  preservation_objects: machine_interpretable
  object_hierarchy: explicit
  persistent_identifiers: preserved
  formats: validated
  fixity: verifiable
  events: traversable
  migrations_and_replications: traceable
  versions: preserved
  dependencies_and_environments: explicit
  rights_and_access: distinguishable
  authenticity: evidence_based
  storage_and_retention: reportable
  strategies_and_plans: explicit
  preservation_risk: reportable
  provenance: preserved
  uncertainty: explicit
  long_term_retrieval: enabled

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