问题标签 [nxbre]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
66 浏览

nxbre - 我是否必须处理查询以确保将暗示断言为事实?

试图从实施文档中清除这一点;但我只能得到暗示和查询是相似的野兽。我还阅读了Simple Facts & Queries,但这对这个计数没有帮助。

我在规则文件中注释掉了查询部分并进行了处理。没有断言暗示......我通过将所有事实转储到平面文件来检查这一点。

我希望即使在没有查询的情况下,也能在处理过程中断言暗示,以便我可以将所有事实(从 VB 断言的基本事实和暗示事实)保存在数据库中,然后将其用于某些内容。有什么办法吗?

谢谢

0 投票
1 回答
116 浏览

vb.net - InfEng.RunQuery(Query).Count

我问推理引擎一个问题如下,如果返回结果,我想获得第一个 Fact,对于第一个 Query(问题由 Query 中的 2 个 Atoms 组成)。

strAnswer = IIf(InfEng.RunQuery(Question).Count > 0, InfEng.RunQuery(Question)(0)(0).ToString, "No Answer")

这会引发错误

查询计数 = 0 时。在“观察”窗口中,它的计算结果为 0,并且当我打开评估语句时显示消息:错误且没有子项。当查询返回 Facts 时,这会顺利进行。

我替换.Any了 ,而不是 Count,但这也没有用。

当我将其更改为标准If-Then-End If时,它适用于所有情况......并且与.Count&.Any

我做错了什么?

0 投票
1 回答
471 浏览

rule-engine - NxBRE 规则引擎 - 对象更改触发

我需要对我的 .NET 应用程序的规则引擎进行研究,我遇到了 NxBRE。

我的应用程序中有不同类型的对象,当对象字段和状态发生变化时,我想使用 NxBRE。

例如:如果 Aa 已更改为 x 而 Bb 为 y,则执行操作。

我找不到一个教程或一个很好的例子,所以任何帮助将不胜感激。

此外 - 如果您对最适合我需要的其他规则引擎有任何建议,我很乐意在这里。

谢谢。

0 投票
1 回答
188 浏览

logging - 使用 NxBRE 进行日志记录

如何指示 NxBRE 引擎记录一些消息?我知道有<log>可用的标签,可以按如下方式使用:

但我找不到任何文件。主要是,我需要这些问题的答案:

  1. 如何指定要使用的日志记录引擎(例如,我想使用 log4net - 我如何让 NxBRE 知道这一点)?

  2. 支持的level属性值是什么?

谢谢!

0 投票
1 回答
117 浏览

case-insensitive - 我们可以在 nxbre 的 if 元素中进行不区分大小写的比较吗

我正在使用 NxBre 3.2.0。我想以不区分大小写的方式比较两个字符串,但在 IF 元素中没有找到任何选项。有没有可能这样做。

0 投票
1 回答
171 浏览

nxbre - nxbre 与 orientDB 之类的图形数据库?

NxBRE 可以使用 SQL 作为后端。我认为利用像 OrientDB 这样的图形数据库可能会产生更好的结果。

转向这种类型的后端集成以支持具有数百万事实的场景将涉及什么。由于 OrientDb 具有类似 SQL 的语法,它会“有点”容易吗?当我们超出物理 RAM 的限制时,我试图找到创造性的方法来快速处理影响。

这种类型的集成值得一试吗?

0 投票
1 回答
84 浏览

nxbre - IF statement not evaluating as true

I have ran a rulesEngine.RuleContext.GetResult("CustomFieldName").Result and it does equal to XAGENTNAME but won't set the isValid variable to false.

why?

0 投票
1 回答
127 浏览

nxbre - NxBRE 规则引擎,以对象作为参数的调用方法

我目前正在尝试使用 NxBRE 规则引擎https://github.com/ddossot/NxBRE

我想要做的是在 .XBRE 文件中创建一个规则,在该规则中我调用我的 .CS 文件中的一个方法,并将一个对象作为参数传递(而不是像整数、字符串这样的原始类型......)。

我试过这个:1

我的方法是 testChild,它在 FlowEngineExample.Program 类中,并将我传递给带有 ID 问题的规则上下文的 FlowEngineExample.Problem 类型的对象作为参数。但这不起作用,因为参数只接受像 Integer,string ...

我需要做什么 ??

0 投票
0 回答
51 浏览

nxbre - 修改未断言的含义

在现有的规则文件中,我添加了一个新的暗示(动作是修改)、7 个事实和 8 个其他要由暗示修改的初始事实。像巧克力盒示例一样对它们进行排序,其含义位于顶部。Imp has priority:100 for good measure 修改含义有一个“标签:更新”,这与基本事实不同

引擎从 VB.net 代码初始化、调用等 1) 使用 RuleML 文件初始化 RuleAdapter 并初始化 ie.LoadRuleBase(RulAdap) 2) 使用 ie.LoadFacts(FactBaseAdapter) 3) ie.Process()

当我查询这个时,它只返回“基本”事实。对基本事实的修改似乎没有发生。但是相同的规则文件和事实库在 IE 控制台中完美运行!还使用不同的事实文件进行了测试,并且适当地选择和修改了基本事实。所以新的 Imp-Facts-Query 集似乎没有任何缺陷。

认为 ie.Process() 不够,我尝试了 ie.Process(RuleTypes.All) 但无济于事。

编辑 4 月 15 日 IE-Console 中的详细日志在“找到的目标”和“修改的目标”的第一次出现之间有以下几行。这个“异常”是否可以在应用程序中停止执行......但在控制台中使用默认值继续执行?

编辑 4 月 14 日