DOT (ภาษาอธิบายกราฟ)
DOTเป็น ภาษาอธิบาย กราฟที่พัฒนาขึ้นเป็นส่วนหนึ่งของ โครงการ Graphvizกราฟ DOT มักจะถูกจัดเก็บเป็นไฟล์ที่มีนามสกุลไฟล์ .dot .gvหรือ .dot — .dotนามสกุล .dot.gvเป็นที่นิยมมากกว่า เพื่อหลีกเลี่ยงความสับสนกับ.dotนามสกุลไฟล์ที่ใช้โดยMicrosoft Word เวอร์ชัน ก่อนปี 2007 [ 1 ]dotยังเป็นชื่อของโปรแกรมหลักที่ใช้ประมวลผลไฟล์ DOT ในแพ็กเกจ Graphviz อีกด้วย
โปรแกรมต่างๆ สามารถประมวลผลไฟล์ DOT ได้ บางโปรแกรม เช่นdot , neato , twopi , circo , fdpและsfdpสามารถอ่านไฟล์ DOT และแสดงผลในรูปแบบกราฟิกได้ ส่วนโปรแกรมอื่นๆ เช่นgvpr , gc , acyclic , ccomps , sccmapและtred จะอ่าน ไฟล์ DOT และทำการคำนวณบนกราฟที่แสดง สุดท้ายนี้ โปรแกรมอื่นๆ เช่นlefty , dottyและgrappaจะมีอินเทอร์เฟซแบบโต้ตอบ เครื่องมือ GVedit รวมเอาโปรแกรมแก้ไขข้อความและโปรแกรมแสดงผลแบบไม่โต้ตอบเข้าไว้ด้วยกัน โปรแกรมส่วนใหญ่เป็นส่วนหนึ่งของแพ็กเกจ Graphviz หรือใช้งานภายในแพ็กเกจนี้
DOT เป็นคำย่อในเชิงประวัติศาสตร์ของ "DAG แห่งอนาคต" ซึ่งเป็นรูปแบบที่สืบทอดมาจากรูปแบบ DAG และ โปรแกรม DAGที่จัดการเฉพาะกราฟแบบไม่มีวงจรทิศทาง เท่านั้น [ 2 ]
ไวยากรณ์
ประเภทของกราฟ
กราฟแบบไม่มีทิศทาง

โดยพื้นฐานแล้ว DOT สามารถใช้เพื่ออธิบายกราฟแบบไม่มีทิศทางกราฟแบบไม่มีทิศทางแสดงความสัมพันธ์ง่ายๆ ระหว่างวัตถุ เช่น มิตรภาพแบบต่างตอบแทนระหว่างบุคคลgraphคำหลักใช้เพื่อเริ่มต้นกราฟใหม่ และโหนดจะถูกอธิบายภายในวงเล็บปีกกา เครื่องหมายขีดคู่ ( --) ใช้เพื่อแสดงความสัมพันธ์ระหว่างโหนด
// ชื่อกราฟและเครื่องหมายเซมิโคลอนเป็นตัวเลือกเสริมกราฟชื่อกราฟ{a -- b -- c ;b -- d ;}กราฟแบบมีทิศทาง

เช่นเดียวกับกราฟแบบไม่มีทิศทาง DOT สามารถใช้อธิบายกราฟแบบมีทิศทางได้เช่นผังงานและแผนผัง ความสัมพันธ์ ไวยากรณ์ จะเหมือนกับกราฟแบบไม่มีทิศทาง ยกเว้นdigraphใช้คำหลักเพื่อเริ่มต้นกราฟ และใช้ลูกศร (->) เพื่อแสดงความสัมพันธ์ระหว่างโหนด
กราฟไดกราฟชื่อ{ a -> b -> c ; b -> d ; }คุณลักษณะ

สามารถใช้แอตทริบิวต์ต่างๆ กับกราฟ โหนด และขอบในไฟล์ DOT ได้[ 3 ]แอตทริบิวต์เหล่านี้สามารถควบคุมลักษณะต่างๆ เช่น สี รูปร่าง และรูปแบบเส้น สำหรับโหนดและขอบ จะมีการวาง คู่แอตทริบิวต์-ค่า อย่างน้อยหนึ่งคู่ ไว้ในวงเล็บเหลี่ยม[]หลังคำสั่งและก่อนเครื่องหมายเซมิโคลอน (ซึ่งเป็นตัวเลือก) แอตทริบิวต์ของกราฟจะถูกระบุเป็นคู่แอตทริบิวต์-ค่าโดยตรงภายใต้องค์ประกอบกราฟ โดยแอตทริบิวต์หลายรายการจะถูกคั่นด้วยเครื่องหมายจุลภาคหรือใช้ชุดวงเล็บเหลี่ยมหลายชุด ในขณะที่แอตทริบิวต์ของโหนดจะถูกวางไว้หลังคำสั่งที่มีเฉพาะชื่อของโหนดเท่านั้น แต่ไม่มีความสัมพันธ์ระหว่างจุด
graph graphname { // คุณสมบัตินี้ใช้กับตัวกราฟเองsize = "1,1" ; // คุณสมบัติ label สามารถใช้เพื่อเปลี่ยนป้ายกำกับของโหนดa [ label = "Foo" ]; // ในที่นี้ รูปร่างของโหนดถูกเปลี่ยนb [ shape = box ]; // ขอบทั้งสองนี้มีคุณสมบัติเส้นที่แตกต่างกันa -- b -- c [ color = blue ]; b -- d [ style = dotted ]; // [style=invis] ซ่อนโหนด}รองรับป้ายกำกับที่คล้าย HTML แม้ว่าในตอนแรก Graphviz จะไม่รองรับก็ตาม[ 4 ]
ความคิดเห็น
DOT รองรับการเขียนความคิดเห็นแบบบรรทัดเดียวและหลายบรรทัดตามแบบภาษาCและC++นอกจากนี้ยังไม่สนใจบรรทัดที่มีเครื่องหมายแฮชเป็นอักขระตัวแรก เช่นเดียวกับภาษาที่ใช้การตีความหลายภาษา#
โปรแกรมจัดวาง

ภาษา DOT กำหนดนิยามของกราฟ แต่ไม่ได้มีฟังก์ชันสำหรับแสดงผลกราฟ มีโปรแกรมหลายโปรแกรมที่สามารถใช้ในการแสดงผล ดู และจัดการกราฟในภาษา DOT ได้:
ทั่วไป
โค้ด JavaScript
- Canviz –ไลบรารีJavaScriptสำหรับแสดงผลไฟล์ DOT [ 5 ]
- d3-graphviz –ไลบรารีJavaScriptที่ใช้ Viz.js และD3.jsซึ่งแสดงผลกราฟ DOT และรองรับการเปลี่ยนภาพเคลื่อนไหวระหว่างกราฟและการจัดการกราฟแบบโต้ตอบ[ 6 ]
- Vis.js –ไลบรารีJavaScriptที่รับ DOT เป็นอินพุตสำหรับกราฟเครือข่าย[ 7 ]
- Viz.js – เป็นเวอร์ชัน JavaScript ของ Graphviz ที่มี wrapper ง่ายๆ สำหรับใช้ในเบราว์เซอร์[ 8 ]
- hpcc-js/wasm Graphviz – ไลบรารี WASMที่รวดเร็วสำหรับ Graphviz คล้ายกับ Viz.js [ 9 ]
ชวา
อื่น
- Beluging –โปรแกรมแสดงผลไฟล์ DOT และ Beluga extensions ที่พัฒนาด้วยPythonและGoogle Cloud Platform
- Delineate –แอ ปพลิเคชัน RustสำหรับLinuxที่สามารถแก้ไขกราฟ DOT ที่มีคุณสมบัติครบถ้วน พร้อมการแสดงตัวอย่างแบบโต้ตอบ และส่งออกเป็นไฟล์ PNG, SVG หรือ JPEG
- dot2tex –โปรแกรมสำหรับแปลงไฟล์จาก DOT เป็นPGF/TikZหรือPSTricksซึ่งทั้งสองแบบจะแสดงผลในLaTeX [ 11 ]
- OmniGraffle –แอ ปพลิเคชัน วาดภาพดิจิทัลสำหรับmacOSที่สามารถนำเข้าไฟล์ DOT บางส่วน และสร้างเอกสารที่แก้ไขได้ (แต่ไม่สามารถส่งออกกลับไปยังไฟล์ DOT ได้)
- Tulip –เฟรมเวิร์กซอฟต์แวร์ในC++ที่สามารถนำเข้าไฟล์ DOT เพื่อการวิเคราะห์[ 12 ]
- VizierFX – ไลบรารีการเรนเดอร์กราฟ Apache FlexในActionScript [ 13 ]
หมายเหตุ
- ↑ "นามสกุลไฟล์ .dot หรือ .gv?" . marc.info . สืบค้นเมื่อ2011-03-08 .
- ↑ "ชื่อ 'dot' (รากศัพท์)" . Graphviz . 2022-11-14 . สืบค้นเมื่อ2023-07-10 .
- ↑ "คุณลักษณะของโหนด เส้นเชื่อม และกราฟ" graphviz.org สืบค้นเมื่อ12 พฤษภาคม 2017
- ↑ "รูปร่างของโหนด: ป้ายกำกับแบบ HTML" . graphviz.org . สืบค้นเมื่อ2017-05-12 .
- ↑ "canviz: graphviz บน canvas" . สืบค้นเมื่อ 2 มิถุนายน 2017 .
- ↑ "GitHub - magjac/d3-graphviz: การเรนเดอร์ DOT และการเปลี่ยนภาพเคลื่อนไหวด้วย Graphviz โดยใช้ D3" . github.com . สืบค้นเมื่อ2018-06-06 .
- ↑ "นำเข้าข้อมูลด้วยภาษา DOT" . vis.js . สืบค้นเมื่อ2018-12-22 .
- ↑ "Github - Viz.js - Graphviz ในเบราว์เซอร์ของคุณ "
- ↑ "hpcc-js/wasm" . GitHub . สืบค้นเมื่อ 2020-10-21 .
- ↑ "ZGRViewer" . zvtm.sourceforge.net . สืบค้นเมื่อ2017-05-12 .
- ↑ "dot2tex – ตัวแปลง Graphviz เป็น LaTeX" . dot2tex.readthedocs.io . 2019-11-01.
- ↑ "ซอฟต์แวร์แสดงภาพข้อมูล – Tulip" . tulip.labri.fr . สืบค้นเมื่อ2017-05-12 .
- ↑ "GitHub - gvhung/vizierfx: ส่งออกโดยอัตโนมัติจาก code.google.com/p/vizierfx" . github.com . เรียกดูเมื่อ2017-05-12 .
ดูเพิ่มเติม
ลิงก์ภายนอก
- บทแนะนำและข้อกำหนดของ DOT
- การวาดกราฟด้วยจุด
- คุณลักษณะของโหนด เส้นเชื่อม และกราฟ
- รูปร่างของโหนด
- แกลเลอรีตัวอย่าง
- Graphviz Online : แปลงและแสดงผลข้อมูล DOT ได้ทันที
- ไลบรารี Boost Graph
- lisp2dotหรือtree2dot : แปลงโครงสร้างต้นไม้ของโปรแกรมที่คล้ายกับภาษา Lispไปเป็นภาษา DOT (ออกแบบมาเพื่อใช้กับการเขียนโปรแกรมเชิงพันธุกรรม )