Programming theologians - KNAW'ΒΙΒΛΟΣ ΓΕΝΕΣΕΩΣ ΙΗΣΟΥ ΧΡΙΣΤΟΥ ΥΙΟΥ...

26
Programming theologians Text-Fabric (https://github.com/ETCBC/text-fabric) : Ancient texts as fabrics of source and annotations. data model (https://github.com/ETCBC/text-fabric/wiki/Data-model) : Text objects, relationships, features. Got it? Get it! home page (https://github.com/ETCBC/text-fabric/wiki) Join the computing gang 1. go to https://shebanq.jove.surfsara.nl (https://shebanq.jove.surfsara.nl) and log in (see paper ticket) 2. select assignment prog_theo, fetch leipzig and click it 3. click Programming theologians.ipynb and o-you-go Before the beginning

Transcript of Programming theologians - KNAW'ΒΙΒΛΟΣ ΓΕΝΕΣΕΩΣ ΙΗΣΟΥ ΧΡΙΣΤΟΥ ΥΙΟΥ...

Page 1: Programming theologians - KNAW'ΒΙΒΛΟΣ ΓΕΝΕΣΕΩΣ ΙΗΣΟΥ ΧΡΙΣΤΟΥ ΥΙΟΥ ΔΑΥΙΔ ΥΙΟΥ ΑΒΡΑΑΜ. Out[18]: 'βίβλος γένεσις Ἰησοῦς

Programming theologiansText-Fabric (https://github.com/ETCBC/text-fabric): Ancient texts asfabrics of source and annotations.

data model (https://github.com/ETCBC/text-fabric/wiki/Data-model):Text objects, relationships, features.

Got it? Get it!

home page (https://github.com/ETCBC/text-fabric/wiki)

Join the computing gang

1. go to https://shebanq.jove.surfsara.nl (https://shebanq.jove.surfsara.nl) and log in (see paper ticket)2. select assignment prog_theo, fetch leipzig and click it3. click Programming theologians.ipynb and off-you-go

Before the beginning

Page 2: Programming theologians - KNAW'ΒΙΒΛΟΣ ΓΕΝΕΣΕΩΣ ΙΗΣΟΥ ΧΡΙΣΤΟΥ ΥΙΟΥ ΔΑΥΙΔ ΥΙΟΥ ΑΒΡΑΑΜ. Out[18]: 'βίβλος γένεσις Ἰησοῦς

In [1]:

API to the Hebrew Text

In [2]:

In [3]:

API to the Greek Text

This is Text-Fabric 2.3.7Api reference : https://github.com/ETCBC/text-fabric/wiki/Api (https://github.com/ETCBC/text-fabric/wiki/Api)Tutorial : https://github.com/ETCBC/text-fabric/blob/master/docs/tutorial.ipynb (https://github.com/ETCBC/text-fabric/blob/master/docs/tutorial.ipynb)Data sources : https://github.com/ETCBC/text-fabric-data (https://github.com/ETCBC/text-fabric-data)Data docs : https://etcbc.github.io/text-fabric-data (https://etcbc.github.io/text-fabric-data)Shebanq docs : https://shebanq.ancient-data.org/text (https://shebanq.ancient-data.org/text)Slack team : https://shebanq.slack.com/signup (https://shebanq.slack.com/signup)Questions? Ask [email protected] for an invite to Slack111 features found and 0 ignored

0.00s loading features ... | 0.17s B sp from /Users/dirk/github/text-fabric-data/hebrew/etcbc4c | 0.00s Feature overview: 104 for nodes; 5 for edges; 2 configs; 7 computed 5.76s All features loaded/computed - for details use loadLog()

import collections from IPython.display import display import matplotlib.pyplot as plt%matplotlib inline import pandaspandas.set_option('display.notebook_repr_html', True)

from tf.fabric import Fabric ETCBC = 'hebrew/etcbc4c'PHONO = 'hebrew/phono' TF_H = Fabric( modules=[ETCBC, PHONO], silent=False )

apiH = TF_H.load('sp')

Page 3: Programming theologians - KNAW'ΒΙΒΛΟΣ ΓΕΝΕΣΕΩΣ ΙΗΣΟΥ ΧΡΙΣΤΟΥ ΥΙΟΥ ΔΑΥΙΔ ΥΙΟΥ ΑΒΡΑΑΜ. Out[18]: 'βίβλος γένεσις Ἰησοῦς

In [4]:

In [5]:

Easy switching

This is Text-Fabric 2.3.7Api reference : https://github.com/ETCBC/text-fabric/wiki/Api (https://github.com/ETCBC/text-fabric/wiki/Api)Tutorial : https://github.com/ETCBC/text-fabric/blob/master/docs/tutorial.ipynb (https://github.com/ETCBC/text-fabric/blob/master/docs/tutorial.ipynb)Data sources : https://github.com/ETCBC/text-fabric-data (https://github.com/ETCBC/text-fabric-data)Data docs : https://etcbc.github.io/text-fabric-data (https://etcbc.github.io/text-fabric-data)Shebanq docs : https://shebanq.ancient-data.org/text (https://shebanq.ancient-data.org/text)Slack team : https://shebanq.slack.com/signup (https://shebanq.slack.com/signup)Questions? Ask [email protected] for an invite to Slack63 features found and 0 ignored

0.00s loading features ... | 0.05s B psp from /Users/dirk/github/text-fabric-data/greek/sblgnt | 0.00s Feature overview: 60 for nodes; 2 for edges; 1 configs; 7 computed 1.73s All features loaded/computed - for details use loadLog()

TF_G = Fabric(modules='greek/sblgnt')

apiG = TF_G.load('psp')

Page 4: Programming theologians - KNAW'ΒΙΒΛΟΣ ΓΕΝΕΣΕΩΣ ΙΗΣΟΥ ΧΡΙΣΤΟΥ ΥΙΟΥ ΔΑΥΙΔ ΥΙΟΥ ΑΒΡΑΑΜ. Out[18]: 'βίβλος γένεσις Ἰησοῦς

In [6]:

In the beginningThe first verse

In Hebrew

In [7]:

In [8]:

In [9]:

Out[8]:

' בראשית ברא אלהים את השמים ואת הארץ׃'

Out[9]:

'bᵊrēšˌîṯ bārˈā ʔᵉlōhˈîm ʔˌēṯ haššāmˌayim wᵊʔˌēṯ hāʔˈāreṣ . '

def doGreek(): global T global L global F global Fs T = apiG.T L = apiG.L F = apiG.F Fs = apiG.Fs def doHebrew(): global T global L global F global Fs T = apiH.T L = apiH.L F = apiH.F Fs = apiH.Fs def doingHebrew(): return F is apiH.F def doingGreek(): return F is apiG.F

doHebrew()

T.text(range(1,12))

T.text(range(1,12), fmt='text-phono-full')

Page 5: Programming theologians - KNAW'ΒΙΒΛΟΣ ΓΕΝΕΣΕΩΣ ΙΗΣΟΥ ΧΡΙΣΤΟΥ ΥΙΟΥ ΔΑΥΙΔ ΥΙΟΥ ΑΒΡΑΑΜ. Out[18]: 'βίβλος γένεσις Ἰησοῦς

In [10]:

In [11]:

In Greek

In [12]:

In [13]:

In [14]:

In [15]:

Out[10]:

{'lex-orig-full', 'lex-orig-plain', 'lex-trans-full', 'lex-trans-plain', 'text-orig-full', 'text-orig-full-ketiv', 'text-orig-plain', 'text-phono-full', 'text-trans-full', 'text-trans-full-ketiv', 'text-trans-plain'}

Out[11]:

' ב ראשית ברא אלהימ את ה שמימ ו את ה ארצ'

Out[13]:

'verse'

Out[14]:

[1, 2, 3, 4, 5, 6, 7, 8]

Out[15]:

'Βίβλος γενέσεως Ἰησοῦ χριστοῦ υἱοῦ Δαυὶδ υἱοῦ Ἀβραάμ. '

T.formats

T.text(range(1,12), fmt='lex-orig-plain')

doGreek()

firstVerse = T.nodeFromSection(('Matthew', 1, 1))F.otype.v(firstVerse)

words = L.d(firstVerse, otype='word')words

T.text(words)

Page 6: Programming theologians - KNAW'ΒΙΒΛΟΣ ΓΕΝΕΣΕΩΣ ΙΗΣΟΥ ΧΡΙΣΤΟΥ ΥΙΟΥ ΔΑΥΙΔ ΥΙΟΥ ΑΒΡΑΑΜ. Out[18]: 'βίβλος γένεσις Ἰησοῦς

In [16]:

In [17]:

In [18]:

Man and womanGod created the genders, we count them.

Which genders have we?

In [19]:

In [20]:

Genders in Hebrew and Greek

Out[16]:

{'lex-orig-full', 'text-orig-full', 'text-orig-plain'}

Out[17]:

'ΒΙΒΛΟΣ ΓΕΝΕΣΕΩΣ ΙΗΣΟΥ ΧΡΙΣΤΟΥ ΥΙΟΥ ΔΑΥΙΔ ΥΙΟΥ ΑΒΡΑΑΜ. '

Out[18]:

'βίβλος γένεσις Ἰησοῦς Χριστός υἱός Δαυίδ υἱός Ἀβραάμ '

0.00s loading features ... | 0.21s B gn from /Users/dirk/github/text-fabric-data/hebrew/etcbc4c 0.22s All additional features loaded - for details use loadLog()

Out[20]:

{'NA', 'f', 'm', 'unknown'}

T.formats

T.text(words, fmt='text-orig-plain')

T.text(words, fmt='lex-orig-full')

doHebrew() TF_H.load('gn', add=True)

{F.gn.v(w) for w in F.otype.s('word')}

Page 7: Programming theologians - KNAW'ΒΙΒΛΟΣ ΓΕΝΕΣΕΩΣ ΙΗΣΟΥ ΧΡΙΣΤΟΥ ΥΙΟΥ ΔΑΥΙΔ ΥΙΟΥ ΑΒΡΑΑΜ. Out[18]: 'βίβλος γένεσις Ἰησοῦς

In [21]:

In [22]:

In [23]:

Counting genders

In [24]:

... in graphic detail ...

0.00s loading features ... | 0.06s B Gender from /Users/dirk/github/text-fabric-data/greek/sblgnt 0.07s All additional features loaded - for details use loadLog()

Greek: {None, 'Neuter', 'Feminine', 'Masculine'}Hebrew: {'NA', 'm', 'f', 'unknown'}

Counter({'NA': 180152, 'm': 164191, 'unknown': 45524, 'f': 36714})

doGreek()TF_G.load('Gender', add=True)

def getGenders(): featureName = 'gn' if doingHebrew() else 'Gender' return {Fs(featureName).v(w) for w in F.otype.s('word')}

doGreek()print('Greek: {}'.format(getGenders()))doHebrew()print('Hebrew: {}'.format(getGenders()))

def countGenders(): featureName = 'gn' if doingHebrew() else 'Gender' stats = collections.Counter() for w in F.otype.s('word'): stats[Fs(featureName).v(w)] += 1 print(stats)countGenders()

Page 8: Programming theologians - KNAW'ΒΙΒΛΟΣ ΓΕΝΕΣΕΩΣ ΙΗΣΟΥ ΧΡΙΣΤΟΥ ΥΙΟΥ ΔΑΥΙΔ ΥΙΟΥ ΑΒΡΑΑΜ. Out[18]: 'βίβλος γένεσις Ἰησοῦς

In [25]:

In [26]:

Genesis, Exodus, Leviticus, Numbers, Deuteronomy, Joshua, Judges, 1_Samuel, 2_Samuel, 1_Kings, 2_Kings, Isaiah, Jeremiah, Ezekiel, Hosea, Joel, Amos, Obadiah, Jonah, Micah, Nahum, Habakkuk, Zephaniah, Haggai, Zechariah, Malachi, Psalms, Job, Proverbs, Ruth, Song_of_songs, Ecclesiastes, Lamentations, Esther, Daniel, Ezra, Nehemiah, 1_Chronicles, 2_Chronicles

def genderBias(book): bookNode = T.nodeFromSection((book,)) chapterNodes = L.d(bookNode, otype='chapter') x = [T.sectionFromNode(c)[1] for c in chapterNodes] masc = dict((c, 0) for c in x) fem = dict((c, 0) for c in x) neut = dict((c, 0) for c in x) absent = dict((c, 0) for c in x) total = dict((c, 0) for c in x) genderFeature = 'gn' if doingHebrew() else 'Gender' for chapterNode in chapterNodes: chapter = T.sectionFromNode(chapterNode)[1] words = L.d(chapterNode, otype='word') for w in words: total[chapter] += 1 gender = Fs(genderFeature).v(w) if gender in {'m', 'Masculine'}: masc[chapter] += 1 if gender in {'f', 'Feminine'}: fem[chapter] += 1 if gender in {'Neuter'}: neut[chapter] += 1 if gender in {'NA', 'unknown', None}: absent[chapter] += 1 m = [100 * masc[c] / total[c] for c in x] f = [100 * fem[c] / total[c] for c in x] n = [100 * neut[c] / total[c] for c in x] a = [100 * absent[c] / total[c] for c in x] fig = plt.figure() plt.plot(x, m, 'b-', x, f, 'r-', x, n, 'g-', x, a, '0.5') plt.axis([x[0], x[-1], 0, 70]) plt.xticks(x, x, rotation='vertical') plt.margins(0.2) plt.subplots_adjust(bottom=0.15); plt.title('gender in {} {}-{}'.format(book, x[0], x[-1]))

print(', '.join(T.sectionFromNode(b)[0] for b in F.otype.s('book')))

Page 9: Programming theologians - KNAW'ΒΙΒΛΟΣ ΓΕΝΕΣΕΩΣ ΙΗΣΟΥ ΧΡΙΣΤΟΥ ΥΙΟΥ ΔΑΥΙΔ ΥΙΟΥ ΑΒΡΑΑΜ. Out[18]: 'βίβλος γένεσις Ἰησοῦς

In [27]:

Inspect some peaks and dips

In [28]:

In [29]:

In [30]:

0.00s loading features ... | 0.04s B gloss from /Users/dirk/github/text-fabric-data/hebrew/etcbc4c 0.04s All additional features loaded - for details use loadLog()

genderBias('Leviticus')

TF_H.load('gloss', add=True)

def atAGlance(book, chapter): words = L.d(T.nodeFromSection((book, chapter)), otype='word') freqs = collections.Counter() for w in words: if doingHebrew(): lexeme = L.u(w, otype='lex')[0] freqs[F.gloss.v(lexeme)] += 1 else: freqs[F.UnicodeLemma.v(w)] += 1 for (gloss, freq) in sorted(freqs.items(), key=lambda x: (-x[1], x[0])): print('{:>3} {}'.format(freq, gloss))

def inDepth(book, chapter): chapterNode = T.nodeFromSection((book, chapter)) verseNodes = L.d(chapterNode, otype='verse') for verseNode in verseNodes: words = L.d(verseNode, otype='word') print('{}: {}'.format(T.sectionFromNode(verseNode)[2], T.text(words)))

Page 10: Programming theologians - KNAW'ΒΙΒΛΟΣ ΓΕΝΕΣΕΩΣ ΙΗΣΟΥ ΧΡΙΣΤΟΥ ΥΙΟΥ ΔΑΥΙΔ ΥΙΟΥ ΑΒΡΑΑΜ. Out[18]: 'βίβλος γένεσις Ἰησοῦς

In [31]:

In [32]:

31 and 31 not 26 to 24 nakedness 21 the 18 <object marker> 17 uncover 14 in 11 woman 10 daughter 10 make 10 she 9 <relative> 9 father 8 be unclean 8 i 8 whole 7 YHWH 7 earth 6 abomination 6 from 5 face 5 mother 5 regulation 5 sister 5 that 5 these 4 god(s) 4 keep 4 son 3 approach 3 as 3 body 3 brother

genderBias('Leviticus')

atAGlance('Leviticus', 18)

Page 11: Programming theologians - KNAW'ΒΙΒΛΟΣ ΓΕΝΕΣΕΩΣ ΙΗΣΟΥ ΧΡΙΣΤΟΥ ΥΙΟΥ ΔΑΥΙΔ ΥΙΟΥ ΑΒΡΑΑΜ. Out[18]: 'βίβλος γένεσις Ἰησοῦς

In [33]:

In [34]:

132 and 54 <object marker> 49 in 40 to 32 the 23 earth 19 not 14 give 13 be hostile 11 even 11 i 10 from 10 sin 10 upon 10 walk 8 be 8 covenant 8 if 7 be desolate 7 dagger 7 eat 7 face 7 opposition 7 pursue 7 with 6 <relative> 6 YHWH 5 abhor 5 break 5 god(s) 5 make 5 pay off 5 sabbath 5 soul

genderBias('Leviticus')

atAGlance('Leviticus', 26)

Page 12: Programming theologians - KNAW'ΒΙΒΛΟΣ ΓΕΝΕΣΕΩΣ ΙΗΣΟΥ ΧΡΙΣΤΟΥ ΥΙΟΥ ΔΑΥΙΔ ΥΙΟΥ ΑΒΡΑΑΜ. Out[18]: 'βίβλος γένεσις Ἰησοῦς

In [35]:

Man, woman and thing

In [36]:

The Greek genders

In [37]:

לא־תעשו לכם אלילם ופסל ומצבה לא־תקימו לכם ואבן משכית לא תתנו בארצכם לה :1 שתחות עליה כי אני יהוה אלהיכם׃ את־שבתתי תשמרו ומקדשי תיראו אני יהוה׃ ס :2 אם־בחקתי תלכו ואת־מצותי תשמרו ועשיתם אתם׃ :3 ונתתי גשמיכם בעתם ונתנה הארץ יבולה ועץ השדה יתן פריו׃ :4והשיג לכם דיש את־בציר ובציר ישיג את־זרע ואכלתם לחמכם לשבע וישבתם לבטח ב :5 ארצכם׃ ונתתי שלום בארץ ושכבתם ואין מחריד והשבתי חיה רעה מן־הארץ וחרב לא־תעבר :6 בארצכם׃ ורדפתם את־איביכם ונפלו לפניכם לחרב׃ :7 ורדפו מכם חמשה מאה ומאה מכם רבבה ירדפו ונפלו איביכם לפניכם לחרב׃ :8 ופניתי אליכם והפריתי אתכם והרביתי אתכם והקימתי את־בריתי אתכם׃ :9 ואכלתם ישן נושן וישן מפני חדש תוציאו׃ :10 ונתתי משכני בתוככם ולא־תגעל נפשי אתכם׃ :11 והתהלכתי בתוככם והייתי לכם לאלהים ואתם תהיו־לי לעם׃ :12 אני יהוה אלהיכם אשר הוצאתי אתכם מארץ מצרים מהית להם עבדים ואשבר מטת :13 עלכם ואול אתכם קוממיות׃ פ ואם־לא תשמעו לי ולא תעשו את כל־המצות האלה׃ :14 ואם־בחקתי תמאסו ואם את־משפטי תגעל נפשכם לבלתי עשות את־כל־מצותי :15 להפרכם את־בריתי׃אף־אני אעשה־זאת לכם והפקדתי עליכם בהלה את־השחפת ואת־הקדחת מכלות עיני :16 ם ומדיבת נפש וזרעתם לריק זרעכם ואכלהו איביכם׃ ונתתי פני בכם ונגפתם לפני איביכם ורדו בכם שנאיכם ונסתם ואין־רדף אתכם׃ ס :17 ואם־עד־אלה לא תשמעו לי ויספתי ליסרה אתכם שבע על־חטאתיכם׃ :18 ושברתי את־גאון עזכם ונתתי את־שמיכם כברזל ואת־ארצכם כנחשה׃ :19 ותם לריק כחכם ולא־תתן ארצכם את־יבולה ועץ הארץ לא יתן פריו׃ :20 ואם־תלכו עמי קרי ולא תאבו לשמע לי ויספתי עליכם מכה שבע כחטאתיכם׃ :21 והשלחתי בכם את־חית השדה ושכלה אתכם והכריתה את־בהמתכם והמעיטה אתכם :22 ונשמו דרכיכם׃ ואם־באלה לא תוסרו לי והלכתם עמי קרי׃ :23 והלכתי אף־אני עמכם בקרי והכיתי אתכם גם־אני שבע על־חטאתיכם׃ :24והבאתי עליכם חרב נקמת נקם־ברית ונאספתם אל־עריכם ושלחתי דבר בתוככם ונתת :25 ם ביד־אויב׃בשברי לכם מטה־לחם ואפו עשר נשים לחמכם בתנור אחד והשיבו לחמכם במשקל ו :26 אכלתם ולא תשבעו׃ ס ואם־בזאת לא תשמעו לי והלכתם עמי בקרי׃ :27 והלכתי עמכם בחמת־קרי ויסרתי אתכם אף־אני שבע על־חטאתיכם׃ :28 ואכלתם בשר בניכם ובשר בנתיכם תאכלו׃ :29 והשמדתי את־במתיכם והכרתי את־חמניכם ונתתי את־פגריכם על־פגרי גלוליכם וגעלה :30 נפשי אתכם׃ ונתתי את־עריכם חרבה והשמותי את־מקדשיכם ולא אריח בריח ניחחכם׃ :31 והשמתי אני את־הארץ ושממו עליה איביכם הישבים בה׃ :32 ואתכם אזרה בגוים והריקתי אחריכם חרב והיתה ארצכם שממה ועריכם יהיו חרבה׃ :33אז תרצה הארץ את־שבתתיה כל ימי השמה ואתם בארץ איביכם אז תשבת הארץ וה :34 רצת את־שבתתיה׃ כל־ימי השמה תשבת את אשר לא־שבתה בשבתתיכם בשבתכם עליה׃ :35 והנשארים בכם והבאתי מר בלבבם בארצת איביהם ורדף אתם קול עלה נדף ונסו :36 מנסת־חרב ונפלו ואין רדף׃ וכשלו איש־באחיו כמפני־חרב ורדף אין ולא־תהיה לכם תקומה לפני איביכם׃ :37 ואבדתם בגוים ואכלה אתכם ארץ איביכם׃ :38 והנשארים בכם ימקו בעונם בארצת איביכם ואף בעונת אבתם אתם ימקו׃ :39 והתודו את־עונם ואת־עון אבתם במעלם אשר מעלו־בי ואף אשר־הלכו עמי בקרי׃ :40 אף־אני אל עמם בקרי והבאתי אתם בארץ איביהם או־אז יכנע לבבם הערל ואז ירצו :41 את־עונם׃וזכרתי את־בריתי יעקוב ואף את־בריתי יצחק ואף את־בריתי אברהם אזכר והארץ אזכ :42

0.00s loading features ... 0.00s All additional features loaded - for details use loadLog()

Out[37]:

{None, 'Neuter', 'Feminine', 'Masculine'}

inDepth('Leviticus', 26)

doGreek() TF_G.load('UnicodeLemma', add=True)

getGenders()

Page 13: Programming theologians - KNAW'ΒΙΒΛΟΣ ΓΕΝΕΣΕΩΣ ΙΗΣΟΥ ΧΡΙΣΤΟΥ ΥΙΟΥ ΔΑΥΙΔ ΥΙΟΥ ΑΒΡΑΑΜ. Out[18]: 'βίβλος γένεσις Ἰησοῦς

In [38]:

In [39]:

139 ὁ 57 καί 23 αὐτός 16 εἰμί 16 ἐν 15 δέ 15 οὐ 14 μή 13 σύ 12 λέγω 11 ἐπί 10 ἡμέρα 9 οὗτος 9 πᾶς 9 τότε 9 ἐκεῖνος 8 γάρ 7 γίνομαι 7 οὐρανός 7 πολύς 7 υἱός 7 ἔρχομαι 7 ὅς 7 ὅτι 6 ἀπό 6 ἄνθρωπος 6 ἐγώ 5 γινώσκω 5 διά 5 κύριος 5 μετά 5 οὕτω(ς) 5 ἕως 4 δοῦλος

genderBias('Matthew')

atAGlance('Matthew', 24)

Page 14: Programming theologians - KNAW'ΒΙΒΛΟΣ ΓΕΝΕΣΕΩΣ ΙΗΣΟΥ ΧΡΙΣΤΟΥ ΥΙΟΥ ΔΑΥΙΔ ΥΙΟΥ ΑΒΡΑΑΜ. Out[18]: 'βίβλος γένεσις Ἰησοῦς

In [40]:

In [41]:

1: Καὶ ὁ Ἰησοῦς ἐξελθὼν ἀπὸ τοῦ ἱεροῦ ἐπορεύετο, καὶ προσῆλθον οἱ μαθηταὶ αὐτοῦ ἐπιδεῖξαι αὐτῷ τὰς οἰκοδομὰς τοῦ ἱεροῦ· 2: δὲ ὁ ἀποκριθεὶς εἶπεν αὐτοῖς· Οὐ βλέπετε ταῦτα πάντα; ἀμὴν λέγω ὑμῖν, οὐ μὴ ἀφεθῇ ὧδε ἐπὶ λίθον λίθος ὃς οὐ καταλυθήσεται. 3: δὲ Καθημένου αὐτοῦ ἐπὶ τοῦ Ὄρους τῶν Ἐλαιῶν προσῆλθον αὐτῷ οἱ μαθηταὶ κατ’ ἰδίαν λέγοντες· Εἰπὸν ἡμῖν πότε ταῦτα ἔσται, καὶ τί τὸ σημεῖον τῆς σῆς παρουσίας καὶ συντελείας τοῦ αἰῶνος. 4: καὶ ἀποκριθεὶς ὁ Ἰησοῦς εἶπεν αὐτοῖς· Βλέπετε μή τις ὑμᾶς πλανήσῃ· 5: γὰρ πολλοὶ ἐλεύσονται ἐπὶ τῷ ὀνόματί μου λέγοντες· Ἐγώ εἰμι ὁ χριστός, καὶ πολλοὺς πλανήσουσιν. 6: δὲ μελλήσετε ἀκούειν πολέμους καὶ ἀκοὰς πολέμων· ὁρᾶτε, μὴ θροεῖσθε· γὰρ δεῖ γενέσθαι, ἀλλ’ οὔπω ἐστὶν τὸ τέλος. 7: γὰρ ἐγερθήσεται ἔθνος ἐπὶ ἔθνος καὶ βασιλεία ἐπὶ βασιλείαν, καὶ ἔσονται λιμοὶ καὶ σεισμοὶ κατὰ τόπους· 8: δὲ πάντα ταῦτα ἀρχὴ ὠδίνων. 9: Τότε παραδώσουσιν ὑμᾶς εἰς θλῖψιν καὶ ἀποκτενοῦσιν ὑμᾶς, καὶ ἔσεσθε μισούμενοι ὑπὸ πάντων τῶν ἐθνῶν διὰ τὸ ὄνομά μου. 10: καὶ τότε σκανδαλισθήσονται πολλοὶ καὶ ἀλλήλους παραδώσουσιν καὶ μισήσουσιν ἀλλήλους· 11: καὶ πολλοὶ ψευδοπροφῆται ἐγερθήσονται καὶ πλανήσουσιν πολλούς· 12: καὶ διὰ τὸ πληθυνθῆναι τὴν ἀνομίαν ψυγήσεται ἡ ἀγάπη τῶν πολλῶν. 13: δὲ ὁ ὑπομείνας εἰς τέλος οὗτος σωθήσεται. 14: καὶ κηρυχθήσεται τοῦτο τὸ εὐαγγέλιον τῆς βασιλείας ἐν ὅλῃ τῇ οἰκουμένῃ εἰς μαρτύριον πᾶσιν τοῖς ἔθνεσιν, καὶ τότε ἥξει τὸ τέλος. 15: οὖν Ὅταν ἴδητε τὸ βδέλυγμα τῆς ἐρημώσεως τὸ ῥηθὲν διὰ Δανιὴλ τοῦ προφήτου ἑστὸς ἐν τόπῳ ἁγίῳ, ὁ ἀναγινώσκων νοείτω, 16: τότε οἱ ἐν τῇ Ἰουδαίᾳ φευγέτωσαν ἐπὶ τὰ ὄρη, 17: ὁ ἐπὶ τοῦ δώματος μὴ καταβάτω ἆραι τὰ ἐκ τῆς οἰκίας αὐτοῦ, 18: καὶ ὁ ἐν τῷ ἀγρῷ μὴ ἐπιστρεψάτω ὀπίσω ἆραι τὸ ἱμάτιον αὐτοῦ. 19: δὲ οὐαὶ ταῖς ἐν γαστρὶ ἐχούσαις καὶ ταῖς θηλαζούσαις ἐν ἐκείναις ταῖς ἡμέραις. 20: δὲ προσεύχεσθε ἵνα μὴ γένηται ἡ φυγὴ ὑμῶν χειμῶνος μηδὲ σαββάτῳ· 21: γὰρ ἔσται τότε θλῖψις μεγάλη οἵα οὐ γέγονεν ἀπ’ ἀρχῆς κόσμου ἕως τοῦ νῦν οὐδ’ οὐ μὴ γένηται.

22: καὶ εἰ μὴ ἐκολοβώθησαν αἱ ἡμέραι ἐκεῖναι, ἂν οὐκ ἐσώθη πᾶσα σάρξ· δὲ διὰ τοὺς ἐκλεκτοὺς κολοβωθήσονται αἱ ἡμέραι ἐκεῖναι. 23: ἐάν τότε τις ὑμῖν εἴπῃ· Ἰδοὺ ὧδε ὁ χριστός, ἤ· Ὧδε, μὴ πιστεύσητε· 24: γὰρ ἐγερθήσονται ψευδόχριστοι καὶ ψευδοπροφῆται, καὶ δώσουσιν σημεῖα μεγάλα καὶ τέρατα ὥστε πλανῆσαι εἰ δυνατὸν καὶ τοὺς ἐκλεκτούς· 25: ἰδοὺ προείρηκα ὑμῖν. 26: οὖν ἐὰν εἴπωσιν ὑμῖν· Ἰδοὺ ἐν τῇ ἐρήμῳ ἐστίν, μὴ ἐξέλθητε· Ἰδοὺ ἐν τοῖς ταμείοις, μὴ πιστεύσητε· 27: γὰρ ὥσπερ ἡ ἀστραπὴ ἐξέρχεται ἀπὸ ἀνατολῶν καὶ φαίνεται ἕως δυσμῶν, οὕτως ἔσται ἡ παρουσία τοῦ υἱοῦ τοῦ ἀνθρώπου· 28: ἐὰν ὅπου ᾖ τὸ πτῶμα, ἐκεῖ συναχθήσονται οἱ ἀετοί. 29: δὲ Εὐθέως μετὰ τὴν θλῖψιν τῶν ἡμερῶν ἐκείνων ὁ ἥλιος σκοτισθήσεται, καὶ ἡ σελήνη οὐ δώσει τὸ φέγγος αὐτῆς, καὶ οἱ ἀστέρες πεσοῦνται ἀπὸ τοῦ οὐρανοῦ, καὶ αἱ δυνάμεις τῶν οὐρανῶν σαλευθήσονται. 30: καὶ τότε φανήσεται τὸ σημεῖον τοῦ υἱοῦ τοῦ ἀνθρώπου ἐν τῷ οὐρανῷ, καὶ τότε κόψονται πᾶσαι αἱ φυλαὶ τῆς γῆς καὶ ὄψονται τὸν υἱὸν τοῦ ἀνθρώπου ἐρχόμενον ἐπὶ τῶν νεφελῶν τοῦ οὐρανοῦ μετὰ δυνάμεως καὶ δόξης πολλῆς· 31: καὶ ἀποστελεῖ τοὺς ἀγγέλους αὐτοῦ μετὰ σάλπιγγος μεγάλης, καὶ ἐπισυνάξουσιν τοὺς ἐκλεκτοὺς αὐτοῦ ἐκ τῶν τεσσάρων ἀνέμων ἀπ’ ἄκρων οὐρανῶ

inDepth('Matthew', 24)

genderBias('John')

Page 15: Programming theologians - KNAW'ΒΙΒΛΟΣ ΓΕΝΕΣΕΩΣ ΙΗΣΟΥ ΧΡΙΣΤΟΥ ΥΙΟΥ ΔΑΥΙΔ ΥΙΟΥ ΑΒΡΑΑΜ. Out[18]: 'βίβλος γένεσις Ἰησοῦς

In [42]:

Six days of work (creating data)Semantic plurals in the letter of Jude.

Let's get all nominal phrases.

In [43]:

In [44]:

Generate a data entry formExport this data as CSV so that experts can fill in a new feature: semantically plural.

52 ὁ 40 σύ 34 καί 26 ἐγώ 21 ὅτι 16 λέγω 14 οὐ 13 οὗτος 12 ἐν 11 πατήρ 11 ἔρχομαι 10 αὐτός 10 λαλέω 9 δέ 9 περί 9 ἀλλά 8 κόσμος 8 ἵνα 7 εἰμί 7 μικρός 7 πρός 7 ἔχω 6 ἐκ 5 εἰς 5 οὐδείς 5 πάλιν 5 ἐκεῖνος 5 ἐρωτάω 5 ὥρα 4 αἰτέω 4 θεωρέω 4 λύπη 4 νῦν 4 οὐκέτι 4 πιστεύω 4 πᾶς

4 χαρά 4 ἀμήν 4 ὁράω 4 ὅταν 4 ὑπάγω 3 γάρ 3 θεός 3 λαμβάνω 3 μή 3 μετά 3 οἶδα 3 οὖν 3 παροιμία 3 τίς 3 ἀλήθεια 3 ἀναγγέλλω 3 ἀπό 3 ἄρτι

0.00s loading features ... | 0.18s B Cat from /Users/dirk/github/text-fabric-data/greek/sblgnt 0.19s All additional features loaded - for details use loadLog()

357 NPs in Jude

atAGlance('John', 16)

doGreek()TF_G.load('Cat', add=True)

bookNode = T.nodeFromSection(('Jude',))phraseNodes = L.d(bookNode, otype='phrase')NPs = [p for p in phraseNodes if F.Cat.v(p) == 'np'] print('{} NPs in Jude'.format(len(NPs)))

Page 16: Programming theologians - KNAW'ΒΙΒΛΟΣ ΓΕΝΕΣΕΩΣ ΙΗΣΟΥ ΧΡΙΣΤΟΥ ΥΙΟΥ ΔΑΥΙΔ ΥΙΟΥ ΑΒΡΑΑΜ. Out[18]: 'βίβλος γένεσις Ἰησοῦς

In [45]:

In [46]:

Read the data enrichments

Out[46]:

passage node phrase semanticplural sentence

0 Jude 1:1 400492 Ἰούδας Ἰησοῦ Χριστοῦ δοῦλος,δὲ ἀδελφὸς Ἰακώβου, NaN Ἰούδας Ἰησοῦ Χριστοῦ δοῦλος,

δὲ ἀδελφὸς Ἰακώβο...

1 Jude 1:1 400493 Ἰούδας NaN Ἰούδας Ἰησοῦ Χριστοῦ δοῦλος,δὲ ἀδελφὸς Ἰακώβο...

2 Jude 1:1 400494 Ἰησοῦ Χριστοῦ δοῦλος, δὲἀδελφὸς Ἰακώβου, NaN Ἰούδας Ἰησοῦ Χριστοῦ δοῦλος,

δὲ ἀδελφὸς Ἰακώβο...

3 Jude 1:1 400495 Ἰησοῦ Χριστοῦ δοῦλος, NaN Ἰούδας Ἰησοῦ Χριστοῦ δοῦλος,δὲ ἀδελφὸς Ἰακώβο...

4 Jude 1:1 400496 Ἰησοῦ Χριστοῦ NaN Ἰούδας Ἰησοῦ Χριστοῦ δοῦλος,δὲ ἀδελφὸς Ἰακώβο...

5 Jude 1:1 400497 Ἰησοῦ NaN Ἰούδας Ἰησοῦ Χριστοῦ δοῦλος,δὲ ἀδελφὸς Ἰακώβο...

6 Jude 1:1 400498 Χριστοῦ NaN Ἰούδας Ἰησοῦ Χριστοῦ δοῦλος,δὲ ἀδελφὸς Ἰακώβο...

7 Jude 1:1 400499 δοῦλος, NaN Ἰούδας Ἰησοῦ Χριστοῦ δοῦλος,δὲ ἀδελφὸς Ἰακώβο...

8 Jude 1:1 400500 ἀδελφὸς Ἰακώβου, NaN Ἰούδας Ἰησοῦ Χριστοῦ δοῦλος,δὲ ἀδελφὸς Ἰακώβο...

9 Jude 1:1 400501 ἀδελφὸς NaN Ἰούδας Ἰησοῦ Χριστοῦ δοῦλος,δὲ ἀδελφὸς Ἰακώβο...

10 Jude 1:1 400502 Ἰακώβου, NaN Ἰούδας Ἰησοῦ Χριστοῦ δοῦλος,δὲ ἀδελφὸς Ἰακώβο...

11 Jude 1:1 400503 τοῖς ἐν θεῷ πατρὶ ἠγαπημένοις NaN Ἰούδας Ἰησοῦ Χριστοῦ δοῦλος,

enrichFile = 'np.csv'enrichedFile = 'np-enriched.csv' with open(enrichFile, 'w') as f: fieldNames = ['passage', 'node', 'phrase', 'semantic plural', 'sentence'] f.write('{}\n'.format('\t'.join(fieldNames))) for np in NPs: sn = L.u(np, otype='sentence')[0] sentence = L.d(sn, otype='word') phrase = L.d(np, otype='word') fields = [ '{} {}:{}'.format(*T.sectionFromNode(np)), str(np), T.text(phrase), '', T.text(sentence), ] f.write('{}\n'.format('\t'.join(fields)))

dataFrame = pandas.read_csv(enrichFile, sep='\t')dataFrame.head(100)

Page 17: Programming theologians - KNAW'ΒΙΒΛΟΣ ΓΕΝΕΣΕΩΣ ΙΗΣΟΥ ΧΡΙΣΤΟΥ ΥΙΟΥ ΔΑΥΙΔ ΥΙΟΥ ΑΒΡΑΑΜ. Out[18]: 'βίβλος γένεσις Ἰησοῦς

In [47]:

In [48]:

Save the new feature as a text-fabric file

400518 => p400523 => p400536 => p400538 => s400544 => s400549 => p400553 => p400578 => s400579 => s400595 => p

semNumber = dict() with open(enrichedFile) as f: for (i, line) in enumerate(f): if i == 0: continue # header row fields = line.rstrip('\n').split(';') value = fields[3] if value == '': continue # no data entered node = int(fields[1]) semNumber[node] = value

for p in sorted(semNumber): print('{} => {}'.format(p, semNumber[p]))

Page 18: Programming theologians - KNAW'ΒΙΒΛΟΣ ΓΕΝΕΣΕΩΣ ΙΗΣΟΥ ΧΡΙΣΤΟΥ ΥΙΟΥ ΔΑΥΙΔ ΥΙΟΥ ΑΒΡΑΑΜ. Out[18]: 'βίβλος γένεσις Ἰησοῦς

In [49]:

In [50]:

Check

This is Text-Fabric 2.3.7Api reference : https://github.com/ETCBC/text-fabric/wiki/Api (https://github.com/ETCBC/text-fabric/wiki/Api)Tutorial : https://github.com/ETCBC/text-fabric/blob/master/docs/tutorial.ipynb (https://github.com/ETCBC/text-fabric/blob/master/docs/tutorial.ipynb)Data sources : https://github.com/ETCBC/text-fabric-data (https://github.com/ETCBC/text-fabric-data)Data docs : https://etcbc.github.io/text-fabric-data (https://etcbc.github.io/text-fabric-data)Shebanq docs : https://shebanq.ancient-data.org/text (https://shebanq.ancient-data.org/text)Slack team : https://shebanq.slack.com/signup (https://shebanq.slack.com/signup)Questions? Ask [email protected] for an invite to Slack1 features found and 0 ignored

0.00s Grid feature "otype" not found in/Users/dirk/github/text-fabric/presentations/Leipzig2017-07-06/semantic 0.00s Grid feature "oslots" not found in/Users/dirk/github/text-fabric/presentations/Leipzig2017-07-06/semantic

0.01s Grid feature "otext" not found. Working without Text-API

0.00s Exporting 1 node and 0 edge and 0 config features to /Users/dirk/github/text-fabric/presentations/Leipzig2017-07-06/semantic: | 0.00s T semNumber to /Users/dirk/github/text-fabric/presentations/Leipzig2017-07-06/semantic 0.01s Exported 1 node features and 0 edge features and 0 config features to /Users/dirk/github/text-fabric/presentations/Leipzig2017-07-06/semantic

metaData = dict( semNumber=dict( valueType='str', source='Semantic plurality training set', author='J.S. Bach, Leipzig', ),)TF_G = Fabric(locations='.', modules='semantic')

TF_G.save( nodeFeatures=dict(semNumber=semNumber), metaData=metaData,)

Page 19: Programming theologians - KNAW'ΒΙΒΛΟΣ ΓΕΝΕΣΕΩΣ ΙΗΣΟΥ ΧΡΙΣΤΟΥ ΥΙΟΥ ΔΑΥΙΔ ΥΙΟΥ ΑΒΡΑΑΜ. Out[18]: 'βίβλος γένεσις Ἰησοῦς

In [51]:

Use the new feature

In [52]:

@node@author=J.S. Bach, Leipzig@source=Semantic plurality training set@valueType=str@writtenBy=Text-Fabric@dateWritten=2017-07-19T12:19:42Z

400518 p400523 p400536 p400538 s400544 s400549 p400553 p400578 ss400595 p

This is Text-Fabric 2.3.7Api reference : https://github.com/ETCBC/text-fabric/wiki/Api (https://github.com/ETCBC/text-fabric/wiki/Api)Tutorial : https://github.com/ETCBC/text-fabric/blob/master/docs/tutorial.ipynb (https://github.com/ETCBC/text-fabric/blob/master/docs/tutorial.ipynb)Data sources : https://github.com/ETCBC/text-fabric-data (https://github.com/ETCBC/text-fabric-data)Data docs : https://etcbc.github.io/text-fabric-data (https://etcbc.github.io/text-fabric-data)Shebanq docs : https://shebanq.ancient-data.org/text (https://shebanq.ancient-data.org/text)Slack team : https://shebanq.slack.com/signup (https://shebanq.slack.com/signup)Questions? Ask [email protected] for an invite to Slack64 features found and 0 ignored

!cat semantic/semNumber.tf

LOCATIONS = [ '~/Downloads/text-fabric-data', '~/text-fabric-data', '~/github/text-fabric-data', '/mnt/shared/text-fabric-data',] TF_G = Fabric( locations=LOCATIONS+['.'], modules=['greek/sblgnt', 'semantic'],)

Page 20: Programming theologians - KNAW'ΒΙΒΛΟΣ ΓΕΝΕΣΕΩΣ ΙΗΣΟΥ ΧΡΙΣΤΟΥ ΥΙΟΥ ΔΑΥΙΔ ΥΙΟΥ ΑΒΡΑΑΜ. Out[18]: 'βίβλος γένεσις Ἰησοῦς

In [53]:

Observe it in action

In [54]:

SabbathHave a look at the (un)finished work and see whether it is good.

Janet DykVerbal valence flowchart.

0.00s loading features ... | 0.04s B Number from /Users/dirk/github/text-fabric-data/greek/sblgnt | 0.01s T semNumber from /Users/dirk/github/text-fabric/presentations/Leipzig2017-07-06/semantic | 0.00s Feature overview: 61 for nodes; 2 for edges; 1 configs; 7 computed 1.40s All features loaded/computed - for details use loadLog()

NP 400518: semantically "p", words marked as Singular Singular SingularNP 400523: semantically "p", words marked as PluralNP 400536: semantically "p", words marked as PluralNP 400538: semantically "s", words marked as SingularNP 400544: semantically "s", words marked as Singular Singular Plural Plural SingularNP 400549: semantically "p", words marked as Plural PluralNP 400553: semantically "p", words marked as Plural Plural Plural Plural Singular Singular Singular PluralNP 400578: semantically "s", words marked as Singular Singular Singular Singular Plural Singular SingularNP 400579: semantically "s", words marked as Singular Singular Singular Plural Singular SingularNP 400595: semantically "p", words marked as Plural

apiG = TF_G.load('Number semNumber')doGreek()

for np in NPs: semNumber = F.semNumber.v(np) if not semNumber: continue words = L.d(np, otype='word') print('NP {}: semantically "{}", words marked as {}'.format( np, semNumber, ' '.join(F.Number.v(w) for w in words if F.Number.v(w)), ))

Page 21: Programming theologians - KNAW'ΒΙΒΛΟΣ ΓΕΝΕΣΕΩΣ ΙΗΣΟΥ ΧΡΙΣΤΟΥ ΥΙΟΥ ΔΑΥΙΔ ΥΙΟΥ ΑΒΡΑΑΜ. Out[18]: 'βίβλος γένεσις Ἰησοῦς

Martijn NaaijerWon a grassroots price for setting up a theology course based on SHEBANQ, Jupyter, and R. See Pythoncourse here(https://shebanq.jove.surfsara.nl/user/dirkr/notebooks/shared/martijn/Python_Course/Introduction_to_text_fabric.ipynb)

Page 22: Programming theologians - KNAW'ΒΙΒΛΟΣ ΓΕΝΕΣΕΩΣ ΙΗΣΟΥ ΧΡΙΣΤΟΥ ΥΙΟΥ ΔΑΥΙΔ ΥΙΟΥ ΑΒΡΑΑΜ. Out[18]: 'βίβλος γένεσις Ἰησοῦς
Page 23: Programming theologians - KNAW'ΒΙΒΛΟΣ ΓΕΝΕΣΕΩΣ ΙΗΣΟΥ ΧΡΙΣΤΟΥ ΥΙΟΥ ΔΑΥΙΔ ΥΙΟΥ ΑΒΡΑΑΜ. Out[18]: 'βίβλος γένεσις Ἰησοῦς

Christiaan ErwichTries to track who is who in the Psalms, and is deeply into graph visualization.

Cody Kingham

Page 24: Programming theologians - KNAW'ΒΙΒΛΟΣ ΓΕΝΕΣΕΩΣ ΙΗΣΟΥ ΧΡΙΣΤΟΥ ΥΙΟΥ ΔΑΥΙΔ ΥΙΟΥ ΑΒΡΑΑΜ. Out[18]: 'βίβλος γένεσις Ἰησοῦς

Cody KinghamHelped to convert the SBL Greek New Testament to the Text-Fabric format. Tries to explain to the world(http://www.codykingham.com/etcbc/datacreation) how the ETCBC encoded the Hebrew Bible during a 40year long struggle with computers.

Dirk RoordaTries to recombine everything.

Phonetic transcription of Hebrew (https://rawgit.com/ETCBC/text-fabric/master/phono/phonoTf.html)

Parallel passages (https://shebanq.ancient-data.org/shebanq/static/docs/tools/parallel/parallels.html)

See it in action on SHEBANQ: etcbc4b Genesis 10:1 (https://shebanq.ancient-data.org/hebrew/text?qactive=hlcustom&qsel_one=grey&qpub=x&qget=x&wactive=hlcustom&wsel_one=gray&wpub=x&wget=x&nactive=hlcustom&nsel_one=black&npub=x&nget=v&chapter=10&lang=en&book=Genesis&qw=q&tr=hb&tp=txt_tb1&iid=Mnxjcm9zc3JlZg__&verse=1&version=4b&mr=m&page=1&wd4_statfl=v&ph_arela=v&wd4_statrl=v&sn_an=v&cl=v&wd1_lang=x&wd1_subpos=x&wd2_person=v&sp_rela=v&wd1_pdp=x&sn_n=v&wd3_uvf=x&ph_fun=v&wd1_nmtp=v&gl=v&sp_n=v&pt=v&ph_an=v&ph_typ=x&cl_typ=v&tt=v&wd4_statro=x&wd3_vbs=x&wd1=v&tl=x&wd3=x&wd4=v&wd2_gender=v&ph=v&wd3_vbe=v&wd1_pos=v&ph_det=v&ph_rela=x&wd4_statfo=x&tl_tlv=x&wd2_stem=v&wd2_state=v&ht=v&ph_n=v&tl_tlc=x&cl_tab=v&wd3_nme=x&hl=v&cl_par=v&cl_an=v&cl_n=v&wd3_prs=v&wd3_pfm=x&sp=v&cl_code=v&ht_hk=v&wd2=v&hl_hlc=x&cl_rela=v&wd2_gnumber=v&wd2_tense=v&cl_txt=v&wd1_n=x&sn=v&ht_ht=v&hl_hlv=v&pref=alt)

Page 25: Programming theologians - KNAW'ΒΙΒΛΟΣ ΓΕΝΕΣΕΩΣ ΙΗΣΟΥ ΧΡΙΣΤΟΥ ΥΙΟΥ ΔΑΥΙΔ ΥΙΟΥ ΑΒΡΑΑΜ. Out[18]: 'βίβλος γένεσις Ἰησοῦς

Stand-off markup for changing sources(it is not a nightmare)

Versioning (https://github.com/ETCBC/text-fabric/blob/master/Versions/etcbc-versions.ipynb)

google github text-fabric wiki (https://github.com/ETCBC/text-fabric/wiki)

Thanks

[email protected](mailto:[email protected])Linguistic Annotation and PhilologyWorkshop (http://www.dh.uni-leipzig.de/wo/laphw/) Leipzig, July 6-7, 2017

(https://dans.knaw.nl/en/front-page?set_language=en)

Page 26: Programming theologians - KNAW'ΒΙΒΛΟΣ ΓΕΝΕΣΕΩΣ ΙΗΣΟΥ ΧΡΙΣΤΟΥ ΥΙΟΥ ΔΑΥΙΔ ΥΙΟΥ ΑΒΡΑΑΜ. Out[18]: 'βίβλος γένεσις Ἰησοῦς