标签: jess

Java规则引擎的优缺点

采用Java规则引擎JESS和Drools有什么优缺点?还有其他球员吗?

我知道Drools是Open Source而JESS不是,但是他们如何比较易用性,性能,与代码集成的其他方面?

java rules drools jess jrules

107
推荐指数
3
解决办法
9万
查看次数

有关规则引擎的神话是什么?

我正在撰写关于规则引擎技术的演示文稿,特别是JBoss Drools.

什么是关于规则引擎的"神话".

我能想到的是,它允许业务用户控制规则引擎,我相信它是可能的,但它需要控制和教育 - 并非所有业务用户都能够做到这一点.

你同意/不同意吗?有没有人有任何想法?

很高兴在Creative Commons下发布我的最终"调查结果"......

rule-engine drools expert-system jess jrules

10
推荐指数
2
解决办法
3437
查看次数

编写专家系统的最佳语言是什么?

LISP或Jess之类的东西是最好的选择吗?我有兴趣编写一个基于用户答案提出建议的程序.计算方面的考虑并不是一个真正的因素,它几乎就是模式匹配引擎.此外,我想为此制作一个应用程序并将其放在网上.

更新:我想把它放在博客或网站上,让人们从那里使用它.我想我的问题是,是否有一个特定的推理引擎可以与.NET系列或PHP一起使用,或者那种效果?每种选择等的优缺点有哪些?

lisp expert-system jess

6
推荐指数
1
解决办法
5501
查看次数

规则引擎:最适合嵌入式系统

我一直在研究规则引擎,这些规则引擎更适合在嵌入式系统上运行。系统将从传感器收集信息,并根据该信息进行特定的C / C ++调用。一个例子是:

IF RainSensor.value > RainSensor.threshold 
THEN call( GarageWindow::close())
Run Code Online (Sandbox Code Playgroud)

作为GarageWindow的C ++类,位于链接到规则引擎库的二进制文件中。

我不能对上述嵌入式系统的功能做出任何假设。要求是:

  • 最小的占地面积。
  • 随身携带
  • 能够进行函数调用(从其RHS进行C / C ++调用)。
  • 应该在运行时接受新规则。

我需要根据其功能(在以后定义)中给出其他选择,这些假设是:

1)嵌入式系统不支持任何内容(不支持JVM,不支持python等):

CLIPS作为C库或clipsmm作为C ++库。两者均可用于商业应用(clipsmm的GPL)。

优点:开源。很好的测试/记录。可移植,可在低内存占用情况下运行。可以从其RHS部分调用C或C ++函数。规则引擎很可能需要与C或C ++软件进行交互。

缺点:它不是线程安全的。它仅支持正向链接。

2)系统支持python:

PyClips:

到CLIPS的Python接口。功能保持与以前的情况相同。仅当需要在RHS部分中进行python调用时,使用此选项才有好处。我错过任何优点/缺点吗?

3)系统支持JVM:

杰西:

优点:与Java对象的良好集成。类似于CLIPS的脚本语言。向前和向后链接。自动侦听Java对象以修改插槽。

缺点:许可。只能在编译时定义新类。

流口水:

优点:开源。记录下来。Java集成。向前和向后链接。

缺点:它更适合在网络上工作(这是我的印象)。

在嵌入式环境中,Drools vs Jess有什么优势?

两者都只能在编译时添加新类。CLIPS可以在运行时。另一方面,如果更新剪辑实例的C ++代码很旧,则直接在CLIPS中创建的任何新类都不会与调用C ++代码中的任何其他类匹配。因此,重新编译Java选项的弊端并非如此。

还有其他我完全缺少的适用于嵌入式系统的引擎吗?

c++ rule-engine drools clips jess

5
推荐指数
0
解决办法
2143
查看次数

从规则 jess 或 drools 返回一个值(专家系统)

在 jess 中,从规则返回字符串的方法如下:

(defrule welcome-toddlers
"Give a special greeting to young children"
(person {age < 3})
=>
(printout t "Hello, little one!" crlf))
Run Code Online (Sandbox Code Playgroud)

我的问题是如何实现返回功能,这就是我想要的:

(defrule welcome-toddlers
"Give a special greeting to young children"
(person {age < 3})
=>
(return "Hello, little one!"))
Run Code Online (Sandbox Code Playgroud)

如果不可能怎么办?

java rule-engine drools expert-system jess

1
推荐指数
1
解决办法
3176
查看次数

标签 统计

jess ×5

drools ×4

expert-system ×3

rule-engine ×3

java ×2

jrules ×2

c++ ×1

clips ×1

lisp ×1

rules ×1