Re: SVG12: cumulative animation targets

On Apr 21, 2006, at 3:15 PM, Chris Lilley wrote:

>
> BH> Good you carefully avoided directly answering my question. Very  
> well,
> BH> I've already registered my formal objection,
>
> No, i have answered it carefully; there is a difference.
>
> If I had simply said "yes" then you would have responded "ah, so  
> all animation elements are automatically cumulative" and I would  
> have said "no, they are not" and so forth.
>
> So as I said, and as the spec says, and as SMIL says, being  
> additive is a necessary but not sufficient condition for being  
> cumulative. If you want an animation to be cumulative, it must  
> first be additive. Being additive does not make it cumulative. That  
> is the plain English definition of a "necessary but not sufficient  
> condition".
>
> BH> it's of no use to continue this discussion.
>
> I agree. The specification is abundantly clear in this regard to  
> anyone who wants to, say, implement it or use it.

As a potential implementor, I read the relevant parts of the spec to  
see if it is in fact clear. The parts I see that seem relevant are:

"This attribute is ignored if the target attribute value does not  
support addition, or if the animation element does not repeat.

Cumulative animation is not defined for "to animation".

This attribute will be ignored if the animation function is specified  
with only the to attribute. "

SMIL 2.0 says something similar.

I actually can't tell what the conformance requirements here are for  
implementations. If accumulate="sum" is specified, does that mean  
additive="sum" should be assumed, if the target attribute supports  
addition, or should it be ignored unless there is an explicit  
additive="sum"?

You seem to be saying that being additive is a necessary condition  
for being cumulative, but I couldn't find anything in the spec that  
says that; it only says that the target attribute value has to  
support addition, which is a property of the attribute, not the  
animation. In fact, the SMIL 2.0 spec, cited as a normative reference  
fore the definition of the 'accumulate' attribute, says: "Typically,  
authors expect cumulative animations to be additive (as in the  
examples described for accumulate above), but this is not required.  
The following example is cumulative but not additive. [example snipped]"

Also, the actual definition of cumulative="sum" is surprisingly  
vague: "Specifies that each repeat iteration after the first builds  
upon the last value of the previous iteration." What does "builds  
upon the last value" mean? After reading a bunch of the SMIL spec I  
see that this means adding to the final value of the previous  
repetition of an animation, and indeed has nothing to do with summing  
up the values of an additive animation as I would have assumed just  
from the definition. It would be way more clear if the behavior of  
different kinds of animations was defined in terms of mathematical  
expressions instead of vague phrases like "builds upon".

I also re-read Bjoern's original question and it was not about  
whether an animation being additive makes it cumulative, or is a  
necessary condition for it to be cumulative, or whatever. It seems to  
be about whether any attribute that supports addition may be the  
target of a cumulative animation. Is the answer yes or no? If yes,  
what in the spec says that? As you stated, "only if" defines a  
necessary but not sufficient condition, so I don't think anything  
says this. If no, please list the attributes that may be the target  
of an additive animation but may not be the target of a cumulative  
animation somewhere in the spec.

So, to summarize, the specification is not abundantly clear about  
this, and indeed seems to directly contradict some of your claims,  
unless you are using "cumulative animation" and "additive animation"  
in some other sense than how the spec uses them.

Regards,
Maciej

Received on Saturday, 22 April 2006 22:47:19 UTC