Hi org-roam folks.
I’ve been building an org-roam extension to try and replicate my Obsidian Bible Study workflow. My workflow is largely inspired by this: Bible Study in Obsidian Kit (including the Bible in Markdown) - Share & showcase - Obsidian Forum
I’m kind of new to emacs and org-roam so please be patient if I’m misunderstanding something.
You can see the link to my repository here: GitHub - sroerick/dabar
(This isn’t really meant for public release, I simply share it here to provide context for my question) (The code is ugly and bad, I don’t know lisp)
The extension is a minor mode which loads in an XML bible, parses it, and then provides a rudimentary interface for opening and reading a bible chapter.
My primary design goal is to be able to link to bible verses as I take notes, and to be able to see any backlinks when I read a chapter.
I implemented a new type of link e.g. “[[bible:Genesis 1:1]]”, which lets me link to an org-roam file. This is kind of the crux of my problem, and the question I have regarding design relates to this.
To take notes, I created a “org-roam/Dabar/” folder in my repository. Notes are then categorized by chapter. - e.g. “org-roam/Dabar/Genesis/1.org”. I settled on this schema because I wanted to follow the design pattern of not altering the org-roam database.
Currently, when I follow a “bible:” link, it opens the appropriate “Dabar” file. It then appends the chapter contents to the bottom of that file, which lets me browse efficiently. Refs are also created in order to show backlinking to a particular chapter.
I’ve been looking at ‘dtk’ package and others as well (Front end interface for ‘diatheke’ Sword cli tool)
Ultimately, I think I probably need to store information in a database. I’d like to be able to take any type of Bible reference - a single verse, a range of verses, a chapter, a book, etc. I’d like to dynamically load that reference, and to then see any backlinks to any portion of the text which had been dynamically loaded.
I’m pretty happy with my current workflow - I think I’ve basically recreated the functionality from Obsidian and I’m pleased. With that said, I think I’m hitting a bit of a functionality ceiling.
If I didn’t modify the schema of any existing tables, how problematic would it be for me to create new tables in the org-roam database? If I decided to go this route, should I just spin up my own SQLite DB?
Would it be extremely complicated to simply add additional information to the org-roam buffer?
It seems there’s a fair amount of complexity to any of these solutions and I’m still kind of learning the ecosystem. For example, I haven’t really figured out bibliographies and citations. So, there may very well be tools out there which would solve my workflow problems without building out a big custom thing. Let me know if you think this is the case!
Thanks for your time