Prolog-Grundzüge 8: Datenbasis

Juli 21, 2009 at 6:12 nachmittags Hinterlasse einen Kommentar


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.

About these ads

Entry filed under: 1. Tags: .

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

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Verbinde mit %s

Trackback this post  |  Subscribe to the comments via RSS Feed



Follow

Bekomme jeden neuen Artikel in deinen Posteingang.

Schließe dich 172 Followern an

%d Bloggern gefällt das: