Künstliche Intelligenz und Prolog
Copyright © 2019 Jiri Kriz, www.nosco.ch

13Frames, Vererbung, Dämonen

Lösungen

13.1Frames

Schreiben Sie eine einfache Shell für die Verarbeitung von Frames nach den Vorlesungsunterlagen. Damit man einfach zu den Frame-Daten zugreifen kann, werden diese direkt in Fakten der Form

frame_id( slot, facet, value)

in Prolog repräsentiert.

Die Shell sollte folgende Operationen bereitstellen:

get_value( Frame, Slot, Value)
put_value( Frame, Slot, Value)
create_instance( Frame, Instance_Frame).

Das Prädikat create_instance( Frame, Instance_Frame) kreiert das Frame Instance_Frame mit der Beziehung is_a zu Frame.

Folgende Facets sollten unterstützt werden:
value, if_needed, if_added.

Die zugehörigen Dämonfunktionen werden automatisch beim Aufruf von get_value und put_value getriggert. Die Dämonfunktionen (Prolog-Prädikate) werden definiert als:

demon( Frame, Slot, Value) :- .... .

Lösung 13.1

13.2Anwendung: Hierarchie graphischer Objekte

Benützen Sie die Shell für den Aufbau einer Hierarchie graphischer Objekte:

Graphisches Objekt (Slots: Position (x,y)):

Es soll möglich sein, Instanzen zu diesen Klassen durch möglichst wenig Angaben konsistent zu generieren.

Sie können weitere Slots zufügen, resp. die Hierarchie erweitern.

Lösung 13.2