Projects BibleWeb Interlinear Hebrew word popup (OT)
Done

Hebrew word popup (OT)

Area: Interlinear Milestone: v2

Context

Problem: Like Greek, the Hebrew Old Testament contains nuances lost in translation — rich word roots, verb stems (binyanim), and semantic depth that English can't fully capture.

Solution: The same interlinear popup as the Greek NT, adapted for Hebrew OT words. Shows Hebrew text, transliteration, Strong's number, and gloss for every word in the verse.

Not included: Hebrew vowel pointing analysis or cantillation marks. Word-level data only.

Functional

Same user flow as the Greek popup, but for Old Testament verses (bookId < 40).

Key differences from Greek:

  • No bsb_gloss field — short gloss computed via heuristic (extractShortGloss(definition, verseText))
  • Fewer meaning alternatives (up to 8, vs 12 for Greek)
  • Transliteration comes from strongs_hebrew table (not the word row)
  • Morphology code (morph_code) stored in DB but not yet displayed in UI
  • No "Translated as" drill-down — KJV usage frequency list is Greek-only

UX & Design

Same layout as Greek popup — word cards, expandable definitions, composed translation bar.

Technical

API: Same endpoint — GET /api/interlinear/{bookId}/{chapter}/{verse} detects OT by bookId < 40.

  • Calls getHebrewWords() + getStrongsHebrewBatch() + buildHebrewWordDisplays()

DB tables: hebrew_words (word_position, strongs_number, morph_code), strongs_hebrew (definition, transliteration, kjv_usage)

Files:

  • Same InterlinearPopup.svelte — handles both Greek and Hebrew
  • apps/web/src/lib/server/queries/greek-words.ts — also contains getHebrewWords()
  • apps/web/src/lib/utils/popup.tsbuildHebrewWordDisplays()

Status

Current: DONE Milestone: v2 Priority: High — completes interlinear coverage for the full Bible

History:

  • Added alongside Greek popup using the same component architecture
  • OSHB (Open Scriptures Hebrew Bible) dataset provides the Hebrew word data

Dependencies:

  • Requires: hebrew_words data (DONE), strongs_hebrew data (DONE), OSHB dataset