4.2 Tgl - Befehle

Prinzipiell ist Tgl objektorientiert. Die beiden Hauptobjekte sind Graphen (graph) und Teilmengen dieser Graphen (selection).
Für viele Befehle gibt es eine vereinfachte Schreibweise. Grundsätzlich gilt folgendes:
attribute=attr
selection=sel
primary=prim
secondary=sec
Weitere Befehle, die von GRAPHitty bereitgestellt werden und das Programmieren erheblich vereinfachen, sind im Abschnitt 5 Konfiguration und Programmierung zu finden. Klicken Sie auf den jeweiligen Objekttypen, für den Sie sich interessieren und dann auf den Farbverlauf vor dem Befehl, über den Sie mehr erfahren wollen.

4.2.1 graph Befehle
4.2.2 selection Befehle

Im folgenden bedeutet:
A[B] ein Objekt A vom Typ B
{XXX} die Angaben für XXX sind optional
A|B an dieser Stelle kann A oder B stehen.

MAINPAGE
Tgl

graph Befehle


graph (Konstruktor)
[G : graph] delete (Destruktor)
[G : graph] clone
[G : graph] clear
[G : graph] new node
[G : graph] new edge [from : selection] [to : selection]
[G : graph] count nodes
[G : graph] count edges
[G : graph] new node_attribute [name : selection] [value : string]
[G : graph] new edge_attribute [name : selection] [value : string]
[G : graph] delete node_attribute [name : selection]
[G : graph] delete edge_attribute [name : selection]
[G : graph] node_attribute [i : integer]
[G : graph] edge_attribute [i : integer]
[G : graph] count node_attributes
[G : graph] count edge_attributes
[G : graph] join [G : graph]
[G : graph] paste [S : selection] [Erg : selection]
[G : graph] read [file : string]
[G : graph] write [file : string]
[G : graph] print

MAINPAGE
Tgl
selection-Befehle

selection Befehle


[graph] new selection
[S : selection] delete (Destruktion)
[S : selection] add node [i : integer]
[S : selection] add edge [i : integer]
[S : selection] add [S : selection] {node|edge [i : integer]}
[S : selection] add all
[S : selection] clear
[S : selection] erase
[S : selection] count nodes
[S : selection] count edges
[S : selection] edge [i : integer]
[S : selection] node [i : integer]
[S : selection] set node_attribute [name : selection] [value : string] {[i : integer]}
[S : selection] set edge_attribute [name : selection] [value : string] {[i : integer]}
[S : selection] get node_attribute [name : selection] {[i : integer]}
[S : selection] get edge_attributes [name : selection] {[i : integer]}
[S : selection] get graph
[S : selection] select nodes
[S : selection] select edges
[S : selection] select sources
[S : selection] select targets
[S : selection] select ins
[S : selection] select outs
[S : selection] select ins&outs
[S : selection] select node_attribute [name : selection] [value : string]
[S : selection] select edge_attribute [name : selection] [value : string]
[S : selection] join|+ [S : selection]
[S : selection] setminus|- [S : selection]
[S : selection] intersect|& [S : selection]
[S : selection] {print}

MAINPAGE
Tgl
selection-Befehle
graph-Befehle





graph (Konstruktor)

RETURNTYPE: [graph]
FUNKTION:
Erzeugt einen neuen Graph und liefert den Namen des neuen Objektes zurück.
BEISPIEL:
set neuer_graph [graph]
selection-Befehle
graph-Befehle

[G : graph] delete (Destruktor)

RETURNTYPE: -
FUNKTION:
Zerstört den Graphen.
BEISPIEL:
delete $neuer_graph
selection-Befehle
graph-Befehle

[G : graph] clone

RETURNTYPE: [graph]
FUNKTION:
Erzeugt eine Kopie des Graphen und liefert den Namen des neuen Objektes zurück. (Kopierkonstruktor)
BEISPIEL:
set kopie_graph [$neuer_graph clone]
selection-Befehle
graph-Befehle

[G : graph] new node

RETURNTYPE: [S : selection]
FUNKTION:
Erzeugt im Graphen einen neuen Knoten. Liefert den Namen einer neu erzeugten selection zurück, die nur aus dem neuen Knoten besteht.
BEISPIEL:
set $neuer_knoten [$neuer_graph new_node]
selection-Befehle
graph-Befehle

[G : graph] new_edge [from : selection] [to : selection]

RETURNTYPE: [selection]
FUNKTION:
Erzeugt im Graphen neue Kanten von allen Knoten in from zu allen Knoten in to.
BEISPIEL:
set $neue_schlinge [$neuer_graph new_edge $neuer_knoten $neuer_knoten]
selection-Befehle
graph-Befehle

[G : graph] clear

RETURNTYPE: -
FUNKTION:
Entfernt alle Objekte aus dem Graphen.
BEISPIEL:
$neuer_graph clear
selection-Befehle
graph-Befehle

[G : graph] count nodes

RETURNTYPE: [integer]
FUNKTION:
Liefert die Anzahl der Knoten in G zurück.
BEISPIEL:
$neuer_graph count nodes
selection-Befehle
graph-Befehle

[G : graph] count edges

RETURNTYPE: [integer]
FUNKTION:
Liefert die Anzahl der Kanten in G zurück.
BEISPIEL:
$neuer_graph count edges
selection-Befehle
graph-Befehle

[G : graph] new node_attribute [name : selection] [value : string]

RETURNTYPE: -
FUNKTION:
Erzeugt in G ein neues Knotenattribut.
BEISPIEL:
$neuer_graph new node_attr farbe blau
selection-Befehle
graph-Befehle

[G : graph] new edge_attribute [name : selection] [value : string]

RETURNTYPE: -
FUNKTION:
Erzeugt in G ein neues Kantenattribut.
BEISPIEL:
$neuer_graph new edge_attr Kosten 0
selection-Befehle
graph-Befehle

[G : graph] delete node_attribute [name : selection]

RETURNTYPE: -
FUNKTION:
Entfernt das Knotenattribut [name : selection] aus G.
BEISPIEL:
$neuer_graph delete node_attr farbe
selection-Befehle
graph-Befehle

[G : graph] delete edge_attribute [name : selection]

RETURNTYPE: -
FUNKTION:
Entfernt das Kantenattribut [name : selection] aus G.
BEISPIEL:
$neuer_graph delete edge_attr Kosten
selection-Befehle
graph-Befehle

[G : graph] node_attribute [i : integer]

RETURNTYPE: [string]
FUNKTION:
Liefert den Namen des i. Knotenattributs des Graphen zurück. Die Indizierung beginnt bei 0.
BEISPIEL:
$neuer_graph node_attr 0
selection-Befehle
graph-Befehle

[G : graph] edge_attribute [i : integer]

RETURNTYPE: [string]
FUNKTION:
Liefert den Namen des i. Kantenattributs des Graphen zurück. Die Indizierung beginnt bei 0.
BEISPIEL:
$neuer_graph edge_attr 0
selection-Befehle
graph-Befehle

[G : graph] count node_attributes

RETURNTYPE: [integer]
FUNKTION:
Liefert die Anzahl der in G definierten Knotenattribute zurück.
BEISPIEL:
$neuer_graph count node_attr
selection-Befehle
graph-Befehle

[G : graph] count edge_attributes

RETURNTYPE: [integer]
FUNKTION:
Liefert die Anzahl der in G definierten Kantenattribute zurück.
BEISPIEL:
$neuer_graph count edge_attr
selection-Befehle
graph-Befehle

[G : graph] join [GG : graph]

RETURNTYPE: -
FUNKTION:
Vereinigt G und GG. GG enthält dann beide Graphen.
BEISPIEL:
$G join $neuer_graph
selection-Befehle
graph-Befehle

[G : graph] paste [S : selection] [Erg : selection]

RETURNTYPE: -
FUNKTION:
Fügt die selection S in G ein. Die neu eingefügten Objekte sind dann in der selection Erg enthalten. Egal zu welchem Graphen Erg vor der Operation gehört hat, nach der Operation gehört die selection zu G. Sind in S Kanten enthalten ohne ihre Start- und Endknoten, so werden diese Knoten zusätzlich in G eingefügt.
BEISPIEL:
$neuer_graph paste $neuer_knoten
selection-Befehle
graph-Befehle

[G : graph] read [file : string]

RETURNTYPE: -
FUNKTION:
Liest "file" als Graphen in G ein. "file" muß eine gültige Tgl-Graph Datei sein. D.h. es müssen eine "file".g und eine "file".gml Datei existieren.
BEISPIEL:
$neuer_graph read ein_graph
selection-Befehle
graph-Befehle

[G : graph] write [file : string]

RETURNTYPE: -
FUNKTION:
Speichert den Graphen auf Datenträger ab. Es werden zwei Dateien erzeugt. Eine "file".g Datei, in der sich Tgl spezifische Daten befinden, und eine "file".gml Datei, in der die Struktur des Graphen im standardisierten GML Format abgespeichert wird. Graphendateien können so mit anderen Applikationen ausgetauscht werden, die auch das GML Format unterstützen.
BEISPIEL:
$neuer_graph write ein_graph
selection-Befehle
graph-Befehle

[G : graph] print

RETURNTYPE: [string]
FUNKTION:
Gibt den Graphen in textueller Form (so wie er auch mit write in eine Datei geschrieben werden würde) auf die Standardausgabe aus. Der gleiche Befehl wird auch ausgeführt, wenn ein [graph] ohne Befehl aufgerufen wird.
selection-Befehle
graph-Befehle

[G : graph] new selection

RETURNTYPE: [selection]
FUNKTION:
Erzeugt eine neue selection auf G. Der [name : selection] der neu erzeugten selection wird zurückgeliefert
BEISPIEL:
set neue_sel [$neuer_graph new sel]
selection-Befehle
graph-Befehle

[S : selection] delete

RETURNTYPE: -
FUNKTION:
Zerstört die selection.
BEISPIEL:
$neue_sel delete
selection-Befehle
graph-Befehle

[S : selection] add node [i : integer]

RETURNTYPE: -
FUNKTION:
Fügt den i. Knoten des Graphen zu S hinzu. Die Indizierung beginnt bei 0.
BEISPIEL:
$neue_sel add node 0
selection-Befehle
graph-Befehle

[S : selection] add edge [i : integer]

RETURNTYPE: -
FUNKTION:
Fügt die i. Kante des Graphen zu S hinzu. Die Indizierung beginnt bei 0.
BEISPIEL:
$neuer_graph add edge 0
selection-Befehle
graph-Befehle

[S : selection] add [SS : selection] {node|edge [i : integer]}

RETURNTYPE: -
FUNKTION:
Fügt die gesamte selection SS zu S hinzu. Ist node oder edge mit Index i angegeben, so wird nur der i. Knoten, bzw. die i. Kante der selection SS zur selection S hinzugefügt.
BEISPIEL:
$neue_sel add neuer_knoten 0
selection-Befehle
graph-Befehle

[S : selection] add all

RETURNTYPE: -
FUNKTION:
Fügt alle Objekte des Graphen zu S hinzu.
BEISPIEL:
$neue_sel add all
selection-Befehle
graph-Befehle

[S : selection] clear

RETURNTYPE: -
FUNKTION:
Entfernt alle Objekte aus der selection (nicht aus dem Graphen wie erase!).
BEISPIEL:
$neue_sel clear
selection-Befehle
graph-Befehle

[S : selection] erase

RETURNTYPE: -
FUNKTION:
Entfernt alle in S enthaltenen Objekte aus dem Graphen. D.h. nicht nur aus der selection wie clear!
BEISPIEL:
$neue_sel erase
selection-Befehle
graph-Befehle

[S : selection] count nodes

RETURNTYPE: [integer]
FUNKTION:
Liefert die Anzahl der in S enthaltenen Knoten zurück.
BEISPIEL:
$neue_sel count nodes
selection-Befehle
graph-Befehle

[S : selection] count edges

RETURNTYPE: [integer]
FUNKTION:
Liefert die Anzahl der in S enthaltenen Knoten zurück.
BEISPIEL:
$neue_sel count edges
selection-Befehle
graph-Befehle

[S : selection] node [i : integer]

RETURNTYPE: [selection]
FUNKTION:
Erzeugt eine neue Selection, die nur den i. Knoten der Selection enthält. Die Indizierung beginnt bei 0.
BEISPIEL:
set ein_knoten $neue_sel 0
selection-Befehle
graph-Befehle

[S : selection] edge [i : integer]

RETURNTYPE: [selection]
FUNKTION:
Erzeugt eine neue Selection, die nur die i. Kante der Selection enthält. Die Indizierung beginnt bei 0.
BEISPIEL:
set eine_kante [$neue_sel edge 0]
selection-Befehle
graph-Befehle

[S : selection] set node_attribute [name : selection] [value : string] {[i : integer]}

RETURNTYPE: -
FUNKTION:
Setzt das Knotenattribut [name : selection] aller Knoten in S auf value.
Ist ein Index i angegeben, so wird nur das Knotenattribut des i. Knoten in der Selection auf value gesetzt.
BEISPIEL:
$ein_knoten set node_attr farbe rot 0
selection-Befehle
graph-Befehle

[S : selection] set edge_attribute [name : selection] [value : string] {[i : integer]}

RETURNTYPE: -
FUNKTION:
Setzt das Kantenattribut [name : selection] aller Kanten in S auf value.
Ist ein Index i angegeben, so wird nur das Kantenattribut der i. Kante in der Selection auf value gesetzt.
BEISPIEL:
$eine_kante set edge_attr Kosten 100
selection-Befehle
graph-Befehle

[S : selection] get node_attribute [name : selection] {[i : integer]}

RETURNTYPE: [integer]
FUNKTION:
Liefert den Wert des Knotenattributs [name : selection] des ersten Knoten zurück. Ist ein Index i angegeben, so wird der Wert des Knotenattributs [name : selection] des i. Knoten zurückgeliefert.
BEISPIEL:
$ein_knoten get node_attr Farbe 0
oder
$ein_knoten get node_attr Farbe
selection-Befehle
graph-Befehle

[S : selection] get edge_attribute [name : selection] {[i : integer]}

RETURNTYPE: [integer]
FUNKTION:
Liefert den Wert des Kantenattributs [name : selection] der ersten Kante zurück. Ist ein Index i angegeben, so wird der Wert des Kantenattributs [name : selection] der i. Kante zurückgeliefert.
BEISPIEL:
$eine_kante get edge_attr Kosten 0
oder
$eine_kante get edge_attr Kosten
selection-Befehle
graph-Befehle

[S : selection] get graph

RETURNTYPE: [graph]
FUNKTION:
Liefert den Namen des Graphen, zu dem die selection gehört.
BEISPIEL:
$neue_sel get graph
selection-Befehle
graph-Befehle

[S : selection] select nodes

RETURNTYPE: -
FUNKTION:
Schränkt den Inhalt der selection auf Knoten ein.
BEISPIEL:
$neue_sel select nodes
selection-Befehle
graph-Befehle

[S : selection] select edges

RETURNTYPE: -
FUNKTION:
Schränkt den Inhalt der selection auf Kanten ein.
BEISPIEL:
$neue_sel select edges
selection-Befehle
graph-Befehle

[S : selection] select sources

RETURNTYPE: -
FUNKTION:
Nach dieser Operation enthält S alle Startknoten der zuvor in S enthaltenen Kanten.
BEISPIEL:
$neue_sel select sources
selection-Befehle
graph-Befehle

[S : selection] select targets

RETURNTYPE: -
FUNKTION:
Nach dieser Operation enthält S alle Zielknoten der zuvor in S enthaltenen Kanten.
BEISPIEL:
$neue_sel select targets
selection-Befehle
graph-Befehle

[S : selection] select ins

RETURNTYPE: -
FUNKTION:
Nach dieser Operation enthält S alle eingehenden Kanten der zuvor in S enthaltenen Knoten.
BEISPIEL:
$neue_sel select ins
selection-Befehle
graph-Befehle

[S : selection] select outs

RETURNTYPE: -
FUNKTION:
Nach dieser Operation enthält S alle ausgehenden Kanten der zuvor in S enthaltenen Knoten.
BEISPIEL:
$neue_sel select outs
selection-Befehle
graph-Befehle

[S : selection] select ins&outs

RETURNTYPE: -
FUNKTION:
Nach dieser Operation enthält S alle ein- und ausgehenden Kanten der zuvor in S enthaltenen Knoten.
BEISPIEL:
$neue_sel select ins&outs
selection-Befehle
graph-Befehle

[S : selection] select node_atrribute [name : selection] [value : string]

RETURNTYPE: -
FUNKTION:
Nach dieser Operation enthält S alle Knoten, deren Knotenattribut [name : selection] auf value gesetzt ist und in der selection enthalten waren.
BEISPIEL:
$neue_sel select node_attr Farbe blau
selection-Befehle
graph-Befehle

[S : selection] select edge_atrribute [name : selection] value

RETURNTYPE: -
FUNKTION:
Nach dieser Operation enthält S alle Kanten, deren Kantenattribut [name : selection] auf value gesetzt ist und in der selection enthalten waren.
BEISPIEL:
$neue_sel select edge_attr Kosten 100
selection-Befehle
graph-Befehle

[S : selection] join|+ [SS : selection]

RETURNTYPE: -
FUNKTION:
Vereinigt die beiden selections S und SS. S enthält dann die Objekte beider selections. (identisch mit [S : selection] add [SS : selection] {node|edge [i : integer]})
BEISPIEL:
$neue_sel + $ein_knoten
selection-Befehle
graph-Befehle

[S : selection] setminus|- [SS : selection]

RETURNTYPE: -
FUNKTION:
Entfernt die Objekte der selections SS aus S.
BEISPIEL:
$neue_sel - $ein_knoten
selection-Befehle
graph-Befehle

[S : selection] intersect|& [SS : selection]

RETURNTYPE: -
FUNKTION:
Nach dieser Operation enthält S nur noch Objekte, die in S und SS enthalten waren. (Schnittmenge beider selections)
BEISPIEL:
$neue_sel & $ein_knoten
selection-Befehle
graph-Befehle

[S : selection] {print}

RETURNTYPE: [string]
FUNKTION:
Gibt die selection in textueller Form auf die Standardausgabe aus. Der gleiche Befehl wird auch ausgeführt, wenn eine [selection] ohne Befehl aufgerufen wird.
BEISPIEL:
$neue_sel
selection-Befehle
graph-Befehle