2017-10-15 3 views
1

Derzeit versuche ich ein Bibliotheks-Empfehlungssystem in Prolog für eine College-Aufgabe zu erstellen und bin ziemlich neu im Prolog. Ich bin ziemlich verloren und habe mich gefragt, ob ich mir das erklären lassen könnte im Detail. Hier sind meine Fakten und Regeln zur Zeit:Issue running query in prolog mit Liste und Prädikat

book(after_dark, haruki_murakami,fiction,182). 
book(python, charlie, revision, 560). 
book(nt_bible, sams, reference, 480). 
book(monty_python, cleese, comedy, 300). 

buildLibrary(Lib) :- findall(book(Title, Author, Genre, Size), book(Title, Author, 
Genre, Size), Lib). 

holiday(B,L) :- //this should take the list formed in buildLibrary along with a variable that represents a book 
       //and is true if and only if its genre is comedy or fiction and less than 400 pages 

Erwartete Eingang: buildLibrary(L) holidays(book(after_dark,haruki_murakami,fiction,182),L)

Im Idealfall sollte dies der Fall zurückkehren, wie es die

skizzierte erfüllt die Anforderungen

Wie gehe ich über die Regel für Urlaub einzustimmen ? Sobald ich weiß, wie man das macht, habe ich das Gefühl, dass ich es zum Laufen bringen kann. Ich habe mehrere Dinge ausprobiert und sie haben alle Fehler in SWL Prolog zurückgegeben, nochmals danke für jede Hilfe!

Antwort

2

Wenn ich richtig Ihre Implementierung verstehen, dann können Sie so etwas wie:

holiday(B,L) :- buildLibrary(Lib), check(L,B). 


check(book(X, Y, Genre, Size),[book(X, Y, Genre, Size)|_]):- 
        (Genre = comedy ;Genre = fiction), Size < 400. 
check(B,[book(_, _, Genre, Size)|T]):- 
        dif(Genre,comedy),dif(Genre,fiction), check(B,T). 
+0

Gut in der Zuordnung mein Dozent heißt es: „Ihr Urlaub, Revision, literarisch und Freizeit Prädikate sollten zwei Parameter übernehmen, ein "Query" Buch (mit noch unbekannten (variablen) Titel und Autor) und eine Bibliothek (eine Liste von Bücher). Es wird durch die Liste gehen und wird als wahr ausgewertet, wenn das Buch an der Spitze der Liste das passende ist Art des Buches (in diesem Fall wird es den Titel und Autor von das Bibliotheksbuch mit dem "Abfrage" Buch) . " Allerdings kann ich die "Abfrage" in der Regel nicht darstellen. –

+0

Können Sie eine Beispieleingabe - erwartete Ausgabe über das Urlaubsprädikat? – coder

+0

Aktualisiert meine Frage, hoffentlich, dass es klarer macht –