2.1.1. Graph

Ein Graph besteht aus Knoten und Kanten. In einer Sitzung können mehrere Graphen nebeneinander benutzt werden.  

Namen für Graphen können beliebig gewählt werden außer, daß sie weder Leerzeichen noch Punkt enthalten dürfen. Der Name eines Graphen wird bei Definition festgelegt, kann später aber noch verändert werden.  

In einem Graph können folgende Typen von Kanten vorhanden sein:  

  • ungerichtete Kante (undirected edge): Hierbei wird keine Ordnung zwischen den beiden zugehörigen Knoten zugrunde gelegt. 
  • gerichtete Kante (directed edge): Es gibt einen Startknoten (source) und einen Zielknoten (target) der Kante. Dies müssen voneinander verschieden sein. 
  • Schleifen (loop): Hier wird eine Kante mit nur einem Knoten assoziiert. 
Diese drei Typen können nebeneinander in einem Graph vorkommen (was sicherlich nur in wenigen Sonderfällen Sinn macht). Insbesondere ist es erlaubt, zwischen zwei Knoten mehrfach Kanten zu definieren (und natürlich auch Mehrfachschlingen). 

Will man von diesen Kantentypen nur eingeschränkt Gebrauch machen (z.B. einen gerichteten Graphen mit Schleifen, einen ungerichteten Graph, gerichteter azyklischer Graph - DAG), so erlaubt das Triggerkonzept die Datenstruktur entsprechend einzuschränken.