Resumen
Un sistema experto permite partir de hechos y aplicar reglas para obtener nuevos hechos, llamados hechos inferidos. Reemplazan o complementan el conocimiento del experto, según el caso.
Están compuestos por una base de reglas que contiene todas las reglas conocidas por el experto y que permite llegar a conclusiones. Se componen, también, de una base de hechos que representan todo lo que se conoce por parte del usuario, así como los hechos inferidos hasta el momento. Una interfaz de usuario permitirá comunicarse de forma clara con las distintas personas que utilicen el sistema.
El núcleo del sistema experto es su motor de inferencia. Es el que va a escoger y aplicar las reglas, y ejecutar las interacciones con el usuario. Puede ser de razonamiento deductivo si parte de los hechos para obtener otros nuevos o de razonamiento inductivo si parte de un objetivo y busca cómo alcanzarlo.
La creación de este motor no es una tarea sencilla, pero es posible implementarlo en todos los lenguajes. Los motores de razonamiento deductivo son, sin embargo, mucho más fáciles de codificar, por ejemplo en C#. Existen lenguajes particulares, propios de la programación funcional o lógica, como Prolog, que permiten simplificar la implementación de sistemas expertos. En efecto, el motor es una parte integrante del lenguaje.
Por último, es posible agregar la gestión de incertidumbre, tanto a nivel de los hechos introducidos por el usuario como en las reglas, para dominios más difíciles...