Jump to content

TypeDB

From Wikipedia, the free encyclopedia
(Redirected from GRAKN.AI)
TypeDB
Original author(s)Haikal Pribadi
Developer(s)TypeDB
Initial release9 September 2016; 7 years ago (2016-09-09)
Stable release
2.28.3 / 10 June 2024; 10 days ago (2024-06-10)[1]
Repositorygithub.com/vaticle/typedb
Written inJava[2]
Operating systemCross-platform
LicenseAGPL 3.0
Websitewww.typedb.com

TypeDB is an open-source, distributed database management system that relies on a user-defined type system to model, manage, and query data.

Overview[edit]

The data model of TypeDB is based on primitives from conceptual data modeling which are implemented in a type system (see § Data and query model). The type system can be extended with user-defined types, type dependencies, and subtyping which, together, act as a database schema. The model has been mathematically defined under the name polymorphic entity-relation-attribute model.[3]

To specify schemas and to create, modify and extract data from the TypeDB database, programmers use the query language TypeQL. The language is noteworthy for its intended resemblance to natural language, following a subject-verb-object statement structure for a fixed set of “key verbs” (see § Examples).

History[edit]

Development of TypeDB began in 2016 under the name Grakn (a portmanteau of the words "graph" and "knowledge") at the University of Cambridge Computer Science Department.[4] It was commercialized in 2017, and development was taken over by Grakn Labs Ltd.[4] Later that year, Grakn was awarded the "Product of the Year" award by the University of Cambridge Computer Science Department.[5]

Grakn Labs changed its name to Vaticle Ltd. in 2021, at which point Grakn was also renamed to TypeDB.[6] The query language of Grakn, then Graql, was renamed to TypeQL at the same time. In 2022, Vaticle incorporated a US subsidiary under the name Vaticle Inc.

TypeDB Cloud, the database-as-a-service edition of TypeDB, was first launched at the end of 2023.[7]

Release history[edit]

The initial version of Grakn, version 0.1.1, was released on September 15, 2016.[8]

Grakn 1.0.0 was released on December 14, 2017.[9]

Grakn 2.0.0 was released on April 1, 2021.[10]

TypeDB 2.1.0, the first version released under the "TypeDB" name, was released on May 20, 2021.[11]

Features[edit]

TypeDB is offered in two edition: an open-source edition, called TypeDB Core, and a proprietary edition, called TypeDB Cloud, which provides additional cloud-based management features.

TypeDB features a NoSQL data and querying model, which aims to introduce ideas from type systems and functional programming to database management.[12]

Database architecture[edit]

General database features include the following.

Data and query model[edit]

TypeDB's data and query model differs from traditional relational database management systems in the following points.

Limitations[edit]

By relying on a non-standard data and query model, TypeDB (at present) has no support for the integration of established relational or column-oriented database standards, file formats (such as CSV, Parquet), or the query language SQL. Moreover, TypeDB has no direct facility for working with unstructured data or vector data.

Query language[edit]

TypeQL, the query language of TypeDB, acts both as data definition and data manipulation language.

The query language builds on well-known ideas from conceptual modeling, referring to independent types holding objects as entity types, dependent types holding objects as relation types, and types holding values as attribute types.[19] The language is composed of query clauses comprising statements. Statements, especially for data manipulation, usually follow a subject-verb-object structure.

The formal specification of the query language was presented at ACM PODS 2024, where it received the "Best Newcomer" Award.[20]

Examples[edit]

The following (incomplete) query creates a type schema using a define query clause.

define
  person sub entity, 
    owns name,
    plays booking:passenger;
  booking sub relation, 
    relates passenger,
    relates flight,
    owns booking_date;
  name sub attribute,
    value string;
  ...

The following query retrieves objects and values from the database that match the pattern given in the match clause.[13]

match
  $j isa person, has name $n;
  $n contains "Jane";
  $b isa booking, 
    links (passenger: $j, flight: $f);
    has booking_date >= 2024-01-01;
  $f has flight_time < 120;
  $f links (destination: $c);
  $c has name "Santiago de Chile";

Licensing[edit]

The open-source edition of TypeDB is published under the Mozilla Public License.[13]

References[edit]

  1. ^ "Releases · vaticle/typedb". GitHub.
  2. ^ a b c d e "TypeDB System Properties". DB Engines.
  3. ^ Dorn & Pribadi 2024
  4. ^ a b "TypeDB". Database of Databases.
  5. ^ "Hall of Fame". Department of Computer Science and Technology.
  6. ^ "Vaticle Company Information". Gov.uk.
  7. ^ "New Foundations for Building with TypeDB". TypeDB Blog.
  8. ^ "Grakn 0.1.1". Github.
  9. ^ "Grakn 1.0.0". Github.
  10. ^ "Grakn 2.0.0". Github.
  11. ^ "TypeDB 2.1.0". Github.
  12. ^ "Functional Database Programming Paradigm". TypeDB.
  13. ^ a b c "TypeDB Github". GitHub. June 2024.
  14. ^ Dorn & Pribadi 2024, §1.7
  15. ^ Dorn & Pribadi 2024, §1.5
  16. ^ Dorn & Pribadi 2024, §3.2
  17. ^ Sijs & Fletcher, 2022
  18. ^ Dorn & Pribadi 2024, App. A
  19. ^ "TypeDB Lecture Course". TypeDB. June 2024.
  20. ^ "PODS Awards". ACM SIGMOD/PODS. June 2024.

Bibliography[edit]

  • Dorn, Christoph; Pribadi, Haikal (2024), "TypeQL: a Type-Theoretic and Polymorphic Query Language", Proc. ACM Manag. Data, New York, NY, USA: Association for Computing Machinery, doi:10.1145/3651611
  • Sijs, Joris; Fletcher, James (2022), "On a hypergraph structuring semantic information for robots navigating and conducting their task in real-world, indoor environments", Proceedings of the 26th International Conference on Methods and Models in Automation and Robotics (MMAR), IEEE, doi:10.1109/MMAR55195.2022.9874265