This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. The copyright holder grants you permission to redistribute this document freely as a verbatim copy. Furthermore, the copyright holder permits you to develop any derived work from this document provided that the following conditions are met. a) The derived work acknowledges the fact that it is derived from this document, and maintains a prominent reference in the work to the original source. b) The fact that the derived work is not the original OpenMath document is stated prominently in the derived work. Moreover if both this document and the derived work are Content Dictionaries then the derived work must include a different CDName element, chosen so that it cannot be confused with any works adopted by the OpenMath Society. In particular, if there is a Content Dictionary Group whose name is, for example, `math' containing Content Dictionaries named `math1', `math2' etc., then you should not name a derived Content Dictionary `mathN' where N is an integer. However you are free to name it `private_mathN' or some such. This is because the names `mathN' may be used by the OpenMath Society for future extensions. c) The derived work is distributed under terms that allow the compilation of derived works, but keep paragraphs a) and b) intact. The simplest way to do this is to distribute the derived work under the OpenMath license, but this is not a requirement. If you have questions about this license please contact the OpenMath society at http://www.openmath.org. scscp1 http://www.win.tue.nl/SCIEnce/cds/scscp1.ocd 2017-12-31 experimental 2009-06-22 1 13 This CD defines symbols for the description of the management of mathematical queries. In particular, it is used by the SCIEnce project [http://www.symbolic-computation.org/](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" [http://www.symbolic-computation.org/scscp/](SCSCP specification) This version of the Content Dictionary agrees with version 1.3 of the SCSCP protocol. procedure_call 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. localhost:26137:18668:s2sYf1pg 300000 40964 134217728 2 2 3 1 1 2 4 3 procedure_completed The result of a successful computation. Should come along with a call_id and, possibly, some extra information. a1d0c6e83f027327d8461063f4ac58a6 72643 52876 26925748508234281076009 Instead of the result, we may return a reference to the result, as follows: a1d0c6e83f027327d8461063f4ac58a6 72643 52876 procedure_terminated The result of a failed computation. Should come along with a call_id, an error description, and possibly some extra information. a24904e5d3ed28eae9225fd787f64a71 21897 Segmentation fault call_id Uniquely identifies a procedure call. Used in subsequent communication, so the parties know which call they are talking about. a1d0c6e83f027327d8461063f4ac58a6 The OMA goes here option_max_memory 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. localhost:26137:18668:s2sYf1pg 20971520 The OMA goes here option_min_memory 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. localhost:26137:18668:s2sYf1pg 250971520 The OMA goes here option_runtime 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. localhost:26137:18668:s2sYf1pg 600000 The OMA goes here option_debuglevel 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. localhost:26137:18668:s2sYf1pg 2 The OMA goes here option_return_cookie 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. localhost:26137:18668:s2sYf1pg The OMA goes here The reply from the server should then look like: localhost:26137:18668:s2sYf1pg option_return_object 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. localhost:26137:18668:s2sYf1pg The OMA goes here The reply from the server should then look like: localhost:26137:18668:s2sYf1pg 42 option_return_nothing An option, to be given along with a procedure call, indicating that the client expects no return value. localhost:26137:18668:s2sYf1pg The OMA goes here The reply from the server may then look like: localhost:26137:18668:s2sYf1pg info_memory 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. localhost:26137:18668:s2sYf1pg 134218000 The OMA goes here info_runtime 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. localhost:26137:18668:s2sYf1pg 76543 The OMA goes here info_message 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. localhost:26137:18668:s2sYf1pg The weather in St. Andrews is beautiful this time of year The OMA goes here error_memory 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. error_runtime 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. error_system_specific 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.