DOT nyelv

A Wikipédiából, a szabad enciklopédiából

A DOT egy szöveges gráfleíró nyelv. Gráfoknak olyan egyszerű leírását adja, amely emberek és számítógápek által egyaránt olvasható. A DOT nyelvű fájlok általában .gv (vagy .dot) kiterjesztésűek. Mivel a .dot kiterjesztést a Microsoft Office is használja[1], szerencsésebb a .gv kiterjesztés választása.

A DOT fájlokat számos programmal feldolgozhatjuk. Egy részük - például dot, neato, twopi, circo, fdp és sfdp - a beolvasott DOT fájlt grafikus formában jeleníti meg. Mások - például gvpr, gc, accyclic, ccomps, sccmap és tred - a beolvasott DOT fájlon számításokat végeznek. Megint mások - például GVedit, KGraphEditor, lefty, dotty és grappa - interaktív felhasználói felületet biztosítanak. A felsorolt programok legtöbbje a Graphviz szoftvercsomag része, vagy azt használja a háttérben.

Szintaxis[szerkesztés | forrásszöveg szerkesztése]

Gráftípusok[szerkesztés | forrásszöveg szerkesztése]

Irányítatlan gráfok[szerkesztés | forrásszöveg szerkesztése]

Irányítatlan gráf

A DOT nyelv legegyszerűbb felhasználása irányítatlan gráfok leírása. Irányítatlan gráffal objektumok köyötti egyszerű relációkat fejezhetünk ki, páldául emberek közötti barátsági kapcsolatokat. Új gráf kezdetének jelölésére a graph kulcsszót használjuk. Ezt követik a gráf csúcsai kapcsos zárójelek között. A csúcsok közötti kettős kötőjel (‑‑) jelöli az éleket.

 
 graph graf_neve {
     a -- b -- c;
     b -- d;
 }


Irányított gráfok[szerkesztés | forrásszöveg szerkesztése]

Irányított gráf

Az irányítatlan gráfokhoz hasonlóan DOT nyelven irányítatott gráfokat, páldául folyamatábrákat, függőségi fákat is felírhatunk. Az irányított gráfokat a digraph kulcsszó, csúcsai közötti éleket nyíl (->) jelöli.

 digraph graf_neve {
     a -> b -> c;
     b -> d;
 }


Tulajdonságok[szerkesztés | forrásszöveg szerkesztése]

Gráfábrázolás tulajdonságok megadásával

A DOT fájlok a gráfokra, csúcsokra és az élekre vonatkozó tulajdonságok előírását is tartalmazhatják[2].
A tulajdonságok megadásával állíthatjuk be az objektumok színét, alakját, vonalstílusát. A csúcsok és élek esetében szögletes zárójelben ([]) kulcs-érték párokat írhatunk a kifejezések után, a pontosvessző elé. A teljes gráfra vonatkozó tulajdonságok a gráf nyitójele után sima kulcs-érték párokként szerepelnek. Több egymást követő tulajdonságot vesszővel és szóközzel választunk el egymástól. A csúcsok tulajdonságait olyan kifejezéssel adhatjuk meg, amelyek csak a csúcs nevét tartalmazzák, élkapcsolatokat nem.

 graph graf_neve {
     // Ez az egész gráfra vonatkozó tulajdonság: minden rajta lévő objektum méretét állítja
     size="1,1";
     // A label tulajdonság itt egy csúcs címkéjét adja meg
     a [label="Foo"];
     // A shape tulajdonsággal itt a csúcs alakját határozzuk meg (itt: box, téglalap)
     b [shape=box];
     // Itt az élek vonalstílusát befolyásolja a color és a style tulajdonság
     a -- b -- c [color=blue];
     b -- d [style=dotted];
 }


Megjegyzések[szerkesztés | forrásszöveg szerkesztése]

A DOT támogatja a C és C++ stílusú megjegyzéseket. Ezek mellett figyelmen kívül hagyja még a kettőskereszt (#) jellel kezdődő sorokat is.

 // Ez egy egysoros megjegyzés.
 /* Ez meg
    többsoros
    megjegyzés. */
 # Az ilyen sorokat sem veszi figyelembe.


Példa[szerkesztés | forrásszöveg szerkesztése]

Egy irányított fagráf

Az alábbi példában előfordul teljes gráfra és egy vagy néhány csúcsra vonatkozó tulajdonságmegadás is.

digraph fa_graf {
    node [shape=circle label=""]
    { node [style=filled color=black] b c f }
    { node [shape=doublecircle style=filled color=black] a }
    a -> b -> c -> d
    a -> f -> g
    c -> e
    f -> h
    f -> i
}

Megjelenítő programok[szerkesztés | forrásszöveg szerkesztése]

DOT nyelven gráfokat definiálni lehet ugyan, de a megjelenítéshez nem nyújt segítséget. Erre több programot használhatunk:

  • Graphviz - Gráfok manipulálásira és képi előállítására szolgáló könyvtárak és segédprogramok gyűjteménye
  • Canviz - dot fájlokat renderelő JavaScript könyvtár
  • Grappa - Java csomagolókönyvtár a Graphviz könyvtárakhoz.
  • INFormation CHanGe - Python és Google Cloud párosításon alapuló nézegető, amely DOT és Beluga nyelvű bemenetet fogad.
  • Tulip - DOT fájlokat is tud importálni és analizálni.
  • OmniGraffle - képes bizonyos DOT leírások importálására, amelyek a programban tovább szerkeszthetők. (Az eredményt viszont nem lehet DOT-ként elmenteni.)
  • ZGRViewer - GraphViz/DOT megjelenítő.
  • VizierFX - Flex gráfmegjelenítő könyvtár.
  • Gephi - hálózatokat, komplex rendszereket, dinamikus és hierarchikus gráfokat interaktív módon megjelenítő és feltérképező platform.

Lásd még[szerkesztés | forrásszöveg szerkesztése]

Kategória: Programozási nyelvek

Források[szerkesztés | forrásszöveg szerkesztése]

Fordítás[szerkesztés | forrásszöveg szerkesztése]

  • Ez a szócikk részben vagy egészben a DOT_language című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel.

Külső hivatkozások[szerkesztés | forrásszöveg szerkesztése]