Creating Semantically Rich Applications in SVG as Demonstrated Through Linguistics

SVG presents self-describing data in a cross-application manner, and can be extended as the basis for the development of flexible applications. In any domain-specific application, ease of use, flexibility, and lack of diversionary abstraction for the end-user is important to productivity. Previous digital formats that have been used to present or model data in have all had significant flaws, such as being inflexibile, non-interactive, or proprietary. By contrast, SVG's data-driven, semantically rich graphical and textual format allows for complex and intuitive expression that do not hamper the user with unnecessary technical details. Its potential use in the field of Linguistics is one such example; there exist several methods of modeling, annotating, and describing such aspects of Linguistics as syntactic trees, morphology, phonetics, and semantics, but none is so keenly appropriate as is SVG. I have written a free, comprehensive software suite that demonstrates these advantages.

One key to SVG's utility as an application host is its extensiblity. By enhancing SVG elements with metadata in a custom namespace, functionality can be added to provide information to the user, establish complex relationships between elements, dictate how an element should be presented via CSS attribute descriptors, and indicate how the logic-layer code should treat each element. My Linguistics application uses custom metadata extensively.

Perhaps no other discipline has as much use for internationalization as has the study of Linguistics. A comprehensive study of language must include the glyphs of languages both extant and extinct. Unicode has provisions for many of these glyphs, but neither the organization, ease of deployment, nor distribution of such fonts is common. Here, too, SVG offers a unique advantage. With SVGFonts, any given font can be embedded and described in the document itself, to be displayed even if the user's system does not have an appropriate font installed. A virtual SVG keyboard is implemented in my application to allow these glyphs to be input directly. In addition, the user interface itself is available in several languages, an innovation made trivial in SVG, and can be user-customized to any language.

Not only does XML allow data to be described, but organized as well. By allowing the grouping of various elements together in a hierarchical fashion, the SVG DOM both presents and organizes the relationships of the data. Grammar trees are the standard representation for syntactic structure, and SVG is the perfect format to build and display these trees in a precise and elegant fashion, combining text and graphics. The simple implementation of a stackable tree of sub-structures has broad applicability outside of Linguistics as well, allowing complex structures to be built by drag-and-drop.

In addition to the custom interface elements, such as the grammar tree, there are standard controls that users are familiar with. While no major implementation of the powerful combination of XForms with SVG yet exists, this application takes steps to achieve some simple XForms functionality.

An application intended largely as a pedagogical tool benefits by interaction with the user. Static formats are by nature limited in this scope. SVG allows for interactive animation via script and SMIL; I have used both these techniques, along with Adobe's built-in audio player, to create a user-controlled multimedia demonstration of the way the speech organs produce the various sounds of human languages, accompanied by the standard phonetic transcription.

Representing a complex graphical and lexical system needed for Linguistics has proved challenging. Text-based formats are inelegant, difficult to author in, and provide little interactivity; static graphical formats, while more attractive, are syntactical void. SVG has stepped in to fill that void, and allow rich interactions with the user. To ensure compatibility with with other systems of representation, the application transforms the SVG with XSLT, allowing users to input and output standard notation, or an updated XML format. That SVG can provide a simple, effective, and efficient manner in which to study and author documents for the expansive field of Linguistics, and do so in a manner never before possible, is proof of its inherent utility and power as an application development format.