TerminusDB - TerminusDB
Deweloper(zy) | TerminusDB |
---|---|
Pierwsze wydanie | 2019 |
Wersja stabilna | 10.0.3 / 23 września 2021
|
Magazyn | |
Napisane w | Rdza , Prolog |
Rodzaj | Baza wykresów |
Licencja | |
Strona internetowa | terminsdb |
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.
Wersja | Data wydania | Uwagi dotyczące funkcji | Referencje |
---|---|---|---|
1,0 | Październik 2019 |
|
|
1,1 | Styczeń 2020 |
|
|
2,0 | czerwiec 2020 |
|
|
3,0 | wrzesień 2020 |
|
|
4.0 | grudzień 2020 |
|
|
4.1 | grudzień 2020 |
|
|
4.2 | Luty 2021 |
|
|
10,0 | wrzesień 2021 |
|
|
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)