• Overview
  • Functions
  • Definitions
  • Automation Issue Lifecycle
  • Automation Issue Lifecycle - Corner Cases
  • Hints for KI-Writers
  • HIRO 6 - Transition Guide for Users having used HIRO 5 before
  • Transition from KI Syntax 5

1. Introduction

To learn about the differences between previous versions of the Knowledge Item Syntax please refer to the Transition documentation.

_KI Syntax is a formalization language for knowledge around automating processes. It is the basis for the Knowledge Items (KI).

The assumption is, the system will have access to the same information as any (privileged) user and needs to be taught how to interact with the data in order to solve "Issues". KI Syntax describes logic that processes/gathers/generates data in a certain way to contribute to the overall problem solution. This logic is stored in the Knowledge Items. HIRO Engine applies Knowledge Items to its tasks.

Application of Knowledge Items works by matching data to KI that call for these conditions and associating the KI to these data points. This is called "binding". At any time many Knowledge Items can be "bound" to the same data.

A task is stored in a theoretical data container called an "Issue", this includes the current state of data gathered/generated for this task and the history of steps and changes made to the data during processing.

A very simplified Issue could look something like this:

{
 "/Subject": "MyTestIssue",
 "/MyVariable": ["FirstValue", "SecondValue"]
}

HIRO will apply Knowledge Items to an Issue until the task is completed or it runs out of applicable knowledge. In such a case HIRO will attempt to draw in knowledge from surrounding nodes to further work on the Issue or in rare cases eject the Issue for processing by a human. A task is considered completed when all todo variables are empty/removed.

2. A Note on KI design

You should have a look at our Useful tips section

While KI Syntax borrows heavily from common programming language features like string expansion or comparison operators, it should not be confused with a programming language. KI Syntax purposefully does not natively support creation of large monolithic algorithms. The goal is to write atomized bits of knowledge that can be freely strung together by their inputs and outputs and are as re-usable for as many use cases as possible.

You can, however use the included math, JavaScript and Regular Expression functions to manipulate data in your Knowledge Items.

3. Syntax

The syntax is defined by the structure of KI described in this document and the available KI Syntax functions.

KI Syntax is written as simple text using a YAML-like approach with a 2 spaces (` `) indentation pattern.

For example:

ki
  name: "Test"
on
  A
do
  log("we have an A with value ${A}")