Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Inteligencia Artificial
Universidad de Talca, II Semestre 2005
Jorge Pérez R.
1
Redes Semánticas
Las redes semánticas son estructuras utilizadas para la re-
presentación de conocimiento en Inteligencia Artificial.
Son especialmente útiles para representar conocimiento de
taxonomı́as.
Una red semántica es un grafo dirigido en el cual los nodos
corresponden a:
• Constantes de relación tales como clases (como en los
lenguaje orientado a objetos) y propiedades.
• Instancias: objetos de alguna clase.
Las aristas en una red semántica están también etiquetadas y
representan relaciones entre clases, propiedades e instancias.
Un ejemplo:
Alas Plumas
tiene
tiene
Ave
Semillas
Deseos
come subclase
subclase
tiene
Canario Halcon
es un
es un
Piolin Pedro
2
Redes Semánticas en PROLOG
3
Redes Semánticas: Ejemplo
subclase(ave,oviparo).
subclase(reptil,oviparo).
subclase(canario,ave).
subclase(halcon,ave).
subclase(ave,animal).
subclase(reptil,animal).
subclase(cocodrilo,reptil).
subclase(pinguino,ave).
tiene_p(canario,come,semillas).
tiene_p(ave,tiene,alas).
tiene_p(ave,tiene,plumas).
tiene_p(halcon,tiene,deseos).
tiene_p(ave,puede,volar).
tiene_p(reptil,tiene,escamas).
Dada una red semántica, uno desea ser capaz de realizar
consultas relativas a la red, por ejemplo ¿es Juan un ave? En
nuestro caso la respuesta deberı́a ser SI.
O bien, en forma más general, querremos responder pregun-
tas como ¿a qué clases pertenece Juancho?
4
Respondiendo Consultas
subc(C1,C2):- subclase(C1,C2).
subc(C1,C2):- subclase(C1,C3),
subc(C3,C2).
El predicado es(Clase,X) se satisface cuando X pertenece a
la clase Clase. Para responder esta pregunta estamos supo-
niendo que un objeto es una instancia de una clase C si es
una instancia de C o de cualquier subclase de C.
La relación subc nos entrega todos los pares de subclases
generadas por transitividad (si C1 es subclase de C2 y C2 es
subclase de C3, entonces C1 es subclase de C3 ).
Con las reglas anteriores y la red del ejemplo, obtenemos:
?- es(reptil, juancho). ?- es(canario, marcela).
Yes No
?- es(X,juan). ?- es(animal,X).
X = halcon ; X = piolin ;
X = ave ; X = pedro ;
X = oviparo ; X = juan ;
X = animal ; X = juancho ;
No X = marcela;
No
5
Respondiendo Consultas (cont.)
6
Información Incompatible
7
Información Incompatible (cont.)
es(Clase,Obj,0):- instancia(Obj,Clase).
es(Clase,Obj,Dist):- instancia(Obj,Clasep),
subcn(Clasep,Clase,Dist).
subcn(C1,C2,1):- subclase(C1,C2).
subcn(C1,C2,N):- subclase(C1,C3),
subcn(C3,C2,M), N is M+1.
propiedad(Obj,Prop,Dist):-
es(Clase,Obj,Dist),
tiene_p(Clase,Fun,Arg),
Prop =.. [Fun,Arg].
propiedad(Obj,Prop):- propiedad(Obj,Prop,Dist),
\+ incomp(Obj,Prop,Dist).
incomp(Obj,Prop,Dist):- propiedad(Obj,Prop2,Dist2),
(incompatible(Prop,Prop2);
incompatible(Prop2,Prop)),
Dist2 =< Dist.