Next: Funktionen und Variablen für Eigenschaften, Previous: Maximas Datenbank, Up: Maximas Datenbank [Contents][Index]

### 11.1 Einführung in Maximas Datenbank

#### Eigenschaften

Variablen und Funktionen können mit der Funktion `declare` Eigenschaften zugewiesen werden. Diese Eigenschaften werden in eine Datenbank abgelegt oder in eine von Lisp bereitgestellte Eigenschaftsliste eingetragen. Mit der Funktion `featurep` kann geprüft werden, ob ein Symbol eine bestimmte Eigenschaft hat und mit der Funktion `properties` können alle Eigenschaften eines Symbols angezeigt werden. Die Funktion `remove` löscht Eigenschaften aus der Datenbank oder von der Eigenschaftsliste. Wird mit der Funktion `kill` ein Symbol entfernt, werden auch die zugewiesenen Eigenschaften gelöscht.

Weiterhin können mit den Funktionen `put` und `qput` beliebige vom Nutzer vorgesehene Eigenschaften in die Eigenschaftsliste zu einem Symbol abgelegt werden. Mit der Funktion `get` werden die Eigenschaften von der Eigenschaftsliste gelesen und mit der Funktion `rem` gelöscht.

Variablen können die folgenden Eigenschaften erhalten, die in die Datenbank eingetragen werden.

       constant
       integer        noninteger
       even           odd
       rational       irrational
       real           imaginary      complex

Funktionen können die folgenden Eigenschaften erhalten, die in die Datenbank eingetragen werden.

       increasing     decreasing
       posfun         integervalued

Die folgenden Eigenschaften können für Funktionen definiert werden und wirken sich auf die Vereinfachung dieser Funktionen aus. Diese Eigenschaften werden in Vereinfachung beschrieben.

       linear         additive       multiplicative
       outative       commutative    symmetric
       antisymmetric  nary           lassociativ
       rassociative   evenfun        oddfun

Weitere Eigenschaften, die Variablen und Funktionen erhalten können, und die in die Lisp-Eigenschaftsliste des Symbols abgelegt werden, sind.

       bindtest       feature        alphabetic
       scalar         nonscalar      nonarray

#### Kontexte

Maxima verwaltet Kontexte, um Eigenschaften von Variablen und Funktionen sowie Fakten abzulegen. Fakten werden mit der Funktion `assume` definiert und in dem aktuellen Kontext abgelegt. Mit `assume(a>10)` erhält Maxima zum Beispiel die Information, dass die Variable `a` größer als `10` ist. Mit der Funktion `forget` werden Fakten aus der Datenbank entfernt. Fragt Maxima den Nutzer nach Eigenschaften von Variablen, werden die Antworten in einem Kontext abgelegt.

Ein Kontext hat einen Namen, mit dem auf diesen Bezug genommen werden kann. Nach dem Starten von Maxima hat der aktuelle Kontext den Namen `initial`. Es kann eine beliebige Anzahl weiterer Kontexte definiert werden. Diese können hierarchisch voneinander abhängen. So ist der Kontext `initial` ein Unterkontext zum Kontext `global`. Die Fakten in einem übergeordneten Kontext sind in dem Unterkontext immer präsent. Der Kontext `global` enthält zum Beispiel Fakten, die von Maxima initialisiert werden, und zusätzlich zu den Fakten des Kontextes `initial` aktiv sind.

Kontexte können eine beliege Anzahl an Fakten aufnehmen. Sie können mit der Funktion `deactivate` deaktiviert werden, ohne dass die Fakten verloren gehen und später mit der Funktion `activate` aktiviert werden, wodurch die Fakten für Aussagefunktionen wieder zur Verfügung stehen.

Next: Funktionen und Variablen für Eigenschaften, Previous: Maximas Datenbank, Up: Maximas Datenbank [Contents][Index]