For interest, major design goals for Inkling included:
A complete separation of rules and state/values, so that a single Inkling "engine" can be processing several queries on the same rulebase at once. "
Interesting. I'll go look at Mandarax.
Do you know if Mandarax separates "static" or "environment" facts from the fact assertions which are part of the setup for a query? I found that this was vital to allow effective simultaneous queries on the same rule/fact base.
I haven't looked at Mandarax, but the half-dozen or so others I looked at were far too clumsy for effective multi-user use. They seemed to come from a tradition of single-user or single-threaded applications which appears archaic today.
To be able to use a rulebase in (for example) a web application, you need to be able to run as many lightweight queries (with parameter fact assertion, forward/backward chaining, result querying and so on) through the same rule/fact base as you have concurrent requests. The lack of this, combined with typically obscure rule syntax, is what led me eventually to write