OpenMath Content Dictionary: scscp1

Canonical URL:
http://www.win.tue.nl/SCIEnce/cds/scscp1.ocd
CD File:
scscp1.ocd
CD as XML Encoded OpenMath:
scscp1.omcd
Defines:
call_id, error_memory, error_runtime, error_system_specific, info_memory, info_message, info_runtime, option_debuglevel, option_max_memory, option_min_memory, option_return_cookie, option_return_nothing, option_return_object, option_runtime, procedure_call, procedure_completed, procedure_terminated
Date:
2009-06-22
Version:
1 (Revision 12)
Review Date:
Status:
experimental

This CD defines symbols for the description of the management of mathematical queries. In particular, it is used by the SCIEnce project [SCIEnce website] in the communication between a web service (i.e. computer algebra system, proof checker, etc) and a client. SCSCP is an abbreviation for "Symbolic Computation Software Composability Protocol" [SCSCP specification].

This version of the Content Dictionary agrees with version 1.3 of the SCSCP protocol.

procedure_call

Description:
The actual procedure call. Its only argument is an OpenMath Application, whose head symbol describes the procedure to be called, and whose arguments are the arguments to the procedure.
Example:

$\mathrm{procedure_call}\left(\mathrm{GroupIdentificationService}\left(\mathrm{group}\left(\mathrm{permutation}\left(2,3,1\right),\mathrm{permutation}\left(1,2,4,3\right)\right)\right)\right)$
Signatures:
sts

 [Next: procedure_completed] [Last: error_system_specific] [Top]

procedure_completed

Description:
The result of a successful computation. Should come along with a call_id and, possibly, some extra information.
Example:

$\mathrm{procedure_completed}\left(26925748508234281076009\right)$
Instead of the result, we may return a reference to the result, as follows:
Example:

$\mathrm{procedure_completed}\left(\right)$
Signatures:
sts

 [Next: procedure_terminated] [Previous: procedure_call] [Top]

procedure_terminated

Description:
The result of a failed computation. Should come along with a call_id, an error description, and possibly some extra information.
Example:

$\mathrm{procedure_terminated}\left(\mathrm{error_system_specific}\text{Segmentation fault}\right)$
Signatures:
sts

 [Next: call_id] [Previous: procedure_completed] [Top]

call_id

Description:
Uniquely identifies a procedure call. Used in subsequent communication, so the parties know which call they are talking about.
Example:


Signatures:
sts

 [Next: option_max_memory] [Previous: procedure_terminated] [Top]

option_max_memory

Description:
An option, to be given along with a procedure call, describing the maximum amount of memory (in bytes) the system should spend on this call.
Example:


Signatures:
sts

 [Next: option_min_memory] [Previous: call_id] [Top]

option_min_memory

Description:
An option, to be given along with a procedure call, describing the minimum amount of memory (in bytes) the system should be able to spend on this call. The idea is that in certain cases we know in advance that we will need a large amount of memory. If the system will never be able to provide that, it would be a waste of time and resources to even start the computation.
Example:


Signatures:
sts

 [Next: option_runtime] [Previous: option_max_memory] [Top]

option_runtime

Description:
An option, to be given along with a procedure call, describing the maximum amount of time (in milliseconds) the system should spend on this call.
Example:


Signatures:
sts

 [Next: option_debuglevel] [Previous: option_min_memory] [Top]

option_debuglevel

Description:
An option, to be given along with a procedure call, describing the amount of debug information the client is interested in. Should be an integer.
Example:


Signatures:
sts

Description:
An option, to be given along with a procedure call, indicating that the client would like to have a cookie (i.e. a reference to an OpenMath object residing somewhere) as return value.
Example:


The reply from the server should then look like:
Example:

$\mathrm{procedure_completed}\left(\right)$
Signatures:
sts

 [Next: option_return_object] [Previous: option_debuglevel] [Top]

option_return_object

Description:
An option, to be given along with a procedure call, indicating that the client would like to have the actual OpenMath object as return value.
Example:


The reply from the server should then look like:
Example:

$\mathrm{procedure_completed}\left(42\right)$
Signatures:
sts

option_return_nothing

Description:
An option, to be given along with a procedure call, indicating that the client expects no return value.
Example:


The reply from the server may then look like:
Example:

$\mathrm{procedure_completed}\left(\right)$
Signatures:
sts

 [Next: info_memory] [Previous: option_return_object] [Top]

info_memory

Description:
A piece of information from the system, to be used along with a procedure_completed or procedure_terminated message, describing how much memory was spent on the calculation. It should be in bytes, denoted using an OMI.
Example:


Signatures:
sts

 [Next: info_runtime] [Previous: option_return_nothing] [Top]

info_runtime

Description:
A piece of information from the system, to be used along with a procedure_completed or procedure_terminated message, describing how much cputime was spent on the calculation. It should be in milliseconds, denoted using an OMI.
Example:


Signatures:
sts

 [Next: info_message] [Previous: info_memory] [Top]

info_message

Description:
A piece of information from the server, to be used along with a procedure_completed or procedure_terminated message, giving some additional information. The client may choose to present this information to its user. The argument is an OMSTR.
Example:


Signatures:
sts

 [Next: error_memory] [Previous: info_runtime] [Top]

error_memory

Description:
A description of the error that caused a procedure call to be terminated. This symbol is used with a procedure_terminated, when the system exceeded the amount of memory specified in the option_max_memory option given in the corresponding procedure call. It carries one argument: An OMSTR, which may be empty.
Example:

$\mathrm{procedure_terminated}\left(\mathrm{error_memory}\text{}\right)$
Signatures:
sts

 [Next: error_runtime] [Previous: info_message] [Top]

error_runtime

Description:
A description of the error that caused a procedure call to be terminated. This symbol is used with a procedure_terminated, when the system exceeded the runtime specified in the option_runtime option given in the corresponding procedure call. It carries one argument: An OMSTR, which may be empty. Note that this symbol is not intended to be used when a different runtime error occurred. In those cases, one should use error_system_specific.
Example:

$\mathrm{procedure_terminated}\left(\mathrm{error_runtime}\text{}\right)$
Signatures:
sts

 [Next: error_system_specific] [Previous: error_memory] [Top]

error_system_specific

Description:
A description of the error that caused a procedure call to be terminated. This symbol is used with a procedure_terminated, when the error is specific to the system that carried out the calculation. This error must carry exactly one argument, and it must be an OMSTR describing the error that occurred.
Example:

$\mathrm{procedure_terminated}\left(\mathrm{error_system_specific}\text{Error, the group identification for groups of size\n 3628800 is not available called from\n ( ) called from read-eval-loop\n Entering break read-eval-print loop ...\n you can 'quit;' to quit to outer loop, or\n you can 'return;' to continue\n brk>\n}\right)$
Signatures:
sts

 [First: procedure_call] [Previous: error_runtime] [Top]