Citation Style Language and GUIs
As I’ve been working on a citation style schema for use with my XSLT stylesheets, I’ve had a few primary goals. Among them, it should be:
- much easier to use than other citation style languages like bibtex’s .bst files
- able to support the most demanding of citation needs
- designed in such a way that a simple GUI could be built around it
With respect to the third goal, I strongly believe the success of much of I’m what I’m involved in will be based on a really good citation style language, and an easy-to-use web repository that makes it easy to access, create, and edit such style files.
To test my design a bit, I put together a simple mockup that shows how the style language might work in the context of a GUI. This is not a complete interface, and is completely non-functional; it just shows what I am envisioning an interface might look like.

In terms of the logic on which the interface is based, I split reference “types†into “class†and “type.†Within each (abstract) class, I require a definition. Therefore, for any given style, one must create definitions for the following types: article, chapter, and book. There are then extensible lists that allow one to have a definition that optionally can inherit from the required types within the class.
For example, say I have a style that for some bizarre reason (yes, citation styles are often bizarre) requires magazine articles to be formatted slightly differently than generic articles. I can then create a definition for “article-magazineâ€, inherit from the base-type within the class (article), and only indicate the specific piece that needs to be changed.
One issue I struggled with was internationalization. I decided to have a root-level xml:lang attribute, and to simply assume all styles are language-specific. This may mean large numbers of instances for a given style, but that seems a better approach that to introduce additional complexity to the spec. On the other hand, I have changed the structure a bit to allow me to internationalize within the individual styles if need be. Any opinions?
Creative Commons License