---
title: "whale-world — Mova code model"
description: "Mova code model of models/whale-world.groupant: components with their labels, obernants and the model text."
url: "https://groupants.elamur.ai/free/en/mova/models/whale-world.groupant/"
---
Elamur: [Mova](https://md.mova.elamur.ai/free/en/) · [Dictionary](https://md.dictionary.elamur.ai/free/en/) · [Research](https://md.research.elamur.ai/free/en/) · **Groupants**

This page as HTML: <https://groupants.elamur.ai/free/en/mova/models/whale-world.groupant/>

# whale-world

The groupant beside models/whale-world.groupant in the Mova repository: what the code computes, what it never does, how to go back from its outputs, its invariants, cost and checks.

## Facts

- **kind:** groupant_group
- **status:** partial source bound model
- **bound sources:** 8
- **repository folder:** [`models/whale-world.groupant`](https://github.com/ElamurAI/mova-free/tree/main/models/whale-world.groupant)
- **repository commit:** `9057160b1fff`

> **Implementation material.** A Mova code model describes this code at one source revision: partial models, finite checks and their stated scope. It is not a reviewed general exposition, and its labels are shown as written, never raised.

## Components

| component | label | where |
|---|---|---|
| **approximant** | partial source derived | [Forward](#forward) |
| **ast** | not materialized |  |
| **composition** | partial source derived | [Composition](#composition) |
| **cost** | partial source derived | [Cost](#cost) |
| **descriptant** | partial source derived | [Descriptant](#descriptant) |
| **invariant** | partial source derived | [Invariant](#invariant) |
| **tests** | finite evidence | [tests](#tests) |

## Obernants

The typed relations around the forward model: the behaviour complement (what the code never does), the reverse reconstruction (every input compatible with an output) and specialised views.

| id | type | label | where |
|---|---|---|---|
| `behavior_complement` | behavior_complement | partial source derived finite checks | [behavior_complement](#behavior-complement) |
| `reverse_reconstruction` | reverse_reconstruction | partial source derived finite checks | [reverse_reconstruction](#reverse-reconstruction) |

## Model text


### Descriptant

Document dossiers and one global world for Whale epochs: per document an append-only set of texts (original, Mova drafts, consultant descriptions, earlier descriptions, web pages) with licence, provenance, inputs and citation counts; one incremental store that reads every text once with Mova into entities, statements, a word → sentence → document index and document edges; queries that give a writer a document's nearest neighbourhood with all its content, explanations and context packs with citations. Crate `tools/whale-world` (`mova-whale-world`), a standalone workspace over `mova-topic-corpus` (library, graph, licence, annotate, explain_score, acronym, statement kinds, corpora) and `mova-whale` (knowledge norm_term/expansion, private_dir).

### Forward

library / site roots / topic corpora / learner states -> import -> dossier rows (append-only) ; epoch driver -> dossier add ; dossiers (epoch < E) + cached corpus neighbours -> world add (parse once, shards, buckets, doc entities, edges) -> world(E) -> queries (entity, explain, related, neighbourhood [+content], sentences, context).

### Invariant

Dossier rows and files are never rewritten; changed files are refused everywhere; only library originals under open licences, not local-only, and only with public_originals, can be public_ok; web pages, consultant and Mova drafts and earlier descriptions never. The world keeps all content; world(e) shows only texts of earlier epochs; the same inputs give byte-identical dossiers and stores (checked twice live on 2026-11-05).

### Cost

Import 11.3 s for six papers (library load included). World build 25–32 s for 93 texts / 19,260 sentences (parsing dominates; cached neighbour parses are reused). Queries 10 ms – 1.1 s cold. 6.8 MB on disk.

### Composition

Leaves are file groupants under `tools/whale-world/src/**/*.rs.groupant`. Correct leaves do not prove the wiring: the interaction checks are the end-to-end tests (`tests.rs`: dossier -> world -> query, epochs, refusals) and the live six-paper build. The parent is `crab-orchestration`, beside `whale-workers` and `topic-corpus`; an epoch driver in `tools/whale` codes against the documented library API.

### behavior_complement

Domain: all configured runs. The crate does not: fetch pages, ask a terminal or a consultant, write descriptions, publish anything, delete or edit dossier texts, repair an interrupted world build, parse uncached corpus neighbours, or judge statements beyond lexical kinds. Counterexample: a CC0 web page and a CC BY-SA original stay public_ok false (tests).

### reverse_reconstruction

From a dossier row the exact text is recovered (hash-checked) with its source, licence and inputs; from a world citation {doc, text, s} the sentence is recovered from its shard and the text row names the dossier text. Parses are not mapped back to character offsets. Evidence status: source-derived with finite checks.

### tests

#### Checks

cargo test --manifest-path tools/whale-world/Cargo.toml --offline with WORLD_EN_MODEL=$MOVA_DATA/download/0/0.4/en.bin (9 unit tests, 2026-11-05). Negative controls 2026-11-05 (each red, then restored): public_ok without the original-kind condition; Dossier::read without the hash check; context statements citing a wrong sentence. Live: six papers imported and built twice into separate roots, byte-identical.
