Not logged in.  Login/Logout/Register | List snippets | | Create snippet | Upload image | Upload data

35
LINES

< > BotCompany Repo | #1018148 // applyNLLogicFacts_v4_iterate - only calls onRuleFired

JavaX fragment (include)

static new ThreadLocal<Bool> applyNLLogicFacts_v4_iterate_verbose;

svoid applyNLLogicFacts_v4_iterate(S input, VF2<IfThen, NLLogicChecker_v2.Matching> onRuleFired) {
  applyNLLogicFacts_v4_iterate(input, onRuleFired, mL_facts());
}

svoid applyNLLogicFacts_v4_iterate(S input, VF2<IfThen, NLLogicChecker_v2.Matching> onRuleFired, LS facts) {
  applyNLLogicFacts_v4_iterate(input, onRuleFired, facts, ai_mL_parsedLogicExamples2());
}

svoid applyNLLogicFacts_v4_iterate(S input, VF2<IfThen, NLLogicChecker_v2.Matching> onRuleFired, LS facts, L<IfThen> rules) {
  new NLLogicChecker_v2 c;
  c.matcher = new NLStringMatcher_dollarVars;
  addAll(c.facts, facts);
  c.input = input;
  
  applyNLLogicFacts_v4_iterate(c, onRuleFired, rules);
}

svoid applyNLLogicFacts_v4_iterate(final NLLogicChecker_v2 c, final VF2<IfThen, NLLogicChecker_v2.Matching> onRuleFired, L<IfThen> rules) {
  c.rules = rules;
  for (final IfThen rule : rules) pcall {
    final new NLLogicChecker_v2.Matching m;
    m.verbose = isTrue(applyNLLogicFacts_v4_iterate_verbose!);
    if (m.verbose)
      print("Checking rule (iterating): " + rule);
    c.iterate(rule.in, m, r {
      if (m.verbose) {
        print("Matched " + quote(c.input) + " with rule " + quote(rule));
        printStruct("  ", m.matches);
      }
      callF(onRuleFired, rule, m);
    });
  }
}

Author comment

Began life as a copy of #1017806

download  show line numbers  debug dex  old transpilations   

Travelled to 13 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, irmadwmeruwu, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tvejysmllsmz, vouqrxazstgt

No comments. add comment

Snippet ID: #1018148
Snippet name: applyNLLogicFacts_v4_iterate - only calls onRuleFired
Eternal ID of this version: #1018148/7
Text MD5: 0f1e5ca1d4f819b8ea27ef0abc336e7f
Author: stefan
Category: javax / a.i.
Type: JavaX fragment (include)
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2018-09-13 17:36:47
Source code size: 1373 bytes / 35 lines
Pitched / IR pitched: No / No
Views / Downloads: 388 / 424
Version history: 6 change(s)
Referenced in: #1006654 - Standard functions list 2 (LIVE, continuation of #761)
#1018321 - applyNLLogicFacts_v4_iterate_withFailed