DOT nyelv
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]Gráftípusok
[szerkesztés]Irányítatlan gráfok
[szerkesztés]A DOT nyelv legegyszerűbb felhasználása irányítatlan gráfok leírása. Irányítatlan gráffal objektumok közö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]Az irányítatlan gráfokhoz hasonlóan DOT nyelven irányított 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]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]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]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]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
- Viz.js - 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]- Graphviz
- Gráf
- lisp2dot átalakító eszköz: Lisp (programozási nyelv)-szerű programfákat alakít DOT nyelvre. A mesterséges intelligencia területén a genetikus programozás módszeréhez használható.
Források
[szerkesztés]- ↑ File extension .dot or .gv?. (Hozzáférés: 2011. március 8.)
- ↑ Node, Edge and Graph Attributes
Fordítás
[szerkesztés]- 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. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.
További információk
[szerkesztés]- DOT bevezetés and specifikáció (angol nyelven)
- Példagyűjtemény (angol nyelven)
- Huffman-fák DOT leírását generáló webalkalmazás (angol nyelven)
- Online gráfmegjelenítés SVG formátumban Archiválva 2012. május 21-i dátummal a Wayback Machine-ben (angol nyelven)
- Boost Graph Library (angol nyelven)
- Grappa Drawing Package (angol nyelven)