{ "cells": [ { "cell_type": "markdown", "id": "ef1d222e-9996-4c9f-bddd-173624840ebc", "metadata": {}, "source": [ "# Differences in MT and SP in parasha #4: Vayera (Genesis 18:1-22:24)" ] }, { "cell_type": "markdown", "id": "00169c3b-05ee-417b-8bc4-950a9914cda7", "metadata": {}, "source": [ "## Table of Content (ToC)\n", "\n", "* 1 - Introduction\n", "* 2 - Load Text-Fabric app and data\n", "* 3 - Compare surface texts of SP and MT\n", "* 4 - Compare texts using minimum Levenshtein distance\n", "* 5 - Comparison of spelling of proper nouns between SP and MT\n", "* 6 - References and acknowledgement\n", "* 7 - Required libraries\n", "* 8 - Notebook version details" ] }, { "cell_type": "markdown", "id": "b9d778e2-a5f4-4f48-acfc-ab657714729c", "metadata": { "tags": [] }, "source": [ "# 1 - Introduction \n", "##### [Back to ToC](#TOC)\n", "\n", "The Samaritan Pentateuch (SP) is a version of the Torah preserved by the Samaritan community, differing from the Masoretic Text (MT) in several aspects, including language, orthography, and occasionally theological emphasis. This notebook compares the text of the Masoretic Text, based on the BHSA dataset in Text-Fabric, with the Samaritan Pentateuch, also available as a Text-Fabric dataset.1\n", "\n", "In this analysis, we focus on comparing the text of the verses in a specific parasha, highlighting differences in wording and orthography. Additionally, special attention is given to spelling variations of proper nouns between the two traditions. This notebook draws inspiration from the notebook provided by Martijn Naaijer2 and aims to explore the textual nuances between these two important versions of the Torah." ] }, { "cell_type": "markdown", "id": "b1c357f7-dcb7-4292-b8f3-8349b5844057", "metadata": {}, "source": [ "# 2 - Load Text-Fabric app and data \n", "##### [Back to ToC](#TOC)\n", "\n", "The following code will load the Text-Fabric version of the [Samaritan Pentatuch](https://github.com/DT-UCPH/sp), the [Biblia Hebraica Stuttgartensia (Amstelodamensis)](https://etcbc.github.io/bhsa/) together with the additonal parasha related features from [tonyjurg/BHSaddons](https://github.com/tonyjurg/BHSaddons)." ] }, { "cell_type": "code", "execution_count": 1, "id": "b8699903-30cf-4a0b-902d-70622ddeead0", "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "**Locating corpus resources ...**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "app: ~/text-fabric-data/github/DT-UCPH/sp/app" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "data: ~/text-fabric-data/github/DT-UCPH/sp/tf/3.4" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " TF: TF API 12.6.1, DT-UCPH/sp/app v3, Search Reference
\n", " Data: DT-UCPH - sp 3.4, Character table, Feature docs
\n", "
Node types\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "
Name# of nodes# slots / node% coverage
book579878.40100
chapter1872135.79100
verse584168.38100
word1148903.48100
sign3993921.00100
\n", " Sets: no custom sets
\n", " Features:
\n", "
The Samaritan Pentateuch\n", "
\n", "\n", "
\n", "
\n", "book\n", "
\n", "
str
\n", "\n", " book title\n", "\n", "
\n", "\n", "
\n", "
\n", "chapter\n", "
\n", "
int
\n", "\n", " chapter number\n", "\n", "
\n", "\n", "
\n", "
\n", "g_cons\n", "
\n", "
str
\n", "\n", " word consonantal-transliterated\n", "\n", "
\n", "\n", "
\n", "
\n", "g_cons_raw\n", "
\n", "
str
\n", "\n", " word consonantal-transliterated (without disambiguation of Shin (C) and Sin (F))\n", "\n", "
\n", "\n", "
\n", "
\n", "g_cons_utf8\n", "
\n", "
str
\n", "\n", " word in Hebrew script\n", "\n", "
\n", "\n", "
\n", "
\n", "g_lex\n", "
\n", "
str
\n", "\n", " realized lexeme\n", "\n", "
\n", "\n", "
\n", "
\n", "g_lex_utf8\n", "
\n", "
str
\n", "\n", " realized lexeme in Hebrew script\n", "\n", "
\n", "\n", "
\n", "
\n", "g_nme\n", "
\n", "
str
\n", "\n", " realized nominal ending consonantal\n", "\n", "
\n", "\n", "
\n", "
\n", "g_nme_utf8\n", "
\n", "
str
\n", "\n", " realized nominal ending consonantal in Hebrew script\n", "\n", "
\n", "\n", "
\n", "
\n", "g_pfm\n", "
\n", "
str
\n", "\n", " realized verbal preformative consonantal\n", "\n", "
\n", "\n", "
\n", "
\n", "g_pfm_utf8\n", "
\n", "
str
\n", "\n", " realized verbal preformative consonantal in Hebrew script\n", "\n", "
\n", "\n", "
\n", "
\n", "g_prs\n", "
\n", "
str
\n", "\n", " realized pronominal suffix consonantal\n", "\n", "
\n", "\n", "
\n", "
\n", "g_prs_utf8\n", "
\n", "
str
\n", "\n", " realized pronominal suffix consonantal in Hebrew script\n", "\n", "
\n", "\n", "
\n", "
\n", "g_uvf\n", "
\n", "
str
\n", "\n", " realized univalent final\n", "\n", "
\n", "\n", "
\n", "
\n", "g_uvf_utf8\n", "
\n", "
str
\n", "\n", " realized univalent final in Hebrew script\n", "\n", "
\n", "\n", "
\n", "
\n", "g_vbe\n", "
\n", "
str
\n", "\n", " realized verbal ending consonantal\n", "\n", "
\n", "\n", "
\n", "
\n", "g_vbe_utf8\n", "
\n", "
str
\n", "\n", " realized verbal ending consonantal in Hebrew script\n", "\n", "
\n", "\n", "
\n", "
\n", "g_vbs\n", "
\n", "
str
\n", "\n", " realized verbal stem consonantal\n", "\n", "
\n", "\n", "
\n", "
\n", "g_vbs_utf8\n", "
\n", "
str
\n", "\n", " realized verbal stem consonantal in Hebrew script\n", "\n", "
\n", "\n", "
\n", "
\n", "gn\n", "
\n", "
str
\n", "\n", " gender\n", "\n", "
\n", "\n", "
\n", "
\n", "language\n", "
\n", "
str
\n", "\n", " language\n", "\n", "
\n", "\n", "
\n", "
\n", "lex\n", "
\n", "
str
\n", "\n", " lexeme consonantal-transliterated\n", "\n", "
\n", "\n", "
\n", "
\n", "lex_utf8\n", "
\n", "
str
\n", "\n", " lexeme in Hebrew script\n", "\n", "
\n", "\n", "
\n", "
\n", "mt_feat\n", "
\n", "
str
\n", "\n", " features imposed from MT\n", "\n", "
\n", "\n", "
\n", "
\n", "nu\n", "
\n", "
str
\n", "\n", " grammatical number\n", "\n", "
\n", "\n", "
\n", "
\n", "otype\n", "
\n", "
str
\n", "\n", " \n", "\n", "
\n", "\n", "
\n", "
\n", "prediction\n", "
\n", "
str
\n", "\n", " neural network prediction\n", "\n", "
\n", "\n", "
\n", "
\n", "prs_gn\n", "
\n", "
str
\n", "\n", " pronominal suffix gender\n", "\n", "
\n", "\n", "
\n", "
\n", "prs_nu\n", "
\n", "
str
\n", "\n", " pronominal suffix number\n", "\n", "
\n", "\n", "
\n", "
\n", "prs_ps\n", "
\n", "
str
\n", "\n", " pronominal suffix person\n", "\n", "
\n", "\n", "
\n", "
\n", "ps\n", "
\n", "
str
\n", "\n", " grammatical person\n", "\n", "
\n", "\n", "
\n", "
\n", "sign\n", "
\n", "
str
\n", "\n", " consonantal letter\n", "\n", "
\n", "\n", "
\n", "
\n", "sp\n", "
\n", "
str
\n", "\n", " part of speech\n", "\n", "
\n", "\n", "
\n", "
\n", "trailer\n", "
\n", "
str
\n", "\n", " interword material\n", "\n", "
\n", "\n", "
\n", "
\n", "verse\n", "
\n", "
int
\n", "\n", " verse number\n", "\n", "
\n", "\n", "
\n", "
\n", "vt\n", "
\n", "
str
\n", "\n", " verbal tense\n", "\n", "
\n", "\n", "
\n", "
\n", "oslots\n", "
\n", "
none
\n", "\n", " \n", "\n", "
\n", "\n", "
\n", "
\n", "\n", " Settings:
specified
  1. apiVersion: 3
  2. appName: DT-UCPH/sp
  3. appPath: C:/Users/tonyj/text-fabric-data/github/DT-UCPH/sp/app
  4. commit: g0c9b2fff6448228af93ed6c466ba95e6c0bb3547
  5. css: ''
  6. dataDisplay:
  7. \n", " textFormats:\n", "
  8. \n", " layout-orig-full:\n", "
    • method: layoutRich
    • style: orig
    \n", "
  9. \n", "
  10. docs:
    • docBase: {docRoot}/bhsa
    • docExt: ''
    • docPage: ''
    • docRoot: https://etcbc.github.io
    • featurePage: 0_home
  11. interfaceDefaults: {}
  12. isCompatible: True
  13. local: local
  14. localDir: C:/Users/tonyj/text-fabric-data/github/DT-UCPH/sp/_temp
  15. provenanceSpec:
    • corpus: The Samaritan Pentateuch
    • org: DT-UCPH
    • relative: /tf
    • repo: sp
    • version: 3.4
  16. release: v3.4
  17. typeDisplay:
    • verse:
      • label: {verse}
      • template: {verse}
      • verselike: True
    • word: {features: lex}
  18. writing: hbo
\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**Locating corpus resources ...**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "app: ~/text-fabric-data/github/etcbc/bhsa/app" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "data: ~/text-fabric-data/github/etcbc/bhsa/tf/2021" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "data: ~/text-fabric-data/github/tonyjurg/BHSaddons/tf/2021" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "data: ~/text-fabric-data/github/etcbc/phono/tf/2021" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "data: ~/text-fabric-data/github/etcbc/parallels/tf/2021" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " TF: TF API 12.6.1, etcbc/bhsa/app v3, Search Reference
\n", " Data: etcbc - bhsa 2021, Character table, Feature docs
\n", "
Node types\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "
Name# of nodes# slots / node% coverage
book3910938.21100
chapter929459.19100
lex923046.22100
verse2321318.38100
half_verse451799.44100
sentence637176.70100
sentence_atom645146.61100
clause881314.84100
clause_atom907044.70100
phrase2532031.68100
phrase_atom2675321.59100
subphrase1138501.4238
word4265901.00100
\n", " Sets: no custom sets
\n", " Features:
\n", "
Parallel Passages\n", "
\n", "\n", "
\n", "
\n", "crossref\n", "
\n", "
int
\n", "\n", " 🆗 links between similar passages\n", "\n", "
\n", "\n", "
\n", "
\n", "\n", "
BHSA = Biblia Hebraica Stuttgartensia Amstelodamensis\n", "
\n", "\n", "
\n", "
\n", "book\n", "
\n", "
str
\n", "\n", " ✅ book name in Latin (Genesis; Numeri; Reges1; ...)\n", "\n", "
\n", "\n", "
\n", "
\n", "book@ll\n", "
\n", "
str
\n", "\n", " ✅ book name in amharic (ኣማርኛ)\n", "\n", "
\n", "\n", "
\n", "
\n", "chapter\n", "
\n", "
int
\n", "\n", " ✅ chapter number (1; 2; 3; ...)\n", "\n", "
\n", "\n", "
\n", "
\n", "code\n", "
\n", "
int
\n", "\n", " ✅ identifier of a clause atom relationship (0; 74; 367; ...)\n", "\n", "
\n", "\n", "
\n", "
\n", "det\n", "
\n", "
str
\n", "\n", " ✅ determinedness of phrase(atom) (det; und; NA.)\n", "\n", "
\n", "\n", "
\n", "
\n", "domain\n", "
\n", "
str
\n", "\n", " ✅ text type of clause (? (Unknown); N (narrative); D (discursive); Q (Quotation).)\n", "\n", "
\n", "\n", "
\n", "
\n", "freq_lex\n", "
\n", "
int
\n", "\n", " ✅ frequency of lexemes\n", "\n", "
\n", "\n", "
\n", "
\n", "function\n", "
\n", "
str
\n", "\n", " ✅ syntactic function of phrase (Cmpl; Objc; Pred; ...)\n", "\n", "
\n", "\n", "
\n", "
\n", "g_cons\n", "
\n", "
str
\n", "\n", " ✅ word consonantal-transliterated (B R>CJT BR> >LHJM ...)\n", "\n", "
\n", "\n", "
\n", "
\n", "g_cons_utf8\n", "
\n", "
str
\n", "\n", " ✅ word consonantal-Hebrew (ב ראשׁית ברא אלהים)\n", "\n", "
\n", "\n", "
\n", "
\n", "g_lex\n", "
\n", "
str
\n", "\n", " ✅ lexeme pointed-transliterated (B.:- R;>CIJT B.@R@> >:ELOH ...)\n", "\n", "
\n", "\n", "
\n", "
\n", "g_lex_utf8\n", "
\n", "
str
\n", "\n", " ✅ lexeme pointed-Hebrew (בְּ רֵאשִׁית בָּרָא אֱלֹה)\n", "\n", "
\n", "\n", "
\n", "
\n", "g_word\n", "
\n", "
str
\n", "\n", " ✅ word pointed-transliterated (B.:- R;>CI73JT B.@R@74> >:ELOHI92JM)\n", "\n", "
\n", "\n", "
\n", "
\n", "g_word_utf8\n", "
\n", "
str
\n", "\n", " ✅ word pointed-Hebrew (בְּ רֵאשִׁ֖ית בָּרָ֣א אֱלֹהִ֑ים)\n", "\n", "
\n", "\n", "
\n", "
\n", "gloss\n", "
\n", "
str
\n", "\n", " 🆗 english translation of lexeme (beginning create god(s))\n", "\n", "
\n", "\n", "
\n", "
\n", "gn\n", "
\n", "
str
\n", "\n", " ✅ grammatical gender (m; f; NA; unknown.)\n", "\n", "
\n", "\n", "
\n", "
\n", "label\n", "
\n", "
str
\n", "\n", " ✅ (half-)verse label (half verses: A; B; C; verses: GEN 01,02)\n", "\n", "
\n", "\n", "
\n", "
\n", "language\n", "
\n", "
str
\n", "\n", " ✅ of word or lexeme (Hebrew; Aramaic.)\n", "\n", "
\n", "\n", "
\n", "
\n", "lex\n", "
\n", "
str
\n", "\n", " ✅ lexeme consonantal-transliterated (B R>CJT/ BR>[ >LHJM/)\n", "\n", "
\n", "\n", "
\n", "
\n", "lex_utf8\n", "
\n", "
str
\n", "\n", " ✅ lexeme consonantal-Hebrew (ב ראשׁית֜ ברא אלהים֜)\n", "\n", "
\n", "\n", "
\n", "
\n", "ls\n", "
\n", "
str
\n", "\n", " ✅ lexical set, subclassification of part-of-speech (card; ques; mult)\n", "\n", "
\n", "\n", "
\n", "
\n", "nametype\n", "
\n", "
str
\n", "\n", " ⚠️ named entity type (pers; mens; gens; topo; ppde.)\n", "\n", "
\n", "\n", "
\n", "
\n", "nme\n", "
\n", "
str
\n", "\n", " ✅ nominal ending consonantal-transliterated (absent; n/a; JM, ...)\n", "\n", "
\n", "\n", "
\n", "
\n", "nu\n", "
\n", "
str
\n", "\n", " ✅ grammatical number (sg; du; pl; NA; unknown.)\n", "\n", "
\n", "\n", "
\n", "
\n", "number\n", "
\n", "
int
\n", "\n", " ✅ sequence number of an object within its context\n", "\n", "
\n", "\n", "
\n", "
\n", "otype\n", "
\n", "
str
\n", "\n", " \n", "\n", "
\n", "\n", "
\n", "
\n", "pargr\n", "
\n", "
str
\n", "\n", " 🆗 hierarchical paragraph number (1; 1.2; 1.2.3.4; ...)\n", "\n", "
\n", "\n", "
\n", "
\n", "pdp\n", "
\n", "
str
\n", "\n", " ✅ phrase dependent part-of-speech (art; verb; subs; nmpr, ...)\n", "\n", "
\n", "\n", "
\n", "
\n", "pfm\n", "
\n", "
str
\n", "\n", " ✅ preformative consonantal-transliterated (absent; n/a; J, ...)\n", "\n", "
\n", "\n", "
\n", "
\n", "prs\n", "
\n", "
str
\n", "\n", " ✅ pronominal suffix consonantal-transliterated (absent; n/a; W; ...)\n", "\n", "
\n", "\n", "
\n", "
\n", "prs_gn\n", "
\n", "
str
\n", "\n", " ✅ pronominal suffix gender (m; f; NA; unknown.)\n", "\n", "
\n", "\n", "
\n", "
\n", "prs_nu\n", "
\n", "
str
\n", "\n", " ✅ pronominal suffix number (sg; du; pl; NA; unknown.)\n", "\n", "
\n", "\n", "
\n", "
\n", "prs_ps\n", "
\n", "
str
\n", "\n", " ✅ pronominal suffix person (p1; p2; p3; NA; unknown.)\n", "\n", "
\n", "\n", "
\n", "
\n", "ps\n", "
\n", "
str
\n", "\n", " ✅ grammatical person (p1; p2; p3; NA; unknown.)\n", "\n", "
\n", "\n", "
\n", "
\n", "qere\n", "
\n", "
str
\n", "\n", " ✅ word pointed-transliterated masoretic reading correction\n", "\n", "
\n", "\n", "
\n", "
\n", "qere_trailer\n", "
\n", "
str
\n", "\n", " ✅ interword material -pointed-transliterated (Masoretic correction)\n", "\n", "
\n", "\n", "
\n", "
\n", "qere_trailer_utf8\n", "
\n", "
str
\n", "\n", " ✅ interword material -pointed-transliterated (Masoretic correction)\n", "\n", "
\n", "\n", "
\n", "
\n", "qere_utf8\n", "
\n", "
str
\n", "\n", " ✅ word pointed-Hebrew masoretic reading correction\n", "\n", "
\n", "\n", "
\n", "
\n", "rank_lex\n", "
\n", "
int
\n", "\n", " ✅ ranking of lexemes based on freqnuecy\n", "\n", "
\n", "\n", "
\n", "
\n", "rela\n", "
\n", "
str
\n", "\n", " ✅ linguistic relation between clause/(sub)phrase(atom) (ADJ; MOD; ATR; ...)\n", "\n", "
\n", "\n", "
\n", "
\n", "sp\n", "
\n", "
str
\n", "\n", " ✅ part-of-speech (art; verb; subs; nmpr, ...)\n", "\n", "
\n", "\n", "
\n", "
\n", "st\n", "
\n", "
str
\n", "\n", " ✅ state of a noun (a (absolute); c (construct); e (emphatic).)\n", "\n", "
\n", "\n", "
\n", "
\n", "tab\n", "
\n", "
int
\n", "\n", " ✅ clause atom: its level in the linguistic embedding\n", "\n", "
\n", "\n", "
\n", "
\n", "trailer\n", "
\n", "
str
\n", "\n", " ✅ interword material pointed-transliterated (& 00 05 00_P ...)\n", "\n", "
\n", "\n", "
\n", "
\n", "trailer_utf8\n", "
\n", "
str
\n", "\n", " ✅ interword material pointed-Hebrew (־ ׃)\n", "\n", "
\n", "\n", "
\n", "
\n", "txt\n", "
\n", "
str
\n", "\n", " ✅ text type of clause and surrounding (repetion of ? N D Q as in feature domain)\n", "\n", "
\n", "\n", "
\n", "
\n", "typ\n", "
\n", "
str
\n", "\n", " ✅ clause/phrase(atom) type (VP; NP; Ellp; Ptcp; WayX)\n", "\n", "
\n", "\n", "
\n", "
\n", "uvf\n", "
\n", "
str
\n", "\n", " ✅ univalent final consonant consonantal-transliterated (absent; N; J; ...)\n", "\n", "
\n", "\n", "
\n", "
\n", "vbe\n", "
\n", "
str
\n", "\n", " ✅ verbal ending consonantal-transliterated (n/a; W; ...)\n", "\n", "
\n", "\n", "
\n", "
\n", "vbs\n", "
\n", "
str
\n", "\n", " ✅ root formation consonantal-transliterated (absent; n/a; H; ...)\n", "\n", "
\n", "\n", "
\n", "
\n", "verse\n", "
\n", "
int
\n", "\n", " ✅ verse number\n", "\n", "
\n", "\n", "
\n", "
\n", "voc_lex\n", "
\n", "
str
\n", "\n", " ✅ vocalized lexeme pointed-transliterated (B.: R;>CIJT BR> >:ELOHIJM)\n", "\n", "
\n", "\n", "
\n", "
\n", "voc_lex_utf8\n", "
\n", "
str
\n", "\n", " ✅ vocalized lexeme pointed-Hebrew (בְּ רֵאשִׁית ברא אֱלֹהִים)\n", "\n", "
\n", "\n", "
\n", "
\n", "vs\n", "
\n", "
str
\n", "\n", " ✅ verbal stem (qal; piel; hif; apel; pael)\n", "\n", "
\n", "\n", "
\n", "
\n", "vt\n", "
\n", "
str
\n", "\n", " ✅ verbal tense (perf; impv; wayq; infc)\n", "\n", "
\n", "\n", "
\n", "
\n", "mother\n", "
\n", "
none
\n", "\n", " ✅ linguistic dependency between textual objects\n", "\n", "
\n", "\n", "
\n", "
\n", "oslots\n", "
\n", "
none
\n", "\n", " \n", "\n", "
\n", "\n", "
\n", "
\n", "\n", "
Phonetic Transcriptions\n", "
\n", "\n", "
\n", "
\n", "phono\n", "
\n", "
str
\n", "\n", " 🆗 phonological transcription (bᵊ rēšˌîṯ bārˈā ʔᵉlōhˈîm)\n", "\n", "
\n", "\n", "
\n", "
\n", "phono_trailer\n", "
\n", "
str
\n", "\n", " 🆗 interword material in phonological transcription\n", "\n", "
\n", "\n", "
\n", "
\n", "\n", "
tonyjurg/BHSaddons/tf\n", "
\n", "\n", "
\n", "
\n", "aliyotnum\n", "
\n", "
str
\n", "\n", " The sequence number of the aliyot within the parasha\n", "\n", "
\n", "\n", "
\n", "
\n", "maftir\n", "
\n", "
str
\n", "\n", " Set to 1 if this verse is part of a maftir\n", "\n", "
\n", "\n", "
\n", "
\n", "parashahebr\n", "
\n", "
str
\n", "\n", " The name of the parasha in Hebrew\n", "\n", "
\n", "\n", "
\n", "
\n", "parashanum\n", "
\n", "
int
\n", "\n", " The sequence number of the parasha\n", "\n", "
\n", "\n", "
\n", "
\n", "parashatrans\n", "
\n", "
str
\n", "\n", " Transliteration of the Hebrew parasha name\n", "\n", "
\n", "\n", "
\n", "
\n", "parashaverse\n", "
\n", "
str
\n", "\n", " The sequence number of the verse within the parasha\n", "\n", "
\n", "\n", "
\n", "
\n", "wordboundary\n", "
\n", "
str
\n", "\n", " indicates wordboudaries (spaces OR maqaf)\n", "\n", "
\n", "\n", "
\n", "
\n", "\n", " Settings:
specified
  1. apiVersion: 3
  2. appName: etcbc/bhsa
  3. appPath: C:/Users/tonyj/text-fabric-data/github/etcbc/bhsa/app
  4. commit: gd905e3fb6e80d0fa537600337614adc2af157309
  5. css: ''
  6. dataDisplay:
    • exampleSectionHtml:<code>Genesis 1:1</code> (use <a href=\"https://github.com/{org}/{repo}/blob/master/tf/{version}/book%40en.tf\" target=\"_blank\">English book names</a>)
    • excludedFeatures:
      • g_uvf_utf8
      • g_vbs
      • kq_hybrid
      • languageISO
      • g_nme
      • lex0
      • is_root
      • g_vbs_utf8
      • g_uvf
      • dist
      • root
      • suffix_person
      • g_vbe
      • dist_unit
      • suffix_number
      • distributional_parent
      • kq_hybrid_utf8
      • crossrefSET
      • instruction
      • g_prs
      • lexeme_count
      • rank_occ
      • g_pfm_utf8
      • freq_occ
      • crossrefLCS
      • functional_parent
      • g_pfm
      • g_nme_utf8
      • g_vbe_utf8
      • kind
      • g_prs_utf8
      • suffix_gender
      • mother_object_type
    • noneValues:
      • none
      • unknown
      • no value
      • NA
  7. docs:
    • docBase: {docRoot}/{repo}
    • docExt: ''
    • docPage: ''
    • docRoot: https://{org}.github.io
    • featurePage: 0_home
  8. interfaceDefaults: {}
  9. isCompatible: True
  10. local: local
  11. localDir: C:/Users/tonyj/text-fabric-data/github/etcbc/bhsa/_temp
  12. provenanceSpec:
    • corpus: BHSA = Biblia Hebraica Stuttgartensia Amstelodamensis
    • doi: 10.5281/zenodo.1007624
    • moduleSpecs:
      • :
        • backend: no value
        • corpus: Phonetic Transcriptions
        • docUrl:https://nbviewer.jupyter.org/github/etcbc/phono/blob/master/programs/phono.ipynb
        • doi: 10.5281/zenodo.1007636
        • org: etcbc
        • relative: /tf
        • repo: phono
      • :
        • backend: no value
        • corpus: Parallel Passages
        • docUrl:https://nbviewer.jupyter.org/github/etcbc/parallels/blob/master/programs/parallels.ipynb
        • doi: 10.5281/zenodo.1007642
        • org: etcbc
        • relative: /tf
        • repo: parallels
    • org: etcbc
    • relative: /tf
    • repo: bhsa
    • version: 2021
    • webBase: https://shebanq.ancient-data.org/hebrew
    • webHint: Show this on SHEBANQ
    • webLang: la
    • webLexId: True
    • webUrl:{webBase}/text?book=<1>&chapter=<2>&verse=<3>&version={version}&mr=m&qw=q&tp=txt_p&tr=hb&wget=v&qget=v&nget=vt
    • webUrlLex: {webBase}/word?version={version}&id=<lid>
  13. release: v1.8
  14. typeDisplay:
    • clause:
      • label: {typ} {rela}
      • style: ''
    • clause_atom:
      • hidden: True
      • label: {code}
      • level: 1
      • style: ''
    • half_verse:
      • hidden: True
      • label: {label}
      • style: ''
      • verselike: True
    • lex:
      • featuresBare: gloss
      • label: {voc_lex_utf8}
      • lexOcc: word
      • style: orig
      • template: {voc_lex_utf8}
    • phrase:
      • label: {typ} {function}
      • style: ''
    • phrase_atom:
      • hidden: True
      • label: {typ} {rela}
      • level: 1
      • style: ''
    • sentence:
      • label: {number}
      • style: ''
    • sentence_atom:
      • hidden: True
      • label: {number}
      • level: 1
      • style: ''
    • subphrase:
      • hidden: True
      • label: {number}
      • style: ''
    • word:
      • features: pdp vs vt
      • featuresBare: lex:gloss
  15. writing: hbo
\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from tf.app import use\n", "\n", "# Load the SP data, and rename the node features class F,\n", "# the locality class L and the text class T, \n", "# then they cannot be overwritten while loading the MT.\n", "SP = use('DT-UCPH/sp', version='3.4')\n", "Fsp, Lsp, Tsp = SP.api.F, SP.api.L, SP.api.T\n", "\n", "# Do the same for the MT dataset (BHSA) together with BHSaddons \n", "MT = use('etcbc/bhsa', version='2021',mod=\"tonyjurg/BHSaddons/tf/\")\n", "Fmt, Lmt, Tmt = MT.api.F, MT.api.L, MT.api.T" ] }, { "cell_type": "markdown", "id": "f0086270", "metadata": {}, "source": [ "# 3 - Compare surface texts of SP and MT \n", "##### [Back to ToC](#TOC)\n", "\n", "In this section, we compare the surface texts of the Samaritan Pentateuch (SP) and the Masoretic Text (MT) at the verse level. By analyzing the wording and structure of these texts, we aim to identify variations." ] }, { "cell_type": "code", "execution_count": 2, "id": "3b399f27-1f11-4efc-94e6-db55fe87a684", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 0.01s 147 results\n" ] } ], "source": [ "# find all word nodes for this parasha (we can either use the transliterated name or the sequence number)\n", "parashaQuery = '''\n", "verse parashanum=4\n", "'''\n", "parashaResults = MT.search(parashaQuery)" ] }, { "cell_type": "code", "execution_count": 3, "id": "e064e73f-8ca2-4d78-ac65-2b518e1dc4aa", "metadata": {}, "outputs": [], "source": [ "# Extract book, chapter, and verse information\n", "bookChapterVerseList = [\n", " Tmt.sectionFromNode(verse[0]) for verse in parashaResults\n", "]\n", "\n", "# Store parashname, start and end verse for future use\n", "startNode=parashaResults[0][0]\n", "endNode=parashaResults[-1][0]\n", "parashaNameHebrew=Fmt.parashahebr.v(startNode)\n", "parashaNameEnglish=Fmt.parashatrans.v(startNode)\n", "bookStart,chapterStart,startVerse=Tmt.sectionFromNode(startNode)\n", "parashaStart=f'{bookStart} {chapterStart}:{startVerse}'\n", "bookEnd,chapterEnd,startEnd=Tmt.sectionFromNode(endNode)\n", "parashaEnd=f'{chapterEnd}:{startEnd}'\n", "\n", "def wrapHTML(body, title):\n", " output = (\n", " f'{title.replace(\">\",\">\")}'\n", " f'{body}

Data generated by `delta_mt_and_sp.ipynb` at ' \n", " '`'\n", " 'github.com/tonyjurg/Parashot`

'\n", " )\n", " return output" ] }, { "cell_type": "code", "execution_count": 4, "id": "06e216e5-a5b1-47d6-994c-f4e8c6a66e90", "metadata": {}, "outputs": [], "source": [ "# Function to reconstruct verses\n", "def reconstructVerses(F, L, T, textFeature, inputList):\n", " \"\"\"Reconstruct text for each verse.\"\"\"\n", " verseTexts = {}\n", " for verseName in inputList:\n", " verseText = ''\n", " verseNode = T.nodeFromSection(verseName)\n", " wordNodes = L.d(verseNode, 'word')\n", " for wordNode in wordNodes:\n", " wordText = eval(f'F.{textFeature}.v(wordNode)')\n", " trailer = F.trailer.v(wordNode)\n", " if wordText:\n", " verseText += wordText + (trailer if trailer else ' ')\n", " verseTexts[verseName] = verseText.strip()\n", " return verseTexts\n", " \n", "SPverses = reconstructVerses(Fsp, Lsp, Tsp, 'g_cons', bookChapterVerseList)\n", "MTverses = reconstructVerses(Fmt, Lmt, Tmt, 'g_cons', bookChapterVerseList)" ] }, { "cell_type": "code", "execution_count": 5, "id": "492e7cbe-2b84-48a9-a44c-6b6d051b0c5d", "metadata": {}, "outputs": [ { "data": { "text/html": [ "

Differences between MT and SP for parasha Vayera (Genesis 18:1-22:24)

Genesis 18:1

SP: וירא אליו יהוה באלוני ממרא והוא ישב פתח האהל כחם היום
MT: וירא אליו יהוה באלני ממרא והוא ישׁב פתח האהל כחם היום

Genesis 18:2

SP: וישא עיניו וירא והנה שלשה אנושים נצבים עליו וירא וירץ לקראתם מפתח האהל וישתחוי ארצה
MT: וישׂא עיניו וירא והנה שׁלשׁה אנשׁים נצבים עליו וירא וירץ לקראתם מפתח האהל וישׁתחו ארצה

Genesis 18:3

SP: ויאמר אדני אם נא מצאתי חן בעיניכם אל נא תעברו מעל עבדכם
MT: ויאמר אדני אם נא מצאתי חן בעיניך אל נא תעבר מעל עבדך

Genesis 18:4

SP: יקח נא מעט מים ורחצו רגליכם והשעינו תחת העץ
MT: יקח נא מעט מים ורחצו רגליכם והשׁענו תחת העץ

Genesis 18:5

SP: ואקח פת לחם וסעדו לבבכם ואחר תעברו כי על כן עברתם על עבדכם ויאמרו כן תעשה כאשר דברת
MT: ואקחה פת לחם וסעדו לבכם אחר תעברו כי על כן עברתם על עבדכם ויאמרו כן תעשׂה כאשׁר דברת

Genesis 18:6

SP: וימהר אברהם האהלה אל שרה ויאמר מהרי שלש סים קמח סלת לושי ועשה עגות
MT: וימהר אברהם האהלה אל שׂרה ויאמר מהרי שׁלשׁ סאים קמח סלת לושׁי ועשׂי עגות

Genesis 18:7

SP: ואל הבקר רץ אברהם ויקח בן בקר רך וטוב ויתן אל הנער וימהר לעשותו
MT: ואל הבקר רץ אברהם ויקח בן בקר רך וטוב ויתן אל הנער וימהר לעשׂות אתו

Genesis 18:8

SP: ויקח חמאה וחלב ואת בן הבקר אשר עשה ויתן לפניהם והוא עמד עליהם תחת העץ ויאכלו
MT: ויקח חמאה וחלב ובן הבקר אשׁר עשׂה ויתן לפניהם והוא עמד עליהם תחת העץ ויאכלו

Genesis 18:10

SP: ויאמר שוב אשוב אליך כעת חיה והנה בן לשרה אשתך ושרה שמעת פתח האהל והיא אחריו
MT: ויאמר שׁוב אשׁוב אליך כעת חיה והנה בן לשׂרה אשׁתך ושׂרה שׁמעת פתח האהל והוא אחריו

Genesis 18:15

SP: ותכחש שרה לאמר לא צחקתי כי יראה ויאמר לה כי צחקת
MT: ותכחשׁ שׂרה׀ לאמר לא צחקתי כי׀ יראה ויאמר׀ לא כי צחקת

Genesis 18:16

SP: ויקמו משם האנושים וישקפו על פני סדם ואברהם הלך עמם לשלחם
MT: ויקמו משׁם האנשׁים וישׁקפו על פני סדם ואברהם הלך עמם לשׁלחם

Genesis 18:17

SP: ויהוה אמר המכסה אני מאברהם את אשר אני עשה
MT: ויהוה אמר המכסה אני מאברהם אשׁר אני עשׂה

Genesis 18:18

SP: ואברהם היו יהיה לגוי גדול ועצום ונברכו בו כל גוי הארץ
MT: ואברהם היו יהיה לגוי גדול ועצום ונברכו בו כל גויי הארץ

Genesis 18:19

SP: כי ידעתי למען אשר יצוה אברהם את בניו ואת ביתו אחריו ושמרו דרך יהוה לעשות צדקה ומשפט למען הביא יהוה על אברהם את אשר דבר עליו
MT: כי ידעתיו למען אשׁר יצוה את בניו ואת ביתו אחריו ושׁמרו דרך יהוה לעשׂות צדקה ומשׁפט למען הביא יהוה על אברהם את אשׁר דבר עליו

Genesis 18:20

SP: ויאמר יהוה צעקת סדם ועמרה כי רבה וחטאתם כי כבדה מאד
MT: ויאמר יהוה זעקת סדם ועמרה כי רבה וחטאתם כי כבדה מאד

Genesis 18:21

SP: ארדה נא ואראה הך צעקתה הבאה אלי עשו כלה ואם לא אדעה
MT: ארדה נא ואראה הכצעקתה הבאה אלי עשׂו׀ כלה ואם לא אדעה

Genesis 18:22

SP: ויפנו משם האנושים וילכו סדמה ואברהם עודנו עמד לפני יהוה
MT: ויפנו משׁם האנשׁים וילכו סדמה ואברהם עודנו עמד לפני יהוה

Genesis 18:24

SP: אולי יש חמשים צדיקים בתוך העיר האף תספה ולא תשא למקום למען חמשים הצדקים אשר בקרבה
MT: אולי ישׁ חמשׁים צדיקם בתוך העיר האף תספה ולא תשׂא למקום למען חמשׁים הצדיקם אשׁר בקרבה

Genesis 18:25

SP: חלילה לך מעשות כדבר הזה להמית צדיק עם רשע והיה כצדיק כרשע חלילה לך השפט כל הארץ לא יעשה משפט
MT: חללה לך מעשׂת׀ כדבר הזה להמית צדיק עם רשׁע והיה כצדיק כרשׁע חללה לך השׁפט כל הארץ לא יעשׂה משׁפט

Genesis 18:26

SP: ויאמר יהוה אם אמצא בסדם חמשים צדקים בתוך העיר ונשאתי לכל המקום בעבורם
MT: ויאמר יהוה אם אמצא בסדם חמשׁים צדיקם בתוך העיר ונשׂאתי לכל המקום בעבורם

Genesis 18:28

SP: אולי יחסרון חמשים הצדקים חמשה התשחית בחמשה את כל העיר ויאמר לא אשחית אם אמצא שם ארבעים וחמשה
MT: אולי יחסרון חמשׁים הצדיקם חמשׁה התשׁחית בחמשׁה את כל העיר ויאמר לא אשׁחית אם אמצא שׁם ארבעים וחמשׁה

Genesis 18:29

SP: ויסף עוד לדבר אליו ויאמר אליו אולי ימצאון שם ארבעים ויאמר לא אשחית בעבור הארבעים
MT: ויסף עוד לדבר אליו ויאמר אולי ימצאון שׁם ארבעים ויאמר לא אעשׂה בעבור הארבעים

Genesis 18:30

SP: ויאמר אל נא יחר לאדני ואדברה אולי ימצאון שם שלשים ויאמר לא אשחית אם אמצא שם שלשים
MT: ויאמר אל נא יחר לאדני ואדברה אולי ימצאון שׁם שׁלשׁים ויאמר לא אעשׂה אם אמצא שׁם שׁלשׁים

Genesis 18:33

SP: וילך יהוה כאשר כלה לדבר אל אברהם ואברהם שב למקומו
MT: וילך יהוה כאשׁר כלה לדבר אל אברהם ואברהם שׁב למקמו

Genesis 19:1

SP: ויבאו שני המלאכים סדמה בערב ולוט ישב בשער סדם וירא לוט ויקם לקראתם וישתחוי אפים ארצה
MT: ויבאו שׁני המלאכים סדמה בערב ולוט ישׁב בשׁער סדם וירא לוט ויקם לקראתם וישׁתחו אפים ארצה

Genesis 19:2

SP: ויאמר הנה נא אדני סורו נא אל בית עבדכם ולינו ורחצו רגליכם והשכמתם והלכתם לדרככם ויאמרו לא כי ברחב נלין
MT: ויאמר הנה נא אדני סורו נא אל בית עבדכם ולינו ורחצו רגליכם והשׁכמתם והלכתם לדרככם ויאמרו לא כי ברחוב נלין

Genesis 19:4

SP: טרם ישכבו אנשי העיר אנשי סדם נסבו על הבית מנער ועד זקן כל העם מקצה
MT: טרם ישׁכבו ואנשׁי העיר אנשׁי סדם נסבו על הבית מנער ועד זקן כל העם מקצה

Genesis 19:5

SP: ויקראו אל לוט ויאמרו אליו איה האנושים אשר באו אליך הלילה הוציאם אלינו ונדע אתם
MT: ויקראו אל לוט ויאמרו לו איה האנשׁים אשׁר באו אליך הלילה הוציאם אלינו ונדעה אתם

Genesis 19:6

SP: ויצא אליהם לוט הפתח והדלת סגרו אחריו
MT: ויצא אלהם לוט הפתחה והדלת סגר אחריו

Genesis 19:7

SP: ויאמר אל נא אחי תריעו
MT: ויאמר אל נא אחי תרעו

Genesis 19:8

SP: הנה נא לי שתי בנות אשר לא ידעו איש הוציא נא אתהן אליכם ועשו להן כטוב בעיניכם רק לאנשים האלה אל תעשו דבר כי על כן באו בצל קורתי
MT: הנה נא לי שׁתי בנות אשׁר לא ידעו אישׁ אוציאה נא אתהן אליכם ועשׂו להן כטוב בעיניכם רק לאנשׁים האל אל תעשׂו דבר כי על כן באו בצל קרתי

Genesis 19:9

SP: ויאמרו גשה הלאה ויאמרו אחד בא לגור וישפט גם שפט עתה נריע לך מהם ויפצרו באיש בלוט מאד ויגשו לשבר הדלת
MT: ויאמרו׀ גשׁ הלאה ויאמרו האחד בא לגור וישׁפט שׁפוט עתה נרע לך מהם ויפצרו באישׁ בלוט מאד ויגשׁו לשׁבר הדלת

Genesis 19:10

SP: וישלחו האנושים את ידם ויביאו את לוט אליהם הביתה ואת הדלת סגרו
MT: וישׁלחו האנשׁים את ידם ויביאו את לוט אליהם הביתה ואת הדלת סגרו

Genesis 19:12

SP: ויאמרו המלאכים אל לוט עוד מי לך פה חתן בניך ובנתיך וכל אשר לך בעיר הוציא מן המקום הזה
MT: ויאמרו האנשׁים אל לוט עד מי לך פה חתן ובניך ובנתיך וכל אשׁר לך בעיר הוצא מן המקום

Genesis 19:13

SP: כי משחיתים אנחנו את המקום הזה כי גדלה צעקתם את פני יהוה וישלחנו יהוה להשחיתה
MT: כי משׁחתים אנחנו את המקום הזה כי גדלה צעקתם את פני יהוה וישׁלחנו יהוה לשׁחתה

Genesis 19:14

SP: ויצא לוט וידבר אל חתניו לקחי בנתיו ויאמר קומו צאו מן המקום הזה כי משחית יהוה את העיר ויהי כמצחק בעיני חתניו
MT: ויצא לוט וידבר׀ אל חתניו׀ לקחי בנתיו ויאמר קומו צאו מן המקום הזה כי משׁחית יהוה את העיר ויהי כמצחק בעיני חתניו

Genesis 19:15

SP: וכמו השחר עלה ויאיצו המלאכים בלוט לאמר קום קח את אשתך ואת שתי בנתיך הנמצאות פן תספה בעון העיר
MT: וכמו השׁחר עלה ויאיצו המלאכים בלוט לאמר קום קח את אשׁתך ואת שׁתי בנתיך הנמצאת פן תספה בעון העיר

Genesis 19:16

SP: ויתמהמה ויחזקו האנושים בידו וביד אשתו וביד שתי בנתיו בחמלת יהוה עליו ויוציאהו ויניחהו מחוץ לעיר
MT: ויתמהמה׀ ויחזקו האנשׁים בידו וביד אשׁתו וביד שׁתי בנתיו בחמלת יהוה עליו ויצאהו וינחהו מחוץ לעיר

Genesis 19:17

SP: ויהי כהוציאם אתם החוצה ויאמר המלט על נפשך אל תבט אחריך ואל תעמד בכל הככר ההרה המלט פן תספה
MT: ויהי כהוציאם אתם החוצה ויאמר המלט על נפשׁך אל תביט אחריך ואל תעמד בכל הככר ההרה המלט פן תספה

Genesis 19:18

SP: ויאמר לוט אליהם אל נא אדני
MT: ויאמר לוט אלהם אל נא אדני

Genesis 19:20

SP: הנה נא העיר הזאת קרובה לנוס שמה והיא מצער אמלט נא שמה הלוא מצער היא ותחיה נפשי
MT: הנה נא העיר הזאת קרבה לנושׁמה והיא מצער אמלטה נא שׁמה הלא מצער הוא ותחי נפשׁי

Genesis 19:22

SP: מהר המלט שמה כי לא אוכל לעשות דבר עד באכה שמה על כן קרא שם העיר צער
MT: מהר המלט שׁמה כי לא אוכל לעשׂות דבר עד באך שׁמה על כן קרא שׁם העיר צוער

Genesis 19:25

SP: ויהפך את הערים האלה ואת כל הככר ואת כל ישבי הערים וצמח האדמה
MT: ויהפך את הערים האל ואת כל הככר ואת כל ישׁבי הערים וצמח האדמה

Genesis 19:26

SP: ותבט אשתו מאחריו ותהי נצב מלח
MT: ותבט אשׁתו מאחריו ותהי נציב מלח

Genesis 19:28

SP: וישקף על פני סדם ועמרה ועל פני כל הארץ הככר וירא והנה עלה קיטור הארץ כקיטור הכבשן
MT: וישׁקף על פני סדם ועמרה ועל כל פני ארץ הככר וירא והנה עלה קיטר הארץ כקיטר הכבשׁן

Genesis 19:29

SP: ויהי בהשחית אלהים את ערי הככר ויזכר אלהים את אברהם וישלח את לוט מתוך האפכה בהפכו את הערים אשר ישב בהן לוט
MT: ויהי בשׁחת אלהים את ערי הככר ויזכר אלהים את אברהם וישׁלח את לוט מתוך ההפכה בהפך את הערים אשׁר ישׁב בהן לוט

Genesis 19:30

SP: ויעל לוט מצער וישב בהר ושתי בנתיו עמו כי ירא לשבת בצער וישב במערה הוא ושתי בנתיו עמו
MT: ויעל לוט מצוער וישׁב בהר ושׁתי בנתיו עמו כי ירא לשׁבת בצוער וישׁב במערה הוא ושׁתי בנתיו

Genesis 19:32

SP: לכי נשקה את אבינו יין ונשכבה עמו ונחיה מאבינו זרע
MT: לכה נשׁקה את אבינו יין ונשׁכבה עמו ונחיה מאבינו זרע

Genesis 19:33

SP: ותשקיהן את אביהן יין בלילה ההוא ותבא הבכירה ותשכב את אביה ולא ידע בשכבה ובקומה
MT: ותשׁקין את אביהן יין בלילה הוא ותבא הבכירה ותשׁכב את אביה ולא ידע בשׁכבה ובקומה

Genesis 19:34

SP: ויהי ממחרת ותאמר הבכירה אל הצעירה הנה שכבתי אמש את אבי נשקינו יין גם הלילה ובאי שכבי עמו ונחיה מאבינו זרע
MT: ויהי ממחרת ותאמר הבכירה אל הצעירה הן שׁכבתי אמשׁ את אבי נשׁקנו יין גם הלילה ובאי שׁכבי עמו ונחיה מאבינו זרע

Genesis 19:35

SP: ותשקיהן גם בלילה ההוא את אביהן יין ותקם הצעירה ותשכב עמו ולא ידע בשכבה ובקומה
MT: ותשׁקין גם בלילה ההוא את אביהן יין ותקם הצעירה ותשׁכב עמו ולא ידע בשׁכבה ובקמה

Genesis 19:36

SP: ותהרנה שתי בנות לוט מאביהן
MT: ותהרין שׁתי בנות לוט מאביהן

Genesis 19:37

SP: ותלד הבכירה בן ותקרא את שמו מואב הוא אבי מואב עד היום
MT: ותלד הבכירה בן ותקרא שׁמו מואב הוא אבי מואב עד היום

Genesis 19:38

SP: והצעירה גם היא ילדה בן ותקרא את שמו בנ עמי הוא אבי בני עמון עד היום
MT: והצעירה גם הוא ילדה בן ותקרא שׁמו בן עמי הוא אבי בני עמון עד היום

Genesis 20:1

SP: ויסע משם אברהם ארץ הנגב וישב בין קדש ובין שור ויגר בגרר
MT: ויסע משׁם אברהם ארצה הנגב וישׁב בין קדשׁ ובין שׁור ויגר בגרר

Genesis 20:2

SP: ויאמר אברהם אל שרה אשתו אחותי היא וישלח אבימלך מלך גרר ויקח את שרה
MT: ויאמר אברהם אל שׂרה אשׁתו אחתי הוא וישׁלח אבימלך מלך גרר ויקח את שׂרה

Genesis 20:3

SP: ויבא אלהים אל אבימלך בחלום הלילה ויאמר לו הנך מת על אדות האשה אשר לקחת והיא בעילת בעל
MT: ויבא אלהים אל אבימלך בחלום הלילה ויאמר לו הנך מת על האשׁה אשׁר לקחת והוא בעלת בעל

Genesis 20:5

SP: הלוא הוא אמר לי אחותי היא והיא גם אמרה אחי הוא בתם לבבי ובנקיון כפי עשיתי זאת
MT: הלא הוא אמר לי אחתי הוא והיא גם הוא אמרה אחי הוא בתם לבבי ובנקין כפי עשׂיתי זאת

Genesis 20:6

SP: ויאמר אליו האלהים בחלום גם אנכי ידעתי כי בתם לבבך עשית זאת ואחשך גם אנכי אתך מחטאה לי על כן לא נתתיך לנגע אליה
MT: ויאמר אליו האלהים בחלם גם אנכי ידעתי כי בתם לבבך עשׂית זאת ואחשׂך גם אנכי אותך מחטו לי על כן לא נתתיך לנגע אליה

Genesis 20:7

SP: ועתה השב את אשת האיש כי נביא הוא ויתפלל בעדך וחיה ואם אינך משיב דע כי מות תמות אתה וכל אשר לך
MT: ועתה השׁב אשׁת האישׁ כי נביא הוא ויתפלל בעדך וחיה ואם אינך משׁיב דע כי מות תמות אתה וכל אשׁר לך

Genesis 20:8

SP: וישכם אבימלך בבקר ויקרא לכל עבדיו וידבר את כל הדברים האלה באזניהם וייראו כל האנשים מאד
MT: וישׁכם אבימלך בבקר ויקרא לכל עבדיו וידבר את כל הדברים האלה באזניהם וייראו האנשׁים מאד

Genesis 20:9

SP: ויקרא אבימלך לאברהם ויאמר לו מה עשית לנו ומה חטאתי לך כי הבאת עלי ועל ממלכתי חטאה גדלה מעשים אשר לא יעשון עשית עמדי
MT: ויקרא אבימלך לאברהם ויאמר לו מה עשׂית לנו ומה חטאתי לך כי הבאת עלי ועל ממלכתי חטאה גדלה מעשׂים אשׁר לא יעשׂו עשׂית עמדי

Genesis 20:11

SP: ויאמר אברהם כי יראתי כי אמרתי רק אין יראת אלהים במקום הזה והרגוני על דבר אשתי
MT: ויאמר אברהם כי אמרתי רק אין יראת אלהים במקום הזה והרגוני על דבר אשׁתי

Genesis 20:12

SP: וגם האמנם אחותי היא בת אבי אך לא בת אמי ותהי לי לאשה
MT: וגם אמנה אחתי בת אבי הוא אך לא בת אמי ותהי לי לאשׁה

Genesis 20:13

SP: ויהי כאשר התעה אתי אלהים מבית אבי ומארץ מולדתי ואמר לה זה חסדיך אשר תעשין עמדי אל כל המקום אשר נבוא שמה אמרי לי אחי הוא
MT: ויהי כאשׁר התעו אתי אלהים מבית אבי ואמר לה זה חסדך אשׁר תעשׂי עמדי אל כל המקום אשׁר נבוא שׁמה אמרי לי אחי הוא

Genesis 20:14

SP: ויקח אבימלך אלף כסף וצאן ובקר ועבדים ושפחות ויתן לאברהם וישב לו את שרה אשתו
MT: ויקח אבימלך צאן ובקר ועבדים ושׁפחת ויתן לאברהם וישׁב לו את שׂרה אשׁתו

Genesis 20:16

SP: ולשרה אמר הנה נתתי אלף כסף לאחיך הנה הוא ליך כסות עינים ולכל אשר אתיך ואת הכל ונוכחת
MT: ולשׂרה אמר הנה נתתי אלף כסף לאחיך הנה הוא לך כסות עינים לכל אשׁר אתך ואת כל ונכחת

Genesis 20:17

SP: ויתפלל אברהם אל האלהים וירפא אלהים את אבימלך ואת אשתו ואמתיו וילדו
MT: ויתפלל אברהם אל האלהים וירפא אלהים את אבימלך ואת אשׁתו ואמהתיו וילדו

Genesis 20:18

SP: כי עצר עצר אלהים בעד כל רחם לבית אבימלך על דבר שרה אשת אברהם
MT: כי עצר עצר יהוה בעד כל רחם לבית אבימלך על דבר שׂרה אשׁת אברהם

Genesis 21:7

SP: ותאמר מי מלל לאברהם היניקה בנים שרה כי ילדתי לו בן לזקניו
MT: ותאמר מי מלל לאברהם היניקה בנים שׂרה כי ילדתי בן לזקניו

Genesis 21:8

SP: ויגדל הילד ויגמל ויעש אברהם משתה גדול ביום הגמל את יצחק בנו
MT: ויגדל הילד ויגמל ויעשׂ אברהם משׁתה גדול ביום הגמל את יצחק

Genesis 21:10

SP: ותאמר לאברהם גרש את האמה הזאת ואת בנה כי לא יירש בן האמה הזאת עם בני עם יצחק
MT: ותאמר לאברהם גרשׁ האמה הזאת ואת בנה כי לא יירשׁ בן האמה הזאת עם בני עם יצחק

Genesis 21:11

SP: וירע הדבר מאד בעיני אברהם על אדות בנו
MT: וירע הדבר מאד בעיני אברהם על אודת בנו

Genesis 21:12

SP: ויאמר אלהים אל אברהם אל ירע בעיניך על הנער ועל אמתך כל אשר תאמר אליך שרה שמע בקולה כי ביצחק יקרא לך זרע
MT: ויאמר אלהים אל אברהם אל ירע בעיניך על הנער ועל אמתך כל אשׁר תאמר אליך שׂרה שׁמע בקלה כי ביצחק יקרא לך זרע

Genesis 21:13

SP: וגם את בן האמה הזאת לגוי גדול אשימנו כי זרעך הוא
MT: וגם את בן האמה לגוי אשׂימנו כי זרעך הוא

Genesis 21:14

SP: וישכם אברהם בבקר ויקח לחם וחמת מים ויתן אל הגר שם על שכמה ואת הילד וישלחה ותלך ותתע במדבר באר שבע
MT: וישׁכם אברהם׀ בבקר ויקח לחם וחמת מים ויתן אל הגר שׂם על שׁכמה ואת הילד וישׁלחה ותלך ותתע במדבר באר שׁבע

Genesis 21:15

SP: ויכלו המים מן החמת ותשליך את הילד תחת אחד השחים
MT: ויכלו המים מן החמת ותשׁלך את הילד תחת אחד השׂיחם

Genesis 21:16

SP: ותלך ותשב לה מנגד הרחקה כמטוי קשת כי אמרה אל אראה במות הילד ותשב מנגד ותשא את קולה ותבך
MT: ותלך ותשׁב לה מנגד הרחק כמטחוי קשׁת כי אמרה אל אראה במות הילד ותשׁב מנגד ותשׂא את קלה ותבך

Genesis 21:17

SP: וישמע אלהים את קול הנער ויקרא מלאך אלהים אל הגר מן השמים ויאמר לה מלכי הגר אל תיראי כי שמע אלהים את קול הנער באשר הוא שם
MT: וישׁמע אלהים את קול הנער ויקרא מלאך אלהים׀ אל הגר מן השׁמים ויאמר לה מה לך הגר אל תיראי כי שׁמע אלהים אל קול הנער באשׁר הוא שׁם

Genesis 21:18

SP: קומי שאי את הנער וחזקי את ידך בו כי לגוי גדול אשימנו
MT: קומי שׂאי את הנער והחזיקי את ידך בו כי לגוי גדול אשׂימנו

Genesis 21:20

SP: ויהי אלהים את הנער ויגדל וישב במדבר ויהי רבי קשת
MT: ויהי אלהים את הנער ויגדל וישׁב במדבר ויהי רבה קשׁת

Genesis 21:21

SP: וישב במדבר פראן ותקח לו אמו אשה מארץ מצרים
MT: וישׁב במדבר פארן ותקח לו אמו אשׁה מארץ מצרים

Genesis 21:22

SP: ויהי בעת ההיא ויאמר אבימלך ופי כל שר צבאו אל אברהם לאמר אלהים עמך בכל אשר אתה עשה
MT: ויהי בעת ההוא ויאמר אבימלך ופיכל שׂר צבאו אל אברהם לאמר אלהים עמך בכל אשׁר אתה עשׂה

Genesis 21:23

SP: ועתה השבע לי באלהים הנה אם תשקר לי ולניני ולנגדי וכחסד אשר עשיתי עמך תעשה עמדי ועם הארץ אשר גרת בה
MT: ועתה השׁבעה לי באלהים הנה אם תשׁקר לי ולניני ולנכדי כחסד אשׁר עשׂיתי עמך תעשׂה עמדי ועם הארץ אשׁר גרתה בה

Genesis 21:24

SP: ויאמר אברהם אנכי השבע
MT: ויאמר אברהם אנכי אשׁבע

Genesis 21:25

SP: והוכיח אברהם את אבימלך על אדות באר המים אשר גזלו עבדי אבימלך
MT: והוכח אברהם את אבימלך על אדות באר המים אשׁר גזלו עבדי אבימלך

Genesis 21:28

SP: ויצב אברהם שבע כבשות צאן לבדהן
MT: ויצב אברהם את שׁבע כבשׂת הצאן לבדהן

Genesis 21:29

SP: ויאמר אבימלך אל אברהם מה הנה שבע הכבשות האלה אשר הצבת לבדהן
MT: ויאמר אבימלך אל אברהם מה הנה שׁבע כבשׂת האלה אשׁר הצבת לבדנה

Genesis 21:30

SP: ויאמר אברהם כי את שבע הכבשות תקח מידי בעבור תהיה לי לעדה כי חפרתי את הבאר הזאת
MT: ויאמר כי את שׁבע כבשׂת תקח מידי בעבור תהיה לי לעדה כי חפרתי את הבאר הזאת

Genesis 21:32

SP: ויכרתו ברית בבאר שבע ויקם אבימלך ופי כל שר צבאו וישבו אל ארץ פלשתים
MT: ויכרתו ברית בבאר שׁבע ויקם אבימלך ופיכל שׂר צבאו וישׁבו אל ארץ פלשׁתים

Genesis 21:33

SP: ויטע אברהם אשל בבאר שבע ויקרא שם בשם יהוה אל עולם
MT: ויטע אשׁל בבאר שׁבע ויקרא שׁם בשׁם יהוה אל עולם

Genesis 22:2

SP: ויאמר קח נא את בנך את יחידך אשר אהבת את יצחק ולך לך אל ארץ המוראה והעלהו שם עלה על אחד ההרים אשר אמר אליך
MT: ויאמר קח נא את בנך את יחידך אשׁר אהבת את יצחק ולך לך אל ארץ המריה והעלהו שׁם לעלה על אחד ההרים אשׁר אמר אליך

Genesis 22:3

SP: וישכם אברהם בבקר ויחבש את חמורו ויקח את שני נעריו אתו ואת יצחק בנו ויבקע עצי העלה ויקם וילך אל המקום אשר אמר לו האלהים
MT: וישׁכם אברהם בבקר ויחבשׁ את חמרו ויקח את שׁני נעריו אתו ואת יצחק בנו ויבקע עצי עלה ויקם וילך אל המקום אשׁר אמר לו האלהים

Genesis 22:5

SP: ויאמר אברהם אל נעריו שבו לכם פה עם החמור ואני והנער נלכה עד כה ונשתחוי ונשוב אליכם
MT: ויאמר אברהם אל נעריו שׁבו לכם פה עם החמור ואני והנער נלכה עד כה ונשׁתחוה ונשׁובה אליכם

Genesis 22:8

SP: ויאמר אברהם אלהים יראה לו שה לעלה בני וילכו שניהם יחדו
MT: ויאמר אברהם אלהים יראה לו השׂה לעלה בני וילכו שׁניהם יחדו

Genesis 22:11

SP: ויקרא אליו מלאך יהוה מן השמים ויאמר אברהם אברהם ויאמר הנני
MT: ויקרא אליו מלאך יהוה מן השׁמים ויאמר אברהם׀ אברהם ויאמר הנני

Genesis 22:12

SP: ויאמר אל תשלח ידך על הנער ואל תעשה לו מאומה כי עתה ידעתי כי ירא אלהים אתה ולא חשכת את בנך את יחידך ממני
MT: ויאמר אל תשׁלח ידך אל הנער ואל תעשׂ לו מאומה כי׀ עתה ידעתי כי ירא אלהים אתה ולא חשׂכת את בנך את יחידך ממני

Genesis 22:13

SP: וישא אברהם את עיניו וירא והנה איל אחד נאחז בסבך בקרניו וילך אברהם ויקח את האיל ויעלהו עלה תחת בנו
MT: וישׂא אברהם את עיניו וירא והנה איל אחר נאחז בסבך בקרניו וילך אברהם ויקח את האיל ויעלהו לעלה תחת בנו

Genesis 22:14

SP: ויקרא אברהם את שם המקום ההוא יהוה יראה אשר יאמר היום בהר יהוה יראה
MT: ויקרא אברהם שׁם המקום ההוא יהוה׀ יראה אשׁר יאמר היום בהר יהוה יראה

Genesis 22:16

SP: ויאמר בי נשבעתי נאם יהוה כי יען אשר עשית את הדבר הזה ולא חשכת את בנך את יחידך ממני
MT: ויאמר בי נשׁבעתי נאם יהוה כי יען אשׁר עשׂית את הדבר הזה ולא חשׂכת את בנך את יחידך

Genesis 22:17

SP: כי ברוך אברכך והרבה ארבה את זרעך ככוכבי השמים וכחול אשר על שפת הים ויירש זרעך את שער איביו
MT: כי ברך אברכך והרבה ארבה את זרעך ככוכבי השׁמים וכחול אשׁר על שׂפת הים וירשׁ זרעך את שׁער איביו

Genesis 22:18

SP: והתברכו בזרעך כל גוי הארץ עקב אשר שמעת בקולי
MT: והתברכו בזרעך כל גויי הארץ עקב אשׁר שׁמעת בקלי

Genesis 22:20

SP: ויהי אחר הדברים האלה ויגד לאברהם לאמר הנה ילדה מלכה גם היא בנים לנחור אחיך
MT: ויהי אחרי הדברים האלה ויגד לאברהם לאמר הנה ילדה מלכה גם הוא בנים לנחור אחיך

Genesis 22:21

SP: את עוץ בכורו ואת בוז אחיו ואת קמואל אבי ארם
MT: את עוץ בכרו ואת בוז אחיו ואת קמואל אבי ארם

Genesis 22:22

SP: ואת כשד ואת חזו ואת פילדש ואת ידלף ואת בתואל
MT: ואת כשׂד ואת חזו ואת פלדשׁ ואת ידלף ואת בתואל

Genesis 22:23

SP: ובתואל הוליד את רבקה שמנה אלה ילדה מלכה לנחור אחי אברהם
MT: ובתואל ילד את רבקה שׁמנה אלה ילדה מלכה לנחור אחי אברהם

Genesis 22:24

SP: ופילגשו ושמה רומה ותלד גם היא את טבח ואת גחם ואת תחש ואת מעכה
MT: ופילגשׁו ושׁמה ראומה ותלד גם הוא את טבח ואת גחם ואת תחשׁ ואת מעכה

" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "\n", " \n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from difflib import SequenceMatcher\n", "from IPython.display import HTML, display\n", "\n", "def highlightMatches(baseText, comparisonText):\n", " matcher = SequenceMatcher(None, baseText, comparisonText)\n", " highlightedComparisonText = \"\" \n", " for tag, i1, i2, j1, j2 in matcher.get_opcodes():\n", " if tag == \"equal\": # Identical parts\n", " highlightedComparisonText += comparisonText[j1:j2]\n", " else: # Non-matching parts\n", " highlightedComparisonText += f'{comparisonText[j1:j2]}' \n", " return highlightedComparisonText\n", "\n", "def cleanText(text):\n", " replacements = [\n", " # for the transcoded strings\n", " ('00_P', ''), # Remove '00_P'\n", " ('00_S', ''), # Remove '00_S'\n", " ('00', ''), # Remove '00'\n", " ('&', ' '), # Replace '&' with a space\n", " # for the Hebrew strings\n", " ('ס ', ''), # Final Samekh\n", " ('פ ', ''), # Final Pe\n", " ('׃', ''), # End of verse\n", " ('־',' ') # maqaf\n", " ]\n", " # Apply each replacement\n", " for old, new in replacements:\n", " text = text.replace(old, new)\n", " return text\n", "\n", "# Function to format and highlight verse differences between MT and SP\n", "def formatAndHighlight(label, MTverseText, SPverseText):\n", " book, chapter, verse = label\n", " MTverseNode = Tmt.nodeFromSection(label)\n", " MTtext = cleanText(Tmt.text(MTverseNode, \"text-orig-plain\"))\n", " SPverseNode = Tsp.nodeFromSection(label)\n", " SPtext = Tsp.text(SPverseNode)\n", " SPmarkedText = highlightMatches(MTtext, SPtext)\n", " MTmarkedText = highlightMatches(SPtext, MTtext)\n", " formattedDiff = (\n", " f'

{book} {chapter}:{verse}

'\n", " f'

SP: {SPmarkedText}
MT: {MTmarkedText}

'\n", " )\n", " return formattedDiff\n", "\n", "# Gather differences into an HTML string\n", "reportTitle=f'Differences between MT and SP for parasha {parashaNameEnglish} ({parashaStart}-{parashaEnd})'\n", "htmlContent = f'

{reportTitle}

'\n", "for label, MTverseText in MTverses.items():\n", " SPverseText = SPverses.get(label, '')\n", " MTverseText = cleanText(MTverseText)\n", " if MTverseText != SPverseText: # Check for differences\n", " difference = formatAndHighlight(label, MTverseText, SPverseText)\n", " htmlContent += difference\n", "\n", "# Display the HTML content in the notebook\n", "display(HTML(htmlContent))\n", "\n", "# Define the HTML filename and store to file\n", "fileName = f\"differences_MT_SP({parashaNameEnglish.replace(' ','_')}).html\"\n", "htmlContentFull = wrapHTML(htmlContent,reportTitle)\n", "with open(fileName, \"w\", encoding=\"utf-8\") as file:\n", " file.write(htmlContentFull)\n", " \n", "# display download button\n", "downloadButton = f\"\"\"\n", "', '>').replace('\"', '"').replace(\"'\", ''')}\" target=\"_blank\">\n", " \n", "\n", "\"\"\"\n", "display(HTML(downloadButton))" ] }, { "cell_type": "markdown", "id": "da916301", "metadata": {}, "source": [ "# 4 - Compare texts using minimum Levenshtein distance\n", "##### [Back to ToC](#TOC)" ] }, { "cell_type": "markdown", "id": "f516dc36-754b-4b37-b2d7-7f07b18310ac", "metadata": {}, "source": [ "The Levenshtein distance measures the minimum number of single-character edits (insertions, deletions, or substitutions) needed to transform one text into another, providing a quantitative way to compare textual differences. For comparing the Masoretic Text and Samaritan Pentateuch, it highlights variations in spelling, word order, or minor textual changes. \n", "In the context of the Levenshtein distance (in the script below `threshold`), a higher number indicates greater dissimilarity between two texts, meaning more edits (insertions, deletions, or substitutions) are needed to transform one text into the other." ] }, { "cell_type": "code", "execution_count": 6, "id": "e71c202d-a845-4e35-89a4-02d6a45fff31", "metadata": {}, "outputs": [ { "data": { "text/html": [ "

Levenshtein distance >20 between MT and SP for parasha Vayera (Genesis 18:1-22:24)

Genesis 20:13

SP: ויהי כאשר התעה אתי אלהים מבית אבי ומארץ מולדתי ואמר לה זה חסדיך אשר תעשין עמדי אל כל המקום אשר נבוא שמה אמרי לי אחי הוא
MT: ויהי כאשׁר התעו אתי אלהים מבית אבי ואמר לה זה חסדך אשׁר תעשׂי עמדי אל כל המקום אשׁר נבוא שׁמה אמרי לי אחי הוא

Levenshtein Distance: 22

" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "\n", " \n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from Levenshtein import distance\n", "from IPython.display import HTML, display\n", "\n", "threshold = 20\n", "\n", "# Create an HTML string to store the output\n", "reportTitle=f'Levenshtein distance >{threshold} between MT and SP for parasha {parashaNameEnglish} ({parashaStart}-{parashaEnd})'\n", "htmlContent = f'

{reportTitle}

'\n", "\n", "# Generate the HTML content\n", "for label, MTverseText in MTverses.items():\n", " SPverseText = SPverses.get(label, '')\n", " levDistance = distance(MTverseText, SPverseText) # Calculate the distance\n", " if levDistance > threshold:\n", " formattedDiff = formatAndHighlight(label, MTverseText, SPverseText)\n", " formattedDiff += f'

Levenshtein Distance: {levDistance}

' # Add the distance\n", " htmlContent += formattedDiff # Append to the HTML content\n", "\n", "# Display the HTML content in the notebook\n", "display(HTML(htmlContent))\n", "\n", "# Define the HTML filename and store \n", "fileName = f\"levenshtein_differences_MT_SP({parashaNameEnglish.replace(' ','_')}).html\"\n", "htmlContentFull = wrapHTML(htmlContent,reportTitle)\n", "with open(fileName, \"w\", encoding=\"utf-8\") as file:\n", " file.write(htmlContentFull)\n", " \n", "# display download button\n", "downloadButton = f\"\"\"\n", "', '>').replace('\"', '"').replace(\"'\", ''')}\" target=\"_blank\">\n", " \n", "\n", "\"\"\"\n", "display(HTML(downloadButton))" ] }, { "cell_type": "markdown", "id": "63886933", "metadata": {}, "source": [ "# 5 - Comparison of spelling of proper nouns between SP and MT\n", "##### [Back to ToC](#TOC)\n", "\n", "This section focuses on comparing the spelling of proper nouns between the Samaritan Pentateuch (SP) and the Masoretic Text (MT). Proper nouns, including names of people, places, and unique terms, often exhibit variations in spelling" ] }, { "cell_type": "code", "execution_count": 7, "id": "a4011f7c", "metadata": {}, "outputs": [], "source": [ "import collections\n", "\n", "def collectProperNounSpellings(F, L, T, inputList):\n", " \"\"\"\n", " Collect proper noun spellings and their associated word node numbers.\n", " Ensures only one tuple is stored for each lexeme-to-spelling mapping.\n", " \"\"\"\n", " properNounsSpellings = {}\n", " for bookChapterVerse in inputList:\n", " verseNode = T.nodeFromSection(bookChapterVerse)\n", " wordNodes = L.d(verseNode, 'word')\n", " for wordNode in wordNodes:\n", " if F.sp.v(wordNode) == 'nmpr': # Check if the word is a proper noun\n", " lex = F.lex.v(wordNode) # Lexical form\n", " spelling = F.g_cons.v(wordNode) # Spelling\n", " # Store only the first occurrence for each lex-to-cons mapping\n", " if lex not in properNounsSpellings or spelling not in {item[0] for item in properNounsSpellings[lex]}:\n", " properNounsSpellings.setdefault(lex, []).append((spelling, wordNode))\n", " return properNounsSpellings\n", " \n", "SPspellingDict = collectProperNounSpellings(Fsp, Lsp, Tsp, bookChapterVerseList) \n", "MTspellingDict = collectProperNounSpellings(Fmt, Lmt, Tmt, bookChapterVerseList)" ] }, { "cell_type": "code", "execution_count": 8, "id": "4f596918-087e-4658-bc57-0ffc85779cb7", "metadata": {}, "outputs": [ { "data": { "text/html": [ "

Spelling differences in proper nouns between SP and MT for parasha Vayera (Genesis 18:1-22:24)

Word: Zoar Genesis 19:22

  • MT Spelling: צוער
  • SP Spelling: צער

Word: Paran Genesis 21:21

  • MT Spelling: פארן
  • SP Spelling: פראן

Word: Phicol Genesis 21:22

  • MT Spelling: פיכל
  • SP Spelling: None

Word: Moriah Genesis 22:2

  • MT Spelling: מריה
  • SP Spelling: None

Word: Pildash Genesis 22:22

  • MT Spelling: פלדשׁ
  • SP Spelling: פילדשׁ

Word: Reumah Genesis 22:24

  • MT Spelling: ראומה
  • SP Spelling: רומה
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "\n", " \n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from IPython.display import HTML, display\n", "\n", "# Initialize HTML content\n", "reportTitle=f'Spelling differences in proper nouns between SP and MT for parasha {parashaNameEnglish} ({parashaStart}-{parashaEnd})'\n", "htmlContent = f'

{reportTitle}

'\n", "\n", "# Generate the HTML output\n", "for lex, MTspellings in MTspellingDict.items():\n", " # Retrieve SP spellings, defaulting to an empty set if lex is not found\n", " SPspellings = SPspellingDict.get(lex, set())\n", "\n", " # Extract only the spellings (ignoring node numbers) for comparison\n", " MTspellingSet = {spelling for spelling, _ in MTspellings}\n", " SPspellingSet = {spelling for spelling, _ in SPspellings}\n", "\n", " # Compare the sets of spellings\n", " if MTspellingSet != SPspellingSet:\n", " # Print MT spelling with reference\n", " MTnode = list(MTspellings)[0][1] # Get first tuple's node number\n", " book, chapter, verse = Tmt.sectionFromNode(MTnode)\n", " MTgloss = Fmt.gloss.v(MTnode)\n", " MTspelling = Fmt.g_cons_utf8.v(MTnode)\n", "\n", " # Build HTML output\n", " output = (\n", " f'

Word: {MTgloss} '\n", " f''\n", " f'{book} {chapter}:{verse}

'\n", " f'
  • MT Spelling: {MTspelling}
  • '\n", " )\n", "\n", " # Print SP spellings with reference\n", " if SPspellings:\n", " SPnode = list(SPspellings)[0][1] # Get first tuple's node number\n", " SPspelling = Fsp.g_cons_utf8.v(SPnode)\n", " output += f'
  • SP Spelling: {SPspelling}
'\n", " else:\n", " output += '
  • SP Spelling: None
  • '\n", "\n", " # Append the output to the HTML content\n", " htmlContent += output\n", "\n", "# Save the HTML content to a file\n", "fileName = f\"spelling_differences_SP_MT({parashaNameEnglish.replace(' ','_')}).html\"\n", "with open(fileName, \"w\", encoding=\"utf-8\") as file:\n", " file.write(htmlContent)\n", "\n", "# Display the HTML content in the notebook\n", "display(HTML(htmlContent))\n", "\n", "# wrap html header and footer and display a download button\n", "htmlContentFull = wrapHTML(htmlContent,reportTitle)\n", "downloadButton = f\"\"\"\n", "', '>').replace('\"', '"').replace(\"'\", ''')}\" target=\"_blank\">\n", " \n", "\n", "\"\"\"\n", "display(HTML(downloadButton))" ] }, { "cell_type": "markdown", "id": "0fbcc828-2880-4d36-bd66-5a9f085b616d", "metadata": {}, "source": [ "# 6 - References and acknowledgement \n", "##### [Back to ToC](#TOC)\n", "\n", "1 Christian Canu Højgaard, Martijn Naaijer, & Stefan Schorch. (2023). Text-Fabric Dataset of the Samaritan Pentateuch. Zenodo. https://doi.org/10.5281/zenodo.7734632\n", "\n", "2 [Notebook created by Martijn Naaijer](https://github.com/DT-UCPH/sp/blob/main/notebooks/combine_sp_with_mt_data.ipynb)" ] }, { "cell_type": "markdown", "id": "4e319feb-814e-4903-922a-58bae953224c", "metadata": { "tags": [] }, "source": [ "# 7 - Required libraries \n", "##### [Back to ToC](#TOC)\n", "\n", "The scripts in this notebook require (beside `text-fabric`) the following Python libraries to be installed in the environment:\n", "\n", " collections\n", " difflib\n", " IPython\n", " Levenshtein\n", "\n", "You can install any missing library from within Jupyter Notebook using either`pip` or `pip3`." ] }, { "cell_type": "markdown", "id": "68f75bc4-7bc2-42f1-af91-fe6e5b83a277", "metadata": {}, "source": [ "# 8 - Notebook version details\n", "##### [Back to ToC](#TOC)\n", "\n", "
    \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
    AuthorTony Jurg
    Version1.1
    Date18 November 2024
    \n", "
    " ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.7" } }, "nbformat": 4, "nbformat_minor": 5 }