TerminusDB - TerminusDB

TerminusDB
TerminusDB.png
Deweloper(zy) TerminusDB
Pierwsze wydanie 2019 ; 2 lata temu ( 2019 )
Wersja stabilna
10.0.3 / 23 września 2021 ; 20 dni temu ( 2021-09-23 )
Magazyn
Napisane w Rdza , Prolog
Rodzaj Baza wykresów
Licencja
Strona internetowa terminsdb .com

TerminusDB to graf wiedzy i magazyn dokumentów o otwartym kodzie źródłowym . Służy do tworzenia wersjonowanych produktów danych. Jest to natywna baza danych kontroli wersji, która pod względem architektonicznym jest podobna do Git . Jest wymieniony na DB-Engine .

TerminusDB zapewnia interfejs API dokumentów do budowania za pomocą formatu wymiany JSON. TerminusX to samoobsługowa platforma danych w chmurze zbudowana na TerminusDB

TerminusDB jest dostępny na licencji Apache 2.0 . TerminusDB jest zaimplementowany w Prologu i Rust .

Historia

TerminusDB , wcześniej znany jako DataChemist, powstała w Dublinie , Irlandia . Począwszy od Trinity College Dublin , zespół programistów TerminusDB prowadził projekt ALIGNED w ramach programu Horyzont 2020, który trwał od lutego 2015 r. do stycznia 2018 r. Po zakończeniu projektu ALIGNED opublikowano ogólnodostępny e-book zatytułowany Engineering Agile Big-Data Systems.

Seshat to międzynarodowy projekt naukowo-badawczy non-profit Evolution Institute, który wykorzystuje TerminusDB jako infrastrukturę danych. Seshat współpracuje z zespołem programistów od projektu ALIGNED. Ta praca została opisana w kilku głównych gazetach. TerminusDB jest również bazą danych stowarzyszonego Instytutu Ekonomii i Pokoju oraz projektu indeksu historycznego pokoju Uniwersytetu Oksfordzkiego .

Wyniki niektórych aspektów tych badań, skoncentrowanych na związkach między złożonymi społeczeństwami a moralizującymi bogami, pojawiły się w Naturze .

Wersja 1.0 została wydana w październiku 2019 r. TerminusDB został po raz pierwszy wydany na licencji GPLv3 z bibliotekami klienckimi wydanymi z licencją Apache 2 . Wraz z wersją 4.0, która została wydana w grudniu 2020 r., TerminusDB przeszedł na licencję Apache 2.0. Zmiana była szeroko omawiana.

Historia wydań TerminusDB
Wersja Data wydania Uwagi dotyczące funkcji Referencje
1,0 Październik 2019
  • pierwsze wydanie serwera z backendem HDT
1,1 Styczeń 2020
  • sprawdzanie instancji i schematu
2,0 czerwiec 2020
  • Backend pamięci masowej oparty na rdzy
  • Kodowanie delta
  • Zatwierdź wykres
  • Podróże w czasie w bazach danych
  • Regularne zapytania o ścieżkę
3,0 wrzesień 2020
  • Dodano zapytania o odwrotną ścieżkę
  • Niecofający się efekt uboczny
  • Reset API umożliwia zresetowanie gałęzi do dowolnego zatwierdzenia
  • Operacja API Squasha jest już dostępna
  • Domyślna gałąź nosi teraz nazwę main, a nie master
4.0 grudzień 2020
  • Wsparcie CSV
  • Automatyczne generowanie schematu CSV
  • Ekstrakcja lub filtrowanie typów z dowolnych węzłów
  • Nowy interfejs CLI
  • Narzędzie do tworzenia modeli graficznych
4.1 grudzień 2020
  • Flaga wielu świadków
  • Dodaj repozytorium deb
4.2 Luty 2021
  • Rollupy Delta dla optymalizacji
  • Duże transfery danych przez protokół TUS
  • Interfejs dokumentów z akcjami CRUD
  • Nowa ramka do dodawania wyborów klas
  • Nowe akcje zarządzania oddziałami: squash, reset, usuwanie, optymalizacja
10,0 wrzesień 2021
  • Interfejs schematu JSON
  • Radykalnie uproszczony interfejs dokumentów
  • Dokumenty JSON mogą odnosić się do innych dokumentów na wykresie.

Nazwa

TerminusDB nosi imię rzymskiego boga granic, Terminusa . Jest również nazwany po domu planety z Fundacji w serii science-fiction powieści Isaac Asimov . TerminusDB wykorzystuje maskotkę CowDuck - motyw wywodzi się z przykładów użytych przez głównego inżyniera Matthijsa van Otterdijka, gdy po raz pierwszy zademonstrował niezmienny magazyn danych z dołączaniem

Główne cechy

TerminusDB to system zarządzania grafową bazą danych w pamięci z bogatym językiem zapytań. Projekt podstawowej struktury danych , który jest zaimplementowany w bibliotece Rust , wykorzystuje zwięzłe struktury danych i podejście kodowania delta, czerpiąc inspirację z systemów kontroli źródła oprogramowania , takich jak Git . Pozwala to na użycie całej semantyki Git w TerminusDB.

TerminusDB bazuje na standardzie RDF . Norma ta określa skończone, etykietowane grafy skierowane, które są sparametryzowane w pewnym uniwersum typów danych . Nazwy węzłów i etykiet są pobierane z zestawu IRI ( Internationalized Resource Identifiers ). TerminusDB używa typów danych XSD jako swojego uniwersum konkretnych wartości. Do projektowania schematów TerminusDB używał języka OWL do wersji 10.0. Używa teraz interfejsu schematu JSON, umożliwiając użytkownikom tworzenie schematów przy użyciu prostego formatu JSON. Zapewnia to bogaty język modelowania, który umożliwia ograniczenie dopuszczalnych kształtów na wykresie.

TerminusDB ma opartego na obietnicy klienta dla przeglądarki i node.js, który jest dostępny za pośrednictwem rejestru npm lub może być bezpośrednio dołączony do witryn internetowych. Posiada również klienta Pythona dla interfejsu API RESTful TerminusDB i pythonic wersja języka zapytań obiektów internetowych, WOQLpy.

Język zapytań

WOQL (język zapytań obiektów internetowych) to język zapytań oparty na dzienniku danych . Umożliwia to TerminusDB traktowanie bazy danych jako magazynu dokumentów lub wykresu zamiennie i zapewnia funkcje zapytań, które ułatwiają przechodzenie między relacjami. Daje to stosunkowo prosty, czytelny dla człowieka format, który można łatwo przechowywać w samym TerminusDB.

Przykład

Pokazuje to proste zapytanie, które tworzy dokument w bazie danych wraz z etykietami i ograniczeniami liczności .

WOQL.doctype("BankAccount").label("Bank Account")
    .property("owner","xsd:string")
       .label("owner")
       .cardinality(1)
    .property("balance","xsd:nonNegativeInteger")
       .label("owner")
       .cardinality(1)

Bibliografia

Zewnętrzne linki