Hi Sylvester,

Thanks for the welcome!

Yeah, an implementation agnostic test suite would be ideal, as it's 
frustrating some times thinking I've implemented one feature, only to 
find that the test cases also depend on features that are not part of 
the CSL specs. Maybe later on, when I've implemented most of the 
remaining features, I will contact you again to see how I can help to 
create such a suite. That will also be a good time for me to switch from 
the citeproc-js test format to cucumber (SpecFlow as it's called for 
.NET), and then I will also have a look at the Ruby test sets. Thanks.

And for stateless vs statefull, like you I've tried to avoid a stateful 
implementation until now, but I too no longer see any way to avoid it. 
As you don't either, I'll give in then, embrace the dark side.

The other components you mention are already part of my solution, that's 
reassuring. I added one other: I actually compile the style/locale node 
tree into c# code.

Could you point out to me which parts of your code tend to the double 
spaces/quotes/punctuation?

Thanks for now,
Regards,

Fouke



Sylvester Keil schreef op 2016-06-29 13:23:
> Hi Fouke,
> 
> Welcome to the club of CiteProc impementers!
> 
> The tests you're referring to are citeproc-js tests, not CSL only
> tests, i.e., they also cover implementation details of citeproc-js
> which are not part of the specification. We have been planning to
> create an implementatioin agnostic test suite for a few years now. If
> anyone's to blame that it isn't ready yet, it's me: I volunteered to
> work on it, but never found the time to do it.
> 
> If you're interested in additional tests, there are a lot of citeproc-
> ruby and csl-ruby tests here:
> 
> https://github.com/inukshuk/citeproc-ruby/tree/master/spec/citeproc/rub
> y
> https://github.com/inukshuk/citeproc/tree/master/spec/citeproc
> https://github.com/inukshuk/citeproc-ruby/tree/master/features
> https://github.com/inukshuk/csl-ruby/tree/master/spec/csl
> https://github.com/inukshuk/csl-ruby/tree/master/features
> 
> These are appoximately 1,000 tests covering many aspects of CSL and
> some citeproc-ruby implementation details (I'm certain there are tests
> for page ranges for example).
> 
> Finally, here are most of citeproc-js tests converted to cucumber
> features (not including tests added in the last two years):
> 
> https://github.com/inukshuk/citeproc/tree/master/features
> 
> I have tried for a long time to write a stateless processor, but I
> don't think it's possible (disambiguation aside, you need have citation
> styes which use ibidem for consecutive citations and, if I remember
> correctly, there are number of other requirements which make it
> necessary to manage state). My current solution is to distinguish
> between a stateless renderer component, a CSL node tree for style and
> locale, a formatter (for formatting the output and handling things like
> double spaces, flipping single or double quotation marks etc.), and a
> stateful processor -- I don't think you can make do with significantly
> less.
> 
> Sylvester
> 
> 
> On Tue, 2016-06-28 at 15:57 +0200, fo...@boss-reus.nl wrote:
>> 
>> Hi everyone,
>> 
>> 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 
>> through this 
>> (http://fhtw.byu.edu/static/conf/2008/tucker-10-presentation-fhtw2008
>> .pdf) 
>> 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 
>> https://github.com/fouke-boss/citeproc-dotnet.
>> 
>> 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:
>> 
>> 1. 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?
>> 
>> 2. 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?
>> 
>> 3. 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?
>> 
>> 4. 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,
>> 
>> Fouke
>> 
>> -------------------------------------------------------------------
>> -----------
>> Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in
>> San
>> Francisco, CA to explore cutting-edge tech and listen to tech
>> luminaries
>> present their vision of the future. This family event has something
>> for
>> everyone, including kids. Get more information and register today.
>> http://sdm.link/attshape
>> _______________________________________________
>> xbiblio-devel mailing list
>> xbiblio-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/xbiblio-devel
> ------------------------------------------------------------------------------
> Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
> Francisco, CA to explore cutting-edge tech and listen to tech 
> luminaries
> present their vision of the future. This family event has something for
> everyone, including kids. Get more information and register today.
> http://sdm.link/attshape
> 
> _______________________________________________
> xbiblio-devel mailing list
> xbiblio-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/xbiblio-devel


------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
_______________________________________________
xbiblio-devel mailing list
xbiblio-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/xbiblio-devel

Reply via email to