Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java C或Python中的规则引擎_Java_Python_C_Rule Engine - Fatal编程技术网

Java C或Python中的规则引擎

Java C或Python中的规则引擎,java,python,c,rule-engine,Java,Python,C,Rule Engine,我正在寻找C或Python中的规则引擎,但如果您知道用另一种语言实现的规则引擎,我很乐意了解它 该引擎将被用来实现房屋自动化,比如当有人离开房间时关灯等。所以这里没有“办公室”规则(也就是说,你用Excel或类似的工具来制定规则) 我调查了Java中的Jess和Drools,他们做得很好。我想知道其他人,可能比Java使用更少的内存。 我听说过Python中的RuleCore,但找不到任何关于它的文档(SourceForge提供了1.0版,但看起来他们正在销售2.0版) EDIT:所谓规则引擎(

我正在寻找C或Python中的规则引擎,但如果您知道用另一种语言实现的规则引擎,我很乐意了解它

该引擎将被用来实现房屋自动化,比如当有人离开房间时关灯等。所以这里没有“办公室”规则(也就是说,你用Excel或类似的工具来制定规则)

我调查了Java中的Jess和Drools,他们做得很好。我想知道其他人,可能比Java使用更少的内存。 我听说过Python中的RuleCore,但找不到任何关于它的文档(SourceForge提供了1.0版,但看起来他们正在销售2.0版)


EDIT:所谓规则引擎(推理引擎),我指的是RETE或等效工具的实现。

是用ruby编写的规则引擎。这是2008年rubyhoedown上的一次演讲主题:

皮钦科已经存在了一段时间。我从未在生产中使用过它,但不久前研究过它可能的生产应用。看起来它有很好的功能和一个不错的用户社区

实际上,Python是一个规则引擎

“发动机将被用来实现房屋自动化,如有人离开房间时关灯等。”

你需要传感器和控制器。您可以将“规则”编写为普通Python对象

主“程序”从传感器收集事件,并将事件发送到控制器

如果你能通过普通USB读取传感器的数据,那就更好了。船舶行业使用两个密切相关的标准,如NMEA 0183和NMEA 2000,来指定从传感器到控制器的总线流量

你不需要另一种语言。你有Python。

如果你想付钱或需要它,你可以按照已经建议的那样看。我以前在Unix上使用过CLIPS,并成功地将其嵌入到其他应用程序中


希望这对您有所帮助。

在您搜索Python中基于RETE的规则引擎时,您可以选择使用它,也可以选择使用它


PS:我对S.洛特关于派克的回答留下了评论。根据他的建议,我已经发布了一个单独的答案,同时也让其他读者知道,如果他们正在搜索,这个答案中提到的规则引擎可能是一个可能的选择。

Rulecore确实部分是用Python编写的。但这并不重要。作为用户,您无论如何都不会看到这些实现细节


这些规则纯粹是声明性的,并使用XML定义。XML作为事件使用web服务或JMS或其他协议发送到ruleCore CEP服务器。

以下是java中13个开源规则引擎的列表,Drools可能是其中最好的

我知道ruleCore有些部分是用Python编写的。但是API使用XML和ActiveMQ或WebServices,因此它处于更高的抽象级别。

是为家庭自动化和其他软件/机器编写规则的最简单方法。下面是一个实现灯光关闭的示例:

class high_temp_shutdown(NebriOS):
    listens_to == ['shared.pebble_location'] 


    def check(self):
        # if pebble dongle is out or room, return true
        return shared.pebble_location > 3 # in meters

    def action(self):
        smartthings.lights(2,"off")
它是实现房屋自动化的完美工具,因为您可以pip安装现有库以在脚本中使用。Nest、SmartThings、Sen.se等。这只是Python


要更全面地解释为什么Python本身不是一个规则引擎,请参阅。因为Python本身可以执行规则,所以您手头上没有规则引擎。事实上,这是一个巨大的建筑转变

我用python编写了一个简单的规则引擎。您可以将规则存储在json或yaml字符串中,并使用此规则引擎将规则与上下文匹配


谢谢,我已经看到了这个问题,我不想实现新的规则引擎。但是我第一次没有看到对CLIPS的引用:)我不确定你的意思,但是我想你可以说任何图灵完备语言实际上都是一个规则引擎。我可能应该提到RETE算法,它比根据每个规则检查事实要快得多。因为我不是Python专家,所以我不确定您将如何做到这一点。你在解释的地方有什么联系吗?@Yanik:如果推理是问题空间的一部分,那么更新问题以包含这个事实。规则处理必须不涉及推理。如果您需要推理,请更新您的问题,并清楚地说明这一点。如果您正在寻找关于您的规则的推理,那么查看Pyke[]将是非常有用的helpful@ardsrk当前位置请将您的评论作为单独的答案发布,以便我可以投票支持。谢谢。你知道该社区有哪些邮件列表或irc频道吗?它看起来不再被维护了。。你听说过pyCLIPS吗(我刚发现)?pyCLIPS就是。而且把我的Jess规则翻译成剪辑真的很容易。