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