specs + Doorpost: the roots are counted, not estimated — 1,378, not "~500"

Architecture §3.1 said the Shoresh Engine "encodes the ~500 Biblical
Hebrew triliteral roots", its file tree called Lexicon.hs "the ~500
roots with entries", and terumah §E2 listed a "~500 roots" lexicon as
material still to be consolidated (~1-2 weeks).

Since tablet 34 the roots are read, and can be counted. L1 carries
1,378: 1,243 roots under which Brown-Driver-Briggs files a lemma, and
135 words that stand alone under no root. 1,263 are triliteral, 32 have
two letters, 83 have four or more. And the engine does not hold a list
of them — it reads them from L1 (Shoresh.Lexicon, Shoresh.Roots).

- specs/shorashim_architecture.md §3.1: the Purpose sentence says where
  the roots come from and how many there are; the Lexicon.hs line in
  the file tree likewise.
- specs/shorashim_terumah.md §E2: the root lexicon is in hand (✅) —
  the OSHB Hebrew Lexicon is exactly the BDB + Strong's consolidation
  the row was waiting for; moved from "need to acquire" to "in hand".
- Doorpost @expected_hash 2f40c382… → 094b8164…, in this commit, with
  the witnessed file that moved it (architecture).

Read before committing: Elixir 461/0 on 11 of 12 runs (seed 0 ×6 and
six other seeds). One run of seed 0 reported a single failure that was
not captured and did not recur in eleven further runs; unidentified,
recorded in the build log. Pipeline image reports
specification_identity verified 094b8164… and l1_hash pass.

Left as written, and no longer true of the build: §3.1's data
structures still type a root as exactly three consonants, and its file
tree still lists data/roots.json and data/torah_refs.json, which do
not exist — the roots live in L1.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Scott KarpandClaude Fable 5.1 committed 2026-10-04 18:10:21 +00:00
1 parent efd35bb194
commit 3eec60dbdb
3 files changed
+5 -5

No files matched your search

+2 -2
View File
@@ -108,7 +108,7 @@ Swiss or Icelandic provider, outside US legal jurisdiction. Candidates previousl
**Directory:** `shorashim/shoresh-engine/`
**Purpose:** Core symbolic processing unit. Encodes the ~500 Biblical Hebrew triliteral roots and seven binyanim as a typed functional system.
**Purpose:** Core symbolic processing unit. Encodes the Biblical Hebrew roots attested in Torah and the seven binyanim as a typed functional system. The roots are not a fixed list held by the engine: they are read from L1, where each word's `shoresh` is the root under which Brown-Driver-Briggs files that word's lemma. L1 carries 1,378 of them — 1,243 roots and 135 words that stand alone under no root; 1,263 are triliteral, 32 have two letters and 83 have four or more.
**Data Structures:**
@@ -315,7 +315,7 @@ shoresh-engine/
├── src/
│ ├── Shoresh/
│ │ ├── Types.hs -- All data types above
│ │ ├── Lexicon.hs -- The ~500 roots with entries
│ │ ├── Lexicon.hs -- The root lexicon, read from L1 (1,378 roots)
│ │ ├── Binyanim.hs -- Transformation operators
│ │ ├── Havdalah.hs -- Separation/distinction engine
│ │ ├── Kriah.hs -- Naming/identification
+2 -2
View File
@@ -129,7 +129,7 @@ Source: Westminster Leningrad Codex (WLC) 4.22, cross-validated per Construction
| Item | Status | Notes |
|------|--------|-------|
| Complete Biblical Hebrew root lexicon (~500 roots) | ⚠️ | BDB (public domain) + Strong's (free). Need consolidation into unified JSON. ~1-2 weeks. |
| Complete Biblical Hebrew root lexicon | ✅ | BDB (public domain) + Strong's (free), already consolidated: the OSHB Hebrew Lexicon (`openscriptures/HebrewLexicon`, `LexicalIndex.xml` + `AugIndex.xml`) files every Strong's lemma under its BDB root. `scripts/build_l1.py` reads each word's `shoresh` from it. Torah attests 1,378 roots (1,243 BDB roots, 135 words standing alone); the earlier estimate here was ~500. |
| Root-to-verse index | ⚠️ | Derivable from Strong's numbers + verse mappings. Needs processing. |
| Root connectivity graph (shared consonants) | ❌ | Algorithmic. ~1 day. |
| Binyan glosses per root | ⚠️ | Partially available from BDB/Strong's. Mark attested vs. theoretical forms. |
@@ -241,6 +241,7 @@ Updated to reflect corrected architecture.
- Torah text (WLC 4.22) with cantillation marks, ketiv/qere, vowels
- Talmud and commentary texts (Sefaria)
- List of 613 mitzvot with source verses
- Root lexicon (BDB roots by Strong's lemma — OSHB Hebrew Lexicon)
- Model inference tooling (llama.cpp)
- The specification itself (Torah)
@@ -249,7 +250,6 @@ Updated to reflect corrected architecture.
- Mistral GGUF weights — **free, ~30GB download**
- API keys (Anthropic, Mistral) — **~$50-130/month combined**
- One-time GPU rental — **~$50-100**
- Root lexicon consolidation — **time, ~1-2 weeks**
- Consultants (Hebrew linguist, Torah scholar) — **available through community**
- hebrew-tokenizer compatibility testing — **time only**
+1 -1
View File
@@ -175,7 +175,7 @@ defmodule VavPipeline.Doorpost do
# changes; the update is a deliberate operator commit. A bare
# hash-update commit (without a corresponding spec change in the
# same commit) is itself a drift signal.
@expected_hash "2f40c38209dc845cf18fa06326fb7346a2d43d7b6edd84e3efa6f42bcdd3a218"
@expected_hash "094b8164dc1e5b280dc797d0e4c351ed67898a2046133e5f00a1972ffbde5661"
@doc "Return the list of files that constitute the category-grade specification."
@spec files() :: [String.t()]