I have been actively reading up on a very interesting database product I came across, which - with its linked data support - is very interesting to fediverse impls. Copying from earlier posts on Solid forum:
I recently started delightful project, and - while adding a bunch of graph db’s to delightful-databases - bumped into TerminusDB.
I think this is a very interesting project for those working with linked data. I won’t duplicate its features here but give you the link:
If you found that interesting then you should really read the recent Hacker News discussion where the team gives lotsa background and answers a whole bunch of questions (such as why didn’t you implement SPARQL querying?):
Some small feature summary might be in order, to demonstrate why I find this so exciting:
- The db schema is defined in OWL (used in a closed-world perspective)
- Most operation occurs in-memory, but is persisted in a forward-only log (similar to git)
- This “git-for-data” approach allows branch, merge, squash, rollback, diff, blame, and time-travel, etc.
- JSON-LD is interchange format, suitable for web, but editing in turtle is possible
- You can query any part of a graph and retrieve as a JSON-LD document (serialized to the depth you want)
- Query format is also JSON-LD, making queries composable and you can store/query queries like normal data
- Client-side the queries are created using fluent JS (for web devs) and/or Ruby (for data scientists)
- Provides transaction processing and updates using immutable database data structures
- Through this immutability the db regains full ACID support
The feature “AI code generation” is confusing but means:
We generate data-input forms automatically from the structure of schema definitions in the database - the same definitions which make it possible to marshall data from JSON-LD documents into a graph and back.
About the persistence of data:
The database is in memory but we journal all transactions to disk, so it is persistent. In fact it’s so persistent that it never goes away. We have an append-only storage approach allowing you to do time-travel. You can query past versions, or look at differences, or even branch from a previous version of the database.
The canary release of TerminusDB 2.0 was just unveiled in this video: Select instance - Invidious
It allows branching, merging of db’s and cool stuff like time travel.