Sie sind auf Seite 1von 12

4.

9 Predicados Meta-
lgicos
EQUIPO. MORADO

INTEGRANTES N CONTROL
DEL NGEL AGUILAR JUAN ALEJANDRO 13070436
MAR FLIX CARLOS ADRIN 13070987
MORALES DE LA CRUZ CITLALLI 13071091
VALERIO ESPINOSA YAZEF 13071433
Qu es?
Permiten controlar el algoritmo de resolucin facilitando la meta-
programacin.
Permite checar si una variable est instanciada o no para proporcionar
programas flexibles

Crear otros programas que manipulan


Meta- otros programas.
programaci
n
Predicados Meta-lgicos

Manipulacin de trminos Examinan el estado de instanciacin de un


(Chequeo de tipo) trmino

Igualdad de Trminos
(Comparacin de Unificacin de variables en los trminos
trminos no bsicos)

Acceso a estructuras Conversin de una estructura a lista

Gestin de la Base de Meta-predicados de Consulta, insercin,


Clusulas eliminacin de las sentencias
Ejemplos

Manipulaci var(Term) nonvar(Term) ground(Term)


n de atom(term) atomic(term) float(Term)
trminos

Igualdad de ?a=X ?a==a ?a=:=X ?5+1==6


trminos X=a si no no
si

Acceso a ? libro(autor, ttulo) =.. L. ? E =.. [libro, autor,


estructuras ttulo].
L = [libro, autor, ttulo] E = libro(autor, ttulo)
Gestin de Clause(Cabeza,Cuerpo) assert(Clausula)
la Base de retract(Clausula) abolish(Nombre/aridad)
Clusulas
Base de conocimiento
Principales predicados para gestionar
la Base de Clausulas
Predicado para consultar:
Clause(cabeza,cuerpo): Unifica cabeza (no debe ser una variable
libre) y cuerpo con la cabeza y el cuerpo de una clausula.

Ejemplo:
?clause(padre(X,Y),Z).
X=jon, Y=carlos, Z=true;
X=carlos, Y=maria, Z=true.
Predicados para insertar:
ASSERT(CLAUSULA) ASSERTA(CLAUSULA)

Inserta una clusula al final de la Inserta clusula como la primera de su


lista. lista.

Ejemplo: Ejemplo:

?assert((hijo_a(X,Y):- ?asserta(padre(juan,eva)).
madre(X,Y))).

Inserta dicha clausula como la Inserta dicha clausula delante de las


ultima del procedimiento hijo_a. dos del procedimiento padre.
Predicados para eliminar:
RETRACT(CLAUSULA) ABOLISH(NOMBRE/ARIDAD)

Eliminar la primera clausula Elimina todas las clausulas de


unificable con clausula. nombre Nombre y Aridad.

Ejemplo: Ejemplo:

?retract(padre(carlos,Y)). ?abolish(hijo_a/2).

Y=maria; Si;

Elimina todas las clausulas del


predicado hijo_a de aridad 2.
Elimina padre(carlos,maria).
Predicados para listar las clusulas de la base de
conocimiento:

Listing: lista toda las clausulas de la base de conocimiento.


Listing(Nombre): lista todas las clusulas que definen al predicado de nombre
Nombre.

listing(predicado).
Listing(Nombre,Aridad): lista todas las que definen al predicado de nombre
Nombre y aridad Aridad.
listing(predicado/2).
Preguntas
Qu es la Meta-programacin?
Crear otros programas que manipulan otros programas.
Tipo de predicado que examinan el estado de instanciacin de un trmino
Manipulacin de trminos.
Menciona los principales operaciones para gestionar la base de conocimiento
Insertar, consultar, listar y eliminar.
Menciona los principales predicados para consultar en la base de conocimiento
clause
Menciona los principales predicados para insertar en la base de conocimiento
Assert y Asserta
Menciona los principales predicados para eliminar en la base de conocimiento
Retract y Abolish
Menciona los principales predicados para listar en la base de conocimiento
Listing
Prctica
1. Insertar la siguiente
clusula al principio de la lista.

(capital_of(hawaii,
honolulu)

2. Listar las clusulas que


definan al predicado
capital_of

3. Elimine la clusula

Capital_of(Italia, roma)

Das könnte Ihnen auch gefallen