lenguajes de programación para la construcción de se
TRANSCRIPT
![Page 1: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/1.jpg)
Lenguajes de Programación para la construcción de SE
![Page 2: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/2.jpg)
Maneras de Construir un Sistema Experto
• Usando un lenguaje de programación• En un Shell
![Page 3: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/3.jpg)
Diseñando un lenguaje
• Una alfabeto (conjunto de símbolos)• Un léxico (vocabulario)• Reglas gramaticales– Las cuales contaran con una semántica– Una sintaxis
![Page 4: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/4.jpg)
Diseñando un lenguaje
• Este lenguaje debe de ser sencillo de aprender• Leer y entender.• La escritura de las reglas y hechos deben ser
sencillas de trasladar desde el lenguaje natural al nuevo lenguaje
• Sus elementos léxicos y reglas sintácticas deben de hacer que el nuevo lenguaje resulte natural (similar al lenguaje hablado)
![Page 5: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/5.jpg)
• El lenguaje debe de servir a las necesidades de la materia de interés del experto.
• El lenguaje necesita un que lenguaje que imite la manera en que un experto– Habla– Piensa – Opera
![Page 6: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/6.jpg)
Representación ALenguaje
Representación BLenguaje
Traductor
![Page 7: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/7.jpg)
Recordemos nuevamente que
• Todos los días usamos representaciones tales como:
• Letras y números• Ecuaciones matemáticas• Señales viales• Fotografías de personas, lugares y cosas• Caricaturas y dibujos animados• Alarmas audibles y señales auditivas• Etc. [Artificial Intelligence Illuminated, B Chopin]
![Page 8: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/8.jpg)
Todo esto lo podemos representar formalmente en:
• Lógica proposicional• Redes semánticas• Arboles de búsqueda• Marcos conceptuales
![Page 9: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/9.jpg)
• Programación Lógica– PROLOG– GOLOG
• Programación Funcional– LISP– PYTON– RUBY
• Programación Procedural– C,JAVA
![Page 10: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/10.jpg)
Programación Lógica
• Básicamente hace uso de la lógica de primer orden
• Ejemplo de ello es el modus ponems• Si A entonces B• A->B• Programación Declarativa• Gira en torno a un objeto y la relación entre
este otro.
![Page 11: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/11.jpg)
Programación Lógica
• Permite formalizar hechos del mundo real y sus reglas
![Page 12: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/12.jpg)
Aplicaciones de la Programación Lógica
• Demostrar hipótesis lógicas.• Bases de datos relacionales• Entender el lenguaje natural• Diseño automático• Análisis de estructuras bioquímicas• Análisis de estructuras macroscópicas como el
medio ambiente.
![Page 13: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/13.jpg)
Programación Funcional
• Paradigma de la computación basado en la utilización de funciones
• Tiene sus raíces en el calculo lambda
Procesoentrada salida
Parámetros Valor de retorno
Función
![Page 14: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/14.jpg)
Prolog
• Viene del Francés Progammation Logique• Desarrollado en la Universidad Aix-Marseille I• Se basa en la definición de reglas y axiomas• Desarrolla una b• SWI-Prolog,CiaoProlog, GNUProlog,PSharp
![Page 15: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/15.jpg)
GOLOG
• Desarrollado por Hector Levesque• Acciones que desempeña GOLOG
(if,while,proc)• Esta dividido en acciones primitivas• Flujos• Estados en el que se encuentra• Mantiene una programación explicita del
mundo dinámico que esta siendo modelado
![Page 16: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/16.jpg)
LISP
• Su nombre significa List Processor• Desarrollado por John McCarthy en el MIT• Primer Lenguaje de la IA• Lenguajes Populares– Common LISP y Scheme
• Desarrollo en Tiempo real
![Page 17: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/17.jpg)
Prolog
1. ¿Cuenta con un alfabeto?2. ¿Reglas gramaticales?3. ¿Menciona una regla gramatical de Prolog?4. ¿Es sencillo de aprender?5. ¿Es fácil de aprender?6. ¿El código de Prolog se lee de manera
natural?
![Page 18: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/18.jpg)
Shell de un sistema experto
• Hoy en día son la forma mas común para el desarrollo de Sistemas Expertos
• Un shell de un sistema experto básicamente es un Sistema experto sin una base de conocimiento.
• Un shell provee el sistema experto con el motor de inferencia, la interfaz de usuario y el sistema de explicación y algunas facilidades para la adquisición del conocimiento.
![Page 19: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/19.jpg)
Shell
Motor de Inferencia
Sistema de Explicación
Editor de Base de Conocimiento
Interfaz de Usuario
Usuario
![Page 20: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/20.jpg)
Shells vs Lenguajes de ProgramaciónCaracterísticas Shell Lenguaje de
ProgramaciónFacilidad y velocidad de uso
Alta Baja
Estructura de la Base de Conocimiento y razonamiento
Restringida por la herramienta.
Se puede desarrollar según las necesidades.
Mantenimiento de la base de Conocimiento
Sencilla De acuerdo a las características del software.
Interfaz No siempre amigable
Se tiene que desarrollar
Eficiencia/Desempeño de la explicacion
Restringida por la herramienta
Se puede desarrollar según las necesidades
![Page 21: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/21.jpg)
CLIPS
• C Language Integrated Production System• Es un Shell gratuito implementado en C• Provee un lenguaje para expresar las reglas• Usa principalmente razonamiento hacia
adelante para derivar conclusiones de un conjunto de reglas.
• Creado en 1985
![Page 22: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/22.jpg)
Caracteristicas Escenciales de CLIPS
• Representación del conocimiento: Tiene una herramienta que soporta tres paradigmas de la programación: orientado a objetos, procedural y lógica.
• Portable: MACOS-X Windows,Windows• Integración/extensibilidad: Se puede integrar
con C,Java,Fortran
![Page 23: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/23.jpg)
• Desarrollo Interactivo: Debugger, editor integrado, Interfaces graficas.
• Verificación/Validación: Con el propósito de la validación de los SE.– Soporte de diseño modular– Particionado de la Base de conocimientos– Verificación de argumentos de valores y funciones– Análisis semántico de los patrones de la reglas
para prevenir inconsistencias.[1]
![Page 24: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/24.jpg)
• CLIPS> (assert (hoy es sabado))• <Fact-0>• Los hechos pueden enlistarse• CLISP> (facts)• F-0 (hoy es sabado)
![Page 25: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/25.jpg)
• Los hechos pueden borrarse (retractarse)• CLISP>(retract 0)• CLISP> (facts)
• Para definir reglas(defrule nombre_de_regla “comentarios”Condicion=>accion)
![Page 26: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/26.jpg)
JESS
• Java Expert System Shell• Java• Sistemas expertos basados en reglas.• Ernest Friedman Hill• API• Estructura similar a la LISP• Puede ser implementado en Eclipse
![Page 27: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/27.jpg)
Arquitectura de JESS
Memoria Activa
Base de Reglas
Motor de Inferencia
Comparador de Patrones
Agenda
Motor de ejecución
![Page 28: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/28.jpg)
Protégé
• Sirve para modelar aplicaciones basadas en conocimiento
• Es una plataforma que soporta básicamente dos manera de modelado de ontologías.– Protege Frames– Protege-OWL
• Los formatos que soporta son• RDF (Resource Description Frames), RDFS, OSL
y XML Schema
![Page 29: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/29.jpg)
![Page 30: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/30.jpg)
• Basado en Java• SWRLJessTab• Puede usar el motor de inferencia Jess• RacerProTG es un plugin que ofrece las
funcionalidades de razonamiento a Protégé• Para visualizacion, OWLVIz y Jambalaya,etc.
![Page 31: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/31.jpg)
CYC
• Es un proyecto de Inteligencia Artificial que busca construir una Base de datos de conocimiento general
• 1984-Cycorp• CYC es un ejemplo de una sistema de
representación basado en marcos• CYC hoy tiene mas de 100,000 diferentes
conceptos de todos los diferentes campos del conocimiento humano.
![Page 32: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/32.jpg)
• Tiene cerca de 400 relaciones diferentes• CYC pude conocer hechos acerca de Dracula,
sabe que no existe pero incluso razonar acerca de el.
• CYC entiende analogías, descubre nuevas analogías examinándolas el mismo por las similaridades entre estas.
![Page 33: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/33.jpg)
• Sus creadores dicen que descubrió la analogía entre el concepto familia y el concepto nación.
• 100,000,000 de reglas• El agua causa humedad
![Page 34: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/34.jpg)
Wolfram Alpha
• Motor de Búsqueda de Conocimiento• Desarrollado por la empresa Wolfram
Research• Lanzado en Mayo de 2009• El usuario realiza consultas vía texto. El
buscado busca las respuesta en su base de conocimiento
![Page 35: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/35.jpg)
Wolfram Alpha
• Su meta es hacer todo el conocimiento sistemático, inmediatamente computable y accesible para todos.
• Dentro de sus propósitos tiene recolectar y refinar toda la información objetiva. Es decir sistematizar el conocimiento.
![Page 36: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/36.jpg)
Ingresamos una búsqueda
![Page 37: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/37.jpg)
![Page 38: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/38.jpg)
![Page 39: Lenguajes de Programación para la construcción de SE](https://reader035.vdocumento.com/reader035/viewer/2022062418/5528bde3497959977d8f9c3c/html5/thumbnails/39.jpg)
Actividad
• Realizar un resumen, de los temas expuesto hoy.
Por ejemploLenguajes de Programación y Shells