Skip to content

Commit ad09721

Browse files
committed
fixed bug in rule trace due to deletion of applied rules and changed version
1 parent 4447751 commit ad09721

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

pyreason/scripts/interpretation/interpretation.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,7 @@ def reason(interpretations_node, interpretations_edge, tmax, prev_reasoning_data
341341
# If we are coming here from an immediate rule firing with delta_t=0 we have to apply that one rule. Which was just added to the list to_be_applied
342342
if immediate_node_rule_fire and rules_to_be_applied_node[-1][4]:
343343
i = rules_to_be_applied_node[-1]
344-
idx = -1
344+
idx = len(rules_to_be_applied_node) - 1
345345

346346
if i[0]==t:
347347
comp, l, bnd, immediate = i[1], i[2], i[3], i[4]
@@ -417,6 +417,8 @@ def reason(interpretations_node, interpretations_edge, tmax, prev_reasoning_data
417417
# Remove from rules to be applied and edges to be applied lists after coming out from loop
418418
rules_to_be_applied_node[:] = numba.typed.List([rules_to_be_applied_node[i] for i in range(len(rules_to_be_applied_node)) if i not in rules_to_remove_idx])
419419
edges_to_be_added_node_rule[:] = numba.typed.List([edges_to_be_added_node_rule[i] for i in range(len(edges_to_be_added_node_rule)) if i not in rules_to_remove_idx])
420+
if atom_trace:
421+
rules_to_be_applied_node_trace[:] = numba.typed.List([rules_to_be_applied_node_trace[i] for i in range(len(rules_to_be_applied_node_trace)) if i not in rules_to_remove_idx])
420422

421423
# Edges
422424
rules_to_remove_idx.clear()
@@ -427,7 +429,7 @@ def reason(interpretations_node, interpretations_edge, tmax, prev_reasoning_data
427429
# If we are coming here from an immediate rule firing with delta_t=0 we have to apply that one rule. Which was just added to the list to_be_applied
428430
if immediate_edge_rule_fire and rules_to_be_applied_edge[-1][4]:
429431
i = rules_to_be_applied_edge[-1]
430-
idx = -1
432+
idx = len(rules_to_be_applied_edge) - 1
431433

432434
if i[0]==t:
433435
comp, l, bnd, immediate = i[1], i[2], i[3], i[4]
@@ -504,6 +506,8 @@ def reason(interpretations_node, interpretations_edge, tmax, prev_reasoning_data
504506
# Remove from rules to be applied and edges to be applied lists after coming out from loop
505507
rules_to_be_applied_edge[:] = numba.typed.List([rules_to_be_applied_edge[i] for i in range(len(rules_to_be_applied_edge)) if i not in rules_to_remove_idx])
506508
edges_to_be_added_edge_rule[:] = numba.typed.List([edges_to_be_added_edge_rule[i] for i in range(len(edges_to_be_added_edge_rule)) if i not in rules_to_remove_idx])
509+
if atom_trace:
510+
rules_to_be_applied_edge_trace[:] = numba.typed.List([rules_to_be_applied_edge_trace[i] for i in range(len(rules_to_be_applied_edge_trace)) if i not in rules_to_remove_idx])
507511

508512
# Fixed point
509513
# if update or immediate_node_rule_fire or immediate_edge_rule_fire or immediate_rule_applied:

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
setup(
1010
name = 'pyreason',
11-
version = '1.6.3',
11+
version = '1.6.4',
1212
author = 'Dyuman Aditya',
1313
author_email = 'dyuman.aditya@gmail.com',
1414
description = 'An explainable inference software supporting annotated, real valued, graph based and temporal logic',

0 commit comments

Comments
 (0)