Prolog-Grundzüge 8: Datenbasis

July 21, 2009 at 6:12 pm Leave a comment


In den vorigen Blogposts haben wir Fakten, Regeln, das Prolog-System, Pattern-Matching, Rekursion, Fail und den Cut-Operator betrachtet. Damit haben wir die grundlegenden Dinge beisammen, um Prolog-Programme zu schreiben. Jedenfalls fast. Wir müssen noch ein paar Dinge über die Prolog-Datenbank für Fakten und Regeln lernen. Wir können die Datenbasis nämlich zur Programmlaufzeit dynamisch verändern!

Mit assert können wir Fakten und Regeln zur Laufzeit hinzufügen.

assert(benutzer(levi)).

fügt den neuen Fakt “Levi ist ein Benutzer” zur Datenbasis hinzu.

Mit “asserta” wird an den Anfang und mit “assertz” ans Ende der Datenbasis hinzugefügt.

Den Effekt kann man mit “listing” überprüfen:

listing.

listet alle Fakten und Regeln der Datenbasis auf.

Mit “retractall” werden alle Fakten/Regeln aus der Datenbasis entfernt, die zum angegebenen Fakt/Regel passt.

retractall(benutzer(_)).

Anmerkung: Der Unterstrich ist übrigens eine anonyme Variable, die man immer dann einsetzt, wenn man an dem konkreten Wert der Variablen nicht interessiert ist.

Und nicht zuletzt kann man mit “findall” Regeln und Fakten in der Datenbasis suchen:

findall(Benutzer, benutzer(_), BenutzerListe).

liefert alle Regeln namens “benutzer” mit einem Parameter.

Entry filed under: 1. Tags: .

Prolog-Grundzüge 7: Cut-Operator BDD for Prolog

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Trackback this post  |  Subscribe to the comments via RSS Feed



%d bloggers like this: