Re: *Last Call* Timed Text document (Review by June 30)

On Mon, Jun 29, 2009 at 8:42 AM, Glenn Adams<gadams@xfsi.com> wrote:
> Hi Sylvia. Thanks for your efforts on helping improve DFXP, and I'm sure the
> TTWG will take all your comments seriously. In the mean time, I have some
> personal (not group authorized) responses to the individual issues you note
> below.
> Regards,
> Glenn
>
> On Mon, Jun 29, 2009 at 12:25 AM, Silvia Pfeiffer
> <silviapfeiffer1@gmail.com> wrote:
>>
>> 3. Individual issues
>>
>> * I actually find the order in which sections come in the document not
>> helpful in understanding DFXP. Some of the sections come far too late
>> and are preconditions for understanding other features. For example, I
>> would move section 7.2 Content Attributes ahead of section 7.1 Content
>> Elements, the same for the styling attributes, layout attributes,
>> timing attributes, animation attributes, and meta data attributes in
>> relation to their elements. I would even suggest that the layout
>> specifications should come before styling.
>
> [GA] Unfortunately, it is often the nature of technical specifications that
> they cannot be effectively read in a linear fashion while avoiding all
> future references. Over the years, I have become accustomed to the necessity
> to read specifications multiple times in order to obtain a full
> understanding. Keep in mind that it is expressly not the purpose of a
> technical specification to be a user's guide or an author's guide. While
> there is information present in the specification to help elucidate such
> issues, it is not intended to be complete or ordered in a fashion to
> function as an effective guide. Perhaps you might go on to write and publish
> such a guide...

I agree it's not always possible. However, I have found that it makes
sense in technical specifications as in every other specification to
have "facts" that are referred to in a section be defined beforehand,
unless this would result in a circular dependency, which in the case
of the attribute definitions is not the case. I'm actually making
concrete and fairly simple to implement suggestions above on how to
improve readability.

I have a fairly simple approach to structuring specifications and it
doesn't need a full guide: just keep the specification dependency tree
simple and as linear as possible. Do not use things that have not been
specified beforehand, or if you absolutely have to, include a forward
reference. However, the structure should be made such that the need
for forward references is minimal.


>> * The "1c" value in section 8.2 does not become clear until section
>> 8.3.11 where "abbreviation of "cell"" is mentioned in a comment. It
>> should be clarified earlier.
>
> [GA] See my content above.

In this case I would indeed not suggest to re-order the sections, but
to include a forward reference.


>> * Generally, I'm unhappy that styles cannot be represented in external
>> files in the way that CSS provides for it. Also, I am confused by the
>> fact that styles don't cascade. But I can understand the motivation
>> for this approach.
>
> [GA] Support for external style sheets and external time sheets were
> included in AFXP, an authoring profile we were developing in the early work
> of the TT WG. We ruled out these features in DFXP which has a requirement to
> not require resolution of any externally referenced resources. If the TT WG
> continues its work in the future and an need exists, then perhaps we can go
> on to write an AFXP specification, in which I would support your suggestion.

I understand the motivation and agree with your approach.


>> * I really think the in-line profile definition that DFXP provides
>> should be changed. I firmly believe that an exchange format should
>> just contain the data it is meant to contain according to an
>> externally given specification of its format. If you include the
>> format definition into the data file, you create non-standard,
>> non-compatible data formats, in particular if extensions are also
>> allowed. I would strongly recommend to take the profile definition out
>> of DFXP and instead include just a reference to an externally given
>> profile definition - similar to how XML instance documents reference
>> their schema in an external XML schema file.
>
> [GA] I think you may be mistaken about the purpose of the profile data. It
> is not specifying "the format definition in[to] the data file", rather it is
> giving the author a means to specify what the author requires to be
> processed by a recipient processor. Since the core profiles and core
> compliance of DFXP do not mandate support for all defined features (just
> like CSS,  HTML, etc.), this mechanism provides the means for the author to
> preclude processing on a processor that doesn't support certain features (or
> extensions) felt by the author to be necessary. This type of mechanism is
> not being introduced (into the W3C) here, but is already found in SVG and
> SMIL language specifications. We think that this mechanism plays an
> important and essential role in improving interoperability.

Perhaps I misunderstood the profile element, but section 5.2 seems to
indicate to me that in a profile element I can include all the
features that are available from DFXP and further extension and define
which should be allowed or not in the same file later on. This for me
means I can define the format of my data file without adhering to
defined profiles and cause the creation of files that a standard DFXP
parser will not be able to understand. It is therefore not a mechanism
to improve interoperability, but rather a mechanism to allow people to
define their own formats that they can only use within their closed
systems and that nobody else understands. Such a mechanism is fine to
have, but I would prefer it would be done not within the data file,
but rather by reference to an external specification file.

I just checked on SVG and the root element indeed has an attribute
called "baseProfile" which is essentially a link to an externally
specified profile. This makes sense and is indeed the way in which it
should be specified.

As for SMIL, the situation is indeed similar and SMIL profiles are
specified in external DTDs or XML schemas, see
http://www.w3.org/TR/2008/REC-SMIL3-20081201/smil-scalabilityFramework.html#smilScalabilityNS-BasicDoc.

So both of the examples that you cite do not allow in-line
specification of a profile, but rely on an external specification. It
is this in-line specification possibility that I criticized. And while
I understand that DFXP wants to have all the data inside the file and
not make use of e.g. external style document, the document definition
(i.e. the profile) is a different case and should be separated out
from the data document.

Please correct me if I mis-understood the profile element and let me
know how it is supposed to be used.


>> * What are the thoughts behind having start, end, and dur attributes
>> for timed elements? Why all three and not just two of them? There is
>> no specification in the draft of what happens when all three are given
>> and they contradict each other. This is a real problem in practice.
>
> [GA] As you can see under the definitions of these attributes, their
> semantics come from SMIL. So to find answers to your questions (about why
> three and not two) and what happens in contradictions, you need to see the
> referenced SMIL specifications. Again, a user or authors guide might
> elaborate this more inline, but in a technical specification it is often
> sufficient to normatively cite a reference.

Requirements for elements and attributes in DFXP should not be
explained through their requirement in other standards, since their
aims are different. So,  In fact, in SMIL, the "dur" element provides
a time limit for a element where the duration is not specified,
because the element is dynamic, e.g. in a repetition loop. Such
dynamic is (fortunately) not possible for DFXP. Therefore, I think the
"dur" attribute is a left-over from old times of excessive flexibility
and can be removed in the current spec.


>> * What are the thoughts behind introducing the parameters
>> pixelAspectRatio, frameRate, subFrameRate, frameRateMultiplier,
>> tickRate - I personally think they should not be inside the timed text
>> format, but be taken care of by the software that aligns the timed
>> text with the media.
>
> [GA] Again these are there to permit the author to specify important (and
> essential) semantic information needed to interpret the contents of a
> document as the author intends. For example, frameRate, subFrameRate, and
> frameRateMultiplier are necessary to interpret the 'f' (frame) time unit,
> while tickRate is necessary to interpret the 't' (tick) time unit. Since
> most of the style geometries are specified in pixels, it is also important
> to know the pixelAspectRatio to properly convert between display formats.
> Note that in the case of NTSC and PAL and some other raster formats that
> this ratio is not 1:1, therefore, if one is presenting on a display format
> that uses a different pixel aspect ratio than the author intended, the
> processor can use this information to convert pixel units specified in the
> document to pixels in the target display.

OK, so IIUC these attributes are necessary for rendering, at the exact
moment where the media file that the DFXP file is associated with, is
displayed together with the DFXP timed text. Further, it is my
understanding that DFXP is supposed to describe a on-screen
presentation that is independent of the actual format of the video
file. Thus, the video-file specific information (frameRate, tickRate,
pixelAspectRatio etc) is information that will be extracted from the
video file. In DFXP we specify layout in square pixels and seconds.
Thus, the mapping from DFXP to display on top of the video will happen
in the processor for rendering based on this information coming out of
the video file. I therefore do not understand the need to have this
information inside the DFXP file, which would also explain why there
are no test cases in the test suite for these attributes. Would you
mind clarifying where my logic has gone wrong?


>> * What are the reasons behind assuming an anonymous span element
>> inside p? Is that really necessary? It is very confusing and I would
>> assume it could be resolved by just adding p the features wher span
>> has capabilities. That would be more explicit and logical IMHO.
>
> In the absence of span, how would you change the font style, font size, font
> family, background color, foreground color, text decoration, text outline,
> etc., of a specific word or phrase in a paragraph? I can assure you it is
> absolutely necessary to have span. Furthermore, it corresponds directly with
> the XSL FO fo:inline element which is important in making use of XSL FO
> formatting semantics.

This is a misunderstanding. I have no issue with the span element's
existence - I completely agree it is necessary.

What I do not understand and ask clarification on is the definition of
an anonymous, implied span element shadowing every p element. I simply
don't understand the need for such an element, when the font style,
font size, font family, background color, foreground color, text
decoration, text outline for everything inside p can easily be defined
through the p element. Is this a construct that has just been invented
to make it easier for DFXP parsers to deal with p and span? Pardon my
ignorance, but I just don't seem to be able to put the pieces together
on this one.


>> * It is not clear where the origin of container placement is until
>> section 8.2.15 . In fact it is not even there spelled out that the
>> origin is at the top left of the root container and containing
>> containers are placed from there. It should probably be something that
>> is specified in 7.1.1 together with tt.
>
> [GA]  In this case, I agree it would be better to move the text "The root
> container origin..." of 8.2.15 up to 7.1.1 where the tts:extent attribute is
> discussed.

OK.


>> * Why is the backgroundColor called "transparent", when the region
>> attribute is called "opacity" - why not choose the same word?
>
> [GA] "transparent" is a specific color value, rgb(0,0,0,0), defined in
> 8.3.112, while "opacity" is a designation of the alpha channel of a color
> tuple; they denote different things.

OK.


>> * Finally, I'd like to suggest that the set of metadata elements is
>> rather restrictive and arbitrary, in particular the "actor" element
>> which is more than a simple unstructured meta data element. The given
>> scheme is too much focused on Movie and TV show meta data, but DFXP
>> should be more widely applicable than that. I would suggest doing what
>> HTML does, namely provide a mechanism to give name-value pairs rather
>> than a fixed set of metadata elements. This is more flexible and will
>> enable e.g. Dublin Core or any other scheme to be used.
>
> [GA] I agree regarding its restricitivity, but not regarding arbitrariness.
> These specific metadata items came out of a lengthy requirements and review
> process.

Sorry, but I have read the requirements document at
http://www.w3.org/TR/2006/NOTE-ttaf1-req-20060427/ and cannot see
mention of the particular metadata items chosen. In fact,
http://www.w3.org/TR/2006/NOTE-ttaf1-req-20060427/#metadata says that
"R601 The TT AF shall be capable of expressing the following
constituents of individual metadata items: name, value type, value".
This is exactly what I am proposing with name-value pairs and would
extend http://www.w3.org/TR/2009/WD-ttaf1-dfxp-20090602/#requirements
to make it fully satisfy R601.

> We also firmly decided to adopt a specific set of metadata items in
> the DFXP vocabulary domain
> itself rather than delegating it to complete arbitrariness, which is what you propose.

I can see a certain sense in this, since the HTML <meta> element has
indeed had problems with it's complete free-form capabilities. I agree
with most of the elements that were chosen as specific elements. But
"actor" in particular is taking it a bit far IMHO. I would prefer to
remove that and introduce an extra element that allows free-form
metadata, thus satisfying R601.

> If you wish to define your own metadata, then you are free to do that already, e.g.,
> by wrapping it in the <tt:metadata/> element, or by including metadata from a foreign
> (but declared) namespace (either as attributes or elements).

I guess that's one way to make Dublin Core work with DFXP. Could this
be added as an example to the draft? This would probably satisfy R690
– Dublin Core Preference out of
http://www.w3.org/TR/2006/NOTE-ttaf1-req-20060427/#metadata and
further extend the coverage of
http://www.w3.org/TR/2009/WD-ttaf1-dfxp-20090602/#requirements to
cover R690.


Thanks very much for taking the time to give me feedback!

Best Regards,
Silvia.

Received on Monday, 29 June 2009 00:36:48 UTC