Hace no muchos días Javier Romero hablaba de su proyecto secreto en el cual pensaba usar CLIPS para la parte de inteligencia artificial y repasaba las opciones para Java, PHP y C++. Yo también necesito un sistema de reglas y, visto CLIPS, he decidido descartarlo por completo. Os relato mi viaje mental desde mi intención inicial a la conclusión.

Inicialmente, utilizar CLIPS me parecía una idea no demasiado mala. Nunca es malo aprender algun lenguaje/paradigma nuevo… así que me voy a la web oficial. El primer ostión… los manuales no son grandes, son inmensos. La referencia de CLIPS tiene como 400 páginas y la guía de programación, que va aparte, tiene más de 100. Mi impresión es… esto me va a llevar más tiempo del que había pensado.

Me pongo a mirar a ver si hay algún wrapper facilote para C++… hay una DLL (solo para Windows) sin demasiada documentación, con unos ejemplos para que veas como funciona.

Antes de seguir más se me ocurre hacer un poco de espionaje estudio de glest. Vaya… hacen las reglas a pelo con C++. También me ha gustado mucho la organización de directorios que tienen, aunque no creo que se la copie del todo.

Total, que me parece que voy a utilizar Lua para definir las reglas, exportaré desde C++ una serie de funciones para poder acceder a la base de conocimiento y programaré el núcleo de selección a manita. Después de todo no es mas que una iteración hasta que encuentres una que aplicar. Se puede depurar mucho este algoritmo, pero creo que con una cutrada como la que acabo de describir nos va a sobrar.

2 comentarios en “Investigando CLIPS”

  1. Topopardo dice:

    Te comento, que he usado Clips para hacer prácticas de IA:
    La sintaxis es infumable. Horrible. Además no es un lenguaje estructurado, lo que requiere un “cambio de chip” importante cuando llevas N años programando en OO. Está totalmente basado en reglas.

    Para diseñar la ontología usábamos protégé, que no está mal aunque es poco user-friendly (incluso para ingenieros), luego la exportábamos a Clips. Cuidado con los acentos.

    El entorno Clips no está mal, tiene ventanitas con los facts, rules y todo lo que se está aplicando, pero es difícil hacer software no-IA con Clips. Como ya te he dicho, al estar basado en reglas nunca sabes a dónde te va a saltar.

    ¿Se nota que odié mucho a Clips? XD

  2. FANatiko dice:

    La idea era escribir las reglas a mano con un editor de texto que tenga resaltado de CLIPS. Al ser para un RTS sin demasiada gestión de recursos y solo con 2 bandos con entre 10 y 20 reglas nos basta.

    El handicap está en la integracion CLIPS-C++ que no es demasiado chula. Me miré la que le gusta a Javier Romero, Jess, para Java y es bastante mas elegante y limpia (es casi CLIPS on Rails)

Deja una Respuesta