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

1 Lenguajes de Programación para la construcción de SE ...
Author: Abelardo Celestino
0 downloads 2 Views

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

2 Maneras de Construir un Sistema ExpertoUsando 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 aprenderLeer 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 queTodos 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]

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

9 Programación FuncionalProgramació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 ordenEjemplo 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ógicaDemostrar 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 FuncionalParadigma de la computación basado en la utilización de funciones Tiene sus raíces en el calculo lambda Función Parámetros Proceso Valor de retorno entrada salida

14 Prolog Viene del Francés Progammation LogiqueDesarrollado 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 Hector LevesqueAcciones 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 List ProcessorDesarrollado 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 expertoHoy 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ónEditor de Base de Conocimiento Interfaz de Usuario Usuario

20 Shells vs Lenguajes de ProgramaciónCaracterísticas Shell Lenguaje de Programación Facilidad 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

21 CLIPS C Language Integrated Production SystemEs 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 Caracteristicas Escenciales de CLIPSRepresentació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 Verificación/Validación: Con el propósito de la validación de los SE.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)) 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 (defrule nombre_de_regla “comentarios” Condicion => accion )

26 JESS Java Expert System Shell JavaSistemas expertos basados en reglas. Ernest Friedman Hill API Estructura similar a la LISP Puede ser implementado en Eclipse

27 Comparador de PatronesArquitectura 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 conocimientoEs 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

29

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

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

32 Tiene cerca de 400 relaciones diferentesCYC 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.

33 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

34 Wolfram Alpha Motor de Búsqueda de ConocimientoDesarrollado 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

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

36 Ingresamos una búsqueda

37

38

39 Actividad Realizar un resumen, de los temas expuesto hoy. Por ejemploLenguajes de Programación y Shells