Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions .claude/board/EPIPHANIES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,27 @@
## 2026-07-26 — E-CODEBOOK-LICENSE-REGIMES-ONE-ASSET-EACH-1 — the derived codebooks do NOT share one publication path: **UD-derived and WordNet-derived assets can ship as PUBLIC lance-graph Releases; PROIEL-derived and COCA-derived assets must stay PRIVATE (MedCare-rs)** — because a derived database inherits its source's licence, and PROIEL's NonCommercial clause is the blocker. Never bundle regimes into one asset.

**Status:** RULING (governance). **Confidence:** High — every licence below was fetched and read, not assumed.

**Verified licences** (probed 2026-07-26):

| source | licence | NC? | copyleft | derived asset may be… |
|---|---|---|---|---|
| UD German-GSD | CC BY-SA 4.0 | no | SA | **PUBLIC** Release (attribute + SA) |
| UD German-HDT | CC BY-SA 4.0 (annotation) | no | SA | **PUBLIC** Release (attribute + SA) |
| theographic-bible-metadata | CC BY-SA 4.0 | no | SA | **PUBLIC** Release (attribute + SA) |
| **WordNet** (Princeton + OEWN) | WordNet License + **CC BY 4.0** | no | **none** | **PUBLIC**, attribution only — the most permissive asset we hold |
| **PROIEL** treebank | **CC BY-NC-SA 3.0** | **YES** | SA | **PRIVATE** only (MedCare-rs) |
| COCA (wordfrequency.info) | commercial/restricted | — | — | **PRIVATE** only (already ruled) |
| NTN (SemanticBible) | UNVERIFIED | ? | ? | LOCAL only until checked |

**The reasoning that decides it.** A derived database is a derivative work, so the codebook inherits the source licence. Three consequences: (1) the German codebook is a CC BY-SA 4.0 derivative of UD GSD+HDT — BY-SA *permits* redistribution including commercial use, so a PUBLIC lance-graph Release is fine provided the asset attributes UD and carries BY-SA; (2) any Greek codebook mined from PROIEL inherits **NonCommercial**, which a public Release of a commercially-usable project cannot carry — private repo, same shelf as COCA; (3) WordNet carries neither NC nor SA, so it imposes **no copyleft on anything it is combined with** — the safest thing to depend on.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Preserve HDT's NonCommercial restriction in the German asset

When the advertised generator processes both GSD and HDT, this conclusion drops a source restriction: crates/lance-graph-planner/examples/data/de/build_de_codebook.py:247 labels its resulting lexicon CC BY-SA / CC BY-NC-SA, while this ruling classifies the combined codebook as commercial-OK BY-SA. Publishing the output with only the proposed BY-SA license would therefore misstate the rights for every HDT-derived token and count; either exclude HDT or retain terms compatible with its NC input.

Useful? React with 👍 / 👎.


**THE TRAP, and the rule: one Release asset per licence regime — never bundle.** Shipping the German codebook (BY-SA, commercial-OK) in the same archive as a PROIEL-derived Greek codebook (NC) makes the *combined* asset effectively NonCommercial: a permissive artifact silently contaminated by its packaging. Assets must be separated by regime, each with its own attribution and licence file, even when a consumer wants both.

**The data-in-Releases convention turns out to be legally load-bearing, not merely size hygiene.** Code lives in the repo (Apache-2.0); data lives in Release assets under its own licence. That is *mere aggregation* — the SA obligation attaches to the derived DATABASE and never propagates into the Apache-2.0 Rust/Python that reads it. Had the codebooks been committed into the tree, a BY-SA database would sit inside an Apache-2.0 source tree and the boundary would be far harder to argue. The convention we adopted to keep 26k-line TSVs out of diffs is the same structure that keeps the licences clean.
Comment on lines +19 to +21

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Do not use packaging location as the ShareAlike boundary

When these databases and the reader code remain independent works in a collection, placing them in one archive or repository does not automatically relicense the other works; conversely, moving an adapted combination to a Release does not make it mere aggregation. These two paragraphs make archive/repository topology the legal test, which can give future publishers false assurance that separating a Release prevents license propagation. Determine adaptation versus collection from the relationship between the works, and keep separation as a project policy rather than claiming it establishes the legal boundary.

Useful? React with 👍 / 👎.


**Actions:** (a) German codebook → public lance-graph Release, asset carries `LICENSE-CC-BY-SA-4.0` + a citation of UD German-GSD/HDT; (b) WordNet rails → public Release, attribution to Princeton WordNet + the Open English WordNet team; (c) theographic rails → public Release, BY-SA + attribution; (d) Greek/PROIEL codebook → MedCare-rs private, NC recorded in its MANIFEST; (e) COCA → unchanged, private; (f) NTN → verify SemanticBible's terms before it leaves local disk (it is currently only in the session scratchpad — no action has published it). Every MANIFEST states its regime explicitly so a future session cannot re-bundle by accident. Refs: `E-SCI-1-COCA-GROUNDED-EXTRACTION-1` (the data-in-Releases convention), `E-ROSETTA-IS-A-JOIN-NOT-A-CHOICE-1` (the Latin/OCS additions inherit PROIEL's NC), task board W15/W17/W18.

## 2026-07-26 — E-HYPERNYM-CLIMB-IS-A-CASCADE-TIER-DELTA-1 — WordNet's hypernym hierarchy is EXPLICIT vertical navigation, and it lines up with the substrate's own vertical machinery (HHTL tiers / CLAM-CHAODA cluster tree / the hierarchical-4⁴ codebook). Consequence: the fox→animal specificity loss stops being a judgement call and becomes a MEASURABLE tier delta — and the coarsest tier is the cheapest error detector. Caught a live bug that would have poisoned the Aesop probe.

**Status:** FINDING for the walkability + the caught bug; [H] for the CLAM/codebook alignment (probe specified, NOT run). **Confidence:** High on what was measured; the alignment claim is explicitly unmeasured.
Expand Down
12 changes: 12 additions & 0 deletions .claude/board/PR_ARC_INVENTORY.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,18 @@
> - **Docs** — knowledge files produced (immutable)
> - **Confidence (YYYY-MM-DD):** — the ONLY mutable field

## 2026-07-26 — lance-graph #850 — D-SCI-1 findings arc: the anaphora TYPE boundary, the gateway hinge, the German codebook generator + 6 review fixes

**Merged:** `e7db817` (branch `claude/lance-graph-last-10-pr-z30uij`, commits `2ed46e8`..`5170c45`). Board + data-generator only — no contract or source change, so no test surface moved.

- **Added (generator)** — `crates/lance-graph-planner/examples/data/de/build_de_codebook.py`: the German COCA-shaped codebook from UD German-GSD+HDT. Emits `lexicon` / `article_case` / `article_decidability` / `satzklammer` / `valency` / `tekamolo` / `wechsel` / `reflexive` / `relative_pronoun`. Data stays in Releases (gitignored); the gitignore excludes directory CONTENTS with an explicit negation so the GENERATOR is tracked — git cannot re-include a file under an excluded directory, and an ignore rule naming a dir nobody can regenerate is a dangling reference.
- **Added (findings, all measured)** — `E-ANAPHORA-BEYOND-I4-IS-A-BASIN-EDGE-1` (7,657 German relative clauses: beyond the i4 window there are 7× more intervening finite verbs and 8.4× more competing nouns ⇒ a type boundary, not a size limit); `E-GATEWAY-TEXT-IS-A-PROJECTION-HINGE-1` (vocative 615-vs-3 Greek-vs-German; the four properties of a gateway text; calquing INVERTED from defect to projection asset); `E-TENSE-IS-A-BASIN-REGISTER-NOT-A-POINTER-1` (Plusquamperfekt 91.7 % basin-edge — opposite polarity to entity anaphora); `E-CONSTRUCTION-CHOICE-IS-THE-QUALIA-SIGNAL-1` (808 verbs with ≥4 constructions; qualia = surprisal of the construction given the paradigm); `E-ROSETTA-IS-A-JOIN-NOT-A-CHOICE-1` (wordnet = denominator, witness = numerator; Gospel Rosetta stack verified downloadable — Greek 29.1 MB + Vulgate 23.3 MB + OCS Marianus 13.0 MB); `E-HYPERNYM-CLIMB-IS-A-CASCADE-TIER-DELTA-1` (rails walk as depth hierarchy; `fox → animal` is a 4-step climb).
- **Locked** — **the i4 window is a TYPE boundary**: local (`-8 <= off <= +7`) = nibble pointer = SYNTAX; non-local = basin edge (SPO-G / AriGraph) = DISCOURSE, because past the window the discriminator becomes IDENTITY not POSITION, so a wider pointer cannot help. **Tense morphology is a basin-register OPERATION** (SET/READ R), never a pointer. **Construction choice is the qualia signal**, and its strength is `-log P(construction | paradigm)` — which CORRECTS `E-SCI-1-RIGHT-CORNER-DELAYED-COMMITMENT-1`'s "the passive is never the stored meaning": true of OUR normalization, false if read as discarding the SPEAKER's choice (assertion vs expression layer). **German: any bracket question must be asked of the verb CLUSTER, never a single token** (the finite verb anchors verb-finality). **Case never yields a semantic reading alone** — the ALTERNATION is the evidence (a `(prep, governor)` pair locked to one case is lexically governed).
- **Review** — 6 findings, ALL confirmed real and fixed pre-merge (`8e4631b`, `42978b4`): Codex P1 Satzklammer measured sentence-wide (V2 corrected to 40,882 vs V3+ 851); Codex P1 verb-finality read from the participle, REVERSING periphrastic clauses (relative 75.8 %, subordinate 82.1 % verb-final after fix); Codex P2 case→spatial meaning (11,001/36,934 tokens = 30 % reclassified as governed); CodeRabbit AUX excluded from subordinate detection (German modals are UPOS=AUX); plus the i4 notation ambiguity and MD040. Three of the four were the GERMAN FORM of the same bug this arc diagnosed in English — reading a surface signal as structure without checking what governs it.
- **Deferred** — the CLAM/HHTL ↔ WordNet-hierarchy alignment probe (specified, NOT run: does centroid ancestry track hypernym ancestry, against a flat-256 null?); `voice_paradigm.tsv`; the basin-level R register; Partizip I detection (UD German tags it ADJ, 0 detected); cross-sentence R-anchors (blocked on a non-shuffled corpus). **W5 gap 4 (keep-first polysemy) is now a BLOCKER for W11** — the vertical walk caught `swallow → consumption` (verb sense) and `grape → shot` (grapeshot), which would have poisoned the Aesop probe.
- **Docs** — EPIPHANIES ×6; LATEST_STATE contract inventory; this entry.
- **Confidence (2026-07-26):** working — all findings carry their measurements and their honest limits (Partizip I undetected; the 67.2 % no-anchor figure is a LOWER bound on a sentence-shuffled corpus; Futur II n=69 too sparse for statistics; the CLAM alignment explicitly unmeasured).

## 2026-07-26 — lance-graph #849 (with #844 context) — D-SCI-1 Phases 1+2: right-corner delayed clause commitment + PROIEL witness-gated construction licenses

**Merged:** #849 (`8e66ded` Phase 1 + `0200466` Phase 2 + `cecfc32` review round → merge `615f762`). Preceded on the same branch by #844 (`7b2ae3f` → merge `40b50d7`, 2026-07-24): `ValueTenant::Tekamolo = 13` (the 14th value tenant, `[188,204)` U8×16, Full carve 156→172 B layout-preserving) + `insight_reason_wired` (SPO-G `G` slot: `Utterance` beside `WordNet` rails + all text-derived tenants, slab round-trip proof). Branch `claude/lance-graph-last-10-pr-z30uij`.
Expand Down