So CSL has managed to evolve fairly nicely with a fairly informal
process, with different people stepping up to provide the labor to get
particular things done. Most recently Rintze has done a great job with
the 1.0 release.
But Rintze is finishing his PhD and moving on to a new job (one, oddly
enough, that’s only about two hours from me!), and so this raises
again the question of how we want to manage things going forward.
The biggest question has to do with the revision scheme that Rintze
proposed, and which seems sensible to me: what process do we want to
use to determine more significant, backward incompatible, changes? I
mean, ideally we don’t have to do this at all, but just wondering.
Just to note that four of the items in the tracker are hard, but
important enough that they should not be left unattended (#17 on
cleaning up identifiers, #16 on institution names, #15 on making
publisher an author variable, with multiple publisher-place attribute
values, #14 on listing the last author’s name in a truncated listing).
We could continue as we’ve done, which is that effectively if someone
proposes a solution that doesn’t garner any objections, and can
provide a reasonable test scenario and spec code for it, then we add
it, and just leave it up to other implementors to catch up.
But I’m not sure that’s the best strategy, particular as we start to
role out the CSL editor, online repo, etc. We don’t want to have
multiple versions of styles, for example.
Multiple versions of styles are inevitable (the CSL 0.8.1 styles
remain available for use with 0.8.1 processors); but the version
attribute and update-styles.xsl are our friends.
The labor question is perhaps somewhat less important, but perhaps
some of my suggestions above might point us in a direction to address
that as well?
I’m not sure what you’re suggesting.
When I wrote about process earlier, I was more concerned with issues
that go beyond the four corners of the schema. There are three axes
to interoperability: (1) that CSL processors conform to the schema and
specification; (2) that CSL styles produce the same output for
congruent bibliographic records in in all calling applications; and
(3) that the CSL language and styles be a reliable tool for formatting
ordinary citations in all major fields of publishing.
Item (1) is satisfied by the current process. Item (2) requires
knowledge of the item type and field assignments in calling
applications (there must be no one-to-many mappings to CSL variables,
and CSL should perhaps provide some guidance on field content
appropriate to particular categories of content). Item (3) is pretty
well covered for fields other than law (apart from issues around
review articles, translations, and other hierarchical items). Legal
support is a major task, though. The essential metadata sets for
legal materials are complex, vary between jurisdictions, and vary over
time within any given jurisdiction. There are efforts out there to
produce uniform standards for data exchange between jurisdictions, but
it’s certain that CSL would need a slightly extended set of item
types, and the sort of guidance on mapping conventions described under
Item (2), to get this going.
I’m concerned that Item (2), in particular, is beyond our capacity to
handle as a small circle of developers. Yet guidance on mapping
conventions will be needed, to make CSL processors attractive as a
general solution to citation formatting issues.
I’m kind of stuck for a solution to this at this point, although I’m
pretty sure that, with working code out there, it will be addressed by
someone sooner or later – and certainly one option would be to down
tools at this point (after dealing with the pending issues for 1.1),
and let Items (2) and (3) sort themselves out in other fora. That has
certainly worked out pretty well for development of the Javascript
language (cough, cough). I guess it depends on how much central
control you think is needed to keep things on track.
Frank