2010-05-17 20 views
3

J'ai du mal à comprendre la logique relationnelle de la clausalité, et je ne suis pas sûr que ce soit l'endroit à demander, mais ça m'aiderait beaucoup avec révision si quelqu'un pouvait donner des conseils sur les questions suivantes.Question de logique de clausal: qu'est-ce qu'une interprétation de Herbrand

Soit P le programme:

academic(X); student(X); other_staff(X):- 
     works_in(X, university). 
:-student(john). 
:-other_staff(john). 
works_in(john, university) 

Question: Quelles sont les interprétations Herbrand de P?

Répondre

1

Ce n'est pas une syntaxe Prolog régulière: ISO Prolog n'autorise pas ";" opérateurs dans la tête, à la gauche du ": -". Je devine que cela signifie "pour p est chacun d'académique, étudiant, other_staff, p(X) :- works_in(X, university)". L'interprétation d'Herbrand de P, appelons-la Herb (P) est un ensemble de phrases constituées à partir des prédicats et des atomes du programme, qui est le plus petit ensemble de phrases fermées sous l'inférence du programme. Ceci contient les faits affirmés dans P: dans ce cas il y a deux prédicats à un endroit, et les phrases dérivables de l'application de la clause: ici il y a deux inférences applicables, toutes deux donnant la même conclusion, un prédicat à deux places. Cela donne un ensemble, Herb (P), avec trois éléments.