Skip to main content

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

flow "DigitalArchiveOntology" v1.0

# ---------- DOMAIN ----------
domain:
  class: MetadataOntology
  category: DigitalPreservationMetadata
  subject: DigitalArchive
  purpose:
    - represent digital archives, archival collections, preserved objects, packages, events, storage, access, and provenance
    - preserve archival identity, hierarchy, custody, fixity, formats, versions, rights, retention, and authenticity evidence
    - support long-term preservation, discovery, retrieval, migration, replication, recovery, and controlled access
    - distinguish archive, collection, intellectual entity, representation, file, bitstream, preservation copy, and access copy
    - enable machine-readable reasoning over digital archival lifecycles

# ---------- CORE ----------
entity DigitalArchive:
  type: PreservationRepository
  may_include:
    - archive_identifier
    - archive_name
    - collections
    - preservation_objects
    - ingest_packages
    - archival_packages
    - dissemination_packages
    - storage
    - preservation_policy
    - retention_policy
    - access_policy
    - provenance
    - authenticity
    - preservation_events

entity ArchiveIdentifier:
  type: PersistentIdentifier
  identifies: DigitalArchive

entity ArchivalCollection:
  type: ResourceCollection
  belongs_to: DigitalArchive

entity ArchivalObject:
  type: PreservationObject

relationships:
  DigitalArchive -> IDENTIFIED_BY -> ArchiveIdentifier
  DigitalArchive -> CONTAINS -> ArchivalCollection
  ArchivalCollection -> CONTAINS -> ArchivalObject
  ArchivalObject -> MAY_HAVE_REPRESENTATION -> Representation
  Representation -> CONTAINS -> File
  File -> MAY_CONTAIN -> Bitstream
  ArchivalObject -> MAY_BE_PACKAGED_IN -> ArchivalInformationPackage
  DigitalArchive -> RECEIVES -> SubmissionInformationPackage
  DigitalArchive -> PRESERVES -> ArchivalInformationPackage
  DigitalArchive -> MAY_PRODUCE -> DisseminationInformationPackage
  ArchivalObject -> MAY_HAVE_FIXITY -> FixityInformation
  ArchivalObject -> MAY_HAVE_PROVENANCE -> ArchiveProvenance
  ArchivalObject -> MAY_HAVE_RIGHTS -> ArchiveRights
  DigitalArchive -> USES -> ArchiveStorage
  DigitalArchive -> RECORDS -> ArchiveEvent

# ---------- IDENTITY / HIERARCHY ----------
rule archive_identity:
  DigitalArchive SHOULD have stable ArchiveIdentifier

rule archive_location:
  repository location != archive identity

rule archive_collection:
  DigitalArchive != ArchivalCollection

rule collection:
  ArchivalCollection SHOULD preserve hierarchical context

archive_object_levels:
  - intellectual_entity
  - representation
  - file
  - bitstream

rule hierarchy:
  IntellectualEntity != Representation
  Representation != File
  File != Bitstream

# ---------- DESCRIPTION ----------
entity ArchivalDescription:
  type: DescriptiveMetadata
  may_include:
    - title
    - creator
    - contributor
    - description
    - subject
    - date
    - language
    - identifier
    - coverage
    - relation
    - rights

rule description:
  descriptive metadata SHOULD remain distinguishable
  from preservation and technical metadata

# ---------- INFORMATION PACKAGES ----------
entity InformationPackage:
  type: PreservationPackage
  may_include:
    - package_identifier
    - content_information
    - preservation_description_information
    - packaging_information
    - descriptive_information

entity SubmissionInformationPackage:
  subtype_of: InformationPackage
  abbreviation: SIP

entity ArchivalInformationPackage:
  subtype_of: InformationPackage
  abbreviation: AIP

entity DisseminationInformationPackage:
  subtype_of: InformationPackage
  abbreviation: DIP

rule SIP:
  SIP represents information submitted for archival ingest

rule AIP:
  AIP represents information managed for preservation

rule DIP:
  DIP represents information prepared for dissemination or access

rule package_distinction:
  SIP != AIP
  AIP != DIP

rule package_object:
  package identity != intellectual entity identity

# ---------- INGEST / FIXITY / FORMAT ----------
entity ArchiveIngest:
  type: ArchiveEvent
  may_include:
    - submission_package
    - source
    - validation
    - security_check
    - format_identification
    - identifier_assignment
    - fixity_generation
    - AIP_creation
    - storage_assignment

rule ingest:
  ingest SHOULD preserve source, validation, identifiers, and resulting AIP

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

rule fixity:
  fixity MUST preserve algorithm and object scope

rule fixity_not_authenticity:
  fixity != complete authenticity evidence

entity ArchiveFixityCheck:
  type: ArchiveEvent
  may_include: [object, expected_digest, observed_digest, algorithm, outcome, timestamp]

rule fixity_check:
  mismatch SHOULD trigger preservation investigation

entity ArchiveFormatMetadata:
  type: TechnicalMetadata
  may_include:
    - format_identifier
    - format_name
    - format_version
    - media_type
    - signature
    - registry_reference

rule format:
  filename extension != definitive format

entity FormatRisk:
  type: PreservationRisk
  may_include:
    - format
    - obsolescence_risk
    - support_state
    - migration_priority
    - assessment_time

# ---------- EVENTS ----------
entity ArchiveEvent:
  type: PreservationEvent
  may_be:
    - ArchiveIngest
    - ArchiveFixityCheck
    - ArchiveValidation
    - ArchiveMigration
    - ArchiveReplication
    - ArchiveRecovery
    - ArchiveAccessEvent
    - ArchiveMetadataUpdate
    - ArchiveDeletion
  may_include:
    - event_identifier
    - event_type
    - event_time
    - object
    - agent
    - outcome
    - detail

rule event:
  ArchiveEvent SHOULD preserve event identity, time, agent, object, and outcome

entity ArchiveMigration:
  type: ArchiveEvent
  may_include:
    - source_object
    - resulting_object
    - source_format
    - target_format
    - tool
    - tool_version
    - parameters
    - validation_result

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

rule migration_identity:
  migrated File != source File

entity ArchiveReplication:
  type: ArchiveEvent
  may_include:
    - source_copy
    - destination_copy
    - source_storage
    - destination_storage
    - fixity_result

rule replication:
  replicated archival copy SHOULD preserve source relationship and integrity evidence

entity ArchiveRecovery:
  type: ArchiveEvent
  may_include: [incident, recovery_source, restored_object, validation_result]

# ---------- PROVENANCE / AUTHENTICITY ----------
entity ArchiveAgent:
  type: Agent
  may_be: [Person, Organization, SoftwareAgent, AutomatedProcess]

entity ArchiveProvenance:
  type: ProvenanceMetadata
  may_include:
    - origin
    - creator
    - depositor
    - custody_history
    - ingest_source
    - archive_events
    - transformations
    - agents
    - versions

rule provenance:
  DigitalArchive SHOULD preserve chain of custody and transformation history

entity ArchiveAuthenticity:
  type: AuthenticityEvidence
  may_include:
    - provenance
    - fixity_history
    - digital_signatures
    - custody_history
    - validation_history
    - event_history

rule authenticity:
  authenticity SHOULD be assessed from multiple evidence sources

# ---------- RIGHTS / ACCESS ----------
entity ArchiveRights:
  type: RightsMetadata
  may_include:
    - rights_holder
    - licence
    - preservation_permission
    - migration_permission
    - replication_permission
    - access_permission
    - restriction
    - embargo
    - validity_period

rule rights:
  preservation permission != access permission

entity ArchiveAccessPolicy:
  type: AccessPolicy
  may_include:
    - access_level
    - user_class
    - embargo
    - authentication_requirement
    - authorisation_requirement
    - dissemination_rules

rule access:
  archive possession != unrestricted public access

entity ArchiveAccessCopy:
  type: Representation
  purpose: Access

entity ArchivePreservationMaster:
  type: Representation
  purpose: Preservation

rule access_copy:
  ArchiveAccessCopy != ArchivePreservationMaster
  unless explicitly designated

# ---------- STORAGE / RETENTION ----------
entity ArchiveStorage:
  type: PreservationStorage
  may_include:
    - storage_identifier
    - storage_type
    - storage_location
    - encryption
    - replication_state
    - integrity_monitoring
    - availability_state

rule storage:
  storage location != archival object identity

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

rule storage_copy:
  multiple storage copies MAY preserve same archival object
  while remaining distinct copies

entity ArchiveRetentionPolicy:
  type: RetentionPolicy
  may_include:
    - retention_period
    - retain_until
    - review_date
    - disposal_authority
    - legal_hold

entity ArchiveDeletion:
  type: ArchiveEvent
  may_include: [object, authority, reason, policy, verification]

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

# ---------- DISCOVERY / INDEX ----------
entity ArchiveDiscoveryMetadata:
  type: SearchMetadata
  may_include:
    - searchable_fields
    - collection_hierarchy
    - subjects
    - entities
    - concepts
    - dates
    - identifiers

rule discovery:
  discovery metadata SHOULD preserve relationship
  to authoritative archival object

entity ArchiveIndex:
  type: SearchIndex
  indexes: ArchivalObjects

rule archive_index:
  ArchiveIndex != DigitalArchive

rule stale_index:
  stale ArchiveIndex != stale archival object

# ---------- POLICY / RISK ----------
entity ArchivePreservationPolicy:
  type: PolicyMetadata
  may_include:
    - preservation_scope
    - accepted_formats
    - fixity_schedule
    - replication_requirements
    - migration_policy
    - retention_policy
    - authenticity_requirements

rule policy:
  preservation actions SHOULD be traceable
  to applicable policy where possible

entity ArchiveRisk:
  type: PreservationRisk
  may_include:
    - format_risk
    - storage_risk
    - dependency_risk
    - integrity_risk
    - rights_risk
    - access_risk
    - risk_level
    - assessment_time

rule risk:
  ArchiveRisk SHOULD preserve assessment method and time

# ---------- VALIDATION ----------
validation:
  require:
    - identifiable_digital_archive_or_archival_object

  validate_if_present:
    - archive_identifier
    - collection_identifier
    - object_identifier
    - information_package
    - format
    - fixity
    - archive_events
    - provenance
    - authenticity
    - rights
    - storage
    - retention
    - access_policy

  reject:
    - archive_location_presented_as archive_identity
    - collection_presented_as archive_identity
    - filename_presented_as persistent_object_identity
    - file_extension_presented_as definitive_format
    - checksum_without_algorithm
    - fixity_presented_as complete_authenticity_proof
    - SIP_presented_as AIP_without transformation_or_ingest_context
    - AIP_presented_as DIP_without dissemination_context
    - access_copy_presented_as preservation_master_without evidence
    - archive_index_presented_as authoritative_archive

# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE:
  "digital archive" ~= "repository preserving digital archival resources"
  "archival collection" ~= "collection of related archival objects"
  "archival information package" ~= "AIP"
  "submission information package" ~= "SIP"
  "dissemination information package" ~= "DIP"
  "archive fixity" ~= "integrity metadata for archival object"

  PRESERVE distinctions:
    digital_archive != archival_collection
    archive != archive_index
    intellectual_entity != representation
    representation != file
    file != bitstream
    SIP != AIP
    AIP != DIP
    package_identity != intellectual_entity_identity
    fixity != authenticity
    storage_location != object_identity
    access_copy != preservation_master
    preservation_permission != access_permission

# ---------- CONFIDENCE ----------
CONFIDENCE:
  explicit_archive_metadata:
    score: 1.00
  persistent_archive_identifier:
    score: 1.00
  persistent_object_identifier:
    score: 1.00
  verified_fixity:
    score: 0.99
  validated_AIP:
    score: 0.99
  complete_archive_provenance:
    score: 0.99
  validated_format:
    score: 0.99
  inferred_collection_membership:
    score: <= 0.85
  extension_only_format:
    score: <= 0.70
  incomplete_archive_provenance:
    score: <= 0.60
    action: preserve uncertainty

# ---------- UPDATE MODEL ----------
UPDATE_MODEL:
  on_archive_ingest:
    - receive SIP
    - validate submission
    - assign persistent identifiers
    - identify formats
    - calculate fixity
    - create AIP
    - assign storage
    - record ArchiveIngest
    - initialise provenance

  on_fixity_check:
    - retrieve expected fixity
    - calculate observed fixity
    - compare values
    - record ArchiveFixityCheck
    - trigger investigation on mismatch

  on_migration:
    - preserve source AIP or object
    - create migrated representation
    - validate target
    - calculate new fixity
    - record ArchiveMigration
    - update AIP and provenance

  on_replication:
    - create ArchiveStorageCopy
    - assign destination storage
    - verify fixity
    - record ArchiveReplication
    - update storage state

  on_access_request:
    - evaluate ArchiveAccessPolicy
    - create or select ArchiveAccessCopy
    - create DIP where applicable
    - preserve source relationship

# ---------- FLOW HASH ----------
FLOW_HASH:
  inputs:
    - ontology
    - archive_entities
    - relationships
    - package_rules
    - fixity_rules
    - event_rules
    - provenance_rules
    - rights_rules
    - storage_rules
    - validation
    - semantic_equivalence
    - confidence
    - update_model

  canonicalisation:
    - preserve_archive_and_object_identifiers
    - preserve_collection_hierarchy
    - preserve_package_types
    - preserve_fixity_algorithm_and_digest
    - preserve_event_order
    - preserve_custody_history
    - preserve_rule_order

  output:
    deterministic_semantic_hash

# ---------- AI CONSUMPTION ----------
AI_CONSUMPTION:
  interpret_as:
    - digital preservation metadata ontology
    - digital archive and collection model
    - archival information-package structure
    - preservation, storage, access, and provenance lifecycle

  operations:
    - identify DigitalArchive
    - traverse archival collections
    - resolve archival objects
    - distinguish intellectual entities, representations, files, and bitstreams
    - resolve SIP, AIP, and DIP packages
    - validate formats and fixity
    - traverse archival events
    - trace migration, replication, recovery, and disposal
    - evaluate provenance and authenticity
    - inspect rights and access policies
    - inspect storage copies and retention
    - query archive discovery metadata
    - evaluate preservation risk
    - preserve uncertainty

  constraints:
    - do_not_equate_archive_with collection
    - do_not_equate_archive_with search_index
    - do_not_equate_filename_with persistent_identity
    - do_not_equate_file_extension_with verified_format
    - do_not_equate_fixity_with complete_authenticity
    - do_not_equate_SIP_with AIP_or_DIP
    - do_not_equate_access_copy_with preservation_master
    - preserve_identifiers_packages_fixity_events_rights_storage_and_provenance

# ---------- QUERY MODEL ----------
query:
  input:
    - archive_identifier
    - collection_identifier
    - object_identifier
    - package_identifier
    - package_type
    - format
    - fixity
    - event_type
    - storage_identifier
    - access_state

  resolve:
    1. identify DigitalArchive
    2. resolve ArchivalCollection and ArchivalObject
    3. resolve object hierarchy
    4. inspect SIP, AIP, or DIP relationships
    5. inspect format and fixity
    6. traverse ArchiveEvents
    7. inspect provenance and authenticity
    8. inspect rights, access, storage, and retention
    9. evaluate risk and preservation policy
    10. return confidence

  output:
    - digital_archive
    - archive_identifier
    - collection
    - archival_object
    - object_hierarchy
    - information_packages
    - formats
    - fixity
    - events
    - provenance
    - authenticity
    - rights
    - access
    - storage
    - retention
    - risk
    - confidence

# ---------- INFERENCE ----------
inference:
  IF valid SIP is successfully ingested
  THEN create AIP candidate
  WITH ingest provenance

  IF AIP is transformed for authorised access
  THEN create DIP candidate
  while preserving source AIP relationship

  IF fixity check matches expected digest
  THEN infer byte-level integrity match
  within algorithm scope

  IF archive index is stale
  THEN preserve archival object state independently
  AND expose discovery-index freshness uncertainty

  IF archival provenance is incomplete
  THEN preserve authenticity uncertainty
  AND do_not infer complete authenticity

# ---------- OUTPUT CONTRACT ----------
output:
  ontology_entity: DigitalArchive
  archive_identity: machine_interpretable
  collections: hierarchical_and_traversable
  archival_objects: persistently_identified
  object_levels: distinguishable
  SIP_AIP_DIP: explicit
  formats_and_fixity: validated
  archive_events: traversable
  provenance_and_authenticity: evidence_based
  rights_and_access: distinguishable
  storage_copies: traceable
  retention_and_disposal: policy_aware
  discovery_index: source_linked
  preservation_risk: reportable
  uncertainty: explicit
  long_term_retrieval: enabled

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