NT Louw-Nida Sub-Domain Precision Queries¶
Fine-grained semantic domain analysis using the ln column in the MACULA Greek NT dataset.
Louw & Nida's Greek-English Lexicon of the New Testament Based on Semantic Domains (2 vols., UBS)
organizes the Greek lexicon into 93 top-level domains and hundreds of sub-entries.
Data:
lncolumn: Louw-Nida sub-domain code (e.g.,'33.69','31.35')- 127,291 tokens with LN codes (92.4% of all NT tokens)
- 6,907 unique sub-domain codes across 93 domains
- Space-separated for multi-domain words:
'10.24 33.19'
Sub-domain distinctions matter for exegesis:
- Domain 31 (Believe/Trust): 31.35 = πιστεύω (actively trust), 31.85 = πίστις (faith as object), 31.102 = πίστις (faithfulness)
- Domain 33 (Communication): 33.69 = λέγω (say), 33.224 = διδάσκω (teach), 33.178 = προσεύχομαι (pray)
- Domain 88 (Ethics): 88.12 = ἀγαθός (good), 88.21 = κακός (evil), 88.213 = ἁμαρτάνω (sin)
Data source: MACULA Greek Nestle1904 (macula-greek/ submodule),
Louw-Nida domain codes from United Bible Societies.
In [ ]:
Copied!
import sys
sys.path.insert(0, '../../../src')
from bible_grammar import (
nt_ln_data, nt_ln_subdomain_frequency, nt_ln_top_lemmas,
nt_ln_book_distribution, nt_ln_genre_profile,
nt_ln_domain_breakdown, nt_ln_comparison,
print_nt_ln_overview, print_nt_ln_subdomain_frequency,
print_nt_ln_top_lemmas, print_nt_ln_book_distribution,
print_nt_ln_domain_breakdown, print_nt_ln_comparison,
nt_ln_subdomain_chart, nt_ln_book_chart, nt_ln_genre_heatmap,
LN_DOMAIN_NAMES,
)
import pandas as pd
import sys
sys.path.insert(0, '../../../src')
from bible_grammar import (
nt_ln_data, nt_ln_subdomain_frequency, nt_ln_top_lemmas,
nt_ln_book_distribution, nt_ln_genre_profile,
nt_ln_domain_breakdown, nt_ln_comparison,
print_nt_ln_overview, print_nt_ln_subdomain_frequency,
print_nt_ln_top_lemmas, print_nt_ln_book_distribution,
print_nt_ln_domain_breakdown, print_nt_ln_comparison,
nt_ln_subdomain_chart, nt_ln_book_chart, nt_ln_genre_heatmap,
LN_DOMAIN_NAMES,
)
import pandas as pd
1. Overview¶
In [ ]:
Copied!
print_nt_ln_overview()
print_nt_ln_overview()
In [ ]:
Copied!
# All 93 top-level LN domains
domain_df = pd.DataFrame([
{'domain': k, 'name': v} for k, v in LN_DOMAIN_NAMES.items()
])
print(f"Total top-level domains: {len(domain_df)}")
domain_df.head(30)
# All 93 top-level LN domains
domain_df = pd.DataFrame([
{'domain': k, 'name': v} for k, v in LN_DOMAIN_NAMES.items()
])
print(f"Total top-level domains: {len(domain_df)}")
domain_df.head(30)
2. Faith Vocabulary — Domain 31 (Hold a View, Believe, Trust)¶
One of the most theologically significant domain groups. Sub-domain distinctions reveal different aspects of NT faith language:
- 31.35: πιστεύω as active trust/belief in a person
- 31.85: πίστις as the content/object of faith
- 31.102: πίστις as faithfulness/reliability
In [ ]:
Copied!
print_nt_ln_subdomain_frequency(31, top_n=20)
print_nt_ln_subdomain_frequency(31, top_n=20)
In [ ]:
Copied!
nt_ln_subdomain_chart(31, top_n=15)
nt_ln_subdomain_chart(31, top_n=15)
In [ ]:
Copied!
# πίστις as faithfulness (31.102) — where does this sense dominate?
print_nt_ln_top_lemmas('31.102', top_n=10)
print_nt_ln_book_distribution('31.102')
# πίστις as faithfulness (31.102) — where does this sense dominate?
print_nt_ln_top_lemmas('31.102', top_n=10)
print_nt_ln_book_distribution('31.102')
In [ ]:
Copied!
# Compare faith vocabulary across Paul's letters vs. James
print_nt_ln_comparison(['Rom', 'Gal', 'Heb', 'Jas'], 31)
# Compare faith vocabulary across Paul's letters vs. James
print_nt_ln_comparison(['Rom', 'Gal', 'Heb', 'Jas'], 31)
3. Communication — Domain 33¶
The largest theologically relevant domain in the NT. Sub-domains distinguish:
- 33.69: λέγω / εἶπεν — the basic speech verb
- 33.224: διδάσκω — teach
- 33.178: προσεύχομαι — pray
- 33.55: νόμος — law/written communication
In [ ]:
Copied!
print_nt_ln_subdomain_frequency(33, top_n=20)
print_nt_ln_subdomain_frequency(33, top_n=20)
In [ ]:
Copied!
nt_ln_subdomain_chart(33, top_n=20)
nt_ln_subdomain_chart(33, top_n=20)
In [ ]:
Copied!
# Teaching vocabulary (33.224) — Matthew vs. John
print_nt_ln_top_lemmas('33.224', top_n=10)
print_nt_ln_comparison(['Mat', 'Mrk', 'Luk', 'Jhn', 'Act'], 33)
# Teaching vocabulary (33.224) — Matthew vs. John
print_nt_ln_top_lemmas('33.224', top_n=10)
print_nt_ln_comparison(['Mat', 'Mrk', 'Luk', 'Jhn', 'Act'], 33)
4. Ethics and Moral Qualities — Domain 88¶
In [ ]:
Copied!
print_nt_ln_subdomain_frequency(88, top_n=20)
print_nt_ln_subdomain_frequency(88, top_n=20)
In [ ]:
Copied!
# Sin vocabulary across Paul, James, and 1 John
print_nt_ln_comparison(['Rom', 'Gal', 'Jas', '1Jn'], 88)
# Sin vocabulary across Paul, James, and 1 John
print_nt_ln_comparison(['Rom', 'Gal', 'Jas', '1Jn'], 88)
5. Religious Activity — Domain 53¶
In [ ]:
Copied!
print_nt_ln_subdomain_frequency(53, top_n=20)
print_nt_ln_subdomain_frequency(53, top_n=20)
In [ ]:
Copied!
nt_ln_subdomain_chart(53, top_n=15)
nt_ln_subdomain_chart(53, top_n=15)
6. Supernatural Beings — Domain 12¶
In [ ]:
Copied!
print_nt_ln_subdomain_frequency(12, top_n=15)
print_nt_ln_subdomain_frequency(12, top_n=15)
In [ ]:
Copied!
# 12.1 = God/Theos — where is this most dense?
print_nt_ln_top_lemmas('12.1', top_n=8)
nt_ln_book_chart('12.1')
# 12.1 = God/Theos — where is this most dense?
print_nt_ln_top_lemmas('12.1', top_n=8)
nt_ln_book_chart('12.1')
7. Book Semantic Domain Heatmap¶
In [ ]:
Copied!
# Compare theology-relevant domains across Gospels and Paul
nt_ln_genre_heatmap(
[12, 31, 33, 53, 88, 21, 39],
books=['Mat', 'Mrk', 'Luk', 'Jhn', 'Act', 'Rom', 'Gal', 'Eph', 'Rev']
)
# Compare theology-relevant domains across Gospels and Paul
nt_ln_genre_heatmap(
[12, 31, 33, 53, 88, 21, 39],
books=['Mat', 'Mrk', 'Luk', 'Jhn', 'Act', 'Rom', 'Gal', 'Eph', 'Rev']
)
8. Ad-hoc Queries¶
In [ ]:
Copied!
# Salvation/safety domain (21) — breakdown
print_nt_ln_subdomain_frequency(21, top_n=15)
# Salvation/safety domain (21) — breakdown
print_nt_ln_subdomain_frequency(21, top_n=15)
In [ ]:
Copied!
# Reconciliation/Forgiveness (39) — what senses appear?
print_nt_ln_subdomain_frequency(39, top_n=15)
# Reconciliation/Forgiveness (39) — what senses appear?
print_nt_ln_subdomain_frequency(39, top_n=15)
In [ ]:
Copied!
# Custom sub-domain query
# Get all tokens tagged 33.69 (λέγω = say/speak) in the Sermon on the Mount
sermon_say = nt_ln_data('33.69', book='Mat')
ch5_7 = sermon_say[sermon_say['chapter'].isin([5, 6, 7])]
print(f"'Say' verbs in Sermon on the Mount (Mat 5–7): {len(ch5_7)}")
ch5_7[['text', 'lemma', 'gloss', 'chapter', 'verse']].head(15)
# Custom sub-domain query
# Get all tokens tagged 33.69 (λέγω = say/speak) in the Sermon on the Mount
sermon_say = nt_ln_data('33.69', book='Mat')
ch5_7 = sermon_say[sermon_say['chapter'].isin([5, 6, 7])]
print(f"'Say' verbs in Sermon on the Mount (Mat 5–7): {len(ch5_7)}")
ch5_7[['text', 'lemma', 'gloss', 'chapter', 'verse']].head(15)