Bonjour à tous,
Je souhaite utiliser les capacités de Prolog à traiter des règles depuis des scripts externes via des appels en ligne de commande. J’ai donc commencé par un test simple avec le code suivant :
et en l’appelant en ligne de commande:
Code : Sélectionner tout - Visualiser dans une fenêtre à part test :- write(on est dans prolog\n).
le résultat est bien celui attendu, prolog affiche on est dans prolog, puis rend la main.
Code : Sélectionner tout - Visualiser dans une fenêtre à part swipl f mon_fichier_prolog.pl t test,halt
J’ai donc modifié le fichier source prolog comme suit :
…et lancé le prolog à la main, en appelant successivement test1 et test2. Les réponses retournées sont conformes aux règles.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 test1:- has_right(6,create_user). test2 - has_right(5,create_user). has_right(UserId,Action) :- group(X,UserId), right_on_action(X,Xction). group(admin,5). group(user,6). Right_on_action(admin,create_user).
Des appels via la ligne de commande en fournissant test1 ou test2 comme « goal » ne retournent aucun résultat, ce qui est normal : il n’y a pas d’affichage prévu.
En utilisant les prédicats write, format (‘@’... je n’arrive pas à afficher les resultats de l’évaluation de mes règles test1 et test2.
Je suis prenneur de toute suggestion.
D’avance merci
Partager