Skip to main content

Audio Metadata Ontology

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

Ontology: Audio Metadata Ontology
Domain: Metadata Ontologies > Document Metadata
Canonical URL: https://kirethresearch.org/booksai-core/ontologies/metadata-ontologies/document-metadata/audio-metadata-ontology.html

Authors: Mark Anthony Higgins — Sky (Recursive AI)

flow "AudioMetadataOntology" v1.0

# ---------- DOMAIN ----------
domain:
  class: MetadataOntology
  category: DocumentMetadata
  subject: AudioMetadata
  purpose:
    - represent metadata describing audio resources and audio representations
    - preserve audio identity, duration, format, encoding, channels, sampling, content, rights, integrity, and provenance
    - support audio discovery, validation, accessibility, retrieval, transformation, and reuse
    - distinguish intellectual or recorded audio content from technical file representations
    - enable machine-readable reasoning over audio lifecycles

# ---------- CORE ENTITY ----------
entity AudioMetadata:
  type: DocumentMetadata
  describes: AudioResource
  may_include:
    - audio_identifier
    - title
    - description
    - creator
    - performer
    - speaker
    - recording_date
    - creation_date
    - modification_date
    - duration
    - audio_format
    - media_type
    - codec
    - sample_rate
    - bit_depth
    - bitrate
    - channel_count
    - channel_layout
    - compression
    - language
    - transcript
    - chapters
    - embedded_metadata
    - rights
    - licence
    - checksum
    - version
    - provenance

entity AudioResource:
  type: MediaResource
  may_be:
    - SpeechRecording
    - MusicRecording
    - Podcast
    - Audiobook
    - Interview
    - Lecture
    - SoundEffect
    - FieldRecording
    - ScientificAudio
    - GeneratedAudio

entity AudioIdentifier:
  type: Identifier
  identifies: AudioResource

# ---------- RELATIONSHIPS ----------
relationships:
  AudioMetadata -> DESCRIBES -> AudioResource
  AudioResource -> IDENTIFIED_BY -> AudioIdentifier
  AudioResource -> HAS_REPRESENTATION -> AudioRepresentation
  AudioRepresentation -> HAS_FORMAT -> AudioFormat
  AudioRepresentation -> MAY_USE_CODEC -> AudioCodec
  AudioRepresentation -> HAS_DURATION -> AudioDuration
  AudioRepresentation -> MAY_HAVE_SAMPLE_RATE -> SampleRate
  AudioRepresentation -> MAY_HAVE_BIT_DEPTH -> AudioBitDepth
  AudioRepresentation -> MAY_HAVE_BITRATE -> Bitrate
  AudioRepresentation -> MAY_HAVE_CHANNEL_LAYOUT -> ChannelLayout
  AudioResource -> MAY_HAVE_CREATOR -> Agent
  AudioResource -> MAY_HAVE_PERFORMER -> Agent
  AudioResource -> MAY_HAVE_SPEAKER -> Agent
  AudioResource -> MAY_HAVE_TRANSCRIPT -> Transcript
  AudioResource -> MAY_HAVE_VERSION -> AudioVersion
  AudioMetadata -> MAY_REFERENCE -> AudioProvenance

# ---------- AUDIO IDENTITY ----------
rule audio_identity:
  AudioResource SHOULD have stable AudioIdentifier
  where persistent reference or provenance is required

rule filename_not_identity:
  filename MUST NOT be assumed globally unique audio identity

rule representation_identity:
  AudioResource != AudioRepresentation

rule representation_derivation:
  transcoded or recompressed audio MAY preserve same underlying AudioResource
  while creating distinct AudioRepresentation

# ---------- DURATION ----------
entity AudioDuration:
  type: TemporalMetadata
  may_include:
    - duration_value
    - unit

rule duration:
  AudioDuration MUST be non_negative

rule duration_precision:
  duration SHOULD preserve measurement precision
  where frame- or sample-level timing matters

# ---------- FORMAT ----------
entity AudioFormat:
  type: RepresentationMetadata
  examples:
    - WAV
    - MP3
    - FLAC
    - AAC
    - OGG
    - Opus
    - AIFF
    - ALAC
    - M4A

rule format:
  AudioFormat != AudioCodec
  unless container and codec semantics explicitly coincide

rule extension:
  filename extension MUST NOT be treated as definitive AudioFormat identity

rule media_type:
  MediaType SHOULD preserve applicable audio MIME semantics

# ---------- CODEC ----------
entity AudioCodec:
  type: EncodingMetadata
  examples:
    - PCM
    - MP3
    - AAC
    - FLAC
    - Opus
    - Vorbis
    - ALAC

rule codec:
  AudioCodec describes encoding of audio signal

rule codec_container_distinction:
  codec != container_format

# ---------- SAMPLE RATE ----------
entity SampleRate:
  type: MeasurementMetadata
  unit: hertz

rule sample_rate:
  SampleRate MUST be positive
  for sampled digital audio

rule sample_rate_semantics:
  higher sample rate != guaranteed higher perceptual quality

# ---------- BIT DEPTH ----------
entity AudioBitDepth:
  type: RepresentationMetadata
  may_include:
    - bits_per_sample
    - encoding_context

rule bit_depth:
  bit depth SHOULD preserve sample encoding context

rule bit_depth_quality:
  higher bit depth != guaranteed higher source fidelity

# ---------- BITRATE ----------
entity Bitrate:
  type: MeasurementMetadata
  may_include:
    - value
    - unit
    - mode

bitrate_modes:
  - constant
  - variable
  - average

rule bitrate:
  bitrate SHOULD preserve mode
  where interpretation depends on encoding strategy

# ---------- CHANNELS ----------
entity ChannelLayout:
  type: RepresentationMetadata
  may_include:
    - channel_count
    - channel_roles
    - spatial_layout

channel_examples:
  - mono
  - stereo
  - surround_5_1
  - surround_7_1
  - ambisonic

rule channel_count:
  channel_count MUST be positive

rule layout:
  same channel count MAY have different channel layouts

# ---------- COMPRESSION ----------
entity AudioCompression:
  type: RepresentationMetadata
  may_be:
    - lossless
    - lossy
    - uncompressed

rule compression:
  compression semantics SHOULD be explicit

rule lossy:
  lossy transcoding MAY irreversibly alter audio signal

# ---------- RECORDING METADATA ----------
entity RecordingMetadata:
  type: TechnicalMetadata
  may_include:
    - recording_device
    - microphone
    - recording_location
    - recording_date
    - recording_engineer
    - environment
    - gain
    - sample_rate
    - bit_depth

rule recording:
  recording metadata SHOULD remain distinguishable
  from later editing and encoding metadata

rule recording_date:
  recording_date != file_creation_date

# ---------- LANGUAGE / SPEECH ----------
rule language:
  speech audio SHOULD preserve spoken language
  where interpretation or retrieval depends on it

entity SpeakerMetadata:
  type: AgentMetadata
  may_include:
    - speaker_identifier
    - speaker_label
    - role
    - time_segments

rule speaker:
  speaker labels SHOULD preserve confidence
  when generated by automated diarisation

# ---------- TRANSCRIPT ----------
entity Transcript:
  type: DocumentResource
  may_include:
    - transcript_identifier
    - text
    - language
    - timestamps
    - speaker_labels
    - generation_method
    - confidence

rule transcript:
  Transcript != AudioResource

rule automated_transcript:
  automatically generated transcript MUST remain distinguishable
  from human-verified transcript

rule timestamp_alignment:
  transcript segments MAY align to AudioResource time intervals

# ---------- CHAPTERS / SEGMENTS ----------
entity AudioSegment:
  type: MediaFragment
  may_include:
    - segment_identifier
    - start_time
    - end_time
    - title
    - speaker
    - topic

rule segment_time:
  REQUIRE start_time <= end_time

rule segment_bounds:
  segment end_time SHOULD NOT exceed AudioDuration
  where duration is known

# ---------- EMBEDDED METADATA ----------
embedded_metadata_types:
  - ID3
  - VorbisComment
  - RIFF_INFO
  - BWF
  - XMP

rule embedded_metadata:
  embedded metadata SHOULD preserve source namespace and field semantics

rule metadata_conflict:
  conflicting embedded and external metadata
  SHOULD remain traceable
  rather_than silently overwritten

# ---------- GENERATED AUDIO ----------
entity GeneratedAudio:
  subtype_of: AudioResource
  generated_by: AIModelOrSynthesisProcess

rule generated_audio:
  generated audio SHOULD preserve generating process
  where provenance is required

rule generated_recorded_distinction:
  generated audio != captured recording
  unless composite provenance explicitly includes recorded source

# ---------- EDITING / TRANSFORMATION ----------
entity AudioTransformation:
  type: ProcessingActivity
  may_include:
    - trim
    - splice
    - mix
    - normalise
    - denoise
    - resample
    - transcode
    - compress
    - pitch_shift
    - time_stretch

rule transformation:
  transformed AudioRepresentation SHOULD preserve:
    - source_audio
    - operation
    - parameters
    - software_or_agent
    - timestamp
    - output_representation

# ---------- RIGHTS ----------
entity AudioRights:
  type: RightsMetadata
  may_include:
    - creator
    - performer_rights
    - copyright_holder
    - licence
    - usage_rights
    - attribution_requirement
    - restrictions

rule rights:
  AudioRights SHOULD remain distinct
  from technical metadata and access state

# ---------- INTEGRITY ----------
entity AudioChecksum:
  type: IntegrityMetadata
  may_include:
    - algorithm
    - digest

rule checksum:
  checksum applies to specific AudioRepresentation byte sequence

rule acoustic_fingerprint:
  acoustic fingerprint != cryptographic integrity hash

# ---------- VERSION ----------
entity AudioVersion:
  type: VersionMetadata
  may_include:
    - version_identifier
    - predecessor
    - successor
    - creation_time
    - change_description

rule version:
  material content or semantic change MAY create distinguishable AudioVersion

rule representation_change:
  pure transcoding MAY create new AudioRepresentation
  without creating new semantic AudioVersion

# ---------- PROVENANCE ----------
entity AudioProvenance:
  type: ProvenanceMetadata
  may_include:
    - creator
    - performers
    - speakers
    - recording_device
    - source_audio
    - generation_process
    - editing_history
    - transcoding_history
    - software
    - timestamps

rule provenance:
  AudioMetadata SHOULD preserve origin and transformation history
  at granularity available

# ---------- VALIDATION ----------
validation:
  require:
    - identifiable_audio_resource

  validate_if_present:
    - audio_identifier
    - duration
    - format
    - codec
    - sample_rate
    - bit_depth
    - bitrate
    - channels
    - recording_metadata
    - language
    - transcript
    - segments
    - rights
    - checksum
    - provenance

  reject:
    - negative_audio_duration
    - invalid_sample_rate
    - invalid_channel_count
    - contradictory_format_codec_metadata
    - segment_outside_audio_bounds
    - automated_transcript_presented_as human_verified_without evidence
    - acoustic_fingerprint_presented_as cryptographic_integrity_proof
    - generated_audio_presented_as captured_recording_without provenance

# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE:
  "audio metadata" ~= "metadata about audio"
  "audio duration" ~= "recording duration" WHEN recording semantics apply
  "audio format" ~= "audio file format"
  "sample rate" ~= "sampling frequency"
  "audio channels" ~= "channel layout" WHEN layout semantics are included
  "audio provenance" ~= "audio origin and editing history"

  PRESERVE distinctions:
    audio_resource != audio_representation
    format != codec
    codec != bitrate
    sample_rate != bit_depth
    channel_count != channel_layout
    recording_date != file_creation_date
    transcript != audio
    automated_transcript != human_verified_transcript
    acoustic_fingerprint != cryptographic_hash
    transcoding != semantic_audio_change
    generated_audio != captured_recording

# ---------- CONFIDENCE ----------
CONFIDENCE:
  explicit_audio_metadata:
    score: 1.00

  parser_validated_audio_format:
    score: 0.99

  explicit_embedded_metadata:
    score: 0.98

  cryptographic_checksum_match:
    score: 0.99

  human_verified_transcript:
    score: 0.99

  automated_transcript:
    score: dependent_on_transcription_confidence

  automated_speaker_label:
    score: <= 0.90

  extension_inferred_format:
    score: <= 0.70

  ambiguous_audio_metadata:
    score: <= 0.60
    action: preserve uncertainty

# ---------- UPDATE MODEL ----------
UPDATE_MODEL:
  on_audio_creation:
    - assign AudioIdentifier
    - record representation metadata
    - record creator or recording metadata
    - calculate integrity metadata where required
    - initialise provenance

  on_audio_transformation:
    - preserve source AudioResource
    - create transformed representation or version
    - record operation and parameters
    - recalculate checksum
    - update provenance

  on_transcript_creation:
    - preserve AudioResource identity
    - create Transcript
    - record generation method
    - preserve timestamps and confidence
    - update provenance

  on_format_conversion:
    - preserve AudioResource identity where semantics are unchanged
    - create new AudioRepresentation
    - record source and target formats/codecs
    - preserve transcoding provenance

# ---------- FLOW HASH ----------
FLOW_HASH:
  inputs:
    - ontology
    - audio_entities
    - relationships
    - identity_rules
    - representation_rules
    - recording_rules
    - transcript_rules
    - integrity_rules
    - provenance_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:
    - document metadata ontology
    - audio resource and representation model
    - speech transcript and segment structure
    - audio provenance and integrity model

  operations:
    - identify audio resources
    - resolve audio representations
    - inspect duration and format
    - resolve codecs
    - inspect sample rate, bit depth, and bitrate
    - interpret channel layouts
    - inspect recording metadata
    - resolve spoken language and speakers
    - inspect transcripts and segments
    - distinguish generated and recorded audio
    - trace transformations
    - verify integrity
    - preserve provenance

  constraints:
    - do_not_equate_filename_with_identity
    - do_not_equate_format_with_codec
    - do_not_equate_sample_rate_with quality
    - do_not_present_automated_transcript_as human_verified
    - do_not_equate_acoustic_fingerprint_with cryptographic_integrity
    - preserve_source_representation_transformations_rights_and_provenance

# ---------- QUERY MODEL ----------
query:
  input:
    - audio_identifier
    - audio_type
    - creator
    - speaker
    - format
    - codec
    - duration
    - language
    - transcript
    - version
    - checksum

  resolve:
    1. identify AudioResource
    2. resolve AudioIdentifier
    3. inspect AudioRepresentations
    4. inspect duration, format, and codec
    5. inspect sample rate, bit depth, bitrate, and channels
    6. inspect recording metadata
    7. resolve language, speakers, transcript, and segments
    8. traverse versions and transformations
    9. inspect rights, integrity, and provenance
    10. return confidence

  output:
    - audio_resource
    - identifier
    - representations
    - duration
    - format
    - codec
    - sample_rate
    - bit_depth
    - bitrate
    - channels
    - recording_metadata
    - transcript
    - integrity
    - provenance
    - confidence

# ---------- INFERENCE ----------
inference:
  IF parser validates audio representation
  THEN identify AudioFormat
  WITH confidence = 0.99

  IF authoritative AudioIdentifier resolves uniquely
  THEN identify AudioResource
  WITH confidence = 1.00

  IF transformed representation references source audio
  THEN infer derivation relationship

  IF transcript has automated generation method
  THEN classify transcript as machine_generated
  AND preserve confidence

  IF metadata remains ambiguous
  THEN preserve candidate interpretations
  AND reduce confidence

# ---------- OUTPUT CONTRACT ----------
output:
  ontology_entity: AudioMetadata
  audio_identity: machine_interpretable
  representations: format_and_codec_aware
  duration: explicit
  sampling_metadata: preserved
  channels: explicit
  recording_metadata: traceable
  transcripts_and_segments: time_alignable
  generated_recorded_distinction: preserved
  integrity: verifiable
  transformations: traceable
  provenance: preserved
  uncertainty: explicit
  semantic_retrieval: enabled

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