Structured Diagram Description Language
What is SDDL?
SDDL is a language for the description of 2-dimensional diagrams specific to computer science and discrete mathematics. It was written by Mathieu Bourgeois and Roger Villemaire at Université du Québec à Montréal (UQÀM).
SDDL allows combining graphical objects (circles, lines, arrows, …) and LaTeX boxes to produce diagrams representing discrete structures such as graphs, trees, etc. In SDDL, one adds objects to a canvas in order to produce a drawing. Objects are either basic building blocks such as circles, lines, arrows or even already defined canvas. This allows reusing existing representations by integrating them at various positions in the main canvas. Furthermore, inner objects can always be referred to. It is hence easy to add linking objects, such as lines and arrows, between inner objects.
SDDL uses an object-oriented inspired syntax, using the dot to access attributes, such as specific points (center, corner, etc.), in a natural way. Diagrams are hence constructed by combining existing parts and linking them in various ways.
Our tool is implemented in Java, but, since SDDL offers its own simple syntax, no knowledge of Java is required in order to learn SDDL. The tool translates the SDDL input into Asymptote code and uses the Asymptote engine to produce encapsulated Postscript (eps) output.
SDDL is hence a simple and clear language in which one can combine graphical objects and LaTeX code in order to produce structured diagrams such as those used in discrete mathematics and computer science.
To obtain SDDL, you need four things installed beforehand
Java (only a JRE for simple users, more advances users will prefer a JDK)
Asymptote (Some Linux distributions have this as a package, others will need to go to the download page on Asymptote)
Ghoscript and Ghostview will also be useful for seeing your diagrams
You need to make sure every program is accessible from the command line (that is, it must be in the standard search path). This shouldn't be a problem, except Asymptote on Windows may not be defined in $PATH.
For more advanced users (who would like to add hierarchy classes, as an example), a Java IDE will be useful, like Eclipse.
SDDL is cross-platform (as it is written in Java). It is available in zip and tar.gz format :
Installation is as simple as unzipping the files where you which. You can then use sddl.bat or sddl.sh (depending on your system) with your sddl file as an argument.
Documentation and examples
A manual is currently under construction. Check back soon!
You can access the Javadoc documentation of the project. It is available in three forms :
for every Shape defined in SDDL (for beginner users; shows all important properties of the object hierarchy)
for the package sddl.hierarchy (for advanced users; shows structural details about points and drawings)
You can take a look at a series of SDDL examples by taking a look at our examples page.
Articles and conferences
You can contact us at this address.