Skip to content

Definitions of Technical Terms Used

There are a number of terms used that refer to specific modules, objects, or other technical elements.

Neon Technologies

Some commonly used Neon technologies are described here.

Neon Core

Neon Core refers specifically to the collection of "core" Neon modules. More information about these modules can be found in the Core Modules section of this documentation.

Neon OS

Neon OS (and Neon AI OS) refers to operating systems (sometimes referred to as 'images') that include Neon Core and other software. More information can be found in the Neon OS section of this documentation.

Diana

Diana (Device Independent API for Neon AI) is a collection of microservices that run on a backend server. More information is available on GitHub.

Mana

Mana (Messagebus Application for Neon AI) is a Commandline Application for interacting with services on the Messagebus. More information is available on Github

Iris

Iris (Interactive Relay for Intelligence Systems) is a Python module and Commandline Application for interacting with services on the MQ Bus. More information is available on Github.

Operations Documentation

The Operations Documentation and other documents discussing code organization or processes use some specific terms to refer to different kinds of modules.

Plugin

Refers to a module that may be replaced by an equivalent module. These will usually extend a class from ovos-plugin-manager.

Skill

Refers to a class that extends MycroftSkill, OVOSSkill, or NeonSkill. A skill is a subset of a plugin. For the purposes of the operations documentation, a skill is distinctly different from a plugin.

Service

Refers to a module that runs as a standalone service. This often includes a Docker container that runs the service. Many plugins may be run as a standalone service, but for the purposes of the operations documentation those are considered plugins and not services.

For example, neon-audio is a service but neon-tts-plugin-coqui is not. Even though the plugin has a container with a web UI, it is a TTS plugin first.

Library

Refers to Python packages that do not expose any services or implement a specific plugin. These are often dependencies of many plugins and services.

Neon (and OVOS and Mycroft) Core

Some commonly used terms in the context of Neon (and other) Cores. See also the OVOS Docs and Mycroft Docs.

Module

"Module" is sometimes used to refer to a Neon Core Service. Note that "module" is also defined in Python.

Utterance

The text associated with something said or typed in by a user.

Intent

The calculated meaning of an utterance.

Plugin

A Python package that is optional and interchangeable. More information is available in the OVOS Plugin Manager Documentation.

Skill

An object that extends the MycroftSkill class. Skills generally provide some intent handling, but are not required to.

Note that a Python package containing a skill object is also referred to as a 'skill'

Message

A message is a specific object class defined in the mycroft-bus-client.

Skills

Some commonly used terms in the context of skills.

Intent Handler

A skill object method that is associated with an intent.

Skill Settings

A skill-specific settings object (MycroftSkill.settings).

vocab (voc)

Structured plaintext files that define a skill's known vocabulary for parsing user inputs (utterances)

dialog

Structured plaintext files that define a skill's responses.

regex (rx)

Structured plaintext files that define regex parsing for a skill.

Skill ID

A skill ID is used to identify a globally unique skill, and generally follows the format of <skill_name>.<skill_author>. For most skills, this is specified in setup.py. For older skills without a setup.py the skill ID is specified as the directory containing the skill's __init__.py; tools like msm and osm install skills to directories matching the usual format, using information from a git URL or skill.json.

Package name

A skill package may be created with an arbitrary package name in setup.py. This identifier is used for installing the skill or listing it as a dependency like other Python packages. If the skill is uploaded to PyPI, then it may be installed by package name using pip (i.e. pip install neon-skill-about). Older skills that are not packaged will not have a package name.

Skill Class

A skill class generally has a descriptive name and is capitalized according to Python standards. This class is referenced in the setup.py entrypoint but is otherwise not referenced directly.