1 / 39

Lenguajes de Programación para la construcción de SE

Lenguajes de Programación para la construcción de SE. Maneras de Construir un Sistema Experto. Usando un lenguaje de programación En un Shell. Diseñando un lenguaje. Una alfabeto (conjunto de símbolos) Un léxico (vocabulario) Reglas gramaticales Las cuales contaran con una semántica

kevina
Download Presentation

Lenguajes de Programación para la construcción de SE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lenguajes de Programación para la construcción de SE

  2. Maneras de Construir un Sistema Experto • Usando un lenguaje de programación • En un Shell

  3. 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

  4. 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)

  5. 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

  6. Representación A Lenguaje Representación B Lenguaje Traductor

  7. 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 IntelligenceIlluminated, B Chopin]

  8. Todo esto lo podemos representar formalmente en: • Lógica proposicional • Redes semánticas • Arboles de búsqueda • Marcos conceptuales

  9. Programación Lógica • PROLOG • GOLOG • Programación Funcional • LISP • PYTON • RUBY • Programación Procedural • C,JAVA

  10. 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.

  11. Programación Lógica • Permite formalizar hechos del mundo real y sus reglas

  12. 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.

  13. Programación Funcional • Paradigma de la computación basado en la utilización de funciones • Tiene sus raíces en el calculo lambda Función Parámetros Valor de retorno Proceso entrada salida

  14. Prolog • Viene del Francés ProgammationLogique • 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

  15. GOLOG • Desarrollado por HectorLevesque • 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

  16. LISP • Su nombre significa ListProcessor • Desarrollado por John McCarthy en el MIT • Primer Lenguaje de la IA • Lenguajes Populares • Common LISP y Scheme • Desarrollo en Tiempo real

  17. Prolog • ¿Cuenta con un alfabeto? • ¿Reglas gramaticales? • ¿Menciona una regla gramatical de Prolog? • ¿Es sencillo de aprender? • ¿Es fácil de aprender? • ¿El código de Prolog se lee de manera natural?

  18. 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.

  19. Shell Motor de Inferencia Sistema de Explicación Editor de Base de Conocimiento Interfaz de Usuario Usuario

  20. Shells vs Lenguajes de Programación

  21. 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

  22. CaracteristicasEscenciales 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

  23. 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]

  24. CLIPS> (assert (hoy es sabado)) • <Fact-0> • Los hechos pueden enlistarse • CLISP> (facts) • F-0 (hoy es sabado)

  25. Los hechos pueden borrarse (retractarse) • CLISP>(retract 0) • CLISP> (facts) • Para definir reglas (defrulenombre_de_regla “comentarios” Condicion => accion )

  26. JESS • Java ExpertSystem Shell • Java • Sistemas expertos basados en reglas. • Ernest Friedman Hill • API • Estructura similar a la LISP • Puede ser implementado en Eclipse

  27. Arquitectura de JESS Memoria Activa Motor de Inferencia Motor de ejecución Comparador de Patrones Base de Reglas Agenda

  28. 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 (ResourceDescriptionFrames), RDFS, OSL y XML Schema

  29. 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.

  30. 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.

  31. 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.

  32. 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

  33. WolframAlpha • Motor de Búsqueda de Conocimiento • Desarrollado por la empresa WolframResearch • Lanzado en Mayo de 2009 • El usuario realiza consultas vía texto. El buscado busca las respuesta en su base de conocimiento

  34. WolframAlpha • 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.

  35. Ingresamos una búsqueda

  36. Actividad • Realizar un resumen, de los temas expuesto hoy. Por ejemplo Lenguajes de Programación y Shells

More Related