Inferencing data structure - RETE


Thanks a lot for the great meet up last week in Vienna. Really interesting.

I still have an open question: Grakn is using forward chain for inferencing. From university I remember that RETE-trees should be used to ensure fast evaluation of rules. However, this is a really complex data structure and I wonder how this would scale to the needs of grakn in a distributed environment ?



Glad you enjoyed the event, @geoheil!

Grakn doesn’t actually do forward-chaining during inference. Grakn performs inference by doing backward-chaining. That, and the fact that we do “lazy reasoning” where the queries are resolved as much as needed to retrieve next set of results, allows our queries to scale. In the end, Graql just behaves like an interpreted programming language.