All,
As I’ve already discussed with Bruce and Frank, I’m going to continue the
development of citeproc-rb. Having a good citeproc implementation in Ruby is
important to me as I’m working on a Ruby-based citation management tool, and
having perfectly accurate citations is a must. It’s the next version of
SourceAid’s citation builder (current version here:
http://sourceaid.com/citationbuilder (not a very nice version, I know), and
the next version will be hosted on http://cite.me (for a preview go to
http://draft.cite.me … a much more polished update)).
But I’m not here to plug my own work, I’m here to talk about making a CSL
processor. There are a couple of challenges/questions/thoughts I have:
*1. Documentation on CSL itself
*
Most of the documentation I’ve seen for CSL is on the Zotero website:
http://www.zotero.org/support/dev/csl_syntax_summary
Where is the most up-to-date spec for CSL? Is is the schema really the
definitive spec?
Most importantly, understanding what citation types (book, chapter, article,
etc) CSL expects, as well as the field names, is crucial to getting this
thing working in any capacity. I got citeproc-rb’s mapping from Zotero a
couple months ago, but I’m not sure how accurate it was, so hopefully this
is covered by some spec.
*2. *Testing for CSL
The tests included in citeproc-js are consumable by and CSL processor, which
is great. Does anyone have any idea how complete they are?
3. CSL file correctness
Are there any known issues with the CSL files that are provided in xbiblio,
and the citeproc implementations? Taking mla.csl and comparing it against
the most recent MLA edition, there are a ton of formatting issues and errors
(I tested this out with citeproc-js). I’m not sure if I’m feeding citeproc
an incorrect set of types/fields, so again info on that would help.
4. Testing for the CSL files themselves
*
*
Along the same lines of CSL correctness … while there is a substantial
amount tests for a CSL processor, there doesn’t seem to be any tests for the
individual CSL files that are part of xbiblio. How do we know the mla.csl
file conforms with the MLA handbook? I have tests for MLA, APA, CSE, and
CMS, from cite.me’s current style formatter; MLA is the most complete and
I’m finishing up the other three. They are style-formatter-implementation
agnostic, as they are just JSON for the data + HTML for what the style
output is matched against. Is there any interest in having tests for the CSL
files themselves?
*
*
5. Is it OK to have so many differing implementations of citeproc?
More of a philosophical question, but my initial reaction to needing a Ruby
CSL processor was to find the most compatible one and try to use it from
Ruby. This could have very well worked with citeproc-js, if I knew how to
use it (basically the whole fields/types mapping problem). Should the Python
and Ruby versions just be direct ports of the JavaScript version, so we can
ensure compatibility? Sure, having the same test suite is a step in the
right direction, but compatibility won’t be acceptable for the three
citeproc implementations for a while.
I’ve actually played around with using citeproc-js as just a in-the-browser
formatter for the website, which makes it really simple to use, but I also
need bibliography generation to be available from a web-service, so having
some way to call it directly from Ruby is a must as well.
So do we spread ourselves thin working on multiple implementations in
different languages, or all focus on one implementation, but make it really
easy to use from the command-line so people can shell out to it? Ports to
different languages can happen later if needed. Obviously I think the latter
is a good idea, but without a good Ruby->JavaScript bridge this isn’t ideal
… though it would work.
Anyway, that’s what is on my mind at the moment, but I’m sure I’ll be asking
more questions very soon.
~Jimmy