Jul 19, 2009, 9:47:29 PM7/19/09
to Knowledge Waves
Just posted the jottings below as a comment to Cameron's latest blog
post, but after hitting the button I realized it's more appropriate to
this forum, so here it is again:
Hi. I’m the author of citeproc-js, a citation formatting engine under
development for use with the Zotero reference management tool. The
Style Language (CSL) specification, the lead editor of which is Bruce
D’Arcus. As Zotero followers will be aware, hundreds of styles have
been defined in CSL, and these can be leveraged by any CSL-conformant
citation formatting system.
The CSL processor currently used by Zotero is coded as an integral
part of the Zotero application. The citeproc-js project aims to
cleanly separate the CSL processor from Zotero proper, so that the
former can be more easily embedded in webservers and other
without special dependencies, so when it’s done it should be possible
to drop it into a JS environment anywhere, on either client- or server-
side, and put it straight to work.
The bulk of the citeproc-js processor code is now complete. Most of
the difficult issues (names formatting, bib-reference disambiguation,
various context-driven joins around punctuation, various forms of cite
truncation) have been resolved. I’m now working with the Zotero team
on the task of refactoring the API to provide the functionality needed
for efficient word-processor integration. We’re not running against a
deadline, but I think the aim is to have this work done maybe within
this calendar year.
As a hobbyist programmer and middle-aged auto-didact, my knowledge of
these things is limited, but it seems to me that citeproc-js is a
likely building block for an authoring system built around Wave. I
would be very excited to see that happen, and would be happy to help
things forward. But I should mention a couple of items here at the
I would have two handicaps as a participant in an effort to adapt
citeproc-js as a formatting engine for use in the Wave environment.
The first is expertise. I’ve been fashioning little tools in code for
a couple of decades, but I am not a trained programmer, which gives me
a limited sense of design, and a limited vocabulary for swapping
ideas. I fear that I would be as likely to clutter things up with
misunderstanding as to move discussions forward, if I were the only
person in the circle able to speak to citeproc-js internals.
The second is lack of time. Apart from being a hobbyist programmer and
middle-aged auto-didact, I am a full-time member of academic staff in
a law faculty (in Japan). I took on the initial drafting of citeproc-
js out of a desire to further strengthen Zotero, which I see as a
useful tool for students in our writing programs. I can justify the
time I have spent on it one the basis of direct short-term benefits.
But I also have responsibilities to publish in my professional field
of comparative law, and the pressure in that regard has been building
up during the six months of coding spent on citeproc-js. While I will
be more than happy to correspond with developers concerning the code,
barring some revolutionary change in the University work environment,
I really can’t justify dedicating significant time to Wave-related
coding, either on the processor itself or on supporting modules.
This is not to cast a wet blanket on the general enthusiasm, in which
I share. On the contrary, I want to flag early on that this code is
available, and that the door is open for someone else to familiarize
themselves with CSL and with the citeproc-js code base, with a view to
hitting the ground running when the effort to produce a Wave-based
authoring platform kicks in in earnest.
Faculty of Law