OT Speech Act Classification¶
Speech act theory (Austin, Searle 1969) classifies utterances by their illocutionary force — what the speaker is doing with words:
| Type | Definition | Hebrew cues | Biblical examples |
|---|---|---|---|
| Assertive | Claims a state of affairs | אֲנִי יְהוָה, predicate nominals | "I am the LORD your God" |
| Directive | Attempts to get hearer to act | Imperative/jussive, לֹא + yiqtol | Commands, laws, prohibitions |
| Commissive | Commits speaker to future action | 1st-person yiqtol, שָׁבַע/נָדַר oath | Covenantal promises |
| Expressive | Expresses psychological state | הָלַל, בָּכָה, אוֹי/הוֹי | Praise, lament, thanksgiving |
| Declarative | Changes reality by utterance | בָּרַךְ, אָרַר, סָלַח, קָרָא | Blessing, curse, naming, forgiveness |
Method: Rule-based classifier using MACULA morphological and lemma data. Full illocutionary analysis requires pragmatic context; this is an approximation.
References: Searle, Speech Acts (1969); Watts, Isaiah (WBC); BBH Chapter 18 (Qal Imperative), Chapter 21 (Infinitive Absolute as directive).
import sys
sys.path.insert(0, '../../../src')
from bible_grammar import (
SPEECH_ACT_TYPES,
ot_speech_act_data, ot_speech_act_profile,
ot_speech_act_comparison,
print_ot_speech_act_profile, print_speech_act_comparison,
speech_act_chart, speech_act_heatmap,
)
import pandas as pd
print(f"Speech act types: {SPEECH_ACT_TYPES}")
1. Overview — Book-Level Profile¶
# Deuteronomy — should dominate in directives (the law)
print_ot_speech_act_profile(book='Deu')
# Psalms — should dominate in expressives (praise/lament)
print_ot_speech_act_profile(book='Psa')
# Genesis — assertives and commissives in covenantal passages
print_ot_speech_act_profile(book='Gen')
2. YHWH's Speech Act Profile by Prophetic Book¶
YHWH's speech in the prophets contains all five types:
- Directives (commands to the nation)
- Assertives ("I am YHWH" identity declarations)
- Commissives (covenantal promises)
- Declaratives (blessings, curses, judgment declarations)
- Expressives (divine lament in Hosea, Jeremiah)
# YHWH's speech in Isaiah
print_ot_speech_act_profile(speaker='יְהוָה', book='Isa')
# YHWH's speech in Jeremiah
print_ot_speech_act_profile(speaker='יְהוָה', book='Jer')
# YHWH in Amos vs. Hosea vs. Micah — different prophetic emphases
print_speech_act_comparison(['Amos', 'Hos', 'Mic', 'Isa', 'Jer', 'Eze'], lang='H')
speech_act_chart(['Amo', 'Hos', 'Mic', 'Isa', 'Jer', 'Eze'], lang='H')
3. Directive vs. Commissive in the Law¶
Deuteronomy contains both legal directives ("you shall not...") and covenantal commissives (YHWH's promises of blessing/curse in Deut 28). How does that balance shift across the book's chapters?
# Torah comparison: directive and commissive distribution
print_speech_act_comparison(['Gen', 'Exo', 'Lev', 'Num', 'Deu'], lang='H')
speech_act_chart(['Gen', 'Exo', 'Lev', 'Num', 'Deu'], lang='H')
# By chapter within Deuteronomy: where do commissives cluster?
deu_data = ot_speech_act_data(book='Deu')
deu_pivot = deu_data.groupby(['chapter', 'speech_act_type']).size().unstack(fill_value=0)
print("Deuteronomy speech acts by chapter (selected types):")
cols_to_show = [c for c in ['directive', 'commissive', 'declarative', 'expressive'] if c in deu_pivot.columns]
deu_pivot[cols_to_show].tail(15)
4. Declarative Speech Acts — Covenantal Blessings and Curses¶
# Verses classified as declarative in Deuteronomy
deu_decl = ot_speech_act_data(book='Deu')
deu_decl = deu_decl[deu_decl['speech_act_type'] == 'declarative']
print(f"Deuteronomy declarative verses: {len(deu_decl)}")
deu_decl[['ref', 'chapter', 'verse']].head(20)
# Expressive speech (praise/lament) in Psalms vs. Lamentations
print_speech_act_comparison(['Psa', 'Lam', 'Job', 'Ecc'], lang='H')
5. Comparison — YHWH vs. Human Characters¶
Does YHWH have a different speech act profile from human speakers? YHWH should be higher in commissives (promises) and declaratives (blessings/judgments).
# YHWH vs. Moses in Deuteronomy
yhwh_deu = ot_speech_act_profile(speaker='יְהוָה', book='Deu').set_index('speech_act_type')['pct']
moses_deu = ot_speech_act_profile(speaker='מֹשֶׁה', book='Deu').set_index('speech_act_type')['pct']
comparison = pd.DataFrame({'YHWH': yhwh_deu, 'Moses': moses_deu}).fillna(0).round(1)
print("Speech act comparison — YHWH vs. Moses in Deuteronomy:")
comparison
6. Full OT Heatmap¶
ot_sample = ['Gen', 'Exo', 'Lev', 'Deu', 'Psa', 'Pro', 'Job', 'Isa', 'Jer', 'Eze', 'Amo', 'Jon']
speech_act_heatmap(ot_sample, lang='H')