Contents

logic
state
CYBOL Version 2016-03-07 API Specification

logic

access

count

Description

Count parts of a compound part.

Format

access/count

Example

<node name="count" channel="inline" format="access/count" model=""> <node name="count" channel="inline" format="text/cybol-path" model=".count"/> <node name="part" channel="inline" format="text/cybol-path" model=".addition_application"/> <node name="selection" channel="inline" format="text/plain" model="subsequence"/> <node name="filter" channel="inline" format="text/plain" model="summand"/> </node>

Properties
name
description
required
format
model
count
The knowledge model in which to store the result.
true
path/*
part
The part whose elements to be counted.
true
path/* | number/*
selection
The area of the elements names, to be compared. May be one of: all, suffix, prefix, subsequence. If null the element count is compared without comparison.
false
path/* | meta/type
filter
String to compare the elements with. Elements will only be counted if matching the filter string.
false
path/* | meta/type

get-channel

Description

Get a part's channel.

Format

access/get-channel

Example

<node name="get_details" channel="inline" format="access/get-channel" model=""> <node name="element" channel="inline" format="text/cybol-path" model=".app.details"/> <node name="part" channel="inline" format="text/cybol-path" model=".app.node"/> </node>

Properties
name
description
required
format
model
element
The part's element (channel).
true
path/*
part
The knowledge path to the part.
true
path/* | number/*

get-encoding

Description

Get a part's encoding.

Format

access/get-encoding

Example

<node name="get_details" channel="inline" format="access/get-encoding" model=""> <node name="element" channel="inline" format="text/cybol-path" model=".app.details"/> <node name="part" channel="inline" format="text/cybol-path" model=".app.node"/> </node>

Properties
name
description
required
format
model
element
The part's element (encoding).
true
path/*
part
The knowledge path to the part.
true
path/* | number/*

get-format

Description

Get a part's format.

Format

access/get-format

Example

<node name="get_details" channel="inline" format="access/get-format" model=""> <node name="element" channel="inline" format="text/cybol-path" model=".app.details"/> <node name="part" channel="inline" format="text/cybol-path" model=".app.node"/> </node>

Properties
name
description
required
format
model
element
The part's element (format).
true
path/*
part
The knowledge path to the part.
true
path/* | number/*

get-index

Description

Get an index.

Format

access/get-index

Example

Properties
name
description
required
format
model
index
???
true
path/*
part
The knowledge path to the part.
true
path/* | number/*
whole
???
true
path/* | number/*

get-language

Description

Get a part's language.

Format

access/get-language

Example

<node name="get_details" channel="inline" format="access/get-language" model=""> <node name="element" channel="inline" format="text/cybol-path" model=".app.details"/> <node name="part" channel="inline" format="text/cybol-path" model=".app.node"/> </node>

Properties
name
description
required
format
model
element
The part's element (language).
true
path/*
part
The knowledge path to the part.
true
path/* | number/*

get-name

Description

Get a part's name.

Format

access/get-name

Example

<node name="copy_name_of_part_1_into_model_of_part_2" channel="inline" format="access/get-name" model=""> <node name="element" channel="inline" format="text/cybol-path" model=".part_2"/> <node name="part" channel="inline" format="text/cybol-path" model=".part_1"/> </node>

Properties
name
description
required
format
model
element
The part's element (name).
true
path/*
part
The knowledge path to the part.
true
path/* | number/*

get-type

Description

Get a part's type.

Format

access/get-type

Example

<node name="copy_type_of_part_1_into_model_of_part_2" channel="inline" format="access/get-type" model=""> <node name="element" channel="inline" format="text/cybol-path" model=".part_2"/> <node name="part" channel="inline" format="text/cybol-path" model=".part_1"/> </node>

Properties
name
description
required
format
model
element
The part's element (type).
true
path/*
part
The knowledge path to the part.
true
path/* | number/*

indicate-empty

Description

Indicates if data are empty, i.e. the count is zero. The operation is ONLY usable with values of format

Format

access/indicate-empty

Example

<node name="test_empty_number_empty" channel="inline" format="access/indicate-empty" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".app.flag"/> <node name="part" channel="inline" format="text/cybol-path" model=".app.empty_number"/> </node>

Properties
name
description
required
format
model
result
The result flag, set to true on successful comparison, left untouched otherwise.
true
path/*
part
The part.
true
path/* | number/*

indicate-exists

Description

Indicates if data exist, i.e. the count is greater than zero. The operation is ONLY usable with values of format

Format

access/indicate-exists

Example

<node name="test_empty_number_exists" channel="inline" format="access/indicate-exists" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".app.flag"/> <node name="part" channel="inline" format="text/cybol-path" model=".app.empty_number"/> </node>

Properties
name
description
required
format
model
result
The result flag, set to true on successful comparison, left untouched otherwise.
true
path/*
part
The part.
true
path/* | number/*

calculate

absolute

Description

Determine the absolute value of a number.

Format

calculate/absolute

Example

<node name="absolute" channel="inline" format="calculate/absolute" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="operand" channel="inline" format="number/integer" model="1,2,3"/> <node name="type" channel="inline" format="meta/type" model="number/integer"/> </node>

Properties
name
description
required
format
model
result
The absolute value of the given number.
true
path/*
operand
... .
true
path/* | number/*
type
The number type. It has to be identical for all parametres.
true
path/* | meta/type

add

Description

Adds two numbers of the given format.

Format

calculate/add

Example

<node name="add" channel="inline" format="calculate/add" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="operand" channel="inline" format="number/integer" model="1,2,"/> <node name="type" channel="inline" format="meta/type" model="number/integer"/> </node>

Properties
name
description
required
format
model
result
The sum resulting from the addition. It initially contains the first summand.
true
path/*
operand
The second summand for the addition.
true
path/* | number/*
type
The number type. It has to be identical for all parametres.
true
path/* | meta/type

divide

Description

Divides two numbers of the given format

Format

calculate/divide

Example

<node name="divide" channel="inline" format="calculate/divide" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="operand" channel="inline" format="number/integer" model="1,2,3"/> <node name="type" channel="inline" format="meta/type" model="number/integer"/> </node>

Properties
name
description
required
format
model
result
The quotient resulting from the divison. It initially contains the dividend.
true
path/*
operand
The divisor for the division.
true
path/* | number/*
type
The number type. It has to be identical for all parametres.
true
path/* | meta/type

modulo

Description

Calculate the module of a given value.

Format

calculate/modulo

Example

<node name="modulo" channel="inline" format="calculate/modulo" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="operand" channel="inline" format="number/integer" model="2"/> <node name="type" channel="inline" format="meta/type" model="number/integer"/> </node>

Properties
name
description
required
format
model
result
The result of the modulo operation.
true
path/*
operand
The factor for the modulo.
true
path/* | number/*
type
The number type. It has to be identical for all parametres.
true
path/* | meta/type

multiply

Description

Multiplies two numbers of the given format.

Format

calculate/multiply

Example

<node name="multiply" channel="inline" format="calculate/multiply" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="operand" channel="inline" format="number/integer" model="1,2,3"/> <node name="type" channel="inline" format="meta/type" model="number/integer"/> </node>

Properties
name
description
required
format
model
result
The product resulting from the multiplication. It initially contains the first factor.
true
path/*
operand
The second factor for the multiplication.
true
path/* | number/*
type
The number type. It has to be identical for all parametres.
true
path/* | meta/type

negate

Description

Negates a given number.

Format

calculate/negate

Example

<node name="negate" channel="inline" format="calculate/negate" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="operand" channel="inline" format="number/integer" model="1,2,3"/> <node name="type" channel="inline" format="meta/type" model="number/integer"/> </node>

Properties
name
description
required
format
model
result
The output resulting from the negation.
true
path/*
operand
The number which is to negate.
true
path/* | number/*
type
The number type. It has to be identical for all parametres.
true
path/* | meta/type

reduce

Description

Not implemented yet. !REVIEW! Can be deleted?

Format

calculate/reduce

Example

Properties
name
description
required
format
model

subtract

Description

Subtracts two numbers of the given format.

Format

calculate/subtract

Example

<node name="subtract" channel="inline" format="calculate/subtract" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".result"/> <node name="operand" channel="inline" format="number/integer" model="1,2,3"/> <node name="type" channel="inline" format="meta/type" model="number/integer"/> </node>

Properties
name
description
required
format
model
result
The difference resulting from the subtraction. It initially contains the minuend.
true
path/*
operand
The subtrahend for the subtraction.
true
path/* | number/*
type
The number type. It has to be identical for all parametres.
true
path/* | meta/type

cast

byte

Description

Casts a value from one type to another.

Format

cast/byte

Example

<node name="cast_byte" channel="inline" format="cast/byte" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".part_2"/> <node name="source" channel="inline" format="number/byte" model="123"/> <node name="type" channel="inline" format="meta/type" model="number/integer"/> </node>

Properties
name
description
required
format
model
destination
The knowledge model to cast to.
true
path/*
source
The knowledge model to cast from.
true
path/* | number/*
type
The source type.
true
path/* | meta/type

character

Description

Casts a value from one type to another.

Format

cast/character

Example

<node name="cast_character" channel="inline" format="cast/character" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".part_2"/> <node name="source" channel="inline" format="text/cybol-path" model=".part_1"/> <node name="type" channel="inline" format="meta/type" model="text/plain"/> </node>

Properties
name
description
required
format
model
destination
The knowledge model to cast to.
true
path/*
source
The knowledge model to cast from.
true
path/* | number/*
type
The source type.
true
path/* | meta/type

double

Description

Casts a value from one type to another.

Format

cast/double

Example

<node name="cast_double" channel="inline" format="cast/double" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".part_2"/> <node name="source" channel="inline" format="text/cybol-path" model=".part_1"/> <node name="type" channel="inline" format="meta/type" model="number/integer"/> </node>

Properties
name
description
required
format
model
destination
The knowledge model to cast to.
true
path/*
source
The knowledge model to cast from.
true
path/* | number/*
type
The source type.
true
path/* | meta/type

integer

Description

Casts a value from one type to another.

Format

cast/integer

Example

<node name="cast_double" channel="inline" format="cast/integer" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".part_2"/> <node name="source" channel="inline" format="number/byte" model="12"/> <node name="type" channel="inline" format="meta/type" model="number/byte"/> </node>

Properties
name
description
required
format
model
destination
The knowledge model to cast to.
true
path/*
source
The knowledge model to cast from.
true
path/* | number/*
type
The source type.
true
path/* | meta/type

command

archive

Description

Archives the given data into a file.

Format

command/archive

Example

<node name="archive" channel="inline" format="command/archive" model=""> <node name="create" channel="inline" format="logicvalue/boolean" model="true"/> <node name="update" channel="inline" format="logicvalue/boolean" model="false"/> <node name="bzip2" channel="inline" format="logicvalue/boolean" model="false"/> </node>

Properties
name
description
required
format
model
create
The option for creating an archive.
false
logicvalue/boolean
update
The option for updating an archive.
false
logicvalue/boolean
bzip2
The option for using the bzip2 compression algorithm.
false
logicvalue/boolean

change-directory

Description

Changes the directory.

Format

command/change-directory

Example

<node name="change_directory" channel="inline" format="command/change-directory" model=""> <node name="directory" channel="inline" format="text/plain" model=".."/> </node>

Properties
name
description
required
format
model
directory
The directory or any other valid cd paramter.
true
text/plain

change-permission

Description

Changes the permission of a file or directory.

Format

command/change-permission

Example

<node name="chmod_file" channel="inline" format="command/change-permission" model=""> <node name="path" channel="inline" format="text/plain" model="./shell_command_change_permission/example.txt"/> <node name="user" channel="inline" format="text/plain" model="rwx"/> <node name="group" channel="inline" format="text/plain" model="rwx"/> <node name="other" channel="inline" format="text/plain" model="rw"/> <node name="recursive" channel="inline" format="logicvalue/boolean" model="true"/> <node name="verbose" channel="inline" format="logicvalue/boolean" model="false"/> <node name="silent" channel="inline" format="logicvalue/boolean" model="false"/> </node>

Properties
name
description
required
format
model
path
The path to the file or directory.
true
text/plain
user
The user rights.
true
text/plain
group
The group rights.
true
text/plain
other
The rights for anyone.
true
text/plain
recursive
change files and directories recursively
false
text/plain
silent
supress most error messages
false
text/plain
verbose
output a diagnostic for every file processed
false
text/plain

clear

Description

clear the screen

Format

command/clear

Example

<node name="clear" channel="inline" format="command/clear" model=""> </node>

Properties
name
description
required
format
model

Description

Format

Example

Properties
name
description
required
format
model

Description

Format

Example

Properties
name
description
required
format
model

copy-file

Description

Copies the file resource to a destination.

Format

command/copy

Example

Properties
name
description
required
format
model

create-folder

Description

Creates a folder.

Format

command/create-folder

Example

<node name="create_folder" channel="inline" format="command/create-folder" model=""> <node name="path" channel="inline" format="text/plain" model="./shell_command_create_folder/i_am_a_created_folder"/> </node>

Properties
name
description
required
format
model
path
path to the directory
true
text/plain

Description

Format

Example

Properties
name
description
required
format
model

Description

Format

Example

Properties
name
description
required
format
model

diff

Description

Compares two files.

Format

command/diff

Example

<node name="diff" channel="inline" format="command/diff" model=""> <node name="file1" channel="inline" format="text/plain" model="shell_command_diff\diff1.txt"/> <node name="file2" channel="inline" format="text/plain" model="shell_command_diff\diff2.txt"/> </node>

Properties
name
description
required
format
model
file1
first file to compare
true
text/plain
file2
second file to compare
true
text/plain

Description

Format

Example

Properties
name
description
required
format
model

Description

Format

Example

Properties
name
description
required
format
model

Description

Format

Example

Properties
name
description
required
format
model

echo

Description

Echos the message to standard output.

Format

command/echo

Example

<node name="echo" channel="inline" format="command/echo" model=""> <node name="message" channel="inline" format="text/plain" model="hello, this is an echo over standard output"/> </node>

Properties
name
description
required
format
model
message
the message which should be directed to the standard output
false
text/plain

Description

Format

Example

Properties
name
description
required
format
model

Description

Format

Example

Properties
name
description
required
format
model

grep

Description

Searches for pattern in file.

Format

command/grep

Example

<node name="grep" channel="inline" format="command/grep" model=""> <node name="pattern" channel="inline" format="text/plain" model="test"/> <node name="file" channel="inline" format="text/plain" model="shell_command_grep/grep.txt"/> </node>

Properties
name
description
required
format
model
pattern
the pattern to search for
true
text/plain
file
the file to search in
true
text/plain

Description

Format

Example

Properties
name
description
required
format
model

Description

Format

Example

Properties
name
description
required
format
model

Description

Format

Example

Properties
name
description
required
format
model

Description

Format

Example

Properties
name
description
required
format
model

Description

Format

Example

Properties
name
description
required
format
model

Description

Format

Example

Properties
name
description
required
format
model

Description

Format

Example

Properties
name
description
required
format
model

Description

Format

Example

Properties
name
description
required
format
model

Description

Format

Example

Properties
name
description
required
format
model

Description

Format

Example

Properties
name
description
required
format
model

move

Description

Moving directories from a path to another.

Format

command/move

Example

<node name="move_file" channel="inline" format="command/move" model=""> <node name="source" channel="inline" format="text/plain" model="./shell_command_move_file/original.txt"/> <node name="destination" channel="inline" format="text/plain" model="./shell_command_move_file/moved_and_please_do_not_commit_me.txt"/> <node name="force" channel="inline" format="logicvalue/boolean" model="false"/> <node name="interactive" channel="inline" format="logicvalue/boolean" model="true"/> <node name="verbal" channel="inline" format="logicvalue/boolean" model="true"/> </node>

Properties
name
description
required
format
model
source
the path of the directory which sould be moved
true
text/plain
destination
the path of the directory which sould be moved
true
text/plain
force
the force option (never ask for permission to move any directories)
false
logicvalue/boolean
interactive
the interactive option (askes everytime for permission of moving a directory)
false
logicvalue/boolean
verbal
the verbal option (shows what have been moved)
false
logicvalue/boolean

Description

Format

Example

Properties
name
description
required
format
model

ping

Description

Pings a given host.

Format

command/ping

Example

<node name="ping" channel="inline" format="command/ping" model=""> <node name="host" channel="inline" format="text/plain" model="www.google.com"/> <node name="count" channel="inline" format="text/plain" model="5"/> <node name="interface" channel="inline" format="text/plain" model="eth0"/> </node>

Properties
name
description
required
format
model
host
the host to be pinged
true
text/plain
count
count of ping packets to send
false
text/plain
interface
interface to send packets on
false
text/plain

Description

Format

Example

Properties
name
description
required
format
model

remove

Description

Moving directories from one path to another..

Format

command/remove

Example

<node name="remove_file" channel="inline" format="command/remove" model=""> <node name="path" channel="inline" format="text/plain" model="./shell_command_remove_file/do_not_commit_if_this_is_deleted.txt"/> <node name="force" channel="inline" format="logicvalue/boolean" model="true"/> <node name="interactive" channel="inline" format="logicvalue/boolean" model="true"/> <node name="recursive" channel="inline" format="logicvalue/boolean" model="false"/> <node name="verbal" channel="inline" format="logicvalue/boolean" model="true"/> </node>

Properties
name
description
required
format
model
path
the path including wildcards for deleting directories
true
text/plain
interactive
the interactive option (askes everytime for permission of deleting a directory)
false
logicvalue/boolean
recursive
the recursvie option (deletes all of its subdirectories)
false
logicvalue/boolean
verbal
the verbal option (shows what have been moved)
false
logicvalue/boolean

Description

Format

Example

Properties
name
description
required
format
model

Description

Format

Example

Properties
name
description
required
format
model

Description

Format

Example

Properties
name
description
required
format
model

tape-archiver

Description

Moving files and directories from a path to another..

Format

command/tape-archiver

Example

<!-- pack --> <node name="pack_text_file_with_tape_archiver" channel="inline" format="command/tape-archiver" model=""> <node name="source" channel="inline" format="text/plain" model="./shell_command_tape_archiver_pack/i_should_be_packed_soon.txt"/> <node name="destination" channel="inline" format="text/plain" model="./shell_command_tape_archiver_pack/i_am_packed_now.tar"/> <node name="force" channel="inline" format="logicvalue/boolean" model="false"/> <node name="gzip" channel="inline" format="logicvalue/boolean" model="false"/> <node name="unpack" channel="inline" format="logicvalue/boolean" model="false"/> <node name="recursive" channel="inline" format="logicvalue/boolean" model="false"/> <node name="verbal" channel="inline" format="logicvalue/boolean" model="true"/> </node> <!-- unpack --> <node name="unpack_tar_with_text_file" channel="inline" format="command/tape-archiver" model=""> <node name="source" channel="inline" format="text/plain" model="./shell_command_tape_archiver_unpack/package.tar"/> <node name="destination" channel="inline" format="text/plain" model="./shell_command_tape_archiver_unpack"/> <node name="force" channel="inline" format="logicvalue/boolean" model="false"/> <node name="gzip" channel="inline" format="logicvalue/boolean" model="false"/> <node name="unpack" channel="inline" format="logicvalue/boolean" model="true"/> <node name="recursive" channel="inline" format="logicvalue/boolean" model="false"/> <node name="verbal" channel="inline" format="logicvalue/boolean" model="true"/> </node>

Properties
name
description
required
format
model
source
the source for archiving
true
text/plain
destination
the destination where the source is being archived
true
text/plain
force
the force option for not asking for permission for overwriting files or directories
false
logicvalue/boolean
gzip
the gunzip option to indicate gunzip compression or extraction
false
logicvalue/boolean
unpack
the option for unpacking / extraction or else it will pack
false
logicvalue/boolean
recursive
???
false
logicvalue/boolean
verbal
shows which files and directories are being copied
false
logicvalue/boolean

Description

Format

Example

Properties
name
description
required
format
model

Description

Format

Example

Properties
name
description
required
format
model

Description

Format

Example

Properties
name
description
required
format
model

Description

Format

Example

Properties
name
description
required
format
model

Description

Format

Example

Properties
name
description
required
format
model

Description

Format

Example

Properties
name
description
required
format
model

word-count

Description

Count different occurences.

Format

command/word-count

Example

<node name="chmod_file" channel="inline" format="command/word-count" model=""> <node name="path" channel="inline" format="text/plain" model="./shell_command_word_count/example.txt"/> <node name="bytes" channel="inline" format="logicvalue/boolean" model="false"/> <node name="chars" channel="inline" format="logicvalue/boolean" model="true"/> <node name="lines" channel="inline" format="logicvalue/boolean" model="true"/> <node name="max-line-length" channel="inline" format="logicvalue/boolean" model="false"/> <node name="words" channel="inline" format="logicvalue/boolean" model="true"/> </node>

Properties
name
description
required
format
model
path
path to the file or directory
true
text/plain
bytes
Outputs the number of bytes
false
logicvalue/boolean
chars
Outputs the number of chars
false
logicvalue/boolean
lines
Outputs the number of lines
false
logicvalue/boolean
max-line-length
Outputs the length of the longest line
false
logicvalue/boolean
words
Outputs the number of words
false
logicvalue/boolean

communicate

receive

Description

Receives a message via the given channel.

Format

communicate/receive

Example

<node name="initialise" channel="inline" format="communicate/receive" model=""> <node name="channel" channel="inline" format="meta/channel" model="file"/> <node name="encoding" channel="inline" format="meta/encoding" model="utf-8"/> <node name="language" channel="inline" format="meta/language" model="text/cybol"/> <node name="format" channel="inline" format="meta/format" model="element/part"/> <node name="message" channel="inline" format="text/plain" model="ui/app.cybol"/> <node name="model" channel="inline" format="text/cybol-path" model=".app"/> </node>

Properties
name
description
required
format
model
channel
the channel via which to receive the message (terminal, display, www etc.)
true
path/* | meta/channel
encoding
the encoding (utf-8, utf-32 for inline channel etc.)
true
meta/encoding
language
the language of the data received (cybol, http_request, xdt etc.)
true
meta/language
format
the format of the data received (boolean, character, integer etc.)
true
meta/format
message
the source (knowledge template) from where to receive data, e.g. the gui root window
true
path/knowledge | text/plain
meta
the source (knowledge template) from where to receive meta data (properties)
false
text/cybol-path
model
the model to be filled with the data received
true
text/cybol-path
minimum
the minimum number of bytes to be received in one call of the read function
false
number/integer
maximum
the maximum number of bytes to be received in one call of the read function
false
number/integer
style
the style of socket communication, only if channel is www, cyboi or similar
false
???

send

Description

Sends a message via the given channel.

Format

communicate/send

Example

<node name="print_adc" channel="inline" format="communicate/send" model=""> <node name="channel" channel="inline" format="meta/channel" model="terminal"/> <node name="encoding" channel="inline" format="meta/encoding" model="utf-8"/> <node name="language" channel="inline" format="meta/language" model="message/cli"/> <node name="format" channel="inline" format="meta/format" model="text/plain"/> <node name="message" channel="inline" format="text/plain" model="Current adc rounded in voltage:"/> <node name="newline" channel="inline" format="logicvalue/boolean" model="true"/> </node> <node name="print_adc_value" channel="inline" format="communicate/send" model=""> <node name="channel" channel="inline" format="meta/channel" model="terminal"/> <node name="encoding" channel="inline" format="meta/encoding" model="utf-8"/> <node name="language" channel="inline" format="meta/language" model="message/cli"/> <node name="format" channel="inline" format="meta/format" model="number/fraction-decimal"/> <node name="message" channel="inline" format="text/cybol-path" model=".settings.adc"/> <node name="newline" channel="inline" format="logicvalue/boolean" model="true"/> </node>

Properties
name
description
required
format
model
channel
the channel via which to send the message (e.g. http)
true
path/* | meta/channel
encoding
the encoding to be used, e.g. ascii; the default is utf-8
false
meta/encoding
language
the language into which to serialise the message before sending it (e.g. html, model-diagram etc.)
true
meta/language
format
the format into which to serialise the message before sending (e.g. element/part, number/integer)
true
meta/format
message
the source message to be sent to another system
true
path/knowledge | text/plain
receiver
the destination receiving the message
false
text/plain
mode
the mode of communication, only if channel is http
false
???
namespace
the namespace of the socket, only if channel is http
false
???
style
the style of communicationl, only if channel is http
false
text/plain
area
the user interface area to be repainted, only if type is tui or gui
false
???
clear
the flag indicating whether or not to clear the screen before painting a user interface, only if type is terminal or tui
false
logicvalue/boolean
newline
the flag indicating whether or not to add a new line after having printed the message on screen, only if channel is terminal
false
logicvalue/boolean
null_termination
the flag indicating whether or not to add an ascii null termination character '\0' at the end of the (multibyte) message (after encoding)
false
logicvalue/boolean

compare

equal

Description

Compares left and right parametre.

Format

compare/equal

Example

<node name="compare_equal" channel="inline" format="compare/equal" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".model.result"/> <node name="left" channel="inline" format="text/cybol-path" model=".model.left"/> <node name="right" channel="inline" format="text/cybol-path" model=".model.right"/> <node name="type" channel="inline" format="meta/type" model="number/complex-cartesian"/> <node name="selection" channel="inline" format="text/plain" model="all"/> </node>

Properties
name
description
required
format
model
result
the knowledge model, in which the result is stored (of type boolean)
true
path/* | logicvalue/boolean
left
the left operand
true
path/* | number/* | text/plain
right
the right operand
true
path/* | number/* | text/plain
type
the operand type which is equal for both operands
true
path/* | meta/type
selection
the area of two strings or number vectors to be compared
true
path/* | meta/type

greater

Description

Compares left and right parametre.

Format

compare/greater

Example

<node name="compare_loop_count" channel="inline" format="compare/greater" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".counter.break"/> <node name="left" channel="inline" format="text/cybol-path" model=".counter.count"/> <node name="right" channel="inline" format="text/cybol-path" model=".counter.maximum"/> <node name="type" channel="inline" format="meta/type" model="number/integer"/> <node name="selection" channel="inline" format="text/plain" model="all"/> </node>

Properties
name
description
required
format
model
result
the knowledge model, in which the result is stored (of type boolean)
true
path/* | logicvalue/boolean
left
the left operand
true
path/* | number/* | text/plain
right
the right operand
true
path/* | number/* | text/plain
type
the operand type which is equal for both operands
true
path/* | meta/type
selection
the area of two strings or number vectors to be compared
true
path/* | meta/type

greater-or-equal

Description

Compares left and right parametre.

Format

compare/greater-or-equal

Example

<node name="compare_loop_count" channel="inline" format="compare/greater-or-equal" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".domain.break"/> <node name="left" channel="inline" format="text/cybol-path" model=".domain.count"/> <node name="right" channel="inline" format="text/cybol-path" model=".domain.maximum"/> <node name="type" channel="inline" format="meta/type" model="number/integer"/> <node name="selection" channel="inline" format="text/plain" model="all"/> </node>

Properties
name
description
required
format
model
result
the knowledge model, in which the result is stored (of type boolean)
true
path/* | logicvalue/boolean
left
the left operand
true
path/* | number/* | text/plain
right
the right operand
true
path/* | number/* | text/plain
type
the operand type which is equal for both operands
true
path/* | meta/type
selection
the area of two strings or number vectors to be compared
true
path/* | meta/type

smaller

Description

Compares left and right parametre.

Format

compare/smaller

Example

<node name="compare_smaller" channel="inline" format="compare/smaller" model=""> <node name="result" channel="inline" format="text/cybol-path" model="#break"/> <node name="left" channel="inline" format="text/cybol-path" model="#index"/> <node name="right" channel="inline" format="text/cybol-path" model="#count"/> <node name="type" channel="inline" format="meta/type" model="number/integer"/> <node name="selection" channel="inline" format="text/plain" model="all"/> </node>

Properties
name
description
required
format
model
result
the knowledge model, in which the result is stored (of type boolean)
true
path/* | logicvalue/boolean
left
the left operand
true
path/* | number/* | text/plain
right
the right operand
true
path/* | number/* | text/plain
type
the operand type which is equal for both operands
true
path/* | meta/type
selection
the area of two strings or number vectors to be compared
true
path/* | meta/type

smaller-or-equal

Description

Compares left and right parametre.

Format

compare/smaller-or-equal

Example

<node name="compare_smaller" channel="inline" format="compare/smaller-or-equal" model=""> <node name="result" channel="inline" format="text/cybol-path" model="#break"/> <node name="left" channel="inline" format="text/cybol-path" model="#index"/> <node name="right" channel="inline" format="text/cybol-path" model="#count"/> <node name="type" channel="inline" format="meta/type" model="number/integer"/> <node name="selection" channel="inline" format="text/plain" model="all"/> </node>

Properties
name
description
required
format
model
result
the knowledge model, in which the result is stored (of type boolean)
true
path/* | logicvalue/boolean
left
the left operand
true
path/* | number/* | text/plain
right
the right operand
true
path/* | number/* | text/plain
type
the operand type which is equal for both operands
true
path/* | meta/type
selection
the area of two strings or number vectors to be compared
true
path/* | meta/type

unequal

Description

Compares left and right parametre.

Format

compare/unequal

Example

<node name="compare_unequal" channel="inline" format="compare/unequal" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".model.result"/> <node name="left" channel="inline" format="text/cybol-path" model=".model.left"/> <node name="right" channel="inline" format="text/cybol-path" model=".model.right"/> <node name="type" channel="inline" format="meta/type" model="number/complex-cartesian"/> <node name="selection" channel="inline" format="text/plain" model="all"/> </node>

Properties
name
description
required
format
model
result
the knowledge model, in which the result is stored (of type boolean)
true
path/* | logicvalue/boolean
left
the left operand
true
path/* | number/* | text/plain
right
the right operand
true
path/* | number/* | text/plain
type
the operand type which is equal for both operands
true
path/* | meta/type
selection
the area of two strings or number vectors to be compared
true
path/* | meta/type

contain

both

Description

Compare if bounded area contains value.

Format

contain/both

Example

Properties
name
description
required
format
model
result
the knowledge model, in which the result is stored
true
path/* | logicvalue/boolean
left
the left part
true
path/* | number/* | text/plain
right
the right part
true
path/* | number/* | text/plain
type
the type which is equal for both parts
true
path/* | meta/type
selection
???
true
path/* | meta/type

left

Description

Compare if bounded area contains value.

Format

contain/left

Example

Properties
name
description
required
format
model
result
the knowledge model, in which the result is stored
true
path/* | logicvalue/boolean
left
the left part
true
path/* | number/* | text/plain
right
the right part
true
path/* | number/* | text/plain
type
the type which is equal for both parts
true
path/* | meta/type
selection
???
true
path/* | meta/type

none

Description

Compare if bounded area contains value.

Format

contain/none

Example

Properties
name
description
required
format
model
result
the knowledge model, in which the result is stored
true
path/* | logicvalue/boolean
left
the left part
true
path/* | number/* | text/plain
right
the right part
true
path/* | number/* | text/plain
type
the type which is equal for both parts
true
path/* | meta/type
selection
???
true
path/* | meta/type

right

Description

Compare if bounded area contains value.

Format

contain/right

Example

Properties
name
description
required
format
model
result
the knowledge model, in which the result is stored
true
path/* | logicvalue/boolean
left
the left part
true
path/* | number/* | text/plain
right
the right part
true
path/* | number/* | text/plain
type
the type which is equal for both parts
true
path/* | meta/type
selection
???
true
path/* | meta/type

convert

decode

Description

Decodes the source into the destination, according to the given decoding.

Format

convert/decode

Example

Properties
name
description
required
format
model
destination_item
???
true
???
source_data ???
???
true
???
source_count ???
???
true
???
encoding
???
true
???

encode

Description

Encodes the source into the destination, according to the given encoding.

Format

convert/encode

Example

Properties
name
description
required
format
model
destination_item
???
true
???
source_data ???
???
true
???
source_count ???
???
true
???
encoding
???
true
???

flow

branch

Description

Branches the programme flow, depending on the criterion flag.

Format

flow/branch

Example

<node name="branch_voltage" channel="inline" format="flow/branch" model=""> <node name="criterion" channel="inline" format="text/cybol-path" model=".settings.voltage_criterion"/> <node name="true" channel="file" format="element/part" model="indoor_climate/add_voltage.cybol"/> <node name="false" channel="file" format="element/part" model="indoor_climate/report_voltage_failure.cybol"/> </node>

Properties
name
description
required
format
model
criterion
the flag specifying which of the two models to execute
true
path/* | logicvalue/boolean
true
the logic knowledge model to be executed if the condition is true
true
element/part
false
the logic knowledge model to be executed if the condition is false
true
element/part

loop

Description

Loops the programme flow endlessly, until the break flag is set.

Format

flow/loop

Example

<node name="collect_voltages" channel="inline" format="flow/loop" model=""> <node name="break" channel="inline" format="text/cybol-path" model=".settings.adc_break"/> <node name="model" channel="file" format="element/part" model="adc/collect_voltages.cybol"/> </node>

Properties
name
description
required
format
model
break
the break flag; once set, the loop will be left (exited)
true
path/* | logicvalue/boolean
model
the logic knowledge model to be executed repeatedly by the loop
true
path/* | element/part

sequence

Description

Executes the given programme flow as sequence.

Format

flow/sequence

Example

<node name="start_playerinput" channel="inline" format="flow/sequence" model=""> <node name="model" channel="inline" format="text/cybol-path" model=".app.setrandom"/> </node>

Properties
name
description
required
format
model
model
the logic knowledge model to be executed as sequence
true
text/cybol-path

live

exit

Description

Closes a running application.

Format

live/exit

Example

<node name="exit_application" channel="inline" format="live/exit" model=""/>

Properties
name
description
required
format
model
channel
the channel whose service is to be interrupted (terminal, display, www etc.)
true
path/* | meta/channel

interrupt

Description

Interrupts a service.

Format

live/interrupt

Example

<node name="interrupt_x_window_system" channel="inline" format="live/interrupt" model=""> <node name="channel" channel="inline" format="meta/channel" model="display"/> </node>

Properties
name
description
required
format
model
channel
the channel whose service is to be interrupted (terminal, display, www etc.)
true
path/* | meta/channel

sense

Description

Senses an interrupt request happening on the given channel.

Format

live/sense

Example

<node name="set_handler_commands_reading" channel="inline" format="live/sense" model=""> <node name="channel" channel="inline" format="meta/channel" model="terminal"/> <node name="handler" channel="inline" format="text/cybol-path" model=".app.handler"/> </node>

Properties
name
description
required
format
model
channel
the channel via which to receive the message (terminal, www, x-window-system etc.)
true
path/* | meta/channel
handler
the handler (usually a receive operation) that parses an input and filters out a command that the system is to react to
false
text/cybol-path

logify

and

Description

Applies the boolean logic operation AND.

Format

logify/and

Example

<node name="operation" channel="inline" format="logify/and" model=""> <node name="output" channel="inline" format="text/cybol-path" model=".app.result"/> <node name="input" channel="inline" format="text/cybol-path" model=".app.operand"/> <node name="type" channel="inline" format="meta/type" model="number/byte"/> </node>

Properties
name
description
required
format
model
output
the knowledge model in which the output is stored; used as first input operand
true
text/cybol-path
input
the second input operand
true
text/cybol-path
type
the type of both operands
true
meta/type

nand

Description

Applies the boolean logic operation NAND.

Format

logify/nand

Example

<node name="result" channel="inline" format="logicvalue/boolean" model="false"/> <node name="operand" channel="inline" format="logicvalue/boolean" model="false"/> <node name="operation" channel="inline" format="logify/nand" model=""> <node name="output" channel="inline" format="text/cybol-path" model=".app.result"/> <node name="input" channel="inline" format="text/cybol-path" model=".app.operand"/> <node name="type" channel="inline" format="meta/type" model="logicvalue/boolean"/> </node>

Properties
name
description
required
format
model
output
the knowledge model in which the output is stored; used as first input operand
true
text/cybol-path
input
the second input operand
true
text/cybol-path
type
the type of both operands
true
meta/type

neg

Description

Applies the boolean logic operation NEG.

Format

logify/neg

Example

<node name="result" channel="inline" format="number/byte" model="25"/> <node name="operation" channel="inline" format="logify/neg" model=""> <node name="output" channel="inline" format="text/cybol-path" model=".app.result"/> <node name="input" channel="inline" format="text/cybol-path" model=".app.result"/> <node name="type" channel="inline" format="meta/type" model="number/byte"/> </node>

Properties
name
description
required
format
model
output
the knowledge model in which the output is stored; used as first input operand
true
text/cybol-path
input
the second input operand
true
text/cybol-path
type
the type of both operands
true
meta/type

nor

Description

Applies the boolean logic operation NOR.

Format

logify/nor

Example

<node name="result" channel="inline" format="logicvalue/boolean" model="false"/> <node name="operand" channel="inline" format="logicvalue/boolean" model="false"/> <node name="operation" channel="inline" format="logify/nor" model=""> <node name="output" channel="inline" format="text/cybol-path" model=".app.result"/> <node name="input" channel="inline" format="text/cybol-path" model=".app.operand"/> <node name="type" channel="inline" format="meta/type" model="logicvalue/boolean"/> </node>

Properties
name
description
required
format
model
output
the knowledge model in which the output is stored; used as first input operand
true
text/cybol-path
input
the second input operand
true
text/cybol-path
type
the type of both operands
true
meta/type

not

Description

Applies the boolean logic operation NOT.

Format

logify/not

Example

<node name="result" channel="inline" format="logicvalue/boolean" model="true"/> <node name="operation" channel="inline" format="logify/not" model=""> <node name="output" channel="inline" format="text/cybol-path" model=".app.result"/> <node name="input" channel="inline" format="text/cybol-path" model=".app.result"/> <node name="type" channel="inline" format="meta/type" model="logicvalue/boolean"/> </node>

Properties
name
description
required
format
model
output
the knowledge model in which the output is stored; used as first input operand
true
text/cybol-path
input
the second input operand
true
text/cybol-path
type
the type of both operands
true
meta/type

or

Description

Applies the boolean logic operation OR.

Format

logify/or

Example

<node name="result" channel="inline" format="logicvalue/boolean" model="false"/> <node name="operand" channel="inline" format="logicvalue/boolean" model="false"/> <node name="operation" channel="inline" format="logify/or" model=""> <node name="output" channel="inline" format="text/cybol-path" model=".app.result"/> <node name="input" channel="inline" format="text/cybol-path" model=".app.operand"/> <node name="type" channel="inline" format="meta/type" model="logicvalue/boolean"/> </node>

Properties
name
description
required
format
model
output
the knowledge model in which the output is stored; used as first input operand
true
text/cybol-path
input
the second input operand
true
text/cybol-path
type
the type of both operands
true
meta/type

xnor

Description

Applies the boolean logic operation XNOR.

Format

logify/xnor

Example

<node name="result" channel="inline" format="logicvalue/boolean" model="false"/> <node name="operand" channel="inline" format="logicvalue/boolean" model="false"/> <node name="operation" channel="inline" format="logify/xnor" model=""> <node name="output" channel="inline" format="text/cybol-path" model=".app.result"/> <node name="input" channel="inline" format="text/cybol-path" model=".app.operand"/> <node name="type" channel="inline" format="meta/type" model="logicvalue/boolean"/> </node>

Properties
name
description
required
format
model
output
the knowledge model in which the output is stored; used as first input operand
true
text/cybol-path
input
the second input operand
true
text/cybol-path
type
the type of both operands
true
meta/type

xor

Description

Applies the boolean logic operation XOR.

Format

logify/xor

Example

<node name="result" channel="inline" format="logicvalue/boolean" model="false"/> <node name="operand" channel="inline" format="logicvalue/boolean" model="false"/> <node name="operation" channel="inline" format="logify/xor" model=""> <node name="output" channel="inline" format="text/cybol-path" model=".app.result"/> <node name="input" channel="inline" format="text/cybol-path" model=".app.operand"/> <node name="type" channel="inline" format="meta/type" model="logicvalue/boolean"/> </node>

Properties
name
description
required
format
model
output
the knowledge model in which the output is stored; used as first input operand
true
text/cybol-path
input
the second input operand
true
text/cybol-path
type
the type of both operands
true
meta/type

maintain

shutdown

Description

Shuts down the service running on the given channel.

Format

maintain/shutdown

Example

<node name="shutdown_serial_port" channel="inline" format="maintain/shutdown" model=""> <node name="channel" channel="inline" format="text/cybol-path" model=".settings.device"/> </node>

Properties
name
description
required
format
model
channel
the channel on which to shutdown a service (terminal, www, x-window-system, ...)
true
path/* | meta/channel

startup

Description

Starts up a service on the given channel.

Format

maintain/startup

Example

<node name="startup_terminal" channel="inline" format="maintain/startup" model=""> <node name="channel" channel="inline" format="meta/channel" model="terminal"/> </node> <node name="startup_socket" channel="inline" format="maintain/startup" model=""> <node name="channel" channel="inline" format="meta/channel" model="socket"/> <node name="namespace" channel="inline" format="text/plain" model="ipv4"/> <node name="style" channel="inline" format="text/plain" model="stream"/> <node name="protocol" channel="inline" format="text/plain" model="tcp"/> <node name="address" channel="inline" format="text/cybol-path" model=".app.var.address"/> <node name="id" channel="inline" format="text/cybol-path" model=".app.var.port"/> <node name="mode" channel="inline" format="text/plain" model="server"/> <node name="blocking" channel="inline" format="logicvalue/boolean" model="false"/> <node name="connexions" channel="inline" format="number/integer" model="1"/> </node>

Properties
name
description
required
format
model
channel
the channel on which to startup a service (terminal, display, tcp_socket, unix_socket, ...)
true
path/* | meta/channel
namespace
the address family, e.g. ip6
false
text/plain
style
the communication style, e.g. stream
false
text/plain
address
the host address
false
text/plain
protocol
the protocol, e.g. tcp
false
text/cybol-path
id
the service identification if having multiple terminals/displays/sockets etc., e.g. socket port 80; either port or service may be specified; port has higher priority; if missing, zero will be used (first io entry)
false
text/cybol-path
server
false
text/plain
blocking
the socket status, i.e. whether or not a socket is blocking
false
logicvalue/boolean
connexions
the number of possible pending client requests
false
number/integer

manipulate

check

Description

Gets the bit at the given position.

Format

manipulate/check

Example

Properties
name
description
required
format
model
value
The knowledge model representing the value.
true
path/*
position
The bit position within the value.
true
path/* | number/*
type
The value type.
true
path/* | meta/type
count
The number of values to be manipulated (if null, the value part model count will be used instead).
false
path/* | number/*
index
The index from which to start manipulating values (if null, an index of zero will be used instead).
false
path/* | number/*

clear

Description

Resets the bit at a given position.

Format

manipulate/clear

Example

Properties
name
description
required
format
model
value
The knowledge model representing the value.
true
path/*
position
The bit position within the value.
true
path/* | number/*
type
The value type.
true
path/* | meta/type
count
The number of values to be manipulated (if null, the value part model count will be used instead).
false
path/* | number/*
index
The index from which to start manipulating values (if null, an index of zero will be used instead).
false
path/* | number/*

rotate-left

Description

Rotates all bits of a value to the left by position.

Format

manipulate/rotate-left

Example

Properties
name
description
required
format
model
value
The knowledge model representing the value.
true
path/*
position
The bit position within the value.
true
path/* | number/*
type
The value type.
true
path/* | meta/type
count
The number of values to be manipulated (if null, the value part model count will be used instead).
false
path/* | number/*
index
The index from which to start manipulating values (if null, an index of zero will be used instead).
false
path/* | number/*

rotate-right

Description

Rotates all bits of a value to the right by position.

Format

manipulate/rotate-right

Example

Properties
name
description
required
format
model
value
The knowledge model representing the value.
true
path/*
position
The bit position within the value.
true
path/* | number/*
type
The value type.
true
path/* | meta/type
count
The number of values to be manipulated (if null, the value part model count will be used instead).
false
path/* | number/*
index
The index from which to start manipulating values (if null, an index of zero will be used instead).
false
path/* | number/*

set

Description

Sets the bit at the given position.

Format

manipulate/set

Example

Properties
name
description
required
format
model
value
The knowledge model representing the value.
true
path/*
position
The bit position within the value.
true
path/* | number/*
type
The value type.
true
path/* | meta/type
count
The number of values to be manipulated (if null, the value part model count will be used instead).
false
path/* | number/*
index
The index from which to start manipulating values (if null, an index of zero will be used instead).
false
path/* | number/*

shift-left

Description

Shifts all bits of value to the left by position.

Format

manipulate/shift-left

Example

Properties
name
description
required
format
model
value
The knowledge model representing the value.
true
path/*
position
The bit position within the value.
true
path/* | number/*
type
The value type.
true
path/* | meta/type
count
The number of values to be manipulated (if null, the value part model count will be used instead).
false
path/* | number/*
index
The index from which to start manipulating values (if null, an index of zero will be used instead).
false
path/* | number/*

shift-right

Description

Shifts all bits of value to the right by position.

Format

manipulate/shift-right

Example

Properties
name
description
required
format
model
value
The knowledge model representing the value.
true
path/*
position
The bit position within the value.
true
path/* | number/*
type
The value type.
true
path/* | meta/type
count
The number of values to be manipulated (if null, the value part model count will be used instead).
false
path/* | number/*
index
The index from which to start manipulating values (if null, an index of zero will be used instead).
false
path/* | number/*

toggle

Description

Toggles the bit at the given position.

Format

manipulate/toggle

Example

Properties
name
description
required
format
model
value
The knowledge model representing the value.
true
path/*
position
The bit position within the value.
true
path/* | number/*
type
The value type.
true
path/* | meta/type
count
The number of values to be manipulated (if null, the value part model count will be used instead).
false
path/* | number/*
index
The index from which to start manipulating values (if null, an index of zero will be used instead).
false
path/* | number/*

memorise

create

Description

Creates an empty part consisting of name and type only.

Format

memorise/create

Example

<node name="create_summand_2" channel="inline" format="memorise/create" model=""> <node name="name" channel="inline" format="text/plain" model="summand_2"/> <node name="format" channel="inline" format="meta/format" model="number/integer"/> <node name="element" channel="inline" format="text/plain" model="part"/> <node name="whole" channel="inline" format="text/cybol-path" model=".addition_application"/> </node>

Properties
name
description
required
format
model
name
the name of the part to be created
true
text/plain
format
the format of the part to be created, from which gets determined the type
true
meta/format
element
the kind of element to be created (part, property); a part element will be added to the whole model's part hierarchy; a property element to the whole model's properties hierarchy
true
text/plain
whole
If null, the new part will be added to the knowledge memory root. The compound to which to add to the new part.
false
element/part

destroy

Description

Destroys a part and removes it from the knowledge model.

Format

memorise/destroy

Example

<node name="destroy_tui_control" channel="inline" format="memorise/destroy" model=""> <node name="name" channel="inline" format="text/cybol-path" model=".tui_control"/> </node>

Properties
name
description
required
format
model
name
the part to be destroyed
true
text/cybol-path

pop (Undefined)

Description

Pop an element from the stack.

Format

memorise/pop

Example

Properties
name
description
required
format
model

push (Undefined)

Description

Push an element on the stack.

Format

memorise/push

Example

Properties
name
description
required
format
model

modify

append

Description

Appends the source to the destination part.

Format

modify/append

Example

<node name="append_command" channel="inline" format="modify/append" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".app.safetmp.path"/> <node name="source" channel="inline" format="text/cybol-path" model=".app.safetmp.operation_type"/> <node name="type" channel="inline" format="meta/type" model="text/plain"/> </node>

Properties
name
description
required
format
model
destination
the destination part
true
text/cybol-path
source
the source part
true
text/cybol-path
count
If null, the part model count will be used instead. The number of elements to be overwritten.
false
number/integer
destination_index
If null, an index of zero will be used instead. The destination index from which to start copying elements to.
false
number/integer
source_index
If null, an index of zero will be used instead. The source index from which to start copying elements from.
false
number/integer
adjust
The default is 'true'. If null, the count WILL BE adjusted. The flag indicating whether or not the destination shall be adjusted to.
false
logicvalue/boolean
destination_properties
The default is 'false'. If null, the destination model (NOT properties) container will be used. The flag indicating whether to use the destination model or properties container.
false
logicvalue/boolean
source_properties
The default is 'false'. If null, the source model (NOT properties) container will be used. The flag indicating whether to use the source model or properties container.
false
logicvalue/boolean

empty

Description

Empties the part, i.e. removes all of its elements.

Format

modify/empty

Example

<node name="reset_buffer" channel="inline" format="modify/empty" model=""> <node name="part" channel="inline" format="text/cybol-path" model=".settings.voltage_buffer"/> <node name="model" channel="inline" format="logicvalue/boolean" model="true"/> <node name="properties" channel="inline" format="logicvalue/boolean" model="true"/> </node>

Properties
name
description
required
format
model
destination
the destination part
true
text/cybol-path
count
If null, the part model count will be used instead. The number of elements to be overwritten.
false
number/integer
destination_index
If null, an index of zero will be used instead. The destination index from which to start copying elements to.
false
number/integer
adjust
The default is 'true'. If null, the count WILL BE adjusted. The flag indicating whether or not the destination shall be adjusted to.
false
logicvalue/boolean
destination_properties
The default is 'false'. If null, the destination model (NOT properties) container will be used. The flag indicating whether to use the destination model or properties container.
false
logicvalue/boolean

fill

Description

Fills the part up with a given element.

Format

modify/fill

Example

Properties
name
description
required
format
model
destination
the destination part
true
text/cybol-path
source
the source part
true
text/cybol-path
count
If null, the part model count will be used instead. The number of elements to be overwritten.
false
number/integer
destination_index
If null, an index of zero will be used instead. The destination index from which to start copying elements to.
false
number/integer
source_index
If null, an index of zero will be used instead. The source index from which to start copying elements from.
false
number/integer
adjust
The default is 'true'. If null, the count WILL BE adjusted. The flag indicating whether or not the destination shall be adjusted to.
false
logicvalue/boolean
destination_properties
The default is 'false'. If null, the destination model (NOT properties) container will be used. The flag indicating whether to use the destination model or properties container.
false
logicvalue/boolean
source_properties
The default is 'false'. If null, the source model (NOT properties) container will be used. The flag indicating whether to use the source model or properties container.
false
logicvalue/boolean

insert

Description

Inserts the source- into the destination part.

Format

modify/insert

Example

Properties
name
description
required
format
model
destination
the destination part
true
text/cybol-path
source
the source part
true
text/cybol-path
count
If null, the part model count will be used instead. The number of elements to be overwritten.
false
number/integer
destination_index
If null, an index of zero will be used instead. The destination index from which to start copying elements to.
false
number/integer
source_index
If null, an index of zero will be used instead. The source index from which to start copying elements from.
false
number/integer
adjust
The default is 'true'. If null, the count WILL BE adjusted. The flag indicating whether or not the destination shall be adjusted to.
false
logicvalue/boolean
destination_properties
The default is 'false'. If null, the destination model (NOT properties) container will be used. The flag indicating whether to use the destination model or properties container.
false
logicvalue/boolean
source_properties
The default is 'false'. If null, the source model (NOT properties) container will be used. The flag indicating whether to use the source model or properties container.
false
logicvalue/boolean

overwrite

Description

Overwrites the destination- with the source part.

Format

modify/overwrite

Example

<node name="reset_count" channel="inline" format="modify/overwrite" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".settings.voltage_count"/> <node name="source" channel="inline" format="text/cybol-path" model=".settings.voltage_default"/> </node>

Properties
name
description
required
format
model
destination
the destination part
true
text/cybol-path
source
the source part
true
text/cybol-path
count
If null, the part model count will be used instead. The number of elements to be overwritten.
false
number/integer
destination_index
If null, an index of zero will be used instead. The destination index from which to start copying elements to.
false
number/integer
source_index
If null, an index of zero will be used instead. The source index from which to start copying elements from.
false
number/integer
adjust
The default is 'true'. If null, the count WILL BE adjusted. The flag indicating whether or not the destination shall be adjusted to.
false
logicvalue/boolean
destination_properties
The default is 'false'. If null, the destination model (NOT properties) container will be used. The flag indicating whether to use the destination model or properties container.
false
logicvalue/boolean
source_properties
The default is 'false'. If null, the source model (NOT properties) container will be used. The flag indicating whether to use the source model or properties container.
false
logicvalue/boolean

remove

Description

Removes count elements from the part.

Format

modify/remove

Example

<node name="remove" channel="inline" format="modify/remove" model=""> <node name="part" channel="inline" format="text/cybol-path" model=".summand"/> </node>

Properties
name
description
required
format
model
destination
the destination part
true
text/cybol-path
count
If null, the part model count will be used instead. The number of elements to be overwritten.
false
number/integer
destination_index
If null, an index of zero will be used instead. The destination index from which to start copying elements to.
false
number/integer
adjust
The default is 'true'. If null, the count WILL BE adjusted. The flag indicating whether or not the destination shall be adjusted to.
false
logicvalue/boolean
destination_properties
The default is 'false'. If null, the destination model (NOT properties) container will be used. The flag indicating whether to use the destination model or properties container.
false
logicvalue/boolean

randomise

retrieve

Description

Retrieve next pseudo-random number in the series.

Format

randomise/retrieve

Example

<node name="get_random_number_1" channel="inline" format="randomise/retrieve" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".app.var.field_1"/> <node name="minimum" channel="inline" format="number/integer" model="2"/> <node name="maximum" channel="inline" format="number/integer" model="14"/> <node name="seed" channel="inline" format="text/cybol-path" model=".app.var.seed"/> </node>

Properties
name
description
required
format
model
result
The path where the retrieved random value is written to.
true
text/cybol-path
minimum
The lower bound of the to generate value. (inclusive)
true
meta/type
maximum
The upper bound of the to generate value.
true
meta/type
seed
The path to the seed used for generating the random value.
true
text/cybol-path

sow

Description

Sow a seed for a new series of pseudo-random numbers.

Format

randomise/sow

Example

<node name="set_seed" channel="inline" format="randomise/sow" model=""> <node name="seed" channel="inline" format="text/cybol-path" model=".app.var.seed"/> </node>

Properties
name
description
required
format
model
seed
The path where the seed is written to.
true
text/cybol-path

represent

deserialise

Description

Deserialises the source- into the destination part.

Format

represent/deserialise

Example

<node name="deserialise_operand" channel="inline" format="represent/deserialise" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".summand"/> <node name="source" channel="inline" format="text/cybol-path" model=".text"/> <node name="format" channel="inline" format="meta/format" model="number/integer"/> <node name="language" channel="inline" format="meta/language" model="text/cybol"/> </node>

Properties
name
description
required
format
model
destination
the destination part
true
number/integer
source
the source part
true
text/plain
type
the destination part format
true
meta/type
language
the destination part language (cybol, http_request, xdt etc.)
true
meta/language

serialise

Description

Serialises the source- into the destination part.

Format

represent/serialise

Example

<node name="serialise_operand" channel="inline" format="represent/serialise" model=""> <node name="destination" channel="inline" format="text/cybol-path" model=".summand"/> <node name="source" channel="inline" format="text/cybol-path" model=".text"/> <node name="format" channel="inline" format="meta/format" model="number/integer"/> <node name="language" channel="inline" format="meta/language" model="text/cybol"/> </node>

Properties
name
description
required
format
model
destination
the destination part
true
number/integer
source
the source part
true
text/plain
type
the destination part format
true
meta/type
language
the destination part language (cybol, http_request, xdt etc.)
true
meta/language

run

run

Description

Runs a local program

Format

run/run

Example

<node name="execute_shell_script" channel="inline" format="run/run" model=""> <node name="programme" channel="file" format="text/plain" model="password_generator/sleep_timer.sh"/> </node>

Properties
name
description
required
format
model
programme
The program to be run.
true
path/* | meta/channel

sleep-nano

Description

Puts the executing thread to sleep for at least x nanoseconds (the actual duration may differ depending on the systems load and timer accuracy)

Format

run/sleep-nano

Example

<node name="sleep" channel="inline" format="run/sleep-nano" model=""> <node name="duration" channel="inline" format="text/cybol-path" model=".settings.voltage_sleep"/> </node>

Properties
name
description
required
format
model
duration
The amount of nanoseconds to sleep
true
path/* | meta/channel

sleep-second

Description

Puts the executing thread to sleep for at least x seconds (the actual duration may differ depending on the systems load and timer accuracy)

Format

run/sleep-second

Example

<node name="sleep" channel="inline" format="run/sleep-second" model=""> <node name="duration" channel="inline" format="text/cybol-path" model=".settings.voltage_sleep"/> </node>

Properties
name
description
required
format
model
duration
The amount of seconds to sleep
true
path/* | meta/channel

sort

bubble

Description

Sort numbers via bubble-algorithm.

Format

sort/bubble

Example

<node name="sort" channel="inline" format="sort/bubble" model=""> <node name="output" channel="inline" format="text/cybol-path" model=".result"/> <node name="input" channel="inline" format="text/cybol-path" model=".unsorted"/> </node>

Properties
name
description
required
format
model
output
The path where the sort numbers will be written to.
true
path/* | meta/channel
input
The path where the numbers for the are taken from.
true
path/* | meta/channel

quick

Description

Sort numbers via quicksort-algorithm.

Format

sort/quick

Example

<node name="sort" channel="inline" format="sort/quick" model=""> <node name="output" channel="inline" format="text/cybol-path" model=".result"/> <node name="input" channel="inline" format="text/cybol-path" model=".unsorted"/> </node>

Properties
name
description
required
format
model
output
The path where the sort numbers will be written to.
true
path/* | meta/channel
input
The path where the numbers for the are taken from.
true
path/* | meta/channel

time

current

Description

Retrieves the current time from the system.

Format

time/current

Example

<node name="retrieveCurrentTime" channel="inline" format="time/current" model=""> <node name="result" channel="inline" format="text/cybol-path" model=".model"/> </node>

Properties
name
description
required
format
model
result
retrieves the current time in nano second divided by 1000 and put it the the model. Model type needs to be integer.
true
path/* | meta/channel

state

device

keyboard

Description

A keyboard key.

Format

Example

<node name="arrow-up" channel="inline" format="text/cybol-path" model=".logic.move_arrow_up"/> <node name="arrow-down" channel="inline" format="text/cybol-path" model=".logic.move_arrow_down"/> <node name="arrow-left" channel="inline" format="text/cybol-path" model=".logic.move_arrow_left"/> <node name="arrow-right" channel="inline" format="text/cybol-path" model=".logic.move_arrow_right"/> <node name="enter" channel="inline" format="text/cybol-path" model=".logic.enter_sub_menu"/> <node name="escape" channel="inline" format="text/cybol-path" model=".logic.exit_programme"/>

Properties
name
description
required
format
model
arrow-up
The arrow up key.
false
path/*
a logic model to be executed
arrow-down
The arrow down key.
false
path/*
a logic model to be executed
arrow-left
The arrow left key.
false
path/*
a logic model to be executed
arrow-right
The arrow right key.
false
path/*
a logic model to be executed
enter
The enter key.
false
path/*
a logic model to be executed
escape
The escape key.
false
path/*
a logic model to be executed

mouse

Description

A mouse button.

Format

Example

<node name="exit_button" channel="inline" format="text/plain" model="Exit"> <node name="cell" channel="inline" format="text/plain" model="east"/> <node name="left-release" channel="inline" format="text/cybol-path" model=".app.logic.exit_programme"/> </node>

Properties
name
description
required
format
model
left-press
The left mouse button press event.
false
path/*
a logic model to be executed
left-release
The left mouse button release event.
false
path/*
a logic model to be executed
left-click
The left mouse button click (press + release) event.
false
path/*
a logic model to be executed
middle-press
The middle mouse button press event.
false
path/*
a logic model to be executed
middle-release
The middle mouse button release event.
false
path/*
a logic model to be executed
middle-click
The middle mouse button click (press + release) event.
false
path/*
a logic model to be executed
right-press
The right mouse button press event.
false
path/*
a logic model to be executed
right-release
The right mouse button release event.
false
path/*
a logic model to be executed
right-click
The right mouse button click (press + release) event.
false
path/*
a logic model to be executed
move
The mouse move event.
false
path/*
a logic model to be executed
drag
The mouse drag (press + move) event.
false
path/*
a logic model to be executed

user_interface

gui

Description

A graphical user interface element.

Format

Example

<node name="window" channel="file" format="element/part" model="gui/window.cybol"> <node name="position" channel="inline" format="number/integer" model="0,0"/> <node name="size" channel="inline" format="number/integer" model="800,600"/> <node name="background" channel="inline" format="colour/rgb" model="255,255,255"/> <node name="foreground" channel="inline" format="text/cybol-path" model=".app.settings.foreground"/> <node name="layout" channel="inline" format="text/plain" model="compass"/> <node name="title" channel="inline" format="text/plain" model="Test Application Window"/> <node name="icon" channel="file" format="image/png" model="gui/window/icon.png"/> <node name="expose" channel="inline" format="text/cybol-path" model=".app.logic.refresh_gui"/> </node>

Properties
name
description
required
format
model
position
The position (x, y) in unit [pixel], starting from zero, in relation to the surrounding parent element's origo.
true
path/* | number/integer
a two-dimensional vector
size
The size (width, height) in unit [pixel], starting from zero.
true
path/* | number/integer
a two-dimensional vector
background
The background colour.
false
path/* | colour/rgb
foreground
The foreground colour.
false
path/* | colour/rgb
layout
The layout of contained child components.
false
path/* | text/plain
absolute | flow | grid | compass
cell
The component's cell (position) within the surrounding parent component. Possible values depend on the parent component's layout.
false
path/* | text/plain | number/integer
x, y (absolute) || row,column (grid) || centre | north | south | west | east (compass)
title
The window title.
false
path/* | text/plain
icon
The window icon.
false
path/* | image/*
expose
The expose event to redraw the window content.
false
path/*
a logic model to be executed

tui

Description

A text user interface element.

Format

Example

<node name="window" channel="file" format="element/part" model="tui/window.cybol"> <node name="position" channel="inline" format="number/integer" model="0,0"/> <node name="size" channel="inline" format="number/integer" model="80,15"/> <node name="background" channel="inline" format="colour/terminal" model="green"/> <node name="foreground" channel="inline" format="text/cybol-path" model=".app.settings.foreground"/> <node name="bold" channel="inline" format="logicvalue/boolean" model="true"/> <!-- This property is evaluated by win32 console only. --> <node name="intense" channel="inline" format="logicvalue/boolean" model="false"/> <node name="border" channel="inline" format="text/plain" model="ascii"/> </node>

Properties
name
description
required
format
model
position
The position (x, y) in unit [character], starting from zero, in relation to the surrounding parent element's origo.
true
path/* | number/integer
a two-dimensional vector
size
The size (width, height) in unit [character], starting from zero.
true
path/* | number/integer
a two-dimensional vector
background
The background colour. The default is the terminal's current background.
false
path/* | colour/terminal
black | blue | cyan | green | magenta | red | white | yellow
foreground
The foreground colour. The default is the terminal's current foreground.
false
path/* | colour/terminal
black | blue | cyan | green | magenta | red | white | yellow
bold
The flag indicating whether or not to use bold foreground.
false
path/* | logicvalue/boolean
false | true
intense
The flag indicating whether or not to use intense colour. This property is evaluated by win32 console only.
false
path/* | logicvalue/boolean
false | true
border
The kind of border characters to apply.
false
path/* | text/plain
ascii | simple | double | round

wui

Description

A web user interface element.

Format

Example

<node name="heading" channel="inline" format="text/plain" model="Web User Interface (WUI) Example"> <node name="tag" channel="inline" format="text/plain" model="h1"/> </node> <node name="content" channel="inline" format="text/plain" model="This is a text paragraph."> <node name="tag" channel="inline" format="text/plain" model="p"/> </node> <node name="newline" channel="inline" format="text/plain" model=""> <node name="tag" channel="inline" format="text/plain" model="br"/> </node> <node name="some_block" channel="inline" format="text/plain" model=""> <node name="tag" channel="inline" format="text/plain" model="div"/> </node> <node name="preformatted_external_text" channel="file" format="text/plain" model="wui/text.txt"> <node name="tag" channel="inline" format="text/plain" model="p"/> <node name="preformatted" channel="inline" format="logicvalue/boolean" model="true"/> <node name="class" channel="inline" format="text/plain" model="preformatted"/> </node> <node name="link" channel="inline" format="text/plain" model="Some link."> <node name="tag" channel="inline" format="text/plain" model="a"/> <node name="href" channel="inline" format="text/plain" model="http://www.cybop.org/"/> </node> <node name="sub_heading" channel="inline" format="text/plain" model="Example Table"> <node name="tag" channel="inline" format="text/plain" model="h4"/> </node> <node name="table" channel="file" format="element/part" model="wui/table.cybol"> <node name="tag" channel="inline" format="text/plain" model="table"/> </node>

Properties
name
description
required
format
model
tag
The html tag to use. Void tags are detected automatically.
true
path/* | text/plain
a valid html tag without arrow brackets
class
The 'class' html attribute.
false
path/* | text/plain
a css class as html attribute
...(html attribute)...
An arbitrary html attribute.
false
path/* | text/plain
a valid html attribute
preformatted
??
false
path/* | logicvalue/boolean
??
property
??
false
path/* | text/plain
??