Release 4.12.0 is codenamed ‘The Igor Release’, because July 28, 1823 marked the theatrical debut of Victor Frankenstein’s lab assistant (then named ‘Fritz’ but better known to us today as ‘Igor’) in the very first stage adaptation of the novel Frankenstein. Coincidentally this release introduces new encoding for theatrical performance data.
The release includes other revisions to the TEI Guidelines, and it resolves a number of issues. Several of these changes and corrections are a consequence of feature requests or bugs reported by the TEI community using the GitHub tracking system. A full list of the issues resolved in the course of this release cycle may be found under the 4.12.0 milestone. Many thanks to the community contributors who reported issues, sent bug fixes, and helped with the drafting that led to this release, including: Piotr Banski, Julia J. Beine, Lou Burnard, James Cummings, Gabriel Egan, Frederik Elwert, Dario Kampkaspar, Jun Ogawa, Kazuhiro Okada, and Klaus Rettinghaus. We are especially grateful to Peter Stadler for helping prepare and monitor new server infrastructure for this release.
The following changes are particularly worth highlighting in this release:
New encoding features
- The teidata.point datatype now allows an optional third coordinate to support the encoding of surfaces and zones on three-dimensional objects, with new explanation and examples in the Guidelines (#2816, PR #2821, PR #2903, and PR #2922).
- We introduce interleave to simplify content modeling in ODD. With this release, interleave is now the preferred way for ODD customizers to indicate unordered content models (where elements may appear in any order). Consequently, we deprecate the use of preserveOrder on the sequence element to indicate unordered content, and this attribute will no longer be valid on the sequence element after May 6, 2027. Caution: The interleave element is intended for use in RELAX NG schemas, and will result in a nonfunctional DTD. (See #2154 and PR #2538.)
Changes to content models and classes
- Previously the perf attribute was only available on the move and tech elements to encode performance-specific information. This release adds perf to a new class, att.performed, to expand its use to actor and members of model.stageLike: camera, caption, move, sound, stage, tech, and view. (See #2724 and PR #2921.)
- With this release, the sp element is now permitted to contain an app element as its only child (#2317 and PR #2817).
- The dictScrap element is now a member of model.entryPart, which permits it to be nested in the entryFree element (#2862).
- With this release, org, place, and person are now members of att.datable to permit these to be marked with date and date-range information (#2451 and PR #2881).
- The role attribute on the personGrp element has now been modified to permit multiple values, mirroring its definition on the person element (#2890 and PR #2891).
- With this release, birth and death are now members of att.locatable, which permits applying the where attribute to these elements. Examples are provided to show how these can be used with linked data resources. (See #2873 and PR #2923.)
- The gloss element has been added to att.placement and explanation has been added to the Guidelines so that encoders can indicate their positioning in a document (#2892, PR #2899 and PR #2902).
- The q element is now a member of att.typed, giving it type and subtype attributes (#2830 and PR #2831).
- This release resolves a problem in ODD processing by removing Schematron constraints that had required each occurrence of a sequence, alternate, or the new interleave element to have two or more children. These elements may each now have only one child. (See #2913 and PR #2915.)
- Some excessively complicated XPath in the Schematron for the class att.identified was simplified, updated, and thoroughly tested (#2898 and PR #2900).
Changes to the build process for publishing the Guidelines
- Modifications have been made to the scripts that initiate build tests to prevent them failing when the TEI website is down (#2908 and PR #2909).
The following changes introduced with this release could invalidate ODD customizations in TEI projects. Those maintaining ODD customizations of the TEI should be aware of the following changes and may need to adapt their ODD files accordingly.
ODD-breaking changes and deprecations
Revisions of prose and examples
- Schematron messages throughout the Guidelines have been updated so that whenever the message is a sentence it ends in the appropriate punctuation mark, and element names are now wrapped in angle brackets to improve their visibility. We caution that this improvement in visibility also introduces a problem: Schematron messages that have element names so indicated cannot be copied as well-formed XML and pasted directly into an XML document (#PR 2910 and #PR 2911).
- A new paragraph has been added to the USE chapter to advise on use of the defaultExceptions attribute when introducing elements in other namespaces or no namespace in an ODD customization (#2837 and PR #2928).
- A broken link in the USE chapter has been corrected by pointing to a better resource in the TEI Vault (#2700 and PR #2934).
- The explanation, encoding, and punctuation of the appInfo and application elements has been improved (PR #2901).
- The explanation of ‘prefix’ and prefixDef have been improved (#2001 and PR #2885).
- The soCalled element now has a new German description, and new glosses in German and Italian (PR #2878).
- German translations for units are added to att.dimensions and att.measurement (PR #2884).
- Glosses in English, French, and German have been supplied for the rendition attribute (#2787 and PR #2791).
Housekeeping
- The re element, deprecated and marked for removal in March 2026, has now been removed from the Guidelines (#2456 and PR #2874).
- Processing efficiency has been improved for building the TEI P5 Guidelines by revising an XPath comparison operator in p5odds.odd (#2926 and PR #2927).
The Stylesheets are maintained separately from the Guidelines in the Stylesheets repository, which provides processing of TEI ODD files for Roma and TEIGarage as well as other TEI conversions. With this release, the Stylesheets repository has been updated to version 7.61.0 with necessary updates to the test suite and code required for producing the Guidelines.