Skip to content

Long-form reading strands over fragments #54

Description

@isomorphisms

Capture the first concrete long-form reading use cases before expanding IB into more paper-specific machinery.

Known-reading fixtures

Useful texts the user actually knows include:

  • Njál's Saga;
  • several Sherlock Holmes stories/novels;
  • Musashi;
  • Christ Stopped at Eboli;
  • several Leonardo Sciascia works, including The Day of the Owl.

PR #53 already adds a small public-domain fixture manifest, including Njál's Saga and Holmes. Copyrighted texts such as Musashi, Levi, and Sciascia should be able to enter through external or user-owned/local representations without requiring a different browser model.

First useful operation: occurrence strands

For a text such as Musashi, start with deterministic literal search over the authoritative source text.

Example:

Matahachi -> f0187 -> f0241 -> f0319 -> ...

For each hit, IB should cheaply retrieve a small contiguous context window, such as the matching fragment plus two or three fragments before and after it. This depends on stable fragment identity and cheap document-order traversal; it should not require a language model.

Keep the authoritative source searchable directly. For Japanese texts, exact-string search can operate on the Japanese source first; aliases, titles, old names, kana/kanji variants, and other entity-resolution machinery can come later.

Derived portrayal strands

A model may characterize how a character is portrayed in each occurrence window. Preserve each characterization as a derived record tied to the exact source fragments and its model/version/provenance.

Conceptually:

source fragments -> occurrence windows -> portrayal observations -> phase summaries -> changes between phases -> whole-work characterization

Do not overwrite one master summary. Retaining intermediate summaries makes longitudinal questions ordinary queries over persistent derived records.

A useful comparison in Musashi would be the parallel development of Musashi and Matahachi: successive passages may portray Musashi as developing through challenges while returns to Matahachi portray worsening avoidance or deterioration. The higher-level interpretation must remain traceable through summaries back to the original fragments.

Plain textual diff is not the fundamental operation for summaries. A semantic/model comparison can characterize what changed between two summaries, with embeddings or structured fields as supporting evidence.

Theme strands

Characters are one instance of a general strand mechanism. Themes should be catalogable over the same underlying fragments, for example:

  • cities / urban life;
  • prostitutes / prostitution;
  • hunger;
  • money;
  • religion;
  • warrior discipline;
  • social status or social climbing.

Keep three layers distinct:

  1. Occurrence — deterministic evidence such as a literal name or phrase.
  2. Classification — a derived claim that a fragment concerns a theme even if the theme is not literally named.
  3. Interpretation — a higher-level account of how that theme is treated or changes through the work.

A theme gets the same ordered treatment as a character: matching fragments or classifications -> local windows -> per-window characterization -> ordered theme strand -> phase summaries -> changes between phases -> whole-work thematic account.

Because characters, places, themes, and episodes all point to the same fragment identities, IB should support queries that interleave strands or compare their association, e.g. whether Matahachi passages cluster with cities, drinking, prostitution, dependency, or other themes.

Models may propose new themes retrospectively. Such proposals must not alter the source text or canonical fragment identities.

Scope guardrail

Do not implement the whole interpretation stack first. The useful minimum is still:

search text -> matching stable fragments -> cheap before/after context

Then layer model/vector-derived records on top while keeping provenance and traceability. This is intended as a concrete reading workload for the fragment/link architecture rather than a new novel-specific subsystem.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions