TerminusDB is an
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
knowledge graph
The Google Knowledge Graph is a knowledge base from which Google serves relevant information in an infobox beside its search results. This allows the user to see the answer in a glance. The data is generated automatically from a variety of so ...
and
document store. It is used to build versioned data products. It is a
native
Native may refer to:
People
* Jus soli, citizenship by right of birth
* Indigenous peoples, peoples with a set of specific rights based on their historical ties to a particular territory
** Native Americans (disambiguation)
In arts and entert ...
revision control
In software engineering, version control (also known as revision control, source control, or source code management) is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections o ...
database that is architecturally similar to
Git
Git () is a distributed version control system: tracking changes in any set of files, usually used for coordinating work among programmers collaboratively developing source code during software development. Its goals include speed, data inte ...
. It is listed on
DB-Engines.
TerminusDB provides a document API for building via the JSON exchange format. TerminusX is a cloud self-serve data platform built on TerminusDB
TerminusDB is available under the
Apache 2.0 license. TerminusDB is implemented in
Prolog
Prolog is a logic programming language associated with artificial intelligence and computational linguistics.
Prolog has its roots in first-order logic, a formal logic, and unlike many other programming languages, Prolog is intended primarily ...
and
Rust
Rust is an iron oxide, a usually reddish-brown oxide formed by the reaction of iron and oxygen in the catalytic presence of water or air moisture. Rust consists of hydrous iron(III) oxides (Fe2O3·nH2O) and iron(III) oxide-hydroxide (FeO(OH ...
.
History
TerminusDB, previously known as DataChemist, was founded in
Dublin
Dublin (; , or ) is the capital and largest city of Republic of Ireland, Ireland. On a bay at the mouth of the River Liffey, it is in the Provinces of Ireland, province of Leinster, bordered on the south by the Dublin Mountains, a part of th ...
,
Ireland
Ireland ( ; ga, Éire ; Ulster Scots dialect, Ulster-Scots: ) is an island in the Atlantic Ocean, North Atlantic Ocean, in Northwestern Europe, north-western Europe. It is separated from Great Britain to its east by the North Channel (Grea ...
. Starting in
Trinity College Dublin
, name_Latin = Collegium Sanctae et Individuae Trinitatis Reginae Elizabethae juxta Dublin
, motto = ''Perpetuis futuris temporibus duraturam'' (Latin)
, motto_lang = la
, motto_English = It will last i ...
, the development team behind TerminusDB ran the
Horizon 2020
The Framework Programmes for Research and Technological Development, also called Framework Programmes or abbreviated FP1 to FP9, are funding programmes created by the European Union/European Commission to support and foster research in the Europea ...
project ALIGNED that worked from February 2015 to January 2018. An
open-access
Open access (OA) is a set of principles and a range of practices through which research outputs are distributed online, free of access charges or other barriers. With open access strictly defined (according to the 2001 definition), or libre op ...
e-book
An ebook (short for electronic book), also known as an e-book or eBook, is a book publication made available in digital form, consisting of text, images, or both, readable on the flat-panel display of computers or other electronic devices. Alt ...
entitled Engineering Agile Big-Data Systems was published on completion of the ALIGNED project.
Seshat
Seshat ( egy, sš3t, under various spellings) was the ancient Egyptian goddess of writing, wisdom, and knowledge. She was seen as a scribe and record keeper; her name means "female scribe". She is credited with inventing writing. She also bec ...
is an international scientific research project of the
nonprofit
A nonprofit organization (NPO) or non-profit organisation, also known as a non-business entity, not-for-profit organization, or nonprofit institution, is a legal entity organized and operated for a collective, public or social benefit, in co ...
Evolution Institute
The Evolution Institute (EI) is a non-profit organization whose mission is to apply science-based solutions and use evidence-based best practices to solve today’s most pressing social issues to improve quality of life.
It was founded by David S ...
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
The Institute for Economics and Peace (IEP) is a global think tank headquartered in Sydney, Australia with branches in New York City, Mexico City and Oxford. IEP studies the relationship between peace, business, and prosperity, and seeks to pro ...
and
Oxford University
Oxford () is a city in England. It is the county town and only city of Oxfordshire. In 2020, its population was estimated at 151,584. It is north-west of London, south-east of Birmingham and north-east of Bristol. The city is home to the ...
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
Nature, in the broadest sense, is the physics, physical world or universe. "Nature" can refer to the phenomenon, phenomena of the physical world, and also to life in general. The study of nature is a large, if not the only, part of science. ...
.
Version 1.0 was released in October 2019. TerminusDB was first released under the
GPLv3
The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general us ...
licence with the client libraries released with the
Apache 2
APACHE II ("Acute Physiology and Chronic Health Evaluation II") is a severity-of-disease classification system, one of several ICU scoring systems. It is applied within 24 hours of admission of a patient to an intensive care unit (ICU): an int ...
licence. With v4.0, which was released in December 2020, TerminusDB switched to the Apache 2.0 license. The shift was discussed extensively.
Release history
Name
TerminusDB is named after the
Roman God
Roman mythology is the body of myths of ancient Rome as represented in the literature and visual arts of the Romans. One of a wide variety of genres of Roman folklore, ''Roman mythology'' may also refer to the modern study of these representat ...
of Boundaries,
Terminus
Terminus may refer to:
* Bus terminus, a bus station serving as an end destination
* Terminal train station or terminus, a railway station serving as an end destination
Geography
*Terminus, the unofficial original name of Atlanta, Georgia, United ...
. It is also named after the home
planet
A planet is a large, rounded astronomical body that is neither a star nor its remnant. The best available theory of planet formation is the nebular hypothesis, which posits that an interstellar cloud collapses out of a nebula to create a you ...
of the
Foundation
Foundation may refer to:
* Foundation (nonprofit), a type of charitable organization
** Foundation (United States law), a type of charitable organization in the U.S.
** Private foundation, a charitable organization that, while serving a good cause ...
in the series of science-fiction novel by
Issac Asimov. TerminusDB uses a CowDuck
mascot
A mascot is any human, animal, or object thought to bring luck, or anything used to represent a group with a common public identity, such as a school, professional sports team, society, military unit, or brand name. Mascots are also used as fi ...
- the motif finds its origins in the examples used by core engineer
Matthijs van Otterdijk when first demonstrating the append only
immutable
In object-oriented and functional programming, an immutable object (unchangeable object) is an object whose state cannot be modified after it is created.Goetz et al. ''Java Concurrency in Practice''. Addison Wesley Professional, 2006, Section 3.4 ...
data store
Software design
TerminusDB is an
in-memory graph database management system with a rich query language. The design of the underlying
data structure
In computer science, a data structure is a data organization, management, and storage format that is usually chosen for efficient access to data. More precisely, a data structure is a collection of data values, the relationships among them, a ...
, which is implemented in a Rust
library
A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vir ...
, uses a
succinct data structure In computer science, a succinct data structure is a data structure which uses an amount of space that is "close" to the information-theoretic lower bound, but (unlike other compressed representations) still allows for efficient query operations. Th ...
s and
delta encoding
Delta encoding is a way of storing or transmitting data in the form of '' differences'' (deltas) between sequential data rather than complete files; more generally this is known as data differencing. Delta encoding is sometimes called delta compre ...
approach drawing inspiration from software
source control
In software engineering, version control (also known as revision control, source control, or source code management) is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections o ...
systems like
Git
Git () is a distributed version control system: tracking changes in any set of files, usually used for coordinating work among programmers collaboratively developing source code during software development. Its goals include speed, data inte ...
. This allows all of the Git
semantics
Semantics (from grc, σημαντικός ''sēmantikós'', "significant") is the study of reference, meaning, or truth. The term can be used to refer to subfields of several distinct disciplines, including philosophy
Philosophy (f ...
to be used in TerminusDB.
Data model
TerminusDB is based on the
RDF standard. This standard specifies finite labelled
directed graph
In mathematics, and more specifically in graph theory, a directed graph (or digraph) is a graph that is made up of a set of vertices connected by directed edges, often called arcs.
Definition
In formal terms, a directed graph is an ordered pa ...
s which are
parameterized in some universe of
datatypes
In computer science and computer programming, a data type (or simply type) is a set of possible values and a set of allowed operations on it. A data type tells the compiler or interpreter how the programmer intends to use the data. Most progra ...
. The names for nodes and labels are drawn from a set of IRIs (
Internationalized Resource Identifiers). TerminusDB uses the
XSD
XSD (XML Schema Definition), a recommendation of the World Wide Web Consortium ( W3C), specifies how to formally describe the elements in an Extensible Markup Language (XML) document. It can be used by programmers to verify each piece of item con ...
datatypes as its universe of concrete values. For
schema
The word schema comes from the Greek word ('), which means ''shape'', or more generally, ''plan''. The plural is ('). In English, both ''schemas'' and ''schemata'' are used as plural forms.
Schema may refer to:
Science and technology
* SCHEMA ...
design, TerminusDB used the
OWL language until version 10.0. Since version 10 it uses a JSON schema interface allowing users to build schemas using a simple JSON format. This provides a rich modelling language which enables
constraints on the allowable shapes in the graph.
TerminusDB has a promise based
client
Client(s) or The Client may refer to:
* Client (business)
* Client (computing), hardware or software that accesses a remote service on another computer
* Customer or client, a recipient of goods or services in return for monetary or other valuable ...
for the
browser and
node.js
Node.js is an open-source server environment. Node.js is cross-platform and runs on Windows, Linux, Unix, and macOS. Node.js is a back-end JavaScript runtime environment. Node.js runs on the V8 JavaScript Engine and executes JavaScript code ou ...
it is available through the
npm registry, or can be directly included in web-sites. It also has a
Python
Python may refer to:
Snakes
* Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia
** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia
* Python (mythology), a mythical serpent
Computing
* Python (pro ...
client for the TerminusDB
RESTful API
An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standa ...
and a python version of the web object query language, WOQLpy.
Query language
WOQL (web object query language) is a
datalog
Datalog is a declarative logic programming language. While it is syntactically a subset of Prolog, Datalog generally uses a bottom-up rather than top-down evaluation model. This difference yields significantly different behavior and properties ...
-based query language. It allows TerminusDB to treat the database as a
document store or a graph interchangeably, and provides query features to make relationship traversals easy. This gives a relatively straightforward human-readable format which can be easily stored in TerminusDB itself.
Example
A simple query which creates a document in the database, along with labels and
cardinality constraints.
WOQL.doctype("BankAccount").label("Bank Account")
.property("owner","xsd:string")
.label("owner")
.cardinality(1)
.property("balance","xsd:nonNegativeInteger")
.label("owner")
.cardinality(1)
References
External links
* {{Official website
Graph databases
Structured storage
Free database management systems
Software companies of Ireland
Free software programmed in Rust
Logic programming
2019 software
NoSQL
Software using the GPL license