Skip to content

Commit

Permalink
Clarify Profile Resolution semantics (#103)
Browse files Browse the repository at this point in the history
Closes #104.

Pass through the profile features to check they are all the ones we want, and have the correct dispositions. Many removed, to do with visual presentation.

Added a formal TTML2 profile document for the Content Profile and the Processor Profile, because there's no way, currently, to express a mix of "optional" and "permitted" when inferring a Processor Profile from a Content Profile.

Defined some extension features to express formally some normative requirements, like the presence of `xml:lang` and `ttp:contentProfiles` on the root element.

Specify normatively the permission to use features from other profiles and add a note about IMSC as an example.

And fix CSS syntax errors, where some property declarations were missing the trailing semicolon.

In passing, fix up language in other extensions to clarify that they are extensions not features.

Closes #66:

Specify Talent Name before Character, and add a SHOULD that their `ttm:agent` elements should be in that order too. Update the example to match.

Clarify that if more than one Character needs to reference the same Talent Name, there should be only one `ttm:agent` for that Talent Name.

Describe location of Character Style `style` elements in the XPath style.

Specify the W3C document license.

Also tidy some of the contradictory language about On Screen and make it only an attribute and not an element.

Fixes #108 clarifying the representation of `daptm:onScreen`.

Many commits:

* Add Profile constraints, missing TTML2 features
* Add in refs from features to profile constraints
* Map feature dispositions to `ttp:feature` values
* Add `#profile-root` feature and prohibit it
* Define the DAPT Extension namespace (using same pattern as the IMSC extension namespace)
* Link back to TTML2 definition for `ttp:processorProfiles`
* Rename Features section Supported Features and Extensions
* Create an Extensions appendix
* Define the `#profile-root` feature as support for `ttp:profile` attribute on `<tt>` element
* Prohibit use of `#profile-root`
* Fix broken fragment id
* Editorial improvements
* fix `ttp:contentProflies` typo in Introduction
* define and reference `ttp:contentProfiles`
* Where needed, add "and Extension" wherever Feature is mentioned
* Rename Features and Extensions to Profiles and move to the Appendix
* Clarify in the Profiles section that the specification defines a content profile and a processor profile
* Clarify profile-related feature text
* Add TTML profiles
* Prettify the disposition labels.
* Put features into alphabetical order
* Address review feedback
* Change single profile designator to two designators, one each for content and processor profile
* Add note about potential usage of `ttp:processorProfiles`
* Simplify conformance section and have two separate sub-sections, one for document conformance and one for processor conformance.
* Explain difference between `#contentProfiles-root` extension and TTML2 `#contentProfiles` feature.
* Move the detailed profile conformance text from 6.1 into appendix C
* Split the disposition of features and extensions into a separate sub-section for easier navigation
* Remove dfn accidentally added during rebase
* Add !! around "required" dispositions
* Add and require `#scriptType-root` extension
* Remove duplicated text, split Character Style from Character
* Add agent extension - Effectively defines requirements for Character and Talent Name.
* Add `#xmlID-div` extension
* Add `#textLanguageSource` extension
* Add `#serialization` extension
* Add `#onScreen` extension
* Address review feedback
  * Change `[[TTML2]]` to `[[ttml2]]` throughout for consistency
  * Switch the order of the Profiles and Extensions appendices
  * Clarify that `ttp:processorProfiles` is not expected to be present unless it is needed.
  * Explain more clearly what the TTML2 profile mechanism is, and how it is used in DAPT, and that support for it is not required in DAPT processors, but is permitted.
  * Describe how the profiles can be used, as a resource for implementers, or as a way to direct general purpose TTML2 processors.
  * List the set of TTML2 profile vocabulary for which support is optional.
  * Explain that the vocabulary is not expected to be used unless needed.
  * Change the conformance language to say that conformance is based on the normative provisions of this specification, and that those provisions are expressed using TTML2 profile vocabulary additionally.
  * Cross link the Profiles section to the Extensions section.
  * Note that the use of TTML2 profiles is not intended to imply that TTML2 profile processing must be implemented.
  • Loading branch information
nigelmegitt authored Mar 13, 2023
1 parent 7a4ecfd commit a82b6dc
Show file tree
Hide file tree
Showing 3 changed files with 1,128 additions and 566 deletions.
Loading

0 comments on commit a82b6dc

Please sign in to comment.