Class Clause

java.lang.Object
   |
   +----Clause

public class Clause
extends Object
Klauseln sind die oberste Einheit der Sprache. z.B. sind Regeln und Fakten Klauseln:

p(a, 8, g(Z)) ---> b(Z,8).

ist eine Klausel. Ebenso

---> doof(harvey).

und

schlau(harvey)---> .

Klauseln dürfen rechts des Pfeiles keine Variablen haben, die nicht auch links des Pfeiles bereits vorkommen; denn sonst wäre die Klausel - selbst wenn die linke Seite voll instanziiert wäre - nicht grund (ground).

Man kann den Klauseln einen Namen geben, indem man einen Namen vor die Klausel schreibt und durch '::' von ihr trennt.

Siehe auch SatchParserEBNF.html.


Constructor Index

 o Clause(String, Body)
 o Clause(String, Body, Head)
Der identifier-String dient zur besseren Orientierung.
 o Clause(String, Head)

Method Index

 o copy()
 o equals(Object)
 o getBody()
Gibt null zurück, falls diese Klausel keinen Body hat.
 o getHead()
Gibt null zurück, falls diese Klausel keinen Head hat.
 o getIdentifier()
Gibt den in der Spezifikation angegebenen, bzw.
 o internVars()
Diese Methode wird vom Parser nach dem Parsen aufgerufen, und stellt sicher, daß an jeder Stelle der Clausel, an der zwei gleichlautende Variablen stehen, das selbe Var-Objekt steht.

Dabei wird ein Vector angelegt (falls keiner übergeben wurde), in den alle Variablen-Objekte hineingeschrieben werden, die bisher vorkamen.

 o isConstraint()
Eine Clausel ist ein Constraint, wenn sie einen Body, aber keinen Head hat.
 o isTrue()
Wenn die Clausel einen Body, aber keinen Head hat, ist sie im Tableaux schon beim Start als 'wahr' anzusehen.
 o setIdentifier(String)
 o toString()

Constructors

 o Clause
 public Clause(String identifier,
               Body b,
               Head h)
Der identifier-String dient zur besseren Orientierung. Man kann ihn in der Specificationsdatei als :: vor die Clausel schreiben. Schreibt man keinen eigenen identifier, wird einer generiert.

 o Clause
 public Clause(String identifier,
               Body b)
 o Clause
 public Clause(String identifier,
               Head h)

Methods

 o getIdentifier
 public String getIdentifier()
Gibt den in der Spezifikation angegebenen, bzw. generierten Namen der Klausel zurück.

 o setIdentifier
 public void setIdentifier(String identifier)
 o getBody
 public Body getBody()
Gibt null zurück, falls diese Klausel keinen Body hat.

 o getHead
 public Head getHead()
Gibt null zurück, falls diese Klausel keinen Head hat.

 o copy
 public Clause copy()
 o internVars
 public void internVars() throws ClauseNotGroundException
Diese Methode wird vom Parser nach dem Parsen aufgerufen, und stellt sicher, daß an jeder Stelle der Clausel, an der zwei gleichlautende Variablen stehen, das selbe Var-Objekt steht.

Dabei wird ein Vector angelegt (falls keiner übergeben wurde), in den alle Variablen-Objekte hineingeschrieben werden, die bisher vorkamen. Dieser Vector wird an alle in dieser Clausel vorkommenden Clauselteile übergeben, damit alle Variablen, die in den untergeordneten Objekten vorkommen, durch die in anderen Teilen dieser Clausel vorkommenden Variablen-Objekte ersetzt werden.

Ist die Clausel nicht ground, wird eine ClauseNotGroundException geworfen.

 o isTrue
 public boolean isTrue()
Wenn die Clausel einen Body, aber keinen Head hat, ist sie im Tableaux schon beim Start als 'wahr' anzusehen. Wäre equivalent zu 'hasABody '.

 o isConstraint
 public boolean isConstraint()
Eine Clausel ist ein Constraint, wenn sie einen Body, aber keinen Head hat.

 o equals
 public boolean equals(Object o)
Overrides:
equals in class Object
 o toString
 public String toString()
Overrides:
toString in class Object