OpenMath Content Dictionary: scscp2
Canonical URL:
http://www.win.tue.nl/SCIEnce/cds/scscp2.ocd
CD File:
scscp2.ocd
CD as XML Encoded OpenMath:
scscp2.omcd
Defines:
get_allowed_heads , get_service_description , get_signature , get_transient_cd , is_allowed_head , no_such_transient_cd , retrieve , service_description , signature , store_persistent , store_session , symbol_set , symbol_set_all , unbind
Date:
2009-06-25
Version:
1
(Revision 8)
Review Date:
2017-12-31
Status:
experimental
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 .
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/ ](CIEnce 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).
The objects in this CD are somewhat more sophisticated than those in
[sccp1.html](scscp1), and some SCSCP compliant applications may not support these. In
particular, we add support for so-called "transient CDs", allowing a server to refer
to symbols from temporary content dictionaries, valid only for the duration of the
session. Please refer to the specification for more information on this concept.
The symbols in this CD mainly serve two purposes: working with remote objects (
scscp2.store_session ,
scscp2.store_persistent ,
scscp2.retrieve,
scscp2.unbind ) and determining
the procedures a system supports (
scscp2.get_allowed_heads,
scscp2.is_allowed_head,
scscp2.get_transient_cd,
scscp2.get_signature,
scscp2.get_service_description,
scscp2.signature,
scscp2.service_description ).
There are also some special symbols (
scscp2.symbol_set,
scscp2.symbol_set_all,
scscp2.no_such_transient_cd)
This version of the Content Dictionary agrees with version 1.3 of the SCSCP protocol.
Description:
This indicates the request to store an object on the server side (possibly after
computing or simplifying it), returning only a cookie (actually, OM reference)
pointing to an object that is usable (using an OMR) in the remainder of the current
SCSCP session to get access to the actual object.
The client could ask:
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath">
<OMATTR>
<OMATP>
<OMS cd="scscp1" name="call_id"/>
<OMSTR>9882860</OMSTR>
<OMS cd="scscp1" name="option_return_object"/>
<OMSTR/>
</OMATP>
<OMA>
<OMS cd="scscp1" name="procedure_call"/>
<OMA>
<OMS cd="scscp2" name="store_session"/>
<OMI>6177887</OMI>
</OMA>
</OMA>
</OMATTR>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<semantics>
<apply><csymbol cd="scscp1">procedure_call</csymbol>
<apply><csymbol cd="scscp2">store_session</csymbol><cn type="integer">6177887</cn></apply>
</apply>
<annotation-xml cd="scscp1" name="call_id"><cs>9882860</cs></annotation-xml>
<annotation-xml cd="scscp1" name="option_return_object"><cs/></annotation-xml>
</semantics>
</math>
Prefix
Popcorn
scscp1.procedure_call(scscp2.store_session(6177887)){scscp1.call_id -> "9882860", scscp1.option_return_object -> ""}
Rendered Presentation MathML
procedure_call
(
store_session
(
6177887
)
)
The server might then reply:
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath">
<OMATTR>
<OMATP>
<OMS cd="scscp1" name="call_id"/>
<OMSTR>9882860</OMSTR>
</OMATP>
<OMA>
<OMS cd="scscp1" name="procedure_completed"/>
<OMR href="scscp://somewhere:26133/qjhtkoeurthoedu"/>
</OMA>
</OMATTR>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<semantics>
<apply><csymbol cd="scscp1">procedure_completed</csymbol><share src="scscp://somewhere:26133/qjhtkoeurthoedu"/></apply>
<annotation-xml cd="scscp1" name="call_id"><cs>9882860</cs></annotation-xml>
</semantics>
</math>
Prefix
Popcorn
scscp1.procedure_completed(##scscp://somewhere:26133/qjhtkoeurthoedu){scscp1.call_id -> "9882860"}
Rendered Presentation MathML
procedure_completed
(
)
Note that the content of the OMR may vary, e.g. the URI does not necessarily start
with scscp://.
Signatures:
sts
Description:
This indicates the request to store an object on the server side (possibly after
computing or simplifying it), returning only a cookie (actually, OM reference)
pointing to an object that is usable (using OMR) in the foreseeable future, possibly
from different sessions, to get access to the actual object.
The server is encouraged to describe the expected lifetime of this object and
whether references to this object from different SCSCP sessions are allowed in the
response to a scscp2.get_signature request on this symbol. However, at this time we
provide no automated or machine-readable mechanism for handling these lifetimes.
Signatures:
sts
Description:
Using the cookie that was obtained earlier by calling the scscp2.store_session or
scscp2.store_persistent procedure or another procedure call, return to the client an
OM object representing the object, referred by the cookie.
The client could ask:
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath">
<OMATTR>
<OMATP>
<OMS cd="scscp1" name="call_id"/>
<OMSTR>9882861</OMSTR>
<OMS cd="scscp1" name="option_return_object"/>
<OMSTR/>
</OMATP>
<OMA>
<OMS cd="scscp1" name="procedure_call"/>
<OMA>
<OMS cd="scscp2" name="retrieve"/>
<OMR href="scscp://somewhere:26133/qjhtkoeurthoedu"/>
</OMA>
</OMA>
</OMATTR>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<semantics>
<apply><csymbol cd="scscp1">procedure_call</csymbol>
<apply><csymbol cd="scscp2">retrieve</csymbol><share src="scscp://somewhere:26133/qjhtkoeurthoedu"/></apply>
</apply>
<annotation-xml cd="scscp1" name="call_id"><cs>9882861</cs></annotation-xml>
<annotation-xml cd="scscp1" name="option_return_object"><cs/></annotation-xml>
</semantics>
</math>
Prefix
Popcorn
scscp1.procedure_call(scscp2.retrieve(##scscp://somewhere:26133/qjhtkoeurthoedu)){scscp1.call_id -> "9882861", scscp1.option_return_object -> ""}
Rendered Presentation MathML
procedure_call
(
retrieve
(
)
)
The server might then reply:
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath">
<OMATTR>
<OMATP>
<OMS cd="scscp1" name="call_id"/>
<OMSTR>9882861</OMSTR>
</OMATP>
<OMA>
<OMS cd="scscp1" name="procedure_completed"/>
<OMI>6177887</OMI>
</OMA>
</OMATTR>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<semantics>
<apply><csymbol cd="scscp1">procedure_completed</csymbol><cn type="integer">6177887</cn></apply>
<annotation-xml cd="scscp1" name="call_id"><cs>9882861</cs></annotation-xml>
</semantics>
</math>
Prefix
Popcorn
scscp1.procedure_completed(6177887){scscp1.call_id -> "9882861"}
Rendered Presentation MathML
procedure_completed
(
6177887
)
Signatures:
sts
Description:
This indicates the request to remove the object, referred
by the cookie, from the server.
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath">
<OMATTR>
<OMATP>
<OMS cd="scscp1" name="call_id"/>
<OMSTR>9882862</OMSTR>
<OMS cd="scscp1" name="option_return_object"/>
<OMSTR/>
</OMATP>
<OMA>
<OMS cd="scscp1" name="procedure_call"/>
<OMA>
<OMS cd="scscp2" name="unbind"/>
<OMR href="scscp://somewhere:26133/qjhtkoeurthoedu"/>
</OMA>
</OMA>
</OMATTR>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<semantics>
<apply><csymbol cd="scscp1">procedure_call</csymbol>
<apply><csymbol cd="scscp2">unbind</csymbol><share src="scscp://somewhere:26133/qjhtkoeurthoedu"/></apply>
</apply>
<annotation-xml cd="scscp1" name="call_id"><cs>9882862</cs></annotation-xml>
<annotation-xml cd="scscp1" name="option_return_object"><cs/></annotation-xml>
</semantics>
</math>
Prefix
Popcorn
scscp1.procedure_call(scscp2.unbind(##scscp://somewhere:26133/qjhtkoeurthoedu)){scscp1.call_id -> "9882862", scscp1.option_return_object -> ""}
Rendered Presentation MathML
procedure_call
(
unbind
(
)
)
The server might then reply:
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath">
<OMATTR>
<OMATP>
<OMS cd="scscp1" name="call_id"/>
<OMSTR>9882862</OMSTR>
</OMATP>
<OMA>
<OMS cd="scscp1" name="procedure_completed"/>
</OMA>
</OMATTR>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<semantics>
<apply><csymbol cd="scscp1">procedure_completed</csymbol></apply>
<annotation-xml cd="scscp1" name="call_id"><cs>9882862</cs></annotation-xml>
</semantics>
</math>
Prefix
Popcorn
scscp1.procedure_completed(){scscp1.call_id -> "9882862"}
Rendered Presentation MathML
procedure_completed
(
)
Signatures:
sts
Description:
This symbol is used to find the list of procedures supported by an SCSCP server.
The client could send:
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath">
<OMATTR>
<OMATP>
<OMS cd="scscp1" name="call_id"/>
<OMSTR>1324765</OMSTR>
<OMS cd="scscp1" name="option_return_object"/>
<OMSTR/>
</OMATP>
<OMA>
<OMS cd="scscp1" name="procedure_call"/>
<OMA>
<OMS cd="scscp2" name="get_allowed_heads"/>
</OMA>
</OMA>
</OMATTR>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<semantics>
<apply><csymbol cd="scscp1">procedure_call</csymbol><apply><csymbol cd="scscp2">get_allowed_heads</csymbol></apply></apply>
<annotation-xml cd="scscp1" name="call_id"><cs>1324765</cs></annotation-xml>
<annotation-xml cd="scscp1" name="option_return_object"><cs/></annotation-xml>
</semantics>
</math>
Prefix
Popcorn
scscp1.procedure_call(scscp2.get_allowed_heads()){scscp1.call_id -> "1324765", scscp1.option_return_object -> ""}
Rendered Presentation MathML
procedure_call
(
get_allowed_heads
(
)
)
and the server might then reply:
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath">
<OMATTR>
<OMATP>
<OMS cd="scscp1" name="call_id"/>
<OMSTR>1324765</OMSTR>
</OMATP>
<OMA>
<OMS cd="scscp1" name="procedure_completed"/>
<OMA>
<OMS cd="scscp2" name="symbol_set"/>
<OMS cd="scscp_transient_1" name="GroupIdentificationService"/>
<OMS cd="group1" name="group"/>
<OMA>
<OMS cd="meta" name="CDName"/>
<OMSTR>permut1</OMSTR>
</OMA>
<OMA>
<OMS cd="metagrp" name="CDGroupName"/>
<OMSTR>scscp</OMSTR>
</OMA>
</OMA>
</OMA>
</OMATTR>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<semantics>
<apply><csymbol cd="scscp1">procedure_completed</csymbol>
<apply><csymbol cd="scscp2">symbol_set</csymbol>
<csymbol cd="scscp_transient_1">GroupIdentificationService</csymbol>
<csymbol cd="group1">group</csymbol>
<apply><csymbol cd="meta">CDName</csymbol><cs>permut1</cs></apply>
<apply><csymbol cd="metagrp">CDGroupName</csymbol><cs>scscp</cs></apply>
</apply>
</apply>
<annotation-xml cd="scscp1" name="call_id"><cs>1324765</cs></annotation-xml>
</semantics>
</math>
Prefix
Popcorn
scscp1.procedure_completed(scscp2.symbol_set(scscp_transient_1.GroupIdentificationService, group1.group, meta.CDName("permut1"), metagrp.CDGroupName("scscp"))){scscp1.call_id -> "1324765"}
Rendered Presentation MathML
procedure_completed
(
symbol_set
(
GroupIdentificationService
,
group
,
CDName
(
permut1
)
,
CDGroupName
(
scscp
)
)
)
indicating that it accepts the symbol GroupIdentificationService from the transient
CD scscp_transient_1, the symbol group1.group, the entire permut1 CD, and all cds
from the CD group called scscp.
Signatures:
sts
Description:
This symbol is used to find whether a particular procedure is supported by an SCSCP
server. The reply must be either true or false, described in one of the appropriate
symbols from the logic1 content dictionary.
The client could ask:
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath">
<OMATTR>
<OMATP>
<OMS cd="scscp1" name="call_id"/>
<OMSTR>xy87263</OMSTR>
<OMS cd="scscp1" name="option_return_object"/>
<OMSTR/>
</OMATP>
<OMA>
<OMS cd="scscp1" name="procedure_call"/>
<OMA>
<OMS cd="scscp2" name="is_allowed_head"/>
<OMS cd="arith1" name="plus"/>
</OMA>
</OMA>
</OMATTR>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<semantics>
<apply><csymbol cd="scscp1">procedure_call</csymbol>
<apply><csymbol cd="scscp2">is_allowed_head</csymbol><csymbol cd="arith1">plus</csymbol></apply>
</apply>
<annotation-xml cd="scscp1" name="call_id"><cs>xy87263</cs></annotation-xml>
<annotation-xml cd="scscp1" name="option_return_object"><cs/></annotation-xml>
</semantics>
</math>
Prefix
Popcorn
scscp1.procedure_call(scscp2.is_allowed_head(arith1.plus)){scscp1.call_id -> "xy87263", scscp1.option_return_object -> ""}
Rendered Presentation MathML
procedure_call
(
is_allowed_head
(
+
)
)
and the server might then reply:
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath">
<OMATTR>
<OMATP>
<OMS cd="scscp1" name="call_id"/>
<OMSTR>xy87263</OMSTR>
</OMATP>
<OMA>
<OMS cd="scscp1" name="procedure_completed"/>
<OMS cd="logic1" name="false"/>
</OMA>
</OMATTR>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<semantics>
<apply><csymbol cd="scscp1">procedure_completed</csymbol><csymbol cd="logic1">false</csymbol></apply>
<annotation-xml cd="scscp1" name="call_id"><cs>xy87263</cs></annotation-xml>
</semantics>
</math>
Prefix
Popcorn
scscp1.procedure_completed(logic1.false){scscp1.call_id -> "xy87263"}
Rendered Presentation MathML
procedure_completed
(
F
)
indicating that it does not accept this symbol. Another, slightly more contrived,
example would be for the client to ask:
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath">
<OMATTR>
<OMATP>
<OMS cd="scscp1" name="call_id"/>
<OMSTR>xy87263</OMSTR>
<OMS cd="scscp1" name="option_return_object"/>
<OMSTR/>
</OMATP>
<OMA>
<OMS cd="scscp1" name="procedure_call"/>
<OMA>
<OMS cd="scscp2" name="is_allowed_head"/>
<OMS cd="scscp2" name="is_allowed_head"/>
</OMA>
</OMA>
</OMATTR>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<semantics>
<apply><csymbol cd="scscp1">procedure_call</csymbol>
<apply><csymbol cd="scscp2">is_allowed_head</csymbol><csymbol cd="scscp2">is_allowed_head</csymbol></apply>
</apply>
<annotation-xml cd="scscp1" name="call_id"><cs>xy87263</cs></annotation-xml>
<annotation-xml cd="scscp1" name="option_return_object"><cs/></annotation-xml>
</semantics>
</math>
Prefix
Popcorn
scscp1.procedure_call(scscp2.is_allowed_head(scscp2.is_allowed_head)){scscp1.call_id -> "xy87263", scscp1.option_return_object -> ""}
Rendered Presentation MathML
procedure_call
(
is_allowed_head
(
is_allowed_head
)
)
and the server to reply:
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath">
<OMATTR>
<OMATP>
<OMS cd="scscp1" name="call_id"/>
<OMSTR>xy87263</OMSTR>
</OMATP>
<OMA>
<OMS cd="scscp1" name="procedure_completed"/>
<OMS cd="logic1" name="true"/>
</OMA>
</OMATTR>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<semantics>
<apply><csymbol cd="scscp1">procedure_completed</csymbol><csymbol cd="logic1">true</csymbol></apply>
<annotation-xml cd="scscp1" name="call_id"><cs>xy87263</cs></annotation-xml>
</semantics>
</math>
Prefix
Popcorn
scscp1.procedure_completed(logic1.true){scscp1.call_id -> "xy87263"}
Rendered Presentation MathML
procedure_completed
(
T
)
In particular, this is the method of choice to find out whether a particular server
supports storing remote objects using the scscp2.store_session and/or
scscp2.store_persistent methods.
Signatures:
sts
Description:
This symbol is used to get the contents of a transient CD created by a server.
The client could send:
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath">
<OMATTR>
<OMATP>
<OMS cd="scscp1" name="call_id"/>
<OMSTR>1324766</OMSTR>
<OMS cd="scscp1" name="option_return_object"/>
<OMSTR/>
</OMATP>
<OMA>
<OMS cd="scscp1" name="procedure_call"/>
<OMA>
<OMS cd="scscp2" name="get_transient_cd"/>
<OMA>
<OMS cd="meta" name="CDName"/>
<OMSTR>scscp_transient_1</OMSTR>
</OMA>
</OMA>
</OMA>
</OMATTR>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<semantics>
<apply><csymbol cd="scscp1">procedure_call</csymbol>
<apply><csymbol cd="scscp2">get_transient_cd</csymbol>
<apply><csymbol cd="meta">CDName</csymbol><cs>scscp_transient_1</cs></apply>
</apply>
</apply>
<annotation-xml cd="scscp1" name="call_id"><cs>1324766</cs></annotation-xml>
<annotation-xml cd="scscp1" name="option_return_object"><cs/></annotation-xml>
</semantics>
</math>
Prefix
Popcorn
scscp1.procedure_call(scscp2.get_transient_cd(meta.CDName("scscp_transient_1"))){scscp1.call_id -> "1324766", scscp1.option_return_object -> ""}
Rendered Presentation MathML
procedure_call
(
get_transient_cd
(
CDName
(
scscp_transient_1
)
)
)
and the server might then reply:
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath">
<OMATTR>
<OMATP>
<OMS cd="scscp1" name="call_id"/>
<OMSTR>1324766</OMSTR>
</OMATP>
<OMA>
<OMS cd="scscp1" name="procedure_completed"/>
<OMA>
<OMS cd="meta" name="CD"/>
<OMA>
<OMS cd="meta" name="CDName"/>
<OMSTR>scscp_transient_1</OMSTR>
</OMA>
<OMA>
<OMS cd="meta" name="CDDate"/>
<OMSTR>2007-08-24</OMSTR>
</OMA>
<OMA>
<OMS cd="meta" name="Description"/>
<OMSTR>CD created by the service provider</OMSTR>
</OMA>
<OMA>
<OMS name="CDDefinition" cd="meta"/>
<OMA>
<OMS cd="meta" name="Name"/>
<OMSTR>GroupIdentificationService</OMSTR>
</OMA>
<OMA>
<OMS cd="meta" name="Description"/>
<OMSTR>IdGroup(permgroup by gens)</OMSTR>
</OMA>
</OMA>
</OMA>
</OMA>
</OMATTR>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<semantics>
<apply><csymbol cd="scscp1">procedure_completed</csymbol>
<apply><csymbol cd="meta">CD</csymbol>
<apply><csymbol cd="meta">CDName</csymbol><cs>scscp_transient_1</cs></apply>
<apply><csymbol cd="meta">CDDate</csymbol><cs>2007-08-24</cs></apply>
<apply><csymbol cd="meta">Description</csymbol><cs>CD created by the service provider</cs></apply>
<apply><csymbol cd="meta">CDDefinition</csymbol>
<apply><csymbol cd="meta">Name</csymbol><cs>GroupIdentificationService</cs></apply>
<apply><csymbol cd="meta">Description</csymbol><cs>IdGroup(permgroup by gens)</cs></apply>
</apply>
</apply>
</apply>
<annotation-xml cd="scscp1" name="call_id"><cs>1324766</cs></annotation-xml>
</semantics>
</math>
Prefix
Popcorn
scscp1.procedure_completed(meta.CD(meta.CDName("scscp_transient_1"), meta.CDDate("2007-08-24"), meta.Description("CD created by the service provider"), meta.CDDefinition(meta.Name("GroupIdentificationService"), meta.Description("IdGroup(permgroup by gens)")))){scscp1.call_id -> "1324766"}
Rendered Presentation MathML
procedure_completed
(
CD
(
CDName
(
scscp_transient_1
)
,
CDDate
(
2007-08-24
)
,
Description
(
CD created by the service provider
)
,
CDDefinition
(
Name
(
GroupIdentificationService
)
,
Description
(
IdGroup(permgroup by gens)
)
)
)
)
Signatures:
sts
Description:
A symbol for the client to inquire about the signature of a particular function.
The client could send:
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath">
<OMATTR>
<OMATP>
<OMS cd="scscp1" name="call_id"/>
<OMSTR>1324767</OMSTR>
<OMS cd="scscp1" name="option_return_object"/>
<OMSTR/>
</OMATP>
<OMA>
<OMS cd="scscp1" name="procedure_call"/>
<OMA>
<OMS cd="scscp2" name="get_signature"/>
<OMS cd="scscp_transient_1" name="GroupIdentificationService"/>
</OMA>
</OMA>
</OMATTR>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<semantics>
<apply><csymbol cd="scscp1">procedure_call</csymbol>
<apply><csymbol cd="scscp2">get_signature</csymbol><csymbol cd="scscp_transient_1">GroupIdentificationService</csymbol></apply>
</apply>
<annotation-xml cd="scscp1" name="call_id"><cs>1324767</cs></annotation-xml>
<annotation-xml cd="scscp1" name="option_return_object"><cs/></annotation-xml>
</semantics>
</math>
Prefix
Popcorn
scscp1.procedure_call(scscp2.get_signature(scscp_transient_1.GroupIdentificationService)){scscp1.call_id -> "1324767", scscp1.option_return_object -> ""}
Rendered Presentation MathML
procedure_call
(
get_signature
(
GroupIdentificationService
)
)
and the server might then reply with a signature message.
Signatures:
sts
Description:
A symbol for the client to ask for some description of a service. Note that this is
a very generic description of the service running on a particular port on a
particular machine. More details about for example the available symbols there may
be obtained with get_allowed_heads, get_signature or get_transient_cd.
The client could send:
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath">
<OMATTR>
<OMATP>
<OMS cd="scscp1" name="call_id"/>
<OMSTR>1324769</OMSTR>
<OMS cd="scscp1" name="option_return_object"/>
<OMSTR/>
</OMATP>
<OMA>
<OMS cd="scscp1" name="procedure_call"/>
<OMA>
<OMS cd="scscp2" name="get_service_description"/>
</OMA>
</OMA>
</OMATTR>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<semantics>
<apply><csymbol cd="scscp1">procedure_call</csymbol><apply><csymbol cd="scscp2">get_service_description</csymbol></apply></apply>
<annotation-xml cd="scscp1" name="call_id"><cs>1324769</cs></annotation-xml>
<annotation-xml cd="scscp1" name="option_return_object"><cs/></annotation-xml>
</semantics>
</math>
Prefix
Popcorn
scscp1.procedure_call(scscp2.get_service_description()){scscp1.call_id -> "1324769", scscp1.option_return_object -> ""}
Rendered Presentation MathML
procedure_call
(
get_service_description
(
)
)
Signatures:
sts
Description:
The symbol to use for describing the types of arguments of a particular function.
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath">
<OMATTR>
<OMATP>
<OMS cd="scscp1" name="call_id"/>
<OMSTR>1324767</OMSTR>
</OMATP>
<OMA>
<OMS cd="scscp1" name="procedure_completed"/>
<OMA>
<OMS cd="scscp2" name="signature"/>
<OMS cd="scscp_transient_1" name="GroupIdentificationService"/>
<OMI>1</OMI>
<OMI>1</OMI>
<OMA>
<OMS cd="list1" name="list"/>
<OMA>
<OMS cd="scscp2" name="symbol_set"/>
<OMS cd="group1" name="group"/>
<OMA>
<OMS cd="meta" name="CDName"/>
<OMSTR>permut1</OMSTR>
</OMA>
</OMA>
</OMA>
</OMA>
</OMA>
</OMATTR>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<semantics>
<apply><csymbol cd="scscp1">procedure_completed</csymbol>
<apply><csymbol cd="scscp2">signature</csymbol>
<csymbol cd="scscp_transient_1">GroupIdentificationService</csymbol>
<cn type="integer">1</cn>
<cn type="integer">1</cn>
<apply><csymbol cd="list1">list</csymbol>
<apply><csymbol cd="scscp2">symbol_set</csymbol>
<csymbol cd="group1">group</csymbol>
<apply><csymbol cd="meta">CDName</csymbol><cs>permut1</cs></apply>
</apply>
</apply>
</apply>
</apply>
<annotation-xml cd="scscp1" name="call_id"><cs>1324767</cs></annotation-xml>
</semantics>
</math>
Prefix
Popcorn
scscp1.procedure_completed(scscp2.signature(scscp_transient_1.GroupIdentificationService, 1, 1, [scscp2.symbol_set(group1.group, meta.CDName("permut1"))])){scscp1.call_id -> "1324767"}
Rendered Presentation MathML
procedure_completed
(
signature
(
GroupIdentificationService
,
1
,
1
,
symbol_set
(
group
,
CDName
(
permut1
)
)
)
)
This means that this GroupIdentificationService requires at least 1 argument, and at
most 1 argument, and that the symbol group1.group or anything from the permut1 CD
may be used to form this argument.
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath">
<OMATTR>
<OMATP>
<OMS cd="scscp1" name="call_id"/>
<OMSTR>1324767</OMSTR>
</OMATP>
<OMA>
<OMS cd="scscp1" name="procedure_completed"/>
<OMA>
<OMS cd="scscp2" name="signature"/>
<OMS cd="scscp_transient_1" name="CAS_Service"/>
<OMI>0</OMI>
<OMS cd="nums1" name="infinity"/>
<OMA>
<OMS cd="list1" name="list"/>
<OMA>
<OMS cd="meta" name="CDGroupName"/>
<OMSTR>scscp</OMSTR>
</OMA>
<OMA>
<OMS cd="meta" name="CDName"/>
<OMSTR>scscp_transient_0</OMSTR>
</OMA>
<OMA>
<OMS cd="meta" name="CDName"/>
<OMSTR>scscp_transient_1</OMSTR>
</OMA>
<OMA>
<OMS cd="meta" name="CDName"/>
<OMSTR>arith1</OMSTR>
</OMA>
<OMA>
<OMS cd="meta" name="CDName"/>
<OMSTR>transc1</OMSTR>
</OMA>
</OMA>
</OMA>
</OMA>
</OMATTR>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<semantics>
<apply><csymbol cd="scscp1">procedure_completed</csymbol>
<apply><csymbol cd="scscp2">signature</csymbol>
<csymbol cd="scscp_transient_1">CAS_Service</csymbol>
<cn type="integer">0</cn>
<csymbol cd="nums1">infinity</csymbol>
<apply><csymbol cd="list1">list</csymbol>
<apply><csymbol cd="meta">CDGroupName</csymbol><cs>scscp</cs></apply>
<apply><csymbol cd="meta">CDName</csymbol><cs>scscp_transient_0</cs></apply>
<apply><csymbol cd="meta">CDName</csymbol><cs>scscp_transient_1</cs></apply>
<apply><csymbol cd="meta">CDName</csymbol><cs>arith1</cs></apply>
<apply><csymbol cd="meta">CDName</csymbol><cs>transc1</cs></apply>
</apply>
</apply>
</apply>
<annotation-xml cd="scscp1" name="call_id"><cs>1324767</cs></annotation-xml>
</semantics>
</math>
Prefix
Popcorn
scscp1.procedure_completed(scscp2.signature(scscp_transient_1.CAS_Service, 0, nums1.infinity, [meta.CDGroupName("scscp") , meta.CDName("scscp_transient_0") , meta.CDName("scscp_transient_1") , meta.CDName("arith1") , meta.CDName("transc1")])){scscp1.call_id -> "1324767"}
Rendered Presentation MathML
procedure_completed
(
signature
(
CAS_Service
,
0
,
∞
,
(
CDGroupName
(
scscp
)
,
CDName
(
scscp_transient_0
)
,
CDName
(
scscp_transient_1
)
,
CDName
(
arith1
)
,
CDName
(
transc1
)
)
)
)
indicating that this particular CAS_Service takes any number of arguments, which may
be formed using anything from the CD group scscp, one of two transient CDs, and the
arith1 or transc1 CD.
Signatures:
sts
Description:
The symbol for the server to use in a response to scscp2.get_service_description.
It takes three OMSTR arguments: Name, Version, and Description.
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath">
<OMATTR>
<OMATP>
<OMS cd="scscp1" name="call_id"/>
<OMSTR>1324769</OMSTR>
</OMATP>
<OMA>
<OMS cd="scscp1" name="procedure_completed"/>
<OMA>
<OMS cd="scscp2" name="service_description"/>
<OMSTR>MyGreatService</OMSTR>
<OMSTR>1.1.0</OMSTR>
<OMSTR>This service does fantastic things!</OMSTR>
</OMA>
</OMA>
</OMATTR>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<semantics>
<apply><csymbol cd="scscp1">procedure_completed</csymbol>
<apply><csymbol cd="scscp2">service_description</csymbol><cs>MyGreatService</cs><cs>1.1.0</cs><cs>This service does fantastic things!</cs></apply>
</apply>
<annotation-xml cd="scscp1" name="call_id"><cs>1324769</cs></annotation-xml>
</semantics>
</math>
Prefix
Popcorn
scscp1.procedure_completed(scscp2.service_description("MyGreatService", "1.1.0", "This service does fantastic things!")){scscp1.call_id -> "1324769"}
Rendered Presentation MathML
procedure_completed
(
service_description
(
MyGreatService
,
1.1.0
,
This service does fantastic things!
)
)
Signatures:
sts
Description:
This symbol is used in the reply to a scscp2.get_allowed_heads call. It should be
the head of an OM Application, the contents of the OMA being arbitrarily many OM
Symbols (meaning that a particular symbol is supported), OMA's with head meta.CDName
(meaning that all symbols of a particular CD are supported) or OMA's with head
meta.CDGroupName (meaning that all symbols of all CDs of a particular CD group are
supported).
See the example at scscp2.get_allowed_heads.
Signatures:
sts
Description:
This symbol is used in the reply to a scscp2.get_signature message. It means that
this particular service takes any OpenMath object as argument.
A reply might be:
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath">
<OMATTR>
<OMATP>
<OMS cd="scscp1" name="call_id"/>
<OMSTR>1324767</OMSTR>
</OMATP>
<OMA>
<OMS cd="scscp1" name="procedure_completed"/>
<OMA>
<OMS cd="scscp2" name="signature"/>
<OMS cd="scscp_transient_1" name="Something"/>
<OMI>0</OMI>
<OMS cd="nums1" name="infinity"/>
<OMS cd="scscp2" name="symbol_set_all"/>
</OMA>
</OMA>
</OMATTR>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<semantics>
<apply><csymbol cd="scscp1">procedure_completed</csymbol>
<apply><csymbol cd="scscp2">signature</csymbol>
<csymbol cd="scscp_transient_1">Something</csymbol>
<cn type="integer">0</cn>
<csymbol cd="nums1">infinity</csymbol>
<csymbol cd="scscp2">symbol_set_all</csymbol>
</apply>
</apply>
<annotation-xml cd="scscp1" name="call_id"><cs>1324767</cs></annotation-xml>
</semantics>
</math>
Prefix
Popcorn
scscp1.procedure_completed(scscp2.signature(scscp_transient_1.Something, 0, nums1.infinity, scscp2.symbol_set_all)){scscp1.call_id -> "1324767"}
Rendered Presentation MathML
procedure_completed
(
signature
(
Something
,
0
,
∞
,
symbol_set_all
)
)
indicating that this service, scscp_transient_1.Something, takes between 0 and
infinity arguments, each of which can be of any type.
Signatures:
sts
Description:
Used for errors that arise when the client asks for a transient cd that the server
cannot handle.
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath">
<OME>
<OMS cd="scscp2" name="no_such_transient_cd"/>
<OMSTR>scscp_transient_7</OMSTR>
</OME>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML"><cerror><csymbol cd="scscp2">no_such_transient_cd</csymbol><cs>scscp_transient_7</cs></cerror></math>
Prefix
Popcorn
scscp2.no_such_transient_cd!("scscp_transient_7")
Rendered Presentation MathML
no_such_transient_cd
scscp_transient_7
Signatures:
sts