Skip to content

← Back to the explorer

Bible Cross-References · Technical description

How the engine links verses and words

This page tells what the engine does, which data it uses, and where it stops. The text obeys ASD-STE100, Simplified Technical English. All numbers come from the datasets that the build makes.

1. Purpose

The engine shows how the verses of the Bible connect. It uses five layers of links. Each layer adds a different type of evidence. Then the engine compares the layers (section 8).

  1. Cross-references: a verse points to a different verse.
  2. Original words: two verses use the same Hebrew or Greek word.
  3. Meaning: a lexicon tells what each word means and how the KJV translates it.
  4. Roots: words that come from the same root are a family.
  5. The Septuagint: the Greek translation of the Old Testament connects each Hebrew word to Greek words, and so connects the two testaments.

The engine does not learn from what readers do. All of the layers are data and statistics that the build calculates one time, and you can examine each result and find its source. One kind of evidence comes from a model (section 8.3). The explorer labels it.

2. The unit of reference

The engine uses the verse numbers of the King James Version (KJV). The KJV has 31,102 verses. Each verse has an index from 0 to 31,101. All datasets use this index.

Some sources use different verse numbers. The importers change their numbers to KJV numbers before they write a dataset. If an importer cannot find a verse in the KJV numbering, the build stops. Thus, no word goes into a wrong verse without a message.

3. Layer 1: cross-references

The source is the OpenBible.info cross-reference list. Most of this list comes from the Treasury of Scripture Knowledge. It has 344,799 links. Each link has a source verse, a target range and a number of votes from readers.

The arc view shows each link as an arc above a line of all the verses. The color of the arc shows the genre of its two ends. The filter removes links with low votes. With the default filter, the view shows 153,419 links.

A cross-reference is the opinion of a person. It is not a fact about the text. The vote count tells how many readers agree with that opinion.

4. Layer 2: original words

The source is the STEPBible tagged text from Tyndale House, Cambridge. Each word of the Hebrew Old Testament and the Greek New Testament has a Strong's number. A Strong's number identifies a dictionary word, for example G5046 for τέλειος.

The importer reads the tags and makes a list of the verses for each word. It keeps 16,919 words and 267,310 word-verse pairs. It removes 44 words that occur in more than 1,000 verses, for example the article and the word for "and". These words occur in almost all verses, so they do not tell you about a verse.

Two verses that use the same word have a fact in common. This is different from a cross-reference. The panel shows the rare words first, because a rare word tells you more about the verses that use it.

5. Layer 3: meaning

The lexicon has 14,197 entries: 5,523 Greek and 8,674 Hebrew. Each entry has these parts:

  • A definition from Strong's dictionaries (1890 and 1894), in the Open Scriptures edition.
  • For a Greek word, the senses from the Manual Greek Lexicon of Abbott-Smith (1922), in the STEPBible edition.
  • For a Hebrew word, an outline of senses from the Brown-Driver-Briggs lexicon, in the Open Scriptures edition.
  • A KJV translation count. The importer counts how the KJV translates each word. The source is the eBible.org KJV, which has a Strong's number on its words. Example: τέλειος is "perfect" 14 times, "age" 1 time and "men" 1 time.

When a Strong's number has two entries in Brown-Driver-Briggs, the importer uses the longer entry. Example: חֶסֶד has an entry for "kindness" and a short entry for "shame". The engine shows "kindness".

6. Layer 4: roots

Strong's dictionaries tell where each word comes from. Example: τέλειος comes "from G5056 (τέλος)". The importer makes a graph from these statements. Each word points to its roots.

The family of a word contains these words:

  • The roots of the word (one step up).
  • The words that come from the word or from its roots (two steps down).

The importer uses four rules to keep a family small and correct:

  1. It does not go through a root that has more than 20 words. These roots are prepositions and prefixes, for example ἐκ and σύν.
  2. It does not use the statements "from the base of" and "the same as". These statements are etymology from a far source.
  3. A name does not go into the family of a word that is not a name.
  4. A family has a maximum of 30 words.

A family can contain a different sense of the root. Example: τέλος means "end" and "tax", so the family of τέλειος contains τελώνης (tax collector). For this reason, the panel does not add the family automatically. The reader selects each word.

7. Layer 5: the Septuagint bridge

The Septuagint is the Greek translation of the Old Testament. The writers of the New Testament knew it and used its words. Thus, it shows which Greek word had the meaning of each Hebrew word. The engine uses it to connect the two testaments.

The source is LxxLemmas from the Open Scriptures Septuagint Project. It gives the dictionary form of each word in each verse. It does not give the Greek text. The Greek Word List from the same project gives each form a Strong's number (if the New Testament uses the word), an English definition and its roots.

No open source tells which Greek verse is which Hebrew verse, or which Greek word translates which Hebrew word. The engine calculates these two things in three steps.

7.1 Step 1: seed pairs

Abbott-Smith writes notes such as "in LXX chiefly for שָׁלֵם, תָּמִים". The importer finds 4,951 Hebrew forms in these notes. It finds the Strong's number of each form in the STEPBible Hebrew lexicon. First, it compares the form with its vowels. If that fails, it compares only the letters, and if the form has no vowels, it prefers a verb. If a form agrees with more than one word, the importer does not use it (899 forms). It does not find 154 forms. The result is 3,898 forms that agree with one Hebrew word. These are the seed pairs.

7.2 Step 2: verse alignment

The Septuagint uses different verse numbers. Example: Psalm 51:1 in the KJV is Psalm 50:3 in the Septuagint. The second half of Jeremiah has a different order. The importer aligns the verses for each of the 38 books of the Hebrew canon (2 Esdras contains Ezra and Nehemiah).

  1. For each Greek chapter, the importer makes a short list of 4 Hebrew chapters. The score is the number of Greek words that have a known Hebrew translation in the chapter, divided by the square root of the size of the chapter vocabulary. The division prevents a long chapter from getting a high score only because it is long.
  2. It calculates a new score for each chapter on the short list. For each Greek verse, it finds the Hebrew verse with the most known translations. The sum is the score of the chapter. The chapter with the highest score is the match.
  3. It aligns the verses of the Greek chapter with the verses of the matching chapter and of the two chapters next to it. The method is a weighted longest common subsequence. The verses stay in their order. A pair counts only if the two verses share 2 known translations, or 1 if the Greek verse has 4 words or fewer.

The first pass uses only the seed pairs. It aligns 18,961 verses. The second pass also uses the pairs that step 3 finds after the first pass. It aligns 22,164 of the 23,240 Greek verses (95%). These verses cover 21,787 of the 23,145 verses of the Old Testament (94%).

7.3 Step 3: word pairs

The importer trains IBM Model 1 on the aligned verses. IBM Model 1 is a statistical word-alignment model. It uses expectation-maximization. In each verse pair, it gives each word a share of the credit for each word in the other language. It does 6 iterations in each direction: Hebrew to Greek and Greek to Hebrew.

Before the training, the importer removes function words: prepositions, conjunctions, particles and pronouns. The source for Hebrew is the part of speech in the STEPBible lexicon. The source for Greek is the part of speech in the Greek Word List. A form without a part of speech gets the part of speech of its dictionary word.

A Hebrew word and a Greek word are a pair only if all these conditions are true:

  1. They occur together in 3 or more aligned verse pairs.
  2. The Dice coefficient is 0.06 or more. The Dice coefficient is two times the shared verses, divided by the sum of the verses of each word. This rule stops a very common word, for example יְהוָה (5,500 verses), from making a pair with each word near it.
  3. The model gives a probability of 0.1 or more in one of the two directions.

The engine keeps a maximum of 8 pairs for each word. The result is 5,838 pairs for 3,159 Hebrew words.

7.4 Examples of results

HebrewSeptuagint GreekShared verses
יְהוָה (the LORD)κύριος5,124 of 5,500
אֱלֹהִים (God)θεός2,053 of 2,289
נֶפֶשׁ (soul)ψυχή605 of 664
לֵב (heart)καρδία426 of 534
בְּרִית (covenant)διαθήκη246 of 263
חֶסֶד (kindness)ἔλεος193 of 238
כָּבוֹד (glory)δόξα171 of 190
תָּמִים (complete)ἄμωμος; τέλειος61 of 84; 4 of 84

8. Evidence and agreement

The engine compares the layers. For each pair of verses, it records which kinds of evidence link the two verses. There are four kinds. Each kind is independent of the other kinds, with one exception that this section tells.

8.1 Shared rare words

Each verse is a set of words: its Hebrew or Greek words and, for a verse of the Old Testament, the Greek words of its Septuagint verse. Thus, a verse of the Old Testament and a verse of the New Testament can share Greek words.

Each word has a weight. The weight is the logarithm of the number of verses divided by the number of verses that use the word. Thus, a rare word has a high weight. The score of a pair is the cosine similarity of the two weighted sets. A pair counts if its score is 0.2 or more. Each verse keeps its 8 best pairs. The engine finds 169,421 pairs.

8.2 Quotations

The New Testament often quotes the Septuagint. The engine compares the Greek words of each verse of the New Testament with the Greek words of each verse of the Septuagint, in their order. First, it removes the function words. Then it makes runs of three words.

  1. If two verses share 2 or more runs, the pair is a quotation.
  2. If two verses share 1 run, the pair is a quotation only if no other verse of the Septuagint has the run, and the two verses also share rare words (8.1). This is the exception: a quotation of one run always agrees with the shared words.

The engine finds 512 pairs. The test set has nine known quotations, for example Matthew 4:4 from Deuteronomy 8:3 and Romans 1:17 from Habakkuk 2:4. The engine finds all nine.

8.3 Meaning (a model)

This is the only kind that a model makes. The model is bge-small-en-v1.5 from BAAI. It changes each verse of the Berean Standard Bible into a list of 384 numbers. Verses with a similar meaning get similar numbers, also when they use different words. The engine finds the nearest verses of each verse by cosine similarity. It does not count verses that are 5 verses or less apart in the same book.

Before this step, the engine removes the titles of the Psalms (for example "A Psalm of David"), because the BSB puts them in the first verse. A pair counts if its similarity is 0.75 or more. Each verse keeps a maximum of 5 pairs. The engine finds 57,317 pairs. The model works on English text, so it compares the meaning of a translation, not of the original words. The explorer labels this kind "Meaning (model)".

8.4 Agreement

The agreement of a pair is the number of kinds that link it. A cross-reference counts as one kind. When two or more kinds link a pair, the link has more than one reason. The engine finds 45,316 pairs with an agreement of 2 or more: 36,898 pairs with 2 kinds, 8,269 with 3, and 149 with all 4.

  1. In the panel, the section "Linked several ways" shows the pairs of the selected verse. A badge shows each kind. The pairs with the highest agreement are first.
  2. In the arc view, open Filters and select "Only links something else agrees with". The view shows only the cross-references that one more kind also links. With the default filter, this changes 153,419 links to 26,341.

9. How the layers show in the explorer

  1. Select a verse. The panel shows its cross-references and its Hebrew or Greek words.
  2. Select a word. The panel shows the senses, the definition and the KJV translation count. Then it shows the family and the Septuagint pairs. The fetch of the lexicon data occurs only at this time.
  3. Select words from the family or from the Septuagint. The list of verses adds the verses of each selected word. The panel tells how many of these verses are also cross-references of the selected verse.
  4. The arc view shows a brass arc from the selected verse to each verse in the list. The cross-references stay below the brass arcs. Thus, you can see where the evidence from words and the evidence from cross-references agree.

Example: in Ephesians 4:13, select τέλειος. The panel shows 16 other verses in the New Testament. Select "in the Septuagint". The engine adds 17 verses of the Old Testament where the Septuagint uses τέλειος, for example Genesis 6:9 (Noah) and Deuteronomy 18:13. In about half of these verses, the Hebrew is שָׁלֵם or תָּמִים.

10. Limits

Read the results with these limits:

  1. The alignment of words is at the level of the verse. The engine does not know which word in a verse translates which word. It knows only that the two words occur in the same pair of verses.
  2. The Septuagint did not always translate the Hebrew text that we have now. Its source text was sometimes different. Some pairs show this difference.
  3. The engine uses dictionary words, not senses. STEPBible divides some Hebrew words by sense, but most words have one number for all their senses.
  4. 5% of the Greek verses (1,076) have no alignment. Most of these verses are in books where the Septuagint is very different from the Hebrew (Job, Proverbs, Daniel and Esther), or in lists of names (1 Chronicles and Joshua).
  5. The roots come from Strong's dictionaries of 1890 and 1894. Some of their etymology is old.
  6. The books outside the Hebrew canon (for example Wisdom and Sirach) are not in the engine, because they have no Hebrew verses to align with.

11. Sources and licenses

DataSourceLicense
Cross-referencesOpenBible.infoCC BY 4.0
Tagged Hebrew and Greek, lexicon forms, Abbott-SmithSTEPBible, Tyndale HouseCC BY 4.0
Strong's dictionariesOpen ScripturesCC BY-SA
Brown-Driver-BriggsOpen Scriptures Hebrew Bible ProjectCC BY 4.0
Septuagint lemmas, Greek Word ListOpen Scriptures Septuagint ProjectCC BY 4.0
KJV with Strong's numberseBible.orgPublic domain
Meaning model (8.3)bge-small-en-v1.5, BAAIMIT
Bible text (BSB, MSB, KJV, ASV, WEB)Berean Bible, eBible.orgPublic domain

The engine changes these data: it aligns verses, pairs words and calculates counts. The word-pair dataset and the lexicon dataset are available under the licenses of their sources.

← Back to the explorer