- Aufgabe 1:
-
Einer nicht-prologkundige Kommilitonin gerät ein Ausdruck des semantischen Netzes in die Finger. Verstört fragt sie Sie, was das denn wohl sei.
Wie erklären Sie ihr das Programm? Lösungsvorschlag
- Aufgabe 2:
-
Ein noch nicht behobenes Problem im semantischen Netz ist die Mehrfachnennung von Eigenschaften, die ein Begriff erbt. Ein Beispiel:
Erklären Sie, wieso es zu diesen Mehrfachnennungen kommt.
Um dieses Problem zu verhindern, gibt es zwei alternative Möglichkeiten:
- es muß an geeigneter Stelle ein Cut (!) plaziert werden
- das Prädikat
eigenschaft/2
muß anders fomuliert werden
Setzen Sie diese beiden Möglichkeiten in Prolog um und erläutern Sie Ihre Vorgehensweise. Lösungsvorschlag
- Aufgabe 3:
-
Definieren Sie die beiden Prädikate
mal_2/2
undmal_3/2
, die eine Eingabeliste von Zahlen auf eine Ausgabeliste von Zahlen abbilden derart, dass die Elemente der Ausgabeliste jeweils das doppelte und das dreifache der Elemente der Eingabeliste darstellen: - Aufgabe 4:
-
Definieren Sie ein Prädikat
mal_n/3
(mal_n(Liste,Integer,Liste2)
), das eine Eingabeliste von Zahlen auf eine Ausgabeliste von Zahlen abbildet derart, dass die Elemente der Ausgabeliste jeweils das n-fache der Elemente der Eingabeliste darstellen. Schreiben Sie für dieses Prädikat anschließend eine Eingabeaufforderungmultiplikator/0
, die den Benutzer auffordert, a) eine Liste von Zahlen und b) (für N) eine konkrete Zahl einzugeben und welches dann die Elemente der Eingabeliste jeweils mit dieser Zahl multipliziert. - Aufgabe 5:
-
Legen Sie eine Datei lexikon.pl an, in der Sie über ein Prädikat
lex/2
für die folgenden örter Angaben machen dahingehend, welcher lexikalischen Kategorie sie jeweils angehören:the, a, boy, girl, dog, cat, bed, book, kicked, kissed, read, gave, ugly, boring, to, under, on.
Definieren Sie anschließend ein Prädikat
lexkat/2
, welches eine Eingabeliste von Wörtern abbildet auf eine Ausgabeliste der entsprechenden lexikalischen Kategorien: