Event Calculus Answer Set Programming

Benchmark Problems


We have compared the performance of different systems on 14 benchmark problems from [Shanahan, 1997; 1999]


Click 14 bechmark problems to see the results.










Other Problems


We have also tested some interesting examples from [Mueller, 2006].


Click other problems to see the results.

♦ References

1. [Shanahan, 1997] Murray Shanahan. Solving the Frame Problem:  A Mathematical Investigation

                             of the Common Sense Law of Inertia. MIT Press, 1997.


2. [Shanahan, 1999] Murray Shanahan. The event calculus explained.

                             In Artificial Intelligence Today, LNCS 1600, pages 409-430. Springer, 1999.


3. [Mueller, 2006] Erik T. Mueller. Commonsense reasoning. Elsevier, 2006.



Common Information


We have compared the performance of the following systems on all the examples (we increased timepoints to see more notable differences):


1. the DEC reasoner (v 1.0) running RELSAT (v 2.0),

2. ECASP with LPARSE (v 1.1.1) + CMODELS (v 3.75) running RELSAT (v 2.0),

3. ECASP with GRINGO (v 2.0.2) + CLASP (v 1.1.3) (CLASPD (v 1.1) used for disjunctive

    programs), and

4. ECASP with CLINGO (v 2.0.2).


All experiments were done on a Pentium machine with 3.00 GHz CPU and 2GB RAM running 64 bit Linux. The results are shown on the table below. For the DEC reasoner, the times in parentheses are "(encoding time + SAT solving time)". For the others, they are the times spent by each of grounder and the solver. The grounding time includes the time spent by ECASP in translating an event calculus description into a logic program. The times recorded are the times taken to compute one model.


There are three types of files below each domain name:


1. The *.e file is an event calculus description in the input language of the DEC reasoner,

2. The *-ea.e file is an event calculus description in the input language of ECASP, and

3. The *-ea.lp file is the logic program obtained from *-ea.e by running ECASP.


The following points describe how the input language of ECASP differs from the input language of the DEC reasoner:


1. '!ReleasedAt(fluent, 0)' should be added for all the fluents except for non-inertial fluents

    (the DEC reasoner inserts these formulas automatically for all the fluents that are not

     defined as non-inertial).

2. ECASP ignores load, option sand noninertial statements.

    So, 'ReleasedAt(fluent, time)' should be added for non-inertial fluents.

3. Unlike the DEC reasoner, every implication should be within parentheses. For example,

    consider the following axiom in the input of the DEC reasoner:

    [time] HoldsAt(HasTicket( ),time) → Initiates(BoardRed( ),OnRed( ),time).

    This is represented as

    [time] ( HoldsAt(HasTicket( ),time) → Initiates(BoardRed( ),OnRed( ),time) ).

    in the input language of ECASP.

4. Unlike the DEC reasoner, range statements for time and offset are defined before axioms
    for error checking.