DEML (DAG Elevation Markup Language) DEML is a markup language specifically designed for representing Directed Acyclic Graphs (DAGs), focusing on their properties that typical graph languages like Graphviz's DOT or Mermaid JS do not leverage. --- Concept and Design DAGs as Rivers Analogy: DEML uses the analogy that DAGs are like rivers where water flows downstream, never upstream. Nodes at the same elevation cannot be inputs/outputs of each other. Elevation Markers: Represented by ---- on a new line, separating clusters of nodes at the same elevation. Ordering: Elevation clusters' order matters while nodes within the same elevation are unordered. Node Definition: A node is defined by the first word in a line. Output nodes are indicated by > and input nodes by <. Multiple inputs/outputs are separated by |. Commands Assignment: Nodes can have shell commands assigned with =. Example snippet: --- Integration with Dagrs Library Dagrs: A Rust library to execute tasks with DAG dependencies. DEML integrates by allowing command assignment to nodes. DEML files can be run via dag-rs CLI: Comparison with YAML config for Dagrs: YAML example: Equivalent DEML snippet: --- Conversion to Mermaid JS DEML files can be converted to Mermaid Diagram files .mmd with: Mermaid live editor available at mermaid.live to render diagrams. --- Goals Achieved by DEML Introducing an elevation-based DAG markup syntax. Running DAGs with the dag-rs Rust library. Converting DEML to Mermaid diagrams. Syntax highlighting support (tree-sitter-deml). Planned: Syntax for labeling edges. --- Motivation The language addresses the annoyance in other languages where function or node declaration order matters undesirably by making declaration order an intended feature for DAGs. --- Licensing DEML is dual-licensed under: Apache License 2.0 (LICENSE-APACHE) MIT License (LICENSE-MIT) At users' option. --- Repository Overview Owner: Mcmartelle Repository: deml Description: The Directed Acyclic Graph Elevation Markup Language License: Apache-2.0 and MIT Language: Rust (100%) Stars: 10 Forks: 0 Watchers: 1 Commits: 23 on main branch Files: README.md Cargo.toml .gitignore LICENSE-APACHE LICENSE-MIT src/ directory assets/ directory --- Additional Notes Provides an example image illustrating river analogy for DAGs. Encourages contributions under dual license terms. Offers commands and integration examples to aid adoption and usage. --- Summary DEML is a dedicated markup language for Directed Acyclic Graphs that uses an elevation-based approach for node ordering and dependencies. It simplifies human understanding, supports integration with Rust DAG execution libraries, and allows converting to visual formats like Mermaid diagrams. The project is open-source under Apache and MIT licenses and is actively developed with syntax highlighting and additional features planned.