Skip to content
Domain model

A book, a unit of work, and a learner's version of it

Source-language analysis is produced once. Only the learner-facing layer is paid for per learner language.

A reader experiences a book as continuous. The system must treat it as bounded units, because processing, retries, publication, and purchase all need something smaller than a novel.

  • A TextCollection is the work — identity, ordering, discovery, collection-level reading progress.
  • A Text is a bounded canonical section: the unit of processing, readiness, and access.
  • An Adaptation projects one text for one target learner language.
  • Phrase, WordOccurrence, PhraseTranslation, and WordGloss stay normalized. No reader’s annotations are baked into stored HTML.
  • The reader projection combines those artifacts with the reader’s knowledge, access, position, and audio — at request time.
Domain model A text collection is composed of ordered text sections. Each section owns normalized phrase and word artifacts, form families, and certified audio timing, all scoped to the source language and produced once. Each section also has per-language adaptations carrying phrase translations and word glosses. Those artifacts combine with per-user form-family progress and adaptation ownership into a request-time reader projection. Text-scoped — produced once, re-used by every language Adaptation-scoped — paid per learner language TextCollection Text canonical section Phrase WordOccurrence FormFamily Certified audio timing Adaptation one target learner language PhraseTranslation WordGloss UserFormFamilyProgress per user, per language AdaptationOwnership Request-time reader projection rendered per reader, per request Independent of any one book
Source-language analysis is produced once. Only the learner-facing layer is per-language.

Segmentation, lemma finding, form-family grouping (clusters of forms that resemble each other closely enough that knowing one carries you to the rest — why that is not just the lemma), and audio are text-scoped — their results belong to the source language. Translation and glossing are adaptation-scoped, depending on the learner’s language.

So a second learner language re-uses segmentation, lemma analysis, form families, and narration, paying only for translation and glosses. A flatter model would re-run — and re-buy — all of it.