# HG changeset patch # User drewp@bigasterisk.com # Date 1630914973 25200 # Node ID e3c44ac6d3c51c331e71a88c12bbd02249c1d390 # Parent 30463df12d896be15cde5785d36fd2dfae604d7e do findEvals once at setRules time diff -r 30463df12d89 -r e3c44ac6d3c5 service/mqtt_to_rdf/inference.py --- a/service/mqtt_to_rdf/inference.py Sun Sep 05 23:27:49 2021 -0700 +++ b/service/mqtt_to_rdf/inference.py Mon Sep 06 00:56:13 2021 -0700 @@ -79,7 +79,7 @@ def _applyFunctionsIteration(self, lhs, usedByFuncs: Graph): before = len(self.binding) delta = 0 - for ev in Evaluation.findEvals(lhs.graph): + for ev in lhs.evaluations: log.debug(f'{INDENT*3} found Evaluation') newBindings, usedGraph = ev.resultBindings(self.binding) @@ -153,6 +153,9 @@ if not varsAndBnodesInStmt: self.staticRuleStmts.add(ruleStmt) + self.evaluations = list(Evaluation.findEvals(self.graph)) + + def findCandidateBindings(self, workingSet: ReadOnlyWorkingSet) -> Iterator[CandidateBinding]: """bindings that fit the LHS of a rule, using statements from workingSet and functions from LHS"""