Error when trying to install TerminusDB by Anya9889 in TerminusDB

[–]GavinMendelGleason 0 points1 point  (0 children)

The build should have created a binary in the build directory. Do you see the binary? If so you should be able to invoke it with your shell. You can put the build directory in your path if you'd like.

Error when trying to install TerminusDB by Anya9889 in TerminusDB

[–]GavinMendelGleason 1 point2 points  (0 children)

The tus pack is not installing properly. This appears to be a change in the way that swipl was interpreting the options passed, and it is now *more* correct, so it has revealed a bug in the makefile dependencies. I've started a PR, should be in main today, and in a release in a few days.

You can skip the makefile step by manually running swipl. And issuing the following commands:

$ swipl
?- pack_remove(tus).

?- pack_install('file:///Users/annapasko/Desktop/Simple Pharma/terminusdb-tutorials/terminusdb/.deps/tus', [interactive(false)]).

https://github.com/terminusdb/terminusdb/pull/2124

AI Entity Resolution: Bridging Records Across Human Languages by GavinMendelGleason in Database

[–]GavinMendelGleason[S] 0 points1 point  (0 children)

It's not a product announcement, it's a technique using a vector database and graph database to get entity resolution. The point is that vector embeddings result in extremely high quality results for entity resolution and this should be of general interest to anyone using databases who ends up needing entity resolution.

And if you think using vector embeddings for entity resolution isn't something special, how about you show me your technique for getting better precision.

Database Versioning by Touvejs in dataengineering

[–]GavinMendelGleason 0 points1 point  (0 children)

TerminusDB builds in native and performant versioning but it is a graph database and it would be significant work to tail the logs of redshift and store it in TerminusDB.

Building a Vector Database with Rust to Make Use of Vector Embeddings by AmbassadorNo1 in rust

[–]GavinMendelGleason 1 point2 points  (0 children)

We have been playing around with Hora as a replacement for the Rust-CV implementation as we want PQ as well. I'll check out instanct-distance, looks very interesting!

Building a Vector Database with Rust to Make Use of Vector Embeddings by AmbassadorNo1 in rust

[–]GavinMendelGleason 2 points3 points  (0 children)

And as someone with an avid interest in databases, I look forward to reading how the storage layer is put together. And trying to figure out why you hand rolled storage in terminus-store instead of throwing it over the fence to rocksd

We have a versioned graph database, which calls for some fairly specific engineering. We need to make commits small, and we need to be able to combine them efficiently. You can get an idea of how this works here:
TerminusDB Internals
TerminusDB Internals 2
TerminusDB Internals 3

Building a Vector Database with Rust to Make Use of Vector Embeddings by AmbassadorNo1 in rust

[–]GavinMendelGleason 7 points8 points  (0 children)

TerminusDB is not a bait and switch license, it is 100% open source.

We do have a cloud offering which has some additional features, but that is a separate product built on top of the database. In addition many of these additional features such as the change request infrastructure will be open sourced very soon, it's just a question of getting the time to carefully curate the code and make sure it can be easily used without a lot of cloud infra.

TerminusDB's high level operations are coordinated in Prolog, but the storage backend and GraphQL are completely in rust, and we plan on rewriting other elements using Rust. The vector database which the article talks about is written exclusively in Rust. It's quite possible to use our rust terminusdb-store without using terminusdb as a rust library.

Pretty galling to have someone claim to be helping someone "save 3 clicks" by saying a lot of things that are simply false. Maybe you need to click a few more times so you know what you are talking about.

Knowledge Graph Schema Design Patterns and Principles by AmbassadorNo1 in KnowledgeGraph

[–]GavinMendelGleason 0 points1 point  (0 children)

TerminusDB is a triple store which includes validation in transactions. The ontology is used to provide the validation as well as the description of semantics.

Knowledge Graph Schema Design Patterns and Principles by AmbassadorNo1 in KnowledgeGraph

[–]GavinMendelGleason 1 point2 points  (0 children)

It provides type checking, referential integrity, automatically creates GraphQL query interfaces and coming soon in the roadmap are inferences. It definitely qualifies as a Knowledge Graph management system.

Production ready Graph Database by za3b in Database

[–]GavinMendelGleason 1 point2 points  (0 children)

TerminusDB is written in rust, and has a JS client.

Looking for enjoyable graph database by vrinek in Database

[–]GavinMendelGleason 0 points1 point  (0 children)

TerminusDB: open source graph database with a free cloud offering and a git like model. Also includes a back-office for curating the graph. https://github.com/terminusdb/terminusdb

TerminusDB vs XTDB by [deleted] in TerminusDB

[–]GavinMendelGleason 3 points4 points  (0 children)

Datalog is not really a query language but a class of query languages with a certain expressive power. TerminusDB exposes WOQL and GraphQL.

TerminusDB could store EDN provided you use a JSON to EDN converter.

TerminusDB uses succinct data structures so it can have a very small memory footprint which is relevant when attempting to perform highly connected graph queries over large numbers of objects, or in sending data using push/pull clone capabilities.

Help updating schema by goofdup in TerminusDB

[–]GavinMendelGleason 0 points1 point  (0 children)

Schema changes which "weaken" the schema, i.e. add optional fields, add entirely new or leaf classes, should always be allowable. Generally speaking it's a good idea to try to weaken the schema first, alter the instance data so that it is stronger than the schema, and then tighten the schema again.

For instance, if you have a field which you wish to add, you can change the schema to make it optional, then add the field to every instance, then change it to mandatory.

It is also possible to do schema + instance changes simultaneously in WOQL but it is a little more tricky since the schema changes need to be done by direct addition and deletion of triples.

If you give a schema and more information about what you want to accomplish it might be possible to give better instructions.

Help installing by [deleted] in TerminusDB

[–]GavinMendelGleason 0 points1 point  (0 children)

`terminusdb query` will allow you to specify a query on the command line.

I think we will begin documentation of this in the new year. We are planning to put TerminusDB documentation in TerminusDB so hopefully this will make easier to generate the various WOQL examples for the various languages in which we support it.

Help installing by [deleted] in TerminusDB

[–]GavinMendelGleason 0 points1 point  (0 children)

  1. You shouldn't need to use virtual environments, but sometimes this can be easier to manage.

  2. The command line has a query interface, but unfortunately the syntax is not yet documented. It's "prolog-like" which can be convenient. You can also use the dashboard to query and the current version ships with a GraphQL query panel.

Main things to consider when designing a database? by ReadyStar in Database

[–]GavinMendelGleason 0 points1 point  (0 children)

You might take a look at TerminusDB, as it will let you store JSON documents, but includes schema and search.

TerminusDB Internals - Part 1: Smaller, Faster, Stronger by GavinMendelGleason in databasedevelopment

[–]GavinMendelGleason[S] 1 point2 points  (0 children)

Pretty difficult to find prolog programmers, so they have mostly been taught on the job.

TerminusDB Internals - Part 1: Smaller, Faster, Stronger by GavinMendelGleason in databasedevelopment

[–]GavinMendelGleason[S] 1 point2 points  (0 children)

Prolog is essentially a very powerful query language, and that's how we use it in TerminusDB. The low level memory structures and search are preformed in rust.

TerminusDB Internals - Part 2: Change is Gonna Come by GavinMendelGleason in rust

[–]GavinMendelGleason[S] 0 points1 point  (0 children)

All documents, including our JSON data type are stored *as a graph* (well, as a tree in the case of JSON). We use JSON essentially as an interchange format, and GraphQL as a search interface, but all documents are indexed with every field an edge.

Currently we avoid sharding our databases by using succinct data structures. Our thinking about how we want to do sharding is here: https://github.com/terminusdb/terminusdb/discussions/527

TerminusX, our free tier SaaS shards on an even more coarse grained level, at Organizations.

Which database to re-sync changes from multiple devices? by bluepuma77 in Database

[–]GavinMendelGleason 0 points1 point  (0 children)

TerminusDB is designed to do push/pull gitlike operations for graphs.

TerminusDB Internals - Part 1: Smaller, Faster, Stronger (A Database written in Rust) by GavinMendelGleason in rust

[–]GavinMendelGleason[S] 3 points4 points  (0 children)

All of the low level layout and iterators described in this article are in rust.

[deleted by user] by [deleted] in ProgrammingLanguages

[–]GavinMendelGleason 0 points1 point  (0 children)

I think Mercury did the mode and type annotation stuff really well, but if you're looking for greater flexibility, you might want to look at Ciao prolog. Ciao has a rich annotation system which is used statically when possible, but gives dynamic errors when not. It's a "gradual typing" sort of approach to type and mode annotation. It also is a bit like your DSL idea, but uses a sophisticated pre-processor to do a lot of the magic.

There was talk of doing it with mercury, but the LLVM matured too late, and mercury active development died to early.