Skip to content

open source model driven graph database for knowledge graph representation.

License

Notifications You must be signed in to change notification settings

Chrisjhorn/terminus-server

 
 

Repository files navigation

████████╗███████╗██████╗ ███╗   ███╗██╗███╗   ██╗██╗   ██╗███████╗
╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗  ██║██║   ██║██╔════╝
   ██║   █████╗  ██████╔╝██╔████╔██║██║██╔██╗ ██║██║   ██║███████╗
   ██║   ██╔══╝  ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██║   ██║╚════██║
   ██║   ███████╗██║  ██║██║ ╚═╝ ██║██║██║ ╚████║╚██████╔╝███████║
   ╚═╝   ╚══════╝╚═╝  ╚═╝╚═╝     ╚═╝╚═╝╚═╝  ╚═══╝ ╚═════╝ ╚══════╝

                ███████╗███████╗██████╗ ██╗   ██╗███████╗██████╗
                ██╔════╝██╔════╝██╔══██╗██║   ██║██╔════╝██╔══██╗
                ███████╗█████╗  ██████╔╝██║   ██║█████╗  ██████╔╝
                ╚════██║██╔══╝  ██╔══██╗╚██╗ ██╔╝██╔══╝  ██╔══██╗
                ███████║███████╗██║  ██║ ╚████╔╝ ███████╗██║  ██║
                ╚══════╝╚══════╝╚═╝  ╚═╝  ╚═══╝  ╚══════╝╚═╝  ╚═╝

Terminus Server

Build Status

TerminusDB is an open source model driven graph database for knowledge graph representation designed specifically for the web-age.

Terminus Server provides TerminusDB with a RESTful API for interacting with knowledge graphs via the JSON-LD exchange format. This means you can easily string together applications within your own toolchain which utilise the powerful features of graph search and graph storage.

We use an advanced git-like model storing append only changes to graphs represented in concise datastructures using terminus-store.

Latest Version

v1.1.1

Getting Started

Install from Docker image (RECOMMENDED)

Linux Users

For Linux we recommend you use our Quickstart installer.

Windows & Mac Users

To install a docker image with the latest server follow the instructions here: running the terminus-server from docker.

Building from source

In order to build from source, follow the build from source directions.

Open Console

One you have installed terminus-server either from the docker image or built from source you can go simply enter the server location into your browser to view your database from the dashboard "http://SERVER:PORT/console". (for instance "http://localhost:6363/console").

Documentation

Microservices API

Terminus Server is organised to be web native which means that all actions and activities are easily automated via a RESTful JSON-LD API.

The Server API is documented here.

WOQL

WOQL, the Web Object Query Language, allows you to seemlessly traverse the graph extracting graph fragments, nodes, tables or JSON-LD documents. The syntax itself is in JSON-LD, making the syntax a native data-structure in JavaScript, Python, and Prolog.

The Syntax is documented here.

Why

TerminusDB will:

  • Make complex data models easy, maintainable and enforced.
  • Overcome the Object Impedance mismatch without turning your Database into an incomprehensible soup.
  • Allow you to search for repeating patterns using recursion.
  • Give you powerful temporal queries using finite domain constraint logic.
  • Enable the sharing of data using linked open data formats RDF and JSON-LD making scientific or organisational information sharing easy.
  • Help you automate the production of UI and data-entry by knowing what data means.

Client

In order to begin manipulating and querying your database you can simply point your browser to TERMINUS_DIR/index.html which should allow you to manage and query your database.

You can also perform all configuration, querying and management functions via the RESTful API. We have a number of client libraries to help you get started:

The JavaScript client libraries give you assistance with programatic access.

The JavaScript dashboard is an example application allowing manipulation of the database, queries and .

The [Python client libraries] Coming Soon...

Changes in this Version

  • Now with our own terminus-store backend!
  • Extended WOQL to greater functionality for string and arithmetic processing
  • Better date handling in WOQL
  • Improved type casting in WOQL
  • Improvements to query processing speed

Future

We are working hard on our collaboration and data-ops features. They should be available by the end of February 2020.

TODO

  • Improve error handling and logging
  • Convert frames into valid JSON-LD

Contact

You can write the authors, or connect to us on FreeNode IRC on the #TerminusDB channel.

Authors

Gavin Mendel-Gleason [email protected]

Matthijs van Otterdijk [email protected]

Robin de Rooij [email protected]

Anne Ogborn [email protected]

Paulo Moura

Put your Name here by contributing!

Copyright

This file is part of TerminusDB.

TerminusDB is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 (GPLv3) as published by the Free Software Foundation.

TerminusDB is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with TerminusDB. If not, see https://www.gnu.org/licenses/.

About

open source model driven graph database for knowledge graph representation.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Prolog 99.4%
  • Other 0.6%