- From: Michael Dolan <mdolan@newtbt.com>
- Date: Mon, 15 Jul 2013 17:46:46 -0700
- To: "'Timed Text Working Group'" <public-tt@w3.org>
- Message-ID: <00be01ce81bd$f4667340$dd3359c0$@newtbt.com>
Glenn- One thing that helps is the clarification that the profile namespace is not necessarily bound to the document namespace. And, therefore, SDP-US could define a new feature, e.g. #color, however it wishes in its own profile namespace, even though the *document* namespace remains ttml. Maybe that solves the problem. But I still can’t resolve what all you say below about how features work with the statement that the SDP-US profile is accurate as is. Since SDP-US is designed explicitly *not* to support the full tts:color syntax, then including the feature #color from the TTML profile namespace is clearly an error. A decoder would not be able to disambiguate TTML #color from what was really defined/implemented. Dealing only with tts:color (and not the other constrained features), doesn’t the SDP-US profile have to be modified along the lines of: <?xml version="1.0" encoding="utf-8"?> <profile xmlns="http://www.w3.org/ns/ttml#parameter"> <features xml:base="http://www.w3.org/ns/ttml/feature/"> <!-- required (mandatory) feature support --> <feature value="required">#animation</feature> <feature value="required">#backgroundColor-block</feature> <feature value="required">#backgroundColor-inline</feature> <feature value="required">#color</feature> <feature value="required">#content</feature> <feature value="required">#core</feature> <feature value="required">#display-region</feature> <feature value="required">#displayAlign</feature> <feature value="required">#extent-region</feature> <feature value="required">#fontFamily-generic</feature> <feature value="required">#fontSize</feature> <feature value="required">#fontStyle-italic</feature> <feature value="required">#frameRate</feature> <feature value="required">#frameRateMultiplier</feature> <feature value="required">#layout</feature> <feature value="required">#length-percentage</feature> <feature value="required">#length-positive</feature> <feature value="required">#lineBreak-uax14</feature> <feature value="required">#presentation</feature> <feature value="required">#profile</feature> <feature value="required">#structure</feature> <feature value="required">#styling</feature> <feature value="required">#styling-inheritance-content</feature> <feature value="required">#styling-inheritance-region</feature> <feature value="required">#styling-inline</feature> <feature value="required">#styling-referential</feature> <feature value="required">#textAlign-absolute</feature> <feature value="required">#textDecoration-under</feature> <feature value="required">#textOutline-unblurred</feature> <feature value="required">#time-offset</feature> <feature value="required">#timing</feature> <feature value="required">#writingMode-horizontal-lr</feature> </features> <extensions xml:base="http://www.w3.org/ns/sdp-us/feature/"> <extension value="required">#color</extension> </extensions> </profile> SDP-US would then need to formally state that the extension #color is the definition in 5.2. The same would therefore be true for any SDP-US constrained features that have syntax or semantics constrained beyond the minimum defined in any TTML feature. SDP-US retains the TTML *document* namespace since it is still a strict subset. If you still maintain that the profile for SDP-US is accurate as is, then I guess we need to talk more…. Regards, Mike From: Glenn Adams [mailto:glenn@skynav.com] Sent: Monday, July 15, 2013 5:01 PM To: Michael Dolan Cc: Timed Text Working Group Subject: Re: profile definition and resolution [was RE: ISSUE-261: signaling docoument profile conformance is separate from decoder presentation requirements [TTML.next] On Mon, Jul 15, 2013 at 12:19 PM, Michael Dolan <mdolan@newtbt.com> wrote: CIL. From: Glenn Adams [mailto:glenn@skynav.com] Sent: Monday, July 15, 2013 9:57 AM To: Michael Dolan Cc: Timed Text Working Group Subject: Re: profile definition and resolution [was RE: ISSUE-261: signaling docoument profile conformance is separate from decoder presentation requirements [TTML.next] On Mon, Jul 15, 2013 at 9:48 AM, Michael Dolan <mdolan@newtbt.com> wrote: Glenn- The reason that I think a profile document itself is an inadequate tool to define a profile is that the granularity of the features has never (to date) matched the defined profile capabilities per the related prose for those profiles. But the purpose of the TT Profile Document is not to define a profile. It is to specify a set of features/extensions having been defined elsewhere. You are talking about the "defined elsewhere" part of this equation, i.e., which features/extensions are defined, whether their definitions are adequate or not. The implied contract for a TT Profile Document is that it simply enumerates features/extensions and assigns each a value (required, optional, etc), and that a TTML Content Processor has a way (or can have a way) to determine if it supports an enumerated feature. When a TT document references a feasibly resolvable TT Profile Document, it is simply using a shorthand, which it could instead of defined inline, i.e., enumerated the features it requires inline. When a processor encounters such a reference it has some options: (1) it has a built-in (cached) form of the referenced profile, so doesn't need to make an external reference (though it may choose to do so to update its cache); (2) it doesn't have a cached form or it wants to update its cache, so it attempts to resolve and parse the referenced profile, which may succeed or fail; (3) if (2) fails, then it consults its system/user preferences to determine whether to continue processing or abort the document; If the processor did resolve the profile to a TT Profile Document, then it knows which features it supports and which it doesn't, at least for those defined at the time it was constructed/updated. If the TT Profile Document (as parsed and possibly augmented by inline profile elements) requires a feature it doesn't support, then it again consults its preferences, and either continues or aborts. MD>> Yes. Understand all this. The above and its process is not in debate. The summary of my chain of logic: 1. The TTML feature list is not granular enough to be accurate relative to the known profiles today. So, define new features (in W3C) or externally (in which case they are called 'extensions'). 2. Therefore, an actual profile document is not useful (in fact harmful in all known cases – see below). Yes it is. It is a formal mapping from a URI to a list of requirement specifications. It can be parsed. It can be cached. It can be referred to normatively to define what is required to process a document. I fail to see why this isn't useful, especially since it is what we intended it to do. Recall that the entire TTML Profile mechanism was defined as a way to express the kind of information expressed by SVG's requiredFeatures [1] requiredExtensions [2] attributes, and SMIL's system test attributes [3]. [1] http://www.w3.org/TR/SVG/struct.html#ConditionalProcessingRequiredFeaturesAttribute [2] http://www.w3.org/TR/SVG/struct.html#ConditionalProcessingRequiredExtensionsAttribute [3] http://www.w3.org/TR/SMIL2/smil-content.html#ContentControlNS-PredefinedSystemTest You are faulting the mechanism when it is the policy of its usage that is the problem. 3. Therefore, if there is no profile document it does not need to be resolvable. A profile always applies whether specified or not. Absent a profile reference, the dfxp-transformation profile applies. There should always be a TT Profile Document for every defined profile. I would say that a claim that a profile is defined without a TT Profile Document is a non-sequitor as far as TTML is concerned. Without explicit restriction, a feature must be assumed to be fully supported. Features (and extensions) are defined by the W3C (and 3rd parties) respectively. Their definitions must adequately specify what 'support' means, elsewise they are underspecified. The TT profile document says what the processor is to do if it isn't supported and its value is 'required' or 'used'. It is up the processor to determine if it supports the feature or not according to wherever the feature is defined. In the present TTML profiles, that is Appendix D or SDP-US. MD>> If the decoder must fall back on prose to understand the true meaning, then how is a profile document helpful? The feature definition must be detailed enough to cover the constraint set, and today they are not. For example, let’s use tts:color. SDP-US constrains the color representations in ways that are not covered in the TTML profile feature, #color. The granularity of this feature in TTML is all or nothing. Therefore, if an SDP-US (only) decoder were to receive a profile (URI or inline) that contained the #color feature, it would be forced to reject the instance document since the decoder does not support all the representations. That's correct, at least in the sense that the syntactic representations of color supported in TTML must be supported; however, it doesn't mean the semantic meaning must be supported [1]: A TTML presentation processor supports the #color feature if it (1) implements presentation semantic support for the <http://www.w3.org/TR/2013/PER-ttaf1-dfxp-20130709/#style-attribute-color> tts:color attribute and (2) is capable of displaying or generating an output display signal that distinguishes between at least sixteen (16) values of color, including all primary and secondary colors of the SRGB color space. [1] http://www.w3.org/TR/2013/PER-ttaf1-dfxp-20130709/#feature-color MD>> Right. But this is all irrelevant if the decoder can’t even decode all the syntax requried by #color. In that case, it can't claim to support #color. So if you are asking what to do if you want to define a profile that doesn't define all of the syntax of #color, then you need to define an extension designator and specify its meaning somewhere in prose. The designator is just a shorthand for that meaning, wherever it is defined. It is not the purpose of the TT Profile Document to define the meaning of feature or extension designators. Furthermore, even if the processor didn't support these semantics, the author could simply override the feature requirement by making it optional: <profile use="dfxp-presentation"> <features> <feature value="optional">#color</feature> </features> </profile> MD>> Of course, but then what’s’ the point of a profile document if every feature that is constrained in a manner not covered by the TTML feature set now has to be optional? That’s at odds with the purpose of communicating the feature set to the decoder. They’re not optional, they’re required, just constrained. A constrained feature/extension as you put it will need to have its own feature/extension designator defined if it is to be referred to be a profile. The extension mechanism cannot, at least as I read the spec, be applied to TTML features, only 3rd party features – that is, extensions to TTML, not TTML itself. And, 3rd parties are prohibited from defining new features in the TTML namespaces. Why is this a problem? Extensions are just an alias for "non-standard features". Any 3rd party, or even the W3C itself is free to define new extension URIs which may be referenced by TT Profile documents or by TTML documents. If the TTWG wants to formally standardize on an extension, i.e., promote it to a "standard feature", then it just defines such a feature in some document. MD>> I said below (highlight new): “The feature mechanism cannot be extended by 3rd parties.” Then you asked: “…since a non-standard "feature" is just what we call an "extension". Or do you have something else in mind by "extended"?” I tried to answer your question as “no”. Extensions don’t seem to solve this (but read on). Since it is common practice today is to define profiles with features constrained in ways not pre-defined in TTML 1.0, how is it possible to create a useful profile document? Perhaps I am missing something about the profile/feature/extension mechanism? (1) third parties can define new extension URIs along with some definition thereof; (2) authors of TT Profile documents can include references to such extensions; (3) authors of TTML documents can reference predefined TT Profile documents and can at their discretion augment or restrict those definitions by specifying feature/extension references inline (as in above example); MD>> So, are you saying that 3rd parties (including W3C Notes) can define a new profile namespace, then define a new feature constraint, e.g. #color-sdp-us, to constrain an existing TTML feature? Sure. Why not, that is the current mechanism's design after all? First, we must distinguish between Profile Designators [4], Feature Designations [5], and Extension Designations [6], all of which take the syntactic form of a URI. [4] http://www.w3.org/TR/2013/PER-ttaf1-dfxp-20130709/#vocabulary-profiles [5] http://www.w3.org/TR/2013/PER-ttaf1-dfxp-20130709/#feature-designations [6] http://www.w3.org/TR/2013/PER-ttaf1-dfxp-20130709/#extension-designations Each of these designators/designations are divided into a namespace part and a designation part. For profile designators, we enumerate 4 (of an infinite set) in Table 2 [7]. [7] http://www.w3.org/TR/2013/PER-ttaf1-dfxp-20130709/#profile-vocab-table The TT Profile namespace part we define in Table 1 [8] as http://www.w3.org/ns/ttml/profile/. We set aside this part (as a URI prefix) for standardization purposes for the W3C. However, we allow any other URI to use with a different namespace part (prefix): All profile designators which have the TT Profile Namespace as a prefix but are otherwise not listed in <http://www.w3.org/TR/2013/PER-ttaf1-dfxp-20130709/#profile-vocab-table> Table 2 – Profiles are reserved for future standardization, and must not be appear in a conformant Document Instance. Nothwithstanding this constraint, a profile designator is not restricted to the set of designators enumerated in <http://www.w3.org/TR/2013/PER-ttaf1-dfxp-20130709/#profile-vocab-table> Table 2 – Profiles, but may be any URI that feasibly dereferences a TTML Profile Definition Document provided it does not use the TT Profile Namespace as a prefix. So you or anyone else may go define a TT Profile Document and refer to it using a URI of your choice as long as it doesn't use the TT Profile Namespace. Now, as for features and extension designations (we use the term 'designation' instead of 'designator' to make note of the fact that they take a slightly different form, i.e., with a fragment identifier), each of these are also uniquely identified with a URI. We state [5] that all 'feature' designations must use the unique prefix we define as the TT Feature Namespace http://www.w3.org/ns/ttml/feature/. However, for 'extension' designations, we state [6] that either the TT Extension Namespace http://www.w3.org/ns/ttml/extension/ or an Other Extension Namespace may be used. It is up to a 3rd party to decide what to use as an Other Extension Namespace. We give an example of such in an Example Fragment [8], namely http://example.org/ttml/extension/. [8] http://www.w3.org/TR/2013/PER-ttaf1-dfxp-20130709/#parameter-vocabulary-extension Nowhere do we constrain what an extension 'means', so it could mean the same as an existing defined 'feature', an extended form of an existing defined 'feature', a constrained (restricted) form of an existing defined feature, or a completely unrelated, non-standard feature (such as the #prefilter-by-language designator in the example fragment [8]). So a third party can define any of: * new profiles labelled and referenced by new non-standard (from the TTML sense) profile designators; * new extensions (= non-standard features) labelled and referenced by new non-standard (from the TTML sense) extension designations; A content author can then reference any combination of standard and non-standard profiles and also define inline profile extensions (supersets)/restrictions (subsets) by directly referring to both standard feature designations and non-standard extension designations. If so, then can there be a namespace for the profile that is different from the namespace of the document (many of the profiles do not define a new namespace for the TTML subset)? I'm not sure what you mean by "namespace of the document". But the namespaces for profiles are unrelated to namespaces for elements/attributes. So it sounds like the answer is YES. But if we can’t make a useful profile document, there is little point in requiring the URI for it to be resolvable to a physical document. You can make a useful profile document. I'm not getting why you think that is hard or impossible. Perhaps if you give me a more concrete example of what you would like to do, I can explain how to do it with the current mechanisms. MD>> I don’t see how yet. See above. I thought I was helping by using SDP-US and #color and the problem was obvious. If the profile defined in Section 9 of SDP-US were sent to a decoder, and the decoder did not support all the syntax of tts:color (the strong implication is that it does not - see 5.2), then the decoder MUST reject the document. You say above: “… the syntactic representations of color supported in TTML must be supported” Since SDP-US requires support for #color, which means syntactic support for all TTML colors, then the decoder you describe above is not an SDP-US decoder. If you are just asking about an arbitrary decoder that makes no claims about conforming to a processor profile, then yes, a decoder that didn't support all the syntax of #color would have to make a decision about whether to reject the document or not. However, it need not reject the document: 6.1.1 ttp:profile A conformant TTML processor is not required to be able to dereference a Profile Definition Document that is not one of the standard, predefined profiles defined by <http://www.w3.org/TR/2013/PER-ttaf1-dfxp-20130709/#profiles> F Profiles. Furthermore, a conformant TTML processor may make use of a built-in, static form of each standard, predefined profile so as not to require dereferencing a network resource. If a TTML processor is unable to dereference a non-standard Profile Definition Document, then it must not further process the document without the presence of an explicit override from an end-user or some implementation specific parameter traceable to an end-user or to a user or system configuration setting. If a TTML processor aborts processing of a Document Instance due to the inability to reference a non-standard Profile Definition Document, then some end-user notification should be given unless the end-user or system has disabled such a notification, or if the processor does not permit or entail the intervention of an end-user. 6.1.3 ttp:feature If the value of the value attribute is required or use and the TTML processor implementation does not support the feature, or if the value attribute is use and the TTML processor implementation supports but has disabled that feature, then it must not further process the document without the presence of an explicit override from an end-user or some implementation specific parameter traceable to an end-user or to a user or system configuration setting. If a TTML processor aborts processing of a Document Instance due to the specification of a required, but unsupported feature by this element, then some end-user notification should be given unless the end-user or system has disabled such a notification, or if the processor does not permit or entail the intervention of an end-user. 6.1.5 ttp:extension If the value of the value attribute is required or use and the TTML processor implementation does not support the extension, or if the value attribute is use and the TTML processor implementation supports but has disabled that extension, then it must not further process the document without the presence of an explicit override from an end-user or some implementation specific parameter traceable to an end-user or to a user or system configuration setting. If a TTML processor aborts processing of a Document Instance due to the specification of a required, but unsupported extension by this element, then some end-user notification should be given unless the end-user or system has disabled such a notification, or if the processor does not permit or entail the intervention of an end-user. So, a compliant processor (1) need not dereference a feasibly resolvable profile document, (2) need not reject a document that requires a feature it doesn't support, and (3) need not reject a document that requires an extension it doesn't support. However, in each of these cases, the processor must make use of a traceable end-user or system parameter to determine whether to proceed regardless of lack of support. MD>> I think can safely say that a developer reading the SDP-US spec would not think to support the full syntax of tts:color. Or if that support is somehow implied then what’s the point in forbidding the document syntax? We had to define SDP-US using the tools given, or would have had to resort to defining new extension designations, which was a possibility. In any case, it is one thing to require syntactic support and quite another to require semantic support. A lint type verifier (TTV supports a number of optional warnings) would probably want to flag a document that makes syntactic use of a feature for which semantic support isn't required. So, we can perhaps reach faster closure on this thread if you could (I don’t know how to) define a decoder profile document that: 1. Accurately represents the SDP-US profile; We have. It is a WG Note called SDP-US. That's it. 2. Accurately uses “required” and “optional” (hint: #color is obviously required by FCC regs); and Is there a bug in SDP-US Section 9 [9], then it can be fixed in an errata or update. BTW, the prologue in Section 9 should be edited to make it clear that the profile document doesn't formally define the profile on its own. I can see how if one were to read "The following TTML profile definition formally defines the SDP US profile", then one would (1) find an inconsistency between what I've been saying above and this text and (2) would come to the wrong conclusion that the profile definition document is sufficient. [If that is your main problem, then we can easily fix that via an editorial correction.] [9] http://www.w3.org/TR/2013/NOTE-ttml10-sdp-us-20130205/#Features_in_TTML_1.0_Used 3. Won’t result in a perfectly conformant SDP-US decoder from having to reject all documents referencing such a profile. Why would such a decoder have to reject all documents referencing SDP-US? In any case, I can see how it might be useful to further soften the language about potentially aborting/rejecting to be qualified by the actual use/presence of a feature/extension for which support is required (by the combined, merged profile). That is, instead of conservative (let's call this strict) rejection if a feature isn't supported, define a "lax" rejection if it isn't supported, is required, and is actually used. (For clarity, I’m using SDP-US and #color as examples that are familiar. I can pick other profiles and other features with the same issue.) Regards, Mike From: Glenn Adams [mailto:glenn@skynav.com] Sent: Monday, July 15, 2013 6:58 AM To: Michael Dolan Cc: Timed Text Working Group Subject: Re: ISSUE-261: signaling docoument profile conformance is separate from decoder presentation requirements [TTML.next] On Fri, Jul 12, 2013 at 2:40 PM, Michael Dolan <mdolan@newtbt.com> wrote: Agreed. But the inline form is already permitted, and I don't see a compelling reason to disallow it. That said, I would expect the "normal" case is to use a URI. Since you said "URI" and not URL, it begs that we return to the question of resolvability and existence of the TTML syntax profile. I still maintain that the profile must be definable in prose or other means without actually creating and/or posting a resolvable profile document that conforms to the feature syntax defined in TTML. These are orthogonal issues: (1) defining a profile (2) defining a feasibly resolvable profile document The feature granularity is insufficient to describe any (I think) of the profiles in use today. Note that the purpose of a feasibly resolvable profile document is not intended to formally define a profile (in the more general sense you are using it). It is up to us (or extension definers) to be as specific as desired in enumerating feature and extension designators. A feasibly resolvable profile document is effectively needed (in the use of a non-standard profile and in the absence of an inline profile document) in order for a processor to know whether it should process a document based on which features are implemented by the processor. Minimally there are certainly profile examples that cannot be (sdp-us and cff-tt). The feature mechanism cannot be extended by 3rd parties. If by "extended by 3rd parties" you mean defining new non-standard "features", then yes it is supported, since a non-standard "feature" is just what we call an "extension". Or do you have something else in mind by "extended"? This effectively forces permitting the profiles to be defined by other means, and therefore, there cannot necessarily be a profile document, and therefore cannot be resolvable in all cases. The definition of a profile document and its accessibility by a processor is not related to the definition of a profile itself. It (the document referenced by the URI) serves an operational purpose only. I see no legitimate reason for anyone to define a TTML profile (as presently defined) and fail to define a feasibly resolvable profile document instance. Regards, Mike -----Original Message----- From: Pierre-Anthony Lemieux [mailto:pal@sandflow.com] Sent: Friday, July 12, 2013 1:24 PM To: Glenn Adams Cc: Timed Text Working Group Subject: Re: ISSUE-261: signaling docoument profile conformance is separate from decoder presentation requirements [TTML.next] > Is there a use case for having a document include inline the definition of a content profile it claims to conform to? Such a use case does not immediately come to (my) mind. -- Pierre On Fri, Jul 12, 2013 at 1:18 PM, Glenn Adams <glenn@skynav.com> wrote: > Is there a use case for having a document include inline the > definition of a content profile it claims to conform to? Or is it > sufficient to allow a document to refer to a URI which is feasibly > resolvable to a definition of a content profile? > > > On Fri, Jul 12, 2013 at 2:08 PM, Pierre-Anthony Lemieux > <pal@sandflow.com> > wrote: >> >> > > Some means must be defined to separately signal these different >> > > semantics. >> > For example, we could create a new element and attribute - >> > <ContentProfile> and contentProfile. >> >> Sounds good. I also see value in exploring means for (a) defining a >> content profile and (b) signaling conformance of a document to one or >> more content profile. >> >> > <ContentProfile> >> >> What about following the <ttp:profile> template with the following tweaks: >> >> - adding a @designator attribute allowing the content profile >> designator to be specified >> - @use can contain one or more URIs, each identifying a content >> profile to be included in its entirety by reference, thereby avoiding >> having to repeat all features already defined in another profile. >> Perhaps @use can reference "profile" even when defining >> "contentProfile" so that existing content designator can be used. >> - allowing constraints over a base content profile to be specified >> using value="prohibited" >> >> <contentprofile designator="http://example.noname/profile1" >> use="http://example.noname/profile4 http://example.noname/profile3" >> xmlns="http://www.w3.org/ns/ttml#parameter"> >> <features xml:base="http://www.w3.org/ns/ttml/feature/"> >> <feature value="prohibited">#fontStyle-italic</feature> >> <feature value="use">#fontStyle-bold</feature> >> </features> >> <extensions xml:base="http://example.noname/profile1"> >> <ttp:extension >> value="required">#prefilter-by-language</ttp:extension> >> </ttp:extensions> >> </contentprofile> >> >> > @contentProfile >> >> What about a list of one or more content profile designator URIs, >> each indicating conformance to a content profile, e.g. >> >> <tt ttp:contentProfile="http://example.noname/profile1 >> http://example.noname/profile2"> >> >> Best, >> >> -- Pierre >> >> On Thu, Jul 11, 2013 at 9:16 AM, Timed Text Working Group Issue >> Tracker <sysbot+tracker@w3.org <mailto:sysbot%2Btracker@w3.org> > wrote: >> > ISSUE-261: signaling docoument profile conformance is separate from >> > decoder presentation requirements [TTML.next] >> > >> > http://www.w3.org/AudioVideo/TT/tracker/issues/261 >> > >> > Raised by: Mike Dolan >> > On product: TTML.next >> > >> > The profile element and attribute currently signal a feature set >> > that a decoder must implement in order to reasonably present the >> > document. Although it also hints at what features the document >> > instance may include, it does not signal document instance conformance today. >> > >> > There is currently no mechanism to signal what profile a document >> > instance conforms to (e.g. sdp-us). >> > >> > It is desirable to add this capability to TTML. However, simply >> > adding this semantic to the existing profile element and attribute >> > overly constrains the existing (decoder) and desired (document) >> > semantics. It is unreasonable to require that the single element >> > and attribute simultaneously signal both. For example, the fact >> > that a document instance conforms to dfxp-full does and should not >> > automatically infer that an sdp-us decoder could not properly >> > present it. That is instance dependent. This situation is aggravated when multiple profiles are involved. >> > >> > Some means must be defined to separately signal these different >> > semantics. For example, we could create a new element and attribute >> > - <ContentProfile> and contentProfile. >> > >> > >> > >> > >> >
Received on Tuesday, 16 July 2013 00:47:24 UTC