language agnostic - ¿Qué motor de reglas debería usar?
language-agnostic rule-engine (10)
Tengo un poco de experiencia con Haley Expert Rules y Haley Office Rules. Ambos sistemas agradables, pero necesitaría saber un poco más sobre qué quieres usar para responder definitivamente (ver http://www.haley.com )
Ambos soportan C # y Java (y creo que también una API de servicio web).
La diferencia entre los dos se basa principalmente en la cantidad de modelos de lenguaje natural que desea obtener. Las reglas de Office permiten a los usuarios empresariales escribir reglas en un documento de Office y se centra principalmente en el modelado de requisitos legislativos. Las reglas de los expertos pueden ser un poco más flexibles en la definición de cómo maneja el lenguaje natural, pero requiere más trabajo para definir las estructuras del lenguaje por adelantado.
Espero que algo de eso ayude.
¿Cuáles son algunos de los mejores o más populares motores de reglas? No me he decidido por un lenguaje de programación, así que dígame el motor de reglas y los lenguajes de programación que admite.
Hemos utilizado tanto http://jatha.sourceforge.net como http://www.jboss.com/products/rules . Ambos son bastante buenos, pero en su mayor parte, las reglas de JBoss me parecen excesivas para mucho de lo que hace la gente. Ambos están basados en Java.
Vale la pena recordar la Décima Regla de Programación de Greenspun y saltar para importarla :)
Revisé JBoss Rules aka Drools y se ve bastante bien. Me encantaría saber de personas que lo usan en producción, porque probablemente también necesite un motor de reglas en mi proyecto actual.
Soy uno de los autores de Drools, evitaré el proxenetismo de mis productos.
Pero algunas otras opciones son Jess (no de código abierto) pero usa la sintaxis de los clips (que también admitimos un subconjunto de), que es un dialecto de ceceo.
Realmente depende de lo que quieras, Haley tiene una sólida tecnología de lenguaje natural (y recientemente adquirieron RuleBurst, que también posee una interesante tecnología de lenguaje natural que podría tratar con documentos de Word con reglas integradas, por ejemplo, documentación legal). RuleBurst también pudo apuntar a los tiempos de ejecución de .Net (también hay un "puerto" de Drools.net disponible - No he visto lo que ha estado haciendo últimamente, por desgracia, no hay tiempo suficiente). Ok, voy a dejar a mi proxeneta lejos ahora ... lo siento por eso.
WF ya está disponible en .net 3.0. Sin embargo, es un poco problemático en Designer-side en Visual Studio y puede ser bastante complicado. Lo uso en Sharepoint (donde, de todos modos, WF es su única opción) y, en general, estoy bastante satisfecho con él, aunque la curva de aprendizaje es bastante empinada.
Fundamentos de WF es un buen libro para empezar, ya que implementan una solución completa de principio a fin y explican los conceptos subyacentes.
Este es un gran artículo de Martin Fowler, que es una discusión sobre cuándo los motores de reglas pueden ser útiles. Puede ser útil.
¡El sitio web de Inrule see es muy bueno!
es un motor de reglas basado en .NET con un SDK sólido y una interfaz de usuario agradable para usuarios no técnicos. Me funcionó de maravilla en el pasado, prácticamente redujo mi costo de desarrollo a la mitad.
Para reglas de procedimiento muy bien entendidas (como reglas de elegibilidad, reglas de seguro, reglas de auditoría, etc.), las tablas de decisión simples con un lenguaje específico del dominio pueden proporcionarle el rendimiento y la simplicidad sin la sobrecarga de los motores basados en RETE.
Un motor de reglas de origen abierto Java de este tipo se puede encontrar en DTRules
Encontré otro motor de reglas que admite diferentes tipos de reglas; Procedural, Inference (RETE) y FlowRule. Este es un motor de reglas bastante flexible y extensible (también impulsado por eventos). Tenían versión expresa como edición gratuita hace tiempo.
Eche un vistazo a http://www.flexrule.com
Dependiendo de sus requisitos, vale la pena echarle un vistazo a Windows Workflow Foundation (.NET 3.5).
El motor de reglas .NET InRule admite WF y BizTalk; No lo he probado, así que no sé si es bueno.