#!/usr/bin/env python # coding: utf-8 # # Proper nouns with or without definite articles (Nestle1904LFT) # ## Table of content # * 1 - Introduction # * 1.1 - Why is this relevant? # * 1.2 - Translating into Text-Fabric queries # * 2 - Load Text-Fabric app and data # * 3 - Performing the queries # * 3.1 - TBD # * 3.2 - TBD # * 4 - Discussion # * 4.1 - Textual variants # * 5 - Attribution and footnotes # * 6 - Required libraries # # # 1 - Introduction # ##### [Back to TOC](#TOC) # # In this Jupyter NoteBook we will examine the use of proper nouns with or without definite articles in the Greek New Testament. # # Proper nouns in Biblical Greek are typically used without a definite article when they function as names. For example: Πέτρος εἶπε... (Peter said...) # ## 1.1 - Why is this relevant? # ##### [Back to TOC](#TOC) # # 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.: # # * 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. # # * 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. # # * 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. # # * 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. # # It would be of interest if the Text-Fabric dataset could provide clues to how an article is uses. # # ## 1.2 - Translating into Text-Fabric queries # ##### [Back to TOC](#TOC) # # 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`. # # 2 - Load Text-Fabric app and data # ##### [Back to TOC](#TOC) # In[1]: get_ipython().run_line_magic('load_ext', 'autoreload') get_ipython().run_line_magic('autoreload', '2') # In[2]: # Loading the Text-Fabric code # Note: it is assumed Text-Fabric is installed in your environment from tf.fabric import Fabric from tf.app import use # In[3]: # load the N1904 app and data N1904 = use ("tonyjurg/Nestle1904LFT", version="0.6", hoist=globals()) # In[4]: # The following will push the Text-Fabric stylesheet to this notebook (to facilitate proper display with notebook viewer) N1904.dh(N1904.getCss()) # In[5]: # Set default view in a way to limit noise as much as possible. N1904.displaySetup(condensed=True, multiFeatures=False,queryFeatures=False) # # 3 - Performing the queries # ##### [Back to TOC](#TOC) # ## 3.1 - Determine articles in combination with proper nouns # ##### [Back to TOC](#TOC) # # This query selects each phrase containing (at least) two words: the article (a) and the proper noun (b). # # 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. # In[6]: # Define the query template ArticulatedQuery = ''' wg wgrule=DetNP a:word sp=noun b:word sp=det ''' # The following will create a list containing ordered tuples consisting of node numbers of the items as they appear in the query ArticulatedResult = N1904.search(ArticulatedQuery) # 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. # In[7]: # Library to format table from tabulate import tabulate ResultDict = {} for (wg,det,noun) in ArticulatedResult: PhraseFunction=F.wgrole.v(wg) # Check if this Wordgroup Role already exists in ResultDict if PhraseFunction in ResultDict: # If it exists, add the count to the existing value ResultDict[PhraseFunction]+=1 else: # If it doesn't exist, initialize the count as the value ResultDict[PhraseFunction]=1 # Convert the dictionary into a list of key-value pairs and sort it according to frequency UnsortedTableData = [[key, value] for key, value in ResultDict.items()] TableData= sorted(UnsortedTableData, key=lambda row: row[1], reverse=True) # Produce the table headers = ["Word Group function","Frequency"] print(tabulate(TableData, headers=headers, tablefmt='fancy_grid')) # 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). # In[8]: PhrasesDict = {} for (wg,det,noun) in ArticulatedResult: location=T.sectionFromNode(wg) # Check if this location already exists in PhrasesDict if location in PhrasesDict: # If it exists, it is a duplicate: add the count to the existing value PhrasesDict[location]+=1 else: # If it doesn't exist, mark it down PhrasesDict[location]=1 # Convert the dictionary into a list of key-value pairs and sort it according to frequency UnsortedTableData = [[key, value] for key, value in PhrasesDict.items()] TableData= sorted(UnsortedTableData, key=lambda row: row[1], reverse=True) # In this example the table will be truncated max_rows = 10 # Set your desired number of rows here TruncatedTable = TableData[:max_rows] # Produce the table headers = ["verselocation","Frequency"] print(tabulate(TruncatedTable, headers=headers, tablefmt='fancy_grid')) # Add a warning using markdown (API call A.dm) allowing it to be printed in bold type N1904.dm("**Warning: table truncated!**") # The following will show the first result in a graph: # # In[10]: # Note the options "condensed=True, multiFeatures=False,queryFeatures=False" are included below due to the earlier N1904.displaySetup(...) N1904.show(ArticulatedResult, start=1, end=1) # # 4 - Discussion # ##### [Back to TOC](#TOC) # ## 4.1 - Textual variants # ##### [Back to TOC](#TOC) # # The research in articulated proper nouns is also relevant in relation to variant readings. Consider for exemple Acts 18:1. # # NA28: # > Μετὰ ταῦτα χωρισθεὶς ἐκ τῶν Ἀθηνῶν ἦλθεν εἰς Κόρινθον # # Stephanus Textus Receptus 1550: # > Μετὰ **δὲ** ταῦτα χωρισθεὶς **ὁ Παῦλος** ἐκ τῶν Ἀθηνῶν ἦλθεν εἰς Κόρινθον # # 5 - Attribution and footnotes # ##### [Back to TOC](#TOC) # # #### Atrribution: # # 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: # > In Muraoka’s *Why Read the Bible in the Original Languages*,1 I found the following examples: # (...) # 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. # # #### Footnotes: # # 1 Muraoka, Takamitsu. Why Read the Bible in the Original Languages? (Leuven: Peeters Publishers, 2020), 71. # # 6 - Required libraries # ##### [Back to TOC](#TOC) # # The scripts in this notebook require (beside `text-fabric`) the following Python libraries to be installed in the environment: # # {none} # # You can install any missing library from within Jupyter Notebook using either`pip` or `pip3`. # In[ ]: