Resource Directory for the Z39.86-2010 Authoring and Interchange
Content Selection Feature
version 0.0

This is an early access version, made available for early testing and evaluation.

Introduction

The Content Selection feature provides a mechanism with which publishers can define alternate renderings of content fragments.

One core use-case for this feature is to vary the information set of output documents, based on criteria such as output content type, or target consumer group. Specific variations of portions of the document can be associated exclusively with the Braille and e-text content types. "Simplified" versions of complex passages can be provided to meet the needs of persons with certain cognitive disabilities.

In the Z39.86 Authoring and Interchange context, the feature may also be used to provide feature fallbacks. While a publisher would normally be in a situation where the feature support in used Processing Agents is known, this is not always the case, especially in a content interchange scenario. As an example, not knowing whether a processing chain has full support for the MathML feature, a publisher may choose to use the Content Selection feature to provide content fallback for MathML content.

The Content Selection feature employs a conditional switch mechanism, represented by 1-n when elements appearing as children to the parent select element. There is an always-present default choice within the switch, represented by the otherwise element.

This feature is maintained by the ANSI/NISO Z39.86 advisory committee under the auspices of NISO.

Normative References

Definition of terms

Conditional expression

The value of the expr attribute on the when element. A conditional expression is syntactically a combination of one or more functions, zero or more operators, and zero or more balanced parentheses. The result of the evaluation of a conditional expression must always be a boolean true or false.

The syntax of a conditional expression is normatively defined in EBNF Definition of the Conditional Expression.

Function

A function is the core component of a conditional expression. The return value of a function must always be boolean true or false. A function can take zero or one parameters.

A function is always prefixed; the prefix defines which function set the function belongs to.

Operators

This feature allows the operators and, or and not.

TODO define meaning of operators

Function set

A Function set is a collection of 1-n functions. The set is defined by a canonical URI. When a function is used in a conditional expression, is uses a name prefix as a token for that URI. The association between prefixes and URIs is defined in the document head, and is thus static throughout the document scope.

The content selection feature provides a set of predefined function sets. Additional function sets may be defined.

General document model requirements

The namespace of all members of the Content Selection feature element set is http://www.daisy.org/z3986/2010/auth/features/select/.

The when and otherwise elements must not contain any descendants in the http://www.daisy.org/z3986/2010/auth/features/select/ namespace.

Declaration of function prefix-URI mappings

TODO

EBNF Definition of the Conditional Expression

TODO

Predefined Function Sets

TODO

Defining Additional Function Sets

TODO

Processing Agent Processing Requirements

Processing the select element

From a document information set perspective, the result of the processing of a select element is that the select element is replaced by the content of exactly one of the select element's when or otherwise children.

Processing Agents must process select elements in the following way:

  1. Evaluate the conditional expressions of each when child, starting with the first when child in document order.
  2. If the evaluation of the conditional expression on the current when element results in true, select the content of the current when element, and return.
  3. If the evaluation of the conditional expression on the current when element results in false, continue processing the next sibling in document order (which is a when or otherwise element).
  4. If the conditional expression uses a function from an unrecognized or unsupported function set, continue processing the next sibling in document order (which is a when or otherwise element). Processing Agents should issue a warning when encountering unrecognized or unsupported function sets.
  5. If none of the when tests evaluate to true, select the content of the otherwise child, and return.

Processing Conditional Expressions

Processing Agents must process conditional expressions (the value of the expr attribute on the when element) in the following way:

  • TODO
  • TODO if undefined function prefix, static error

Identity URI

The canonical identity URI of this version of this feature is http://www.daisy.org/z3986/2010/auth/features/select/0.0/.

Specification Compliance

This feature is compliant with the Z3986-2010 Part A Specification.

Normative schemata

The normative schema of this feature is z3986-feature-select.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.

The latest version of the normative schema is available at the canonical URI http://www.daisy.org/z3986/2010/schema/mod/z3986-feature-select.rng.

A listing of all public versions of this feature is available.

Informative References

Supporting software

This section will contain references to transformation, validation etc software, once provisioning schemes are in place.

Appendix 1: Listing of modules in the normative schema

Note: the canonical base URI of these modules is http://www.daisy.org/z3986/2010/schema/mod/ , where the modules are available in their latest version.

The below list represents the modules at the time of version 0.0 of this feature.