- From: Warner ten Kate <tenkate@natlab.research.philips.com>
- Date: Thu, 19 Feb 1998 18:21:08 +0100
- To: jourdan <Muriel.Jourdan@inrialpes.fr>
- Cc: www-multimedia@w3.org, Cecile Roisin <Cecile.Roisin@imag.fr>
Thanks for your reply. I see your point. Below I will try to explain our approach. In my previous response it was my intention to show that in some extent SMIL supports a solely constraint-based authoring. The hierarchical approach can be seen as a layer on top of this "constraints" layer. It should add in readability and ease of authoring as the (coarse) temporal flow can be grabbed more easily. In addition the hierarchical information is available for other uses. Before further answering your mail, I like to report that last week the SYMM working group has met together for interoperability testing. We compared various SMIL-players with respect to each other and with respect to the draft as we specified it. We didn't encounter large deviations or parts of the draft which reveal a thorough review need. We identified some spots in the draft which could be more specific. That's what we are going to do in the coming weeks. In conclusion, we are quite happy with the result. jourdan wrote: > > > > As an example of a constraint-based specification you give > > > > A meets B > > B meets C > > I starts A > > > > I would say that this type of authoring is also supported by SMIL: > > > > <B begin="id(A)(end)"/> > > <C begin="id(B)(end)"/> > > <A begin="id(I)(begin)"/> > > we do not understand how this group can be incorporated in a SMIL > specification ? > You are obliged to encapsulate these three objects by using a seq or par > node, aren't you ? Yes, in this case you should use the par construct. In SMIL it is required to have a single root element. > > If so, how the synchronization by qualified events is merged with the > seq or par semantics ? That's specified in the draft (one of the parts we want to clean up): <URL:http://www.w3.org/TR/WD-smil#h-6.5> The synchronization attributes "begin" and "end" can be added to any schedule element. These attributes change the default begin and end times of the element. A synchronization attribute can be an offset value or a qualified event. If the value of a synchronization attribute is an offset value, its semantics depends on the parent of the element containing the synchronization attribute: . If the parent is a parallel element, the value defines a time-offset from the beginning of the parallel element (see Figure 6.4). . If the parent is a sequential element, the value defines a time-offset from the end of the predecessor element (see Figure 6.5). If the value of a synchronization attribute is an element event, the attribute specifies that an element should begin or end when a particular event occurs in another element (see Figure 6.6). This element must be a sibling of the element with the synchronization attribute. You may also read <URL:http://www.w3.org/TR/WD-smil#h-6.2> and <URL:http://www.w3.org/TR/WD-smil#h-6.3> > > The aim of the two following remarks/questions is to show that the > temporal "events synchronization" proposed in SMIL is not equivalent to > temporal constraints as used in Madeus (or ISIS, or CHIMP, TIEMPO, ...) I agree the constructs are not equivalent completely. My purpose was to show that the concept is there. We used it in another direction. An important factor concerns causality. We aim to prevent constraints which induce an action before the related event occurs (negative delays, or requiring a continuous media to adjust its speed such as to end at a certain moment in future). Neither do we allow loops in the temporal graph (tree). Causality implies that an object can be synchronized to only one event. You cannot specify something like <audio begin="id(obj_1)(2s)" begin="id(obj_2)(3s)"/> SMIL doesn't support conditional synchronization (except, maybe, via misusing the switch). Neither are begin/end ranges supported: an object begins or ends at a certain (specified) moment, not in a range. A consequence is that an existing constraint might need to be re-edit in case another constraint gets added. This is the case in your first example: > > 1) Suppose i want to add to your example a new objects E in sequence > before A. > The temporal constraints to addd to the previous set > A meets B > B meets C > I starts A > > is : E meets A > Adding "E meets A" yields that A is specified to begin both when E ends as well as when I starts. As said, such a double is not allowed in SMIL, and the "I starts A" constraint need to be re-edit into "A starts I" (or in "E meets I"; similarly "E meets A" could be added as "E meets I", allowing the existing constraints to stay unchanged): <B begin="id(A)(end)"/> <C begin="id(B)(end)"/> <I begin="id(A)(begin)"/> <A begin="id(E)(end)"/>. Instead of re-editting the constraint another solution is to group objects such that a constraint applies to a group. Here we start building the SMIL-tree. But, again, you're not obliged to do so! (If a tree is created, one can always flatten it upto the root node.) > > Conflicts in smil are often solved by taking something like a "first > arrived" policy (minimum between two possible durations). > If this is the case here, it means that one of the two synchronisations > will be lost. I don't understand you. If two synchronization specifications are in conflict some resolution scheme is required. If the synchronization is not allowed to be in a range and the object is not allowed to stretch or to shrink, the remaining solution I see is to specify a precedence rule. Do I overlook some alternatives? The precedence rules in SMIL like "minimum wins" are related to situations where the author wants to specify an ending while the duration of the objects is not known in advance. The endsync attribute has been defined for that purpose. Precedence rules are added to resolve possible conflicts. > > 2) > When I express in Madeus that two objects are linked by an equal > constraint > A equal B. > One can think that it is equivalent to > par > <A begin ="id(B) (begin)", end = "id(B) (end)> > <B> > /par (The common way to author would be <par> <A/> <B/> </par> maybe with sync="hard" added in the par). An endsync attribute can be added to the par element to specify the end-behavior. SMIL doesn't support automated stretching and shrinking of continuous media such as to let them end on some point in the future. (That would require that the natural duration of the object is known, in the worst case causing a delay equal to that duration; plus some buffering consequences.) > > Suppose now that A and B are two moving objects which have to reach some > different fixed points on the screen. In addition the author can adjust > their speed as he wants. > > The semantic expressed by A equal B is: A and B starts and finishes at > the same time, and none of them has been interrupted (i.e they reached > their final position). > With a constraint-based approach the temporal formatter chooses a > well-suited speed for each objects. I am a little confused: does A meets B specify that both objects are of equal duration, or does it specify that the dynamic actions applied on them (move the objects) are of equal duration? As said, automated stretching and shrinking to meet future synchronization points is not supported by SMIL. Dynamic behavior is not yet defined. (Btw. assume A is of shorter duration than B and "A equal B" is specified, how is it decided if A is to be stretched, or B to be shrinked, or both A stretching and B shrinking? Or do have "A equal B" and "B equal A" different semantics? They have not in Allen's description, have they?) > > In SMIL, (from our understanding) the author is obliged to fix the > duration (and so the speed) of each objects, then the three following > cases are possible : > 1) he give the same duration of the two objects => everything is ok. > 2) A is shorter than B => the end point syncronization is not satisfied As commented above. > 3) A is longer than B => A is interrupted when B ends, it means that A > do not reached the position wished by the author. The endsync-attribute is available for this purpose. > > On this example, it is very simple to give the same duration of the two > objects, but if I take a more complex one (Two sequences (A,B,C) and > (E,D) synchronized at their beginning and end point). > > A meets B > B mets C > D meets E > A starts D > E finishes C > > this task is not so trivial for the author. Moreover, if he inserts a > new object in one > sequence, he has to compute again these values. > Here, we point out one major advantage of using constraints. As commented above. Kind regards, Warner ten Kate. -- PS. I am interested to learn about the logical grouping in Madeus. Is it possible for you to answer my questions? > Warner ten Kate wrote: > > What I get from the figures in your document, in Madeus you > > specify constraints between media-objects; sets of media-objects > > with their constraints can be taken together into logical groups. > > > > Is this correct? > > Is there any additional semantics to these logical groups > > eg. are there (structured) dependicies between these groups? -- Philips Research Labs. WY21 ++ New Media Systems & Applications Prof. Holstlaan 4 ++ 5656 AA Eindhoven ++ The Netherlands Phone: +31 4027 44830 Fax: +31 4027 44648 tenkate@natlab.research.philips.com
Received on Thursday, 19 February 1998 12:23:57 UTC