# HG changeset patch # User drewp@bigasterisk.com # Date 1632297746 25200 # Node ID 4a15b4cd46007dcdc4b6f560bcda98ab113ac6e6 # Parent 80f4e741ca4f8ca7812d17d9290c7996fa6dc76d don't jsut quietly succeed if iteration limit is reached diff -r 80f4e741ca4f -r 4a15b4cd4600 service/mqtt_to_rdf/inference.py --- a/service/mqtt_to_rdf/inference.py Wed Sep 22 01:00:32 2021 -0700 +++ b/service/mqtt_to_rdf/inference.py Wed Sep 22 01:02:26 2021 -0700 @@ -436,7 +436,7 @@ rulesIterations = 0 delta = 1 stats['initWorkingSet'] = cast(int, workingSet.__len__()) - while delta > 0 and rulesIterations <= self.rulesIterationLimit: + while delta > 0: log.debug('') log.info(f'{INDENT*1}*iteration {rulesIterations}') @@ -445,6 +445,8 @@ delta += len(implied) rulesIterations += 1 log.info(f'{INDENT*2} this inference iteration added {delta} more implied stmts') + if rulesIterations >= self.rulesIterationLimit: + raise ValueError(f"rule too complex after {rulesIterations=}") stats['iterations'] = rulesIterations stats['timeSpent'] = round(time.time() - startTime, 3) stats['impliedStmts'] = len(implied)