I’ve put up a fresh release of the Abbreviations for Zotero gadget. This work is still in flux (“pre-alpha” in the lingo), but the functionality is beginning to take shape. Documentation will be forthcoming in due course, but meanwhile here are few notes on what’s in store.
The citeproc-js processor contains a function hook getAbbreviation(), which attempts matches for certain field content against an externally supplied set of abbreviation lists. For fields that offer this functionality, the external abbreviation mechanism is invoked by setting form=”short” on the CSL node that renders the field.
Abbreviating citation text is not a simple matter of global find-and-replace. For example, in the Bluebook style (19th edition), the word “Administrator” is to be abbreviated as “Admin.” in journal names, but as “Admin’or” in titles and institution names. Abbreviation lists are therefore divided into a number of “segments”, to allow such context discrimination. As a further wrinkle (to make things simpler, not more complicated, the user end) abbreviation takes place in two steps: an attempt is made to match the entire field; and (for most fields) if that fails, an attempt is made to match words and phrases in the field, to build a “candidate” abbreviation that roughly conforms to the style.
Two special phrase segments are used for the second, fallback step: container-phrase and title-phrase. For the first step, the following segments are recognized by the processor and the plugin:
- Journal names and law reports. The fallback segment for this category of fields is container-phrase.
- Series names and the like. The fallback segment for this category of fields is also container-phrase.
- In multilingual Zotero, all names entered in single-field mode are treated as institution names. Institution names can consist of multiple elements, separated by a field separator character |. This abbreviation segment is applied to the entire institution name string in this form. This is used (exclusively) in legal styles to transform a hierarchical description of the court issuing a judgment, such as United Kingdom|High Court|Chancery, to the “neutral” citation key used to refer to the case (UKHC|Chancery in this case). Phrase substitution is not performed when this segment is applied, but may be applied to individual elements (see below).
- This segment is applied to individual institution elements. The fallback in this case is title-phrase.
- This segment is applied to the complete rendering of personal names. Its only application (as far as I know) is to abbreviate the name of the author as, say, “author” in citations to correspondence.
- This segment abbreviates place names. The fallback segment in this case is title-phrase
- This segment is used to supply short forms of titles. The fallback segment is (of course) title-phrase. Title short forms are treated as a user-level customization, and are not exported.
- This segment supplies the value of the “hereinafter” variable that is available in the MLZ extended CSL schema. No word substitution is performed on this segment. It is currently keyed to the author, title, issued date and jurisdiction of the target item. This too is a user-level customization, and is not exported.
- This segment is used to completely replace the citation for items which have no item type (“Document” items in Zotero). No fallback substitution is performed when this segment is applied. It is keyed to the author and title of the target items, and it is treated as a user-level substitution, not to be exported.
Several other points to note about the organization of abbreviation lists:
- Both the field and phrase abbreviation segment lists are keyed to the current style: switching styles will also switch the abbreviations applied to content.
- The plugin ships without abbreviation list data. This is distributed separately, as two JSON files for each style that performs abbreviation, one containing whole-field abbreviations, and another containing phrase abbreviations.
- Phrase abbreviations can be imported using the Import button of the Abbreviations Gadget popup, but cannot be edited by the plugin. Changes should be made to the JSON file, followed by import. Normally users will not need to touch these lists.
- All whole-field abbreviations can be imported and edited within the plugin (only abbreviations actually used in the current document are displayed for editing).
- JSON export of abbreviation data via the Export button of the plugin includes only fields of definite utility in exchange between systems, as indicated above.
The description above is quite a screenful, but (assuming that legal barriers to the distribution of abbreviation lists do not exist), users will not need to deal with the detail of list maintenance, apart from simple customizations made through the plugin, which should be quite intuitive.
That’s all for now. More later as the kit develops …