डीओटी (ग्राफ़ विवरण भाषा)

DOT एक ग्राफ़ (अलग गणित) विवरण भाषा है। डीओटी ग्राफ़ आम तौर पर फ़ाइल नाम एक्सटेंशन जीवी या डॉट वाली कम्प्यूटर फाइल होती हैं। 2007 से पहले माइक्रोसॉफ्ट वर्ड के संस्करणों द्वारा उपयोग किए जाने वाले एक्सटेंशन डॉट के साथ भ्रम से बचने के लिए जीवी एक्सटेंशन को प्राथमिकता दी जाती है। विभिन्न प्रोग्राम DOT फ़ाइलों को संसाधित कर सकते हैं। कुछ, जैसे डॉट, नीटो, ट्वोपी, सर्को, एफडीपी और एसएफडीपी, एक डीओटी फ़ाइल को पढ़ सकते हैं और इसे ग्राफिकल रूप में प्रस्तुत कर सकते हैं। अन्य, जैसे कि gvpr, gc, acyclic, ccomps, sccmap, और tred, DOT फ़ाइलें पढ़ते हैं और प्रस्तुत ग्राफ़ पर गणना करते हैं। अंत में, अन्य, जैसे लेफ्टी, डॉटी और ग्रेप्पा, एक इंटरैक्टिव इंटरफ़ेस प्रदान करते हैं। GVedit टूल एक टेक्स्ट एडिटर को नॉनइंटरएक्टिव इमेज व्यूअर के साथ जोड़ता है। अधिकांश प्रोग्राम ग्रप्ह्वइज़ पैकेज का हिस्सा हैं या आंतरिक रूप से इसका उपयोग करते हैं।

अप्रत्यक्ष ग्राफ़
सबसे सरल रूप में, डीओटी का उपयोग ग्राफ़ (अलग-अलग गणित)#अप्रत्यक्ष ग्राफ़ का वर्णन करने के लिए किया जा सकता है। एक अप्रत्यक्ष ग्राफ वस्तुओं के बीच सरल संबंध दिखाता है, जैसे लोगों के बीच दोस्ती। ग्राफ़ कीवर्ड का उपयोग एक नया ग्राफ़ शुरू करने के लिए किया जाता है, और नोड्स को घुंघराले ब्रेसिज़ के भीतर वर्णित किया जाता है। नोड्स के बीच संबंध दिखाने के लिए डबल-हाइफ़न (--) का उपयोग किया जाता है।

निर्देशित ग्राफ़
अप्रत्यक्ष ग्राफ़ के समान, डीओटी ग्राफ़ (असतत गणित)#निर्देशित ग्राफ़ का वर्णन कर सकता है, जैसे प्रवाह संचित्र और निर्भरता ट्री (ग्राफ़ सिद्धांत)। सिंटैक्स अप्रत्यक्ष ग्राफ़ के समान है, सिवाय इसके कि ग्राफ़ शुरू करने के लिए डिग्राफ कीवर्ड का उपयोग किया जाता है, और नोड्स के बीच संबंध दिखाने के लिए एक तीर (->) का उपयोग किया जाता है।

गुण
डीओटी फाइलों में ग्राफ़, नोड्स और किनारों पर विभिन्न विशेषताओं को लागू किया जा सकता है। ये विशेषताएँ रंग, आकार और रेखा शैलियों जैसे पहलुओं को नियंत्रित कर सकती हैं। नोड्स और किनारों के लिए, एक या अधिक विशेषता-मूल्य जोड़े को एक कथन के बाद और अर्धविराम (जो वैकल्पिक है) से पहले वर्गाकार कोष्ठक ([]) में रखा जाता है। ग्राफ़ विशेषताओं को ग्राफ़ तत्व के अंतर्गत प्रत्यक्ष विशेषता-मूल्य जोड़े के रूप में निर्दिष्ट किया जाता है, जहां कई विशेषताओं को अल्पविराम से अलग किया जाता है या वर्ग कोष्ठक के कई सेटों का उपयोग किया जाता है, जबकि नोड विशेषताओं को एक बयान के बाद रखा जाता है जिसमें केवल नोड का नाम होता है, लेकिन नहीं बिंदुओं के बीच संबंध.

HTML जैसे लेबल केवल ग्राफ़विज़ के उन संस्करणों पर उपलब्ध हैं जो नवंबर 2003 के मध्य से नए हैं, विशेष रूप से, उन्हें रिलीज़ 1.10 का हिस्सा नहीं माना जाता है।

टिप्पणियाँ
डॉट C और C++ स्टाइल सिंगल लाइन और मल्टीपल लाइन टिप्पणी (कंप्यूटर प्रोग्रामिंग)  को सपोर्ट करता है। इसके अलावा, यह उन रेखाओं को नजरअंदाज कर देता है जिनके पहले अक्षर के रूप में संख्या चिह्न (#) होता है।

एक सरल उदाहरण
निम्नलिखित एक उदाहरण स्क्रिप्ट है जो एटैन अणु की बंधन संरचना का वर्णन करती है। यह एक अप्रत्यक्ष ग्राफ़ है और इसमें नोड विशेषताएँ शामिल हैं जैसा कि ऊपर बताया गया है।

लेआउट प्रोग्राम
डीओटी भाषा एक ग्राफ़ को परिभाषित करती है, लेकिन ग्राफ़ को प्रस्तुत करने के लिए सुविधाएं प्रदान नहीं करती है। ऐसे कई प्रोग्राम हैं जिनका उपयोग डीओटी भाषा में ग्राफ़ को प्रस्तुत करने, देखने और हेरफेर करने के लिए किया जा सकता है:

सामान्य

 * ग्राफ़विज़ - स्केलेबल वेक्टर ग्राफिक्स, पीडीएफ, पोर्टेबल नेटवर्क ग्राफ़िक्स  आदि जैसे विभिन्न प्रारूपों में ग्राफ़ को हेरफेर और प्रस्तुत करने के लिए सीएलआई उपयोगिताओं और पुस्तकालयों का एक संग्रह।
 * डॉट - बीच रूपांतरण के लिए सीएलआई उपकरण .dot और अन्य प्रारूप

जावास्क्रिप्ट

 * कैनविज़ – डीओटी फाइलों को प्रस्तुत करने के लिए एक जावास्क्रिप्ट लाइब्रेरी
 * कूदने की हिम्मत करो – विज़.जेएस और डी3.जेएस पर आधारित एक जावास्क्रिप्ट लाइब्रेरी जो डीओटी ग्राफ़ प्रस्तुत करती है और ग्राफ़ और इंटरैक्टिव ग्राफ़ हेरफेर के बीच एनिमेटेड बदलाव का समर्थन करती है
 * फोर्स.जे.एस – एक जावास्क्रिप्ट लाइब्रेरी जो नेटवर्क ग्राफ़ के लिए इनपुट के रूप में डीओटी को स्वीकार करती है।
 * विज़.जेएस - ग्राफ़विज़ का एक जावास्क्रिप्ट पोर्ट जो ब्राउज़र में इसका उपयोग करने के लिए एक सरल आवरण प्रदान करता है।
 * hpcc-js/wasm ग्राफ़विज़ – विज़.जेएस के समान ग्राफ़विज़ के लिए एक तेज़ WASM लाइब्रेरी

जावा

 * जपहि – सभी प्रकार के नेटवर्क और जटिल प्रणालियों, गतिशील और श्रेणीबद्ध ग्राफ़ के लिए एक इंटरैक्टिव विज़ुअलाइज़ेशन और अन्वेषण मंच
 * ग्रेप्पा – ग्राफविज़ से जावा का आंशिक पोर्ट (प्रोग्रामिंग भाषा)
 * ग्राफविज़-जावा – ग्राफविज़ से जावा (प्रोग्रामिंग भाषा) का एक खुला स्रोत आंशिक पोर्ट github.com पर उपलब्ध है
 * ZGRव्यूअर – एक डीओटी दर्शक

अन्य

 * बेलुगिंग – एक पायथन (प्रोग्रामिंग भाषा) - और डीओटी और बेलुगा एक्सटेंशन का Google क्लाउड प्लेटफ़ॉर्म-आधारित दर्शक
 * dot2tex – फ़ाइलों को DOT से PGF/TikZ या PSTricks में परिवर्तित करने का एक प्रोग्राम, जो दोनों LaTeX में प्रस्तुत किए गए हैं
 * OmniGraffle – macOS के लिए एक डिजिटल चित्रण एप्लिकेशन जो DOT के एक सबसेट को आयात कर सकता है, एक संपादन योग्य दस्तावेज़ तैयार कर सकता है (लेकिन परिणाम को DOT पर वापस निर्यात नहीं किया जा सकता है)
 * ट्यूलिप (सॉफ्टवेयर) – C++ में एक सॉफ्टवेयर ढांचा जो विश्लेषण के लिए DOT फ़ाइलें आयात कर सकता है
 * विज़ियरएफएक्स – ActionScript  में एक अपाचे फ्लेक्स ग्राफ़ रेंडरिंग लाइब्रेरी

सीमाएँ
जबकि डीओटी प्रारूप उपयोगकर्ता को स्थितीय विशेषताओं के माध्यम से लेआउट विवरण निर्दिष्ट करने की अनुमति देता है, अधिकांश उपकरण स्वचालित लेआउट एल्गोरिदम पर भरोसा करते हैं। ये एल्गोरिदम सर्वोत्तम प्रयास हैं और कभी-कभी अवांछनीय परिणाम उत्पन्न करते हैं।

उदाहरण के लिए: 'एक छवि जो अनुचित रूप से प्रस्तुत की गई प्रतीत होती है' शीर्षक वाली छवि में प्रस्तुति संबंधी समस्याएं हैं। दाईं ओर का वर्ग पूर्ण वर्ग नहीं है, और कुछ लेबल अपने तीरों के साथ गलत संरेखित हैं (जैसे (जी ओ एफ)')।

इसे वेक्टर ग्राफ़िक्स संपादक के साथ ठीक किया जा सकता है। कुछ मामलों में, किसी स्थिति को निर्दिष्ट करने के लिए पॉज़ विशेषता और ग्राफ़ को वर्गाकार करने के लिए वज़न विशेषता का उपयोग करके भी इसे ठीक किया जा सकता है।

यह भी देखें

 * लिस्प (प्रोग्रामिंग भाषा) जैसे प्रोग्राम ट्री को डीओटी भाषा में बदलने के लिए lisp2dot टूल। आनुवंशिक प्रोग्रामिंग के साथ उपयोग के लिए डिज़ाइन किया गया।

बाहरी संबंध

 * DOT tutorial and specification
 * Drawing graphs with dot
 * Node, Edge and Graph Attributes
 * Node Shapes
 * Gallery of examples
 * Online graph visualization in SVG
 * Boost Graph Library