capital_of(suiza,berna).
capital_of(chile,santiago).
capital_of(eeuu,washington).
capital_of(estados_unidos,washington).
capital_of(italia, roma).
capital_of(francia, paris).
capital_of(austria, viena).
capital_of(alemania, berlin).
capital_of(espaa, madrid).
capital_of(peru, lima).
capital_of(mexico, ciudad_de_mexico).
Prolog tiene la capacidad de adquirir nuevas clusulas en tiempo de ejecucin probemos la siguiente linea
una vez compilado la base:
?-capital_of(hawaii, X).
Nos damos cuenta que no se pudo unificar, ahora prueba:
?- listing.
listing muestra todas las clusulas que conforman el programa en memoria hasta el momento. Ahora prueba:
?- listing(capital_of).
sto slo muestra aquellas clusulas asociadas al predicado indicado como parmetro.
?- capital_of(hawaii, X).
Y esto nos resulta una respuesta exitosa.
Usando archivos con tell('mi_archivo') se abre al archivo 'mi_archivo' y redirige la escritura hacia l,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% File learner.pl %
% Un pequeo programa que modifica su propia base de conocimientos.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
start :- consult('bdc.pl'),
nl,
write('Escribe los nombres completamente en minsculas,'), nl,
write('seguidos de un punto.'), nl,
nl,
process_a_query.
write('Listo.'), nl.
TAREA:
Revisar el programa, modifcalo, de manera que al ingresar delete, el programa borre un pas de la base de
datos, tal como indica el siguiente dilogo:
...
Pas? chile.
La capital de chile es santiago
Pas? delete.
Qu pas deseas borrar? chile.
Se borr chile.
Pas? chile.
No conozco la capital de ese pas.
...