The Simple Domain Modeling Language (SDML) is a small data-oriented language for constructing, documenting, and reasoning about a conceptual domain model. At it's core SDML comprises:
- a semantic model whose structure and semantics are described in RDF with an OWL ontology,
- a surface syntax for editing and sharing model artifacts, and
- a constraint language to capture model invariants not covered by the data descriptions in the surface syntax.
For more information on the language, see the documentation.
The core repositories are:
tree-sitter-sdml
-- The tree-sitter implementation of the SDML language. Note that the grammar defined in this repository is the definitive specification.rust-sdml
-- Parser and Generator libraries and a CLI for manipulating SDML source files.sdml.io
-- The documentation for the SDML language, available at https://sdml.io.
The following table demonstrates the current editor support for SDML. Note that the tree-sitter parser and TextMate
grammar alone provides multiple editor support while the Sublime Text grammar also covers the bat
command-line tool.
Repo | Tool | Highlighting | Snippets | Indentation | Folding | Linting | CLI |
---|---|---|---|---|---|---|---|
here | Emacs | Complete, using Tree-Sitter | Extensive, using abbrev-mode and skeletons |
Yes | Yes | Yes, using flycheck | Yes, including in org-mode. |
here | VSCode | Yes, using TextMate grammar | Yes, converted from TextMate | Simple | No | No | Partial |
here | TextMate | Yes, a .tmLanguage grammar |
Yes, extensive | Simple | No | No | Partial |
here | Sublime Text | Yes, a .sublime-syntax grammar |
No | No | No | No | No |
in Sublime | bat | Yes, using Sublime Text grammar | N/A | N/A | N/A | N/A | N/A |
in TextMate | Jet Brains | Yes, using TextMate Bundle | Yes | No | No | No | No |
Neovim | Using Tree-Sitter | ? | ? | ? | ? | ? |
Instructions exist for integrating tree-sitter parsers into Neovim, this is not tested.
highlightjs-sdml
-- Syntax highlighting of SDML source files in HTML resources.