{ "cells": [ { "cell_type": "markdown", "id": "f2637008-fceb-47b8-86ac-42633829b391", "metadata": {}, "source": [ "# Proper nouns with or without definite articles (Nestle1904LFT)" ] }, { "cell_type": "markdown", "id": "c7a43f6f-08b8-40da-a1f5-f9cb323c964f", "metadata": {}, "source": [ "## Table of content \n", "* 1 - Introduction\n", " * 1.1 - Why is this relevant?\n", " * 1.2 - Translating into Text-Fabric queries\n", "* 2 - Load Text-Fabric app and data\n", "* 3 - Performing the queries\n", " * 3.1 - TBD\n", " * 3.2 - TBD\n", "* 4 - Discussion\n", " * 4.1 - Textual variants\n", "* 5 - Attribution and footnotes\n", "* 6 - Required libraries\n", " " ] }, { "cell_type": "markdown", "id": "99c8eed2-94dd-4b62-ba6a-487386e93422", "metadata": {}, "source": [ "# 1 - Introduction \n", "##### [Back to TOC](#TOC)\n", "\n", "In this Jupyter NoteBook we will examine the use of proper nouns with or without definite articles in the Greek New Testament.\n", "\n", "Proper nouns in Biblical Greek are typically used without a definite article when they function as names. For example: Πέτρος εἶπε... (Peter said...)" ] }, { "cell_type": "markdown", "id": "f1c6fbd9-2cca-41aa-b6f1-0ef852857dff", "metadata": {}, "source": [ "## 1.1 - Why is this relevant? \n", "##### [Back to TOC](#TOC)\n", "\n", "In the Greek New Testament, the presence or absence of definite articles with proper nouns can carry specific grammatical and semantic implications. The pressence or absence of the article can make a difference for a few reasons, e.g.:\n", "\n", "* Identifiability: The presence of a definite article (e.g., ὁ, ἡ, τὸ) before a proper noun indicates that the noun refers to a specific, identifiable entity. It often implies that the noun is known to both the speaker and the audience. On the other hand, the absence of the definite article suggests a more general or less specific reference.\n", "\n", "* Emphasis: The use or omission of the definite article can be employed for emphasis or to highlight certain aspects of the proper noun. When the definite article is present, it draws attention to the individual or highlight particular qualities or characteristics. Without the definite article, the focus may shift more to the general category or class to which the noun belongs.\n", "\n", "* Unique versus Common Names: Proper nouns in Greek can be classified as either unique or common names. Unique names refer to specific individuals or places, such as Ἰησοῦς or Ἱεροσόλυμα. These often appear with the definite article when referring to a well-known individual or location. Common names, on the other hand, are more general and do not require the definite article. For example, ἄνθρωπος can refer to any man in general.\n", "\n", "* Anaphoric References: In Greek, the presence or absence of the definite article can indicate anaphoric references, referring back to a previous mention. The use of the definite article can signal that the proper noun is referring to someone or something previously introduced or discussed, providing continuity and clarity in the discourse.\n", "\n", "It would be of interest if the Text-Fabric dataset could provide clues to how an article is uses.\n" ] }, { "cell_type": "markdown", "id": "1ad657ef-0133-413e-87bb-9ef12e67573f", "metadata": { "jp-MarkdownHeadingCollapsed": true, "tags": [] }, "source": [ "## 1.2 - Translating into Text-Fabric queries \n", "##### [Back to TOC](#TOC)\n", "\n", "The `wg` (wordgroup) nodes in the Low Fat Tree Text-Fabric data contains a feature called [`wgrule`](https://github.com/tonyjurg/Nestle1904LFT/blob/main/docs/features/wgrule.md) which can take the value `DetNP`." ] }, { "cell_type": "markdown", "id": "b671c880-a546-4849-9384-487ed4a4531a", "metadata": {}, "source": [ "# 2 - Load Text-Fabric app and data \n", "##### [Back to TOC](#TOC)" ] }, { "cell_type": "code", "execution_count": 1, "id": "e72dbefe-43c5-4a03-a8f6-7b885f4e57ea", "metadata": { "tags": [] }, "outputs": [], "source": [ "%load_ext autoreload\n", "%autoreload 2" ] }, { "cell_type": "code", "execution_count": 2, "id": "0825dd50-e607-485f-85f0-83e85ad289f0", "metadata": {}, "outputs": [], "source": [ "# Loading the Text-Fabric code\n", "# Note: it is assumed Text-Fabric is installed in your environment\n", "from tf.fabric import Fabric\n", "from tf.app import use" ] }, { "cell_type": "code", "execution_count": 3, "id": "72661b2a-d195-44cb-a524-1d542784b8d0", "metadata": { "scrolled": true, "tags": [] }, "outputs": [ { "data": { "text/markdown": [ "**Locating corpus resources ...**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "The requested app is not available offline\n", "\t~/text-fabric-data/github/tonyjurg/Nestle1904LFT/app not found\n" ] }, { "data": { "text/html": [ "Status: latest release online v0.6 versus None locally" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "downloading app, main data and requested additions ..." ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "app: ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/app" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "The requested data is not available offline\n", "\t~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 not found\n" ] }, { "data": { "text/html": [ "Status: latest release online v0.6 versus None locally" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "downloading app, main data and requested additions ..." ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "data: ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ " | 0.22s T otype from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 2.28s T oslots from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.56s T book from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.59s T normalized from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.50s T after from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.57s T wordtranslit from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.59s T wordunacc from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.47s T verse from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.60s T unicode from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.60s T word from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.49s T chapter from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | | 0.06s C __levels__ from otype, oslots, otext\n", " | | 1.85s C __order__ from otype, oslots, __levels__\n", " | | 0.07s C __rank__ from otype, __order__\n", " | | 3.40s C __levUp__ from otype, oslots, __rank__\n", " | | 1.91s C __levDown__ from otype, __levUp__, __rank__\n", " | | 0.22s C __characters__ from otext\n", " | | 0.96s C __boundary__ from otype, oslots, __rank__\n", " | | 0.04s C __sections__ from otype, oslots, otext, __levUp__, __levels__, book, chapter, verse\n", " | | 0.22s C __structure__ from otype, oslots, otext, __rank__, __levUp__, book, chapter, verse\n", " | 0.43s T booknumber from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.50s T bookshort from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.49s T case from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.32s T clausetype from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.55s T containedclause from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.41s T degree from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.57s T gloss from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.47s T gn from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.04s T headverse from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.32s T junction from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.55s T lemma from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.51s T lex_dom from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.52s T ln from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.42s T markafter from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.40s T markbefore from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.40s T markorder from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.44s T monad from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.44s T mood from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.52s T morph from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.55s T nodeID from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.49s T nu from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.49s T number from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.44s T person from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.44s T punctuation from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.66s T ref from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.65s T reference from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.50s T roleclausedistance from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.46s T sentence from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.50s T sp from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.50s T sp_full from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.54s T strongs from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.45s T subj_ref from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.43s T tense from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.45s T type from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.44s T voice from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.38s T wgclass from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.33s T wglevel from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.37s T wgnum from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.34s T wgrole from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.37s T wgrolelong from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.40s T wgrule from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.33s T wgtype from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.49s T wordlevel from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.49s T wordrole from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n", " | 0.50s T wordrolelong from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6\n" ] }, { "data": { "text/html": [ "\n", " TF: TF API 12.1.5, tonyjurg/Nestle1904LFT/app v3, Search Reference
\n", " Data: tonyjurg - Nestle1904LFT 0.6, 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", "
Name# of nodes# slots / node% coverage
book275102.93100
chapter260529.92100
verse794317.35100
sentence801117.20100
wg1054306.85524
word1377791.00100
\n", " Sets: no custom sets
\n", " Features:
\n", "
Nestle 1904 (Low Fat Tree)\n", "
\n", "\n", "
\n", "
\n", "after\n", "
\n", "
str
\n", "\n", " ✅ Characters (eg. punctuations) following the word\n", "\n", "
\n", "\n", "
\n", "
\n", "book\n", "
\n", "
str
\n", "\n", " ✅ Book name (in English language)\n", "\n", "
\n", "\n", "
\n", "
\n", "booknumber\n", "
\n", "
int
\n", "\n", " ✅ NT book number (Matthew=1, Mark=2, ..., Revelation=27)\n", "\n", "
\n", "\n", "
\n", "
\n", "bookshort\n", "
\n", "
str
\n", "\n", " ✅ Book name (abbreviated)\n", "\n", "
\n", "\n", "
\n", "
\n", "case\n", "
\n", "
str
\n", "\n", " ✅ Gramatical case (Nominative, Genitive, Dative, Accusative, Vocative)\n", "\n", "
\n", "\n", "
\n", "
\n", "chapter\n", "
\n", "
int
\n", "\n", " ✅ Chapter number inside book\n", "\n", "
\n", "\n", "
\n", "
\n", "clausetype\n", "
\n", "
str
\n", "\n", " ✅ Clause type details (e.g. Verbless, Minor)\n", "\n", "
\n", "\n", "
\n", "
\n", "containedclause\n", "
\n", "
str
\n", "\n", " 🆗 Contained clause (WG number)\n", "\n", "
\n", "\n", "
\n", "
\n", "degree\n", "
\n", "
str
\n", "\n", " ✅ Degree (e.g. Comparitative, Superlative)\n", "\n", "
\n", "\n", "
\n", "
\n", "gloss\n", "
\n", "
str
\n", "\n", " ✅ English gloss\n", "\n", "
\n", "\n", "
\n", "
\n", "gn\n", "
\n", "
str
\n", "\n", " ✅ Gramatical gender (Masculine, Feminine, Neuter)\n", "\n", "
\n", "\n", "
\n", "
\n", "headverse\n", "
\n", "
str
\n", "\n", " ✅ Start verse number of a sentence\n", "\n", "
\n", "\n", "
\n", "
\n", "junction\n", "
\n", "
str
\n", "\n", " ✅ Junction data related to a wordgroup\n", "\n", "
\n", "\n", "
\n", "
\n", "lemma\n", "
\n", "
str
\n", "\n", " ✅ Lexeme (lemma)\n", "\n", "
\n", "\n", "
\n", "
\n", "lex_dom\n", "
\n", "
str
\n", "\n", " ✅ Lexical domain according to Semantic Dictionary of Biblical Greek, SDBG (not present everywhere?)\n", "\n", "
\n", "\n", "
\n", "
\n", "ln\n", "
\n", "
str
\n", "\n", " ✅ Lauw-Nida lexical classification (not present everywhere?)\n", "\n", "
\n", "\n", "
\n", "
\n", "markafter\n", "
\n", "
str
\n", "\n", " 🆗 Text critical marker after word\n", "\n", "
\n", "\n", "
\n", "
\n", "markbefore\n", "
\n", "
str
\n", "\n", " 🆗 Text critical marker before word\n", "\n", "
\n", "\n", "
\n", "
\n", "markorder\n", "
\n", "
str
\n", "\n", "  Order of punctuation and text critical marker\n", "\n", "
\n", "\n", "
\n", "
\n", "monad\n", "
\n", "
int
\n", "\n", " ✅ Monad (smallest token matching word order in the corpus)\n", "\n", "
\n", "\n", "
\n", "
\n", "mood\n", "
\n", "
str
\n", "\n", " ✅ Gramatical mood of the verb (passive, etc)\n", "\n", "
\n", "\n", "
\n", "
\n", "morph\n", "
\n", "
str
\n", "\n", " ✅ Morphological tag (Sandborg-Petersen morphology)\n", "\n", "
\n", "\n", "
\n", "
\n", "nodeID\n", "
\n", "
str
\n", "\n", " ✅ Node ID (as in the XML source data)\n", "\n", "
\n", "\n", "
\n", "
\n", "normalized\n", "
\n", "
str
\n", "\n", " ✅ Surface word with accents normalized and trailing punctuations removed\n", "\n", "
\n", "\n", "
\n", "
\n", "nu\n", "
\n", "
str
\n", "\n", " ✅ Gramatical number (Singular, Plural)\n", "\n", "
\n", "\n", "
\n", "
\n", "number\n", "
\n", "
str
\n", "\n", " ✅ Gramatical number of the verb (e.g. singular, plural)\n", "\n", "
\n", "\n", "
\n", "
\n", "otype\n", "
\n", "
str
\n", "\n", " \n", "\n", "
\n", "\n", "
\n", "
\n", "person\n", "
\n", "
str
\n", "\n", " ✅ Gramatical person of the verb (first, second, third)\n", "\n", "
\n", "\n", "
\n", "
\n", "punctuation\n", "
\n", "
str
\n", "\n", " ✅ Punctuation after word\n", "\n", "
\n", "\n", "
\n", "
\n", "ref\n", "
\n", "
str
\n", "\n", " ✅ Value of the ref ID (taken from XML sourcedata)\n", "\n", "
\n", "\n", "
\n", "
\n", "reference\n", "
\n", "
str
\n", "\n", " ✅ Reference (to nodeID in XML source data, not yet post-processes)\n", "\n", "
\n", "\n", "
\n", "
\n", "roleclausedistance\n", "
\n", "
str
\n", "\n", " ⚠️ Distance to the wordgroup defining the syntactical role of this word\n", "\n", "
\n", "\n", "
\n", "
\n", "sentence\n", "
\n", "
int
\n", "\n", " ✅ Sentence number (counted per chapter)\n", "\n", "
\n", "\n", "
\n", "
\n", "sp\n", "
\n", "
str
\n", "\n", " ✅ Part of Speech (abbreviated)\n", "\n", "
\n", "\n", "
\n", "
\n", "sp_full\n", "
\n", "
str
\n", "\n", " ✅ Part of Speech (long description)\n", "\n", "
\n", "\n", "
\n", "
\n", "strongs\n", "
\n", "
str
\n", "\n", " ✅ Strongs number\n", "\n", "
\n", "\n", "
\n", "
\n", "subj_ref\n", "
\n", "
str
\n", "\n", " 🆗 Subject reference (to nodeID in XML source data, not yet post-processes)\n", "\n", "
\n", "\n", "
\n", "
\n", "tense\n", "
\n", "
str
\n", "\n", " ✅ Gramatical tense of the verb (e.g. Present, Aorist)\n", "\n", "
\n", "\n", "
\n", "
\n", "type\n", "
\n", "
str
\n", "\n", " ✅ Gramatical type of noun or pronoun (e.g. Common, Personal)\n", "\n", "
\n", "\n", "
\n", "
\n", "unicode\n", "
\n", "
str
\n", "\n", " ✅ Word as it apears in the text in Unicode (incl. punctuations)\n", "\n", "
\n", "\n", "
\n", "
\n", "verse\n", "
\n", "
int
\n", "\n", " ✅ Verse number inside chapter\n", "\n", "
\n", "\n", "
\n", "
\n", "voice\n", "
\n", "
str
\n", "\n", " ✅ Gramatical voice of the verb (e.g. active,passive)\n", "\n", "
\n", "\n", "
\n", "
\n", "wgclass\n", "
\n", "
str
\n", "\n", " ✅ Class of the wordgroup (e.g. cl, np, vp)\n", "\n", "
\n", "\n", "
\n", "
\n", "wglevel\n", "
\n", "
int
\n", "\n", " 🆗 Number of the parent wordgroups for a wordgroup\n", "\n", "
\n", "\n", "
\n", "
\n", "wgnum\n", "
\n", "
int
\n", "\n", " ✅ Wordgroup number (counted per book)\n", "\n", "
\n", "\n", "
\n", "
\n", "wgrole\n", "
\n", "
str
\n", "\n", " ✅ Syntactical role of the wordgroup (abbreviated)\n", "\n", "
\n", "\n", "
\n", "
\n", "wgrolelong\n", "
\n", "
str
\n", "\n", " ✅ Syntactical role of the wordgroup (full)\n", "\n", "
\n", "\n", "
\n", "
\n", "wgrule\n", "
\n", "
str
\n", "\n", " ✅ Wordgroup rule information (e.g. Np-Appos, ClCl2, PrepNp)\n", "\n", "
\n", "\n", "
\n", "
\n", "wgtype\n", "
\n", "
str
\n", "\n", " ✅ Wordgroup type details (e.g. group, apposition)\n", "\n", "
\n", "\n", "
\n", "
\n", "word\n", "
\n", "
str
\n", "\n", " ✅ Word as it appears in the text (excl. punctuations)\n", "\n", "
\n", "\n", "
\n", "
\n", "wordlevel\n", "
\n", "
str
\n", "\n", " 🆗 Number of the parent wordgroups for a word\n", "\n", "
\n", "\n", "
\n", "
\n", "wordrole\n", "
\n", "
str
\n", "\n", " ✅ Syntactical role of the word (abbreviated)\n", "\n", "
\n", "\n", "
\n", "
\n", "wordrolelong\n", "
\n", "
str
\n", "\n", " ✅ Syntactical role of the word (full)\n", "\n", "
\n", "\n", "
\n", "
\n", "wordtranslit\n", "
\n", "
str
\n", "\n", " 🆗 Transliteration of the text (in latin letters, excl. punctuations)\n", "\n", "
\n", "\n", "
\n", "
\n", "wordunacc\n", "
\n", "
str
\n", "\n", " ✅ Word without accents (excl. punctuations)\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: tonyjurg/Nestle1904LFT
  3. appPath:C:/Users/tonyj/text-fabric-data/github/tonyjurg/Nestle1904LFT/app
  4. commit: no value
  5. css: ''
  6. dataDisplay:
    • excludedFeatures:
      • orig_order
      • verse
      • book
      • chapter
    • noneValues:
      • none
      • unknown
      • no value
      • NA
      • ''
    • showVerseInTuple: 0
    • textFormat: text-orig-full
  7. docs:
    • docBase: https://github.com/tonyjurg/Nestle1904LFT/blob/main/docs/
    • docPage: about
    • docRoot: https://github.com/tonyjurg/Nestle1904LFT
    • featureBase:https://github.com/tonyjurg/Nestle1904LFT/blob/main/docs/features/<feature>.md
  8. interfaceDefaults: {fmt: layout-orig-full}
  9. isCompatible: True
  10. local: no value
  11. localDir:C:/Users/tonyj/text-fabric-data/github/tonyjurg/Nestle1904LFT/_temp
  12. provenanceSpec:
    • corpus: Nestle 1904 (Low Fat Tree)
    • doi: notyet
    • org: tonyjurg
    • relative: /tf
    • repo: Nestle1904LFT
    • repro: Nestle1904LFT
    • version: 0.6
    • webBase: https://learner.bible/text/show_text/nestle1904/
    • webHint: Show this on the Bible Online Learner website
    • webLang: en
    • webUrl:https://learner.bible/text/show_text/nestle1904/<1>/<2>/<3>
    • webUrlLex: {webBase}/word?version={version}&id=<lid>
  13. release: no value
  14. typeDisplay:
    • book:
      • condense: True
      • hidden: True
      • label: {book}
      • style: ''
    • chapter:
      • condense: True
      • hidden: True
      • label: {chapter}
      • style: ''
    • sentence:
      • hidden: 0
      • label: #{sentence} (start: {book} {chapter}:{headverse})
      • style: ''
    • verse:
      • condense: True
      • excludedFeatures: chapter verse
      • label: {book} {chapter}:{verse}
      • style: ''
    • wg:
      • hidden: 0
      • label:#{wgnum}: {wgtype} {wgclass} {clausetype} {wgrole} {wgrule} {junction}
      • style: ''
    • word:
      • base: True
      • features: lemma
      • featuresBare: gloss
      • surpress: chapter verse
  15. writing: grc
\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/html": [ "
TF API: names N F E L T S C TF Fs Fall Es Eall Cs Call directly usable

" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# load the N1904 app and data\n", "N1904 = use (\"tonyjurg/Nestle1904LFT\", version=\"0.6\", hoist=globals())" ] }, { "cell_type": "code", "execution_count": 4, "id": "3081f61d-ae7c-4cc5-afd2-170117c6a0b6", "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# The following will push the Text-Fabric stylesheet to this notebook (to facilitate proper display with notebook viewer)\n", "N1904.dh(N1904.getCss())" ] }, { "cell_type": "code", "execution_count": 5, "id": "fdbf458c-57e3-497b-bacb-1a1e5765f939", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Set default view in a way to limit noise as much as possible.\n", "N1904.displaySetup(condensed=True, multiFeatures=False,queryFeatures=False)" ] }, { "cell_type": "markdown", "id": "217ec003-7e50-4fa6-982b-67b1dc880b52", "metadata": {}, "source": [ "# 3 - Performing the queries \n", "##### [Back to TOC](#TOC)" ] }, { "cell_type": "markdown", "id": "1b3dd917-8fb5-400b-91a6-6b09e2630bba", "metadata": { "tags": [] }, "source": [ "## 3.1 - Determine articles in combination with proper nouns\n", "##### [Back to TOC](#TOC)\n", "\n", "This query selects each phrase containing (at least) two words: the article (a) and the proper noun (b).\n", "\n", "The query without congruence conditions yealds 9500 results. Adding congruence conditions limits the results step by step: adding [`case`](../features/case.md#README) limits it to 8521, adding [`num`](../features/num.md#README) to 8320, and adding [`gn`]((../features/gn.md#README)) further to 8067." ] }, { "cell_type": "code", "execution_count": 6, "id": "50409058-04d5-4648-8b41-d7e0217ec216", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 0.35s 25918 results\n" ] } ], "source": [ "# Define the query template\n", "ArticulatedQuery = '''\n", "wg wgrule=DetNP\n", " a:word sp=noun\n", " b:word sp=det\n", "'''\n", "\n", "# The following will create a list containing ordered tuples consisting of node numbers of the items as they appear in the query\n", "ArticulatedResult = N1904.search(ArticulatedQuery)" ] }, { "cell_type": "markdown", "id": "afbe10c3-bbac-43fb-abb5-76e0d1c6a09f", "metadata": {}, "source": [ "The list ArticulatedResult contains ordered tuples with the node numbers of the found phrase, det, and noun combinations. The data can now further be analyzed. The following table provides insight in which phrase types most frequently contain an articulated proper noun. This table still needs to deal with multiple findings in the same phrase." ] }, { "cell_type": "code", "execution_count": 7, "id": "6d465b9c-4dfe-4269-a78e-fa50fed95618", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "╒═══════════════════════╤═════════════╕\n", "│ Word Group function │ Frequency │\n", "╞═══════════════════════╪═════════════╡\n", "│ │ 14612 │\n", "├───────────────────────┼─────────────┤\n", "│ s │ 4992 │\n", "├───────────────────────┼─────────────┤\n", "│ o │ 4475 │\n", "├───────────────────────┼─────────────┤\n", "│ adv │ 720 │\n", "├───────────────────────┼─────────────┤\n", "│ io │ 549 │\n", "├───────────────────────┼─────────────┤\n", "│ p │ 423 │\n", "├───────────────────────┼─────────────┤\n", "│ aux │ 105 │\n", "├───────────────────────┼─────────────┤\n", "│ o2 │ 42 │\n", "╘═══════════════════════╧═════════════╛\n" ] } ], "source": [ "# Library to format table\n", "from tabulate import tabulate\n", "\n", "ResultDict = {}\n", "for (wg,det,noun) in ArticulatedResult:\n", " PhraseFunction=F.wgrole.v(wg)\n", " # Check if this Wordgroup Role already exists in ResultDict\n", " if PhraseFunction in ResultDict:\n", " # If it exists, add the count to the existing value\n", " ResultDict[PhraseFunction]+=1\n", " else:\n", " # If it doesn't exist, initialize the count as the value\n", " ResultDict[PhraseFunction]=1\n", " \n", "# Convert the dictionary into a list of key-value pairs and sort it according to frequency\n", "UnsortedTableData = [[key, value] for key, value in ResultDict.items()]\n", "TableData= sorted(UnsortedTableData, key=lambda row: row[1], reverse=True)\n", "\n", "# Produce the table\n", "headers = [\"Word Group function\",\"Frequency\"]\n", "print(tabulate(TableData, headers=headers, tablefmt='fancy_grid'))" ] }, { "cell_type": "markdown", "id": "b9ac1ca3-cc63-4241-b717-fa99b6527edc", "metadata": {}, "source": [ "There is a dificulty to determine how many different phrases are involved..... The verselocation below points to the start of the phrase (clearest indicated by the high number for Luke 3:23 which starts a long geneology)." ] }, { "cell_type": "code", "execution_count": 8, "id": "389aa755-8881-4de5-add1-b41d216a3d01", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "╒═══════════════════════════╤═════════════╕\n", "│ verselocation │ Frequency │\n", "╞═══════════════════════════╪═════════════╡\n", "│ ('Ephesians', 1, 7) │ 323 │\n", "├───────────────────────────┼─────────────┤\n", "│ ('Colossians', 1, 13) │ 205 │\n", "├───────────────────────────┼─────────────┤\n", "│ ('Ephesians', 3, 4) │ 131 │\n", "├───────────────────────────┼─────────────┤\n", "│ ('Acts', 3, 25) │ 123 │\n", "├───────────────────────────┼─────────────┤\n", "│ ('II_Corinthians', 8, 18) │ 96 │\n", "├───────────────────────────┼─────────────┤\n", "│ ('Revelation', 19, 15) │ 90 │\n", "├───────────────────────────┼─────────────┤\n", "│ ('Revelation', 11, 18) │ 79 │\n", "├───────────────────────────┼─────────────┤\n", "│ ('II_Corinthians', 4, 4) │ 76 │\n", "├───────────────────────────┼─────────────┤\n", "│ ('Ephesians', 1, 9) │ 68 │\n", "├───────────────────────────┼─────────────┤\n", "│ ('Revelation', 3, 12) │ 62 │\n", "╘═══════════════════════════╧═════════════╛\n" ] }, { "data": { "text/markdown": [ "**Warning: table truncated!**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "PhrasesDict = {}\n", "for (wg,det,noun) in ArticulatedResult:\n", " location=T.sectionFromNode(wg)\n", " # Check if this location already exists in PhrasesDict\n", " if location in PhrasesDict:\n", " # If it exists, it is a duplicate: add the count to the existing value\n", " PhrasesDict[location]+=1\n", " else:\n", " # If it doesn't exist, mark it down\n", " PhrasesDict[location]=1\n", " \n", "# Convert the dictionary into a list of key-value pairs and sort it according to frequency\n", "UnsortedTableData = [[key, value] for key, value in PhrasesDict.items()]\n", "TableData= sorted(UnsortedTableData, key=lambda row: row[1], reverse=True)\n", "\n", "# In this example the table will be truncated \n", "max_rows = 10 # Set your desired number of rows here\n", "TruncatedTable = TableData[:max_rows]\n", "\n", "# Produce the table\n", "headers = [\"verselocation\",\"Frequency\"]\n", "print(tabulate(TruncatedTable, headers=headers, tablefmt='fancy_grid'))\n", "\n", "# Add a warning using markdown (API call A.dm) allowing it to be printed in bold type\n", "N1904.dm(\"**Warning: table truncated!**\")" ] }, { "cell_type": "markdown", "id": "c3440c98-f022-4e34-9bc1-b3eaaf4780b2", "metadata": {}, "source": [ "The following will show the first result in a graph:\n" ] }, { "cell_type": "code", "execution_count": 10, "id": "2b8d4f8b-aa24-46dd-8c87-81038d9ae69a", "metadata": {}, "outputs": [ { "data": { "text/html": [ "

verse 1" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "

verse Matthew 1:2
sentence #2 (start: Matthew 1:2)
wg #11: cl* Conj13CL
wg #12: cl S-V-O
Ἀβραὰμ
ἐγέννησεν
wg #13: np o DetNP
τὸν
Ἰσαάκ,
wg #14: group
wg #15: cl S-V-O
Ἰσαὰκ
δὲ
wg #15: cl S-V-O
ἐγέννησεν
wg #16: np o DetNP
τὸν
Ἰακώβ,
wg #17: group
wg #18: cl S-V-O
Ἰακὼβ
δὲ
wg #18: cl S-V-O
ἐγέννησεν
wg #19: o NpaNp
wg #20: np DetNP
τὸν
Ἰούδαν
wg #21: group
καὶ
wg #22: np DetNP
τοὺς
wg #23: np NPofNP
ἀδελφοὺς
αὐτοῦ,
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Note the options \"condensed=True, multiFeatures=False,queryFeatures=False\" are included below due to the earlier N1904.displaySetup(...)\n", "N1904.show(ArticulatedResult, start=1, end=1)" ] }, { "cell_type": "markdown", "id": "36b6f6c9-d4b9-4305-b121-410275905aba", "metadata": {}, "source": [ "# 4 - Discussion\n", "##### [Back to TOC](#TOC)" ] }, { "cell_type": "markdown", "id": "f45e187c-65da-4c93-8b8d-89d4b7d994ec", "metadata": {}, "source": [ "## 4.1 - Textual variants \n", "##### [Back to TOC](#TOC)\n", "\n", "The research in articulated proper nouns is also relevant in relation to variant readings. Consider for exemple Acts 18:1.\n", "\n", "NA28:\n", "> Μετὰ ταῦτα χωρισθεὶς ἐκ τῶν Ἀθηνῶν ἦλθεν εἰς Κόρινθον\n", "\n", "Stephanus Textus Receptus 1550: \n", "> Μετὰ **δὲ** ταῦτα χωρισθεὶς **ὁ Παῦλος** ἐκ τῶν Ἀθηνῶν ἦλθεν εἰς Κόρινθον" ] }, { "cell_type": "markdown", "id": "03cee91a-944c-49cb-8cfc-582213e01260", "metadata": {}, "source": [ "# 5 - Attribution and footnotes\n", "##### [Back to TOC](#TOC)\n", "\n", "#### Atrribution: \n", "\n", "Thanks to Prof. Willem van Peursen (VU) for pointing me to this question and raising the following interesting issue in respect to the use of a definite article: \n", "> In Muraoka’s *Why Read the Bible in the Original Languages*,1 I found the following examples:\n", "(...)\n", "The definite article e.g. “the truth will set you free” (John 8:32; TJ) how to translate in Japanese, which doesn’t have the definite article.\n", "\n", "#### Footnotes:\n", "\n", "1 Muraoka, Takamitsu. Why Read the Bible in the Original Languages? (Leuven: Peeters Publishers, 2020), 71." ] }, { "cell_type": "markdown", "id": "19b273ce-a030-4f78-99db-12476ea1497e", "metadata": { "tags": [] }, "source": [ "# 6 - 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", " {none}\n", "\n", "You can install any missing library from within Jupyter Notebook using either`pip` or `pip3`." ] }, { "cell_type": "code", "execution_count": null, "id": "5fda3537-c41c-452a-b248-4f9ef3d146f6", "metadata": {}, "outputs": [], "source": [] } ], "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.11.5" } }, "nbformat": 4, "nbformat_minor": 5 }