TerminusDB


TerminusDB is an open-source model driven graph database that stores data like Git. It is designed for knowledge graph representation and is a native revision control database. TerminusDB's secondary database models are listed as document store and RDF store on DB-Engines
TerminusDB is available under the GPLv3 license. The development team claim that it will be 'open source now and forever'.
TerminusDB is implemented in Prolog and Rust and accessible from software written in other languages using the Web Object Query Language through a transactional HTTP endpoint. TerminusDB uses JSON-LD as a lightweight, language-independent data interchange format.

History

DataChemist

TerminusDB, previously known as DataChemist, was founded in Dublin, Ireland. It was launched by Irish Tánaiste Simon Coveney in August, 2018. TerminusDB opened a reseach and development hub in Utrecht, Netherlands in 2019.

ALIGNED Project

Starting in Trinity College Dublin, the development team behind TerminusDB ran the Horizon 2020 project ALIGNED that worked from February 2015 to January 2018. A book entitled Engineering Agile Big-Data Systems was published on completion of the ALIGNED project - it is available as an open-access e-book

Seshat

is an international scientific research project of the nonprofit Evolution Institute which uses TerminusDB as data infrastructure. Seshat has been working with the development team from the ALIGNED project onward. This work has been reported in several major newspapers. TerminusDB is also the database behind the associated Institute for Economics and Peace and Oxford University historical peace index project.
The results of some aspects of this research, focused on the relationship between complex societies and moralizing gods, appeared in Nature, the prestigious scientific journal. Kevin Feeney, one of the founders of TerminusDB, is an author of the paper and sits on the Board of directors of Seshat.

Name

TerminusDB is named after the Roman God of Boundaries, Terminus. It is also named after the home planet of the Foundation in the series of science-fiction novel by Issac Asimov. TerminusDB uses a CowDuck logo - the motif finds its origins in the examples used by core engineer Matthijs van Otterdijk when first demonstrating the append only immutable data store

Main Features

TerminusDB is a full featured in-memory graph database management system with a rich query language. The design of the underlying data structure, which is implemented in a Rust library, uses a succinct data structures and delta encoding approach drawing inspiration from software source control systems like Git. This allows all of the Git semantics to be used in TerminusDB.
The TerminusDB infrastructure is based on the RDF standard. This standard specifies finite labelled directed graphs which are parameteric in some universe of datatypes. The names for nodes and labels are drawn from a set of IRIs. TerminusDB uses the XSD datatypes as its universe of concrete values. For schema design, TerminusDB uses the OWL language with two modifications to make it suitable as a schema language; it dispenses with the open world interpretation and insist on the unique name assumption. This provides a rich modelling language which can allows constraints on the allowable shapes in the graph. TerminusDB supports a subset of OWL that provides for the following schematic control features:
  1. Classes and sub-classes for modelling taxonomies and inheritance hierarchies, with special classes for modelling complex relationships and entities
  2. Typed properties for modelling the attributes of things
  3. Datatypes for modelling the different types of data
  4. Scopings for modelling things that change with time, space and confidence
  5. Constraints for applying logic and rules to things
TerminusDB has a promise based client for the browser and node.js it is available through the npm registry, or can be directly included in web-sites. It also has a Python client for the TerminusDB RESTful API and the pythonic version of the web object query language, WOQLpy.

Query Language

WOQL is a datalog. It allows TerminusDB to treat the database as a document store or a graph interchangeably, and provides query features to make relationship traversals easy. WOQL's primary syntax and interchange format is in JSON-LD. This gives us a relatively straightforward human-readable format which can also be easily stored in TerminusDB itself.

Example

This demonstrates a simple query which allows retrieval of all documents in the database, along with their labels and types.




See Also