Biblia & Graphia, A study of different versions of the Holy Bible using a TypeDB graphing database to map differnt versions and verses of the Bible together with locations and regions.
This project creates a comprehensive graph database of Bible verses with:
- Multiple translations (Vulgate, Douay-Rheims, King James)
- Geographical location references
- Regional information
- Full book and chapter structure
The database is built from JSON files in the /data directory:
books.json- Bible books with translation namesversions.json- Bible version informationverses.json- Complete verse textlocation_regions.json- Geographical locations with coordinatesregions.json- Regional descriptions and keywords
| Entity | Attributes |
|---|---|
| Book | code, testament, vulgate-name, rheims-name, kjv-name, note |
| Version | code, name, full-name |
| Verse | version-code, version-name, book-code, book-name, chapter, verse-number, text |
| Location | primary-name, secondary-name, region-name, book-code, chapter, verse, latitude, longitude |
| Region | name, keywords, description |
verse-in-book: Connects verses to their booksverse-in-version: Connects verses to Bible versionslocation-mentioned-in-verse: Links locations to specific verseslocation-in-region: Associates locations with geographical regions
- Python 3.7+
- TypeDB server >3.8 (running on localhost:1729)
# Clone the repository
git clone https://github.com/codingeologist/Bibliagraphia.git
cd bible-graph
# Install dependencies
pip install -r requirements.txt
# Ensure TypeDB server is running
docker run -d -p 1729:1729 -v typedb-data:/srv/typedb/data typedb/typedb:latestRun the data loader script:
python load_data.pyNote: This may take awhile to complete
# Find all books in the Old Testament
match
$b isa book, has testament "Old Testament";
fetch $b;
# Get all verses in Genesis chapter 1
match
$v isa verse, has book-code "GEN", has chapter 1;
$b isa book, has code "GEN";
verse-in-book($v, $b);
fetch $v, $b;
# Find all locations mentioned in the New Testament
match
$l isa location;
$v isa verse;
$b isa book, has testament "New Testament";
verse-in-book($v, $b);
location-mentioned-in-verse($l, $v);
fetch $l;
# Get locations in Syria with their coordinates
match
$l isa location, has region-name "Syria";
fetch $l, $l.latitude, $l.longitude;
# Compare the same verse across different versions
match
$v isa verse, has book-code "JOH", has chapter 3, has verse-number 16;
$ver isa version;
verse-in-version($v, $ver);
fetch $v, $ver;
# Find all King James Version verses mentioning Jerusalem
match
$v isa verse;
$ver isa version, has code "KJV";
$l isa location, has primary-name "Jerusalem";
verse-in-version($v, $ver);
location-mentioned-in-verse($l, $v);
fetch $v;
bible-graph/
├── data/
│ ├── books.json
│ ├── versions.json
│ ├── verses.json
│ ├── location_regions.json
│ └── regions.json
├── load_data.py # Data loading script
├── requirements.txt # Python dependencies
└── README.md # README DOCS
GNU General Public License v3.0
Bibliagraphia is more than a database! It is an invitation to explore Scripture in a new transparent and collaborative way. Whether you're a developer, a scholar, priest, pastor or just curious, your contributions are welcome!
To contribute, please open an issue or submit a pull request.
For questions or issues, please do not hesitate to get in touch with me or open a GitHub issue.
Ave Christus Rex
✝️