Lektion 1: Mein erster Graph
Ein Graph wird wie folgt angegeben:
Knoten und Kanten werden innerhalb des Graphen angegeben, d.h.,
zwischen den geschweiften Klammern. Die einzelnen Angaben werden durch eine
beliebige Anzahl an Leerraumzeichen (Leerzeichen, Tabulatorzeichen oder Zeilenumbrüche)
voneinander getrennt.
Ein Knoten wird wie folgt angegeben:
node: { title: "Name des Knotens" } |
Knotennamen müssen eindeutig sein, d.h., ein Graph
darf nicht mehrere Knoten mit ein und demselben Namen enthalten. Dabei
wird zwischen Groß- und Kleinschreibung unterschieden. Auch eventuelle
Leerzeichen werden berücksichtigt. Die Namen "a",
"A" und
"a " z.B. beziehen sich auf drei verschiedene Knoten.
Eine Kante wird wie folgt angegeben:
edge: { source: "Name des Quellknotens"
target: "Name des Zielknotens"
} |
Achten Sie auch hierbei auf die Groß-/Kleinschreibung und evtl. Leerzeichen in Knotennamen.
Beispiel eines einfachen Graphen:
graph: {
node: { title: "Mutter" }
node: { title: "Vater" }
node: { title: "Sohn" }
edge: { source: "Mutter" target: "Sohn" }
edge: { source: "Vater" target: "Sohn" }
} |
|
 |
Falls nicht anders angegeben, werden die Knoten bei der Visualisierung
mit ihren Namen beschriftet. Um eine andere Beschriftung für einen Knoten anzugeben,
benutzen Sie das Attribut “label”:
node: { title: "Vater"
label: "Hans Müller"
} |
|
 |
Beschriftungen können aus mehreren Zeilen bestehen:
node: { title: "Vater"
label: "Hans
Müller"
} |
|
 |
Zeilenumbrüche innerhalb der Beschriftungen können auch mittels
“\n” angegeben werden. Anführungszeichen innerhalb der Beschriftungen
müssen mit einem Backslash maskiert werden.
node: { title: "Vater"
label: "Hans Müller,\nDeckname: \"Joe\""
} |
|
 |
Die Beschreibung des Graphen kann mit Kommentaren
versehen werden. Erlaubt sind Kommentare im C-Stil (der Kommentar steht
zwischen “/*” und “*/”) und im C++-Stil
(jede Zeile des Kommentars fängt mit einem “//” an):
// Das hier ist ein
// Kommentar im C++-Stil
/* Und das hier ist ein
Kommentar im C-Stil */ |
Abschließendes Beispiel:
graph: {
// Knotenliste
node: { title: "Vater" }
node: { title: "Mutter" }
node: { title: "Sohn1" label: "Sohn\n(Kain)" }
node: { title: "Sohn2" label: "Sohn\n(Abel)" }
// Kantenliste
edge: { source: "Mutter" target: "Sohn1" }
edge: { source: "Mutter" target: "Sohn2" }
edge: { source: "Vater" target: "Sohn1" }
edge: { source: "Vater" target: "Sohn2" }
} |
|
 |
Anmerkungen
- Vor dem Doppelpunkt in den Schlüsselwörtern
“
graph:”, “node:”
und “edge:” sind keine Leerzeichen erlaubt.
- Analog zu Knoten können auch Kanten beschriftet werden.
Dies wird in einer späteren Lektion behandelt.
- Im Gegensatz zu Knotennamen können Knotenbeschriftungen
bei mehreren Knoten identisch sein. Identische Beschriftungen für mehrere/alle
Knoten kann man bequem mithilfe von Globalattributen angeben.