I don’t know if my post is appropriate. If it isn’t, you can delete it.
After a year of designing and defining the requirements of a web application (interactive dictionary of the languages Hebrew, Aramaic, Latin, Greek, Sanskrit, English, German, Spanish and French, I have found that their interconnections and similarities in phonetic sounds and the numerical values of the letters connects them with each other) Elixir/Phoenix is chosen to accompany us on this journey. Finding the right database was much more difficult, but I still found something that met my criteria.
This database is called TypeDB, but unfortunately it currently does not have a driver for Erlang.
Therefore, on the one hand, I would like to draw attention to this database, and on the other hand, I would like to ask the members of this group, if you like this database, to convince the TypeDB team to create a driver for Erlang.
The easiest way to do this is on github, e.g. B. through comments and likes under the following link:
TypeDB offers significant advantages over PostgreSQL, especially in scenarios that require complex knowledge representation, semantic modeling, and automated reasoning. Here are the key benefits of TypeDB:
Rich Schema Capabilities
Complex Entities and Relationships: TypeDB supports a rich schema model that allows for the representation of complex entities, attributes, and relationships, ideal for applications with intricate data interrelations.
Type Hierarchies: Supports type hierarchies and inheritance, simplifying the modeling and querying of hierarchical structures.
Reasoning Engine: The built-in reasoning engine can infer new data based on existing data and rules, enabling automated data augmentation and consistency checks.
Advanced Querying with TypeQL
Declarative Query Language: TypeQL, TypeDB’s query language, is designed for expressing complex queries and patterns effortlessly. It excels at handling multi-hop queries and graph traversals.
Efficient Relationship Handling: TypeDB’s underlying graph-based storage is optimized for managing complex relationships and interconnected data efficiently.
Optimized for Relationships: Excels in scenarios where relationships and their traversals are central, such as knowledge graphs and network analyses.
Automated Inference and Consistency
Automated Inference: The reasoning engine can automatically infer new facts and relationships from defined rules, providing powerful knowledge discovery and data enrichment.
Consistency Checks: Enforces data consistency and integrity through logical constraints and rules.
Ideal Use Cases
Knowledge Graphs: Perfect for building and querying complex knowledge graphs where relationships are essential.
Biological Data: Suitable for bioinformatics and domains requiring detailed modeling of complex systems.
AI and Machine Learning: Beneficial for AI applications needing rich, interconnected data representations.
I hope that I have highlighted the main advantages of TypeDB.
A good article to consider TypeDB versus SQL databases can be found here:
I’m also positive that you will not be able to integrate it with Ecto, the de-facto tool we use for database interactions in our apps, and building another “ORM” from scratch would be a huge time investment.
TypeDB provides a Rust driver. Binding a Rust NIF via Rustler is probably a better approach. This will not require the TypeDB devs to maintain one more driver indefinitely (big ask), and there are probably people here that have that skill.