In order to implement the DEC Knowledge Theory and fully exploit its potential two features are primarily needed, online reasoning capabilities and support for reifying epistemic fluents in EC predicates. No available reasoning tool seems to provide both such facilities. For that purpose, we have implemented a custom Jess-based reasoner for the Event Calculus equiped with such features. We also report here our initial attempt that was based on the DEC Reasoner tool, where we adopted a syntactical treatment of knowledge, as well as an extension of the reasoner's basic ontology to support epistemic predicates.
Jess-based EC Reasoner
A new beta-version of the reasoner has been uploaded! It is based on the same general principles (see section below), but it is far more usable. The new reasoner comes with a UI and with many enhanced capabilities.
Some examples (along with the full code of Shanahan's circuit) is included in the .rar file locatedin the adjacent column. The jess.jar can be downloaded from here.
Cerbere - The Causal and Epistemic Rule-based Event calculus REasoner
This tool is able to perform both classical reasoning about DEC domain axiomatizations and epistemic reasoning based on DECKT. It is implemented using Jess, a very efficient rule engine that employs the RETE algorithm for rule matching. We provide here the code for the epistemic version of our reasoner along with numerous examples including the implementation of Shanahan's circuit with a treatment of knowledge, a well known ramification benchmark problem.
Ex1.Simple Example of an Effect Axiom with Preconditions
Simple Effect Axiom: F(O1) ^ ~F(O2) => Initiates(e, F(O3), t)
Depending on the unknown preconditions, different HCDs may be created.
Ex2. Simple Example with Two Effect Axioms
Two Effect Axioms:
F(O1) ^ ~F(O2) => Initiates(e, F(O3), t)
G(O1) => Terminates(e2, F(O1),t)
Notice that after the two-action narrative 2 HCDs are created, the one comprising 4 fluents, as a result of a HCD expansion
Ex3. Shanahan's Circuit
Includes the complete Shanahan's circuit axiomatization with potential actions, vicious cycles, known or unknown switches and creation of HCDs.
The remaining examples shown in the adjacent column are non-epistemic and are formulations of domains described in Mueller's "Commonsense Reasoning" book, also available as supplementary material with the DECReasoner code.
To test the applicability of the DEC Knowledge Theory a number of examples have been designed for execution with the DEC Reasoner tool, a program for performing automated commonsense reasoning using the Discrete Event Calculus. Below, different application scenarios are provided, encoded for this reasoner. This tool was used during our initial efforts to implement DECKT when we followed a syntactical treatement of knowledge formulae. We also tried to extend DEC Reasoner's basic ontology with epistemic axioms. Relevant sample codes are given here.
This example is an extension of domains with continuous
change, such as the "Falling Object" example, augmented with
a treatment of knowledge.
There is a robot Speedy that can start and stop moving from his current location towards point zero, with the speed of 1 point/timepoint.
Speedy may know or not know its position, therefore he is equiped with a sense action.
The robot can use the same sense action, regardless of whether it is moving
or not, i.e., regardless of whether the Position fluent is released or not.
If a robot carries a PDA (its location is always released
from inertia), then knowing the robot's location results in knowing the
This example is used to test more complex KT7 axioms and state constraints.
Pass Through Door
A robot performs the non-deterministic action Open(door)
and then tries to enter the room. Its epistemic state results in two distinct
models, one where it is actually inside the room (with the door open)
and the other where the door didn't open and the robot is standing at
the same place.
A sense action, after the Open(door) action, provides the desirable insight.