Jekejeke Prolog 1.2.7 (hierarchical knowledge bases)
Jan Burse, created Jun 09. 2018, modified Dec 09. 2018
We just uploaded a new release of Jekejeke Prolog. We introduced hierarchical knowledge bases. They have different aspects:
- Class Loader Aspect:
Knowledge bases can now be organized in hierarchies via a parent link like this is known from Java class loaders. Each knowledge base carries class paths and stores the corresponding static predicates which can then be shared by knowledge bases down in the hierarchy.
- Thread Group Aspect:
Each knowledge base also serves as a thread group. The state of dynamic predicates is now organized as a thread group local state. In as far each knowledge base provides a data silo that protects against threads running in other knowledge bases but from the same hierarchy.
- GUI Aspect:
In the programming API the new feature is seen by a new constructor for the Java class Knowledgebase with a parent link as an argument. The Swing GUI does this now automatically and creates a new additional knowledge base for all the threads of a console window.
We did not yet implement the GUI aspect for Android. The current knowledge base stack can be inspected by the new command kbs/0. As a canary in the coalmine we have already our sales system www.jekejeke.ch which now uses a hierarchy.