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