My name is Fouke Boss, I am a software developer from the Netherlands
with a background in mathematics. In my spare time I am working on a new
piece of genealogy software with some interesting ideas (or at least I
think so). Part of this software is about citing the sources, and
presentation I became interested in CSL.
And so the last couple of weeks I have been working on a Microsoft .NET
implementation of the CSL 1.0.1 specification. So far, the
specifications, together with the test suite, have been clear enough for
the most part, and so earlier today I have been able to put a first
version of this .NET implementation online at
If you are a Windows user (yeah, I know), you could download the
binaries (in the /Binaries folder) and run the CiteProc.WpfDemo.exe to
get a first impression of the current capabilities and shortcomings.
I am hoping to implement the remaining features in the next couple of
weeks, and for this, I’d like to ask you all for some help. At the
moment, my main issues are these:
I’m trying to figure out if my currently stateless processor (it
receives a list of items, and returns a formatted bibliography or
citation) should in fact be stateful in order to implement
disambiguation properly. And (related as far as I can tell): what is the
exact purpose of all these test cases with
CITATIONS/CITATION-ITEMS/BIBENTRIES/BIBSECTION sections in it?
The specifications do not mention anything about the removal of
multiple spaces, dots, commas or other punctuation, but the test suite
requires this behavior, and quite rightly so imho. Can anyone enlighten
me about the exact rules the other processors have implemented?
I am thinking of supplementing the CSL Test Suite with a ‘Basic Test
Suite’ that systematically tests each and every element or attribute
(e.g. the current Csl Test Suite does not contain any test case for
chicago page ranges). A first (but far from complete) draft can be found
in the github repository. Rintze Zelle pointed out that a move to
cucumber has been considered. Do you think such an additional set of
tests is useful? Which format is preferred?
What license should I use? I’ve looked around a bit ('CPAL or AGPL’
for citeproc-js, ‘AGPL and the FreeBSD’ for CiteProc-Ruby), but I don’t
have any experience in this matter. Any thoughts or suggestions?
Any help would be appreciated!
With kind regards,