Pregunta

Busco un motor de reglas en C o Python, pero si conoce un motor de reglas que se implementa en otro idioma que estaría contento de saber sobre él.

El motor se utiliza como forma de automatizar una vivienda, como apagar la luz cuando alguien sale de una habitación, etc Así que no hay reglas "de oficina" allí (alias que hacen las reglas en Excel o tal).

He mirado en Jess y Drools que están en Java y hacer un trabajo perfecto. Me gustaría saber de los demás y, posiblemente, usando menos memoria que hace de Java. He oído hablar de RuleCore en Python, pero realmente no podía encontrar ninguna documentación sobre el mismo (versión 1.0 está disponible en SourceForge pero parece que están vendiendo v. 2.0).

Editar . Por motor de reglas (motor de inferencia), me refiero a una implementación de RETE equivalente o

¿Fue útil?

Solución

En su búsqueda de motor de reglas basado en Python RETE ya sea Pyke o PyCLIPS podría ser el que usted desea utilizar.

PD: me había dejado un comentario a la respuesta de S. Lott sobre Pyke. He publicado una respuesta por separado de acuerdo con su sugerencia y también para que otros lectores fácilmente saben que el motor de reglas mencionadas en esta respuesta podría ser una opción probable si están en busca de uno.

Otros consejos

Se podría buscar en VIDEOS como ya se ha sugerido, o, si se quiere pagar dinero o lo necesite < a href = "http://www.pst.com/rete2.htm" rel = "nofollow noreferrer"> Rete2 . He usado clips en el pasado en Unix y con éxito incrustado en otras aplicaciones.

Espero que esto ayude.

ruleby es un motor de reglas en escrito en Ruby. Fue objeto de una presentación en rubyhoedown 2008: ruleby-la-regla-motor-de-rubí

Pychinko ha estado alrededor por un tiempo. Nunca he utilizado en la producción, pero lo investigó para su posible aplicación de producción de un tiempo atrás. Se parece que tiene muy buenas características y una comunidad de usuarios decente.

http://www.mindswap.org/~katz/pychinko/

En efecto, Python es un motor de reglas.

"El motor se utiliza como forma de automatizar una vivienda, como apagar la luz cuando alguien sale de una habitación, etc."

Es necesario sensores y controladores. Escribir sus "reglas" como objetos de Python ordinarios.

Su principal "programa" recopila eventos desde sus sensores y envía a los controladores de eventos.

Si usted puede leer de sus sensores a través de USB ordinaria, que es incluso mejor. La industria marina utiliza un par de estándares estrechamente relacionados como NMEA 0183 y NMEA 2000 para especificar el tráfico en el bus desde el sensor al controlador.

No es necesario Sin embargo, otro Lenguaje de Reglas. Usted tiene Python.

Rulecore es, en efecto escrito en parte en Python. Pero en realidad no importa. Usted como usuario, no podría ver cualquiera de estos detalles de implementación de todos modos.

Las reglas son puramente declarativa y definen utilizando XML. El XML es enviado a ruleCore CEP Server como eventos usando un servicio web o JMS u otros protocolos.

A continuación se muestra una lista de los 13 motores de reglas de código abierto en Java, Drools es posiblemente la mejor de ellas. http://java-sources.org/open-source/rule-engines

Yo sé ruleCore tiene algunas partes escritas en Python. Sin embargo, la API utiliza XML y servicios web ActiveMQ o lo que es en un nivel de abstracción más alto.

Nebri es la forma más fácil de escribir reglas para la automatización del hogar y otro software / máquinas. He aquí un ejemplo para llevar a cabo el cierre de la luz:

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")

Es una herramienta perfecta para la automatización de su casa ya que se puede instalar pip bibliotecas existentes para su uso en el script. Nido, SmartThings, Sen.se y así sucesivamente. Es sólo Python!

Y para una explicación más completa de por qué Python no es un motor de reglas por sí mismo, consulte este artículo . El hecho de que en sí Python puede ejecutar reglas, usted no tiene un motor de reglas en sus manos. Es un gran cambio de arquitectura, de hecho.

escribo un motor de reglas simples en Python. Puede almacenar sus reglas en JSON o cadena yaml, y utilizar este motor de reglas para que coincida con la regla con el contexto.

https://github.com/tclh123/rule

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top