The latest release of TerminusDB is here and there’s a lot to tell you about. The Mule Release, a homage to Asimov’s Foundation series, is faster, more robust, and includes new features to make developing knowledge graphs and data-intensive applications easier and quicker.
This article aims to give you an overview of what’s new and direct you to further reading
Features to make knowledge graph and data-intensive app development easier and faster
TerminusDB is equipped with a type inference engine that allows types to be inferred. The algorithm attempts to find a unique type that can successfully be ascribed to a document. This feature helps to save you development time, reduce errors, and make your code machine-readable.
This is a new feature that you probably don’t feel you need until you start to build knowledge graphs. It makes building knowledge graphs with the document interface easier. When inserting new documents, chances are, you don’t know the IDs. The document interface allows you to capture newly inserted document IDs as a variable and then refer to those variables later in other documents. Here you can build relationships as you upload your data, saving you time, and helping to avoid missed links within your graph.
JSON type – Unconstrained & untypechecked documents
TerminusDB now supports unconstrained and untypechecked documents and subdocuments. These can be stored and retrieved from the database as unmodified JSON but are still indexed and searchable. This enables you to store data that you want separate from your applications and services without having to change the schema, such as metadata, UI configuration, and settings for example.
Predicate patterns in path queries
It is now possible to specify a path, or a pattern of edges, in the graph to provide enhanced query capabilities. Users can look at relationships forward and backward to specified edges to extract relationships between different nodes of the graph. For example, you may want to query your supply chain to examine the relationships between product shortages and suppliers, or it could be the ancestry of parent and child relationships in your data. Being able to specify these paths to provide patterns provides data scientists and business decision-makers greater understanding of the relationships held within your data.
Disjoint union of properties (`@oneOf`)
TaggedUnions are advantageous for general collections of disjoint properties. They are generally safer to use than unions and save storage. However, sometimes there is a need to explicitly represent a class of an object. This is where @oneOf comes into play. The value of the @oneOf is a set and can be any number of documents all of which have mutually disjoint properties, but can coexist. This feature enables you to add more flexibility to TaggedUnions while still enjoying their benefits.
Much improved speed, performance, and robustness
We’re thrilled to tell you that there have been significant improvements to the speed and performance of the document interface which also includes much improved WOQL integration.
We’ve also spent some time making TerminusDB vastly more robust and 10.1 includes a number of bug fixes across WOQL, CLI, key generation, REST API. We have also dramatically improved error handling.
Git for data - Source control & collaboration features
JSON Diff & Patch
TerminusDB 10.1 features the ability to compare any two JSON documents to display the differences. This enables manual, client, or user-interface-assisted actions to resolve differences. A patch applies a diff to two objects to create a new object, the operation can apply the before or after state, or users can apply a completely new patch. This feature is perfect for collaborative applications with many users, being able to compare tests and settings, and can help ensure accuracy from data scraped from different sources on the web.
Apply a patch from any two commits
Users can now apply a patch from any two commits using the schema endpoint. Query information about classes in a resource to obtain a difference between any two commits and then apply them to the branch. Use a POST request to either update the branch with the successful application of the difference between the two commits, or provide an error message explaining the unresolvable conflict. This feature enhances collaborative development with improved collaboration and approval workflows.
The TerminusDB CLI was a little unloved, but The Mule Release has remedied that, and the Command Line Interface now gives TerminusDB users greater power. The CLI allows users to interact with the database to query it, perform maintenance, ingest data, create databases and branches, and a whole host of other functions.
A data management platform connecting backend and frontend development
Document UI SDK
A nice feature of TerminusDB is that it automatically creates configurable document display and editing interfaces from the schema and UI and application functionality can be developed directly from these interfaces using the new Document UI SDK. The SDK is a simple React component capable of building React forms out of a TerminusDB schema for viewing, inputting, editing, and deleting data to build applications. A great example of its use is shown in our humanitarian work building a critical asset management system for Dominica.
OAuth2 Configuration for TerminusDB to allow for SSO
TerminusDB supports different authentication mechanisms. It can authenticate using HTTPS Basic, but also JWT or OAuth2 using a user forward header. The advantage of authenticating through OAuth2 is that it is easy to configure an external authentication service to be used to authenticate users in TerminusDB.
TerminusDB spun out from Trinity College Dublin in 2018. The co-founders were researchers at the University. TerminusDB is an immutable distributed open-source graph database and document store. It is designed for collaboratively building data-intensive applications and knowledge graphs. TerminusDB is a founding member of the AI Infrastructure Alliance.
Any questions? Come and chat with us on Discord.
Why 10.1 – The Mule
TerminusDB is named after the home planet of the Foundation in the Asimov series, so naming this release after a central character who created the Union of the Worlds seemed apt. TerminusDB is a knowledge graph used to create unions in data across the history of human societies, a data mesh for change-makers, and in many other use cases, and the union and sharing of data are integral to much of the TerminusDB community.