En Prolog no existen variables que almacenen en el tiempo valores, con lo que el trabajar con valor de cosas es algo complicado al principio, choca con lo simple que es comparado con otros lenguajes. Es es un howto o codekata para simular variables con cierto valor y así tenerlas disponibles para hacer el procesamiento que sea necesario.
El código fuente
La técnica que se usa es el establecer una ligadura entre un átomo de conocimiento y un valor. Es decir, podemos por ejemplo hacer cosas como:
tieneEdad(pepe, 20).
tieneValor(variable, 3).
De esta forma luego se puede consultar como en la imagen del principio el valor ligado a los átomos pepe o variable:
% Simulando variables en Prolog..
tieneValor(variable, 3).
escribeValor :-
tieneValor(variable, Valor),
write('La variable tiene de valor: '),
write(Valor),
nl.
En el momento en que hacemos tieneValor(variable, X).. almacenamos en X todos los valores que casan con el átomo de Prolog llamado variable. Es decir, para el caso anterior, hacemos write(Valor), pero tenemos que almacenar antes en Valor el 3, por eso en el mismo predicado se lo ligamos con el predicado tieneValor(variable, Valor).