BALL

This page has three main sections. (Note that the listings could be empty.) more… Tip: Remember the back-button! And don't click the number on the left.

  1. The first item displays a term, URL, text or picture.
  2. Followed by a (still unordered) listing of statements about this subject. (for details follow ">"-link)
  3. Separated by a horizontal rule a "reverse" listing of statements referring to this item in object position.
bail/submit
2053 ↑ ... is defined by > Handsome Definition
3774 see also >

Code Execution

When a message is delivered to an agent, the responsible notaries must determine their idea of a correct response. (See also Askemos' elementary operations.)

Agents (a.k.a actors) are purely functional, producing any combination of three operations: a) intended state transition, b) messages to be sent to other actors and c) new actors to create. The type contract encodes the behavior of the agents. (See executes (see also ) in Askemos.)

The notaries kernel will first locate the code of the behavior the agents. The code is held at another place C. C's OID is given in the property action-document. See also the meta data example .

Preconditions

The kernel loads C and checks it is a publication according the to rules of passive replication. That C is:

  1. readable by public
  2. immutable constant

Execution

The code read from C may contain these method elements:

  • read: Invoked for idempotent requests.
  • propose: Invokes to compute a local proposal to answer a mutation request. This is input to the active replication and the next method.
  • accept: Invoked when the local proposal is committed to permanent storage.

The code in these elements is interpreted in the "shebang" language (BAIL), a language mostly there to invoke the interpreter of the users choice.

The code is run for a limited time in a sandbox to produce an answer.

Note: some elements of answers to meta information are managed by the kernel. Agent may not be able to hide these.

Example

This is the code executed by backups of the application used to maintain this documentation.

This table lists procedures to invoke the XdSLT language.

2054 is a > BAIL procedure
3787 description >
Synopsis
Method Type Result Description
bail/read place message
read reflexive any apply template in current place's state to incoming message
bail/confirm place message
read none-reflexive any apply template from current contract to incoming message
bail/propose place message
propose reflexive CoreAPI reply element apply template in current place's state to incoming message
bail/submit place message
propose none-reflexive CoreAPI reply element apply template from current contract to incoming message
public-place
propose, accept well known nonterminating disable mutation
bail/accept place message result
accept any (resulting output) Applies instructions from the CoreAPI `reply` element passed as 'result' parameter.
3786 alternative > xdstl fetch(current-contract()) SXML $ request @(type("write")) $$ ,message-body(current-message())