The JIR system has been implemented using the Leonardo software platform, which means that the Leonardo data format is used for communication between different parts of the system and for its internal data. The output from the system to the user may be provided either in this format, or in a user-specified variant of XML, or in other representations if so desired.
For background, the Leonardo data format is an extended set-theory notation that has been adapted to the use of the standard computer character set. It has been designed so as to be easily readable, and therefore it does not use tags in the same way as XML-based languages.
Expressions in the Leonardo data format use five different kinds of "parentheses", namely ordinary round parentheses, square brackets, curly brackets, angle brackets (i.e. less-than and greater-than signs), and maplet brackets which use a combination of a square bracket and a colon. This aids readability.
The most important type of expression in the case of JIR is the record which is written using square brackets, e.g.
[jirpost :id bdt-002]
Records are used for three purposes:
In general, a record contains an operator , a number of arguments and a number of parameters. Parameters consist of a tag and a value whereas arguments are untagged. JIR commands use only parameters and no arguments since they are to be transmitted as HTML requests.
An important advantage with using records as a standard representation for commands and for outcomes is that it makes it easy to forward commands, to archive them for future inspection and use, and to do the same for outcomes. The JIRCLI facility is an example of this since it receives commands and forwards them to another agent, and the outcome is sent back the same way.