Work in progress!
In Greek grammar, congruence refers to the agreement or matching of certain grammatical features, such as gender, number, and case, between different parts of a sentence. Specifically, when discussing congruence between an adverb and a noun, it typically refers to the agreement between the adverb and the noun in terms of gender, number, and case. When an adverb is used in conjunction with a noun, they normaly should be congruent, however, there are cases in the Greek New Testament where this is not the case.
From a theological perspective, these mismatches are relevant and warrant investigation. It is often suggested that the mismatch may indicate the presence of an elliptical element, which, if included, would resolve the mismatch. However, in certain situations, introducing such an elliptical word could alter the intended meaning. Therefore, careful consideration is required when analyzing these mismatches in theological contexts.
To perform this query, we will utilize the search template feature of Text-Fabric. This feature enables us to precisely define the levels of incongruency we are interested in examining. By using the search template, we can specify the specific criteria and patterns we want to search for within the data.
In this example the congruence between preposition, adjective and noun will be examined.
%load_ext autoreload
%autoreload 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
# load the N1904 app and data
N1904 = use ("tonyjurg/Nestle1904LFT", version="0.6", hoist=globals())
Locating corpus resources ...
The requested app is not available offline ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/app not found
The requested data is not available offline ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 not found
| 0.20s T otype from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 2.28s T oslots from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.46s T verse from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.64s T word from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.59s T wordtranslit from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.61s T wordunacc from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.56s T book from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.60s T unicode from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.59s T normalized from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.48s T chapter from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.49s T after from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | | 0.06s C __levels__ from otype, oslots, otext | | 1.77s C __order__ from otype, oslots, __levels__ | | 0.08s C __rank__ from otype, __order__ | | 3.36s C __levUp__ from otype, oslots, __rank__ | | 1.91s C __levDown__ from otype, __levUp__, __rank__ | | 0.21s C __characters__ from otext | | 0.91s C __boundary__ from otype, oslots, __rank__ | | 0.04s C __sections__ from otype, oslots, otext, __levUp__, __levels__, book, chapter, verse | | 0.22s C __structure__ from otype, oslots, otext, __rank__, __levUp__, book, chapter, verse | 0.42s T booknumber from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.49s T bookshort from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.47s T case from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.31s T clausetype from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.54s T containedclause from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.42s T degree from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.58s T gloss from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.47s T gn from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.04s T headverse from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.32s T junction from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.55s T lemma from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.51s T lex_dom from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.53s T ln from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.40s T markafter from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.41s T markbefore from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.41s T markorder from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.44s T monad from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.43s T mood from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.52s T morph from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.53s T nodeID from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.48s T nu from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.49s T number from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.43s T person from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.42s T punctuation from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.67s T ref from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.63s T reference from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.48s T roleclausedistance from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.48s T sentence from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.50s T sp from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.51s T sp_full from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.53s T strongs from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.44s T subj_ref from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.43s T tense from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.44s T type from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.43s T voice from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.37s T wgclass from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.33s T wglevel from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.36s T wgnum from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.34s T wgrole from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.36s T wgrolelong from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.38s T wgrule from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.33s T wgtype from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.49s T wordlevel from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.50s T wordrole from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6 | 0.51s T wordrolelong from ~/text-fabric-data/github/tonyjurg/Nestle1904LFT/tf/0.6
Name | # of nodes | # slots / node | % coverage |
---|---|---|---|
book | 27 | 5102.93 | 100 |
chapter | 260 | 529.92 | 100 |
verse | 7943 | 17.35 | 100 |
sentence | 8011 | 17.20 | 100 |
wg | 105430 | 6.85 | 524 |
word | 137779 | 1.00 | 100 |
3
tonyjurg/Nestle1904LFT
C:/Users/tonyj/text-fabric-data/github/tonyjurg/Nestle1904LFT/app
''
orig_order
verse
book
chapter
none
unknown
NA
''
0
text-orig-full
https://github.com/tonyjurg/Nestle1904LFT/blob/main/docs/
about
https://github.com/tonyjurg/Nestle1904LFT
https://github.com/tonyjurg/Nestle1904LFT/blob/main/docs/features/<feature>.md
layout-orig-full
}True
C:/Users/tonyj/text-fabric-data/github/tonyjurg/Nestle1904LFT/_temp
Nestle 1904 (Low Fat Tree)
notyet
tonyjurg
/tf
Nestle1904LFT
Nestle1904LFT
0.6
https://learner.bible/text/show_text/nestle1904/
Show this on the Bible Online Learner website
en
https://learner.bible/text/show_text/nestle1904/<1>/<2>/<3>
{webBase}/word?version={version}&id=<lid>
True
True
{book}
''
True
True
{chapter}
''
0
#{sentence} (start: {book} {chapter}:{headverse})
''
True
chapter verse
{book} {chapter}:{verse}
''
0
#{wgnum}: {wgtype} {wgclass} {clausetype} {wgrole} {wgrule} {junction}
''
True
lemma
gloss
chapter verse
grc
# The following will push the Text-Fabric stylesheet to this notebook (to facilitate proper display with notebook viewer)
N1904.dh(N1904.getCss())
# Set default view in a way to limit noise as much as possible.
N1904.displaySetup(condensed=True, multiFeatures=False,queryFeatures=False)
The level of mismatch to select upon can be adjusted by addapting the following lines:
a .gn#gn. b
b .gn#gn. c
a .case#case. b
b .case#case. c
The actual query is presented below:
# Define the query template
MismatchesQuery = '''
wg wgrole=adv
a:word sp=prep
<: b:word sp=adj
<: c:word sp=noun
a .gn#gn. b
b .gn#gn. c
a .case#case. b
b .case#case. c
'''
MismatchesList = N1904.search(MismatchesQuery)
# This will create a list containing ordered tuples consisting of node numbers of the items as they appear in the query
0.34s 16 results
The resulting data, stored in MismatchesList, can be further processed and presented in a table format. It's important to note that the strings displayed under 'Greek' and 'Gloss' are not the running text itself but rather the concatenation of a preposition, adjective, and noun. This way, the table presentation will visualize the data in a more structured manner.
for result in MismatchesList:
print (result)
break
(157951, 5117, 5118, 5119)
# idea to filter out duplicates - not working yet
unique_tuples = set()
for result in MismatchesList:
# Process the relevant nodes or features to form a tuple
tuple_data = (result[0], result[1], result[2], result[3])
# Add the tuple to the set
unique_tuples.add(tuple_data)
# Library to format table
from tabulate import tabulate
# The result is a list of tuples with node ids
# Gather the results
Results=[]
for tuple in MismatchesList:
greek=F.word.v(tuple[1])+' '+F.word.v(tuple[2])+' '+F.word.v(tuple[3])
gloss=F.gloss.v(tuple[1])+' '+F.gloss.v(tuple[2])+' '+F.gloss.v(tuple[3])
# Following line creates a nicely formated presentation of the verse
location="{} {}:{}".format(F.book.v(tuple[1]),F.chapter.v(tuple[1]),F.verse.v(tuple[1]))
result=(location,greek,gloss)
Results.append(result)
# Produce the table
headers = ["location","Greek","Gloss"]
print(tabulate(Results, headers=headers, tablefmt='fancy_grid'))
╒════════════════════╤════════════════════════╤════════════════════════════════════════╕ │ location │ Greek │ Gloss │ ╞════════════════════╪════════════════════════╪════════════════════════════════════════╡ │ Matthew 10:16 │ ἐν μέσῳ λύκων │ in [the] midst of wolves │ ├────────────────────┼────────────────────────┼────────────────────────────────────────┤ │ Matthew 10:16 │ ἐν μέσῳ λύκων │ in [the] midst of wolves │ ├────────────────────┼────────────────────────┼────────────────────────────────────────┤ │ Matthew 11:11 │ ἐν γεννητοῖς γυναικῶν │ among [those] born of women │ ├────────────────────┼────────────────────────┼────────────────────────────────────────┤ │ Matthew 28:1 │ εἰς μίαν σαββάτων │ toward [the] first [day] of [the] week │ ├────────────────────┼────────────────────────┼────────────────────────────────────────┤ │ Matthew 28:1 │ εἰς μίαν σαββάτων │ toward [the] first [day] of [the] week │ ├────────────────────┼────────────────────────┼────────────────────────────────────────┤ │ Luke 7:28 │ ἐν γεννητοῖς γυναικῶν │ among [those] born of women │ ├────────────────────┼────────────────────────┼────────────────────────────────────────┤ │ Luke 10:3 │ ἐν μέσῳ λύκων │ in [the] midst of wolves │ ├────────────────────┼────────────────────────┼────────────────────────────────────────┤ │ Luke 10:3 │ ἐν μέσῳ λύκων │ in [the] midst of wolves │ ├────────────────────┼────────────────────────┼────────────────────────────────────────┤ │ Luke 17:11 │ διὰ μέσον Σαμαρίας │ through [the] midst of Samaria │ ├────────────────────┼────────────────────────┼────────────────────────────────────────┤ │ I_Corinthians 2:13 │ ἐν διδακτοῖς Πνεύματος │ in [those] taught of [the] Spirit │ ├────────────────────┼────────────────────────┼────────────────────────────────────────┤ │ I_Corinthians 5:8 │ ἐν ἀζύμοις εἰλικρινίας │ with unleavened [bread] of sincerity │ ├────────────────────┼────────────────────────┼────────────────────────────────────────┤ │ I_Corinthians 16:2 │ κατὰ μίαν σαββάτου │ Every first of the week │ ├────────────────────┼────────────────────────┼────────────────────────────────────────┤ │ Hebrews 2:12 │ ἐν μέσῳ ἐκκλησίας │ in [the] midst of [the] congregation │ ├────────────────────┼────────────────────────┼────────────────────────────────────────┤ │ Hebrews 2:12 │ ἐν μέσῳ ἐκκλησίας │ in [the] midst of [the] congregation │ ├────────────────────┼────────────────────────┼────────────────────────────────────────┤ │ I_Peter 3:22 │ ἐν δεξιᾷ Θεοῦ │ at [the] right hand of God │ ├────────────────────┼────────────────────────┼────────────────────────────────────────┤ │ I_Peter 3:22 │ ἐν δεξιᾷ Θεοῦ │ at [the] right hand of God │ ╘════════════════════╧════════════════════════╧════════════════════════════════════════╛
Note that the format of the returned list. The tuples in the mismatch list consist of tuples with 'wg, word, word and word. This matches the node elements included in the initial query:
phrase
a:word sp=prep
<: b:word sp=adj
<: c:word sp=noun
for tuple in MismatchesList:
for index in range(4): print (F.otype.v(tuple[index]))
# only print the first tuple
break;
wg word word word
N1904.show(MismatchesList)
verse 1
verse 2
verse 3
verse 4
verse 5
verse 6
verse 7
verse 8
verse 9
verse 10
verse 11
verse 12
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 eitherpip
or pip3
.