Install & Run: http://docs.vaticle.com/docs/running-typedb/install-and-run
New Features
-
Fast relation traversals for rule materialisation
We dramatically improve the performance of a rule materialisation by implementing a new traversal type and traversal algorithm for relation lookups (when all role players and roles are known) -
Reasoner Correctness Verification
We introduce an internal framework for verifying the soundness and completeness of reasoning by comparing with a naive forward-chaining reasoner.
Bugs Fixed
-
Fix TypeQL parser error messages being duplicated
Previously, when parsing a query failed with an error, on converting the resulting error object to a string, the string would contain two copies of the error message - e.g:[GQL03] TypeQL Error: There is a syntax error at line 1: match $x sb thing; ^ no viable alternative at input 'match $x sb' [GQL03] TypeQL Error: There is a syntax error at line 1: match $x sb thing; ^ no viable alternative at input 'match $x sb'
This is now fixed and error messages are no longer duplicated.
Also, for ease of reading, two newlines now separate "Please check server logs for the stack trace" from the actual error when any error is thrown. -
Set/unset abstract checks if already abstract
To make loading a schema that containsabstract
idempotent, we first check whether a type is already abstract before trying to set it abstract, and the opposite for unsetting abstractness. -
Implement scalable import and correct export functionality
We fix some stability issues in the import and export process that were indicated by #6310. Imports are now also multi-threaded, multi-transactional, and can scales to huge imports without OOM.
Code Refactors
-
Overridable logger
We've made logger instances of classes that are meant for extension overridable. -
Assert graph planner objective exists
Assert that a query plan must have an objective function after updating the objective exists -- this should help catch a bug in grabl. -
Use a poller to store answer sources for the reasoner cache
Within the cache we had a source of new answers as an iterator. We want to poll this store of answers in case more have been added. For this we introduce pollers that can be linked together as new answer sources are found.