github vaticle/typedb 1.5.5
Grakn Core 1.5.5

latest releases: 2.28.0, 2.28.0-rc0, 2.27.0...
4 years ago

Install & Run: http://dev.grakn.ai/docs/running-grakn/install-and-run

Bugs Fixed

  • Explicitly set unifier type to RULE when checking materialised answers.
    In #5258 we introduced an extra check for unifier uniqueness in AtomicState. We were using the default getMultiUnifier function which uses the EXACT unifier type. Instead, we want the RULE type, otherwise the check is useless and caching the materialised answers doesn't give any performance benefits.

  • Removed AttributeDeduplicator.
    Remove AttributeDeduplicator and instead serialise commits that contain new attributes and merge in real-time when needed.
    Also set JanusGraph cache to false by default. The user will need to manually enable it and handle with care.

  • Make sure if we materialise symmetric relations we return all answer combinations.
    In the case when we have multiple unifiers between the rule head and query, we make sure we don't accidentally discard any answers - all combinations are returned.

  • Make sure we do not discard rules if negation block contains types without instances.
    In the RuleCache, as rules are being assessed for matchability, we scan the types for possible absence of instances which allows us to discard rules that yield no answers. However! If a rule has negation blocks in it, absence of instances yields results! Therefore we correct the pruning behaviour to take into account rules with negation.

  • Differentiate between atoms with and without relation variable when computing equivalence.
    To ensure attribute atoms with and without relation variable (with/without via) are recognised as not equivalent.

Code Refactors

  • Update cache behaviour for queries with a unique answer.
    Previously we didn't acknowledge completion for queries that need to have a unique answer based on our data model. Now we do this for attribute queries.

  • Refactor attribute atom materialisation pt II.
    When materialising attributes we want to follow a similar procedure to materialising relations. This means we try to use graql for checking for answer existence. In that way we can cache the checks and reuse them later.

  • Refactor reiteration condition.
    Relax the reiteration condition. Currently we often reiterate the reasoning algorithm even if it's not needed. Relaxing the condition allows for performance gains for some queries.

Don't miss a new typedb release

NewReleases is sending notifications on new releases.