Moniel notation is defined as a Parsing Expression Grammar. The language consists of a grammar and semantics that are interpreted by Ohm/JS. Result is a Abstract Syntax Tree that is further processed by Moniel Runtime.
Runtime constructs itermediate representaion of the computational graph from AST. This step includes node type resolution, managing scopes, etc. Intermediate representation graph is then used to produce JSON and ProtoBuf definitions.
Moniel IDE stands for (Integrated | Interactive) (Development | Design) (Environment | Experience), where user can interactively design model with immediate feedback. For now, this stage is limited to model definition only. However, user should be able to interactively inspect model training and model evaluation – these are partly covered by TensorBoard.
We use Ace editor customized for Moniel notation with proper syntax highlighting and basic code completion. Thanks to Fira Code font, various symbols in notation are damn gorgeous.
To visualize computational graph we use Dagre to layout the graph and Dagre-D3 as a bridge to rendering with D3.