Imported Schema
Import the OpenMath Schema so we can use the
OpenMath types. XML encoded OpenMath contained withing Monet files
will be validated. Conversely MathML (for example) will be
validated laxly and so will be skipped and not validated unless
the MathML schema is explictly made available to the schema
validator in addition to this Monet schema.
Monet Mathematical Service Description Language
Naming Schemes
As far as
possible, this schema uses the naming conventions that
elements are named in the style:
lowercase-hyphenated-names. Schema
Complex Types are named in the style:
tCamelCaseStartingWithT.
URI's used as abstract names are typically encoded
using
elements of type
xsd:anyURI whereas URI's that are
proncipally used as location references for further
information are typically encoded using an
attribute of type
xsd:anyURI (often with name
href).
Many elements use the convention that they use
either a
name attribute,
and non empty content
or they have empty
content and an
href attribute
refering to an external source of information. Such
elements should not have both a
href
attribute and a
name attribute,
although this restriction can not be enforced by W3C
XML schema.
Elements which in the schema allow both a
name and an
href attribute can
be used in two ways. When used with
name and
content, they serve as a declaration of a corresponding entity
named by the URI
targetNamespace#name, where
targetNamespace is an attribute of the ancestor
definitions element. This URI can then be used
with
href, when the element is intended as a
reference to an entity of that type. Therefore it is good
practice to wrap declarations of problems and algorithms in a
definitions element with a targetNamespace.
Any top level optional element allowed to appear more
then once- any child of definitions element except
monet:types. Any extensibility element before these
elements.
Service binding can appear several times in order to map multiple
problem references to the service interface.
software is used to provide details of the software used to implement
the service (e.g. NAG Library, Maple etc.).
hardware is used to describe the hardware platform on which the
service is running.
algorithm is a usually a pointer to an entry in the algorithm library
algorithm-properties are used to describe features of this
implementation such as accuracy, memory-usage etc.
action is used to give a name to a logical step in the problem-solving
process (e.g. "initialisation").
An algorithm description has to refer to the
problem it solves and must have a name by which it can be
referred to. Furthermore, theoretical complexity and taxonomic
information can be added.
This is used to provide details of the software used to implement
the service.
This is used to provide details of the hardware platform on
which the service runs.
These describe features of this implementation such as accuracy,
memory-usage etc.
This provides an abstract name for an actions, and is used in
describing the Service Binding.
The role attribute is the generic name for Initialize/Execute/Terminate
The name attribute is the abstract name for the action.
If no actions are provided then all operations described in the
service interface are "execute" operations related to the problems
they are associated with.
]
The Service Interface Description element contains details of the
low-level interface exposed by the service. Typically it will be
WSDL.
This can either be provided directly, or via a URI given in the
href attribute. This can either be a pointer to a WSDL
document or to a means for generating one. This is useful in the
case where the WSDL is not available at registration time.
A container for the Service Binding which relates the messages
and ports qualified by the WSDL in the SID (or equivalent if other
formalism is used) to the abstract names of input and output
components in the abstract problem definitions described by the
classification elements. (This presupposes that the SID
defines unique names for ports and messages - unambiguous
referenceable entities).
The mapping of either the problem name to the
operation in the Service Interface Description or the abstract action names to the
operations in the SID.
Exactly one of the action or problem-ref attributes must be
present. Multiple maps with the same action or
problem-ref attributes are forbidden unless they are identical
(i.e. map to the same operation).
The mapping of the problem input and output names to the parts
names as children of messages (uniquely identifiable by the message
name and the part name).
Note that the io-ref attribute may refer to a name in the problem
description or a generic role (e.g.~accuracy) given in an
OpenMath CD.
A container for the Service Metadata which is expressed in any formalism
(Dublin Core, Grid Economic Service Architecture, ...)
This describes the API exposed to the broker by the service, for example
it might offer a factory interface to generate service instances or
life-cycle management functions which are hidden to the normal client.
This is particularly important if the broker is managing services
corresponding to another framework such as OGSA.
The service-URI is the URI of the service from the broker's point of
view.
The broker-interface-description could be a WSDL document, for example.
Monet Base Types
This type is the basic type of elements that need to be documented
This is the type of elements that need to be documented and to
which may contain fragments from other namespaces.
Taxonomy information used to classify
problems or algorithms. This field should be done using the UDDI
type. At present, one could extend it and use UDDI within this
element.
A Mathematical Formula in OpenMath, if some other formulism is
used then the encoding attribute should be used to specify a URI
which identifies the language.
This declares an identifier name and its
domain. The name may be used to refer to this input parameter in
pre and post constraints.
This declares an identifier name and its domain.
The name may be used to refer to this input parameter in
post constraints.
The content of elements of this type may be
in any namespace (other then the monet namespace). Typically
they will be elements in the OpenMath namespace encoding values
or expressions, but other encodings may be used.
The content of elements of this type may be
in any namespace (other then the monet namespace). Typically they
will be elements in the OpenMath namespace giving signatures
using the STS type system, but other systems may be used. (Of
course not all brokers will understand all possible type systems.)
taxonomy is a reference to a node in a taxonomy.
problem is usually a pointer using an href attribute to
entries in the Problem Description Library, although as an
alternative it may directly contain the problem description
as element content..
Similarly semantics are usually pointers to CDs, URIs for MathML, Maple etc.
They are used to describe the "language" used to define objects
transmitted to and from the service. Again the semantics
element may contain content in a foreign namespace, rather
than an href attribute.
directive-type is find; solve; decide; prove; anything-else; ...
specifies the language used, it takes a URI content denoting the language (openmath, mathml, etc) and has an
optional direction attribute which may be input or output. (You may have
at most 2 of these, with the intention that you have one with no
attribute, or one input and one output
This is used to represent the directive (via the name or href)
and any additional information (in the content)
This is used to provide details about the mathematical theory
relevant to the directive. The attribute href in particular can be
used to point to a theory in the ontology http://monet.nag.co.uk/theories.
This is used to embed any XML formalism that can express semantic
information about the service (for example RDF, OMDoc, ...).
Monet Problem Description Language
This type contains the generic metadata on the problem
plus the specific description of the problem.
This type contains the generic header metadata on the problem
This type contains the generic body metadata on the problem
Asserts that the problem described is a
generalization of a more specific problem.
Asserts that the problem described is a
specialization of a more general problem.
Monet Query Language
This is a top level container element for mulitple queries and responses
This is a container for a single query. To query about a
class of problem, use the classification tag. To query about
a specific mathematical problem, implementation details, or
metadata about the service, use the respective tags. The
constraint tag wraps requirements on the response that outside
the MONET namespace.
Specifies a constraint on the query over arbitary
metadata which is intended NOT to be in the MONET
namespace.
This element holds an arbitrary constraint
The result of executing a service or a plan.
The href attribute refers to the URI of the service or a unique URI
identifying the plan whose execution response this is.
Problem - problem description, use this to inform the client of hidden input
parameters in a plan e.g. if the output of one service is the input
of another in a plan.
explanation - the choices made in obtaining the result / error.
Result - the result of the execution of the plan / service.
Result Addition Info - any additional info about a result.
explanation of the choices made by the service while solving the problem.
An error code to indicate the success or failure of the service.
explanation Format - service specific code explaining how the result
was acheived or how an error occured
An error message - in addition to the explanation Format, a string from
a stack trace or some other report from the service
An execution response element, so the explanation of a plan will consist of
the execution responses (including results etc.) for each of the services that
makes up the plan.
The result of the execution of a service, or the overall result
of a plan which consists of serveral services.
This element holds arbitary execution response results.
href - the unique identifier of the type of xml used.
If a result is returned this element may contain additional
information about the result.
e.g.Accuracy - accurate to 5 decimal place
This element holds arbitary xml for explanations and
resultAdditionalInfo.
href - the unique identifier of the type of xml used
isProvided - a boolean to say whether the service is capable of providing
an explainaton / additional info