Está en la página 1de 17

Conferencia # IA-4 formas de representación del conocimiento (FRC).

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.

2.1 Planteamiento de un problema


Una de las tareas principales a realizar en un taller de mantenimiento de equipos automotores es el
diagnóstico de las fallas. En términos económicos un buen diagnóstico significa que se reducen los
costos, por cuanto no se pierde tiempo en el desarme de partes componentes para revisar fallas posibles,
se evitan reparaciones innecesarias y se minimiza el tiempo de inactividad del equipo que se repara.

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

2.3 Criterios sobre el dominio de aplicación


Las reglas pueden ser comprendidas fácilmente y tienen suficiente fuerza expresiva para:
- representar reglas de inferencia dependientes del dominio
- representar especificaciones de comportamiento
- almacenar el conocimiento que pueda ser expresado como heurística experimental
- expresar conocimiento orientado a un objetivo
- expresar relaciones causales
Las reglas de producción han sido utilizadas con éxito como FRC para tareas de diagnóstico, diseño
(configuración de computadoras), planificación, problemas deductivos, etc. Pero son inadecuadas para:
definir términos, describir objetos y describir relaciones estáticas entre objetos.

2.4 Ventajas que ofrecen las reglas de producción


Al usar las reglas de producción como FRC se pueden desarrollar sistemas con las propiedades
siguientes:
- Cada regla define una pequeña, pero relativamente independiente, unidad de conocimiento
(modularidad).
- Se pueden añadir nuevas reglas con una relativa independencia del resto (incrementabilidad).
- Las reglas viejas pueden ser modificadas con relativa independencia (modificabilidad).
- La habilidad del sistema crece proporcionalmente a la cantidad de reglas.
- Pueden explicar el camino que llevó a la solución (transparencia).
- El conocimiento existente puede ser refinado.

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.1 Planteamiento de un problema


En un taller de mantenimiento de equipos automotores se tiene la información sobre los diferentes
vehículos que han sido atendidos en ese taller. Entre los atributos asociados con cada vehículo está el
número de ruedas, el peso, el color, el número de la chapa, el tipo de motor (petróleo o gasolina), el
largo, el nombre de la provincia, el tipo de propiedad (estatal, privado, cooperativo), el número de
veces que ha sido atendido y la última fecha de reparación.
El taller recibe una microcomputadora y una de las primeras decisiones es automatizar el
almacenamiento y manipulación de esta información. Como una variante inicial se puede pensar en
crear un fichero que contenga un artículo para cada vehículo. Esta variante aunque fácil de implementar
presenta algunas deficiencias, entre ellas:
- En muchos artículos algunos campos tienen igual valor (por ejemplo en el atributo número de
ruedas siempre se tienen los valores 4, 6, 8, 10 o 12, y el tipo de motor tiene sólo dos valores
posibles).
- El valor de algunos atributos no es necesario almacenarlo, pues puede ser calculado cuando sea
necesario en base al valor de otro atributo (por ejemplo, el nombre de la provincia puede ser
determinado a partir del número de la chapa).
- No se pueden definir, dentro del mismo fichero asociado a cada atributo, restricciones sobre el
valor que estos pueden almacenar (por ejemplo, a partir del tipo de motor y la fecha en que el taller
comenzó a dar mantenimiento a esa clase de motor se puede validar la fecha de la última
reparación).
El problema es determinar la FRC más conveniente que permita reducir la cantidad de información
almacenada (agrupar los vehículos de acuerdo a los valores posibles para algunos atributos), validar el
valor de los atributos, calcular dinámicamente el valor de un atributo cuando este se necesite, modificar
directamente el valor de un atributo cuando se asigne un nuevo valor a otro atributo, por ejemplo,
cuando se actualice el valor de la última fecha de reparación se debe incrementar automáticamente el
número de veces que el vehículo se ha atendido, etc.

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.

3.3 Criterios sobre el dominio de aplicación


Los frames deben ser usados donde sea necesario tener descripciones estructurales complejas para
describir adecuadamente el dominio de la aplicación, pues un frame ofrece una representación
estructurada de un objeto o una clase de objetos.
Los frames son especialmente fuertes para permitir que la información común se almacene de modo
compartido para múltiples frames. Sin embargo, ellos no ofrecen directamente facilidades para describir
como se usará el conocimiento almacenado.
Esta FRC ha sido utilizada en tareas de predicción y monitoreo, para lo cual el mecanismo establecido
por los procedimientos adjuntos (fundamentalmente los procedimientos IF-added) es útil, así como ha
dado buenos resultados en problemas de tipo constructivo tales como el diseño.

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.1 Planteamiento de un problema


Actualmente se utiliza ampliamente la computación en la elaboración de materiales audiovisuales. En
este tipo de aplicación resulta interesante la elaboración de historietas, animados, etc. En la elaboración
computacional de este tipo de material visual es necesario tener en cuenta una componente gráfica
importante (lo cual es en ocasiones lo que más se resalta o valora), pero la actuación de cada uno de los
sujetos que intervienen en el material contiene un volumen considerable de conocimiento social.
Este conocimiento social se refiere al surgimiento de actividades estereotipadas o ritualizadas debido al
carácter reiterado conque son ejecutadas. Entre estas actividades ritualizadas está comer en un
restaurant, ir al cine, comprar en el mercado, etc.
El problema radica en como representar los sujetos, objetos y acciones que intervienen en estas
secuencias de eventos estereotipados.

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

4.3 Invocación de los scripts


Hay una clase importante de script denominada scripts iniciadores (scripts header), los cuales sirven
para invocar los otros scripts o sea, para desencadenar el evento descrito en un script. Existen cuatro
variantes para esta clase de script:
a) invocación por precondición ( precondition header PH): se dispara un script sobre la base de que
en el script principal se menciona una precondición en el texto.
Ejemplo: La sentencia "Juan tiene hambre" es un PH para el script $RESTAURANT.
b) invocación como instrumento ( instrumental header IH): cuando un script puede ser interpretado
como instrumento de otros scripts.
Ejemplo: Del texto "Juan tomó el metro para ir al restaurant" se podrían invocar el script $METRO o el
script $RESTAURANT, pero el primero es un IH.

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.

4.4 Eventos, episodios y escenas


Los eventos se suceden uno detrás de otro para describir una actividad bien conocida. A esta cadena de
eventos se le llama episodio. Por ejemplo, "Comprar un pasaje" es un episodio consistente de los
eventos "entrar en la estación", "ver al cajero", "dirigirse al cajero", "pedirle un pasaje al cajero",
"esperar que el cajero prepare el boletín" y "pagar el pasaje".
Al conjunto de episodios que describen como ocurre una actividad importante se le denomina escena.
Las escenas comúnmente organizan eventos que ocurren en un mismo local. Por ejemplo, "entrar al tren
y llegar al destino" puede ser una escena constituida por los episodios "subir al tren", "leer el
periódico", "bajar del tren"; el episodio "leer el periódico" puede integrarse a su vez por los eventos
"abrir el portafolio", "extraer el periódico", "cerrar el portafolio", etc.

4.5 Ejemplos de scripts


Un script típico es la visita a un restaurant (Figura 4.2a).

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)

4.6 Criterios sobre el dominio de aplicación


Los scripts están designados para almacenar situaciones en las cuales el comportamiento de los sujetos
actuantes está tan estilizado que raramente surge la necesidad de analizar un plan. Como los scripts
permiten describir la secuencia de eventos que definen una situación estereotipada, ellos son útiles en la
predicción de lo que sucederá en cierta situación aún sin observar algunos eventos.
Algunas aplicaciones en que el uso de script es útil son:
- Dar respuestas a las expectativas creadas durante el procesamiento de textos (resolución de
pronombres, eliminar la ambigüedad del sentido de las palabras, inferir actividades).
- Procesamiento del lenguaje natural.
- Representar, procesar y generar historietas.

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.

5.1 Planteamiento de un problema


En algunas aplicaciones es necesario representar el conocimiento sobre un dominio específico a través
de los conceptos de ese dominio, las relaciones de similaridad entre esos conceptos y los rasgos que

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.

5.3 Criterios sobre el dominio de aplicación


Las primeras implementaciones de redes semánticas fueron desarrolladas para sistemas de traducción
por computadoras en los finales de los años 50 e inicios de los 60; el primero fue desarrollado en la
Universidad de Cambridge, en la cual a partir de un conjunto de 100 tipos de conceptos primitivos se
definió un diccionario conceptual de 15000 entradas. Otros autores como Ceccato, Hays, Masterman y
Quillian han trabajado en esta dirección.
En otros sistemas, fundamentalmente en el campo de la Inteligencia Artificial, han sido usadas para
sintetizar respuestas, programación automatizada, aprendizaje automatizado, etc.
Las redes semánticas han sido propuestas como un mecanismo para simular algunas de las
características asociativas de la memoria humana. Muchos investigadores en Inteligencia Artificial
consideran que las redes semánticas son el formalismo más apropiado para representar el conocimiento
humano.

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.1 Planteamiento de un problema


Dados tres bloques A, B y C en una distribución arbitraria sobre un tablero, se quiere elaborar un
sistema que ejecute la secuencia de acciones necesarias para llevarlo a una distribución deseada. Por
ejemplo, transformar la distribución dada en la figura 4.4 a la distribución representada en la figura 4.5.

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.

Relación entre las FRC


No se puede decir realmente que un formalismo es mejor que cualquier otro; ellos se diferencian en su
expresividad y tratabilidad, por ejemplo, los frames son más expresivos pero menos tratables
computacionalmente que las redes semánticas. La experiencia ha demostrado que ninguna de las FRC
es capaz de satisfacer todos los requerimientos necesarios para un dominio de aplicación, de ahí que
frecuentemente se valore la combinación de dos o más formalismos para una aplicación. Este carácter
complementario no existe solamente entre los modelos declarativos, sino que también varios autores
han valorado la necesidad de usar en numerosos dominios tanto el conocimiento declarativo como el
procedural; como un ejemplo está la combinación de los lenguajes Modula y Prolog en un ambiente de
programación.

7. Introducción a los Sistemas Basado en el Conocimiento


En la década del 70 se reconoció que los métodos de solución de problemas generales eran
insuficientes para resolver los problemas orientados a aplicaciones. Se determinó que era
necesario conocimiento específico sobre el problema, limitado a los dominios de aplicación de
interés, en lugar de conocimiento general aplicable a muchos dominios. Este reconocimiento
condujo al desarrollo de Sistemas Basados en el Conocimiento (SBC).
El conocimiento representado en los SBC es el de los expertos en el dominio. Una parte de un
conocimiento experto consiste de relaciones de causa y efecto. Estas relaciones o reglas se
originan a partir de la experiencia pasada y son llamadas heurísticas. Ellas representan
conocimiento informal o atajos, que permiten a un experto encontrar rápidamente una solución a
un problema sin tener que realizar un análisis detallado de una situación particular debido a un
análisis de un problema similar resuelto de forma exitosa anteriormente o a relaciones que han sido
aprendidas como resultado de un intento fallo pasado para resolver un problema similar. El

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.

7.1 Definición de SBC


En términos generales, un SBC puede ser definido así:
Un sistema computarizado que usa conocimiento sobre un dominio para arribar a una solución de
un problema de ese dominio. Esta solución es esencialmente la misma que la obtenida por
una persona experimentada en el dominio del problema cuando se enfrenta al mismo problema.

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.

7.2 Estructura de los SBC


Un SBC es visto desde tres puntos de vistas: el del usuario final, el del ingeniero del
conocimiento y el constructor de herramientas.
a) Visión del usuario final.
Para un usuario final el SBC consiste de tres componentes:
1) El programa inteligente, es una caja negra para el usuario final, contiene toda la inteligencia
del sistema (integra la base de conocimiento y la máquina de inferencia).
2) La interfaz usuario, que sirve para:
i) Permitir al programa inteligente plantear preguntas al usuario.
13
ii) Ofrecer explicaciones de por qué hace una pregunta.
iii) Permitir al usuario preguntar why (¿Por qué?) y how (¿Cómo?).
iv) Mostrar los resultados derivados.
v) Ofrecer salida gráfica de los resultados derivados.
vi) Permitir al usuario guardar los resultados.
3) La base de “datos” (conocimiento) específica del problema que contiene toda la
información dada para el usuario sobre el problema actual y todas las conclusiones que el
programa inteligente ha inferido.
b) Visión del ingeniero de conocimientos.
Desde este punto de vista un SBC consiste de dos componentes principales: el programa
inteligente y el shell de desarrollo.
1) El programa inteligente, es el producto desarrollado para el usuario final, es idéntico al
que el usuario ve excepto que para el I.C este no es una caja negra, sino que está compuesto
por una base de conocimientos (BC) y una máquina de inferencia (MI).
La BC es la componente más importante del SBC. Toda BC tiene asociada un formato el
cual indica como el conocimiento se representa internamente. A este formato se
denomina Forma de Representación del Conocimiento.
La MI es el interprete del conocimiento almacenado en la BC. La MI implementa algún
método de solución de problemas con una dirección (forward o backward) de búsqueda
dada.
2) El shell de desarrollo, es quien asiste al ingeniero de conocimiento en estructurar, depurar
(debuging), modificar y expandir el conocimiento extraído desde el experto.
Un shell de desarrollo típico tiene tres componentes:
i) una herramienta de adquisición del conocimiento,
ii) una base de casos de prueba y
iii) la interfaz del desarrollador.
La herramienta de adquisición del conocimiento asiste al IC en la construcción de la BC,
puede servir sólo como editor en su forma más simple y puede incluir otras facilidades
como extraer relaciones no explícitas, modificar la BC eliminando o añadiendo
conocimiento, etc.
La base de casos de prueba consiste de problemas ejemplos que han sido ejecutados
exitosamente sobre la BC, ella sirve para validar la BC cuando es modificada.
La interfaz de desarrollo es la misma del usuario final, pero ampliada con facilidades que
ayudan al IC a la puesta a punto de la BC; esta permite al IC ver exactamente como el
sistema operará.
c) Visión del constructor de herramientas.
Este tiene una visión muy similar al ingeniero de conocimiento, pero más profunda, pues el
constructor es quién analiza, diseña y programa las posibilidades que ofrecerán el programa
inteligente y el shell de desarrollo. Para realizar su trabajo se plantea estas interrogantes:
- ¿Puede el conocimiento ser representado usando alguna de las FRC existentes (reglas,
redes semánticas, frames) o requiere alguna combinación de estos esquemas?
- ¿Cuál es el esquema de razonamiento más adecuado para que la MI procese el conocimiento
y los datos?.
- ¿La dirección de la búsqueda debe ser forward o backward?.
- ¿La complejidad del problema obliga a usar una agenda?.
- ¿Cómo se manipulará el conocimiento o los datos inexactos?.
- ¿Se deben presentar todas las soluciones o sólo la mejor?.
14
- ¿Cuán detalladas deben ser las explicaciones?.
- ¿Debe mantenerse la base de casos de prueba?.
- ¿Debe poderse seguir (traza o debug) la ejecución?.
- ¿Cuán detallado debe ser el editor de conocimiento?.
- ¿Cuáles características debe tener la interfaz?.
- ¿Debe la BC ser automáticamente probada?.

Generalmente, hay dos métodos para desarrollar SBC:


a) Usando un shell o
b) Desarrollando un sistema desde cero.
El shell es un paquete para desarrollar una BC y posiblemente una interfaz usuario especializada.
Ellos se clasifican de acuerdo a la FRC que usan.
Usualmente se comienza el trabajo con un shell y se termina con una programación propia del
sistema.

7.3 Categorías de aplicación de los SBC


a) Interpretación: Desde datos sensoriales inferir la descripción de situaciones.
b) Producción: Inferir consecuencias de situaciones dadas.
c) Diagnóstico: A partir de observaciones inferir el mal funcionamiento de un sistema.
d) Diseño: Configurar objetos bajo instrucciones.
e) Planificación: Diseñar acciones.
f) Monitoreo: Comparar observaciones con resultados esperados.
g) Instrucción: Diagnosticar, evaluar y corregir el comportamiento del estudiante.
h) Control: Gobernar el comportamiento de sistemas completos.

Tipos de Sistemas Basados en el Conocimiento (SBC)

Forma de Método de solución Fuentes de


Nombre Representación del Explicación del Problema (MSP) Conocimiento
Conocimiento
(FRC)
Sistemas basados Reglas de Reglas Usualmente Expertos,
en reglas (SBR) producción activas búsqueda primero publicaciones,
en profundidad ejemplos
con dirección
backward o
forward
Sistemas basados Frames Herencia y Expertos,
en frames (SBF) procedimientos publicaciones,
adjuntos ejemplos
Sistemas basados Casos Casos Razonamiento basado Ejemplos
en casos (SBCasos) semejantes en casos (búsqueda
por semejanza y
adaptación de las
soluciones)
Sistemas basados Probabilidades o Valores de Teorema de Bayes y Ejemplos
en probabilidades frecuencias probabilidades otras técnicas de
(SBP) condicionales inferencia estadística
Redes expertas Pesos y alguna otra Según el Cálculo de niveles de Ejemplos
15
FRC modelo activación de las
simbólico neuronas
Sistemas basados Modelo del artefacto Razonamiento basado Esquemas
en modelos en modelos estructurales y
funcionales del
artefacto

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)

La dirección forward es apropiada cuando:


 Hay pocos datos de entrada ó
 La cantidad de conclusiones posibles es grande.
Entre los campos de aplicación para esta dirección de búsqueda están monitoreo y diagnóstico en
sistemas de control en tiempo real, diseño y planificación.
La dirección backward es apropiada cuando:
 Hay pocas conclusiones posibles ó
 Los valores de entrada no son adquiridos automáticamente.
Los problemas de diagnóstico y clasificación son frecuentemente resueltos con esta dirección de
búsqueda.

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

También podría gustarte