Dogma

OctoMY™ dogma

Topics

  • dogma
  • architecture

Here's the markdown version of the provided HTML snippet:

Contents

Introduction

Dogma is a declarative translation unit that describes all aspects of a node. It is written in a special json based schema that the node can interpret to set itself up with the correct configuration.

The configuration covers the following areas:

Structure

The file contains one root element with the following parts:

The main directive section must contain the ID of the node which matches the key-pair in the key-store for the node. If this has not been specified correctly the robot will enter a vegetative safety state and will not respond to any commands.

References & inlining

Detail sections may be inlined directly where they are used or they may be referenced by a hashtag followed by their unique name.

Example of in-lining:

"directive": {
    "name": "A113",
    "description": "Dispose of the plant",
    "secret": {"text": "THIS IS THE SECRET DON'T TELL ANYONE!!"}
}

Example of reference:

"secret": {
    "name": "A113SECRET",
    "text": "THIS IS THE SECRET DON'T TELL ANYONE!!"
}
"directive": {
    "name": "A113",
    "description": "Dispose of the plant",
    "secret": "#A113SECRET"
}

The benefit of in-lining is obviously that it for simple cases saves a lot of lines. The benefit of references is that several sections may reference the same secondary section, making for less copy-pasting and sources of error. Also if many reference it there is a a possibility of considerable savings in number of lines.