Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sistemas
basados en el conocimiento (SBC)
Partiendo del criterio existente sobre el papel principal del conocimiento en la solución de problemas,
resulta claro que es necesario considerar cuidadosamente como realizar el almacenamiento del mismo.
Para realizar el almacenamiento del conocimiento se determina su representación, lo cual no es más que
el proceso de estructurar el conocimiento sobre un dominio de aplicación de modo que los problemas
sean más fáciles de resolver. En esta conferencia se analiza el estado actual de las técnicas para realizar
esta representación.
1. Definición
La cuestión básica de la representación del conocimiento es el desarrollo de una notación
suficientemente precisa con la cual representar el mismo. A esa notación se le llama Forma de
Representación del Conocimiento (FRC).
No existe actualmente una FRC general capaz de ser usada en todo tipo de aplicación con éxito; las
formas disponibles están limitadas a más o menos un dominio específico. Ante una aplicación y la
oferta de FRC existente es necesario realizar la selección de la más adecuada para lo cual se pueden
considerar los criterios siguientes:
- Debe permitir describir el dominio de una manera natural, reflejando tanto como sea posible la
estructura de los objetos, los hechos y las relaciones entre ellos.
- Debe aceptar conocimiento empírico, teórico o heurístico, y combinar el conocimiento declarativo
con el procedural, de acuerdo a los requerimientos de la aplicación.
- Debe permitir estratificar el conocimiento de acuerdo a su significado y funciones.
- Debe permitir que el conocimiento de los expertos se represente fácilmente.
- Los expertos en la aplicación deben poder comprender el conocimiento que esta almacenado.
- El conocimiento almacenado se debe poder usar con efectividad.
2. Reglas de producción
Las reglas de producción son la FRC más popular, y para la cual se han desarrollado más herramientas
comerciales.
1
Figura 4.1: Sección de un árbol con el conocimiento para el diagnóstico de fallas.
Las fuentes principales de información para ejecutar el diagnóstico son los manuales que los fabricantes
ofrecen junto con los equipos (voluminosos generalmente), y la experiencia propia del técnico. Ya sea
2
de una fuente o de otra, el conocimiento para el diagnóstico se puede describir como se hace en la
figura 4.1.
Nótese cómo cada rama del árbol contiene las condiciones necesarias para un tipo de falla. El problema
es determinar la forma más conveniente de representar cada camino del árbol, con lo cual se tendrían
descritas las fallas posibles.
2.2 Definición
En su forma más sencilla, una regla de producción no es más que un par (A,B) que puede representarse
en el cálculo proposicional como A ® B. Para manipular la información contenida en ellas se utiliza la
regla del modus ponens: del hecho A y A ® B se infiere B.
Las reglas expresan siempre una condicional, con un antecedente y un consecuente. La interpretación
de una regla es que si el antecedente se puede satisfacer entonces se obtiene el consecuente. La regla de
producción representa una unidad relativamente independiente de conocimiento la cual puede describir
relaciones como las siguientes:
Si precondición P entonces conclusión C
Si situación S entonces acción A
Si condición C1 entonces no condición C2
3. Frames
La representación del conocimiento mediante frames fue propuesta por Marvin Minsky en 1975. Ha
servido de base para el desarrollo de diferentes herramientas orientadas a la representación y
manipulación del conocimiento como el FRL (Frame Representation Language) desarrollado en el MIT
3
por R.B. Roberts y P. Goldstein, el KRL (Knowledge Representation Language), el OWL (One World
Language) y el KL-ONE.
3.2 Definición
Un frame es una estructura de datos compleja que contiene un agregado de información acerca de un
objeto. La información almacenada en el frame se distribuye en diferentes campos llamados slots
(aspectos), cada slot contiene la información sobre un atributo del objeto que se modela. A cada slot se
le puede asociar varios tipos de información, llamados facetas del slot, entre las cuales están:
VALUE : almacena el valor para el slot
PROCEDURE : contiene un procedimiento para calcular el valor que debe ser almacenado en la
faceta VALUE
DEMONS : contiene procedimientos que tienen que ser ejecutados cuando cambia el valor
almacenado en VALUE (mantienen la consistencia interna de la información)
DEFAULT : contiene un valor inicial o valores usados comúnmente para la faceta VALUE
RESTRICTIONS : contiene un conjunto de expresiones lógicas que tienen que ser verdaderas para
el valor almacenado en VALUE
EXPLANATION : almacena documentación sobre el slot
Hector Levesque y otros autores agrupan a las facetas PROCEDURE y DEMONS bajo la
denominación de procedimientos adjuntos (attached procedures). A los procedimientos que
corresponden a la faceta PROCEDURE se les llama procedimientos IF-needed y a los correspondientes
4
a la faceta DEMONS se les denomina procedimientos IF-added. En general se puede plantear que la
información almacenada usando como FRC los frames tiene cuatro niveles de detalle: el frame, los
slots del frame, las facetas de cada slot y los valores almacenados en cada faceta. Aunque se han
enunciado seis posibles facetas para un slot, no necesariamente cada slot las tiene todas.
Los frames pueden ser organizados en una jerarquía, para lo cual es suficiente incluir en el frame uno o
mas slots que contengan un enlace al frame superior en la jerarquía, del cual es una instancia. El enlace
se puede lograr sencillamente colocando el nombre del frame padre en un slot que podemos llamar
CLASE. Cada frame padre define una clase. Todos los frames de una clase comparten la información
almacenada en el frame padre. Esta información común es almacenada en slots llamados slots propios
del frame. Además cada clase puede especificar un conjunto de slots que tienen que ser evaluados en
cada instancia de la clase y se les denomina slots miembros. Esta estructura jerárquica permite
compartir información a través de la herencia.
4. SCRIPTS
Un script es una FRC similar a un frame, pero en lugar de describir un objeto, el script describe una
secuencia de eventos.
4.2 Definición
Los scripts son estructuras de datos complejas designadas para almacenar el conocimiento sobre una
secuencia estereotipada de acciones. Este conocimiento le dice a los sujetos que intervienen en la
secuencia de eventos lo que puede suceder en una situación, que evento sigue y que papel debe jugar
cada quien en la actividad social que se describe. Para almacenar este conocimiento el script usa una
serie de slots que contienen información acerca de los sujetos, objetos y acciones que están
involucradas en el evento.
5
La información almacenada en los scripts puede referirse a:
- condiciones bajo las cuales el evento descrito en el script debe realizarse, estas condiciones
describen situaciones que necesitan ser satisfechas antes que el evento se realice ( CONDITION ).
- sujetos que actúan en los eventos descritos ( ROLES ).
- objetos utilizados por los sujetos ( PROPS ).
- lugar donde ocurre el evento ( SETTING ).
- condiciones que existen después de ocurrir el evento ( RESULTS ).
c) invocación como local ( locale header LH): la mención del local hacia donde se dirige un sujeto
puede servir para invocar el script correspondiente, este es el tipo de iniciador más fuertemente
predictivo.
Ejemplo: De la oración "Juan fue para el campo de fútbol" o "Juan fue para el Museo de Arte
Moderno", se podría invocar los sripts que describen las actividades que se desarrollan cotidianamente
en esos lugares.
d) invocación directa ( direct header DH): hay una alusión directa a un script. Dentro de un
contexto son siempre los primeros patrones a ser chequeados.
Ejemplo: En el texto "Juan realizó un paseo en metro" el script $METRO es un DH.
6
SCRIPT $RESTAURANT
SETTING: Restaurante de comida rápida y su contorno.
ROLES: Consumidor (C), Servidor (S).
PROPS: Contadora, bandeja, comida, servilletas, dinero.
CONDITION: C tiene hambre, C tiene dinero.
RESULTS: C no tiene hambre, C tiene menos dinero, C esta satisfecho o no
Una escena de este script es "entrada al restaurant" compuesta por los episodios "parquear el
automóvil", "entrar" y "decidir el menú". El episodio "entrar" se puede formar de los eventos "abrir la
puerta" y "dirigirse a la línea de servicio". Otras escenas son "ordenar el menú", "comer los alimentos",
"salir del restaurant".
Otro script puede representar las actividades que se desarrollan en el metro.
SCRIPT $METRO:
SETTING: El metro y su contorno.
ROLES: Patrón (PAT), Cajero (CAJ), Conductor (COND), Maquinista (MAQ), Pasajero (PAS).
PROPS: Moneda (MON), Boletín (BOL), Asiento en la estación (ASIE), Coche (COCH), Tren,
Asiento en el coche (ASIC).
CONDITION: PAS necesita viajar o PAS quiere pasear.
Las escenas principales del script $METRO son: "entrar en la estación y esperar en la plataforma",
"entrar al tren y llegar al destino" y "abandonar la estación de destino". La estructura en episodios de la
segunda escena se describió anteriormente. Un evento de este script es:
"El patrón le da una moneda al cajero", el cual puede representarse como:
(ATRANS
ACTOR &PAT
OBJECT &MON
FROM &PAT
TO &CAJ)
5. Redes semánticas.
Esta FRC enfatiza en la conectividad del conocimiento análogamente a la construcción de un
diccionario. Cada palabra (concepto) es definida en términos de otras, creando una estructura enlazada
que interrelaciona virtualmente cualquier cosa.
7
caracterizan los conceptos. Por ejemplo, ¿cómo representar todo el conocimiento acerca del concepto
de asamblea?
El concepto de asamblea tiene algunos conceptos que pueden ser considerados especializaciones de
este, tal como junta y reunión, y tiene también un conjunto de rasgos que le son inherentes como
duración, número de participantes y lugar. A su vez al concepto de junta podemos relacionar los
conceptos de junta de negocios, junta personal, etc.; pero nótese que a la junta de negocios le son
propios también los rasgos que tiene la asamblea. Esta relación entre conceptos puede complicarse
tanto como se desee ampliar el dominio de conocimiento y no constituye una organización jerárquica.
El problema radica en definir una FRC adecuada para este tipo de conocimiento.
5.2 Definición
Una red semántica consiste de puntos llamados nodos, conectados por enlaces llamados arcos que
describen las relaciones entre los nodos. Los nodos representan objetos, conceptos o eventos. Los arcos
pueden definirse de varias formas, dependiendo de la clase de conocimiento representado, por ejemplo
arcos comunes usados para representar jerarquías son es-un y parte-de, mientras que en redes
semánticas empleadas para describir lenguajes naturales los arcos pueden ser agente, objeto y
recipiente. Frecuentemente se ilustra una red semántica como un grafo etiquetado dirigido.
Desde los últimos años de la década del 50 se han propuesto decenas de versiones diferentes de redes
semánticas. Debido a esta diversidad, la terminología y las notaciones varían ampliamente; sin
embargo, algunos rasgos son comunes a la mayoría de las versiones, tales como:
- Los nodos en la red representan conceptos de entidades, atributos, eventos y estados.
- Diferentes nodos del mismo tipo de concepto se refieren a diferentes individuos de ese tipo, a
menos que ellos estén marcados con un nombre, identificador o enlace para indicar al mismo
individuo.
- Los arcos en la red, llamados relaciones conceptuales, representan relaciones que se establecen
entre los nodos conceptos (las etiquetas sobre los arcos especifican los tipos de relaciones).
- Algunas relaciones conceptuales representan casos lingüísticos, tales como agente, objeto,
recipiente e instrumento. Otras representan conexiones espaciales, temporales o lógicas.
- Los tipos de conceptos están organizados en una jerarquía de acuerdo a niveles de generalidad.
- Las relaciones establecidas por todos los conceptos de un tipo dado son heredadas a través de la
jerarquía por todos los subtipos.
La representación del conocimiento en una red es tan fascinante y potente como compleja. Las redes se
basan en dos condiciones:
- el conocimiento se representa por nodos en un grafo no jerárquico, por lo que todos los nodos
tienen la misma importancia y cualquiera puede ser usado como punto de partida.
- los nodos están organizados de modo que tipos similares de conocimiento son adyacentes.
Cada transición de un nodo a otro incrementa la similaridad, en cada paso de un nodo a otro se analizan
todos los nodos adyacentes para ver cual da más evidencia. La mayoría de los modelos de redes usan
una lista de índices que ayudan a seleccionar el nodo de entrada en la red para cada situación. En el
peor caso la búsqueda en la red degenera como si se buscara en una lista.
Las relaciones entre los nodos pueden establecerse en base a tres relaciones primitivas: relación de
especialización, relación parte-todo y relación de igualdad. La relación de especialización (o
generalización) se basa en la idea de que algunos objetos son más generales que otros (relación es-un).
La relación parte-todo se establece cuando un objeto juega un rol en otro objeto. La igualdad se
manifiesta como una relación de especialización en el comportamiento y a través de los rasgos que se
heredan entre dos objetos.
8
Las relaciones es-un, parte-de, y otras permiten heredar información. Un sistema de redes semánticas
típico tiene un conjunto de procedimientos para la manipulación de las estructuras (añadir y eliminar
nodos y enlaces), y para atravesar el grafo en varias formas. También permite al usuario construir su
propio procedimiento de búsqueda. La significación de representar una red semántica como un grafo
etiquetado dirigido viene dada porque permite realizar ciertas clases de inferencias usando simplemente
técnicas de búsqueda en grafos; esta representación permite otras clases de inferencias, como por
ejemplo, preguntar cómo están relacionados dos nodos y responder encontrando un camino en el grafo
entre ellos.
6 Strips
Strip es un identificador usado para nombrar una FRC y un sistema de planificación (planner) basado
en ese formalismo. Este enfoque fue desarrollado originalmente para el subsistema de planificación del
robot SHAKEY a finales de la década del 60.
6.2 Definición
La planificación es la generación de una secuencia de acciones o programa de acción para un agente
(un ejemplo de agente es un robot). Las acciones cambian un estado del universo sobre el que se
desarrolla la planificación a otro. En el formalismo strip las acciones se modelan en una forma similar a
las reglas de producción, y estas cambian una descripción de un estado en otra.
9
Cada strip tiene tres componentes:
- condición de la acción: verifica la condición que debe cumplir un estado para poder aplicar la regla.
- lista de literales a ser eliminadas (delete list): en esta lista aparecen explícitamente todas las
expresiones que dejan de ser verdad al aplicarse la regla.
- lista de literales a ser añadidas (add list): en esta lista aparecen explícitamente todas las expresiones
que se hacen verdaderas en el nuevo estado.
La esencia de la FRC es: Si la acción A transforma el estado S1 en el estado S2, entonces una
proposición P es verdadera en el estado S2, sí y sólo sí, o P está en la lista add list de A o P es
verdadera en S1 y no está en la delete list de A.
En un universo formado por un conjunto de tres bloques y un tablero infinito, la acción de seleccionar
un bloque desde el tablero requiere la condición de que el bloque este sobre el tablero, que la mano este
vacía y que el bloque no tenga nada encima; el efecto de esta acción es que la mano está alzando un
bloque. Esta acción se representa en la siguiente regla strip:
PICKUP(x)
Precondition: ONTABLE(x) y HANDEMPTY y CLEAR(x)
DeleteList: ONTABLE(x) , HANDEMPTY, CLEAR(x)
AddList: HOLDING(x)
Las tres componentes de cada regla en este formalismo se definen usando algunos predicados básicos.
Para este universo los predicados básicos mas frecuentes son:
CLEAR(x): la parte superior (top) de x está libre
HOLDING(x): la mano de un agente está sosteniendo al bloque x
ON(x,y): el bloque x descansa sobre el bloque y
ONTABLE(x): el bloque x descansa directamente sobre el tablero
Dado el estado que se muestra en la fígura 4.6.
Al aplicar la regla PICKUP(x) y sustituyendo x por B se obtiene el estado que se muestra en la fígura
4.7.
10
6.3 Limitaciones
Al menos existen tres limitaciones de este formalismo, aunque ellas no afectan severamente el uso del
mismo para muchos propósitos:
a) No se pueden crear o destruir objetos del universo fácilmente.
b) Las acciones no se pueden aplicar a la vez sobre objetos diferentes, sólo a cada objeto
individualmente.
c) Los sistemas de producción basados en reglas strips no son en general conmutativos, porque las
reglas pueden eliminar ciertas literales de la descripción de los estados.
11
experto puede no recordar todos los detalles del análisis del problema original, pero puede
reconocer el enfoque aplicado a un problema similar.
El uso de heurísticas en los SBC es marcadamente diferente de las funciones heurísticas usadas en
la búsqueda heurística. Las funciones heurísticas representan conocimiento general usado para
guiar la búsqueda, mientras que la heurística en los SBC consiste en el conocimiento heurístico
usado por un experto en la solución de un problema, esta es más específica del dominio y más
profunda en naturaleza.
Un experto es una persona que posee habilidades que le permiten sacar conclusiones de
experiencias pasadas y rápidamente focalizar sobre el centro de un problema dado. Las mayores
posibilidades del éxito de un experto en la solución de problemas se deben a que ha adquirido un
conjunto de relaciones de causa y efecto poderosas basadas en la experiencia. Un experto es capaz
de utilizar este conocimiento básico para reconocer rápidamente rasgos sobresalientes del
problema, clasificar este de acuerdo a estas características y buscar una solución. Últimamente,
se reconoce que en lugar de relaciones de causas y efecto los expertos recuerdan casos similares
al problema a resolver y toman de ellos las soluciones dadas como punto de partida para
encontrar la solución al nuevo problema.
Al experto lo caracterizan:
- una mayor amplitud en la variedad de problemas que puede resolver que los otros profesionales
del dominio.
- más rapidez en encontrar una solución
- más calidad en la solución encontrada.
El conocimiento en cualquier especialidad es usualmente de dos tipos: público y privado. El
conocimiento público incluye las definiciones, hechos y teorías publicadas. Pero la
experticidad usualmente incluye más que esta clase de conocimiento. Los expertos humanos
generalmente poseen conocimiento privado.
Elucidar y reproducir tal conocimiento es la tarea central en la construcción de sistemas basados en
el conocimiento; el sujeto de esta acción es el ingeniero de conocimientos (IC). Sobre el
conocimiento público hay consenso, el privado puede llevar a controversias entre los expertos.
Entre las razones que sustentan enfatizar en el conocimiento en lugar de en los métodos de
razonamiento formal están:
i) La mayoría de los problemas difíciles e interesantes no tienen soluciones algorítmicas
tratables.
ii) Los expertos humanos obtienen su destacado desempeño gracias al conocimiento que poseen.
iii) El conocimiento es una fuente escasa cuyo refinamiento y reproducción crea riqueza.
En resumen, la potencia de un SBC radica en el conocimiento que posee.
12
Esta definición puede ser aplicada a programas que no se consideran SBC. Por ejemplo, un
programa en un lenguaje procedural que permita calcular magnitudes usando fórmulas conocidas
llega a iguales resultados que los especialistas que manejan esas fórmulas para resolver un
problema; y no por eso dicho programa se puede considerar un SBC.
Realmente, a los SBC lo caracterizan más rasgos que simplemente el hecho de duplicar el
conocimiento y experticidad de un experto humano para un dominio específico. Tres conceptos
fundamentales relativos a los SBC lo distinguen de los programas basados en búsqueda general:
La separación del conocimiento de cómo este es usado (distinción entre conocimiento y
estrategia de control).
El uso de conocimiento muy específico del dominio.
Naturaleza heurística, en lugar de algorítmica, del conocimiento empleado.
Otros rasgos que lo distinguen de la programación convencional son que no requieren analizar
completitud y pueden dar diversas soluciones.
Generalmente los términos SBC y Sistemas Expertos se usan indistintamente, aunque algunas
autores limitan el uso del termino SE a aplicaciones donde el conocimiento al nivel de experto
es requerido.
Los SBC tienen ventajas y desventajas cuando se comparan con otras soluciones como el software
convencional o solucionadores humanos.
Ventajas:
1. Amplia distribución de experticidad escasa.
2. Fácil modificación (conocimiento explícito y accesible).
3. Consistencia en las respuestas (los expertos humanos pueden diferir en sus explicaciones,
incluso un mismo experto puede responder de forma diferente en momentos diferentes).
4. Gran accesibilidad (los SBC trabajan las 24 horas todos los días).
5. Preservación de la experticidad (constituye una memoria institucional y poseen la capacidad
para adquirir nuevo conocimiento y perfeccionar el que poseen).
6. Solución de problemas que incluyen datos incompletos.
7. Explicación de soluciones (justifica sus conclusiones y explica por qué hace una pregunta).
8. Permite evaluar el efecto de nuevas estrategias añadiendo o modificando conocimiento.
9. Constituye un entrenador en el dominio de aplicación.
Desventajas
1. Las respuestas no siempre son correctas.
2. Conocimiento limitado al dominio de experticidad.
3. Ausencia de sentido común.
4. No reconocen el límite de su conocimiento.
Sistemas basados en reglas (SBR) desde el punto de vista del usuario final
Los SBR son los más conocidos de los SBC, sistemas basados en el conocimiento clásicos como
Dendral, MYCIN y R1 también conocido como XCON fueron SBR.
Los SBR son SBC en los que la forma de representación del conocimiento usado son las reglas de
producción y como método de inferencia utiliza la regla de modus ponens.
Los SBR son llamados frecuentemente sistemas de producción una idea de 1943 expresada por E. L.
Post.
El proceso de solución de problemas en un SBR es crear una cadena de inferencias que constituye
un camino entre la definición del problema y su solución. Esta cadena de inferencias puede
construirse por dos vías (direcciones de búsqueda):
1- Comenzar con todos los datos conocidos y progresar hacia la conclusión (data driven o forward
chaining).
2- Seleccionar una conclusión posible y tratar de probar su validez buscando evidencias que la
soporten (goal driven o backward chaining)
Orientación de la bibliografía:
Capítulo II Formas de Representación del Conocimiento. pp. 33-47. Parte I de Aplicaciones de
la Inteligencia Artificial. R. Bello y otros autores
Cap. 2 pp. 17-25, Cap. 7, Cap. 9. Inteligencia Artificial, Henry Winston
IA, Elaine Rich, 1994 Cap. 4, Epig. 6.1, Cap. 9, Epig. 10.1 y 10.2, Cap. 11
The role of frame-based representation in reasoning. Comm. of ACM Vol 28 Nº 9
(septiembre 1985)
16
Building Expert System
Building Knowledge Based System
Aplicaciones de la IA. Capítulo IV
17