Sistemas Expertos
Introducción
Arquitectura - Motor de Inferencias
Ingeniería del Conocimiento Ingeniería Electrónica
60´s
Inicio de los Sistemas Expertos
Se buscaban soluciones generales
70´s Los sistemas son más eficientes en dominios acotados
La calidad y cantidad de conocimiento son esenciales para una buena performance
Es importante independizar el conocimiento del dominio, del mecanismo de inferencia.
Sistemas basados en conocimiento (SBC-KBS)
Definiciones.
Sistemas que representan el conocimiento sobre el
dominio en forma explícita y separada del resto del sistema.
Waterman.
Sistemas que resuelven problemas aplicando una
representación simbólica de la experiencia humana. Jackson.
Sistemas basados en conocimiento (SBC-KBS)
Definiciones.
Sistemas de software capaz de soportar la
representación explícita del conocimiento de un dominio específico y de explotarlo a través de
mecanismos apropiados de razonamiento para proporcionar un comportamiento de alto nivel en la resolución de problemas.
Sistemas Expertos: Definición.
Es un sistema de cómputo capaz de simular la conducta inteligente de un experto humano en un dominio específico y especializado, con el objeto de resolver problemas.
Hardware + software
Fuente de pericia humana en el dominio
Sistema de computación
Simulación
Conducta inteligente
Experto
Experiencia humana vs. SE.
PERICIA ARTIFICIAL PERICIA HUMANA
Permanente Perecedera
Siempre accesible No siempre accesible Fácil de documentar No documentable
Estable, confiable Variable, flexible
Costo manejable Costosa
Fragilidad de las máquinas Fragilidad humana
Sin inspiración Creativa
Conocimiento técnico Sentido común
Estática - Dinámica Dinámica (aprendizaje)
Dominios estrechos Dominios más extensos
SE/SBC: Tareas
Tareas abordadas
Síntesis: Clasificación, diagnóstico
Análisis: Planificación, diseño o modelado
Las áreas de aplicación son muy variadas !!!
Los SBC abordan problemas complejos en dominios específicos
en los que el peso de las heurísticas para acotar el espacio de búsqueda es importante.
Primeros Sistemas Expertos
MYCIN
Stanford (Buchanan - Shortliffe 1976): Diagnóstico y tratamiento de enfermedades infecciosas (aprox. 500 reglas). Introduce factores de certeza.
PROSPECTOR
Stanford-US Geological Survey (Duda-Gashning-Hart, 1979): Evaluación de yacimientos minerales y petrolíferos. (aprox 1600 reglas). Probabilidades condicionales y Teorema de Bayes.
Conocimiento inexacto
INTERNIST Pittsburg (Pople-Myers, 1977): Diagnóstico en Medicina interna. CADUCEUS: Analiza relaciones causales.
CASNET
Rutgens (Kulikowsky-Weiss-Safir, 1977): Oftalmología. Aplica un modelo causal para el diagnóstico de glaucoma.
Razonamiento experto Modelos causales
R1
MOLGEN
Carnegie Mellon (Mc Dermott): Configuración de ordenadores VAX (aprox 500 reglas). Descompone
el diseño en distintos niveles de abstracción. Reducción espacio
de búsqueda
Stanford (Stefik): Diseño de experimentos genéticos. Utiliza abstracción.
Habilidades que se esperan de un SE
Buena perfomance, comparable al menos a la de los especialistas. Manipular con fluidez descripciones simbólicas.
Interfaz amigable, adecuada a las necesidades de la aplicación.
Habilidad para manipular conocimiento incompleto e impreciso.
Capacidad de explicar sus decisiones a los usuarios.
Periodo industrial de la IA
Década de los 80
Importante apoyo económico a los esfuerzos de I+D. Gran cantidad de SE en distintos dominios.
CRISIS
Problemas con la metodología de desarrollo Limitaciones propias del tipo de sistema.
Comparable a la Crisis de los SI pero posterior
Crisis SBC Desarrollo de la Ingeniería del Conocimiento
Crisis SI Desarrollo de la Ingeniería del Software
Ingeniería del Conocimiento (IC)
La Ingeniería del Software consiste en la aplicación de una
aproximación sistemática, disciplinada y cuantificable al desarrollo, funcionamiento y mantenimiento del software. (IEEE, 1999)
SBC: Ventajas
El conocimiento no se pierde.
Reducción del espacio de búsqueda con heurísticas para que
el problema sea tratable en un tiempo razonable.
Manejo de conocimiento incierto e incompleto. Posibilidad de justificar el razonamiento seguido.
Hacer el conocimiento disponible en ambientes hostiles o con
carencia de especialistas.
Aumento de fiabilidad, evitando que prevalezcan las últimas
experiencias.
SBC: Inconvenientes
La adquisición del conocimiento es difícil y cara.
La reutilización del conocimiento en contextos diferentes no es simple.
Falta de creatividad y sentido común.
Obstáculos para el aprendizaje y la adaptación.
Quedan inmersos en el campo de los Sistemas Inteligentes.
Se trabaja sobre metodología de desarrollo Se los combina con otras tecnologías
Estructura básica de un SE/SBC.
Base de Conocimientos Motor de Inferencias I n t e r f a c e U s u a r i o Ingeniero del conocimiento Experto del dominio K A TEstructura básica de un SE/SBC
Base de Conocimientos
Su estructura de datos queda definida en términos del esquema de representación elegido para incorporar el conocimiento del dominio de trabajo.
Motor de Inferencias
Es la estructura de control de un SE, contiene el programa que gestiona la BC y otros mecanismos necesarios para administrar un sistema de naturaleza interactiva.
REPRESENTACION DEL
CONOCIMIENTO
PREMISA FUNDAMENTAL DE IA:
Para que un sistema informático
demuestre un comportamiento inteligente
en la solución de problemas, debe poseer
gran cantidad de conocimientos
y
un potente mecanismo de razonamiento.
IMPORTANCIA DE UNA ADECUADA REPRESENTACION DEL CONOCIMIENTO
•
CONOCIMIENTO DEL MUNDO (en IA)
Es la habilidad para construir un modelo de
los objetos, sus vinculaciones y de las
acciones que pueden realizar.
•
REPRESENTACION DEL CONOCIMIENTO
Es la expresión mediante algún lenguaje, de un
modelo que exprese el conocimiento sobre el
mundo.
Conocimiento – Definición
El conocimiento es una mezcla de experiencia,
información y “saber hacer” que actúa como marco para la incorporación de nuevas experiencias y guia la acción.
Se utiliza para alcanzar una meta
Genera nuevo conocimiento
Resulta en gran medida dependiente de la tarea y del dominio de aplicación.
Niveles de representación:
La representación elegida influye directamente en la eficacia y eficiencia de la solución lograda
Nivel del conocimiento
Nivel simbólico
Hechos, comportamiento y objetivos de los agentes.
Símbolos manipulables por un sistema Debe existir correspondencia Adecuación representacional Adecuación inferencial
Representación:Modelado de un sistema
Adquisición del conocimiento
Conceptos y
relaciones Métodos deinferencia
Modelo Conceptual Modelo Formal No computable Semicomputable
Representa simbólicamente y organiza el conocimiento. Determina el mecanismo de inferencia adecuado.Representación: Modelado de un sistema
Modelo Computable Operacional Bases de Conocimiento Mecanismos de inferencia Mecanismos de controlLas tareas de adquisición y modelado son difíciles y costosas.
Existen esquemas de representación útiles en dominios variados.
ELEMENTOS BASICOS QUE INTERVIENEN EN EL
DISEÑO DE UN SISTEMA BASADO EN EL CONOCIMIENTO (KBS)
Lenguaje formal para expresar conocimiento Forma de efectuar razonamientos
COMPONENTE MEDULAR DE UN KBS (Agente) BASE DE CONOCIMIENTOS (KB)
Es un conjunto de representaciones de hechos acerca del mundo
Conjunto de sentencias del lenguaje para la representación del conocimiento
AÑADIR YMODIFICAR SENTENCIAS
BC
PREGUNTAS RESPUESTAS
MECANISMO DE INFERENCIAS
PROPIEDADES DE UN BUEN
FORMALISMO DE REPRESENTACION
:
• ADECUACION REPRESENTACIONAL
• ADECUACION INFERENCIAL
• EFICIENCIA INFERENCIAL
• EFICIENCIA EN LA
ADQUISICION-MODIFICACION
DISTINTOS PARADIGMAS:
•
DECLARATIVO
Descripción del estado del mundo
•
PROCEDIMENTAL
Expresión de las transformaciones de estados
•
ORIENTADO A OBJETOS
DISTINTOS FORMALISMOS
FORMALISMOS LOGICOS
SISTEMAS DE PRODUCCION
FORMALISMOS ESTRUCTURADOS:
• REDES SEMANTICAS • FRAMES • OBJETOS • ONTOLOGÍASFORMALISMOS LOGICOS
Constituyen sistemas formales en los cuales:
♦ SINTAXIS Y SEMANTICA ESTA BIEN DEFINIDA ♦ HAY UNA TEORIA DE LA DEMOSTRACION
•Completa y Consistente
LA LOGICA DE 1er ORDEN
Es la base de la mayoría de los esquemas de representación
FORMALISMOS LOGICOS
•
Conocimiento es representado mediante un
conjunto de fórmulas bien formadas (fbfs)
en algún sistema lógico (proposicional
-predicados - multivaluada...)
•
Los mecanismos de inferencia son los
métodos deductivos del sistema lógico
(Resolución en predicados)
DISTINTOS SISTEMAS LOGICOS:
♦
LOGICA PROPOSICIONAL
♦
LOGICA DE PREDICADOS
♦
LOGICAS NO-CLASICAS
– MULTIVALUADAS (Fuzzy Logic) – MODALES
OBJETIVO: ESTABLECER LA VALIDEZ DE
DISTINTOS RAZONAMIENTOS
-OBTENER CONCLUSIONES DE UN CONJUNTO DE FORMULAS
Sintaxis
Alfabeto PROPOSICIONAL
ΣPROP que consiste de:
i) variables proposicionales p0, p1,p2,... ii) conectivos ¬, ∧, ∨, →,↔
Introducción Informal
• Proposición: Una oración afirmativa de la
cual podemos decir que es
verdadera
o
falsa
(pero no ambas!!)
• Ejemplos de Proposiciones:
– Ayer llovió en Rosario.
– El sol gira alrededor de la tierra.
– 2 . 3 = 3 + 3
– 3 es primo.
más proposiciones...
– Si
ayer llovió en Rosario,
entonces
el intendente
se mojó.
– El sol gira alrededor de la tierra
o
la tierra gira
alrededor del sol.
– 2 . 3 = 6
y
6 es impar
Traducción al lenguaje Lógico
• Las oraciones compuestas se traducen usando los
conectivos
– Ejemplos:
• El auto no arranca y las luces encienden
(p
0∧ p
1).
• Si las luces encienden, entonces la batería
está ok
(p
1→ p
2) .
• La corrección de este razonamiento depende de la relación entre los sujetos de las proposiciones.
• Lógica proposicional NO es suficientemente expresiva para captar esta relación
∀
x (Perro(x)→
Mamífero (x) Perro (Rex)Mamífero (Rex)
∀
x. P(x) P(Rex)Todo perro es un mamífero y Rex es un perro,
luego Rex es un mamífero..
Por qué lógica de predicados ?
• Lógica proposicional : bajo poder expresivo• Muchas expresiones usuales no son representables
• « Rex es un perro »
En proposicional:
p (una prop. atómica) En predicados:
Sujeto: Rex
Propiedad: Ser Perro Perro(Rex)
Lenguaje de lógica de predicados
•
símbolos para denotar
objetos
-
sb. de constante (
ej. Rex, 2, π)
-
sb. de variable
(ej. x, y, z)
-
sb. de función
(ej. +, *, Padre) etc que
permiten crear nuevos nombres de objetos
• símbolos de propiedades y de relaciones
(Es-perro)
• conectivos
Ejemplos de traducción
• Si algunos perros son mamíferos, luego todos
son mamíferos
(∃ x) (P(x) ∧ M(x)) → ∀x (P(x) → m(x))
• Todo número es par o impar
(∀x) (N(x) → P(x) ∨ I(x))
• Ningún número es a la vez par e impar
PROLOG:
Una implementación de
programación lógica
LOGICA DE PREDICADOS
+ DEDUCCIÓN AUTOMÁTICA
(RESOLUCION
)
• Dada la BC y una fórmula α podemos probar que
» BC - α
Podemos contestar
perro (Rex) ?
LOGICA DE PREDICADOS COMO
FORMALISMO DE REPRESENTACION
VENTAJAS:
Es un formalismo bien establecido con una sintaxis y semántica bien definida y que maneja fácilmente
aspectos cuantificación.
Automatización de la deducción
LIMITACIONES:
Existen límites en el poder expresivo: • posibilidades, incertidumbre,
Problemas en la implementación de otros tipos de razonamientos (aproximados, no-monótonos).
Representación del Conocimiento
Otros formalismos
DISTINTOS FORMALISMOS
FORMALISMOS LOGICOS
SISTEMAS DE PRODUCCION
FORMALISMOS
ESTRUCTURADOS:
• REDES SEMANTICAS • FRAMES • OBJETOSOTROS FORMALISMOS
Sistemas de producción
Utilizan elementos de la lógica
Salen del marco estrictamente formal
más flexibles más eficientes
Pierden propiedades fundamentales como la
consistencia y completitud
.
SE basados en reglas de producción
Sistemas de producción
Newell y Simon (1972): Al resolver problemas, las personas utilizan su memoria a largo plazo (permanente) que aplican a situaciones actuales contenidas en su
memoria a corto plazo (transitoria). Esto puede generar
modificaciones en la última. BC (Reglas) Memoria de trabajo (Hechos) Motor de Inferencias Mundo Exterior
Sistemas de producción
Los procesos del dominio se representan como accionesindependientes que son integradas por el mecanismo de inferencias para resolver una tarea más general.
Motor de Inferencias BASE DE CONOCIMIENTO Base de Hechos Base de Reglas ARQUITECTURA
SE basados en reglas de producción
Reglas de
producción IF < CONDICION > THEN < ACCION>
Son “gránulos” de conocimiento.
Reúnen información relativa a las condiciones de disparo y a los efectos resultantes del disparo.
Son estructuras bidireccionales.
SI ?X ES MAMIFERO Y ?X COME CARNE ENTONCES ?X ES CARNIVORO.
SE basados en reglas de producción
Ventajas:Naturaleza modular: El conocimiento es fácil de
encapsular y expandir.
Explicaciones sencillas: El registro de reglas disparadas permite presentar la cadena de razonamiento asociada.
Semejanza con el proceso cognitivo humano: modelo natural del razonamiento humano.
Dificultades:
Completitud y consistencia como responsabilidad del desarrollador.
Se necesitan otras estructuras para lograr una visión global del conocimiento del dominio.
Se las combina con otros formalismos
Sistemas de producción
Se utilizan
Reglas de Producción
para
representar el conocimiento
IF <premisa> THEN <conclusión y/o acción>
Son los elementos de deducción básicos
El proceso de inferencia se basa
fundamentalmente en la Regla de Inferencia
de la lógica denominada MP
Reglas de producción
Es el modelo formal para representar un elemento
mínimo de conocimiento
IF <premisa> THEN <conclusión y/o acción>
Conclusión
Puede especificar Acción Estrategia
La premisa puede tener conectivos lógicos
<premisa> = <cláusula1 AND/OR...AND/OR cláusulak>
Reglas de producción- Ejemplos
Si un animal come carne entonces es
carnívoro.
Si un animal tiene dientes agudos y garras
entonces es carnívoro.
Si un animal es carnívoro y es de color
marrón-claro y tiene el pelaje franjas negras,
entonces es un tigre.
Reglas de producción- Ejemplos
Sintaxis Reglas en KAPPA-PC
MakeRule( Rtigre, [],
animal:grupo #= carnívoro And
animal:color #= leonado And
animal:pelaje #= franjas_negras,
animal:especie = tigre );
Sistemas de producción
Cada regla es
independiente
del resto de las
reglas en la BC.
Las reglas no tienen porque estar ordenadas
en la BC.
Las reglas se pueden agrupar por nociones
semánticas en “módulos” o “grupos”.
El metaconocimiento puede ser expresado
Sistemas de producción.
Un ejemplo de regla
Un especialista que participa en el desarrollo de un sistema basado en conocimiento relativo al
diagnóstico de una falla en un auto, podrá expresar:
“ si el motor no arranca y las luces no encienden,
A partir de esta expresión, se puede definir la regla de producción asociada a las proposiciones como:
If el motor no arranca
And las luces no encienden,
Then la falla está en la batería .
Sistemas de producción.
Un ejemplo de regla
Sistemas de producción.
Un ejemplo
If el motor no arranca And las luces no encienden Then falla la batería.
If el motor no arranca And las luces encienden And llega combustible
Then falla el sistema de ignición. If el motor no arranca
And las luces encienden And no llega combustible
Then falla el sistema de combustible.
Sistemas de producción.
Un conjunto de reglas
El desarrollo de las reglas de
producción para construir la KB.
• Debe
observarse
que las reglas no
están identificadas,
por ejemplo: con
una
numeración
correlativa.
El desarrollo de las reglas de
producción para construir la KB.
• Cada una de estas re-glas aparece como un gránulo de conoci-miento que es inde-pendiente de las res-tantes reglas, con lo cual, la ampliación de la KB puede realizarse sin mayor problema.
El desarrollo de las reglas de
producción para construir la KB.
• Sin embargo, desde el punto de vista del motor de inferencia, estas reglas deben estar relacionadas para que puedan ser interpretadas
adecuadamente durante el proceso de inferencia.
• Por ejemplo; la premisa “el motor no arranca”
El desarrollo de las reglas de
producción para construir la KB.
• Lo mismo ocurre con “las luces no en-cienden”, en la se-gunda y tercera re-glas.
• Por consiguiente, este es el único requisito que requiere el aggado de nuevas re-glas.
Sistemas de producción
Como razonamos???
Utilizando un
MECANISMO DE INFERENCIA
(MOTOR DE INFERENCIA)
El cual determina de que forma utilizar las
reglas para alcanzar el objetivo planteado
La ejecución del proceso de
inferencia en los KBS
Supóngase que se observa una falla en motor del auto y se constata que: “no arranca el motor, ni encienden las luces, y llega combustible”.
Desde el enfoque del KBS, es necesario ingresar esta información en la memoria de trabajo, para obtener una solución o respuesta al problema.
Entonces, la interfaz de este KBS, deberá proveer unos cuadros de un diálogo orientado, que permita ingresar las observaciones del caso.
La ejecución del proceso de
inferencia en los KBS
La ejecución del proceso de
inferencia en los KBS
• La respuesta seleccionada en el primer cuadro de diálogo, origina laplantilla “el motor no arranca”, que ingresará a la memoria de trabajo del KBS.
La ejecución del proceso de
inferencia en los KBS
• Continuando con el diálogo orientado, ingresarán otras dos plantillas a la memoria de trabajo: “las luces no encienden” y “llega
La ejecución del proceso de inferencia en
los KBS
• El proceso de ejecución que realiza el motor de inferen-cia, consiste en tomar cada una de estas plantillas, y explorar la KB buscando coincidencias en las premisas de cada una de las reglas.
• Con la primera plantilla, “el motor no arranca”, en-cuentra que hay una con-cordancia en las tres reglas.
La ejecución del proceso de
inferencia en los KBS
• Con la segunda plantilla “las luces no encienden”, solo hay concordan-cia en la primera regla, y la segunda y tercera reglas quedan descartadas.
• La primera regla se desen-cadena, y produce entonces la conclusión: “falla la ba-tería”, y el problema queda resuelto.
La ejecución del proceso de
inferencia en los KBS
Por último cabe observar que este proceso de comparación que explora cada una de las reglas, es prácticamente independiente del orden en que se encuentren dispuestas las mismas en la KB.
Este proceso de inferencia en los KBS, es denominado: sistema de inferencia por filtrado (pattern maching inference system), o simplemente,
Sistemas de producción
Motor de Inferencia
Direcciones de búsqueda:
Hacia delante, Forward Chaining o guiada
por los hechos.
Hacia atrás, Backward Chaining o guiada
por los objetivos.
Para seleccionar las reglas candidatas en cada estado utiliza el EMPAREJAMIENTO, FILTRADO o MATCHING.
Sistemas de producción
Flexibles.Sencillos de modificar y extender.
A los expertos les resulta simple “pensar en reglas”.
Completitud y consistencia. El conocimiento se separa
en pequeños “gránulos”.
VENTAJAS
PROBLEMAS Es común que se los
combine con otros formalismos.
Sistemas estructurados
ESTRUCTURAS DE RANURA Y
RELLENO (slot and filler)
REDES SEMANTICAS (Quillan 67/68) FRAMES (Minsky, 75)
Redes semánticas
Idea:
el significado de un concepto
depende del modo en que se encuentre
conectado a otros conceptos
Representación:
mediante un grafo
dirigido donde
los nodos representan objetos y
los arcos relaciones entre los conceptos
REX PERRO MAMIFERO
Redes semánticas - Ejemplo
ES-UN ES-UN ES-UN TIENE Estudiante -FCEIA Estudiante -UNREstudiante -LCC Estudiante -IEca
Juan Perez
Pedro García Legajo P-1233/5 Legajo Prom1 Prom2 Promedio TIENE INSTANCIA INSTANCIA INSTANCIA TIENE TIENE INSTANCIA INSTANCIA
Redes semánticas - Arcos
Etiquetas de los arcos
“es-un”
relación subclase-clase
“instancia”
relación objeto-clase
“parte-de”
relación componente-objeto
definidas por el usuario
Dominio de
aplicación
Generalización Instanciación Agregación DescripciónSistemas basados en
Redes semánticas
Base de conocimiento
En esta representación una BC es una
colección de estos grafos
Las modificaciones se refieren a inserción
Redes semánticas
Como razonamos???
Búsqueda de intersección
Encontrando relaciones entre objetos
Cual es la conexión entre Rex y mamífero?
Es Juan Pérez un estudiante de la UNR?
Cuál es el promedio de Pedro García?
Utiliza fundamentalmente la estructura
Marcos (frames)
Una red semántica representa conexiones entre
entidades
Problemas más complejos
Asignar más estructura a los nodos y a las
conexiones
Marcos
No existe una distinción clara entre una Red
Marcos (frames)
Idea:
Estructura para atender la
representación del conocimiento asociado
a situaciones estereotipadas (Minsky)
Representación: Es una colección de
atributos (ranuras - slots) con valores
asociados (y posibles restricciones entre
valores, llamados facetas)
Marcos - Estructura
NOMBRE ENCABEZADO ES-UN INSTANCIA ATRIBUTO1 VALOR1 ATRIBUTOn VALORn •valores por defecto •procedimientos •relación con otros marcos(slots)
Marcos - Ejemplo
Estudiante FCEIA
ES-UN Estudiante UNR
TIENE Legajo (letra/numerodigito) TIENE Promedio (procedimiento)
Estudiante Ing.Eca.
ES-UN ESTUDIANTE FCEIA
Juan Perez
INSTANCIA Estudiante Ing.Eca. TIENE Promedio = 6,80
DIRECCION ... (Defecto Rosario) TEL ...
Sistemas de Marcos
MC Actores
Interpreta: Si
(*)Nombre: Conj Caracteres (*)Peliculas: (0..100) (*)Fecha1aPelicula: MC Fecha (*)Dia: (1..31) (*)Mes: (0..120) (*)Año: 1900..2005 MC Actor Sexo: M (*)ParejaMiticaCon: MC Actriz Sexo: F (*)ParejaMiticaCon: MI - 7543 Nombre: H.Bogart Fecha1aPelicula: ParejaMiticaCon: MI - 8832 Nombre:L.Bacall Peliculas: 42 ParejaMiticaCon: MI - 2232 Dia: 27 Mes: 3 Año: 1944 Instancia Instancia Instancia Instancia Instancia
Sistemas de Marcos
Marcos Clase
Marcos Instancia
Representan conceptos, o situaciones genéricas descriptos por propiedades comunes
Elementos específicos. Sus propiedades se asocian con información de cada individuo
Propiedades
De Clase: Atributos genéricos de un concepto, con valores comunes a todas sus ocurrencias.
De Instancia: Atributos con valores particulares para cada ocurrencia del concepto (*).
Slots definidos en los marcos Clase
Sistemas de Marcos
Consideraciones al definir los Slots:
Evitar redundancias aprovechando la herencia.
Poseer información suficiente para identificar el marco clase. En un marco clase se puede definir un slot de instancia en
base a otro marco clase.
Los slots de instancia pueden tener uno o varios valores. En los marcos clase se pueden redefinir slots heredados para representar excepciones a la herencia.
Sistemas de Marcos
Facetas
Modelan características de slots y relacionesAlgunas facetas declarativas usuales:
Tipo de Slot: Tipo de datos de los valores, puede apuntar a otro marco.
Cardinalidad: Cantidad de valores posibles.
Valores permitidos: tipo de datos, rango o puntero a otro marco.
Marcos – Facetas/Métodos
Hay facetas ligadas a métodos de uso frecuente, asociados a cambios o utilización de los valores de las ranuras:
When_needed: Formas de conseguir el valor cuando
se lo necesita y no está disponible.
Before_changed: Restricciones propias del dominio. After_changed: Acciones pertinentes asociadas a los cambios de valor de la ranura.
When_accessed: Acciones pertinentes cuando la ranura es accedida de alguna forma.
Sistemas de Marcos
BASE DE CONOCIMIENTO
Conjunto de marcos relacionados mediante los
valores de los slots (atributos)
INFERENCIA
Utilizar la estructura jerárquica para heredar
propiedades (valores de slots).
Tener procedimientos (reglas) para hallar
Sistemas de Marcos
Tienen mucha tradicion en IA y son antecesores de los objetos
Los sistemas de marcos agregan expresividad a las redes semánticas y permiten representar conocimiento
declarativo y procedimental.
Objetos
Los vemos más como una forma de representar el mundo que como un paradigma de programación
Los encontramos en muchas herramientas dentro del área.
Objetos
Pensados como gran
aporte para el Reuso
BALA DE PLATADécada del 80
Actualmente se apunta a relaciones arquitecturales entre clases para lograr
Evolución y Mantenibilidad
Patrones de diseño
Objetos
OBJETO: Es una entidad que tiene un comportamiento.
ESTADO INTERNO MENSAJES que es
capaz de responder.
INTERFAZ
Un PROGRAMA OO es una red de objetos cooperantes, que interactúan entre sí, enviándose mensajes.
ENCAPSULAMIENTO
Permite la utilización de clases con implementaciones intercambiables.
Objetos
Una CLASE es una definición de las características comunes de un conjunto de objetos semejantes.
CLASE
ESTRUCTURA: Conjunto de variables de clase e instancia.
INTERFAZ: conjunto de métodos. Los objetos concretos buscan en su clase la definición cuando reciben un mensaje.
Objetos
Las CLASES se
organizan en jerarquías modelizando el dominio
De Estructura: Más estática.
De Comportamiento: Ocurre en ejecución.
HERENCIA
Esquema de colaboración entre objetos (explícito en
el código)
Cuando un objeto recibe un mensaje, busca el código en su clase, y si no lo encuentra recorre la jerarquía.