Event Calculus Examples The table below compares the performance of different tools (combination of tools).
The time shown with respect to a problem (Event Calculus description) is the time taken to produce one model of the description.

DEC reasoner:

DEC reasoner is a SAT based implementation of the Discrete Event Calculus.
It is implemented by Erik Mueller.

version 1.0 (RELSAT version 2.0).
First row : Total time in seconds (as provided by DEC reasoner).
Second row : Breakup of the total time - (T1+T2) indicates T1 seconds for compiling to SAT and T2 seconds to generate a model of the SAT instance.
Third row : A - no. of atoms in the SAT instance, C - no. of clauses in the SAT instance.

F2LP + Answer Set Solvers:

F2LP version 1.0
Lparse version 1.1.1
Cmodels version 3.79 (RELSAT version 2.0).
Gringo version 2.0.3
Clasp version 1.2.1
ClaspD version 1.1
Clingo version 2.0.3 (Clasp version 1.2.0).
First row : Total time in seconds (obtained using "time" command in linux, not including time taken by F2LP).
Second row : Breakup of total time - (T1+T2) indicates T1 seconds for grounding and T2 seconds for solving.
Third row : A - no. of atoms after grounding, R - no. of rules after grounding, C - no. of clauses in the SAT instance (only for Cmodels).
Time taken by F2LP : Negligible for all the problems.

Running F2LP

f2lp *.fo

Running F2LP output using different solvers

lparse --dlp-choice -c maxstep=N *.fo.lp DEC.lp (or EC.lp or EC_dur.lp) [ECCausal.lp] | cmodels -rs
gringo -c maxstep=N *.fo.lp DEC.lp (or EC.lp or EC_dur.lp) [ECCausal.lp] | clasp[D]
clingo -c maxstep=N *.fo.lp DEC.lp (or EC.lp or EC_dur.lp) [ECCausal.lp]

Replace N by the maximum timepoint in the above command lines.
EC_dur.lp has to be used for problems with durative events (Commuter).
ECCausal.lp is only necessary for problems involving causal constraints (Thielscher's Circuit).
Download: DEC.lp   EC.lp   EC_dur.lp   ECCausal.lp
In the following table, claspD is used only for problems that cannot be handled by clasp.

Problem (Maximum timepoint)
F2LP input (*.fo)
F2LP output (*.lp)
DEC reasoner input (*.e)
DEC reasoner (with RELSAT 2.0) Lparse + Cmodels (with RELSAT 2.0) Gringo + Clasp(D) Clingo
Bus Ride (15)
BusRide.fo
BusRide.lp
Cannot handle disjunctive event axioms 0.47
(0.43+0.04)
A:902, R:7779, C:0
0.04
(0.03+0.01)
A:778, C:3593
Cannot handle disjunctive programs
Commuter (15)
Commuter.fo
Commuter.lp
Cannot handle compound events 592.04
(536.45+55.59)
A:32861, R:8734019, C:0
49.22
(41.47+8.75)
A:30092, R:6020143
31.32
Kitchen Sink (25)
KitchenSink.fo
KitchenSink.lp
KitchenSink.e
      71.10
     (70.70+0.40)
      A:1014, C:12109
43.75
(37.69+6.06)
A:121621, R:480187, C:0
6.34
(4.40+1.94)
A:121043, R:474946
4.75
Thielscher's Circuit (20)
ThielscherCircuit.fo
ThielscherCircuit.lp
ThielscherCircuit.e
       11.10
      (10.50+0.60)
      A:1394, C:42454
0.52
(0.47+0.05)
A:3932, C:0, R:10999
0.07
(0.05+0.02)
A:1866, R:6634
0.05
Walking Turkey (15)
WalkingTurkey.fo
WalkingTurkey.lp
Cannot handle effect constraints 0.03
(0.03+0.00)
A:370, R:518, C:0
0.01
(0.01+0.00)
A:367, R:507
0.01
Falling Object With AntiTrajectory (15)
FallingObjectWithAntiTrajectory.fo
FallingObjectWithAntiTrajectory.lp
FallingObjectWithAntiTrajectory.e
       270.20
      (269.30+0.90)
      A:416, C:3056
0.74
(0.66+0.08)
A:4994, R:9717, C:0
0.10
(0.07+0.03)
A:4125, R:7823
0.08
Falling Object With Events (25)
FallingObjectWithEvents.fo
FallingObjectWithEvents.lp
FallingObjectWithEvents.e
       107.70
      (107.50+0.20)
      A:1092, C:12351
34.95
(31.12+3.83)
A:1240, R:388282, C:1436
2.99
(2.01+0.98)
A:146197, R:202202
2.35
Hot Air Balloon (15)
HotAirBalloon.fo
HotAirBalloon.lp
HotAirBalloon.e
       61.10
      (61.10+0.00)
      A:288, C:1163
0.18
(0.15+0.03)
A:494, R:2451, C:689
0.03
(0.03+0.00)
A:1140, R:1912
0.03
Telephone1 (40)
Telephone1.fo
Telephone1.lp
Telephone1.e
       18.20
      (17.70+0.50)
      A:5419, C:41590
1.69
(1.51+0.18)
A:21414, R:27277, C:0
0.31
(0.26+0.05)
A:21376, R:27104
0.24



    Back to Home Page