3 ms·
> ...there are great decentralized version control systems like Pijul/Git/Fossil and many more that check every requirement that I have, but they are built to w
by carapace 7y ago
> ...there are great decentralized version control systems like Pijul/Git/Fossil and many more that check every requirement that I have, but they are built to work with textual data and are therefore unsuited to be a database backend of a graphical application.
> I basically want a DVCS that doesn't operate on text files, but on a proper data model like relational algebra or algebraic datatypes.
Prolog + git.
Storing a text file of Prolog rules defining your DB is not as wild as it might sound. It's IMO much nicer to work with than SQL.
- - - -
TerminusDB (in Prolog)
> TerminusDB started life as a quality control system and only later morphed into a full database because we couldn't find a storage layer that was fast enough to support quality controlled transactions at scale.
> Terminus uses the W3C's OWL language to define the schema of its databases. This gives Terminus a uniquely powerful and expressive way of defining rules for the shape and structure of the data that it stores.
> OWL is a very rich language based on first order logic and set theory.
https://terminusdb.com/docs/schema https://terminusdb.com/docs/schema
- - - -
CQL (in Java, I believe)
> The open-source Categorical Query Language (CQL) and integrated development environment (IDE) performs data-related tasks — such as querying, combining, migrating, and evolving databases — using category theory,
https://www.categoricaldata.net/ https://www.categoricaldata.net/
- WorldMaker 7y agoSimilarly, if you are merely destructuring databases into text formats, most SQL database engines are pretty good about round-tripping their "dump" formats. For certain sizes of, for instance, SQLite databases, it is entirely possible to git store the SQL dumps and rebuild the database from them to query/work with them. (Whether it is reasonable to do it that way is another question.)
- LukeEF 7y agoTerminusDB is about to launch a set of features that are all about... (drum roll) Decentralized Version Control for Structured Data!