bibref is a tool that helps discovering internal references in the Bible. It aims at finding citations of the Septuagint in the Greek New Testament in a mechanical way.
The Bible, a book that has been translated into many languages, is maybe the most important book has ever existed. Believers have evidence that it is God's word, written by various people being inspired by God himself.
The Bible has many internal references. Many of them connect the two parts of the Bible: the Old Testament and the New Testament. The books of the Old Testament are usually written in Hebrew, while the books of the New Testament are Greek. A natural question can arise: How can Hebrew texts be cited in the Greek text?
There are several research projects on this, and today it seems to be clear that many authors of the New Testament cited a Greek translation of the Hebrew text, namely the Septuagint, that was widely popular in the first centuries, and still popular in some Christian churches. Many Bible translations, however, mostly use only the Hebrew text as a basis of the Old Testament, because the importance of the Septuagint is not yet widely identified.
This software project attempts to support finding citations of the Septuagint in the New Testament automatically. The work is based on The SWORD Project.
The bibref package offers several tools that help in comparing the verses of the Septuagint with the verses of the Greek New Testament. The tools consider the texts of full books of the Bible as one unit instead of considering just separated verses. The texts are provided by the SWORD project from the modules LXX and SBLGNT. In the newest versions the module StatResGNT is also supported.
This project is a work in progress.
Since March 2024 bibref comes with a graphical user interface that is based on Qt. You can find information on how to install the program on your machine on the Releases page.
You need a Linux system (preferred) or a web browser (fallback) to use the terminal based interface.
At the moment this interface was tested on Ubuntu Linux 18.04, 19.10, 20.04 and 22.04 but it should work on many other systems.
After installation you need to use the command bibref
via command line.
In the snap version only the LXX, SBLGNT, StatResGNT and KJV modules are present.
If you want to use additional modules, please try installing the tool from source code (see below).
Currently there is an online web version of bibref available: a simple version that is based on jquery.terminal. It is somewhat slower than the installable version, but works immediately in a web browser (you may need to wait a couple of seconds before the start). In the web versions the modules LXX, SBLGNT, StatResGNT and KJV are available.
We provide some hints to help you build the graphical user interface.
The following commands should be entered on command line:
sudo apt install libsword-common libsword-dev libreadline-dev libboost-dev libboost-filesystem-dev git cmake build-essential pkg-config
git clone https://github.com/kovzol/bibref.git
cd bibref
mkdir build
cd build
cmake ..
make
make install || true
Finally enter the command
build/bibref -c
to start the program with a user friendly command line interface (with colors).
(If you want to compile the web version, please have a look on the corresponding GitHub action.)
We follow the syntax of the terminal based version, but the similar steps can be used on the graphical interface as well. The following session finds the corresponding citation of the LXX text of Psalm 2:1 in the SBLGNT:
This is bibref 2022Feb24, nice to meet you.
>> addbooks
Loading LXX...
Genesis contains 150801 characters,
...
and Malachi contains 7250 characters.
Done loading books of LXX.
Loading SBLGNT...
Matthew contains 89148 characters,
...
Jude contains 2550 characters,
and Revelation of John contains 45581 characters.
Done loading books of SBLGNT.
>> getrefs SBLGNT LXX Psalms 2:1
LXX Psalms 2:1 2:2-8 = SBLGNT Acts 4:25+58 4:26 (length=131, pos1=502, pos2=11601)
>> quit
Goodbye.
For most commands two clipboards can be used. They are numbered with 1 and 2. These clipboards store the Latin transcription of the Greek texts to work with. Typically clipboard 1 is used to store a passage from the LXX and clipboard 2 for the SBLGNT. Therefore some commands can work only with one of the clipboards.
In all commands where passage is given as a parameter, it can be either one
verse with the classic notation (e.g. 1:2
), or it can be fine tuned by entering
two positions: a verseStart and a verseEnd. These can be also given
with the classic notation or a modifier can be appended:
- If verseStart is appended by a
+M
modifier (where M is a non-negative integer) then the first M characters will be removed from the passage. - If verseEnd is appended by a
-M
modifier (where M is a non-negative integer) then the last M characters will be removed from the passage.
For example, Genesis 1:1
, Genesis 1:1+0 1:1-0
, Genesis 1:1+0 1:1
, Genesis 1:1 1:1-0
define the same first verse
of Genesis. On the other hand, Genesis 1:1+2 1:1-3
defines the first verse of Genesis without the first two and the last three letters.
In all commands the Bible parameter can be either LXX
, SBLGNT
, StatResGNT
, except for the command lookup
.
The available commands are:
addbooks
: Load the books of LXX, SBLGNT and StatResGNT (if any of these are available). Most commands require that these books are already loaded. After using this command for the first time (it takes a couple of seconds), a folder namedbibref-addbooks-cache
will be created in the current working directory to speed up the next startup of this command.textN
text: Define a Greek text and put its Latin transcription in clipboard N.latintextN
text: Put the Latin transcription text in clipboard N.findN
Bible: Search for the text of clipboard N in the given Bible.lengthN
: Compute the length of the text in clipboard N.printN
: Show the Greek text in clipboard N (without punctuation and spaces).lookup
Bible book verse: Search for the given verse in the given book in the given Bible. Here Bible can be any translation that is already installed as a module on the computer.lookupN
Bible book passage: Search for the given passage in the given book in the given Bible and put its Latin transcription in clipboard N.search
Bible token1 token2 ... tokenN maxlength: Search for the given set of tokens on a maximal length of maxlength in the given Bible.raw
Bible book start length: Show the raw Latin transcription of a passage in the given book in the given Bible, beginning with the start position on length characters.rawN
Bible book start length: Put a passage in the given book in the given Bible, beginning with the start position on length characters, in clipboard N.minunique1
Bible: Search for minimal unique passages in clipboard 1 in the given Bible.extend
Bible1 Bible2 book2 passage2: Extend the given passage in Bible2 according to the longest possible citation from Bible1, based on the text of book2 in passage2. In most casesLXX
is used for Bible1 andSBLGNT
for Bible2.psalminfo
Bible number: Show the number of verses in Psalm number in the given Bible.getrefs
Bible2 Bible1 book1 passage1: Search for references in Bible2 on the passage in Bible1 in book book1 in passage1. UsuallySBLGNT
stands for Bible2 andLXX
for Bible1. If book1 isPsalms
, the passage can also be its number only.maxresults
number: Set the maximal amount of results to be shown to number.compare12
: Compare the two clipboards with a 2-long substring-fingerprint (2-shingles) check, best match is reached at 1/(length1+length2).jaccard12
: Compare the two clipboards the same way howcompare12
does but use the "Jaccard similarity for bags" algorithm, best match is reached at 0.sql
switch: Set some outputs to be shown also as an SQL query if switch ison
.colors
switch: Show some outputs colored if switch ison
.tokens
Bible book verse: Search for the given verse in the given book in the given Bible (see commandlookup
), but the output is shown in a tokenized form. Tokenization is done via Strong's numbers.help
command: Show some hints on usage of command, or get general help if no parameter is given.quit
: Exit program.
There may be other commands available that are not documented yet.
Some examples are also available. See also an incomplete draft (in Hungarian) on the purpose of the commands. Also, a work-in-progress database can be found in docs/common which aims at collecting all quotations.
You may be interested in some blog entries that extensively use the web version of bibref.
Issue bibref -h
to learn about the available command line options.