دات (زبان توصیف گراف)

دات () یک زبان توصیف گراف است. نمودارهای دات اغلب با پسوند gv. یا dot. ذخیره می‌شوند. پسوند gv بیشتر ترجیح داده می‌شود تا با پسوند نسخه‌های قدیمی مایکروسافت ورد (نسخه‌های پیش از سال ۲۰۰۷) که dot بود، اشتباه نشود.

برنامه‌های مختلف می‌توانند فایل‌های DOT را پردازش کنند مانند dot, neato, twopi, circo, fdp، و sfdp که می‌توانند فایل DOT را بخوانند و به شکل گرافیکی نمایش دهند. برخی دیگر، مانند gvpr, gc, acyclic, ccomps, sccmap, و tred، فایل DOT را می‌خوانند و محاسبات را روی نمودار نشان می‌دهند. در نهایت، برخی دیگر مانند lefty, dotty، و grappa یک رابط تعاملی فراهم می‌کنند. ابزار GVedit یک ویرایشگر متن را با نمایش‌دهندهٔ تصویر غیرتعاملی ترکیب می‌کند. اکثر برنامه‌ها بخشی از بسته Graphviz هستند یا از آن استفاده می‌کنند.

ساختار

نوع گراف

گراف‌های بدون جهت 
در ساده‌ترین حالت، می‌تواند برای توصیف یک گراف بدون جهت مورد استفاده قرار گیرد. یک گراف بدون جهت روابط ساده بین اشیا، مانند دوستی بین مردم را نشان می‌دهد. کلمات کلیدی گراف برای شروع یک گراف جدید استفاده می‌شود و گره‌های درون گیومه توضیح داده می‌شوند. یک خط تیره (-) برای نشان دادن روابط بین گره‌ها استفاده می‌شود.

 // خط نقطه و نام گراف اختیاری‌ست
 graph graphname {
     a -- b -- c;
     b -- d;
 }

گراف جهت‌دار 
مشابه گراف‌های بدون جهت، DOT می‌تواند گراف‌های جهت‌دار مانند فلوچارت و درخت‌های وابستگی را توصیف کند. ساختار برای گراف‌های بدون جهت مشابه است، به جز کلید واژه digraph برای شروع گراف استفاده می‌شود و یک پیکان (->) برای نشان دادن روابط بین گره‌ها استفاده می‌شود.

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

گراف دارای ویژگی 
ویژگی‌های مختلفی را می‌توان برای نمودارها، گره‌ها و یال‌ها در فایل DOT اعمال کرد. این ویژگی‌ها می‌توانند جنبه‌هایی مثل رنگ، شکل و سبک‌های خط را کنترل کنند. برای گره‌ها و یال‌ها، یک یا چند جفت صفت-ارزش بعد از یک متن و قبل از نقطه و ویرگول (که اختیاری است) قرار می‌گیرند. ویژگی‌های نمودار به عنوان جفت‌های صفت-ارزش پایین عنصر گراف مشخص می‌شوند، که در آن ویژگی‌های چندگانه با یک کاما یا با استفاده از چند مجموعه از براکت جدا می‌شوند، در حالی که مشخصه‌های گره پس از یک متن حاوی تنها نام گره، قرار داده می‌شوند، اما نه روابط بین نقاط.

 graph graphname {
     // This attribute applies to the graph itself
     size="1,1";
     // The label attribute can be used to change the label of a node
     a [label="Foo"];
     // Here, the node shape is changed.
     b [shape=box];
     // These edges both have different line properties
     a -- b -- c [color=blue];
     b -- d [style=dotted];
     // [style=invis] hides a node.
   }

برچسب‌های HTML گونه فقط در نسخه‌های Graphviz که بعد از اواسط نوامبر ۲۰۰۳ منتشر شدند، در دسترس هستند.

توضیح درون کد 
دات از  سبک C و ++C و توضیحات چند گانه استفاده می‌کند. همچنین اگر # در ابتدای خط باشد آن خط را در نظر نمی‌گیرد.
 // This is a single line comment.
 /* This is a
    multiple line
    comment. */
 # Lines like this are also ignored.

منابع

پیوند به بیرون 

رسم نمودار
نرم‌افزارهای ریاضی