Title: Inteligencia Artificial Representaci
1Inteligencia Artificial Representación del
conocimiento
- Primavera 2008
- profesor Luigi Ceccaroni
2Historia
- Las categorías son los bloques de construcción
primarios para cualquier esquema de
representación del conocimiento. - 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. - Charles S. Peirce (1909) desarrolló los grafos
existenciales como el primer formalismo de redes
semánticas usando lógica moderna.
3Historia
- Ross Quillian (1961) inició el trabajo con las
redes semánticas dentro del campo de la IA. - 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.
4Historia
- 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 ontología es 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).
5Redes 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 relaciona
dos conceptos?
6Marcos
- 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
7Marcos
- 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.
8Marcos
- 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
9Marcos
- 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).
10Marcos
- 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.
10
11Marcos 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 - ltnombre marcogt.ltnombre atributogt (valor o lista
de valores)
12Marcos ejemplo de atributo
- owledad
- nombre Edad
- valor
- dominio (lista de marcos donde puede aparecer)
clase 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 - Persona.edad
12
13Marcos 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.
13
14Marcos relaciones
- Permiten conectar los marcos entre sí.
- Se define su semántica mediante un conjunto de
propiedades - dominio
- rango
- cardinalidad
- inversa
- transitividad
- composición
- 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).
14
15Marcos relaciones
- Etiqueta
- nombre
- dominio lista de marcos
- rango lista de marcos
- cardinalidad 1 o N
- inversa ltnombregt (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 ltnombre.accióngt
- condiciones de herencia lista de atributos (por
defecto lista vacía) - Las acciones asociadas a los métodos no tienen
parámetros. - La expresión ltnombre marcogt.ltnombre relacióngt
devuelve el marco (si la cardinalidad es 1) o la
lista de marcos (si es N) con los que está
conectado ltnombre marcogt a través de ltnombre
relacióngt.
15
16Marcos relaciones
- Para consultar la cardinalidad se usa la función
card(ltnombre marcogt.ltnombre relacióngt) que
devuelve un entero. - Relaciones predefinidas
- enlace ES-UN (inversa tiene-por-subclase)
- transitiva
- enlace INSTANCIA-DE (inversa tiene-por-instancia)
- se puede obtener por composición INSTANCIA-DE ?
ES-UN - Funciones bulianas que quedan definidas
- atributo?(ltmarcogt) cierto si ltmarcogt posee este
atributo. - relación?(ltmarcogt) cierto si ltmarcogt está
conectado con algún otro marco a través de la
relación indicada por la función. - relación?(ltmarco-ogt,ltmarco-dgt) cierto si existe
una conexión entre ltmarco-ogt y ltmarco-dgt
etiquetada con la relación indicada por la
función.
16
17Marcos 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).
17
18N-herencia
- Prioridad a los facets de los atributos
- Consultar el facet valor del atributo en el marco
considerado - Si no tiene valor, subir un nivel en la taxonomía
i consultar valor - Repetir la operación hasta encontrar valor en
algún marco superior o bien llegar a la cabeza de
la jerarquía - En este último caso, volver al marco considerado
y considerar valor-por-defecto del atributo y
repetir la búsqueda hacia arriba - Si tampoco hay éxito, consultar
función-para-calcular-valor del atributo
jerarquía de marcos
18
V
VPD
FCV
19Z-herencia
- Prioridad a los marcos más cercanos
- Consultar el facet valor del atributo en el marco
considerado - Si no tiene valor, consultar valor-por-defecto
- Si tampoco tiene, consultar función-para-calcular-
valor - Agotadas las posibilidades del marco considerado,
se sube en la jerarquía y se hace lo mismo con el
marco padre
abuelo
padre
marco
19
V
FCV
VPD
20Herencia 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)
20
21Marcos herencia múltiple
- Gertrudis vuela?
- Si considero el camino más corto no.
- Pero, si Gallina está sub-clasificado?
- El algoritmo de distancia inferencial permite
establecer cual es el marco del que se ha de
heredar.
21
22Herencia distancia inferencial
- Buscar el conjunto de marcos que permiten heredar
el valor del atributo ? Candidatos - Eliminar de la lista Candidatos todo marco que
sea padre de otro de la lista - Si el nuevo número de candidatos es
- 0 ? No se puede heredar el atributo
- 1 ? Ese es el valor que se hereda
- N gt 1 ? Problema de herencia múltiple si la
cardinalidad del atributo no es N
22
23Mapas conceptuales (MCs)
- Los MCs son una forma de representación del
conocimiento concebida en el contexto de las
ciencias pedagógicas a finales de la década del
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 y un
recurso esquemático para representar un conjunto
de significados conceptuales incluidos en una
estructura de proposiciones.
24Mapas conceptuales (MCs)
- Están compuestos por
- nodos asociados a conceptos
- relacionados mediante enlaces etiquetados por una
palabra-enlace, definiendo el tipos de relación
que se establece entre ellos - proposiciones formadas por dos o más
nodos-conceptos relacionados por una
palabra-enlace.
25Mapas conceptuales (MCs)
- Los elementos de un MC son distribuidos
gráficamente y siempre está presente un
nodo-concepto como el más inclusivo
(concepto-principal). - Los MC son un tipo de red semántica más flexible
y orientada a ser usada e interpretada por
personas.
26Mapas conceptuales ejemplo
27Ontologías
- Una ontología en IA se define como una
- formal explicit representation of a shared
understanding of the important concepts in some
domain of interest - En filosofía el término ontología se refiere a un
concepto más delicado, aunque relacionado - the study of being as such
27
28Formalidad
- 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.
28
29Especificació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
29
30Comprensión compartida del conocimiento
- Las ontologías contienen (deberían contener)
conocimiento consensual, aceptado por un grupo de
personas lo más amplio posible.
30
31Conceptualizació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 haga
falta.
31
32Por 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
33Por qué son útiles las ontologías?
- Ingeniería de sistemas
- re-usabilidad
- Ontologías altamente configurables y bibliotecas
de ontologías facilitan la re-usabilidad entre
diferentes sistemas de software. - fiabilidad
- Las ontologías formales permiten la comprobación
de consistencia, dando lugar a sistemas más
fiables.
33
34Ontologías ejemplo
- Conceptos, organizados en taxonomías, enlazados
por relaciones, en acuerdo con los axiomas. - Axiomas, posiblemente muy generales, p.e. Árbol
no es Árbol de navidad.
34
35Ingenieros 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).
35
36Metodologí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
36
37Construcción cooperativa
- Herramientas online
- Ontolingua Ontology Editor (Stanford University)
http//www-ksl-svc.stanford.edu5915/servicefram
e-editor - Ontosaurus Web Browser (University of Southern
California) http//www.isi.edu/isd/ontosaurus.htm
l - WebOnto (The Open University) http//riverside.op
en.ac.uk
37
38Construcción cooperativa
- Herramientas offline
- OilEd (University of Manchester)
http//oiled.man.ac.uk/ - OntoStudio (Ontoprise) http//www.ontoprise.de/co
ntent/index_eng.html - Protégé (Stanford University) http//protege.stan
ford.edu/ - versión 4.0 alpha (basada en OWL)
38
39Protégé
39
40Protégé
40
41Implementació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
41
42Amplia 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
42
43Ejemplo 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
- Entorno de desarrollo
- Reutilización de otras ontologías
- Formalización
43
44Situació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.
44
45Objetivos 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
45
46Adquisició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
46
47Conceptualización
- Criteria followed
- easily understandable model
- reflection of expert knowledge
- easily extendable knowledge
- easily integration with other existing ontologies
- possibility to choose a subset of the knowledge
and to use it in other ontologies or applications
47
48Té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
48
49Entorno de desarrollo
- Term hierarchy Ontolingua because it was a
quasi-standard - Axioms first in Lisp, then in KIF (associated to
Ontolingua) - Alternative Protégé OWL
49
50Representaciones
- Classification tree of concepts a taxonomy of
concepts - Glossary of terms including concepts,
individuals, attributes and axioms - Various representations are predefined and
available in the Ontolingua Ontology Server
50
51Reutilización
- The ontology is mainly built from scratch.
- Two other ontology are partially reused
- Frame ontology its Ontolingua meta-ontology
- Cyc ontology (Lenat and Guha, 1990) manual
encoding of millions of encyclopedic facts
(Ontolingua version)
51
52Re-engineering
- Frame-ontology as is
- Cyc little re-engineering to adapt the concepts
to the specific domain - No ontology integration (and consistency
checking) needed.
52
53Arquitectura de la información
Cyc-ontology (Ontolingua version)
Wastewater-ontology
54Té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.
54
55Formalización
- The Ontolingua Ontology Server automatically
translates to Lisp. - The translation has been checked and evaluated.
55
56Conclusiones
- Success in unifying terminology and as a way of
communication between AI researchers and chemical
engineers. - Evaluation as a tool of support to diagnosis.
56