Il linguaggio Dot

Il linguaggio DOT è un linguaggio creato da AT&T che mi permette di descrivere dei grafi in formato testuale. Una volta descritto, posso rappresentare graficamente il grafo o la mappa concettuale in un'apposita applicazione di visualizzazione.

Per la visualizzazione di diagrammi di reti (o grafi) si utilizza principalmente l'applicazione Graphviz. Esistono diverse applicazioni in grado di interpretare il linguaggio DOT e visualizzare sia reti orientate che reti non orientate. Ad esempio, KGraphViewer su Linux. Senza contare i vari free tool di dot visualizer che si possono trovare e utilizzare su internet. Basta fare una ricerca su Google per trovarli.

Come funziona?

In un file DOT, i nodi e gli archi (i collegamenti tra i nodi) sono dichiarati all'interno di un blocco grafo.

Un grafo può essere:

  • diretto (digrafo)
    se gli archi hanno una direzione e un verso di percorrenza da un nodo a un altro
  • non diretto
    se gli archi non hanno una verso specifico ma sono tutti bidirezionali

Cos'è Graphviz

Graphviz è un software open-source ideato negli AT&T Labs Research per creare e disegnare dei grafi tramite il linguaggio DOT. Il nome "Graphviz" è l'abbreviazione di "graph visualization". Il sito ufficiale del progetto è graphviz.org

Il package di Graphviz è utilizzato in molte applicazioni per la gestione dei grafi e in vari campi di studio, tra cui l'ingegneria del software, il networking, la visualizzazione di database, il machine learning e molti altri.

Una delle caratteristiche principali di Graphviz è l'utilizzo del linguaggio di descrizione di grafici DOT, che consente agli utenti di descrivere facilmente le strutture dei grafici in un formato testuale. Graphviz interpreta le descrizioni DOT e crea un grafo, una rete o un diagramma visivo a partire dai dati.

Graphviz supporta una varietà di tipi di layout di grafici, tra cui i grafici diretti, i grafici non diretti e i grafi radiali. Può produrre output in un numero di formati grafici, tra cui PNG, SVG, PDF e molti altri.

Il software può essere utilizzato sia da riga di comando che attraverso le sue API, che sono disponibili in vari linguaggi di programmazione.

Un esempio pratico

Ecco un esempio pratico di un semplice grafo diretto descritto con il linguaggio DOT

digraph G {
A -> B;
B -> C;
C -> A;
}

In questo esempio, il grafo G ha tre nodi (A, B e C).

Le frecce -> indicano la direzione degli archi tra i nodi: da A a B, da B a C e da C a A.

Nota. Per creare questo grafo ho utilizzo la classe digraph. Pertanto, si tratta di un digrafo ossia di un grafo in cui gli archi hanno una direzione e un verso. Il grafo si chiama G e la sua descrizione si trova tra due parentesi graffe { }

Dopo aver salvato il codice in un file di testo con estensione ".dot", ad esempio "test.dot", posso visualizzarlo tramite un'applicazione viewer in grado di interpretare il linguaggio DOT.

Il grafo appare in questo modo.

un esempio di rappresentazione grafica del grafo

Allo stesso modo posso creare un grafo non orientato.

In questo caso devo utilizzare la classe graph e indicare gli archi con il simbolo "--".

graph G {
A -- B;
B -- C;
C -- A;
}

Il risultato finale è un grafo con tre nodi A, B, C in cui gli archi non hanno un verso di percorrenza prestabilito.

il grafo non orientato

Il linguaggio DOT supporta diversi attributi che posso aggiungere ai nodi e agli archi per personalizzare l'aspetto del grafo, come il colore, la forma, le etichette, ecc.

Questi attributi mi permettono di creare rappresentazioni grafiche molto più ricche e dettagliate rispetto all'esempio precedente.

E così via.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Il linguaggio DOT