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