TerminusDB a delightful database for linked data

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:

https://terminusdb.com/

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?):

https://news.ycombinator.com/item?id=22867767

In hindsight some small feature summary might be in order, to demonstrate why I find this so exciting:

  • The db schema is defined in OWL
  • 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.

4 Likes

The canary release of TerminusDB 2.0 was just unveiled in this video: https://invidio.us/watch?v=jX4DMGgfr5M

PS. Nice to see you too on the Terminus forum, @Smag0 :slight_smile:

Interesting, been checking Terminus out, as I have also come across Fluree:

One thing I wonder regarding any of these though is what the intended interest and usage would be regarding SOLID ecosystem considering the initial focus on files and folders.

I’ve been wondering what is the most SOLID thing about SOLID where if you optimized any and all other parts it would still be completely SOLID.

Maybe this gets back to same argument around IPFS and Blockchain and Crypto regarding on-chain and off-chain and fungible and non-fungible tokens and etc …

With your ac ivory regarding questioning scope of SOLID I wonder what should be SOLID that shouldn’t be something else etc …

I find the actual turtle file hosting and folder organization and ACL per file and specific physical pods to be of least interesting SOLID parts, but I think some people believe that is what makes SOLID to be SOLID . Etc …

Blockstack and their GAIA and “storage drivers” mechanism get interesting here.

Also Fluree backs up to StorJ which is another weird aspect of what we mean by interoperability.

On this aspect I find the other discussion topic around signing statements to be very interesting considering anything immutable and crypto etc .

Thanks, Fluree looks very interesting, but I am avoiding blockchain until the field matures in a couple of years. Regarding Solid scope I followed up on your other post What is minimum possible SOLID?

FYI: TerminusDB has TerminusHub live. Haven’t tried, but is apparently a ‘Git(hub) for sharing your linked data DB data + models’. See: https://terminusdb.com/hub/