Aufgaben Teil 2

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:

  1. es muß an geeigneter Stelle ein Cut (!) plaziert werden
  2. 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 und mal_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:

Lösungsvorschlag

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 Eingabeaufforderung multiplikator/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.

Lösungsvorschlag

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:

Lösungsvorschlag