Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Entre los productos más significativos de los Sistemas basados en Conocimiento se encuentran los
Sistemas Expertos, los cuales están encargados de representar el conocimiento de los especialistas
de una rama en la procura de su aprovechamiento para tareas de diagnóstico, enseñanza y
control.
Los sistemas basados en conocimiento surgen como una evolución de los paradigmas de
programación a lo largo de la historia de la informática. En los primeros tiempos de la
computación, los programas, ante una petición del usuario, típicamente producían una salida
accediendo a datos almacenados en ficheros con formatos particulares de cada aplicación.
Más adelante surgieron las bases de datos, que abstraían la capa de almacenamiento/persistencia
de datos, eliminando esos ficheros, facilitando así la gestión de la información necesaria para la
aplicación. Además aparecen los conceptos de la interfaz gráfica del sistema operativo, facilitando
la entrada/salida.
Los sistemas basados en conocimiento son una nueva evolución: en estos sistemas, los datos, la
“base de conocimientos”, se convierten en lo más importante, y el código que los explota, el
“motor de inferencias”, se generaliza según diferentes paradigmas. Esta base de conocimientos la
produce un usuario experto en el dominio, los ingenieros del conocimiento, que son diferentes a
los programadores de la interfaz o del propio motor de inferencias.
Sistemas Expertos
Sistema informático diseñado para resolver problemas de un área específica, y al que de algún
modo se le ha dotado de una competencia similar a la de un experto humano de esa área.
Es una aplicación informática capaz de solucionar un conjunto de problemas que exigen un gran
conocimiento sobre un determinado tema. Un sistema experto es un conjunto de programas que,
sobre una base de conocimientos, posee información de uno o más expertos en un área específica.
Se puede entender como una rama de la inteligencia artificial, donde el poder de resolución de un
problema en un programa de computadora viene del conocimiento de un dominio específico.
Estos sistemas imitan las actividades de un humano para resolver problemas de distinta índole (no
necesariamente tiene que ser de inteligencia artificial). También se dice que un SE se basa en el
conocimiento declarativo (hechos sobre objetos, situaciones) y el conocimiento de control
(información sobre el seguimiento de una acción).
Para que un sistema experto sea herramienta efectiva, los usuarios deben interactuar de una
forma fácil, reuniendo dos capacidades para poder cumplirlo:
Explicar sus razonamientos o base del conocimiento: los sistemas expertos se deben realizar
siguiendo ciertas reglas o pasos comprensibles de manera que se pueda generar la explicación
para cada una de estas reglas, que a la vez se basan en hechos.
Estructura básica de un SE
Base de conocimientos (BC): Contiene conocimiento modelado extraído del diálogo con un
experto.
Base de hechos (Memoria de trabajo): contiene los hechos sobre un problema que se ha
descubierto durante el análisis.
Motor de inferencia: Modela el proceso de razonamiento humano.
Módulos de justificación: Explica el razonamiento utilizado por el sistema para llegar a una
determinada conclusión.
Interfaz de usuario: es la interacción entre el SE y el usuario, y se realiza mediante el
lenguaje natural.
Tipos de SE
Limitaciones
Sentido común: Para un Sistema Experto no hay nada obvio. Por ejemplo, un sistema
experto sobre medicina podría admitir que un hombre lleva 40 meses embarazado, a no
ser que se especifique que esto no es posible ya que un hombre no puede gestar hijos.
Lenguaje natural: Con un experto humano podemos mantener una conversación informal
mientras que con un SE no podemos.
Capacidad de aprendizaje: Cualquier persona aprende con relativa facilidad de sus errores
y de errores ajenos, que un SE haga esto es muy complicado.
Perspectiva global: Un experto humano es capaz de distinguir cuales son las cuestiones
relevantes de un problema y separarlas de cuestiones secundarias.
Capacidad sensorial: Un SE carece de sentidos.
Flexibilidad: Un humano es sumamente flexible a la hora de aceptar datos para la
resolución de un problema.
Conocimiento no estructurado: Un SE no es capaz de manejar conocimiento poco
estructurado.
Ejemplos importantes
Dendral
XCon
Dipmeter Advisor
Mycin
CADUCEUS
R1
CLIPS, Jess
Prolog
Tareas que realiza un Sistema Experto
Monitorización
Diseño
Los SE en diseño ven este proceso como un problema de búsqueda de una solución óptima o
adecuada. Las soluciones alternas pueden ser conocidas de antemano o se pueden generar
automáticamente probándose distintos diseños para verificar cuáles de ellos cumplen los
requerimientos solicitados por el usuario, ésta técnica es llamada “generación y prueba”, por lo
tanto estos SE son llamados de selección. En áreas de aplicación, la prueba se termina cuando se
encuentra la primera solución; sin embargo, existen problemas más complejos en los que el
objetivo es encontrar la solución óptima.
Planificación
1. Existen consecuencias no previsibles, de forma que hay que explorar y explicar varios
planes.
2. Existen muchas consideraciones que deben ser valoradas o incluirles un factor de peso.
3. Suelen existir interacciones entre planes de subobjetivos diversos, por lo que deben
elegirse soluciones de compromiso.
4. Trabajo frecuente con incertidumbre, pues la mayoría de los datos con los que se trabaja
son más o menos probables pero no seguros.
5. Es necesario hacer uso de fuentes diversas tales como bases de datos.
Control
Simulación
La simulación es una técnica que consistente en crear modelos basados en hechos, observaciones
e interpretaciones sobre la computadora, a fin de estudiar el comportamiento de los mismos
mediante la observación de las salidas para un conjunto de entradas. Las técnicas tradicionales de
simulación requieren modelos matemáticos y lógicos, que describen el comportamiento del
sistema bajo estudio.
El empleo de los SE para la simulación viene motivado por la principal característica de los SE, que
es su capacidad para la simulación del razonamiento de un experto humano, que es un proceso
complejo.
En la aplicación de los SE para simulación hay que diferenciar cinco configuraciones posibles:
Instrucción
Recuperación de información
Los Sistemas Expertos, con su capacidad para combinar información y reglas de actuación, han
sido vistos como una de las posibles soluciones al tratamiento y recuperación de información, no
sólo documental. La década de 1980 fue prolija en investigación y publicaciones sobre
experimentos de este orden, interés que continua en la actualidad.
MOTOR DE INFERENCIA
Las estrategias de inferencia que más se emplean en sistemas expertos están basadas en la
aplicación de las reglas lógicas denominadas “modus ponens” y modus tollens”.
Modus Ponens.
Es quizá la regla de inferencia más comúnmente utilizada. Se utiliza para obtener conclusiones
simples, en ella se analiza la premisa de la regla, y si es cierta, la conclusión entra a formar parte
del conocimiento. Como ilustración supóngase que se tiene la regla, “Si A es cierto, entonces B es
cierto”, y que se sabe además que “A es cierto”. La regla Modus Ponens, concluye que “B es
cierto”.
Modus Tollens.
Se utiliza también para obtener conclusiones simples. En este caso se examina la conclusión, y si es
falsa, se concluye que la premisa también es falsa. Por ejemplo, supóngase de nuevo que “Si A es
cierto, entonces B es cierto” pero se sabe que “B es falso”. Entonces, utilizando la regla Modus
Ponens no se puede obtener ninguna conclusión pero la regla Modus Tollens concluye que “A es
falso”.
BASES DE HECHOS
Base de hechos (Memoria de trabajo). Contiene los hechos sobre un problema que se han
descubierto durante una consulta. Durante una consulta con el sistema experto, el usuario
introduce la información del problema actual en la base de hechos. El sistema empareja esta
información con el conocimiento disponible en la base de conocimientos para deducir nuevos
hechos.
Alberga los datos propios correspondientes a los problemas que se desea tratar con la ayuda del
sistema. Asimismo, a pesar de ser la memoria de trabajo, la base de hechos puede desempeñar el
papel de memoria auxiliar. La memoria de trabajo memoriza todos los resultados intermedios,
permitiendo conservar el rastro de los razonamientos llevados a cabo. Puede, por eso, emplearse
para explicar el origen de las informaciones deducidas por el sistema en el transcurso de una
sesión de trabajo o para llevar a cabo la descripción del comportamiento del propio sistema
experto. Al principio del período de trabajo, la base de hechos dispone únicamente de los datos
que le ha introducido el usuario del sistema, pero, a medida que va actuando el motor de
inferencias, contiene las cadenas de inducciones y deducciones que el sistema forma al aplicarlas
reglas para obtener las conclusiones buscadas.
Es la parte del sistema experto que contiene el conocimiento sobre el dominio. Hay que obtener el
conocimiento del experto y codificarlo en la base de conocimientos. Una forma clásica de
representar el conocimiento en un sistema experto son lar reglas. Una regla es una estructura
condicional que relaciona lógicamente la información contenida en la parte del antecedente con
otra información contenida en la parte del consecuente.
La base de conocimientos aloja la totalidad de las informaciones específicas relativas al campo del
saber deseado Está escrita en un lenguaje específico de representación de los conocimientos que
contiene y en el cual el experto puede definir su propio vocabulario técnico. A la inversa de lo que
sucede en los programas clásicos, en la base de conocimientos las informaciones entran tal como
llegan, ya que el orden no influye en los resultados obtenidos. Sucede así porque cada elemento
de conocimiento es comprensible por sí mismo tomado de forma aislada y, por lo tanto, no es
necesario referirse al contexto en el cual está inserto. La información se representa, por regla
general, mediante reglas de producción o redes semánticas. Las reglas de producción constituyen
el método más utilizado para construir bases de conocimientos en los sistemas expertos. Llamadas
también implicaciones lógicas, su estructura es la siguiente: para unas ciertas causas, unos efectos;
o, para determinadas condiciones, ciertas consecuencias. Junto a cada regla, se almacena también
su porcentaje en forma de probabilidad. Éste indica, mediante un tanto por ciento, el grado de
certeza de las consecuencias que se obtienen como resultado de la aplicación de la regla de
producción. En cuanto a las redes semánticas, se trata de un método de construcción de bases de
conocimientos en el cual los conocimientos se muestran mediante un grafo en el que los vértices
representan los conceptos u objetos y las aristas indican las relaciones entre ellos.
Contiene el conocimiento del dominio. Este conocimiento debe representarse a fin de que pueda
incluirse en el sistema.
Tipos
Las bases de conocimiento se han clasificado en dos grandes tipos:
El más importante aspecto de una base de conocimiento es la calidad de la información que esta
contiene. Las Mejores Bases de Conocimiento tienen artículos cuidadosamente redactados que se
mantiene al día, un excelente sistema de recuperación de información (Motor de Búsqueda), y un
delicado formato de contenido y estructura de clasificación. Una Base de Conocimiento puede
usar una ontología para especificar su estructura (tipos de entidades y relaciones) y su esquema de
clasificación. Una ontología, junto con un grupo de instancias de sus clases constituye una Base de
Conocimiento.
Ejemplos de Instalaciones.
La Escuela de Medicina de Tufts University ha creado una infraestructura de software llamada the
Tufts University Sciences Knowledgebase, TUSK. Sirve como base de conocimiento de información
curricular para las escuelas de ciencias de la salud en Tufts (médica, dental, veterinaria, salud
pública, nutrición, ciencias biomédicas). Esta infraestructura es compartida con tres escuelas de
medicina en los Estados Unidos, tres en África una en la India. La infraestructura permite a las
instituciones crear una base de conocimiento al servicio de las necesidades locales.
CLIPS
CLIPS es una herramienta que provee un entorno de desarrollo para la producción y ejecución de
sistemas expertos. Fue creado a partir de 1984, en el Lyndon B. Johnson Space Center de la NASA.
Los fondos cesaron a principios de los años 1990, y hubo un mandato de la NASA para comprar
software comercial.
CLIPS probablemente es el sistema experto más ampliamente usado debido a que es rápido,
eficiente y gratuito. Aunque ahora es de dominio público, aún es actualizado y mantenido por su
autor original, Gary Riley.
Historia y Motivación
Durante el año 1984, en el Lyndon B. Johnson Space Center, la sección de Inteligencia Artificial
había desarrollado alrededor de una docena de prototipos de sistemas expertos usando hardware
y software de aquella época. A pesar del demostrado potencial de los sistemas expertos, la
mayoría de aquellos prototipos no estaban siendo usados regularmente. Según la NASA esto se
debió a que el lenguaje de programación usado para el desarrollo de estas aplicaciones era LISP.
Se encontraron varias debilidades de LISP, entre las que se destacan tres: no estaba disponible
para una amplia variedad de equipos de cómputo, no era fácilmente integrable con otras
aplicaciones, y su costo era muy elevado.
Primeras versiones
El primer prototipo de CLIPS fue desarrollado durante la primavera (boreal) de 1985, y tomó poco
más de dos meses. Era compatible con todos los desarrollos hechos por la sección de Inteligencia
Artificial, y su sintaxis estaba basada en la sintaxis de ART (otra herramienta para el desarrollo de
sistemas expertos). Sin embargo, CLIPS fue desarrollado sin tener acceso o haber conocido
previamente el código fuente de ART.
Madurez y expansión
Otras funcionalidades agregadas transformaron CLIPS; ya no era una herramienta para
entrenamiento sobre construcción de sistemas expertos, sino que ahora servía también para el
desarrollo y ejecución de los mismos. Las versiones CLIPS v4.0 y v4.1 (1987) tenían significativas
mejoras en cuanto a desempeño, integración con otros lenguajes, y capacidad de ejecución. CLIPS
v4.2 (1988) fue una completa re-escritura del código fuente con el fin de hacerlo más modular.
Esta versión también incluyó un manual detallado de la arquitectura de CLIPS y una aplicación de
ayuda para la verificación y validación de programas basados en reglas. Nuevas funcionalidades
vinieron con la CLIPS v4.3 (1989).
Originalmente, CLIPS era un lenguaje de reglas basado en el Algoritmo Rete (Programación Lógica).
CLIPS v5.0 (1991) introdujo dos nuevos paradigmas de programación: Programación Imperativa y
Programación Orientada a Objetos (POO). El lenguaje POO dentro de CLIPS es llamado COOL
(CLIPS Object-Oriented Language, o Lenguaje Orientado a Objetos de CLIPS). CLIPS v5.1 (1991) ya
soportaba las recientemente desarrolladas o mejoradas interfaces X Window, MS-DOS y
Machintosh. CLIPS v6.0 (1993) tenía nuevas funcionalidades relacionadas con el reconocimiento
de patrones en objetos/reglas y soporte a Ingeniería de Software basada en reglas. CLIPS v6.1
(1998) soportaba compiladores C++, aunque ya no soportaba los viejos compiladores C no ANSI.
También se agregaron comandos para llevar control del tiempo de desarrollo y para funciones
definidas por el usuario. CLIPS v6.2 es soportada por diversos sistemas operativos, y tiene mejoras
en su interfaz de desarrollo para Windows 95/98/NT y MacOS.
Características principales
Representación del Conocimiento: CLIPS permite manejar una amplia variedad de conocimiento,
soportando tres paradigmas de programación: el declarativo, el imperativo, y el orientado a
objetos. La programación lógica basada en reglas permite que el conocimiento sea representado
como reglas heurísticas que especifican las acciones a ser ejecutadas dada una situación. La POO
permite modelar sistemas complejos como componentes modulares. La programación imperativa
permite ejecutar algoritmos de la misma manera que en C, Java, LISP y otros lenguajes.
Portabilidad: CLIPS fue escrito en C con el fin de hacerlo más portable y rápido, y ha sido instalado
en diversos sistemas operativos (Windows 95/98/NT, MacOS X, Unix) sin ser necesario modificar
su código fuente. CLIPS puede ser ejecutado en cualquier sistema con un compilador ANSI de C, o
un compilador de C++. El código fuente de CLIPS puede ser modificado en caso que el usuario lo
considere necesario, con el fin de agregar o quitar funcionalidades.
Integralidad: CLIPS puede ser embebido en código imperativo, invocado como una sub-rutina, e
integrado con lenguajes como C, Java, FORTRAN y otros. CLIPS incorpora un completo lenguaje
orientado a objetos (COOL) para la elaboración de sistemas expertos. Aunque está escrito en C, su
interfaz más próxima se parece a LISP. Pueden escribirse extensiones a CLIPS sobre C, y al
contrario, CLIPS puede ser llamado desde C. CLIPS puede ser extendido por el usuario mediante el
uso de protocolos definidos.
Documentación: En la página web oficial de CLIPS se encuentra una extensa documentación que
incluye un Manual de Referencia y una Guía del Usuario.
Ejemplo de CLIPS
Como otros lenguajes para sistemas expertos, CLIPS trabaja con reglas y hechos. Algunos hechos
pueden hacer que una regla sea aplicable. Una regla aplicable se activa. En principio las reglas y
hechos se crean definiéndolos, como se muestra a continuación:
(deffacts personas_empadronadas
(persona (nombre "Manolo") (edad 54))
(persona (nombre "Ignacio") (edad 18))
(persona (nombre "Marisa") (edad 34))
)
En el fragmento de código de arriba se han definido 3 hechos:
Existe un objeto de la clase persona con nombre "Manolo" y edad 54.
Existe un objeto de la clase persona con nombre "Ignacio" y edad 18.
Existe un objeto de la clase persona con nombre "Marisa" y edad 34.
(defrule censar
(persona (nombre ?n) (edad ?e))
(test (> ?e 17))
=>
(assert (elector (nombre ?n)))
)
En el fragmento de código de arriba se ha definido una regla:
Para todo objeto de la clase persona con nombre n y edad e, si e es mayor que 17, existe un objeto
de la clase elector con nombre n.
ACTIVIDADES PARA EL APRENDIZAJE
Sistema experto: Los sistemas expertos son llamados así porque emulan el razonamiento de un
experto en un dominio concreto y en ocasiones son usados por éstos. Con los sistemas expertos se
busca una mejor calidad y rapidez en las respuestas dando así lugar a una mejora de la
productividad del experto.
Reglas: Las reglas son cláusulas que describen una acción dinámica relativa al dominio de los
elementos. Su estructura está dada por un conjunto de condiciones denominado antecedentes y
una acción a tomar llamada consecuente, ejemplo si la puerta No. 1 está cerrada utilice la puerta
No. 3.
Procesador cognitivo: El modelo del procesador cognitivo de Newell y Simon (1972) considera la
mente como un sistema de procesamiento de la información. La Figura 2.1 lo resume
gráficamente. La analogía con la estructura de un ordenador es patente. Incluso, y basándose en
datos experimentales, el modelo incluye la hipótesis de que el procesador cognitivo selecciona
perceptos y reacciona ante ellos en ciclos reconocimiento y acción de unos 70 milisegundos. Las
transferencias entre la M.C.P (memoria a corto plazo y la M.L.P (memoria a largo plazo) tardarían
unos siete segundos. Obviamente, estos números no sin caprichosos. Están apoyados, como el
«número mágico 7±2», en diversos experimentos.
Limitaciones
• Sentido común: Para un Sistema Experto no hay nada obvio. Por ejemplo, un sistema
experto sobre medicina podría admitir que un hombre lleva 40 meses embarazado, a no ser
que se especifique que esto no es posible ya que un hombre no puede gestar hijos.
• Lenguaje natural: Con un experto humano podemos mantener una conversación informal
mientras que con un SE no podemos.
• Capacidad de aprendizaje: Cualquier persona aprende con relativa facilidad de sus errores y
de errores ajenos, que un SE haga esto es muy complicado.
• Perspectiva global: Un experto humano es capaz de distinguir cuales son las cuestiones
relevantes de un problema y separarlas de cuestiones secundarias.
• Capacidad sensorial: Un SE carece de sentidos.
• Flexibilidad: Un humano es sumamente flexible a la hora de aceptar datos para la resolución
de un problema.
• Conocimiento no estructurado: Un SE no es capaz de manejar conocimiento poco
estructurado.
Habilidad para explicar los resultados a la persona que no cuenta con ese conocimiento: Esto
significa que el experto debe poder responder en forma clara y certera las preguntas
concernientes a las razones de los resultados, el razonamiento derivado de los mismos y las
implicaciones subsecuentes. Generalmente las personas que no cuentan con el conocimiento
esperan recibir una respuesta más práctica y que se acerque a las condiciones que ellos puedan
entender.
Habilidad para aprender las experiencias: Los expertos deben de aprender tanto de sus propias
experiencias como de la experiencia de los demás. Están obligados a estar al día en cuanto a la
base de conocimientos así como a modificar el proceso de su razonamiento. Los expertos que no
mantienen al día generalmente se vuelven obsoletos.
Habilidad de reestructurar el conocimiento para que se adapte al ambiente: Esto se refiere a que
el experto pueda subdividir la base de conocimiento y usar la porción útil de la misma en la
resolución del problema, reduciendo así su tiempo de respuesta. También se refiere a visualizar el
problema de distintas perspectivas usando varias porciones del conocimiento al problema desde
distintos niveles.
Conciencia de sus limitaciones: Los expertos pueden evaluar su capacidad para resolver un
problema dado y determinar si el mismo se encuentra dentro de sus posibilidades de resolución.
Esto también significa que saben cuándo referirse a otros expertos.
Pero los sistemas expertos son aplicados en muchas más áreas con resultados satisfactorios.
Algunas de las principales son: telecomunicaciones, medicina, militar, derecho, aeronáutica,
geología, electrónica…
Esta clase abarca los sistemas que deducen incidentes y sugieren las acciones correctivas para un
dispositivo o un proceso que funciona incorrectamente. El diagnóstico médico era una de las
primeras áreas del conocimiento a las cuales la tecnología de los Sistemas Expertos (SE) fue
aplicada, pero el diagnóstico de sistemas dirigidos sobrepasó rápidamente el diagnóstico médico.
Probablemente, hay más aplicaciones de diagnóstico de Sistemas Expertos que de cualquier otro
tipo. El problema de diagnóstico se puede manifestar, en resumen, como: dado la evidencia que se
presenta, cuál es el problema / razón / causa subyacente?
2. Planeamiento y programación.
Los sistemas que caen en esta clase analizan un conjunto de una o más metas potencialmente
complejas y obran recíprocamente para determinar un conjunto de acciones para lograr esas
metas, y/o proveen el orden temporal detallado de esas acciones considerando el personal, el
material y otros apremios. Esta clase tiene gran potencial comercial.
Los ejemplos implican la programación de vuelos, el personal y las puertas de una línea aérea; la
programación del departamento de empleo de la fábrica; y las hojas de operación (planning) de
proceso de la fabricación.
La industria de los servicios financieros ha sido un usuario vigoroso de las técnicas de los Sistemas
Expertos. Los programas consultivos se han creado para asistir a banqueros en la determinación
de si hacer préstamos a los negocios y a los individuos. Las compañías de seguro han utilizado los
sistemas expertos para evaluar el riesgo presentado por el cliente y determinar un precio para la
aplicación típica del seguro; en 9 los mercados financieros está en la negociación de la moneda
extranjera.
Ésta es una aplicación relativamente nueva, pero también es un área potencialmente delicada. La
función primaria del sistema experto es entregar el conocimiento que es relevante al problema del
usuario, en el contexto del problema del usuario. Los dos sistemas expertos más extensamente
distribuidos en el mundo están en esta categoría. El primero es un consejero que aconseja al
usuario con el uso gramatical apropiado en un texto. El segundo es un consejero de impuesto, que
acompaña un programa de preparación de impuesto y aconseja al usuario en la estrategia y táctica
de impuesto, y la política de impuesto individual.
Los sistemas que caen en esta clase analizan datos en tiempo real de los dispositivos físicos con la
meta de advertir las anomalías, predecir las tendencias, y controlar la corrección del optimizador y
del incidente.
Los ejemplos de sistemas en tiempo real que vigilan activamente los procesos se pueden
encontrar en las industrias de la siderurgia y de la refinación del petróleo.
7. Diseño y fabricación.
Estos sistemas asisten al diseño de dispositivos y de procesos físicos, extendiéndose del diseño
conceptual del alto nivel de entidades abstractas a la configuración de los procesos de la
fabricación.
En los años 50 los lenguajes de programación especiales fueron inventados para facilitar la
manipulación del símbolo. El más destacado se llama LISP (LISt Processing). Debido a su elegancia
y simple flexibilidad, la mayoría de los programas de investigación de IA se escriben en LISP, pero
las aplicaciones comerciales se han alejado del LISP.
A principios de los años 70 otro lenguaje de programación de IA fue inventado en Francia. Se llama
PROLOG (PROgramming in LOGic). El LISP tiene sus raíces en un área de las matemáticas, PROLOG
en otra. PROLOG consiste en las declaraciones que son hechos (afirmaciones), reglas (de la
inferencia) y preguntas.
Los programas escritos en PROLOG tienen comportamiento de gobernar los sistemas bases similar
a los escritos en el LISP. PROLOG, sin embargo, no se convirtió inmediatamente en un lenguaje
opcional para los programadores de IA. A principios de los años 80 fue impulsado por el aviso de
Japón que utilizaría este lenguaje de programación para el proyecto de la Quinta Generación de
Sistemas Informáticos; Fifth Generation Computing Systems (FGCS).
En teoría, los sistemas expertos se deben desarrollar a partir de algún lenguaje de programación.
Desde la introducción de los sistemas de computación, los lenguajes de fáciles de usar, más
potentes y cada vez más capaces de manejar. En los inicios del desarrollo de SE se usaban los
lenguajes Pascal, FORTRAN Y COBOL. LISP fue uno de los primeros lenguajes especiales
desarrollados y empleados para aplicaciones de inteligencia artificial. PROLOG es otro. Sin
embargo, actualmente existen otros productos de SE (como los shells) que evitan el trabajo de
programar.
La construcción de un Sistema Experto no es una tarea sencilla, debido a que involucra mucha
participación de distintas personas, cada una de las cuales aportará algo para que el Sistemas
Expertos a desarrollar sea robusto y fácil de usar y mantener. Además se deben hacer varias
elecciones en cuanto al desarrollo del Sistema Experto una de ellas es elegir que herramienta
utilizar para su estructuración.
A continuación una lista de las herramientas que se pueden utilizar para desarrollar un Sistema
Experto:
ART-IM
CBR Express v.1.1.
Nex - Expert Object v.2.0.
Exsys Corvid
Xpertrule
G2
Visual Prolog
Jess
Winprolog
Clisps
Expert System Builder
El medio para la adquisición del conocimiento es una función opcional en muchos sistemas. En
algunas herramientas para los sistemas expertos esta puede aprender por inducción de reglas
mediante ejemplos, y también generar reglas automáticamente.
El encadenamiento hacia delante es el razonamiento desde los hechos hacia las conclusiones.
Mientras que el encadenamiento hacia atrás implica el razonamiento en reversa desde una
hipótesis, habrá de comprobarse una posible conclusión, a los hechos que la sustentan.