Constraints and SVG: A Discussion Paper

We would like to circulate for discussion a proposal on including 
constraint-based specifications into the the next revision of SVG. The main
advantage of using constraints is that they allow the designer to 
declaratively specify relationships between components of an SVG document, 
rather than having to precisely specify their layout or position. For 
instance, that a box is big enough to contain some text or that a line 
connects two circles.

Adding constraints to SVG means that the SVG author can specify flexible 
readjustment of layout in response to viewer requirements, such as large
fonts, and the viewing environment such as a small browser window on a PDA. 
In particular constraints allow differential scaling of SVG 
document elements, and alternate layouts depending on the viewing context,
thus increasing the accessibility of SVG documents. 
Another important advantage of constraints is that they provide support for 
user interaction and animation.

Bernd Meyer, Laurent Tardif and I have prepared a paper discussing
the potential benefits of constraints and possible ways they could be added to 
SVG. It can be found at
  http://www.csse.monash.edu.au/~tardif/CSVG/paper.html
This discussion paper explains through several examples how constraints 
are a natural extension to SVG 1.0 which will add significant capabilities 
at relatively little implementation or performance cost.

We first motivate the need for constraints by arguing that SVG should
allow flexible re-adjustment of diagrams at display time. We discuss in detail 
how one-way constraints can achieve this
and also how they facilitate the specification of animation in SVG. We next 
consider interaction. For this purpose one-way
constraints are not sufficient and more powerful multi-way constraints are 
needed. We discuss the various classes of
constraint solving algorithms and how the implementation of the suggested SVG 
extension can be based on these.

This discussion paper is intended as a submission to the SVG 2.0 
working party. Its primary purpose is to stimulate discussion....


Kim Marriott

Received on Tuesday, 17 July 2001 03:06:01 UTC