Theological Trajectories — Cross-Testament Word Studies¶
The trajectory module stitches together the full lexical journey of a word
from Hebrew OT to LXX Septuagint to Greek NT, assessing whether the NT adopts
the LXX's vocabulary (high continuity) or diverges to new word choices.
The theological_reports module provides 14 pre-built trajectory studies.
Pipeline stages:
- OT Hebrew stats (word_study)
- OT to LXX alignment (MACULA Hebrew inline Greek)
- LXX corpus distribution (lxx.parquet)
- NT usage (TAGNT parquet)
- Continuity assessment:
high | medium | low | none
14 pre-built terms: bara / berith / ruach / shalom / tsedeq / hesed / yeshua / kavod / ahav / emunah / torah / padah / kaphar / qadosh
Sections:
- Cross-Testament Trajectory (print_trajectory — shalom, berith, ruach)
- Starting from Greek (agape)
- Trajectory Reports
- Theological Reports Module (all 14 terms)
import sys
sys.path.insert(0, '../../../src')
import warnings
warnings.filterwarnings('ignore')
import pandas as pd
pd.set_option('display.max_rows', 60)
pd.set_option('display.max_columns', 20)
pd.set_option('display.width', 120)
print('Ready.')
1. Cross-Testament Trajectory¶
Trace a Hebrew word through its full canonical journey: OT usage statistics, how the LXX translated it, how the LXX word is distributed, and how the NT uses (or avoids) that same Greek word.
shalom (H7965) — the Hebrew concept of peace/wholeness, rendered primarily as eirene in the LXX, which then becomes the NT's peace word.
from bible_grammar import print_trajectory
# Trace shalom (H7965): OT -> LXX eirene -> NT
print_trajectory('H7965')
# Trace berith/covenant (H1285) -> LXX diatheke -> NT
print_trajectory('H1285')
# Trace ruach/spirit (H7307) -> LXX pneuma -> NT
print_trajectory('H7307')
2. Starting from Greek¶
The trajectory pipeline can also start from a Greek NT word and work backwards through the LXX to find the Hebrew antecedents. agape (G26) is the NT's primary love word, but what Hebrew concept does it derive from, and how does the LXX bridge them?
# Start from Greek: trace NT agape (G26) through LXX back to OT context
print_trajectory('G26')
3. Trajectory Reports¶
Save full Markdown + chart reports for individual words. Each report includes OT statistics, LXX alignment table, LXX distribution chart, NT usage, and a continuity assessment.
from bible_grammar import save_trajectory_report
path = save_trajectory_report(
'H7965', output_dir='../../../output/reports/ot/lexicon'
)
print(f'Saved: {path}')
4. Theological Reports Module — All 14 Terms¶
The theological_reports module provides 14 pre-built cross-testament trajectory
studies for key Hebrew theological terms.
Terms covered: bara / berith / ruach / shalom / tsedeq / hesed / yeshua / kavod / ahav / emunah / torah / padah / kaphar / qadosh
from bible_grammar import print_theological_summary
# Compact overview of all 14 terms: OT total, LXX total, NT total, continuity
print_theological_summary()
from bible_grammar import run_theological_report
# Generate a full report for one term
r = run_theological_report(
'hesed', output_dir='../../../output/reports/ot/lexicon'
)
print('Continuity:', r['trajectory']['continuity'])
print('Note:', r['trajectory']['continuity_note'])
from bible_grammar import THEOLOGICAL_TRAJECTORIES
# List all available term keys
for key, entry in THEOLOGICAL_TRAJECTORIES.items():
print(f" {key:<12} {entry['strongs']} {entry['name']}")
5. Term Map — OT → LXX → NT at a Glance¶
The termmap module produces a compact structured table for any set of
Hebrew roots, showing OT occurrence counts, the primary LXX translation
equivalent (with IBM Model 1 alignment confidence), and the NT count of
that LXX term. It's the same pipeline as trajectory but optimized for
side-by-side comparison across many terms at once.
Useful for: quickly surveying a semantic field, building a vocabulary lesson, or comparing how different Hebrew terms for the same concept (e.g., multiple words for love or righteousness) travel into the NT.
from bible_grammar.termmap import term_map, print_term_map, THEOLOGICAL_TERMS
# Single term: berith (covenant)
df = term_map('H1285')
df
# The Hebrew 'love' cluster — three different words, very different NT profiles
# ahav (H0157) = general love; hesed (H2617) = covenantal love; raham (H7355) = compassion
love_terms = ['H0157', 'H2617', 'H7355']
df_love = term_map(love_terms)
print_term_map(df_love)
# Righteousness / justice cluster
# tsedeq (H6664) and mishpat (H4941) — how do they land in the NT?
righteous_terms = ['H6664', 'H6666', 'H4941']
df_right = term_map(righteous_terms)
print_term_map(df_right)
# All built-in theological terms — the full survey table
# THEOLOGICAL_TERMS is the same set used by theological_reports
print('Built-in terms:', list(THEOLOGICAL_TERMS))
df_all = term_map(THEOLOGICAL_TERMS)
print_term_map(df_all)
# Batch generate reports for all 14 terms (slow — runs all trajectory pipelines)
# from bible_grammar import run_all_theological_reports
# paths = run_all_theological_reports(output_dir='../../../output/reports/ot/lexicon')
print("Uncomment to generate all 14 reports (takes ~2 min)")