DOT er et grafisk beskrivelsessprog .
En graf beskrevet i DOT-sproget er normalt en tekstfil med filtypenavnet .gv eller .dot i et format , der er forståeligt for en person og et behandlingsprogram .
I grafisk form er grafer beskrevet i DOT-sproget repræsenteret ved hjælp af specielle programmer, såsom Graphviz .
Selvom sproget accepterer standardudvidelserne .gv og .dot , bør det første valg, .gv , foretrækkes , fordi .dot-udvidelsen bruges i Microsoft Office 2003 [1] .
Grafstrukturen i DOT-sproget er beskrevet som en liste over undergrafer, hvor hvert element er en konstruktion:
graf % grafnavn% { }indeni (i krøllede parenteser - { }) er der kommentarer og instruktioner, der beskriver undergrafen. Instruktionerne beskriver toppunkterne og kanterne af målgrafen og er adskilt af et semikolon - ; .
DOT-sproget understøtter kommentarer i C- og C++-stil, // og /**/, såvel som #-symbolet, der bruges til disse formål i nogle programmeringssprog som det første tegn i en enkelt-linjes kommentar.
// En linje kommentar. # En linje kommentar. /* Multi -line kommentar. */En ikke-rettet graf i DOT-sproget er beskrevet af en liste over knudepunkter og kanter, repræsenteret ved navnet på knudepunkterne og en dobbelt tankestreg (--) mellem de tilknyttede knudepunkter.
graf grafnavn { a ; b ; c ; d ; a - b ; b - c ; b - d ; }Eller tilsvarende, udeladelse af overflødige beskrivelser:
graf grafnavn { a - b - c ; b - d ; } Instrueret grafEn rettet graf i DOT-sproget er beskrevet af en liste over knudepunkter og kanter, repræsenteret ved navnet på knudepunkterne og en stiliseret streg og trekant-parentespil (->) mellem de tilknyttede knudepunkter:
digraph graphname { a -> b -> c ; b - > d }Eller med overflødig beskrivelse:
digraph graphname { a ; b ; c ; d ; a -> b ; b -> c ; b - > d }Når du beskriver grafer i DOT-sproget, kan du bruge attributter, der bestemmer farven, formen og stilen af hjørner og kanter. Attributter er beskrevet i nøgle=værdi -par omgivet af firkantede parenteser ([nøgle=værdi]). For hvert element i grafen kan flere attributter defineres, adskilt af et mellemrum
graf grafnavn { // label - synligt navn på toppunktet a [ label = "Foo" ]; // form - definerer toppunktets form b [ form = kasse ]; // farve - kantfarvedefinition a -- b -- c [ farve = blå ]; // stil - definition af kantstil b - d [ stil = prikket ]; }Da DOT-sproget automatisk arrangerer elementer på en optimal måde, giver det ikke mulighed for at specificere deres positioner. Derfor er elementerne nogle gange ikke arrangeret som forventet.
Grafiske editorer bruges til at rette den visuelle præsentation.
For eksempel:
digraph g { node [ form = almindelig tekst ] A1 -> B1 A2 -> B2 A3 -> B3 A1 -> A2 [ label = f ] A2 -> A3 [ label = g ] B2 -> B3 [ label = "g'" ] B1 -> B3 [ label = "(gof)'" haleport = s hovedport = s ] { rang = samme ; A1 A2 A3 _ { rang = samme ; B1 B2 B3 } }Til at repræsentere grafer beskrevet i DOT-sproget bruges mange programmer, widgets og biblioteker, herunder: