2010-08-01 18 views
6

¿LISP o algo así como Jess es la mejor opción? Me interesa escribir un programa que haga una sugerencia basada en las respuestas de los usuarios. Las consideraciones computacionales no son realmente un factor, este es más o menos un motor de coincidencia de patrones. También me gustaría hacer una aplicación para esto y ponerla en la web.¿Cuál es el mejor idioma para escribir un sistema experto?

ACTUALIZACIÓN: Me gustaría poner esto en un blog o sitio web y dejar que la gente lo use desde allí. Supongo que mi pregunta entonces, ¿hay un motor de inferencia particular que funcione con la familia .NET, o PHP, o algo por el estilo? Cuáles son algunos de los pros y contras de cada opción, etc.

+1

"Mejor" es una bandera roja. Es mejor preguntar después de los pros y los contras, pero incluso entonces estás en territorio subjetivo con riesgo de argumentación ... – dmckee

+0

Acepto: separar los hechos de la interpretación y la valoración. – LennyStackOverflow

Respuesta

6

Paso 1. Elija un motor de inferencia. Hay muchas opciones. Aquí hay una lista: http://en.wikipedia.org/wiki/Expert_system#Shells_or_Inference_Engine

Paso 2. Utilice el idioma que interactúa con el motor de inferencia.

Será mucho más feliz aprovechando un motor de inferencia para el trabajo de sistemas expertos.


me gustaría poner esto en un blog o página web y dejar que la gente lo usa desde allí

Trivial.

¿Hay un motor de inferencia particular que funcione con la familia .NET o PHP, o algo por el estilo?

No importa.

Aquí está la confusión. Su "sitio web" y su "aplicación de inferencia" no tienen NADA que ver entre sí. Nada.

Su sitio web se puede realizar en cualquier conjunto de herramientas que pueda encontrar. No importa.

Su aplicación de inferencia se puede hacer en cualquier conjunto de herramientas que pueda encontrar. No importa.

Su sitio web invocará la aplicación de inferencia a través de cualquier API que tenga sentido. El denominador común más bajo en API (la razón por la cual ninguna de estas opciones importa) es hacer esto.

  1. Escriba su aplicación de inferencia como una herramienta de línea de comando autónoma.

  2. Escriba su aplicación web para ejecutar la herramienta independiente, recopilar la salida y convertir la salida en una página HTML.

Tenga en cuenta que esta aplicación multi-porocess puede ser más rápido y hacer un mejor uso de los procesadores de múltiples núcleos. Obliga al sistema operativo a administrar el servidor web (Apache HTTPD, por ejemplo), la aplicación web y el sistema experto como potencialmente tres procesos separados y paralelos.

+0

Utilicé CLIPS para poner en funcionamiento mi prototipo, pero no tengo idea de cómo hacer accesible o poner en la web una aplicación. ¿Alguna sugerencia? – ihtkwot

+0

@nmr: "No tengo idea de cómo hacer que la web sea accesible". Esa no es tu pregunta, ¿verdad? Por favor actualice su pregunta o haga otra pregunta. –

2

Escuchará muchas opiniones subjetivas aquí, ya que pocas personas tienen experiencia en más de un idioma escribiendo sistemas expertos.

Puedo recomendar Common Lisp, ya que hay bastante literatura y código disponible en este idioma, y ​​es un lenguaje muy potente y no demasiado difícil de aprender (lea "Practic Common Lisp" de Peter Seibel). Por supuesto, cualquier nuevo lenguaje de alto nivel requiere algún esfuerzo para aprender. Para la aplicación web, puede usar, por ejemplo, Hunchentoot y CL-WHO, y hay una gran cantidad de enlaces de bases de datos (Me gusta Postmodern y CL-SQLite).

Cuestiones relacionadas