LENGUAJES DE PROGRAMACION Y HERRAMIENTAS DE I.A.

Una vez que se han estudiado los métodos de representación del conocimiento y las técnicas de control se plantea la eterna pregunta: ¿Cómo se consigue crear un sistema experto? La respuesta, en su origen, es clásica: puesto que un sistema experto es un programa de ordenador, para realizarlo habrá que utilizar un lenguaje de programación. Si se responde un poco más en profundidad la respuesta hay que realizar algunos matices. Obviamente hace falta un lenguaje de programación, pero habrá unos lenguajes que se adapten mejor a nuestras necesidades que otros; incluso se pueden utilizar herramientas más evolucionadas que los lenguajes clásicos, aunque estén basados en ellos. Basándose en los diversos niveles de software se han creado y diferenciado tres herramientas distintas que posteriormente se analizarán: los lenguajes de propósito general, los sistemas esqueletos y los sistemas conchas. Cada uno de ellos va aumentando en sencillez de utilización para el usuario, pero, a su vez, va perdiendo generalidad en sus aplicaciones.

Niveles de Software

Este tipo de conocimiento es el siguiente escalón en la resolución de cualquier situación y es realmente lo más imprescindible. Por otra parte, independientemente del software que se utilice, todos los sistemas expertos dependen en el fondo del hardware del ordenador. La parte física del mismo es, al fin y al cabo, la encargada de manejar en último término toda la información en forma de códigos binarios, una larga serie de ceros y unos que el ordenador convertirá en respuestas físicas discretas. Este es el nivel inferior del software denominado lenguaje máquina. El nivel inmediatamente superior es el programa que dirige y direcciona las operaciones fundamentales del ordenador el sistema operativo; se encarga de controlar las sentencias del lenguaje máquina Suele estar escrito en lenguaje máquina o, reciente mente, impreso en hardware dentro de un chip introduciéndonos ya en lo que es propiamente la programa. 

Los más conocidos son Basic, Cobol, Pascal, utilizan fundamentalmente dos lenguajes LIPS y PROLOC facilita el trabajo con expresiones lógicas. Ambos lenguajes son bajan mejor con cálculos numéricos. Justo por encima de los lenguajes de alto nivel se encuentran los entornos de programación. Dichos entornos suelen estar asociados con un determinado lenguaje y contienen un conjunto de instrucciones escritas en dicho lenguaje, muy útiles para ciertas tareas de programación. Para los conocedores de lenguajes estructurados se pueden comparar con las subrutinas. Estas herramientas se han creado para ayudar al rápido desarrollo de los sistemas expertos. Los aspectos más importantes que presentan son las estrategias de control, representación del conocimiento e inferencia comunes a la mayoría de los sistemas expertos. La razón de una herramienta de este tipo es similar a las de una carpintería: en vez de crear una nueva para cada tipo de mueble, se utilizan aquellas que nos han sido útiles en anteriores ocasiones. Por supuesto, se debe usar la herramienta más apropiada para cada situación; cada una de ellas está especialmente diseñada para un trabajo en particular. Cuando se combina una herramienta con el conocimiento sobre un tema específico, el resultado es un sistema experto basado en el conocimiento. Dicho sistema, si está bien desarrollado, presenta la misma capacitación que el experto en dicho tema.

De los lenguajes a los sistemas concha

En genera1 los lenguajes son más flexibles, pero más difíciles de usar en la creación y puesta a punto de un prototipo rápidamente. Sólo cuando se necesita una aplicación muy particular o cuando el programador está muy bien preparado se construyen sistemas basados en LISP o PROLOG. Los sistemas conchas son menos flexibles, ya que llevan incorporado un particular sistema de control. Como consecuencia, si se tiene una herramienta apropiada a nuestro problema, el desarrollo es muy rápido, e incluso personas con muy poca experiencia pueden crear pequeños pero muy útiles sistemas basados en el conocimiento. 

LISP es un lenguaje puro, mientras que PROLOG o INTERLISP están más cerca de los entornos. OPS 5, desarrollado por la Carnegie Mellon University, sería propiamente un entorno; contiene un determinado sistema de control de las reglas, pero es bastante flexible. KEE es una herramienta o sistema concha, pero híbrida, es decir: puede optar por diversos controles y formas de representar el conocimiento; sin embargo, es muy difícil de utilizar. Por último, EMYCIN, Sl, etc., son muy fáciles de usar, pero se ajustan a un tipo específico de sistemas expertos. Los lenguajes de programación en Inteligencia Artificial suelen ser LISP o PROLOG, pero es cierto que un sistema experto se puede escribir en Fortran o Pascal, por ejemplo.  

¿Cuáles son las ventajas y los inconvenientes de su utilización? Los lenguajes de Inteligencia Artificial tienen unas características que les posibilitan el manejo de símbolos, mientras que los lenguajes convencionales trabajan mejor con números. Es mucho más conveniente, por tanto, tener herramientas o entornos programados internamente en lenguajes LISP o PROLOG que en lenguajes clásicos.