Skip to content

Earworm v0.2.0 — Akousma Spec v1.1

Choose a tag to compare

@emeisazam emeisazam released this 10 Jul 11:47
· 18 commits to main since this release

The akousma memory layer grows connective tissue: records now link to each other as a network, not just a genealogy.

New in spec v1.1 (additive — 1.0.0 records remain valid)

  • Typed relations (lineage.relations): variant_of, response_to, same_source_as, recurrence_of, series_with, compares_with, replaces, other — curatorial kinship links kept strictly distinct from causal parent_akousma_ids. Rule 6: parents are causal, relations are kinship.
  • summary — a skimmable one-liner per record; the record's answer to audio's missing skim affordance.
  • Provenance that travels: capture_conditions, rights_note, and pipeline_effects (capture, telephony, acousmatization, amplification, phonofixation, phonogeneration, reshaping).
  • audio.media — container, codec, bit depth, codec history.
  • Contract-pinned listening envelope: {contract?, created_at, summary?, payload} per producer entry (e.g. akouo/v0.6), so consumers know which claim discipline shaped each payload.

Store (py-akousma 0.2.0)

  • relation_edges table + related() (both directions) and descendants() walks.
  • Richer queries: tag, free text, since/until, session, content hash; find_by_hash() for dedupe and recurrence.
  • verify() integrity report — dangling parents, dangling relations, missing audio, invalid records — reported, never silently dropped (rule 7: absence is information).
  • reindex() rebuilds all edges from stored records after upgrading a pre-relations store.

SDKs

  • sdk-js 0.2.0: akousmaRelation, addListening, relations shape validation, updated TypeScript typings.
  • New conformance fixture exercising every v1.1 feature: tests/fixtures/oida-harbor-series.akousma.json.