Greek Preposition Analysis — NT and LXX¶
This notebook demonstrates bible_grammar.greek_prepositions, which provides frequency, case-binding, and collocate analysis for Greek prepositions in both the NT (MACULA Nestle1904) and the LXX (CenterBLC/Rahlfs).
Case binding — Greek prepositions govern one or more cases depending on meaning. Case is not stored on the preposition token itself; it is determined by an adjacency join to the word immediately following (word_num + 1). Results are normalized to Title case (Accusative, Genitive, Dative).
Data:
- NT: ~10,900 preposition tokens (MACULA Nestle1904)
- LXX: ~55,000 preposition tokens (CenterBLC Rahlfs 1935)
Functions:
| Function | Purpose |
|---|---|
greek_prep_frequency(corpus) |
Frequency table of all prepositions |
greek_prep_by_book(lemma, corpus) |
One preposition across all books |
greek_prep_distribution_table(corpus) |
Major preps by book group |
greek_prep_cases(lemma, corpus) |
Case-binding profile for one prep |
greek_prep_collocates(lemma, corpus, case) |
Top collocates, filterable by case |
compare_greek_preps(l1, l2, corpus) |
Side-by-side collocate comparison |
nt_lxx_compare(lemma) |
NT vs. LXX case-binding comparison |
import sys
sys.path.insert(0, '../../../src')
import pandas as pd
pd.set_option('display.max_rows', 60)
pd.set_option('display.max_colwidth', 45)
from bible_grammar.greek_prepositions import (
greek_prep_frequency, greek_prep_by_book, greek_prep_distribution_table,
greek_prep_cases, greek_prep_collocates, compare_greek_preps, nt_lxx_compare,
NT_MAJOR_PREPS, LXX_MAJOR_PREPS, PREP_GLOSS,
)
1. Overall Frequency¶
The top 4 (ἐν, εἰς, ἐκ/ἐπί, πρός) account for ~60% of all NT prepositions. The LXX has a similar profile but ἐπί is proportionally larger (13.1% vs. 8.1%) and ἕως is more frequent than in the NT.
print('=== NT ===')
display(greek_prep_frequency(corpus='nt', top_n=15))
print('=== LXX ===')
display(greek_prep_frequency(corpus='lxx', top_n=15))
2. Distribution by Book Group¶
How do preposition profiles vary across corpus sections?
print('NT — by book group:')
display(greek_prep_distribution_table(corpus='nt'))
print('LXX — by book group:')
display(greek_prep_distribution_table(corpus='lxx'))
3. Case Binding Profiles¶
Greek prepositions can govern one case (monocase) or multiple cases with different meanings (bicase/tricase). The most interesting are the bicase prepositions:
- διά + genitive = through (means/agency); διά + accusative = because of (cause)
- ἐπί + genitive = on (resting); ἐπί + dative = on (based on); ἐπί + accusative = onto (motion)
- κατά + genitive = against; κατά + accusative = according to
- μετά + genitive = with; μετά + accusative = after
- παρά + genitive = from (alongside); παρά + accusative = beside (contrary to)
# Monocase prepositions
for lemma in ['ἐν', 'εἰς', 'ἐκ']:
print(f'\n{lemma} ({PREP_GLOSS.get(lemma, "")})')
display(greek_prep_cases(lemma, corpus='nt'))
# Bicase prepositions — theologically significant
for lemma in ['διά', 'κατά', 'μετά', 'παρά']:
print(f'\n{lemma} ({PREP_GLOSS.get(lemma, "")})')
display(greek_prep_cases(lemma, corpus='nt'))
# Tricase: ἐπί
print('ἐπί NT:')
display(greek_prep_cases('ἐπί', corpus='nt'))
print('ἐπί LXX:')
display(greek_prep_cases('ἐπί', corpus='lxx'))
4. NT vs. LXX Case-Binding Comparison¶
Does a preposition's case distribution shift between the LXX (translated from Hebrew) and the NT? This can reveal how Septuagintal Greek influenced NT usage.
for lemma in ['διά', 'ἐπί', 'κατά', 'μετά']:
print(f'\n=== {lemma} ===')
display(nt_lxx_compare(lemma))
5. Collocate Analysis — What Follows a Preposition?¶
Use greek_prep_collocates() to find top words following each preposition. Filter by case to isolate one semantic sense.
# ἐν + dative collocates (NT)
print('ἐν + Dative collocates (NT):')
display(greek_prep_collocates('ἐν', corpus='nt', case='Dative', top_n=15))
# διά + genitive (agency/means) vs. + accusative (cause)
print('διά + Genitive (NT) — through/by means of:')
display(greek_prep_collocates('διά', corpus='nt', case='Genitive', top_n=15))
print('διά + Accusative (NT) — because of:')
display(greek_prep_collocates('διά', corpus='nt', case='Accusative', top_n=15))
# εἰς + accusative — destination (NT vs LXX)
print('εἰς + Accusative collocates (NT):')
display(greek_prep_collocates('εἰς', corpus='nt', case='Accusative', top_n=15))
print('εἰς + Accusative collocates (LXX):')
display(greek_prep_collocates('εἰς', corpus='lxx', case='Accusative', top_n=15))
6. Compare Two Prepositions Side by Side¶
Both εἰς and πρός can mark direction/goal. How do their objects differ?
compare_greek_preps('εἰς', 'πρός', corpus='nt', top_n=20)
# ἀπό vs. ἐκ — both mark separation/source
compare_greek_preps('ἀπό', 'ἐκ', corpus='nt', top_n=20)
7. Single-Book Focus¶
Zoom into Romans for Pauline preposition usage.
print('Preposition frequency in Romans:')
display(greek_prep_frequency(corpus='nt', book='Rom', top_n=12))
print('διά case binding in Romans:')
display(greek_prep_cases('διά', corpus='nt', book='Rom'))
# Compare Gospels vs. Pauline διά usage
print('διά + Genitive (Gospels):')
display(greek_prep_collocates('διά', corpus='nt', case='Genitive', book_group='Gospels', top_n=10))
print('διά + Genitive (Pauline):')
display(greek_prep_collocates('διά', corpus='nt', case='Genitive', book_group='Pauline', top_n=10))
8. Distribution of a Single Preposition Across All Books¶
# ἐν distribution across NT
print('ἐν distribution across NT:')
display(greek_prep_by_book('ἐν', corpus='nt'))
# ἐν distribution across LXX
print('ἐν distribution across LXX:')
display(greek_prep_by_book('ἐν', corpus='lxx'))