Formaliser un problème simple

Ce travail consiste à faire un programme Prolog qui décrit la situation de la figure:

Plan de la maison

Etape 1

Ouvrir un étditeur de texte. Choisir new. La situation est décrite par les faits suivants, que l'on entrera sous forme de texte:
ouest(cuisine,chambre).
sud(salamanger,chambre).
est(salamanger,entree).

Enregistrer sous maison.pro (par exemple) puis lancer l'application Gnu Prolog par la commande gprolog. Entrer consult("maison.pro").

Pour poser une question en Prolog: pred(arg1,arg2,...). puis taper enter. Pour arreter la recherche: retaper enter Pour avoir la solution suivante: ; puis enter.

On pose les questions:

sud(salamanger,X).
nord(X,salamanger).

Que manque-t-il pour avoir les réponses auxquelles on s'attend intuitivement?

Etape 2

On ajoute les règles:
est(X,Y) :- ouest(Y,X).
nord(X,Y) :- sud(Y,X).

Quelle est maintenant la réponse aux questions précédentes?

Quelle est la réponse à la question nord(X,Y).?

Etape 3

Que faut-il modifier dans les 3 premières lignes pour pouvoir répondre simultanement aux requêtes est(salamanger,X) et ouest(entree,X)

Peut-on répondre a toutes le requêtes a une variable?

Etape 4

En gardant les 3 règles, comment décrire une nouvelle situation en un nombre minimal de faits?

Etape 5

Remplacer la dernière règle par:
ouest(X,Y) :- nord(Z,X),nord(T,Y),ouest(Z,T).

Comment décrire une situation maintenant?