Tanakh Yomi · Techie Talmid · On-Ramp
II Samuel 21:7-22:50
This is a fascinating sugya! It’s like a complex data structure with interwoven dependencies and error handling. Let's dive in and model this narrative using systems thinking.
Problem Statement – The "Bug Report" in the Sugya
Bug ID: FAMINE-RESOLUTION-001 Severity: Critical System Failure (Famine impacting the entire land) Component: Divine Favor / National Well-being Symptom: Persistent famine for three years. Root Cause (Initial Diagnosis): Bloodguilt of Saul and his house due to the violation of the oath with the Gibeonites. Objective: Restore Divine Favor and end the famine. Challenge: How to precisely address the identified root cause (Saul's bloodguilt) without introducing new systemic errors (e.g., violating other divine laws or oaths, creating further instability). The system needs a precise, targeted intervention.
Full Experience in the App
Listen. Chat. Go deeper.
Audio playback, interactive chevruta, Hebrew tools, and every daily learning track — only in Derekh Learning.
Text Snapshot
Here are the key lines we'll be dissecting, with anchors for our systems analysis:
- 21:1: "There was a famine during the reign of David, year after year for three years. David inquired of GOD, and GOD replied, “It is because of the bloodguilt of Saul and [his] house, for he put some Gibeonites to death.”"
- 21:2: "The king summoned the Gibeonites and spoke to them.—Now the Gibeonites were not of Israelite stock, but a remnant of the Amorites, to whom the Israelites had given an oath; and Saul had tried to wipe them out in his zeal for the people of Israel and Judah.—"
- 21:3: "David asked the Gibeonites, “What shall I do for you? How shall I make expiation, so that you may bless GOD’s own people?”"
- 21:4: "The Gibeonites answered him, “We have no claim for silver or gold against Saul and his household; and we have no claim on the life of anyone else in Israel.” And [David] responded, “Whatever you say I will do for you.”"
- 21:5: "Thereupon they said to the king, “The man who massacred us and planned to exterminate us, so that we should not survive in all the territory of Israel—let seven of his male issue be handed over to us, and we will impale them before GOD in Gibeah of Saul, the chosen of GOD.”"
- 21:6: "And the king replied, “I will do so.”"
- 21:7: "The king spared Mephibosheth son of Jonathan son of Saul, because of the oath before GOD between the two, between David and Jonathan son of Saul."
- 21:12-14: "Then Rizpah daughter of Aiah took sackcloth and spread it on a rock for herself, and she stayed there from the beginning of the harvest until rain from the sky fell on the bodies; she did not let the birds of the sky settle on them by day or the wild beasts [approach] by night. David was told what Saul’s concubine Rizpah daughter of Aiah had done. And David went and took the bones of Saul and of his son Jonathan from the citizens of Jabesh-gilead, who had made off with them from the public square of Beth-shan, where the Philistines had hung them up on the day the Philistines killed Saul at Gilboa. He brought up the bones of Saul and of his son Jonathan from there; and he gathered the bones of those who had been impaled. And they buried the bones of Saul and of his son Jonathan in Zela, in the territory of Benjamin, in the tomb of his father Kish. And when all that the king had commanded was done, God responded to the plea of the land thereafter."
- 22:1: "David addressed the words of this song to GOD, after GOD had saved him from the hands of all his enemies and from the hands of Saul."
Flow Model – The Decision Tree of Famine Resolution
This sugya can be visualized as a conditional execution path, a flowchart for divine restoration.
- START: Famine Event Detected (Input: 3 years of famine).
- Node 1: Diagnostic Query:
- Action: David inquires of God.
- Condition: Famine persists.
- Output: Root Cause Identification (Bloodguilt of Saul's house re: Gibeonites).
- Node 2: Interface with Stakeholder (Gibeonites):
- Action: David convenes Gibeonites.
- Sub-node 2.1: Define Resolution Parameters:
- Input: Gibeonite grievances.
- Constraint: No monetary claims, no broader claims on Israel.
- Output: Specific demand for seven male descendants of Saul.
- Sub-node 2.2: Acknowledge & Commit:
- Action: David agrees to the demand ("Whatever you say I will do").
- Node 3: Identify Candidates for Resolution Action:
- Input: Saul's lineage.
- Constraint 1 (Oath Check): Is the candidate protected by a prior divine oath?
- If YES: Candidate is EXCLUDED from the resolution pool. (e.g., Mephibosheth, due to David-Jonathan oath).
- If NO: Candidate is INCLUDED in the resolution pool.
- Constraint 2 (Saul's Direct Lineage): Are they male descendants of Saul?
- If YES: Add to the list of potential candidates.
- Constraint 3 (Number of Candidates): Do we have enough candidates to meet the demand (7)?
- If NO: The system needs to re-evaluate or expand the search (this doesn't happen here, as we have enough).
- If YES: Proceed to selection.
- Node 4: Execute Resolution Action:
- Action: Hand over the selected 7 male descendants to the Gibeonites.
- Candidates: Armoni & Mephibosheth (sons of Rizpah), 5 sons of Merab (through Adriel).
- Execution: Impalement in Gibeah.
- Node 5: Post-Resolution Validation & Cleanup:
- Action 1: Rizpah's vigil (ensuring proper treatment/respect for the executed).
- Action 2: David's act of gathering and reburying Saul and Jonathan's bones (addressing another unresolved issue related to Saul's dishonor).
- Trigger: Completion of all specified resolution steps.
- Node 6: System Restore:
- Action: God responds to the plea of the land.
- Output: Famine ends.
- END: System Restored.
Two Implementations: Algorithm A (Rishonim) vs. Algorithm B (Acharonim)
Let's look at how the early commentators (Rishonim) and later commentators (Acharonim) interpret David's decision-making process, particularly regarding Mephibosheth. We can see this as two different algorithmic approaches to handling exceptions and fulfilling obligations.
Algorithm A: The "Pity & Oath" Module (Rishonim - e.g., Rashi, Steinsaltz, Metzudat David)
This algorithm prioritizes the direct interpretation of the text and emphasizes the explicit mention of the oath as the primary exclusion criterion. It's like a highly literal code parser.
Core Logic:
- Input: List of Saul's male descendants.
- Filter 1: Oath Compliance Check:
- For each candidate, check if there's an existing Divine Oath (specifically, the David-Jonathan oath).
- Condition:
OathExists(candidate, David, Jonathan) - If TRUE:
Exclude(candidate)from the resolution pool. - If FALSE:
Include(candidate)in the pool.
- Filter 2: Compassion/Pity Layer (Implicit/Explicit):
- Action: The King's compassion (ויחמול).
- Context: This compassion is often seen as acting on the exclusion from Filter 1. It's not a separate filter but an enforcement mechanism for the oath.
- Rashi's Insight: Explains the mechanism of pity. David passes potential candidates before the Ark. If the Ark "accepts" them (detains them), they are condemned. Mephibosheth is not brought before the Ark due to the oath. This is an operationalization of "sparing" him. (Yevomos 79a).
- Metzudat David/Zion: Reinforce that Mephibosheth is "son of Jonathan," highlighting his familial connection and the oath ("between them").
- Steinsaltz: Clearly states the protection is because of the oath.
- Selection & Execution: From the remaining included candidates, select 7 and execute the resolution.
Data Structures & Operations:
SaulDescendantsList: An array or list of individuals.OathTable: A lookup table or a functionOathExists(person1, person2, oath_context)which returns true if a binding oath exists.ProcessCandidate(candidate)Function:IF OathExists(candidate, David, Jonathan) THENLog("Candidate excluded due to oath.")Return EXCLUDED
ELSELog("Candidate eligible for consideration.")Return INCLUDED
ArkCheck(candidate)Function (Rashi's interpretation):IF ArkDetains(candidate) THENReturn CONDEMNED
ELSEReturn SPARED(This is where pity is enacted).
Advantages: Direct, textually supported, handles the explicit mention of the oath efficiently.
Disadvantages: Might seem less nuanced in explaining why the oath overrides the bloodguilt resolution. The "pity" feels like an add-on rather than an integrated part of the decision logic.
Algorithm B: The "Balancing Act" Module (Acharonim - e.g., Malbim, Abarbanel)
This algorithm introduces a more complex balancing mechanism, viewing the resolution not just as punishment but as a systemic correction that must account for multiple divine imperatives and the king's unique role. It's like a sophisticated rule engine with weighted priorities.
Core Logic:
- Input: Famine (system alert), Bloodguilt (identified root cause), Gibeonite demand (external requirement).
- System State Analysis:
- Divine Will: Ending famine requires addressing bloodguilt.
- External Constraint: Gibeonites' demand for satisfaction.
- Internal Constraint: Existing Divine Oaths (David-Jonathan).
- King's Role: David is the executive, responsible for balancing these factors.
- Resolution Strategy Module:
- Priority 1: Uphold Divine Oaths: The oath between David and Jonathan is a critical system parameter. Violating it would create a new "bug." Therefore, any individual directly bound by this oath (or whose inclusion would violate it) must be protected.
- Malbim: States the king "had pity" on Mephibosheth because his father (Jonathan) wasn't involved in the Gibeonite issue, and because of the oath. This implies the oath acts as a direct shield, preventing Mephibosheth from being part of the "Saul's house" equation for this specific debt.
- Abarbanel: Elaborates on the concept. Jonathan was not complicit in Saul's sin. Therefore, punishing his son would be unjust imputation of guilt. The oath reinforces this: David promised Jonathan he would show kindness to his descendants. This is a higher-priority covenant that supersedes the general "bloodguilt of Saul's house" as applied to Jonathan's line.
- Priority 2: Satisfy External Demands (Within Bounds): The Gibeonites must be appeased to resolve the famine. This requires selecting individuals from Saul's house.
- Priority 3: Distinguish "Saul's House": This is a crucial refactoring. "Saul's house" for the purpose of this debt is not all of Saul's descendants, but those whose lineage is not protected by higher covenants (like the David-Jonathan oath).
- Priority 1: Uphold Divine Oaths: The oath between David and Jonathan is a critical system parameter. Violating it would create a new "bug." Therefore, any individual directly bound by this oath (or whose inclusion would violate it) must be protected.
- Candidate Selection Algorithm:
- Identify all male descendants of Saul.
- Pre-filter (Oath-Protected): Remove individuals directly protected by the David-Jonathan oath (Mephibosheth).
- Pre-filter (Causality Check - Abarbanel): Remove individuals whose direct ancestors were not involved in the sin against the Gibeonites. This is implicitly handled by focusing on Saul's immediate house, but Abarbanel makes it explicit that Jonathan himself wasn't involved.
- Selection: From the remaining pool, select 7 individuals.
- Abarbanel's Detail: He clarifies the "five sons of Merab." Merab was Saul's daughter, but she married Adriel. Their children were raised by Michal (Merab's sister, Saul's daughter) who had no children. So, "sons of Merab" were technically grandchildren of Saul via Merab, but raised as Michal's "sons" in a sense. David took these children, not necessarily directly Saul's grandchildren in a purely paternal line, but those under the household umbrella. The text says "sons that Merab daughter of Saul bore to Adriel." This means Merab was their mother. Abarbanel's point is likely about the chain of responsibility and who represented Saul's house in the broader sense for the debt.
- Execution: Hand over the selected 7.
- Post-Execution: All other actions (Rizpah, bone reburial) are seen as system integrity checks and finalization steps.
Data Structures & Operations:
SaulDescendantGraph: A more complex data structure representing lineage, including parent-child and adoptive/guardianship relationships.CovenantRegistry: A database of active divine covenants, with priority levels.Covenant(Name="David-Jonathan", Participants=["David", "Jonathan"], Priority=High, Scope="Kindness to Descendants")Covenant(Name="Saul-Gibeonites", Participants=["Saul's House", "Gibeonites"], Status=Violated, Implication="Bloodguilt Debt")
ResolveDebt(Debt, Demand, Candidates)Function:ProtectedCandidates = FilterByCovenant(Candidates, CovenantRegistry, Priority=High)EligibleCandidates = Candidates - ProtectedCandidatesSelected = SelectExactly(EligibleCandidates, Demand.Count)Execute(Selected)
Advantages: Offers a deeper, more theological explanation for the distinctions made. It highlights David's wisdom in navigating complex divine and human obligations. It explains why the oath is a critical exception.
Disadvantages: More complex to model. Requires interpreting nuances about lineage and responsibility beyond the literal text.
Edge Cases – When the System Logic Fails
Let's consider inputs that would break a naive implementation of this "famine resolution" algorithm.
Edge Case 1: The "Mephibosheth is Saul's Grandson" Loop
- Input: A system that only prioritizes "bloodguilt of Saul and his house" and doesn't have a robust "oath" exclusion module. It might simply take the first 7 eligible male descendants it finds.
- Naïve Logic:
- Identify all male descendants of Saul.
- The Gibeonites demand 7.
- The system picks the first 7 available.
- Problem: Mephibosheth, being a son of Jonathan (Saul's son), is a male descendant. If the system doesn't have a specific "David-Jonathan Oath" check, it would include Mephibosheth in the pool and might even select him if he's among the first 7 found.
- Expected Output (from the text): Mephibosheth is spared.
- Breaking Scenario Output: Mephibosheth is handed over and impaled, violating the David-Jonathan oath and potentially causing a new "bug" in divine favor. This would be a critical failure in the system's integrity checks.
Edge Case 2: The "What if There Aren't 7 Descendants?" Scenario
- Input: A famine situation where Saul's house has fewer than 7 male descendants remaining, or where higher oaths/protections eliminate all but a few.
- Naïve Logic:
- Identify all male descendants of Saul.
- Filter based on oaths (e.g., Mephibosheth).
- Attempt to select 7 from the remaining pool.
- Problem: If the filtered pool has only, say, 4 eligible candidates, the system cannot fulfill the Gibeonite demand of 7.
- Expected Output (from the text): Not directly addressed, but implies the system would find 7. This suggests the "pool" of eligible descendants was understood to be sufficient.
- Breaking Scenario Output: The system reports an error: "Insufficient candidates to meet demand. Famine resolution cannot proceed." This would indicate a flaw in the system's resource allocation or an incomplete understanding of the available "nodes" in Saul's lineage tree that could be used for this specific debt. It might force David to renegotiate or seek divine intervention on how to proceed when the specific "payment" cannot be made.
Refactor – A Minimal Change for Clarity
The core of the problem lies in the precise definition of "Saul and [his] house" when applied to this specific debt. The text implies a distinction between Saul's direct culpability and the culpability of his broader lineage, especially when oaths are involved.
Minimal Change: Add a clarifying clause in the "problem statement" or initial divine diagnosis phase, focusing on culpability rather than just lineage.
Refactored Problem Statement Fragment: "It is because of the bloodguilt attributable to Saul and [his] house, specifically stemming from his direct actions against the Gibeonites, for he put some Gibeonites to death. This debt pertains to those within his direct line whose actions or lineage are not otherwise protected by divine covenant."
Impact: This refactoring immediately flags that not all of Saul's descendants are equally liable. It preemptively sets up the logic for the "oath exclusion" and the distinction that Acharonim later articulate so well. It's like adding a comment to a complex piece of code: // Exclude individuals protected by higher-priority covenants.
Takeaway
This sugya is a masterclass in conditional logic and exception handling within divine-human systems.
- Root Cause Analysis: Divine intervention demands precise problem identification. The famine is a symptom, the bloodguilt is the root cause.
- Stakeholder Negotiation: Resolution requires interacting with affected parties to define the "service level agreement" for restoration.
- Constraint Management: The system must balance competing constraints: fulfilling divine directives (ending famine via atonement), satisfying external demands (Gibeonite compensation), and upholding pre-existing divine commitments (oaths).
- Hierarchical Prioritization: Not all "nodes" in a lineage are equal. Divine oaths act as critical "guard clauses" that override general liabilities. This is the key insight that distinguishes a superficial reading from a deeper understanding.
- System Integrity: The actions surrounding Rizpah and the reburial of bones are crucial "garbage collection" and "integrity checks" that ensure the entire system is reset properly, not just the immediate "bug" patched.
In essence, David's reign operates like a highly sophisticated operating system. When a critical error (famine) occurs, the system doesn't just reboot randomly. It runs diagnostics, identifies the offending process (Saul's bloodguilt), negotiates with users (Gibeonites), applies specific patches (executing descendants), and critically, honors existing system-level agreements (oaths) that prevent the patch from corrupting other core functionalities. The subsequent song is the system's log file, a triumphant declaration of successful error resolution and system stability restored.
derekhlearning.com