Inteligencia Artificial

Download Report

Transcript Inteligencia Artificial

Inteligencia Artificial
Representación del conocimiento
Primavera 2009
profesor: Luigi Ceccaroni
Conocimiento y razonamiento
• Las personas conocen cosas y realizan
razonamientos de forma automática.
• ¿Y los agentes artificiales?
• Conocimiento y razonamiento en forma de
estructuras de datos y algoritmos.
• Para que el conocimiento sea accesible
para los ordenadores, se necesitan
sistemas basados en el conocimiento
(SBCs).
2
Conocimiento y razonamiento
• En los SBCs se usan lenguajes
declarativos:
– Expresiones más cercanas a los leguajes
humanos
• Los SBCs expresan el conocimiento en
una forma que tanto los humanos como
los ordenadores puedan entender.
• Esta parte de la asignatura analiza cómo
expresar el conocimiento sobre el mundo
3
real en una forma computacional.
Logic, ontology and
computation
• Knowledge representation is an
interdisciplinary subject that applies
theories and techniques from three fields:
– Logic provides the formal structure and
rules of inference.
– Ontology defines the kinds of things that
exist in the application domain.
– Computation supports the applications that
distinguish knowledge representation from
pure philosophy.
4
Inferencia en lógica
• Se quieren conseguir algoritmos que
puedan responder a preguntas
expresadas en forma lógica.
• Tres grandes familias de algoritmos de
inferencia:
– encadenamiento hacia delante y sus
aplicaciones en los sistemas de producción
– encadenamiento hacia atrás y los sistemas
de programación lógica
– sistemas de demostración de teoremas
basados en la resolución
5
Sistemas de producción
• La representación mediante formalismos
lógicos es declarativa pero puede
representar procedimientos.
• Se describen cuales son los pasos para
resolver un problema como una cadena
de deducciones.
• La representación se basa en dos
elementos:
– hechos: proposiciones o predicados
– reglas: formulas condicionales
Sistemas de producción
• Un problema queda definido por:
– Base de hechos: que describen el problema
concreto.
– Base de reglas: que describen los
mecanismos de razonamiento que permiten
resolver problemas.
– Motor de inferencia: que ejecuta las reglas y
obtiene una cadena de razonamiento que
soluciona el problema.
Hechos: terminología
• Base de hechos (BH):
– Memoria de trabajo
– Memoria a corto plazo
– Aserciones
• Ejemplos:
– x es un gato
– x es un animal doméstico
Reglas: terminología
Si
– condiciones
– antecedentes
– premisas
entonces
- acciones
- consecuentes
- conclusiones
• Base de reglas:
– Base de conocimiento (BC)
– Memoria a largo plazo
– Implicaciones
• Ejemplo: Si x es un gato entonces x es
un animal doméstico
Motor de inferencia:
terminología
• El motor de inferencia o mecanismo de control
está compuesto de dos elementos:
– Interprete de reglas o mecanismo de inferencia
• Mecanismo de razonamiento que determina qué reglas de la
BC se pueden aplicar para resolver el problema, y las aplica
– Estrategia de control o estrategia de resolución de
conflictos
• Función del motor de inferencia:
– Ejecutar acciones para resolver el problema
(objetivo) a partir de un conjunto inicial de hechos y
eventualmente a través de una interacción con el
usuario
– La ejecución puede llevar a la deducción de nuevos
hechos.
Motor de inferencia
• Fases del ciclo básico:
1. Detección (filtro):
•
Interprete de reglas: Obtención, desde la BC,
del conjunto de reglas aplicables a una situación
determinada (estado) de la BH
–
formación del conjunto de conflictos
2. Selección:
•
Reglas pertinentes
¿Qué regla?
Estrategia de control: Resolución de conflictos
–
selección de la regla a aplicar
Motor de inferencia
• Fases del ciclo básico:
3. Aplicación
•
Aplicación de la regla sobre una instanciación de
les variables: modificación de la memoria de
trabajo
4. Vuelta al punto 1, o parada si el problema
está resuelto
•
Si no se ha encontrado una solución y no hay
reglas aplicables: fracaso.
1. Detección
• Construcción del conjunto de reglas
aplicables
• El intérprete de reglas realiza los cálculos
necesarios para obtener las
instanciaciones que son posibles en cada
estado de resolución del problema
(comparación o matching).
• Una regla puede instanciarse más de
una vez, caso de existir variables que lo
permitan.
2. Selección
• Las reglas son o no aplicadas
dependiendo de la estrategia de control:
– estrategia fija
– estrategia dinámica prefijada
– estrategia guiada por meta-reglas
• Selección de la “mejor” instanciación
• Posible combinación de criterios
2. Selección
Ejemplos de estrategia de control:
–
–
–
–
–
1ª regla por orden en la base de conocimiento
la regla más/menos utilizada
la regla más específica (con más literales) / más general
la regla que tenga el grado de certeza más alto
la instanciación que satisfaga los hechos:
• más prioritarios
• más antiguos (instanciación más antigua)
• más nuevos (instanciación más reciente)
– aplicación de todas las reglas (sólo si se quieren todas las
soluciones posibles)
– la regla usada más recientemente
– meta-reglas, que indican dinámicamente como seleccionar las
reglas a aplicar
3. Aplicación
• Ejecución de la regla ⇒
– Modificación de la base de hechos (en el razonamiento hacia
delante)
– Nuevos cálculos, nuevas acciones, preguntas al usuario
– Nuevos sub-objetivos (en el razonamiento hacia atrás)
• Propagación de las instanciaciones
• Propagación del grado de certeza
• El proceso de deducción acaba cuando:
– se encuentra la conclusión (el objetivo) buscado ⇒ éxito
– no queda ninguna regla aplicable ⇒ éxito? / fracaso?
Tipos de razonamiento
• Deductivo, progresivo, encadenamiento
hacia delante, dirigido por hechos
– evidencias, síntomas, datos ⇒ conclusiones
• Inductivo, regresivo, encadenamiento
hacia atrás, dirigido por objetivos
– conclusiones ⇒ datos, evidencias, síntomas
• Mixto, encadenamiento híbrido
Encadenamiento hacia delante
• Basado en modus ponens: A, A⇒B |- B
• La base de hechos (BH) se inicializa con los
hechos conocidos inicialmente.
• Se obtienen las consecuencias derivables de la
BH:
– se comparan los hechos de la BH con la parte
izquierda de las reglas; se seleccionan las reglas
aplicables: las que tienen antecedentes conocidos
(que están en la BH);
– las nuevas conclusiones de las reglas aplicadas se
añaden a la BH (hay que decidir cómo);
– se itera hasta encontrar una condición de finalización.
Encadenamiento hacia delante
• Problemas:
– No focaliza en el objetivo
– Explosión combinatoria
• Ventajas:
– Deducción intuitiva
– Facilita la formalización del conocimiento al
hacer un uso natural del mismo
• Ejemplo de lenguaje: CLIPS
Encadenamiento hacia atrás
• Basado en el método inductivo:
– guiado por un objetivo que es la conclusión
que se trata de validar reconstruyendo la
cadena de razonamiento en orden inverso.
• Cada paso implica nuevos sub-objetivos:
hipótesis que han de validarse.
Encadenamiento hacia atrás
• Funcionamiento:
– se inicializa la BH con un conjunto inicial de
hechos;
– se inicializa el conjunto de hipótesis (CH) con los
objetivos a verificar;
– mientras existan hipótesis a validar en CH se
escoge una de ellas y se valida:
• se comparan los hechos de la BH y la parte derecha de
las reglas con las hipótesis;
• si una hipótesis está en BH eliminarla de CH;
• si no: buscar reglas que tengan como conclusión la
hipótesis; seleccionar una y añadir las premisas a CH.
Encadenamiento hacia atrás
• El encadenamiento hacia atrás es un tipo de
razonamiento dirigido por el objetivo.
• Sólo se considera lo necesario para la
resolución del problema.
• El proceso de resolución consiste en la
exploración de un árbol.
• Ejemplo de lenguaje: Prolog
– W. F. Clocksin y C. S. Mellish . Programming in
Prolog: Using the ISO Standard. Springer, 2003
(primera edición de 1981).
Prolog: lenguaje de
programación lógica
• Programa Prolog:
–
–
–
–
conjunto de aserciones lógicas
cada aserción es una cláusula de Horn
proceso de comparación: unificación
el orden de las aserciones (reglas) es significativo
• Ejemplo
– gato (bufa).
– animaldomestico (X) :- gato (X).
– animaldomestico (X) :- pequeño (X), conplumas (X).
• p → q ⇔ q :- p
• Consultas: ?- predicado.
• La negación se representa con la falta de la aserción
correspondiente: asunción de mundo cerrado.
Cláusula de Horn
•De Wikipedia:
Las cláusulas de Horn (instrucciones ejecutables de PROLOG) tienen el siguiente
aspecto:
hija (*A, *B) :- mujer (*A), padre (*B, *A). que podría leerse así: "A es hija de B si A es
mujer y B es padre de A".
Obsérvese que, en PROLOG, el símbolo :- separa la conclusión de las condiciones. En
PROLOG, las variables se escriben comenzando con un asterisco. Todas las
condiciones deben cumplirse simultáneamente para que la conclusión sea válida. Por
tanto, la coma que separa las distintas condiciones es equivalente a la conjunción
copulativa (en algunas versiones de PROLOG se sustituye la coma por el símbolo &). La
disyunción, en cambio, no se representa mediante símbolos especiales, sino definiendo
reglas nuevas, como la siguiente:
hija (*A, *B) :- mujer (*A), madre (*B, *A). que podría leerse así: "A es hija de B si A es
mujer y B es madre de A".
Cláusulas con como mucho un literal positivo.
Encadenamiento híbrido
• Partes de la cadena de razonamiento que
conduce de los hechos a los objetivos se
construyen deductivamente y otras partes
inductivamente: exploración bi-direccional
• El cambio de estrategia suele llevarse a cabo
a través de meta-reglas. Ejemplos:
– función del número de estados iniciales y finales
– función de la dirección de mayor ramificación
– función de la necesidad de justificar el proceso de
razonamiento
• Se evita la explosión combinatoria del
razonamiento deductivo.
Factores para decidir el sentido
del encadenamiento
• Número de estados iniciales y finales
– Preferible del conjunto más pequeño hacia el más
grande
• Factor de ramificación
– Preferible en el sentido del factor más pequeño
• Necesidad de justificar el proceso de
razonamiento
– Preferible el sentido de razonamiento habitual del
usuario
Comparación (matching)
• Es más complicada en el razonamiento hacia
delante.
– Si las condiciones de una regla se cumplen, una vez
aplicada se puede entrar en un ciclo.
• Existen mecanismos eficientes de comparación
y selección que evitan repasar todas las reglas
de la BC:
– OPS-5 usa el algoritmo RETE
– Prolog indexa las cláusulas según los predicados
Bibliografía complementaria
• J. F. Sowa. Knowledge Representation.
Brooks/Cole, 2000.
• W. F. Clocksin y C. S. Mellish.
Programming in Prolog: Using the ISO
Standard. Springer, 2003 (primera edición
de 1981).
Hacia las ontologías
• El conocimiento ha de permitir guiar a los
mecanismos de IA para obtener una
solución más eficiente:
– ¿Cómo escoger el formalismo que nos
permita hacer una traducción fácil del
mundo real a la representación?
– ¿Cómo ha de ser esa representación para
que pueda ser utilizada de forma eficiente?
29
Información y conocimiento
• Llamaremos información al conjunto de datos básicos, sin
interpretar, que se usan como entrada del sistema:
– los datos numéricos que aparecen en una analítica de sangre
– los datos de los sensores de una planta química
• Llamaremos conocimiento al conjunto de datos que
modelan de forma estructurada la experiencia que se tiene
sobre un cierto dominio o que surgen de interpretar los datos
básicos:
– la interpretación de los valores de la analítica de sangre o de los
sensores de la planta química para decir si son normales, altos o bajos,
preocupantes, peligrosos...
– el conjunto de estructuras de datos y métodos para diagnosticar a
pacientes a partir de la interpretación del análisis de sangre, o para
ayudar en la toma de decisiones de qué hacer en la planta química
30
Información y conocimiento
• Los sistemas de IA necesitan diferentes tipos de
conocimiento que no suelen estar disponibles en bases
de datos y otras fuentes clásicas de información:
– Conocimiento sobre los objetos en un entorno y
posibles relaciones entre ellos
– Conocimiento difícil de representar de manera
sencilla, como intencionalidad, causalidad,
objetivos, información temporal, conocimiento que
para los humanos es de sentido común
• Intuitivamente podemos decir que:
Conocimiento = información + interpretación
31
¿Qué es una representación del
conocimiento (RC)?
Representación del conocimiento o esquema de
representación, Davis et al. (MIT), 1993:
1. Un substituto de lo que existe en el mundo real o imaginario.
2. Un conjunto de cometidos ontológicos: ¿En qué términos hay
que pensar acerca del mundo?
3. Una teoría fragmentaria del razonamiento inteligente: ¿Qué
es la inteligencia? ¿Qué se puede inferir de lo que se conoce?
¿Qué se debería inferir de lo que se conoce? (¿Qué inferencias
son recomendadas?)
4. Un medio para la computación eficiente: ¿Cómo se debería
organizar la información para facilitar la manera de pensar y
razonar?
5. Un medio de expresión humana: Un lenguaje que las
personas usan para hablar entre ellas y con las máquinas.
[1] Es un substituto
• Es un substituto de los objetos del mundo
real o imaginario.
• Las operaciones sobre la RC substituyen
acciones en el mundo.
• El mismo razonamiento es un substituto
de la acción.
• Inversamente, las acciones pueden
sustituir el razonamiento.
Preguntas
• ¿Un substituto de qué? → semántica
• ¿Hasta que punto exacto como
substituto? → fidelidad
– Más fidelidad no es automáticamente mejor
– La fidelidad perfecta es imposible
• Las mentiras son inevitables
• Las inferencias incorrectas son inevitables
Terminología y perspectiva
• Inferencia = obtención de nuevas
expresiones desde expresiones previas
• Tecnologías de representación del
conocimiento (TRCs):
– Lógica
– Reglas
– Marcos
– Redes semánticas
– Ontologías
–…
[2] Conjunto de cometidos
ontológicos (COs)
• Los substitutos son inevitablemente imperfectos → La
selección de una RC inevitablemente hace un CO
– Determina lo que se puede conocer, enfocando una parte del
mundo y desenfocando las otras
• El cometido ocurre incluso al nivel de las técnicas de
representación del conocimiento (TRCs)
– Diagnosis en forma de reglas vs. marcos
• “An ontological commitment is an agreement to use a
vocabulary (i.e., ask queries and make assertions) in a
way that is consistent (but not complete) with respect to
the theory specified by an ontology. We build agents that
commit to ontologies. We design ontologies so we can
share knowledge with and among these agents.”
–
Tom Gruber <[email protected]>
[3] Fragmento de una teoría de
razonamiento inteligente
• ¿Cuáles son todas las inferencias que
está permitido hacer?
• ¿ Cuáles inferencias están especialmente
impulsadas?
¿Cuáles son las inferencias que
está permitido hacer?
• Ejemplos
– Lógica formal clásica: inferencias bien
fundamentadas
– Reglas: inferencias plausibles
– Ontologías: inferencia con valores por
defecto
• Estilos de respuestas
– Precisas, formuladas en términos de un
lenguaje formal
– Imprecisas, no basadas en un lenguaje
formal
• Utilidad del pluralismo
¿Qué inferencias están
especialmente impulsadas?
• Ejemplos
– Ontologías: propagación de valores, enlaces
– Reglas: encadenamiento, asociaciones
– Lógica: proposiciones subordinadas (lemas),
grafos de conexión
• Explosión combinatoria
– Necesidad de guía sobre lo que se debería
hacer, no sólo lo que se puede hacer
[4] Medio para la computación
pragmáticamente eficiente
• Razonar con una RC significa hacer
algún tipo de computación.
• ¿Cómo se puede organizar la información
para facilitar el razonamiento?
• Ejemplos:
– Marcos, ontologías: triggers, jerarquías
taxonómicas
– Lógica: theorem provers de grafos de
conexión
[5] Medio de expresión y
comunicación
• ¿Cómo se expresan las personas acerca del
mundo?
• ¿Cómo se comunican las personas entre ellas y
con el sistema de razonamiento?
• RC como medio de expresión:
– ¿Cómo es de general, preciso? ¿Proporciona una
expresividad adecuada?
• RC como medio de comunicación:
– ¿Cómo es de transparente? ¿Los humanos pueden
entender lo que se está diciendo?
– ¿Se pueden generar las expresiones que interesan?
¿Qué debería ser una RC?
• Los cinco roles tienen importancia.
• Los roles caracterizan el núcleo de una
representación.
• Hay que tenerlos en cuenta cuando se
crea una RC.
• Cada RC es sólo una de muchas posibles
aproximaciones a la realidad.
¿Cómo debería ser una RC?
• Pragmática en su visión de validez y
eficiencia
• Pluralista en la definición de las
inferencias posibles
• Efectiva en recomendar inferencias y
organizar la información
• Efectiva como medio de comunicación
• Capaz de capturar la riqueza del mundo
natural
RC desde el punto de vista
informático
• Estructuras de datos: representan el
dominio y el problema de manera estática.
• Procedimientos: manipulan las
estructuras de manera dinámica:
– Operaciones: procedimientos para crear,
modificar o destruir las representaciones o
sus elementos.
– Predicados: procedimientos para acceder a
campos concretos de información.
Tipos de conocimiento
• Procedimental: funciones, reglas de producción,
lenguajes de programación convencionales
• Declarativo (o no procedimental): lógica
– Pero la lógica puede representar el mismo tipo
de procedimientos de un lenguaje de
programación. (¡!)
– Diferencia primaria: la lógica requiere relaciones
o predicados explícitos para expresar la
secuencia, mientras que los lenguajes
procedimentales dependen de la secuencia
implícita en la estructura del programa.
45
Conocimiento declarativo
• Conocimiento relacional simple
– Conjunto de relaciones del mismo tipo que las de una
base de datos
• Conocimiento heredable
– Estructuración jerárquica
– Relaciones es-un (clase-clase), instancia-de (claseinstancia)
– Herencia de propiedades y valores
• Herencia simple y múltiple
• Valores por defecto
• Conocimiento inferible
– Descripción vía lógica tradicional
– Ejemplo de uso: en la resolución
Nivel de granularidad
• ¿A qué nivel de detalle se tiene que representar
el mundo?
• Primitivas
– Ej.: relación de parentesco
– Primitivas: madre, padre, hijo, hija, hermano,
hermana
– “Bruno es abuelo de Kora”
– “Iain es primo de Ricardo”
• Si la representación es de muy bajo nivel, las
inferencias son muy simples, pero ocupan
mucho espacio.
El frame problem
Nihil omnino fit sine aliqua ratione
Nothing at all can happen without some
reason
• Ejemplo:
– El semáforo se pone verde cada minuto par.
– El semáforo se pone rojo cada minuto impar.
• Persistencia
– Un programa puede determinar qué pasa en
los puntos de tiempo discretos en que el
semáforo cambia de color.
– Pero se necesita más información para
determinar qué pasa en los intervalos entre
cambios de color.
El frame problem
• La declaración en castellano que “el
semáforo se queda en verde” o “en rojo”
no es necesariamente capturada por los
axiomas de un programa.
• Se necesitan dos axiomas de
persistencia adicionales:
– Son una manera engorrosa de decir algo que
debería ser obvio.
– Desafortunadamente, los ordenadores no
reconocen lo obvio, a menos que no se les
diga explícitamente cómo.
– Estos axiomas son la solución de un caso
especial del más general frame problem.
El frame problem
• La aproximación general al frame problem
se basa en el principio de razón suficiente
de Leibniz: Nothing at all can happen
without some reason
– Es un axioma de meta-nivel que se usa para
generar uno o más axiomas de nivel más
bajo para cada ejemplo concreto.
• Implica que el color del semáforo debería
quedarse igual a menos que no haya alguna
razón para que cambie.
Historia de la representación
del conocimiento
• Los bloques de construcción primarios
para cualquier esquema de
representación del conocimiento son las
categorías.
• Se considerará la evolución desde redes
semánticas a marcos a ontologías.
• Se considerarán también los mapas
conceptuales.
51
Redes semánticas
• Históricamente, las redes semánticas
proporcionan:
– una ayuda gráfica para visualizar una
base de conocimiento
– algoritmos eficientes para inferir
propiedades de un objeto en base a su
pertenencia a una categoría.
52
Redes semánticas
• Charles S. Peirce (1909) desarrolló los
grafos existenciales como el primer
formalismo de redes semánticas usando
lógica moderna.
• Ross Quillian (1961) inició el trabajo con
las redes semánticas dentro del campo de
la IA.
53
Redes semánticas
• Una red semántica es un grafo donde:
– los nodos representan conceptos
– los arcos (dirigidos) representan relaciones
entre conceptos
• Mecanismos de razonamiento específicos
permiten responder a preguntas sobre la
representación:
– ¿Están relacionados dos conceptos?
– ¿Que relaciona dos conceptos?
– ¿Cuál es el concepto mas cercano que
54
relaciona dos conceptos?
Marcos
• Un artículo influyente de Marvin Minsky (1975)
presentó una nueva versión de las redes
semánticas: los marcos.
• Un marco era una representación de un objeto
o categoría o concepto, con atributos y
relaciones con otros objetos o categorías o
conceptos.
• El artículo fue criticado por ser un conjunto de
ideas recicladas desarrolladas en el campo de
la programación orientada a objetos, como la
herencia y el uso de valores por defecto. 55
Marcos
• A los marcos se asocia normalmente una
parte procedimental.
• Las relaciones y atributos, y no solo las
categorías, tienen una estructura que
permite describir su semántica.
• Ejemplo de marco:
– Arteria
• superclases: Vaso sanguíneo
• pared: Muscular
• forma:
56
Marcos
• Un marco está generalmente dividido en:
– una parte declarativa (atributos o slots)
– una procedimental (métodos o demons)
• La parte procedimental permite obtener más
información o hacer cálculos sobre sus características
o las relaciones que pueda tener con otros marcos.
• La descripción de los atributos también está
estructurada: un atributo puede tener propiedades
(facets).
• En el caso más general se pueden tener taxonomías
de atributos.
57
Marcos
• Las relaciones poseen una descripción
formal que establece su semántica y su
funcionamiento.
• Dividimos las relaciones en dos simples
clases:
– taxonómicas:
• enlace ES-UN (subclase/clase)
• enlace INSTANCIA-DE (instancia/clase)
– no taxonómicas
58
Marcos
• Los atributos poseen un conjunto de propiedades
que permiten establecer su semántica:
– dominio
– rango
– cardinalidad
– valor por defecto
– métodos
– ...
• Permiten definir procedimientos de manera que se
realicen cálculos bajo ciertos eventos (a través de los
métodos).
59
Marcos
• Los métodos pueden ser:
– if-needed (se activan al consultar el atributo);
– if-added (se activan al asignar valor al
atributo);
– if-removed (se activan al borrar el valor del
atributo);
– if- modified (se activan al modificar el valor
del atributo).
• Se puede declarar como el mecanismo de
herencia afecta a los atributos.
60
Marcos: atributos
• Etiqueta
–
–
–
–
–
–
–
–
–
–
nombre:
valor:
dominio: lista de marcos donde puede aparecer
rango (tipo de valores que admite): lista, clase…
cardinalidad máxima:
cardinalidad mínima (si es ≥ 1, el atributo es obligatorio):
valor-por-defecto (a usar si no hay valor):
función para calcular valor:
métodos (funciones con activación condicionada):
condiciones de herencia (atributo + valor): sí/no (por defecto:
relaciones taxonómicas = sí; otras = no)
• Para acceder al valor de un atributo se usa la sintaxis:
<nombre marco>.<nombre atributo> (valor o lista de
61
valores)
Marcos: ejemplo de atributo
• Edad
– nombre: Edad
– valor:
– dominio (lista de marcos donde puede aparecer): Persona
– rango (tipo de valores que admite): entero [0..140]; joven/viejo
– cardinalidad máxima: 1
– cardinalidad mínima (si es ≥ 1, el atributo es obligatorio): 0
– valor-por-defecto (a usar si no hay valor):
– función para calcular valor:
– métodos (funciones con activación condicionada):
– condiciones de herencia (atributo + valor): sí/no (por defecto:
relaciones taxonómicas = sí; otras = no)
• Para acceder al valor del atributo se usa la sintaxis:
62
Persona.edad
Marcos: métodos
• Son acciones o funciones que permiten obtener
información sobre el mismo marco u otros marcos.
• Los métodos pueden invocarse desde marcos
abstractos (clases) o marcos concretos (instancias).
• Pueden ser heredables (se permite invocarlos en los
descendientes) o no heredables (exclusivos del marco
donde están definidos).
• A veces, pueden ser invocados con parámetros.
• Ejemplo de método if-modified:
– Si Deunan.edad tenía valor 28 y se modifica a 32, se
activa un método que cambia el valor del atributo
Deunan.ganas-de-casarse de 1 a 5.
63
Marcos: relaciones
• Permiten conectar los marcos entre sí.
• Se define su semántica mediante un
conjunto de propiedades:
– dominio
– rango
– cardinalidad
– inversa
– transitividad
64
– composición …
Marcos: relaciones
• Se pueden establecer métodos que
tienen efecto ante ciertos eventos:
– if-added: si se establece la relación
entre instancias
– if-removed: si se elimina la relación
entre instancias
• Se puede establecer el comportamiento
de la relación respecto al mecanismo de
herencia (que atributos permite heredar).
65
Marcos: relaciones
• Etiqueta
– nombre:
– dominio: lista de marcos
– rango: lista de marcos
– cardinalidad: 1 o N
– inversa: <nombre> (cardinalidad: 1 o N)
– transitiva: sí/no (por defecto es no)
– compuesta: no / descripción de la composición
– métodos: {if-added / if-removed} <nombre.acción>
– condiciones de herencia: lista de atributos (por
defecto: lista vacía)
66
Marcos: relaciones
• Las acciones asociadas a los métodos no
tienen parámetros.
• La expresión <nombre marco>.<nombre
relación> devuelve el marco (si la
cardinalidad es 1) o la lista de marcos (si
es N) con los que está conectado
<nombre marco> a través de <nombre
relación>.
67
Marcos: relaciones
• Para consultar la cardinalidad se usa la función
card(<nombre marco>.<nombre relación>)
que devuelve un entero.
• Relaciones predefinidas:
– enlace ES-UN (inversa: tiene-por-subclase)
• transitiva
– enlace INSTANCIA-DE (inversa: tiene-porinstancia)
• se puede obtener por composición:
INSTANCIA-DE ⊕ ES-UN
68
Marcos: relaciones
• Funciones booleanas que quedan definidas:
– atributo?(<marco>): cierto si <marco>
posee este atributo.
– relación?(<marco>): cierto si <marco> está
conectado con algún otro marco a través de
la relación indicada por la función.
– relación?(<marco-o>,<marco-d>): cierto si
existe una conexión entre <marco-o> y
<marco-d> etiquetada con la relación
indicada por la función.
69
Marcos: herencia
• La herencia permite obtener en un marco el valor o los
valores de un atributo a través de otro marco con el que esta
relacionado.
• En el caso de las relaciones taxonómicas (caso más
común) la herencia (de atributos y valores) se da por defecto.
• En el resto de las relaciones se ha de establecer de
manera explícita.
• Hay atributos no heredables. Ejemplo:
– tiene-por-instancia
• Dado un marco es posible que la representación permita
heredar un valor a través de múltiples relaciones (herencia
múltiple): hay que establecer criterios (ejemplo: camino
más corto).
70
Herencia simple y múltiple
• La herencia es simple si las relaciones
son taxonómicas en forma de árbol.
• La herencia es múltiple si:
– la taxonomía es un grafo (dirigido acíclico)
– hay otras relaciones (no taxonómicas) que
permiten herencia
• ¡Puede haber conflicto de valores!
(obviamente, sólo si hay herencia de atributo y
valor)
71
Marcos: herencia múltiple
• ¿Cuáles son el
tamaño, el
peso y el color
de Clyde?
• El algoritmo de
distancia
inferencial
permite
establecer cual
es el marco del
que se ha de
heredar.
Herencia: distancia inferencial
1. Buscar el conjunto de marcos que permiten
heredar el valor del atributo → Candidatos
2. Eliminar de la lista Candidatos todo marco
que sea padre de otro de la lista
3. Si el nuevo número de candidatos es:
0 → No se puede heredar el atributo
1 → Ese es el valor que se hereda
N > 1 → Problema de herencia múltiple si la
cardinalidad del atributo no es N
73
Mapas conceptuales (MCs)
• Forma de representación del conocimiento
concebida en el contexto de las ciencias
pedagógicas a finales de la década de los ‘70.
• Fueron propuestos por Novak et al., y definidos
como una técnica que representa,
simultáneamente:
– una estrategia de aprendizaje
– un método para captar lo más significativo de un tema
– un recurso esquemático para representar un conjunto
de significados conceptuales incluidos en una
estructura de proposiciones.
74
Mapas conceptuales (MCs)
• Están compuestos por:
– nodos asociados a conceptos
– enlaces etiquetados por una palabra-enlace,
que definen el tipos de relación que se
establece entre los nodos
– proposiciones formadas por dos o más nodosconceptos relacionados por una palabraenlace.
75
Mapas conceptuales (MCs)
• Los elementos de un MC son distribuidos
gráficamente con los nodos-conceptos
más inclusivos arriba y los más
específicos abajo.
• Los MC son un tipo de red semántica más
flexible y orientada a ser usada e
interpretada por personas.
76
Mapas conceptuales: ejemplo
77
Ontología
• En filosofía, la ontología es una disciplina
que se identifica con la metafísica.
• Ontología: teoría del ser, es decir, el
estudio de todo lo que es: qué es, cómo
es y cómo es posible.
• La ontología se ocupa de la definición
del ser y de establecer las categorías
fundamentales de las cosas a partir del
estudio de sus propiedades, estructuras y
78
sistemas.
Ontologías
• En los años ‘90, en el campo de la IA, se
adoptó el termino “ontología” para los
esquemas de representación del
conocimiento basados en redes
semánticas o marcos:
una especificación formal y explícita de
una conceptualización compartida, que
puede ser leída por un ordenador
(Gruber, 1993; Borst, 1997; Studer et al., 1998; Ceccaroni, 2001)
79
Formalidad
• Las ontologías son (deberían ser) formales:
tienen que ser leíbles por los ordenadores.
• Nivel de formalidad:
– de altamente informal: lenguaje natural
– a rigurosamente formal: términos con
semántica formal y axiomas
• En las ontologías “maduras”, las
descripciones permitidas son sólo las
consistentes con un conjunto de axiomas,
que determinan su uso.
80
Especificación explícita
• Los tipos de los conceptos y las
restricciones sobre su uso están
(deberían estar) definidos
explícitamente.
• Accesibilidad y transparencia:
– documentación de los detalles técnicos
81
Comprensión compartida del
conocimiento
• Las ontologías contienen (deberían
contener) conocimiento consensual,
aceptado por un grupo de personas
expertas lo más amplio posible.
82
Conceptualización
• Las ontologías son un modelo abstracto
de algún dominio de algún mundo posible.
• Compromiso común: hacer el mínimo
número de afirmaciones posible (sólo las
necesarias) sobre el dominio que se está
modelando, dejando a los reutilizadores
de la ontología la libertad de
especializarla e instanciarla tanto como
83
haga falta.
Algunos desafíos actuales de la
IA
•
•
•
•
Comprensión del lenguaje natural
Comprensión de requisitos de software
Comprensión de imágenes y vídeos
Comprensión de procesos, agentes y
servicios
• Comprensión de bases de datos
• Comprensión de la web
84
¿Por qué son útiles las
ontologías?
85
¿Por qué son útiles las
ontologías?
86
¿Por qué son útiles las
ontologías?
87
¿Por qué son útiles las
ontologías?
88
¿Por qué son útiles las
ontologías?
89
¿Por qué son útiles las
ontologías?
90
¿Por qué son útiles las
ontologías?
91
¿Por qué son útiles las
ontologías?
• Modelado y uso compartido del
conocimiento:
– comunicación entre personas/agentes con diferentes
necesidades y puntos de vistas debidos a contextos
diferentes
• marco unificado dentro de una organización para reducir la
confusión conceptual y terminológica
– interoperabilidad entre sistemas a través de
traducciones entre diferentes paradigmas, lenguajes,
herramientas informáticas y métodos de modelado
• ontologías como ínter-lengua
• integración de ontologías
92
¿Por qué son útiles las
ontologías?
• Ingeniería de sistemas:
– re-usabilidad
• Ontologías altamente configurables y
bibliotecas de ontologías facilitan la reusabilidad entre diferentes sistemas de
software.
– fiabilidad
• Las ontologías formales permiten la
comprobación de consistencia, dando
93
lugar a sistemas más fiables.
Amplia gama de aplicaciones
•
•
•
•
•
•
•
Gestión del conocimiento
Generación de lenguaje natural
Modelado de los procesos de empresa
SBCs
Navegadores de Internet
Interoperabilidad entre sistemas
Ingeniería de sistemas: especificación,
fiabilidad, reutilización
94
Ontologías: ejemplo
• Conceptos,
organizados
en
taxonomías,
enlazados
por
relaciones,
en acuerdo
con los
axiomas.
95
Ingenieros de ontologías
• Los ingenieros del conocimiento
construyen ontologías basadas en
conocimiento consensual sobre un
dominio.
• Permiten a un grupo de agentes
determinado (usuarios de la ontología)
compartir y reutilizar ese conocimiento
dentro del área de trabajo seleccionada
(el dominio).
96
Metodologías
• Existen y están disponibles varias
metodologías para la construcción de
ontologías:
– Mike Uschold
– Michael Grüninger
– Asunción Gómez-Pérez
– John Sowa
• Enlace de referencia general:
– http://www.lsi.upc.edu/~luigi/ontologies.htm
97
Construcción cooperativa
• De facto estándar:
– Protégé (Stanford University):
http://protege.stanford.edu
• versión 4.0 beta (basada en OWL)
• versión 3.4 (basada en marcos)
98
Protégé
99
Protégé
100
Implementación
• Uschold: directamente en lenguajes
específicos para ontologías (por ejemplo,
Ontolingua, LOOM, KIF)
• Gómez-Pérez: a nivel de conocimiento
del dominio, a través de un shell que
traduce a Ontolingua
• Protégé: entorno visual con entrada y
salida en OWL
101
Ejemplo: ontología para gestión
de aguas residuales
• Metodología utilizada
– Determinación de los requerimientos:
• Utilidad (¿necesidad?)
• Finalidad
– Adquisición del conocimiento
– Conceptualización
– Lista preliminar de términos principales
– Definición del entorno de desarrollo
– Reutilización de otras ontologías
– Formalización
102
Situación inicial
• Presencia de expertos en varios dominios:
– IA
– Ingeniería química
– Microbiología
– Informática
• Uso de diferentes vocabularios
• No siempre hay una terminología común.
• No hay reglas sobre cómo usar los
términos, ni los sinónimos.
103
Objetivos de la ontología
• Obtener una terminología unificada (pero
multilingüe), completa y coherente del
dominio de las aguas residuales
• Ayudar en la diagnosis de situaciones
problemáticas relacionadas con aguas
residuales
• Ayudar en la gestión de plantas de
tratamiento de aguas residuales
104
Adquisición del conocimiento
• Reutilización de conocimiento existente
codificado de manera específica para el
dominio en cuestión
• Entrevistas con expertos
• Análisis de textos
105
Conceptualización
• Criterios seguidos:
– modelo fácilmente comprensible
– modelo que refleje los conocimientos de los
expertos
– conocimiento fácilmente ampliable
– fácil integración con otras ontologías
– posibilidad de elegir un subconjunto de los
conocimientos y utilizarlos en otras
aplicaciones o ontologías
106
Términos y jerarquía
• Actuator
• Body-Of-Water
• Descriptor
– Descriptor-Off-Line
• Descriptor-Qualitative
– Appearance-Floc
– Appearance-Surface-Clarifier
• Descriptor-Quantitative
– BOD
– Chlorine Cod
– Descriptor-On-Line
• Water-Flow
107
Entorno de desarrollo
• Jerarquía de términos: Ontolingua (era el
año 2000)
• Axiomas: antes en Lisp, luego en KIF
(asociado a Ontolingua)
• Alternativa: Protégé + OWL
108
Reutilización
• The ontology is mainly built from scratch.
• Two other ontology are partially reused:
– Frame ontology: it’s Ontolingua metaontology
– Cyc ontology (Lenat and Guha, 1990):
manual encoding of millions of encyclopedic
facts (Ontolingua version)
109
Re-engineering
• Frame-ontology: as is
• Cyc: little re-engineering to adapt the
concepts to the specific domain
• No ontology integration (and consistency
checking) needed.
110
Términos: detalles
• The ontology use the English language to describe the world
at the highest level.
• Nevertheless the documentation of each term contains the
translation of the term name to Spanish, Catalan and Italian.
Documentation: Class Descriptor-Qualitative
n
uSynonyms:
FDato
cualitativo (esp)
FDada qualitativa (cat)
FDato qualitativo (ita)
Qualitative descriptors refer to microscopic observations (e.g.: activatedsludge microbes presence and diversity) and visual information (e.g.:
presence of foam in the aeration tank or in the secondary clarifier, water odor,
111
biomass color).
Formalización
• The Ontolingua Ontology Server
automatically translates to Lisp.
• The translation has been checked and
evaluated.
112
Conclusiones
• Success in unifying terminology and as a
way of communication between AI
researchers and chemical engineers.
• Evaluation as a tool of support to
diagnosis.
• Partial success in using the ontology for
reasoning.
113
Vale, ¿y ahora qué?
“Desarrollo de Ontologías - 101: Guía Para
Crear Tu Primera Ontología”
Noy & McGuinness
(2000, 2005)
[http://protege.stanford.edu/publications/ontology_
development/ontology101-es.pdf]
114