I have been working a bit with the Zotero project to improve their AGU
CSL style so that it matches the AGU style found here:
For those of you who are not familiar, the American Geophysical Union is
a large scientific organization of physicists, materials scientists,
geologists, oceanographers, etc. It publishes probably about a
half-dozen to dozen journals. Recent annual meetings have had +10,000
participants. Furthermore, I am fairly certain similar styles are used
by a number of other journals. Therefore, I think that CSL should be
able to support their format.
I believe that the current CSL implementation cannot support some
elements of the AGU style and therefore would like to propose some
modifications to CSL. AGU uses what on the surface looks like an
unusual ordering of references in the bibliography:
- References are sorted globally by first author.
- Among references that have the same first author, references with
just one author come first, ordered by year.
- Then come references with two authors ordered by second author and
- After this, come references with 3 or more authors. These are sorted
by just the year of publication, ignoring all but the first author for
This sorting appears strange at first, but it makes some sense as
citations for articles with more than 2 authors appear in the main text
as e.g. [Kaplan et al., 2006]. The only info a reader has to locate the
article is the last name, the fact that is has more than 2 authors, and
the year. Therefore, it is useful to group publications with several
authors (same first author) together and order them by year.
Current sorting options don’t really support this as there is no way to
specify a sorting that depends on the number of authors. We have come
up with two basic ways that this could be supported, one based on adding
variables to test for the number of authors, the other based on adding
options for this style. I personally believe that the first option is a
much more robust and general approach, but will present both here.
The first option consists of adding a variable “author-count” than can
be tested for in clauses and adding a way to access just one
particular author from a list of authors, selecting by number. I am not
an XML expert, so the code below is just meant to give an idea of how
this might work, not be grammatically correct:
where the macro “first-author” (and similarly for second author) might
be something like:
The other approach to solving the problem would be with additional
options. For example, one might add:
<option name="sort-et-al-min" value="3"/> <option name="sort-et-al-use-first" value="1"/>
While this solution appears more expedient, I think the other approach
is more robust because:
- I can imagine and believe there exist slight modifications of this
format that you will not be able to support without additional options.
- Adding author-count and the ability to get at particular authors
would allow you to completely remove several options in favor of macros,
which are more flexible (e.g., options “et-al-min” and “et-al-use-first”
could be coded through macros and choose statements (though having “if
greater than” and “if less than” tests would be very useful as some
bibliographic styles only use et. al after a large number of references
- e.g., AGU style uses 10)).
- As option names become more specific, they also become quite obscure
(related also to the AGU format, we had a discussion about what
“name-as-sort-order” really means that was quite confusing and is still
not completely resolved in my mind). Building “options” from macros is
much easier to understand as it builds complex ideas from simpler ones.
- Additional options of all types are almost certainly going to creep
into the format over time as more and more exceptions to the basic
formats are found. Trying to keep these as limited as possible to just
those things which cannot be implemented nicely through other approaches
seems like a good thing.
David M. Kaplan
Charge de Recherche 1
Institut de Recherche pour le Developpement
Centre de Recherche Halieutique Mediterraneenne et Tropicale
av. Jean Monnet
34203 Sete cedex
Phone: +33 (0)4 99 57 32 27
Fax: +33 (0)4 99 57 32 95