The TypeDBClient.jl provides an interface to a novel type of database called TypeDB. TypeDB is a strongly-typed database, with a rich and logical type system. TypeDB empowers you to solve complex problems, using TypeQL as its query language. It offers a higher abstraction of the entity relation model known in SQL.
The project is built by several members from the Humans of Julia community on Discord. The team has diverse backgrounds and skill levels. It is a joint effort of enthusiastic people to enhance the Julia ecosystem and serves as an educational and open source project.
The goal is to implement a new client library in Julia, in addition to the existing clients in Java, NodeJS and Python. Users of the Julia client will benefit from the Julia specific features like clean syntax, strong typing, multiple dispatch and speed.
Building this client requires the team to push forward a couple of technologies:
- Use Behavior.jl package for BDD (behaviour driven development)
- Stabilize gRPC.jl and related packages (now we are using gRPCClient.jl)
- Dealing with protocol buffers
Applicability to the Julia community.
The Julia community can benefit from having access to the TypeDB database, in all fields related to data science, which can make use of automatic inference and gain new insights from knowledge like in pharmacological research, financial services, machine learning, text mining and more. It is a new tool in the chain to tackle modern problems in modern ways.
Contributions to the community.
The TypeDBClient.jl package will be available in the general registry as a MIT licensed package.
Clarity and what to expect from the talk
The talk is giving an introduction to the development process and what challenges we face so far and in which way we approach them. This includes the use of other libraries that have been brought back to life, like gRPC.jl or Behavior.jl. Also, it gives some insights of the team approach from a community perspective, working from different time zones and backgrounds.
Significance to the community.
The significance of this package comes from its diverse capabilities of application. As a so-called intelligent database, it can help with all kinds of use cases that incorporate data and knowledge engineering.