Lektion 1: Mein erster Graph

Ein Graph wird wie folgt angegeben:

graph: {     }

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 dem­selben 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 be­schriftet. 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. An­fü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 Kom­mentare 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 iden­tisch sein. Identische Beschriftungen für mehrere/alle Knoten kann man bequem mithilfe von Globalattributen angeben.

Hoch