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ésGráftípusok
szerkesztésIrányítatlan gráfok
szerkesztés![](http://upload.wikimedia.org/wikipedia/commons/thumb/3/39/DotLanguageUndirected.svg/220px-DotLanguageUndirected.svg.png)
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![](http://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/DotLanguageDirected.svg/220px-DotLanguageDirected.svg.png)
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![](http://upload.wikimedia.org/wikipedia/commons/thumb/5/52/DotLanguageAttributes.svg/220px-DotLanguageAttributes.svg.png)
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ésA 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![](http://upload.wikimedia.org/wikipedia/commons/thumb/0/07/Directed-tree.svg/225px-Directed-tree.svg.png)
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ésDOT 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)