Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Specification

This is the specification for the diagram languages — collectively called Oxigram.

Yes, you’ve read that correct “languages”.
Oxigram follows the UNIX-philosophy1.
The Implications for Oxigram are, that it doesn’t allow composing diagram types, Instead users should create multiple smaller diagrams, of which each should have the goal to inform a reader of a specific piece of information.
This increases the readability and usefulness of diagrams, by lessening cognitive complexity.

Declarative

All diagram languages are designed to be declarative.
They don’t describe how to create the diagram, or how it should look, but instead the state of it.

Types and Extensions

In Oxigram each diagram type also has its own filetype and extensions.
The filetype and extension always match for each given diagram type.
The conversion from type to filetype is done by appending .og to the diagram type.

Example

diagram typeusecase
filetypeusecase.og
file extension.usecase.og

Formatting and Syntax

Hard Tabs

All indentation must use exactly one hard tab per nesting level.
This allows everyone to decide for themselves how wide tabs are displayed.

Double Quotes

All free-form text has to be enclosed by double quotes.

Single quotes may generally be more legible than double quotes.
However, English is the primary language used for programming and documentation around the globe. English frequently uses the apostrophe (') in contractions, because of this, single quotes are not a good option for free-form text, as they would require escaping.

Themes

Oxigram provides two themes.

  1. oxigram: an opinionated theme (default)
  2. iso19505: an ISO 195052-conform theme

  1. Do One Thing and Do It Well: https://en.wikipedia.org/wiki/Unix_philosophy

  2. https://www.iso.org/standard/52854.html