This application converts a Bible cross-reference dataset into a graph database format. It processes verse-to-verse relationships and their weights, handling both single verses and verse ranges.
- .NET 9.0 SDK Preview (version 9.0.100-preview.1.24101.2 or later)
- Input file containing Bible cross-references in TSV (tab-separated values) format
The input file should be a tab-separated file with the following format: From Verse To Verse Votes #Comments Gen.1.1 Isa.51.13 45 Gen.1.1 John.1.1-John.1.3 316
Each line represents a cross-reference with:
- Source verse (e.g., "Gen.1.1")
- Target verse or verse range (e.g., "John.1.1-John.1.3")
- Weight/votes (integer)
From the src/GraphBuilder directory:
dotnet build
dotnet run <input-file> <output-file>
Example:
dotnet run bible_cross_references.txt output.dbms
The application generates a DBMS file containing:
-
Schema Creation
-
BibleVerse nodes with properties:
- Reference (string)
- Book (string)
- Chapter (int)
- Verse (int)
- IsRange (bool)
-
BibleVerseRange nodes with properties:
- Reference (string)
- Book (string)
- StartChapter (int)
- StartVerse (int)
- EndChapter (int)
- EndVerse (int)
- IsRange (bool)
-
-
Node Creation
- Individual verse nodes
- Verse range nodes
-
Edge Creation
- Cross-reference relationships with weights
- Nodes represent either individual verses or verse ranges
- Edges represent cross-references between verses/ranges
- Edge weights indicate the number of votes for each cross-reference
Once the data is loaded into a graph database, you can:
- Find all references to a specific verse
- Discover the most referenced verses
- Analyze verse range patterns
- Find strongly connected verse communities
- Explore cross-book references
This project is licensed under the MIT License - see the LICENSE file for details.
The Bible cross-reference dataset should be properly attributed according to its source license.
Special thanks to OpenBible.info for their excellent Bible cross-reference data and their work on making Bible data accessible and remixable. Their Creative Commons Attribution License makes projects like this possible.