The Z39.98 MathML Feature defines the W3C Mathematical Markup Language (MathML) Version 3.0 as a feature for use in Z39.98-AI Profiles.
Each element contributed by this feature inherits the corresponding semantics as defined by MathML 3.
This feature is maintained by the ANSI/NISO Z39.98 advisory committee under the auspices of NISO.
The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this section are to be interpreted as described in RFC2119.
As compared to the W3C Full MathML 3 schema, this feature adds the following constraints to the use of MathML within Z39.98-AI profiles:
In this feature, the MathML 3
Presentation elements constitute the primary expression form for mathematical notation. The
math element only allows descendants from the Presentation elements group, with the exception of the optional
annotation-xml element, inside which
Content markup is allowed.
Elements and attributes deprecated by MathML 3 must not occur.
annotation framework
This feature allows the use of the MathML annotation framework for providing parallell markup, i.e. alternate representations of the primary representation.
The following restrictions apply to the use of the annotation framework:
alttext and
altimg on
math
Processing agents must not consider the the
alttext and
altimg attributes on the
math element as sources for alternate representations, instead recognizing the
annotation and
annotation-xml elements for this purpose.
When providing images as alternate representations to MathML markup, the image content types used must not be other than those globally allowed by the Z39.98-AI profile. Concretely, this means that image references appearing on or inside a
math element are restricted to the same set as specified by the
srctype attribute on the
object element in the given profile.
annotation-xml
The MathML annotation-xml element provides a mechanism to provide alternate XML representation forms of the primary representation.
This feature restricts the XML languages that are allowed inside the
annotation-xml element. This restriction holds regardless of whether the
annotation key used is
alternate-representation or
contentequiv.
In this version of this feature, the allowed XML content types are:
Documents must use and processing agents must recognize the values
application/mathml-content+xml and
MathML-Content as
encoding identifiers for this content type. (See further
Names of MathML Encodings.)
The XML content inside an
annotation-xml element using the
Content MathML encoding is restricted to the
Grammar for Content MathML.
Documents must use and processing agents must recognize the values
application/mathml-presentation+xml and
MathML-Presentation as
encoding identifiers for this content type. (See further
Names of MathML Encodings.)
The XML content inside an
annotation-xml element using the
Presentation MathML encoding is restricted to the
Grammar for Presentation MathML.
Documents must use and processing agents must recognize the string
Z39.98-AI as the
encoding identifier for this content type.
The XML content inside an
annotation-xml element using the
Z39.98-AI encoding is restricted to elements from the
Z39.98-AI Core namespace, and elements in other namespaces from features supported by the given profile. However, elements from the MathML namespace must not occur within an
annotation-xml element that declares the
Z39.98-AI content type. Use of elements from other Z39.98-AI features is discouraged.
Note that subsequent versions of this feature may extend this set to include additional XML content types.
Refer to
processing agent requirements below for information on requirements regarding processing of the
annotation and
annotation-xml elements.
Processing agents are not required to recognize any other annotation keys than
alternate-representation and
contentequiv. Refer to
Annotation keys for information on the semantics of these keys.
This features overrides the following attribute contributions from the Z39.98-AI Global attributes class:
id attribute is used instead of the Z39.98-AI-global
xml:id attribute
href attribute is used instead of the Z39.98-AI-global
xlink:href attribute
meta and
i18n attribute classes are not contributed to elements in the MathML namespace
This resource directory represents version
1.0 of the MathML feature:
This release may not be the most recently published (current) version of the MathML feature. The current version should always be obtained from the static URI: http://www.daisy.org/z3998/2012/auth/features/mathml/current/
This feature must be identified as
mathml in Z39.98-AI document feature declarations.
The canonical identity URI is:
http://www.daisy.org/z3998/2012/auth/features/mathml/1.0/
This version of the feature is compliant with the Z39.98-2012 Specification.
The normative
RelaxNG schema for version
1.0 of the MathML feature is
z3998-feature-mathml.rng.
Note - this feature schema does not represent an entire document model; it is intended for inclusion in host profiles.
The normative schema includes a number of modules and/or subschemas, which are listed in Appendix 1.
This feature makes the following components available for inclusion in host profiles:
This section defines processing agent behaviors that extend the default behaviors defined in Processing agent conformance definition.
If a processing agent supports this feature, it must comply to the following:
The processing agent must process the primary representation as defined by the MathML 3 specification.
The processing agent may support an operating mode where it lets the client invoke processing behaviors that includes utilization of
annotation and/or
annotation-xml elements in a way that effectively leaves the
primary representation unused.
The processing agent may support content types beyond that of the
primary representation in annotations that has a
contentequiv relationship to the main expression. When a processing agent encounters a
contentequiv annotation that it does not support, it must abort the processing unless the client has explicitly expressed that the given
contentequiv annotation is ignorable. (This is because, as stated in
5.1.4 Content equivalents
,
annotations with the contentequiv key cannot be ignored without potentially changing the behavior of an expression.
)
If a processing agent recognizes but does not support this feature, it must employ one of the following behaviors:
Upon encountering a document instance with this feature enabled, the processing agent issues a notification, and then aborts the processing.
While traversing the document tree and encountering an
math element, the processing agent evaluates the content-type of any
annotation and
annotation-xml element descendants of the given
math element:
If no
annotation or
annotation-xml elements with a supported content type are given, the processing agent issues a notification, and then aborts the processing.
If
annotation or
annotation-xml elements with a supported content type are given, the processing agent replaces the current
math element with the content of the supported
annotation or
annotation-xml element.
The following precedence order must be followed in the case where multiple supported
annotation or
annotation-xml are given, and if the client has provided no explicit instructions on fallback prioritization:
annotation-xml takes precedence over
annotation;
annotation-xml elements, the first element in document order takes precedence;
annotation elements, the first element in document order takes precedence.
The
abort behavior is the default; the
fallback behavior must only be employed when the processing agent is explicitly instructed to do so by the client.
Processing agents that employ the
fallback behavior should issue a notification.
If a processing agent does not recognize this feature, it must, as dictated in Processing agent conformance definition, abort processing and issue an error message.
Refer to the Z39.98-AI community portal for information on available software tools.
The below list represents the modules at the time of version 1.0 of this feature.
The occurrence of the keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in documentation fields embedded in these modules are to be interpreted as described in RFC2119.